@mantou/gem 1.7.7 → 1.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/gem.es.js +239 -107
  2. package/dist/gem.umd.js +24 -24
  3. package/elements/base/dialog.d.ts.map +1 -1
  4. package/elements/base/dialog.js +1 -1
  5. package/elements/base/dialog.js.map +1 -1
  6. package/elements/base/gesture.d.ts.map +1 -1
  7. package/elements/base/gesture.js +1 -0
  8. package/elements/base/gesture.js.map +1 -1
  9. package/elements/base/link.d.ts.map +1 -1
  10. package/elements/base/link.js +8 -4
  11. package/elements/base/link.js.map +1 -1
  12. package/elements/base/modal-factory.d.ts +13 -3
  13. package/elements/base/modal-factory.d.ts.map +1 -1
  14. package/elements/base/reflect.d.ts +8 -0
  15. package/elements/base/reflect.d.ts.map +1 -1
  16. package/elements/base/reflect.js +36 -9
  17. package/elements/base/reflect.js.map +1 -1
  18. package/elements/base/route.d.ts +25 -10
  19. package/elements/base/route.d.ts.map +1 -1
  20. package/elements/base/route.js +90 -56
  21. package/elements/base/route.js.map +1 -1
  22. package/elements/base/title.d.ts.map +1 -1
  23. package/elements/base/title.js +8 -2
  24. package/elements/base/title.js.map +1 -1
  25. package/helper/i18n.d.ts +8 -1
  26. package/helper/i18n.d.ts.map +1 -1
  27. package/helper/i18n.js +6 -2
  28. package/helper/i18n.js.map +1 -1
  29. package/helper/logger.d.ts +9 -0
  30. package/helper/logger.d.ts.map +1 -0
  31. package/helper/logger.js +16 -0
  32. package/helper/logger.js.map +1 -0
  33. package/helper/ssr-shim.d.ts.map +1 -1
  34. package/helper/ssr-shim.js +12 -4
  35. package/helper/ssr-shim.js.map +1 -1
  36. package/lib/element.d.ts +9 -7
  37. package/lib/element.d.ts.map +1 -1
  38. package/lib/element.js +47 -21
  39. package/lib/element.js.map +1 -1
  40. package/lib/history.d.ts +3 -2
  41. package/lib/history.d.ts.map +1 -1
  42. package/lib/history.js +22 -9
  43. package/lib/history.js.map +1 -1
  44. package/lib/utils.d.ts +2 -1
  45. package/lib/utils.d.ts.map +1 -1
  46. package/lib/utils.js +10 -8
  47. package/lib/utils.js.map +1 -1
  48. package/lib/version.d.ts +1 -1
  49. package/lib/version.js +1 -1
  50. package/package.json +1 -1
  51. package/src/elements/base/dialog.ts +4 -1
  52. package/src/elements/base/gesture.ts +1 -0
  53. package/src/elements/base/link.ts +8 -4
  54. package/src/elements/base/reflect.ts +43 -9
  55. package/src/elements/base/route.ts +102 -51
  56. package/src/elements/base/title.ts +9 -2
  57. package/src/helper/i18n.ts +11 -3
  58. package/src/helper/logger.ts +21 -0
  59. package/src/helper/ssr-shim.ts +14 -4
  60. package/src/lib/element.ts +57 -26
  61. package/src/lib/history.ts +30 -12
  62. package/src/lib/utils.ts +16 -9
  63. package/src/lib/version.ts +1 -1
  64. package/src/test/elements/link.test.ts +15 -0
  65. package/src/test/elements/reflect.test.ts +27 -0
  66. package/src/test/elements/title.test.ts +25 -0
  67. package/src/test/gem-element/advance.test.ts +1 -1
  68. package/src/test/gem-element/decorators.test.ts +2 -2
  69. package/src/test/utils.test.ts +14 -0
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
package/lib/utils.js CHANGED
@@ -41,11 +41,15 @@ export function addMicrotaskToStack(func) {
41
41
  }
42
42
  microtaskStack.push(func);
43
43
  }
44
+ // 不编码 hash 用于比较
44
45
  export function absoluteLocation(currentPath = '', relativePath = '') {
45
46
  const { pathname, search, hash } = new URL(relativePath, location.origin + currentPath);
46
- return pathname + search + hash;
47
+ return pathname + search + decodeURIComponent(hash);
48
+ }
49
+ export function addListener(target, type, listener, options) {
50
+ target.addEventListener(type, listener, options);
51
+ return () => target.removeEventListener(type, listener, options);
47
52
  }
48
- // work on nodejs
49
53
  export class LinkedList extends EventTarget {
50
54
  constructor() {
51
55
  super(...arguments);
@@ -237,12 +241,10 @@ export function createCSSSheet(rules, mediaQuery = '') {
237
241
  sheet[SheetToken] = styleSheet;
238
242
  return sheet;
239
243
  }
240
- export function randomStr(number = 5, origin = '0123456789abcdefghijklmnopqrstuvwxyz') {
241
- const len = origin.length;
242
- let str = '';
243
- for (let i = 0; i < number; i++) {
244
- str += origin[Math.floor(Math.random() * len)];
245
- }
244
+ export function randomStr(len = 5) {
245
+ const str = Math.random().toString(36).slice(2).slice(0, len);
246
+ if (str.length < len)
247
+ return str + randomStr(len - str.length);
246
248
  return str;
247
249
  }
248
250
  const nestingRuleRegExp = new RegExp('&.*{((.|\n)*)}', 'g');
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAc,CAAC;AAC3C,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO;IACvC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACvB,kDAAkD;QAClD,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE;YAC7B,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,cAAc,GAAmB,EAAE,CAAC;AAE1C,SAAS,kBAAkB;IACzB,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,CAAC;IACD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3B,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACnC,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,WAAW,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IACxF,OAAO,QAAQ,GAAG,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAID,MAAM,UAAU,WAAW,CACzB,MAAS,EACT,IAAU,EACV,QAAc,EACd,OAAc;IAEd,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAYD,MAAM,OAAO,UAAoB,SAAQ,WAAW;IAApD;;;QAOE,0BAAO,IAAI,GAAG,EAAwB,EAAC;QACvC,wCAA+B;QAC/B,uCAA8B;IAoFhC,CAAC;IAhEC,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,uBAAK,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,6BAAW,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,4BAAU,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,OAAsB;QAClC,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5C,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,OAAO,uBAAA,IAAI,uBAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,oBAAoB;IACpB,uCAAuC;IACvC,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,uBAAA,IAAI,4BAAU,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,IAAI,GAAsB,uBAAA,IAAI,iDAAQ,MAAZ,IAAI,EAAS,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,uBAAA,IAAI,4BAAU,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,uBAAA,IAAI,wBAAa,IAAI,MAAA,CAAC;QACtB,IAAI,CAAC,uBAAA,IAAI,6BAAW,EAAE,CAAC;YACrB,uBAAA,IAAI,yBAAc,IAAI,MAAA,CAAC;QACzB,CAAC;QACD,uBAAA,IAAI,uBAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,4BAA4B;IAC5B,MAAM,CAAC,KAAQ;QACb,MAAM,UAAU,GAAG,uBAAA,IAAI,iDAAQ,MAAZ,IAAI,EAAS,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,uBAAA,IAAI,6BAAW,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,SAAS;IACT,SAAS;IACT,GAAG;QACD,MAAM,SAAS,GAAG,uBAAA,IAAI,6BAAW,CAAC;QAClC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC,KAAK,CAAC;IACzB,CAAC;CACF;sMAlFS,KAAQ;IACd,MAAM,SAAS,GAAG,uBAAA,IAAI,uBAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,uBAAA,IAAI,yBAAc,SAAS,CAAC,IAAI,MAAA,CAAC;QACnC,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,uBAAA,IAAI,wBAAa,SAAS,CAAC,IAAI,MAAA,CAAC;QAClC,CAAC;QACD,uBAAA,IAAI,uBAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAoEH,MAAM,OAAO,YAAkD,SAAQ,OAA6B;IAClG,GAAG,CAAC,GAAM;QACR,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC9C,YAAY,KAAW;QACrB,KAAK,CAAC,KAAK,CAAC,CAAC;QAgBf,iCAAa,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAC;QAYzF,6BAAS,CAAC,KAAU,EAAE,EAAE;YACtB,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAC;IAlCF,CAAC;IAED,iCAAiC;IACjC,MAAM,CAAC,KAAU;QACf,IAAI,KAAU,CAAC;QACf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAA,IAAI,8BAAW,MAAf,IAAI,EAAY,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAID,MAAM,CAAC,GAAW,EAAE,KAAU;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAA,IAAI,8BAAW,MAAf,IAAI,EAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,uBAAA,IAAI,8BAAW,MAAf,IAAI,EAAY,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAWD,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAA,IAAI,0BAAO,MAAX,IAAI,EAAQ,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;;AAED;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,GAAyB,EAAE,GAAG,IAAW;IAC3D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,WAAC,OAAA,IAAI,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,mCAAI,EAAE,CAAC,GAAG,OAAO,CAAA,EAAA,CAAC,CAAC;AACxF,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,GAAG,CAAC,GAAyB,EAAE,GAAG,IAAW;IAC3D,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,aAAa;AACb,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAevD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAA+B,KAAiB,EAAE,UAAU,GAAG,EAAE;IAC7F,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;IACvC,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IACxC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAY,EAAE,EAAE;YAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAa,IAAI,SAAS,EAAE,EAAE,CAAC;YAC/C,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IAC/B,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,GAAG,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC5D,UAAU;AACV,0CAA0C;AAC1C,uDAAuD;AACvD,iDAAiD;AACjD,SAAS,UAAU,CAAC,KAAa,EAAE,IAAgB;IACjD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,aAAa,GACf,MAAM,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;QAChD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,sDAAsD;AACtD,gBAAgB;AAChB,EAAE;AACF,mBAAmB;AACnB,uBAAuB;AACvB,uBAAuB;AACvB,gBAAgB;AAChB,0BAA0B;AAC1B,QAAQ;AACR,OAAO;AACP,MAAM;AACN,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,CAAC,GAAyB,EAAE,GAAG,IAAW,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,EAAE,EAAE,CAAC,GAAyB,EAAE,GAAG,IAAW,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,SAAS,EAAE,CAAC,GAAyB,EAAE,GAAG,IAAW,EAAqB,EAAE;QAC1E,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,iBAAiB,gBAAgB,GAAG,CAAC;QAC3D,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC9C,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,WAAW,CAAoC,CAAI;IACjE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,GAAc,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,OAAO,GAAG,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,SAAgB,EAAE,SAAgB;IAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAa,EAAE,KAAY;IACrD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAyB,EACzB,QAAgB,EAChB,QAA2C;IAE3C,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,gBAAgB;AAChB,MAAM,UAAU,QAAQ,CAAC,MAAmB;IAC1C,OAAO,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACnD,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CACjF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAoE;IAC3F,OAAO,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,MAA2D;IACxF,OAAO,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACnD,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CACvE,CAAC;AACJ,CAAC;AAOD;;;;;;;;;;GAUG;AACH,sCAAsC;AACtC,sDAAsD;AACtD,mEAAmE;AACnE,MAAM;AACN,mDAAmD;AACnD,oCAAoC;AACpC,+CAA+C;AAC/C,uGAAuG;AACvG,6BAA6B;AAC7B,uBAAuB;AACvB,6GAA6G;AAC7G,gCAAgC;AAChC,sCAAsC;AACtC,gCAAgC;AAChC,oDAAoD;AACpD,6BAA6B;AAC7B,oDAAoD;AACpD,2BAA2B;AAC3B,UAAU;AACV,aAAa;AACb,4EAA4E;AAC5E,2BAA2B;AAC3B,yCAAyC;AACzC,eAAe;AACf,gCAAgC;AAChC,4EAA4E;AAE5E,qGAAqG;AACrG,gDAAgD;AAChD,uBAAuB;AACvB,yBAAyB;AACzB,mBAAmB;AACnB,4BAA4B;AAC5B,iDAAiD;AACjD,mBAAmB;AACnB,4BAA4B;AAC5B,+DAA+D;AAC/D,mBAAmB;AACnB,yBAAyB;AACzB,kEAAkE;AAClE,mBAAmB;AACnB,mBAAmB;AACnB,4CAA4C;AAC5C,UAAU;AACV,mCAAmC;AACnC,SAAS;AACT,qCAAqC;AACrC,4CAA4C;AAC5C,oCAAoC;AACpC,0CAA0C;AAC1C,qCAAqC;AACrC,+CAA+C;AAC/C,oDAAoD;AACpD,6FAA6F;AAC7F,iBAAiB;AACjB,QAAQ;AACR,MAAM;AAEN,wBAAwB;AACxB,wCAAwC;AACxC,uEAAuE;AACvE,QAAQ;AAER,mBAAmB;AACnB,cAAc;AACd,sBAAsB;AACtB,sBAAsB;AACtB,qBAAqB;AACrB,mBAAmB;AACnB,wBAAwB;AACxB,wBAAwB;AACxB,mBAAmB;AACnB,qCAAqC;AACrC,8GAA8G;AAC9G,+HAA+H;AAC/H,MAAM;AAEN,sBAAsB;AACtB,IAAI"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "1.7.7";
1
+ export declare const version = "1.7.9";
2
2
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '1.7.7';
1
+ export const version = '1.7.9';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantou/gem",
3
- "version": "1.7.7",
3
+ "version": "1.7.9",
4
4
  "description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
5
5
  "keywords": [
6
6
  "frontend",
@@ -23,7 +23,10 @@ export abstract class GemDialogBaseElement extends GemElement {
23
23
 
24
24
  constructor() {
25
25
  super();
26
- this.inert = true;
26
+ this.effect(
27
+ () => (this.inert = true),
28
+ () => [],
29
+ );
27
30
  this.internals.role = 'dialog';
28
31
  this.internals.ariaModal = 'true';
29
32
  }
@@ -75,6 +75,7 @@ export class GemGestureElement extends GemElement {
75
75
  this.addEventListener('pointerdown', this.#onStart);
76
76
  this.addEventListener('pointermove', this.#onMoveSet);
77
77
  this.addEventListener('pointerup', this.#onEnd);
78
+ this.addEventListener('pointerleave', this.#onEnd); // 有时候 up 没有触发?
78
79
  this.addEventListener('pointercancel', this.#onEnd);
79
80
  this.addEventListener('dragstart', (evt) => evt.preventDefault());
80
81
  }
@@ -50,8 +50,7 @@ export class GemLinkElement extends GemElement {
50
50
  }
51
51
 
52
52
  constructor() {
53
- super();
54
- this.tabIndex = 0;
53
+ super({ focusable: true });
55
54
  this.addEventListener('click', this.#onClick);
56
55
  }
57
56
 
@@ -96,11 +95,16 @@ export class GemLinkElement extends GemElement {
96
95
  history.pushIgnoreCloseHandle({
97
96
  path: pathname,
98
97
  query: search,
99
- hash: hash,
98
+ hash,
100
99
  title: this.docTitle,
101
100
  });
102
101
  } else {
103
- history.pushIgnoreCloseHandle({ path: this.path, query: this.query, hash: this.hash, title: this.docTitle });
102
+ history.pushIgnoreCloseHandle({
103
+ path: this.path,
104
+ query: this.query,
105
+ hash: this.hash,
106
+ title: this.docTitle,
107
+ });
104
108
  }
105
109
  };
106
110
 
@@ -1,23 +1,57 @@
1
+ /**
2
+ * - ref 读取时需要用到 `target` `dataset`
3
+ * - 预渲染可能造成重复的元素,在序列化时可以用正则移除 GemReflectElement 渲染的从开始到结束连续的元素
4
+ * - `replaceAll(/<!--gem-reflect-start-->.*?<!--gem-reflect-end-->/gs, '')`
5
+ *
6
+ * 不能在在顶级代码块中清除这些元素,因为重复加载该代码时会把正常 reflect 元素清除,
7
+ * 比如 duoyun-ui 文档站加载示例元素时把 GemReflectElement 渲染的元素清除
8
+ */
1
9
  import { GemElement } from '../../lib/element';
2
10
  import { property } from '../../lib/decorators';
3
11
 
12
+ const START = 'gem-reflect-start';
13
+ const END = 'gem-reflect-end';
14
+
15
+ const createReflectFragmentTag = (tag: string) => new Comment(tag);
16
+
17
+ const getReflectFragment = (startNode: Comment) => {
18
+ const result: ChildNode[] = [];
19
+ let node: ChildNode | null = startNode;
20
+ while (node) {
21
+ result.push(node);
22
+ if (node.nodeValue === END) break;
23
+ node = node.nextSibling;
24
+ }
25
+ return result;
26
+ };
27
+
4
28
  export class GemReflectElement extends GemElement {
5
29
  @property target: HTMLElement = document.head;
6
30
 
7
31
  constructor() {
8
32
  super({ isLight: true });
9
- this.hidden = true;
10
- this.dataset.gemReflect = '';
33
+
34
+ this.effect(
35
+ () => {
36
+ this.hidden = true;
37
+ this.dataset.gemReflect = '';
38
+ },
39
+ () => [],
40
+ );
41
+
42
+ const startNode = createReflectFragmentTag(START);
43
+ const endNode = createReflectFragmentTag(END);
44
+ let childNodes: undefined | ChildNode[];
45
+
11
46
  this.effect(
12
47
  () => {
13
- const childNodes = [...this.childNodes];
14
- childNodes.forEach((node) => {
15
- if (node instanceof HTMLElement) {
16
- node.dataset.reflect = '';
17
- }
18
- this.target.append(node);
19
- });
48
+ if (!childNodes) {
49
+ [startNode, ...this.childNodes, endNode].forEach((node) => this.target.append(node));
50
+ } else {
51
+ childNodes.forEach((node) => this.target.append(node));
52
+ }
20
53
  return () => {
54
+ childNodes = getReflectFragment(startNode);
21
55
  childNodes.forEach((node) => node.remove());
22
56
  };
23
57
  },
@@ -1,8 +1,8 @@
1
1
  import { GemElement, html, TemplateResult } from '../../lib/element';
2
- import { property, connectStore, emitter, Emitter, boolattribute } from '../../lib/decorators';
3
- import { createStore, updateStore, Store } from '../../lib/store';
2
+ import { property, emitter, Emitter, boolattribute } from '../../lib/decorators';
3
+ import { createStore, updateStore, Store, connect } from '../../lib/store';
4
4
  import { titleStore, history, UpdateHistoryParams } from '../../lib/history';
5
- import { QueryString } from '../../lib/utils';
5
+ import { addListener, QueryString } from '../../lib/utils';
6
6
 
7
7
  interface NamePosition {
8
8
  [index: string]: number;
@@ -111,29 +111,44 @@ type State = {
111
111
  content?: TemplateResult;
112
112
  };
113
113
 
114
+ export type RouteTrigger = {
115
+ store: Store<any>;
116
+ replace: (arg: { path: string }) => void;
117
+ getParams: () => { path: string; query?: string | QueryString; hash?: string };
118
+ };
119
+
120
+ const scrollPositionMap = new Map<string, number>();
121
+
114
122
  /**
115
123
  * @attr inert 暂停路由更新
116
124
  * @fires routechange
117
125
  * @fires error
118
126
  * @fires loading
119
127
  */
120
- @connectStore(history.store)
121
128
  export class GemRouteElement extends GemElement<State> {
122
129
  @boolattribute transition: boolean;
123
130
  @property routes?: RouteItem[] | RoutesObject;
124
131
  /**
125
- * 不要多个 `<gem-route>` 共享,因为那样会导致后面的元素卸载前触发更新
132
+ * 路由更新后更新的 store,能从中读取到安全的路由数据
126
133
  *
127
134
  * @example
128
135
  * const locationStore = GemRouteElement.createLocationStore()
129
136
  * html`<gem-route .locationStore=${locationStore}>`
130
137
  */
131
- @property locationStore?: Store<{ path: string; params: Params; query: QueryString; data?: any }>;
138
+ @property locationStore?: ReturnType<(typeof GemRouteElement)['createLocationStore']>;
132
139
  @property key?: any; // 除了 href 提供另外一种方式来更新,比如语言更新也需要刷新 <gem-route>
140
+ @emitter loading: Emitter<RouteItem | null>;
141
+ @emitter beforeroutechange: Emitter<RouteItem | null>;
133
142
  @emitter routechange: Emitter<RouteItem | null>; // path 改变或者 key 改变,包含初始渲染
134
- @emitter loading: Emitter<RouteItem>;
135
143
  @emitter error: Emitter<any>;
136
144
 
145
+ /**自动让滚动容器恢复滚动位置 */
146
+ @property scrollContainer?: HTMLElement | (() => HTMLElement);
147
+ /**默认当有 `hash` 时不进行滚动 */
148
+ @property scrollIgnoreHash?: boolean;
149
+
150
+ @property trigger: RouteTrigger = history;
151
+
137
152
  /**当前使用的路由对象 */
138
153
  currentRoute: RouteItem | null;
139
154
  /**当前匹配的路由的 params */
@@ -141,9 +156,10 @@ export class GemRouteElement extends GemElement<State> {
141
156
 
142
157
  #lastLoader?: Promise<TemplateResult>;
143
158
 
159
+ /**不要多个 `<gem-route>` 共享,因为那样会导致后面的元素卸载前触发更新 */
144
160
  static createLocationStore = () => {
145
- const { path, query, data } = history.getParams();
146
- return createStore({ path, query, data, params: {} as Record<string, string> });
161
+ const { path, query, hash, data } = history.getParams();
162
+ return createStore({ path, query, hash, data, params: {} as Params });
147
163
  };
148
164
 
149
165
  static findRoute = (target: RouteItem[] | RoutesObject = [], path: string) => {
@@ -167,6 +183,10 @@ export class GemRouteElement extends GemElement<State> {
167
183
  return { route: defaultRoute };
168
184
  };
169
185
 
186
+ get #scrollContainer() {
187
+ return typeof this.scrollContainer === 'function' ? this.scrollContainer() : this.scrollContainer;
188
+ }
189
+
170
190
  constructor({ isLight, routes }: ConstructorOptions = {}) {
171
191
  super({ isLight });
172
192
  this.routes = routes;
@@ -177,38 +197,65 @@ export class GemRouteElement extends GemElement<State> {
177
197
  };
178
198
 
179
199
  #updateLocationStore = () => {
180
- if (this.locationStore) {
181
- const { path, query, data } = history.getParams();
182
- updateStore(this.locationStore, {
183
- path,
184
- params: this.currentParams,
185
- query,
186
- data,
187
- });
200
+ if (!this.locationStore) return;
201
+ const { path, query, hash, data } = history.getParams();
202
+ updateStore(this.locationStore, {
203
+ path,
204
+ params: this.currentParams,
205
+ query,
206
+ hash,
207
+ data,
208
+ });
209
+ };
210
+
211
+ #updateScrollContainerPosition = () => {
212
+ if (!this.#scrollContainer) return;
213
+ const scrollTop = scrollPositionMap.get(history.currentKey);
214
+ if (scrollTop) {
215
+ this.#scrollContainer.scroll(0, scrollTop);
216
+ } else if (this.scrollIgnoreHash || !history.getParams().hash) {
217
+ this.#scrollContainer.scroll(0, 0);
188
218
  }
189
219
  };
190
220
 
191
221
  #setContent = (route: RouteItem | null, params: Params, content?: TemplateResult) => {
222
+ this.beforeroutechange(route);
192
223
  this.#lastLoader = undefined;
193
224
  this.currentRoute = route;
194
225
  this.currentParams = params;
195
- const changeContent = () => {
226
+ const changeContent = async () => {
196
227
  this.setState({ content });
197
- this.routechange(this.currentRoute);
228
+ // 要确保新页面能读取到新路由数据
198
229
  this.#updateLocationStore();
230
+ // 等待页面渲染完成
231
+ await Promise.resolve();
232
+ this.#updateScrollContainerPosition();
233
+ this.routechange(this.currentRoute);
199
234
  };
200
235
  if (this.transition && 'startViewTransition' in document) {
201
- (document as any).startViewTransition(() => {
202
- changeContent();
203
- // 等待路由渲染
204
- return Promise.resolve();
205
- });
236
+ (document as any).startViewTransition(() => changeContent());
206
237
  } else {
207
238
  changeContent();
208
239
  }
209
240
  };
210
241
 
211
242
  mounted() {
243
+ this.effect(
244
+ () => {
245
+ if (!this.#scrollContainer) return;
246
+ return addListener(history, 'beforechange', () =>
247
+ scrollPositionMap.set(history.currentKey, this.#scrollContainer!.scrollTop),
248
+ );
249
+ },
250
+ () => [this.scrollContainer],
251
+ );
252
+
253
+ this.effect(
254
+ // 触发 this.#update
255
+ () => connect(this.trigger.store, () => this.setState({})),
256
+ () => [this.trigger],
257
+ );
258
+
212
259
  this.effect(
213
260
  ([key, path], old) => {
214
261
  // 只有查询参数改变
@@ -216,40 +263,17 @@ export class GemRouteElement extends GemElement<State> {
216
263
  this.#updateLocationStore();
217
264
  return;
218
265
  }
219
- const { route, params = {} } = GemRouteElement.findRoute(this.routes, path);
220
- const { redirect, content, getContent } = route || {};
221
- if (redirect) {
222
- history.replace({ path: redirect });
223
- return;
224
- }
225
- const title = route?.title;
226
- if (title) updateStore(titleStore, { title });
227
- const contentOrLoader = content || getContent?.(params);
228
- if (contentOrLoader instanceof Promise) {
229
- this.loading(route!);
230
- this.#lastLoader = contentOrLoader;
231
- const isSomeLoader = () => this.#lastLoader === contentOrLoader;
232
- contentOrLoader
233
- .then((content) => {
234
- if (isSomeLoader()) this.#setContent(route, params, content);
235
- })
236
- .catch((err) => {
237
- if (isSomeLoader()) this.error(err);
238
- });
239
- return;
240
- }
241
- this.#setContent(route, params, contentOrLoader);
266
+ this.update();
242
267
  },
243
268
  () => {
244
- const { path } = history.getParams();
245
- return [this.key, path, location.search];
269
+ const { path, query, hash } = this.trigger.getParams();
270
+ return [this.key, path, query, hash] as const;
246
271
  },
247
272
  );
248
273
  }
249
274
 
250
275
  shouldUpdate() {
251
- if (this.inert) return false;
252
- return true;
276
+ return this.inert ? false : true;
253
277
  }
254
278
 
255
279
  render() {
@@ -266,6 +290,33 @@ export class GemRouteElement extends GemElement<State> {
266
290
  ${content ?? html`<slot></slot>`}
267
291
  `;
268
292
  }
293
+
294
+ update = () => {
295
+ const { route, params = {} } = GemRouteElement.findRoute(this.routes, this.trigger.getParams().path);
296
+ const { redirect, content, getContent } = route || {};
297
+ if (redirect) {
298
+ this.trigger.replace({ path: redirect });
299
+ return;
300
+ }
301
+ if (this.trigger === history) {
302
+ updateStore(titleStore, { title: route?.title });
303
+ }
304
+ const contentOrLoader = content || getContent?.(params);
305
+ this.loading(route);
306
+ if (contentOrLoader instanceof Promise) {
307
+ this.#lastLoader = contentOrLoader;
308
+ const isSomeLoader = () => this.#lastLoader === contentOrLoader;
309
+ contentOrLoader
310
+ .then((content) => {
311
+ if (isSomeLoader()) this.#setContent(route, params, content);
312
+ })
313
+ .catch((err) => {
314
+ if (isSomeLoader()) this.error(err);
315
+ });
316
+ return;
317
+ }
318
+ this.#setContent(route, params, contentOrLoader);
319
+ };
269
320
  }
270
321
 
271
322
  export class GemLightRouteElement extends GemRouteElement {
@@ -17,18 +17,24 @@ import { GemElement, html } from '../../lib/element';
17
17
  import { attribute, boolattribute } from '../../lib/decorators';
18
18
  import { updateStore, connect } from '../../lib/store';
19
19
  import { titleStore } from '../../lib/history';
20
+ import { addMicrotask } from '../../lib/utils';
20
21
 
21
22
  const defaultTitle = document.title;
22
23
 
24
+ let documentTitle = '';
25
+ const setTitle = () => (document.title = documentTitle);
26
+
23
27
  function setDocumentTitle(str?: string | null, prefix = '', suffix = '') {
24
28
  const title = titleStore.title || str;
25
29
  if (title && title !== defaultTitle) {
26
30
  GemTitleElement.title = title;
27
- document.title = prefix + GemTitleElement.title + suffix;
31
+ documentTitle = prefix + GemTitleElement.title + suffix;
28
32
  } else {
29
33
  GemTitleElement.title = defaultTitle;
30
- document.title = GemTitleElement.title;
34
+ documentTitle = GemTitleElement.title;
31
35
  }
36
+ // 避免重定向时的中间状态
37
+ addMicrotask(setTitle);
32
38
  }
33
39
 
34
40
  connect(titleStore, setDocumentTitle);
@@ -62,6 +68,7 @@ export class GemTitleElement extends GemElement {
62
68
  super();
63
69
  new MutationObserver(() => this.update()).observe(this, {
64
70
  characterData: true,
71
+ childList: true,
65
72
  subtree: true,
66
73
  });
67
74
  }
@@ -1,6 +1,9 @@
1
1
  import { createStore, updateStore, Store } from '../lib/store';
2
2
  import { html, TemplateResult } from '../lib/element';
3
3
  import { GemError } from '../lib/utils';
4
+ import type { RouteTrigger } from '../elements/base/route';
5
+
6
+ import { logger } from './logger';
4
7
 
5
8
  // Hello, $1
6
9
  // See $1<detail>
@@ -59,7 +62,7 @@ interface I18nOptions<T> {
59
62
  onChange?: (currentLanguage: string) => void;
60
63
  }
61
64
 
62
- export class I18n<T = Record<string, Msg>> {
65
+ export class I18n<T = Record<string, Msg>> implements RouteTrigger {
63
66
  resources: Resources<T>;
64
67
  fallbackLanguage: string;
65
68
  currentLanguage: string;
@@ -71,6 +74,12 @@ export class I18n<T = Record<string, Msg>> {
71
74
 
72
75
  store: Store<any>;
73
76
 
77
+ replace = ({ path }: { path: string }) => {
78
+ this.setLanguage(path);
79
+ };
80
+
81
+ getParams = () => ({ path: this.currentLanguage });
82
+
74
83
  get #cacheCurrentKey() {
75
84
  return `${this.cachePrefix}:current`;
76
85
  }
@@ -164,8 +173,7 @@ export class I18n<T = Record<string, Msg>> {
164
173
  let pack: Partial<T>;
165
174
  const data = this.resources[lang];
166
175
  if (!data) {
167
- // eslint-disable-next-line no-console
168
- console.warn(`${this.cachePrefix}: not found \`${lang}\``);
176
+ logger.warn(`${this.cachePrefix}: not found \`${lang}\``);
169
177
  return this.resetLanguage();
170
178
  }
171
179
 
@@ -0,0 +1,21 @@
1
+ export class Logger {
2
+ _type: string;
3
+
4
+ constructor(type: string) {
5
+ this._type = type;
6
+ }
7
+
8
+ info = (...args: any[]) => {
9
+ console.log(`[${this._type}]:`, ...args);
10
+ };
11
+
12
+ warn = (...args: any[]) => {
13
+ console.warn(`[${this._type}]:`, ...args);
14
+ };
15
+
16
+ error = (...args: any[]) => {
17
+ console.error(`[${this._type}]:`, ...args);
18
+ };
19
+ }
20
+
21
+ export const logger = new Logger('GEM');
@@ -2,7 +2,10 @@
2
2
  // @ts-nocheck
3
3
  if (typeof window === 'undefined') {
4
4
  const getAny = () => {
5
- const anonymous = () => getAny();
5
+ // constructable
6
+ function anonymous() {
7
+ return getAny();
8
+ }
6
9
  Object.defineProperties(anonymous, {
7
10
  length: { writable: true },
8
11
  name: { writable: true },
@@ -16,14 +19,21 @@ if (typeof window === 'undefined') {
16
19
  };
17
20
  const any = getAny();
18
21
 
22
+ globalThis.window = globalThis;
23
+ globalThis.location = new URL('about:blank');
24
+ globalThis.HTMLElement = null;
25
+
19
26
  globalThis.document = any;
20
27
  globalThis.addEventListener = any;
21
28
  globalThis.history = any;
22
29
  globalThis.navigator = any;
23
30
  globalThis.customElements = any;
24
- globalThis.HTMLElement = null;
25
- globalThis.location = new URL('about:blank');
26
- globalThis.window = globalThis;
31
+
32
+ // duoyun-ui
33
+ globalThis.CSSStyleSheet = any;
34
+ globalThis.Document = any;
35
+ globalThis.Element = any;
36
+ globalThis.MutationObserver = any;
27
37
  }
28
38
 
29
39
  export {};