@mantou/gem 2.1.1 → 2.2.0

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 (115) hide show
  1. package/dist/gem.es.js +1832 -1890
  2. package/dist/gem.umd.js +34 -191
  3. package/elements/base/dialog.d.ts +0 -4
  4. package/elements/base/dialog.d.ts.map +1 -1
  5. package/elements/base/dialog.js +0 -4
  6. package/elements/base/dialog.js.map +1 -1
  7. package/elements/base/gesture.d.ts +5 -14
  8. package/elements/base/gesture.d.ts.map +1 -1
  9. package/elements/base/gesture.js +35 -31
  10. package/elements/base/gesture.js.map +1 -1
  11. package/elements/base/link.d.ts +1 -17
  12. package/elements/base/link.d.ts.map +1 -1
  13. package/elements/base/link.js +12 -32
  14. package/elements/base/link.js.map +1 -1
  15. package/elements/base/modal-factory.d.ts +30 -31
  16. package/elements/base/modal-factory.d.ts.map +1 -1
  17. package/elements/base/reflect.d.ts +0 -3
  18. package/elements/base/reflect.d.ts.map +1 -1
  19. package/elements/base/reflect.js +0 -3
  20. package/elements/base/reflect.js.map +1 -1
  21. package/elements/base/route.d.ts +0 -10
  22. package/elements/base/route.d.ts.map +1 -1
  23. package/elements/base/route.js +10 -22
  24. package/elements/base/route.js.map +1 -1
  25. package/elements/base/title.d.ts +0 -5
  26. package/elements/base/title.d.ts.map +1 -1
  27. package/elements/base/title.js +0 -5
  28. package/elements/base/title.js.map +1 -1
  29. package/elements/base/unsafe.d.ts +0 -5
  30. package/elements/base/unsafe.d.ts.map +1 -1
  31. package/elements/base/unsafe.js +2 -8
  32. package/elements/base/unsafe.js.map +1 -1
  33. package/elements/base/use.d.ts +0 -3
  34. package/elements/base/use.d.ts.map +1 -1
  35. package/elements/base/use.js +4 -11
  36. package/elements/base/use.js.map +1 -1
  37. package/helper/react-shim.d.ts +15 -0
  38. package/helper/react-shim.d.ts.map +1 -0
  39. package/helper/react-shim.js +56 -0
  40. package/helper/react-shim.js.map +1 -0
  41. package/helper/theme.d.ts +3 -3
  42. package/helper/theme.d.ts.map +1 -1
  43. package/helper/theme.js +3 -3
  44. package/helper/theme.js.map +1 -1
  45. package/index.d.ts +0 -1
  46. package/index.d.ts.map +1 -1
  47. package/index.js +0 -1
  48. package/index.js.map +1 -1
  49. package/lib/decorators.d.ts +7 -6
  50. package/lib/decorators.d.ts.map +1 -1
  51. package/lib/decorators.js +45 -30
  52. package/lib/decorators.js.map +1 -1
  53. package/lib/directive.d.ts +83 -0
  54. package/lib/directive.d.ts.map +1 -0
  55. package/lib/directive.js +59 -0
  56. package/lib/directive.js.map +1 -0
  57. package/lib/element.d.ts +7 -21
  58. package/lib/element.d.ts.map +1 -1
  59. package/lib/element.js +53 -49
  60. package/lib/element.js.map +1 -1
  61. package/lib/lit-html.d.ts +331 -0
  62. package/lib/lit-html.d.ts.map +1 -0
  63. package/lib/lit-html.js +941 -0
  64. package/lib/lit-html.js.map +1 -0
  65. package/lib/ref.d.ts +1 -0
  66. package/lib/ref.d.ts.map +1 -0
  67. package/lib/ref.js +2 -0
  68. package/lib/ref.js.map +1 -0
  69. package/lib/repeat.d.ts +126 -0
  70. package/lib/repeat.d.ts.map +1 -0
  71. package/lib/repeat.js +533 -0
  72. package/lib/repeat.js.map +1 -0
  73. package/lib/store.d.ts +1 -1
  74. package/lib/store.d.ts.map +1 -1
  75. package/lib/store.js +4 -4
  76. package/lib/store.js.map +1 -1
  77. package/lib/utils.d.ts +1 -4
  78. package/lib/utils.d.ts.map +1 -1
  79. package/lib/utils.js +5 -15
  80. package/lib/utils.js.map +1 -1
  81. package/lib/version.d.ts +1 -1
  82. package/lib/version.d.ts.map +1 -1
  83. package/lib/version.js +2 -1
  84. package/lib/version.js.map +1 -1
  85. package/package.json +6 -7
  86. package/src/elements/base/dialog.ts +0 -4
  87. package/src/elements/base/gesture.ts +31 -32
  88. package/src/elements/base/link.ts +12 -32
  89. package/src/elements/base/reflect.ts +0 -3
  90. package/src/elements/base/route.ts +11 -21
  91. package/src/elements/base/title.ts +0 -5
  92. package/src/elements/base/unsafe.ts +3 -8
  93. package/src/elements/base/use.ts +4 -11
  94. package/src/helper/theme.ts +4 -4
  95. package/src/index.ts +0 -1
  96. package/src/lib/decorators.ts +50 -37
  97. package/src/lib/directive.ts +139 -0
  98. package/src/lib/element.ts +62 -72
  99. package/src/lib/lit-html.ts +1217 -0
  100. package/src/lib/repeat.ts +580 -0
  101. package/src/lib/store.ts +4 -4
  102. package/src/lib/utils.ts +5 -16
  103. package/src/lib/version.ts +2 -1
  104. package/src/test/elements/link.test.ts +1 -2
  105. package/src/test/elements/reflect.test.ts +13 -3
  106. package/src/test/elements/title.test.ts +1 -2
  107. package/src/test/gem-element/advance.test.ts +15 -8
  108. package/src/test/gem-element/basic.test.ts +22 -10
  109. package/src/test/gem-element/decorators.test.ts +6 -9
  110. package/src/test/gem-element/multi.test.ts +20 -11
  111. package/src/test/history.test.ts +2 -2
  112. package/src/test/store.test.ts +3 -3
  113. package/src/test/utils.test.ts +9 -10
  114. package/src/test/utils.ts +22 -0
  115. package/src/lib/directives.ts +0 -6
package/lib/decorators.js CHANGED
@@ -11,10 +11,8 @@ function pushStaticField(context, field, member) {
11
11
  const metadata = context.metadata;
12
12
  if (!getOwnPropertyDescriptor(metadata, field)) {
13
13
  // 继承基类
14
- const current = new Set(metadata[field]);
15
- current.delete(member);
16
14
  defineProperty(metadata, field, {
17
- value: [...current],
15
+ value: metadata[field]?.filter((e) => e !== member) || [],
18
16
  });
19
17
  }
20
18
  metadata[field].push(member);
@@ -79,10 +77,13 @@ function defineProp(target, prop, { attr, attrType, event, eventOptions } = {})
79
77
  if (event) {
80
78
  proxy[prop] = v?.[isEventHandleSymbol]
81
79
  ? v
82
- : (detail, options) => {
80
+ : async (detail, options) => {
81
+ // 事件如果同步触发,则祖先元素可能还没有挂载好,其中就不能更新 state
82
+ // https://github.com/mantou132/gem/issues/203
83
+ await Promise.resolve();
83
84
  const evt = new CustomEvent(event, { ...options, ...eventOptions, detail });
84
85
  that.dispatchEvent(evt);
85
- v(detail, options);
86
+ await v(detail, options);
86
87
  };
87
88
  proxy[prop][isEventHandleSymbol] = true;
88
89
  // emitter 不触发元素更新
@@ -94,20 +95,34 @@ function defineProp(target, prop, { attr, attrType, event, eventOptions } = {})
94
95
  },
95
96
  });
96
97
  }
98
+ // https://github.com/tc39/proposal-decorators/issues/517
99
+ const targetCache = new WeakMap();
100
+ function getDecoratorTarget(element, { metadata }) {
101
+ const target = targetCache.get(metadata);
102
+ if (target)
103
+ return target;
104
+ let result = element;
105
+ do {
106
+ result = getPrototypeOf(result);
107
+ } while (result.constructor[Symbol.metadata] !== metadata);
108
+ targetCache.set(metadata, result);
109
+ return result;
110
+ }
97
111
  function decoratorAttr(context, attrType) {
98
112
  const prop = context.name;
99
113
  const attr = camelToKebabCase(prop);
100
114
  context.addInitializer(function () {
101
- const target = getPrototypeOf(this);
115
+ const target = getDecoratorTarget(this, context);
102
116
  if (!target.hasOwnProperty(prop)) {
103
117
  pushStaticField(context, 'observedAttributes', attr); // 没有 observe 的效果
104
118
  defineProp(target, prop, { attr, attrType });
105
- // 记录观察的 attribute
106
- const attrMap = observedTargetAttributes.get(target) || new Map();
107
- attrMap.set(attr, prop);
108
- observedTargetAttributes.set(target, attrMap);
109
119
  }
110
120
  clearField(this, prop);
121
+ // 记录观察的 attribute, 用于 hack 的 setAttribute
122
+ const proto = getPrototypeOf(this);
123
+ const attrMap = observedTargetAttributes.get(proto) || new Map();
124
+ attrMap.set(attr, prop);
125
+ observedTargetAttributes.set(proto, attrMap);
111
126
  });
112
127
  // 延时定义的元素需要继承原实例属性值
113
128
  return function (initValue) {
@@ -146,7 +161,7 @@ export function numattribute(_, context) {
146
161
  export function property(_, context) {
147
162
  const prop = context.name;
148
163
  context.addInitializer(function () {
149
- const target = getPrototypeOf(this);
164
+ const target = getDecoratorTarget(this, context);
150
165
  if (!target.hasOwnProperty(prop)) {
151
166
  pushStaticField(context, 'observedProperties', prop);
152
167
  defineProp(target, prop);
@@ -189,14 +204,15 @@ export function memo(getDep) {
189
204
  };
190
205
  }
191
206
  /**
192
- * 依赖 `GemElement.effect`
193
- * 方法执行在字段前面
207
+ * - 依赖 `GemElement.effect`
208
+ * - 方法执行在字段前面
209
+ * - 如果没有 oldValue,在为首次执行
194
210
  *
195
211
  * For example
196
212
  * ```ts
197
213
  * class App extends GemElement {
198
214
  * @effect(() => [])
199
- * #fetchData() {
215
+ * #fetchData(newValue, oldValue) {
200
216
  * console.log('fetch')
201
217
  * }
202
218
  * }
@@ -279,11 +295,11 @@ function defineCSSState(target, prop, stateStr) {
279
295
  * ```
280
296
  */
281
297
  export function state(_, context) {
298
+ const prop = context.name;
299
+ const attr = camelToKebabCase(prop);
282
300
  context.addInitializer(function () {
283
- const target = getPrototypeOf(this);
284
- const prop = context.name;
301
+ const target = getDecoratorTarget(this, context);
285
302
  if (!target.hasOwnProperty(prop)) {
286
- const attr = camelToKebabCase(prop);
287
303
  pushStaticField(context, 'definedCSSStates', attr);
288
304
  defineCSSState(target, prop, attr);
289
305
  }
@@ -349,24 +365,23 @@ export function part(_, context) {
349
365
  * ```
350
366
  */
351
367
  export function emitter(_, context) {
352
- context.addInitializer(function () {
353
- defineEmitter(context, this, context.name);
354
- });
368
+ defineEmitter(context);
355
369
  }
356
370
  export function globalemitter(_, context) {
371
+ defineEmitter(context, { bubbles: true, composed: true });
372
+ }
373
+ function defineEmitter(context, eventOptions) {
374
+ const prop = context.name;
375
+ const event = camelToKebabCase(prop);
357
376
  context.addInitializer(function () {
358
- defineEmitter(context, this, context.name, { bubbles: true, composed: true });
377
+ const target = getDecoratorTarget(this, context);
378
+ if (!target.hasOwnProperty(prop)) {
379
+ pushStaticField(context, 'definedEvents', event);
380
+ defineProp(target, prop, { event, eventOptions });
381
+ }
382
+ clearField(this, prop);
359
383
  });
360
384
  }
361
- function defineEmitter(context, t, prop, eventOptions) {
362
- const target = getPrototypeOf(t);
363
- if (!target.hasOwnProperty(prop)) {
364
- const event = camelToKebabCase(prop);
365
- pushStaticField(context, 'definedEvents', event);
366
- defineProp(target, prop, { event, eventOptions });
367
- }
368
- clearField(t, prop);
369
- }
370
385
  /**
371
386
  * 分配一个构造的样式表,前面的优先级越高(因为装饰器是越近越早执行)
372
387
  *
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/lib/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/lib/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */
6
+ import type { Disconnectable, Part } from './lit-html.js';
7
+ export type { AttributePart, BooleanAttributePart, ChildPart, ElementPart, EventPart, Part, PropertyPart, } from './lit-html.js';
8
+ export interface DirectiveClass {
9
+ new (part: PartInfo): Directive;
10
+ }
11
+ /**
12
+ * This utility type extracts the signature of a directive class's render()
13
+ * method so we can use it for the type of the generated directive function.
14
+ */
15
+ export type DirectiveParameters<C extends Directive> = Parameters<C['render']>;
16
+ /**
17
+ * A generated directive function doesn't evaluate the directive, but just
18
+ * returns a DirectiveResult object that captures the arguments.
19
+ */
20
+ export interface DirectiveResult<C extends DirectiveClass = DirectiveClass> {
21
+ /**
22
+ * This property needs to remain unminified.
23
+ * @internal
24
+ */
25
+ ['_$litDirective$']: C;
26
+ /** @internal */
27
+ values: DirectiveParameters<InstanceType<C>>;
28
+ }
29
+ export declare const PartType: {
30
+ readonly ATTRIBUTE: 1;
31
+ readonly CHILD: 2;
32
+ readonly PROPERTY: 3;
33
+ readonly BOOLEAN_ATTRIBUTE: 4;
34
+ readonly EVENT: 5;
35
+ readonly ELEMENT: 6;
36
+ };
37
+ export type PartType = (typeof PartType)[keyof typeof PartType];
38
+ export interface ChildPartInfo {
39
+ readonly type: typeof PartType.CHILD;
40
+ }
41
+ export interface AttributePartInfo {
42
+ readonly type: typeof PartType.ATTRIBUTE | typeof PartType.PROPERTY | typeof PartType.BOOLEAN_ATTRIBUTE | typeof PartType.EVENT;
43
+ readonly strings?: ReadonlyArray<string>;
44
+ readonly name: string;
45
+ readonly tagName: string;
46
+ }
47
+ export interface ElementPartInfo {
48
+ readonly type: typeof PartType.ELEMENT;
49
+ }
50
+ /**
51
+ * Information about the part a directive is bound to.
52
+ *
53
+ * This is useful for checking that a directive is attached to a valid part,
54
+ * such as with directive that can only be used on attribute bindings.
55
+ */
56
+ export type PartInfo = ChildPartInfo | AttributePartInfo | ElementPartInfo;
57
+ /**
58
+ * Creates a user-facing directive function from a Directive class. This
59
+ * function has the same parameters as the directive's render() method.
60
+ */
61
+ export declare const directive: <C extends DirectiveClass>(c: C) => (...values: DirectiveParameters<InstanceType<C>>) => DirectiveResult<C>;
62
+ /**
63
+ * Base class for creating custom directives. Users should extend this class,
64
+ * implement `render` and/or `update`, and then pass their subclass to
65
+ * `directive`.
66
+ */
67
+ export declare abstract class Directive implements Disconnectable {
68
+ __part: Part;
69
+ __attributeIndex: number | undefined;
70
+ __directive?: Directive;
71
+ _$parent: Disconnectable;
72
+ _$disconnectableChildren?: Set<Disconnectable>;
73
+ ['_$notifyDirectiveConnectionChanged']?(isConnected: boolean): void;
74
+ constructor(_partInfo: PartInfo);
75
+ get _$isConnected(): boolean;
76
+ /** @internal */
77
+ _$initialize(part: Part, parent: Disconnectable, attributeIndex: number | undefined): void;
78
+ /** @internal */
79
+ _$resolve(part: Part, props: Array<unknown>): unknown;
80
+ abstract render(...props: Array<unknown>): unknown;
81
+ update(_part: Part, props: Array<unknown>): unknown;
82
+ }
83
+ //# sourceMappingURL=directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../src/lib/directive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1D,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,SAAS,EACT,IAAI,EACJ,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IACxE;;;OAGG;IACH,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACvB,gBAAgB;IAChB,MAAM,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EACT,OAAO,QAAQ,CAAC,SAAS,GACzB,OAAO,QAAQ,CAAC,QAAQ,GACxB,OAAO,QAAQ,CAAC,iBAAiB,GACjC,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,SAAS,cAAc,KAAK,CAAC,iBACnB,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAG,eAAe,CAAC,CAAC,CAIlE,CAAC;AAEL;;;;GAIG;AACH,8BAAsB,SAAU,YAAW,cAAc;IAEvD,MAAM,EAAG,IAAI,CAAC;IAEd,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,WAAW,CAAC,EAAE,SAAS,CAAC;IAGxB,QAAQ,EAAG,cAAc,CAAC;IAI1B,wBAAwB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAG/C,CAAC,oCAAoC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;gBAEvD,SAAS,EAAE,QAAQ;IAG/B,IAAI,aAAa,YAEhB;IAED,gBAAgB;IAChB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS;IAKnF,gBAAgB;IAChB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;IAIrD,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;IAElD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;CAGpD"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */
6
+ export const PartType = {
7
+ ATTRIBUTE: 1,
8
+ CHILD: 2,
9
+ PROPERTY: 3,
10
+ BOOLEAN_ATTRIBUTE: 4,
11
+ EVENT: 5,
12
+ ELEMENT: 6,
13
+ };
14
+ /**
15
+ * Creates a user-facing directive function from a Directive class. This
16
+ * function has the same parameters as the directive's render() method.
17
+ */
18
+ export const directive = (c) => (...values) => ({
19
+ // This property needs to remain unminified.
20
+ ['_$litDirective$']: c,
21
+ values,
22
+ });
23
+ /**
24
+ * Base class for creating custom directives. Users should extend this class,
25
+ * implement `render` and/or `update`, and then pass their subclass to
26
+ * `directive`.
27
+ */
28
+ export class Directive {
29
+ //@internal
30
+ __part;
31
+ //@internal
32
+ __attributeIndex;
33
+ //@internal
34
+ __directive;
35
+ //@internal
36
+ _$parent;
37
+ // These will only exist on the AsyncDirective subclass
38
+ //@internal
39
+ _$disconnectableChildren;
40
+ constructor(_partInfo) { }
41
+ // See comment in Disconnectable interface for why this is a getter
42
+ get _$isConnected() {
43
+ return this._$parent._$isConnected;
44
+ }
45
+ /** @internal */
46
+ _$initialize(part, parent, attributeIndex) {
47
+ this.__part = part;
48
+ this._$parent = parent;
49
+ this.__attributeIndex = attributeIndex;
50
+ }
51
+ /** @internal */
52
+ _$resolve(part, props) {
53
+ return this.update(part, props);
54
+ }
55
+ update(_part, props) {
56
+ return this.render(...props);
57
+ }
58
+ }
59
+ //# sourceMappingURL=directive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive.js","sourceRoot":"","sources":["../src/lib/directive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsCH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,iBAAiB,EAAE,CAAC;IACpB,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;CACF,CAAC;AA+BX;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,CAA2B,CAAI,EAAE,EAAE,CACnC,CAAC,GAAG,MAA4C,EAAsB,EAAE,CAAC,CAAC;IACxE,4CAA4C;IAC5C,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACtB,MAAM;CACP,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,OAAgB,SAAS;IAC7B,WAAW;IACX,MAAM,CAAQ;IACd,WAAW;IACX,gBAAgB,CAAqB;IACrC,WAAW;IACX,WAAW,CAAa;IAExB,WAAW;IACX,QAAQ,CAAkB;IAE1B,uDAAuD;IACvD,WAAW;IACX,wBAAwB,CAAuB;IAK/C,YAAY,SAAmB,IAAG,CAAC;IAEnC,mEAAmE;IACnE,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,gBAAgB;IAChB,YAAY,CAAC,IAAU,EAAE,MAAsB,EAAE,cAAkC;QACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;IACzC,CAAC;IACD,gBAAgB;IAChB,SAAS,CAAC,IAAU,EAAE,KAAqB;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAID,MAAM,CAAC,KAAW,EAAE,KAAqB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
package/lib/element.d.ts CHANGED
@@ -1,14 +1,10 @@
1
- import type { TemplateResult } from 'lit-html';
1
+ import type { TemplateResult } from './lit-html';
2
2
  import type { Store } from './store';
3
3
  import { createUpdater } from './utils';
4
- export { html, svg, render, directive, TemplateResult, SVGTemplateResult } from 'lit-html';
4
+ export { directive } from './directive';
5
+ export { repeat } from './repeat';
6
+ export { html, svg, mathml, render, TemplateResult, createRef } from './lit-html';
5
7
  declare global {
6
- /**
7
- * @attr ref
8
- */
9
- interface HTMLElement {
10
- ref: string;
11
- }
12
8
  interface DOMStringMap {
13
9
  gemReflect?: '';
14
10
  gemStyle?: '';
@@ -21,17 +17,6 @@ declare global {
21
17
  export declare const SheetToken: unique symbol;
22
18
  export declare const UpdateToken: unique symbol;
23
19
  export declare const _RenderErrorEvent = "gem@render-error";
24
- declare class RefObject<T = HTMLElement> {
25
- refSelector: string;
26
- ele: GemElement | ShadowRoot;
27
- ref: string;
28
- constructor(current: GemElement);
29
- get element(): T | undefined;
30
- get elements(): T[];
31
- toString(): string;
32
- }
33
- /**必须使用在字段中,否则会读取到错误的实例 */
34
- export declare let createRef: <T>() => RefObject<T>;
35
20
  declare class GemCSSStyleSheet extends CSSStyleSheet {
36
21
  #private;
37
22
  cssText: string;
@@ -54,8 +39,9 @@ export type Sheet<T> = {
54
39
  *
55
40
  * 创建 style sheet 用于 `@adoptedStyle`,不支持样式更新,只支持自定义 CSS 属性
56
41
  */
57
- export declare function createCSSSheet<T extends Record<string, string>>(media: string, rules: T | string): Sheet<T>;
58
- export declare function createCSSSheet<T extends Record<string, string>>(rules: T | string): Sheet<T>;
42
+ export declare function css<T extends Record<string, string>>(media: TemplateStringsArray, ...rest: any[]): Sheet<T>;
43
+ export declare function css<T extends Record<string, string>>(media: string, rules: T | string): Sheet<T>;
44
+ export declare function css<T extends Record<string, string>>(rules: T | string): Sheet<T>;
59
45
  /**必须使用在字段中,否则会读取到错误的实例 */
60
46
  export declare let createState: <T>(initState: T) => ReturnType<typeof createUpdater<T>>;
61
47
  type EffectCallback<T> = (depValues: T, oldDepValues?: T) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/lib/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/lib/element.ts"],"names":[],"mappings":"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"}
package/lib/element.js CHANGED
@@ -1,7 +1,9 @@
1
- import { html, render } from 'lit-html';
1
+ import { html, render } from './lit-html';
2
2
  import { connect } from './store';
3
- import { LinkedList, addMicrotask, isArrayChange, addListener, randomStr, createUpdater } from './utils';
4
- export { html, svg, render, directive, TemplateResult, SVGTemplateResult } from 'lit-html';
3
+ import { LinkedList, addMicrotask, isArrayChange, addListener, randomStr, createUpdater, GemError, raw } from './utils';
4
+ export { directive } from './directive';
5
+ export { repeat } from './repeat';
6
+ export { html, svg, mathml, render, TemplateResult, createRef } from './lit-html';
5
7
  const { assign, defineProperty } = Object;
6
8
  defineProperty(Symbol, 'metadata', { value: Symbol.for('Symbol.metadata') });
7
9
  const execCallback = (fun) => typeof fun === 'function' && fun();
@@ -15,36 +17,6 @@ export const _RenderErrorEvent = 'gem@render-error';
15
17
  const updateTokenAlias = UpdateToken;
16
18
  const rootStyleSheetInfo = new WeakMap();
17
19
  const rootUpdateFnMap = new WeakMap();
18
- const getReflectTargets = (ele) => [...ele.querySelectorAll('[data-gem-reflect]')].map((e) => e.target);
19
- class RefObject {
20
- refSelector;
21
- ele;
22
- ref;
23
- constructor(current) {
24
- const ref = `ref-${randomStr()}`;
25
- this.refSelector = `[ref=${ref}]`;
26
- this.ele = current.internals.shadowRoot || current;
27
- this.ref = ref;
28
- }
29
- get element() {
30
- for (const e of [this.ele, ...getReflectTargets(this.ele)]) {
31
- // 在 LightDOM 中可能工作很慢?
32
- const result = e.querySelector(this.refSelector);
33
- if (result)
34
- return result;
35
- }
36
- }
37
- get elements() {
38
- return [this.ele, ...getReflectTargets(this.ele)]
39
- .map((e) => [...e.querySelectorAll(this.refSelector)])
40
- .flat();
41
- }
42
- toString() {
43
- return this.ref;
44
- }
45
- }
46
- /**必须使用在字段中,否则会读取到错误的实例 */
47
- export let createRef;
48
20
  class GemCSSStyleSheet extends CSSStyleSheet {
49
21
  #ele;
50
22
  cssText = '';
@@ -101,16 +73,27 @@ class GemCSSSheet {
101
73
  }
102
74
  return sheet;
103
75
  }
104
- // 一般用于主题更新,不支持 layer
76
+ // 一般用于主题更新
105
77
  updateStyle() {
106
78
  this.#used.forEach((scope, sheet) => {
107
79
  sheet.replaceSync(scope ? `${scope}{${this.#content}}` : this.#content);
108
80
  });
109
81
  }
110
82
  }
111
- export function createCSSSheet(mediaOrRules, rulesValue) {
112
- const media = rulesValue ? mediaOrRules : '';
113
- const rules = rulesValue || mediaOrRules;
83
+ export function css(mediaOrRules, ...rest) {
84
+ let media = '';
85
+ let rules = '';
86
+ const rulesValue = rest.at(0);
87
+ if (Array.isArray(mediaOrRules)) {
88
+ rules = raw(mediaOrRules, ...rest);
89
+ }
90
+ else if (rulesValue !== undefined) {
91
+ media = mediaOrRules;
92
+ rules = rulesValue;
93
+ }
94
+ else {
95
+ rules = mediaOrRules;
96
+ }
114
97
  const styleSheet = new GemCSSSheet(media);
115
98
  const sheet = { [SheetToken]: styleSheet };
116
99
  let style = '';
@@ -183,6 +166,18 @@ function clearEffect(list) {
183
166
  return e.fixed;
184
167
  });
185
168
  }
169
+ const nullTemplate = html `
170
+ <style>
171
+ :host {
172
+ display: none !important;
173
+ }
174
+ @scope {
175
+ :scope {
176
+ display: none !important;
177
+ }
178
+ }
179
+ </style>
180
+ `;
186
181
  export let _createTemplate;
187
182
  // global render task pool
188
183
  const noBlockingTaskList = new LinkedList();
@@ -209,28 +204,32 @@ export class GemElement extends HTMLElement {
209
204
  #isAppendReason;
210
205
  #isMounted;
211
206
  // not in constructor 的近似值
212
- #isConnected;
207
+ #notInCons;
213
208
  #rendering;
214
209
  #clearStyle;
215
210
  [updateTokenAlias]() {
216
211
  // 避免 `connectedCallback` 中的 property 赋值造成多余更新
217
- if (this.#isMounted) {
212
+ if (this.#isMounted)
218
213
  addMicrotask(this.#update);
219
- }
220
214
  }
221
215
  static {
222
216
  createState = (initState) => {
223
217
  const ele = currentConstructGemElement;
224
218
  const state = createUpdater(initState, (payload) => {
219
+ const effect = ele.#effectList.at(0);
220
+ // https://github.com/mantou132/gem/issues/203
221
+ if (ele.#isMounted && effect && !effect.initialized) {
222
+ throw new GemError(`Do't set state sync before insert the DOM`);
223
+ }
225
224
  assign(state, payload);
226
225
  // 避免无限刷新
227
- if (!ele.#rendering)
226
+ // 挂载前 set state 不应该触发更新
227
+ if (!ele.#rendering && ele.#isMounted)
228
228
  addMicrotask(ele.#update);
229
229
  });
230
230
  ele.#internals.stateList.push(state);
231
231
  return state;
232
232
  };
233
- createRef = () => new RefObject(currentConstructGemElement);
234
233
  _createTemplate = (ele, item) => ele.#renderList.push(item);
235
234
  }
236
235
  constructor() {
@@ -286,9 +285,10 @@ export class GemElement extends HTMLElement {
286
285
  };
287
286
  /**
288
287
  * - 条件渲染
289
- * - 不提供 `render` 时显示子内容
290
- * - 返回 `null` 时渲染空的子内容
288
+ * - 没有 `render` 时显示子内容
291
289
  * - 返回 `undefined` 时不会更新现有内容
290
+ * - 返回 `null` 时渲染空内容
291
+ * - 返回 html`` 时渲染空的子内容
292
292
  * */
293
293
  #render = (item) => {
294
294
  try {
@@ -299,10 +299,11 @@ export class GemElement extends HTMLElement {
299
299
  this.#rendering = false;
300
300
  if (temp === undefined)
301
301
  return;
302
- render(temp, this.#renderRoot);
302
+ render(temp === null ? nullTemplate : temp, this.#renderRoot);
303
303
  }
304
304
  catch (err) {
305
305
  this.dispatchEvent(new CustomEvent(_RenderErrorEvent, { bubbles: true, composed: true, detail: err }));
306
+ throw err;
306
307
  }
307
308
  };
308
309
  #updateCallback = () => {
@@ -363,15 +364,18 @@ export class GemElement extends HTMLElement {
363
364
  #connectedCallback = async () => {
364
365
  if (this.#isAppendReason) {
365
366
  this.#isAppendReason = false;
367
+ // https://github.com/mantou132/gem/issues/202
368
+ this.#clearStyle?.();
369
+ this.#clearStyle = this.#prepareStyle();
366
370
  return;
367
371
  }
372
+ this.#notInCons = true;
368
373
  this.#compat();
369
374
  const { observedStores, mode, penetrable } = this.#metadata;
370
375
  // 有渲染函数的 light dom 应该添加边界,防止内容被外部样式化
371
376
  // 如果渲染内容需要应用外部样式,需要手动 `delete` 边界
372
377
  if (!mode && this.#renderList.length && !penetrable)
373
378
  this.#internals.states.add(BoundaryCSSState);
374
- this.#isConnected = true;
375
379
  this.#disconnectStore = observedStores?.map((store) => connect(store, this.#update));
376
380
  this.#render(this.#renderItem);
377
381
  this.#isMounted = true;
@@ -419,7 +423,7 @@ export class GemElement extends HTMLElement {
419
423
  // 是否要异步执行回调?
420
424
  this.#effectList = clearEffect(this.#effectList);
421
425
  this.#memoList = clearEffect(this.#memoList);
422
- execCallback(this.#clearStyle);
426
+ this.#clearStyle?.();
423
427
  return GemElement.#final;
424
428
  }
425
429
  /**
@@ -441,7 +445,7 @@ export class GemElement extends HTMLElement {
441
445
  callback,
442
446
  getDep,
443
447
  initialized: this.#isMounted,
444
- fixed: !this.#isConnected,
448
+ fixed: !this.#notInCons,
445
449
  };
446
450
  // 已挂载时立即执行副作用,未挂载时等挂载后执行
447
451
  if (this.#isMounted) {
@@ -471,7 +475,7 @@ export class GemElement extends HTMLElement {
471
475
  this.#memoList.push({
472
476
  callback,
473
477
  getDep,
474
- fixed: !this.#isConnected,
478
+ fixed: !this.#notInCons,
475
479
  });
476
480
  };
477
481
  /**