@mantou/gem 2.2.0 → 2.2.1

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 (159) hide show
  1. package/dist/gem.es.js +2007 -2020
  2. package/dist/gem.umd.js +15 -32
  3. package/elements/base/dialog.d.ts +1 -1
  4. package/elements/base/dialog.d.ts.map +1 -1
  5. package/elements/base/dialog.js +2 -2
  6. package/elements/base/dialog.js.map +1 -1
  7. package/elements/base/gesture.d.ts +1 -1
  8. package/elements/base/gesture.d.ts.map +1 -1
  9. package/elements/base/gesture.js +4 -4
  10. package/elements/base/gesture.js.map +1 -1
  11. package/elements/base/link.d.ts.map +1 -1
  12. package/elements/base/link.js +7 -12
  13. package/elements/base/link.js.map +1 -1
  14. package/elements/base/modal-factory.d.ts +23 -12
  15. package/elements/base/modal-factory.d.ts.map +1 -1
  16. package/elements/base/modal-factory.js +14 -14
  17. package/elements/base/modal-factory.js.map +1 -1
  18. package/elements/base/reflect.d.ts +1 -2
  19. package/elements/base/reflect.d.ts.map +1 -1
  20. package/elements/base/reflect.js +8 -10
  21. package/elements/base/reflect.js.map +1 -1
  22. package/elements/base/route.d.ts +17 -7
  23. package/elements/base/route.d.ts.map +1 -1
  24. package/elements/base/route.js +6 -6
  25. package/elements/base/route.js.map +1 -1
  26. package/elements/base/title.d.ts +1 -1
  27. package/elements/base/title.d.ts.map +1 -1
  28. package/elements/base/title.js +3 -3
  29. package/elements/base/title.js.map +1 -1
  30. package/elements/base/unsafe.d.ts +1 -1
  31. package/elements/base/unsafe.d.ts.map +1 -1
  32. package/elements/base/unsafe.js +1 -1
  33. package/elements/base/unsafe.js.map +1 -1
  34. package/elements/base/use.d.ts +1 -1
  35. package/elements/base/use.d.ts.map +1 -1
  36. package/elements/base/use.js +1 -1
  37. package/elements/base/use.js.map +1 -1
  38. package/elements/link.js +1 -1
  39. package/elements/link.js.map +1 -1
  40. package/elements/route.js +1 -1
  41. package/elements/route.js.map +1 -1
  42. package/helper/hmr.d.ts +11 -0
  43. package/helper/hmr.d.ts.map +1 -0
  44. package/helper/hmr.js +255 -0
  45. package/helper/hmr.js.map +1 -0
  46. package/helper/i18n.d.ts +2 -2
  47. package/helper/i18n.d.ts.map +1 -1
  48. package/helper/i18n.js +5 -4
  49. package/helper/i18n.js.map +1 -1
  50. package/helper/logger.d.ts +1 -1
  51. package/helper/logger.d.ts.map +1 -1
  52. package/helper/logger.js +8 -5
  53. package/helper/logger.js.map +1 -1
  54. package/helper/mediaquery.js +1 -1
  55. package/helper/mediaquery.js.map +1 -1
  56. package/helper/ssr-shim.d.ts.map +1 -1
  57. package/helper/ssr-shim.js +2 -0
  58. package/helper/ssr-shim.js.map +1 -1
  59. package/helper/theme.d.ts +3 -4
  60. package/helper/theme.d.ts.map +1 -1
  61. package/helper/theme.js +1 -1
  62. package/helper/theme.js.map +1 -1
  63. package/index.d.ts +1 -2
  64. package/index.d.ts.map +1 -1
  65. package/index.js +1 -3
  66. package/index.js.map +1 -1
  67. package/lib/decorators.d.ts +5 -13
  68. package/lib/decorators.d.ts.map +1 -1
  69. package/lib/decorators.js +40 -42
  70. package/lib/decorators.js.map +1 -1
  71. package/lib/directive.d.ts +0 -18
  72. package/lib/directive.d.ts.map +1 -1
  73. package/lib/directive.js +1 -2
  74. package/lib/directive.js.map +1 -1
  75. package/lib/element.d.ts +8 -137
  76. package/lib/element.d.ts.map +1 -1
  77. package/lib/element.js +16 -481
  78. package/lib/element.js.map +1 -1
  79. package/lib/history.d.ts +67 -9
  80. package/lib/history.d.ts.map +1 -1
  81. package/lib/history.js +12 -12
  82. package/lib/history.js.map +1 -1
  83. package/lib/lit-html.d.ts +5 -104
  84. package/lib/lit-html.d.ts.map +1 -1
  85. package/lib/lit-html.js +73 -27
  86. package/lib/lit-html.js.map +1 -1
  87. package/lib/reactive.d.ts +123 -0
  88. package/lib/reactive.d.ts.map +1 -0
  89. package/lib/reactive.js +478 -0
  90. package/lib/reactive.js.map +1 -0
  91. package/lib/repeat.d.ts +3 -3
  92. package/lib/repeat.d.ts.map +1 -1
  93. package/lib/repeat.js +3 -3
  94. package/lib/repeat.js.map +1 -1
  95. package/lib/store.d.ts +13 -2
  96. package/lib/store.d.ts.map +1 -1
  97. package/lib/store.js +1 -0
  98. package/lib/store.js.map +1 -1
  99. package/lib/utils.d.ts +23 -11
  100. package/lib/utils.d.ts.map +1 -1
  101. package/lib/utils.js +20 -15
  102. package/lib/utils.js.map +1 -1
  103. package/lib/version.d.ts +1 -1
  104. package/lib/version.d.ts.map +1 -1
  105. package/lib/version.js +1 -2
  106. package/lib/version.js.map +1 -1
  107. package/package.json +3 -3
  108. package/src/dist.ts +6 -8
  109. package/src/elements/base/dialog.ts +2 -2
  110. package/src/elements/base/gesture.ts +5 -5
  111. package/src/elements/base/link.ts +16 -22
  112. package/src/elements/base/modal-factory.ts +14 -14
  113. package/src/elements/base/reflect.ts +2 -3
  114. package/src/elements/base/route.ts +13 -14
  115. package/src/elements/base/title.ts +4 -4
  116. package/src/elements/base/unsafe.ts +1 -1
  117. package/src/elements/base/use.ts +1 -1
  118. package/src/elements/link.ts +1 -1
  119. package/src/elements/route.ts +1 -1
  120. package/src/helper/hmr.ts +305 -0
  121. package/src/helper/i18n.ts +7 -7
  122. package/src/helper/logger.ts +9 -5
  123. package/src/helper/mediaquery.ts +1 -1
  124. package/src/helper/ssr-shim.ts +3 -0
  125. package/src/helper/theme.ts +4 -4
  126. package/src/index.ts +1 -4
  127. package/src/lib/decorators.ts +56 -68
  128. package/src/lib/directive.ts +3 -5
  129. package/src/lib/element.ts +22 -600
  130. package/src/lib/history.ts +14 -15
  131. package/src/lib/lit-html.ts +86 -34
  132. package/src/lib/reactive.ts +596 -0
  133. package/src/lib/repeat.ts +5 -5
  134. package/src/lib/store.ts +1 -0
  135. package/src/lib/utils.ts +35 -30
  136. package/src/lib/version.ts +1 -2
  137. package/src/test/elements/link.test.ts +2 -2
  138. package/src/test/elements/reflect.test.ts +3 -3
  139. package/src/test/elements/title.test.ts +2 -2
  140. package/src/test/gem-element/advance.test.ts +10 -9
  141. package/src/test/gem-element/basic.test.ts +3 -3
  142. package/src/test/gem-element/decorators.test.ts +10 -10
  143. package/src/test/gem-element/multi.test.ts +2 -2
  144. package/src/test/history.test.ts +1 -2
  145. package/src/test/store.test.ts +2 -3
  146. package/src/test/utils.test.ts +4 -5
  147. package/src/test/utils.ts +2 -2
  148. package/helper/react-shim.d.ts +0 -15
  149. package/helper/react-shim.d.ts.map +0 -1
  150. package/helper/react-shim.js +0 -56
  151. package/helper/react-shim.js.map +0 -1
  152. package/lib/directives.d.ts +0 -4
  153. package/lib/directives.d.ts.map +0 -1
  154. package/lib/directives.js +0 -5
  155. package/lib/directives.js.map +0 -1
  156. package/lib/ref.d.ts +0 -1
  157. package/lib/ref.d.ts.map +0 -1
  158. package/lib/ref.js +0 -2
  159. package/lib/ref.js.map +0 -1
package/lib/utils.d.ts CHANGED
@@ -1,5 +1,18 @@
1
- export declare function addMicrotask(func: () => void): void;
2
- export declare function createUpdater<T, Fn = (payload?: Partial<T>) => any>(initState: T, fn: Fn): Fn & T;
1
+ export declare function addMicrotask(func: () => void, isNodeForceMicrotask?: boolean): void;
2
+ type OverrideFn = {
3
+ name: never;
4
+ apply: never;
5
+ call: never;
6
+ bind: never;
7
+ toString: never;
8
+ prototype: never;
9
+ length: never;
10
+ arguments: never;
11
+ caller: never;
12
+ [Symbol.hasInstance]: never;
13
+ [Symbol.metadata]: never;
14
+ };
15
+ export declare function createUpdater<T, Fn = (payload?: Partial<T>) => any>(initState: T, fn: Fn): Fn & Omit<OverrideFn, keyof T> & T;
3
16
  export declare function absoluteLocation(currentPath?: string, relativePath?: string): string;
4
17
  export type NonPrimitive = object;
5
18
  export declare function addListener<T extends EventTarget, A extends Parameters<T['addEventListener']>>(target: T, type: A[0], listener: A[1], options?: A[2]): () => void;
@@ -20,8 +33,14 @@ export declare class LinkedList<T = any> extends EventTarget {
20
33
  get last(): LinkedListItem<T> | undefined;
21
34
  isSuperLinkOf(subLink: LinkedList<T>): boolean;
22
35
  find(value: T): LinkedListItem<T> | undefined;
36
+ /**
37
+ * 添加到尾部,已存在时会删除老的项目
38
+ * 如果是添加第一个,start 事件会在添加前触发,避免处理事件重复的逻辑
39
+ */
23
40
  add(value: T): void;
41
+ /** 删除这个元素后没有其他元素时立即出发 end 事件 */
24
42
  delete(value: T): LinkedListItem<T> | undefined;
43
+ /** 获取头部元素,会从链表删除 */
25
44
  get(): T | undefined;
26
45
  }
27
46
  export declare class PropProxyMap<T extends NonPrimitive, V = unknown> extends WeakMap<T, Record<string, V>> {
@@ -29,7 +48,6 @@ export declare class PropProxyMap<T extends NonPrimitive, V = unknown> extends W
29
48
  }
30
49
  export declare class QueryString extends URLSearchParams {
31
50
  #private;
32
- constructor(param?: any);
33
51
  concat(param: any): void;
34
52
  setAny(key: string, value: any): void;
35
53
  getAny(key: string): any;
@@ -52,18 +70,12 @@ export declare class GemError extends Error {
52
70
  constructor(msg: string);
53
71
  }
54
72
  export declare function isArrayChange(newValues: any[], oldValues: any[]): boolean;
55
- export declare function objectMapToString<T = any>(object: Record<string, T>, separate: string, toString: (key: string, value: T) => string): string;
56
- type StyleProp = keyof CSSStyleDeclaration | `--${string}` | 'scrollbarWidth' | 'scrollbarColor' | 'positionAnchor' | 'anchorDefault' | 'anchorName';
73
+ export declare function objectMapToString<T = any>(object: Record<string, T>, separate: string, toStr: (key: string, value: T) => string): string;
74
+ type StyleProp = keyof CSSStyleDeclaration | `--${string}` | 'positionAnchor' | 'anchorDefault' | 'anchorName';
57
75
  export type StyleObject = Partial<Record<StyleProp, string | number | false | undefined | null>>;
58
76
  export declare function styleMap(object: StyleObject): string;
59
77
  export declare function classMap(object: Record<string, string | number | boolean | undefined | null>): string;
60
78
  export declare const partMap: typeof classMap;
61
79
  export declare function exportPartsMap(object: Record<string, string | boolean | undefined | null>): string;
62
- declare global {
63
- interface PropertyIndexedKeyframes extends StyleObject {
64
- }
65
- interface Keyframe extends StyleObject {
66
- }
67
- }
68
80
  export {};
69
81
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,QAO5C;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAQvE,EAAE,GAAG,CAAC,CACvB;AAGD,wBAAgB,gBAAgB,CAAC,WAAW,SAAK,EAAE,YAAY,SAAK,UAGnE;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAC5F,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EACV,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EACd,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAIf;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;CACZ;AACD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,qBAAa,UAAU,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,WAAW;;IAC1C,gBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC3D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,GAAG,EACjE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,KACxC,IAAI,CAAC;IAwBV,IAAI,IAAI,WAEP;IAED,IAAI,KAAK,kCAER;IAED,IAAI,IAAI,kCAEP;IAED,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAYpC,IAAI,CAAC,KAAK,EAAE,CAAC;IAMb,GAAG,CAAC,KAAK,EAAE,CAAC;IAkBZ,MAAM,CAAC,KAAK,EAAE,CAAC;IAUf,GAAG,IAAI,CAAC,GAAG,SAAS;CAMrB;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,GAAG,OAAO,CAAE,SAAQ,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAClG,GAAG,CAAC,GAAG,EAAE,CAAC;CAQX;AAED,qBAAa,WAAY,SAAQ,eAAe;;gBAClC,KAAK,CAAC,EAAE,GAAG;IAKvB,MAAM,CAAC,KAAK,EAAE,GAAG;IAcjB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAmB9B,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,SAAS,CAAC,GAAG,EAAE,MAAM;IAMrB,QAAQ;IAKR,MAAM;CAGP;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,UAE5D;AAGD,eAAO,MAAM,MAAM,YAAM,CAAC;AAE1B,wBAAgB,SAAS,CAAC,GAAG,SAAI,GAAG,MAAM,CAMzC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,UAE3C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,UAE3C;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAKlE;AAED,qBAAa,QAAS,SAAQ,KAAK;gBACrB,GAAG,EAAE,MAAM;CAIxB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAO/D;AAED,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,UAQ5C;AAGD,KAAK,SAAS,GACV,MAAM,mBAAmB,GACzB,KAAK,MAAM,EAAE,GACb,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,YAAY,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;AAGjG,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,UAI3C;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,UAE5F;AAED,eAAO,MAAM,OAAO,iBAAW,CAAC;AAGhC,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,UAIzF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,wBAAyB,SAAQ,WAAW;KAAG;IACzD,UAAU,QAAS,SAAQ,WAAW;KAAG;CAC1C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
package/lib/utils.js CHANGED
@@ -1,12 +1,18 @@
1
1
  const { assign, fromEntries, entries, keys } = Object;
2
2
  const microtaskSet = new Set();
3
- export function addMicrotask(func) {
3
+ export function addMicrotask(func, isNodeForceMicrotask) {
4
4
  if (microtaskSet.has(func))
5
5
  return;
6
- queueMicrotask(() => {
6
+ const next = () => {
7
7
  microtaskSet.delete(func);
8
8
  func();
9
- });
9
+ };
10
+ if (isNodeForceMicrotask) {
11
+ process.nextTick(next);
12
+ }
13
+ else {
14
+ Promise.resolve().then(next);
15
+ }
10
16
  microtaskSet.add(func);
11
17
  }
12
18
  // 注意 typeof state === 'function' 但是没有 Function 的方法和属性
@@ -17,7 +23,8 @@ export function createUpdater(initState, fn) {
17
23
  delete state.name;
18
24
  delete state.length;
19
25
  assign(state, initState);
20
- // TODO: type
26
+ // ts 不允许直接 Omit 掉 Fn 上的属性
27
+ // 只能利用 ts plugin 移除多余的自动完成项
21
28
  return state;
22
29
  }
23
30
  // 不编码 hash 用于比较
@@ -77,8 +84,10 @@ export class LinkedList extends EventTarget {
77
84
  find(value) {
78
85
  return this.#map.get(value);
79
86
  }
80
- // 添加到尾部,已存在时会删除老的项目
81
- // 如果是添加第一个,start 事件会在添加前触发,避免处理事件重复的逻辑
87
+ /**
88
+ * 添加到尾部,已存在时会删除老的项目
89
+ * 如果是添加第一个,start 事件会在添加前触发,避免处理事件重复的逻辑
90
+ */
82
91
  add(value) {
83
92
  if (!this.#lastItem) {
84
93
  this.dispatchEvent(new CustomEvent('start'));
@@ -95,7 +104,7 @@ export class LinkedList extends EventTarget {
95
104
  }
96
105
  this.#map.set(value, item);
97
106
  }
98
- // 删除这个元素后没有其他元素时立即出发 end 事件
107
+ /** 删除这个元素后没有其他元素时立即出发 end 事件 */
99
108
  delete(value) {
100
109
  const deleteItem = this.#delete(value);
101
110
  if (!this.#firstItem) {
@@ -103,8 +112,7 @@ export class LinkedList extends EventTarget {
103
112
  }
104
113
  return deleteItem;
105
114
  }
106
- // 获取头部元素
107
- // 会从链表删除
115
+ /** 获取头部元素,会从链表删除 */
108
116
  get() {
109
117
  const firstItem = this.#firstItem;
110
118
  if (!firstItem)
@@ -124,9 +132,6 @@ export class PropProxyMap extends WeakMap {
124
132
  }
125
133
  }
126
134
  export class QueryString extends URLSearchParams {
127
- constructor(param) {
128
- super(param);
129
- }
130
135
  // support `{ key: ObjectValue }`
131
136
  concat(param) {
132
137
  let query;
@@ -196,7 +201,7 @@ export function randomStr(len = 5) {
196
201
  return str;
197
202
  }
198
203
  export function camelToKebabCase(str) {
199
- return str.replace(/[A-Z]/g, ($1) => '-' + $1.toLowerCase());
204
+ return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
200
205
  }
201
206
  export function kebabToCamelCase(str) {
202
207
  return str.replace(/-(.)/g, (_substr, $1) => $1.toUpperCase());
@@ -223,10 +228,10 @@ export function isArrayChange(newValues, oldValues) {
223
228
  }
224
229
  return false;
225
230
  }
226
- export function objectMapToString(object, separate, toString) {
231
+ export function objectMapToString(object, separate, toStr) {
227
232
  let result = separate;
228
233
  for (const key in object) {
229
- const s = toString(key, object[key]);
234
+ const s = toStr(key, object[key]);
230
235
  result += s ? s + separate : '';
231
236
  }
232
237
  return result;
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":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "0.0.0";
1
+ export declare const version = "2.2.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/lib/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/lib/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/lib/version.js CHANGED
@@ -1,3 +1,2 @@
1
- // Do not modify manually
2
- export const version = '0.0.0';
1
+ export const version = '2.2.1';
3
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/lib/version.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/lib/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantou/gem",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
5
5
  "keywords": [
6
6
  "frontend",
@@ -38,10 +38,10 @@
38
38
  "build:lib": "vite build",
39
39
  "build": "pnpm build:module && pnpm build:lib",
40
40
  "start": "pnpm build:module --watch",
41
- "test": "cross-env NODE_OPTIONS=--no-experimental-fetch wtr"
41
+ "test": "cross-env wtr"
42
42
  },
43
43
  "devDependencies": {
44
- "@gemjs/config": "^2.1.0",
44
+ "@gemjs/config": "^2.1.1",
45
45
  "@types/chai": "^5.0.0",
46
46
  "@types/mocha": "^10.0.7",
47
47
  "@types/trusted-types": "^2.0.7",
package/src/dist.ts CHANGED
@@ -1,20 +1,18 @@
1
1
  /**
2
2
  * 导出所有内容,包括 gem 元素
3
3
  */
4
+
5
+ export * from '.';
6
+ export * from './elements/base/dialog';
7
+ export * from './elements/base/modal-factory';
4
8
  export * from './elements/link';
9
+ export * from './elements/reflect';
5
10
  export * from './elements/route';
6
11
  export * from './elements/title';
7
- export * from './elements/use';
8
12
  export * from './elements/unsafe';
9
- export * from './elements/reflect';
10
-
11
- export * from './elements/base/modal-factory';
12
- export * from './elements/base/dialog';
13
-
13
+ export * from './elements/use';
14
14
  export * from './helper/i18n';
15
15
  export * from './helper/logger';
16
16
  export * from './helper/mediaquery';
17
17
  export * from './helper/request';
18
18
  export * from './helper/theme';
19
-
20
- export * from '.';
@@ -1,6 +1,6 @@
1
- import { GemElement } from '../../lib/element';
2
- import { attribute, state, connectStore, aria, willMount } from '../../lib/decorators';
1
+ import { aria, attribute, connectStore, state, willMount } from '../../lib/decorators';
3
2
  import { history } from '../../lib/history';
3
+ import { GemElement } from '../../lib/reactive';
4
4
 
5
5
  const final = Symbol();
6
6
 
@@ -1,6 +1,6 @@
1
- import { css, GemElement } from '../../lib/element';
2
1
  import type { Emitter } from '../../lib/decorators';
3
2
  import { adoptedStyle, attribute, emitter, mounted, state } from '../../lib/decorators';
3
+ import { css, GemElement } from '../../lib/reactive';
4
4
 
5
5
  export type PanEventDetail = {
6
6
  // movement
@@ -73,7 +73,7 @@ export class GemGestureElement extends GemElement {
73
73
  @state grabbing: boolean;
74
74
 
75
75
  #pressed = false; // 触发 press 之后不触发其他事件
76
- #pressTimer = 0;
76
+ #pressTimer: ReturnType<typeof setTimeout> | number = 0;
77
77
 
78
78
  #startEventMap: Map<number, PointerEvent> = new Map();
79
79
 
@@ -134,7 +134,7 @@ export class GemGestureElement extends GemElement {
134
134
  this.#startEventMap.set(evt.pointerId, evt);
135
135
  if (evt.isPrimary) {
136
136
  this.#pressed = false;
137
- this.#pressTimer = window.setTimeout(() => {
137
+ this.#pressTimer = setTimeout(() => {
138
138
  this.press(evt);
139
139
  this.#pressed = true;
140
140
  }, 251);
@@ -187,7 +187,7 @@ export class GemGestureElement extends GemElement {
187
187
  Math.abs(move.clientX - startEvent.clientX) > accuracy ||
188
188
  Math.abs(move.clientY - startEvent.clientY) > accuracy
189
189
  ) {
190
- window.clearTimeout(this.#pressTimer);
190
+ clearTimeout(this.#pressTimer);
191
191
  }
192
192
  }
193
193
  };
@@ -205,7 +205,7 @@ export class GemGestureElement extends GemElement {
205
205
  #onEnd = async (evt: PointerEvent) => {
206
206
  evt.stopPropagation();
207
207
  const { pointerId } = evt;
208
- window.clearTimeout(this.#pressTimer);
208
+ clearTimeout(this.#pressTimer);
209
209
 
210
210
  if (this.movesMap.size === 1) {
211
211
  this.grabbing = false;
@@ -1,23 +1,22 @@
1
- import { css, GemElement, html } from '../../lib/element';
2
1
  import {
2
+ adoptedStyle,
3
+ aria,
3
4
  attribute,
4
- property,
5
- state,
6
- part,
5
+ boolattribute,
7
6
  connectStore,
8
- shadow,
9
- aria,
10
- adoptedStyle,
11
- mounted,
12
7
  effect,
13
- boolattribute,
8
+ mounted,
9
+ part,
10
+ property,
11
+ shadow,
12
+ state,
14
13
  template,
15
14
  } from '../../lib/decorators';
16
- import { history, basePathStore } from '../../lib/history';
15
+ import { css, GemElement, html } from '../../lib/element';
16
+ import { basePathStore, history } from '../../lib/history';
17
17
  import { absoluteLocation } from '../../lib/utils';
18
-
19
18
  import type { RouteItem, RouteOptions } from './route';
20
- import { matchPath, createHistoryParams, createPath } from './route';
19
+ import { createHistoryParams, createPath, matchPath } from './route';
21
20
 
22
21
  function isExternal(path: string) {
23
22
  return !path.startsWith('/');
@@ -73,7 +72,9 @@ export class GemLinkElement extends GemElement {
73
72
  return this.hint || 'on';
74
73
  }
75
74
 
76
- #onClick = async () => {
75
+ #onClick = async (e: MouseEvent) => {
76
+ e.preventDefault();
77
+
77
78
  const locationString = this._getLocationString();
78
79
 
79
80
  if (!locationString) return;
@@ -122,8 +123,6 @@ export class GemLinkElement extends GemElement {
122
123
  }
123
124
  };
124
125
 
125
- #preventDefault = (e: MouseEvent) => e.preventDefault();
126
-
127
126
  #getHint = () => {
128
127
  const locationString = this._getLocationString();
129
128
  return isExternal(locationString)
@@ -146,13 +145,8 @@ export class GemLinkElement extends GemElement {
146
145
 
147
146
  @template()
148
147
  #content = () => {
149
- return html`<a
150
- part=${this.link}
151
- @click=${this.#preventDefault}
152
- href=${this.#hint === 'off' ? null : this.#getHint()}
153
- tabindex="-1"
154
- ><slot></slot
155
- ></a>`;
148
+ const href = this.#hint === 'off' ? null : this.#getHint();
149
+ return html`<a part=${this.link} href=${href} tabindex="-1"><slot></slot></a>`;
156
150
  };
157
151
 
158
152
  /**
@@ -1,7 +1,7 @@
1
- import { GemElement } from '../../lib/element';
2
- import { connect, createStore } from '../../lib/store';
3
- import { history } from '../../lib/history';
4
1
  import { aria, mounted, shadow } from '../../lib/decorators';
2
+ import { history } from '../../lib/history';
3
+ import { GemElement } from '../../lib/reactive';
4
+ import { connect, createStore } from '../../lib/store';
5
5
 
6
6
  const open = Symbol('open mark');
7
7
 
@@ -32,7 +32,7 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
32
32
 
33
33
  /**@final */
34
34
  static get isOpen() {
35
- return this.store[open];
35
+ return ModalElement.store[open];
36
36
  }
37
37
 
38
38
  /**
@@ -41,19 +41,19 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
41
41
  * 浏览器 history 为异步 API,需要设置较长延迟;
42
42
  */
43
43
  static open(opts: T) {
44
- const instance = new this();
45
- this.instance = instance;
46
- this.inertStore = ([...document.body.children] as HTMLElement[]).filter((e) => !e.inert);
47
- this.inertStore.forEach((e) => (e.inert = true));
44
+ const instance = new ModalElement();
45
+ ModalElement.instance = instance;
46
+ ModalElement.inertStore = ([...document.body.children] as HTMLElement[]).filter((e) => !e.inert);
47
+ ModalElement.inertStore.forEach((e) => (e.inert = true));
48
48
  document.body.append(instance);
49
- const changeStore = () => this.store({ [open]: true, ...opts });
49
+ const changeStore = () => ModalElement.store({ [open]: true, ...opts });
50
50
  setTimeout(() => {
51
51
  changeStore();
52
52
  history.push({
53
53
  title: instance.label,
54
54
  open: changeStore,
55
- close: this.closeHandle.bind(this),
56
- shouldClose: this.shouldClose.bind(this),
55
+ close: ModalElement.closeHandle.bind(ModalElement),
56
+ shouldClose: ModalElement.shouldClose.bind(ModalElement),
57
57
  });
58
58
  }, 100);
59
59
  return final;
@@ -73,9 +73,9 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
73
73
  * history 中自动调用
74
74
  */
75
75
  static closeHandle() {
76
- this.inertStore.forEach((e) => (e.inert = false));
77
- this.instance?.remove();
78
- this.store({ [open]: false, ...options });
76
+ ModalElement.inertStore.forEach((e) => (e.inert = false));
77
+ ModalElement.instance?.remove();
78
+ ModalElement.store({ [open]: false, ...options });
79
79
  return final;
80
80
  }
81
81
 
@@ -1,13 +1,13 @@
1
1
  /**
2
- * - ref 读取时需要用到 `target` `dataset`
3
2
  * - 预渲染可能造成重复的元素,在序列化时可以用正则移除 GemReflectElement 渲染的从开始到结束连续的元素
4
3
  * - `replaceAll(/<!--gem-reflect-start-->.*?<!--gem-reflect-end-->/gs, '')`
5
4
  *
6
5
  * 不能在在顶级代码块中清除这些元素,因为重复加载该代码时会把正常 reflect 元素清除,
7
6
  * 比如 duoyun-ui 文档站加载示例元素时把 GemReflectElement 渲染的元素清除
8
7
  */
9
- import { GemElement } from '../../lib/element';
8
+
10
9
  import { attribute, effect, property, willMount } from '../../lib/decorators';
10
+ import { GemElement } from '../../lib/reactive';
11
11
 
12
12
  const START = 'gem-reflect-start';
13
13
  const END = 'gem-reflect-end';
@@ -37,7 +37,6 @@ export class GemReflectElement extends GemElement {
37
37
  @willMount()
38
38
  #init = () => {
39
39
  this.hidden = true;
40
- this.dataset.gemReflect = '';
41
40
  };
42
41
 
43
42
  #startNode = createReflectFragmentTag(START);
@@ -1,11 +1,11 @@
1
- import type { TemplateResult } from '../../lib/element';
2
- import { createState, css, GemElement, html } from '../../lib/element';
3
1
  import type { Emitter } from '../../lib/decorators';
4
- import { property, emitter, boolattribute, shadow, effect, template, light, adoptedStyle } from '../../lib/decorators';
5
- import type { Store } from '../../lib/store';
6
- import { createStore, connect } from '../../lib/store';
2
+ import { adoptedStyle, boolattribute, effect, emitter, light, property, shadow, template } from '../../lib/decorators';
3
+ import { createState, css, GemElement, html } from '../../lib/element';
7
4
  import type { UpdateHistoryParams } from '../../lib/history';
8
- import { titleStore, history } from '../../lib/history';
5
+ import { history, titleStore } from '../../lib/history';
6
+ import type { TemplateResult } from '../../lib/lit-html';
7
+ import type { Store } from '../../lib/store';
8
+ import { connect, createStore } from '../../lib/store';
9
9
  import type { QueryString } from '../../lib/utils';
10
10
  import { addListener } from '../../lib/utils';
11
11
 
@@ -30,11 +30,10 @@ class ParamsRegExp extends RegExp {
30
30
 
31
31
  type Params = Record<string, string>;
32
32
  declare global {
33
- interface Window {
34
- // https://bugzilla.mozilla.org/show_bug.cgi?id=1731418
35
- // https://github.com/WebKit/standards-positions/issues/61
36
- URLPattern: any;
37
- }
33
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1731418
34
+ // https://github.com/WebKit/standards-positions/issues/61
35
+ // eslint-disable-next-line no-var
36
+ var URLPattern: any;
38
37
  }
39
38
 
40
39
  /**
@@ -51,8 +50,8 @@ declare global {
51
50
  * ```
52
51
  */
53
52
  export function matchPath(pattern: string, path: string) {
54
- if (window.URLPattern) {
55
- const urLPattern = new window.URLPattern({ pathname: pattern });
53
+ if (globalThis.URLPattern) {
54
+ const urLPattern = new URLPattern({ pathname: pattern });
56
55
  const matchResult = urLPattern.exec({ pathname: path }) || urLPattern.exec({ pathname: `${path}/` });
57
56
  if (!matchResult) return null;
58
57
  return matchResult.pathname.groups as Params;
@@ -171,7 +170,7 @@ export class GemLightRouteElement extends GemElement {
171
170
  static findRoute = (target: RouteItem[] | RoutesObject = [], path: string) => {
172
171
  let defaultRoute: RouteItem | null = null;
173
172
  let routes: RouteItem[];
174
- if (target instanceof Array) {
173
+ if (Array.isArray(target)) {
175
174
  routes = target;
176
175
  } else {
177
176
  routes = Object.values(target);
@@ -12,16 +12,16 @@
12
12
  * - `<gem-title>` 作为默认值设置
13
13
  */
14
14
 
15
- import { GemElement, html } from '../../lib/element';
16
15
  import { attribute, boolattribute, effect, mounted, shadow, template } from '../../lib/decorators';
17
- import { connect } from '../../lib/store';
18
16
  import { titleStore } from '../../lib/history';
17
+ import { GemElement, html } from '../../lib/reactive';
18
+ import { connect } from '../../lib/store';
19
19
 
20
20
  // 避免重定向时的中间状态标题
21
- let timer = 0;
21
+ let timer: ReturnType<typeof setTimeout> | number = 0;
22
22
  const setTitle = (documentTitle: string) => {
23
23
  clearTimeout(timer);
24
- timer = window.setTimeout(() => (document.title = documentTitle));
24
+ timer = setTimeout(() => (document.title = documentTitle));
25
25
  };
26
26
 
27
27
  function setDocumentTitle(defaultTitle?: string | null, prefix = '', suffix = '') {
@@ -1,5 +1,5 @@
1
- import { GemElement } from '../../lib/element';
2
1
  import { attribute, shadow, template } from '../../lib/decorators';
2
+ import { GemElement } from '../../lib/reactive';
3
3
 
4
4
  @shadow()
5
5
  export class GemUnsafeElement extends GemElement {
@@ -1,5 +1,5 @@
1
- import { css, GemElement, html } from '../../lib/element';
2
1
  import { adoptedStyle, attribute, property, shadow, state, template } from '../../lib/decorators';
2
+ import { css, GemElement, html } from '../../lib/reactive';
3
3
 
4
4
  const styles = css`
5
5
  :host(:where(:not([hidden]))) {
@@ -1,4 +1,4 @@
1
- import { GemLinkElement, GemActiveLinkElement } from './base/link';
1
+ import { GemActiveLinkElement, GemLinkElement } from './base/link';
2
2
 
3
3
  export * from './base/link';
4
4
 
@@ -1,4 +1,4 @@
1
- import { GemRouteElement, GemLightRouteElement } from './base/route';
1
+ import { GemLightRouteElement, GemRouteElement } from './base/route';
2
2
 
3
3
  export * from './base/route';
4
4