@mantou/gem 2.1.1 → 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 (151) hide show
  1. package/dist/gem.es.js +2082 -2153
  2. package/dist/gem.umd.js +25 -199
  3. package/elements/base/dialog.d.ts +1 -5
  4. package/elements/base/dialog.d.ts.map +1 -1
  5. package/elements/base/dialog.js +2 -6
  6. package/elements/base/dialog.js.map +1 -1
  7. package/elements/base/gesture.d.ts +6 -15
  8. package/elements/base/gesture.d.ts.map +1 -1
  9. package/elements/base/gesture.js +38 -34
  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 -37
  14. package/elements/base/link.js.map +1 -1
  15. package/elements/base/modal-factory.d.ts +48 -38
  16. package/elements/base/modal-factory.d.ts.map +1 -1
  17. package/elements/base/modal-factory.js +14 -14
  18. package/elements/base/modal-factory.js.map +1 -1
  19. package/elements/base/reflect.d.ts +1 -5
  20. package/elements/base/reflect.d.ts.map +1 -1
  21. package/elements/base/reflect.js +8 -13
  22. package/elements/base/reflect.js.map +1 -1
  23. package/elements/base/route.d.ts +17 -17
  24. package/elements/base/route.d.ts.map +1 -1
  25. package/elements/base/route.js +15 -27
  26. package/elements/base/route.js.map +1 -1
  27. package/elements/base/title.d.ts +1 -6
  28. package/elements/base/title.d.ts.map +1 -1
  29. package/elements/base/title.js +3 -8
  30. package/elements/base/title.js.map +1 -1
  31. package/elements/base/unsafe.d.ts +1 -6
  32. package/elements/base/unsafe.d.ts.map +1 -1
  33. package/elements/base/unsafe.js +3 -9
  34. package/elements/base/unsafe.js.map +1 -1
  35. package/elements/base/use.d.ts +1 -4
  36. package/elements/base/use.d.ts.map +1 -1
  37. package/elements/base/use.js +4 -11
  38. package/elements/base/use.js.map +1 -1
  39. package/elements/link.js +1 -1
  40. package/elements/link.js.map +1 -1
  41. package/elements/route.js +1 -1
  42. package/elements/route.js.map +1 -1
  43. package/helper/hmr.d.ts +11 -0
  44. package/helper/hmr.d.ts.map +1 -0
  45. package/helper/hmr.js +255 -0
  46. package/helper/hmr.js.map +1 -0
  47. package/helper/i18n.d.ts +2 -2
  48. package/helper/i18n.d.ts.map +1 -1
  49. package/helper/i18n.js +5 -4
  50. package/helper/i18n.js.map +1 -1
  51. package/helper/logger.d.ts +1 -1
  52. package/helper/logger.d.ts.map +1 -1
  53. package/helper/logger.js +8 -5
  54. package/helper/logger.js.map +1 -1
  55. package/helper/mediaquery.js +1 -1
  56. package/helper/mediaquery.js.map +1 -1
  57. package/helper/ssr-shim.d.ts.map +1 -1
  58. package/helper/ssr-shim.js +2 -0
  59. package/helper/ssr-shim.js.map +1 -1
  60. package/helper/theme.d.ts +4 -5
  61. package/helper/theme.d.ts.map +1 -1
  62. package/helper/theme.js +3 -3
  63. package/helper/theme.js.map +1 -1
  64. package/index.d.ts +1 -3
  65. package/index.d.ts.map +1 -1
  66. package/index.js +1 -4
  67. package/index.js.map +1 -1
  68. package/lib/decorators.d.ts +9 -16
  69. package/lib/decorators.d.ts.map +1 -1
  70. package/lib/decorators.js +84 -71
  71. package/lib/decorators.js.map +1 -1
  72. package/lib/directive.d.ts +65 -0
  73. package/lib/directive.d.ts.map +1 -0
  74. package/lib/directive.js +58 -0
  75. package/lib/directive.js.map +1 -0
  76. package/lib/element.d.ts +10 -153
  77. package/lib/element.d.ts.map +1 -1
  78. package/lib/element.js +19 -480
  79. package/lib/element.js.map +1 -1
  80. package/lib/history.d.ts +67 -9
  81. package/lib/history.d.ts.map +1 -1
  82. package/lib/history.js +12 -12
  83. package/lib/history.js.map +1 -1
  84. package/lib/lit-html.d.ts +232 -0
  85. package/lib/lit-html.d.ts.map +1 -0
  86. package/lib/lit-html.js +987 -0
  87. package/lib/lit-html.js.map +1 -0
  88. package/lib/reactive.d.ts +123 -0
  89. package/lib/reactive.d.ts.map +1 -0
  90. package/lib/reactive.js +478 -0
  91. package/lib/reactive.js.map +1 -0
  92. package/lib/repeat.d.ts +126 -0
  93. package/lib/repeat.d.ts.map +1 -0
  94. package/lib/repeat.js +533 -0
  95. package/lib/repeat.js.map +1 -0
  96. package/lib/store.d.ts +13 -2
  97. package/lib/store.d.ts.map +1 -1
  98. package/lib/store.js +5 -4
  99. package/lib/store.js.map +1 -1
  100. package/lib/utils.d.ts +24 -15
  101. package/lib/utils.d.ts.map +1 -1
  102. package/lib/utils.js +25 -30
  103. package/lib/utils.js.map +1 -1
  104. package/lib/version.d.ts +1 -1
  105. package/lib/version.js +1 -1
  106. package/package.json +8 -9
  107. package/src/dist.ts +6 -8
  108. package/src/elements/base/dialog.ts +2 -6
  109. package/src/elements/base/gesture.ts +35 -36
  110. package/src/elements/base/link.ts +20 -46
  111. package/src/elements/base/modal-factory.ts +14 -14
  112. package/src/elements/base/reflect.ts +2 -6
  113. package/src/elements/base/route.ts +22 -33
  114. package/src/elements/base/title.ts +4 -9
  115. package/src/elements/base/unsafe.ts +4 -9
  116. package/src/elements/base/use.ts +4 -11
  117. package/src/elements/link.ts +1 -1
  118. package/src/elements/route.ts +1 -1
  119. package/src/helper/hmr.ts +305 -0
  120. package/src/helper/i18n.ts +7 -7
  121. package/src/helper/logger.ts +9 -5
  122. package/src/helper/mediaquery.ts +1 -1
  123. package/src/helper/ssr-shim.ts +3 -0
  124. package/src/helper/theme.ts +6 -6
  125. package/src/index.ts +1 -5
  126. package/src/lib/decorators.ts +101 -100
  127. package/src/lib/directive.ts +137 -0
  128. package/src/lib/element.ts +26 -614
  129. package/src/lib/history.ts +14 -15
  130. package/src/lib/lit-html.ts +1269 -0
  131. package/src/lib/reactive.ts +596 -0
  132. package/src/lib/repeat.ts +580 -0
  133. package/src/lib/store.ts +5 -4
  134. package/src/lib/utils.ts +40 -46
  135. package/src/lib/version.ts +1 -1
  136. package/src/test/elements/link.test.ts +2 -3
  137. package/src/test/elements/reflect.test.ts +13 -3
  138. package/src/test/elements/title.test.ts +2 -3
  139. package/src/test/gem-element/advance.test.ts +22 -14
  140. package/src/test/gem-element/basic.test.ts +23 -11
  141. package/src/test/gem-element/decorators.test.ts +14 -17
  142. package/src/test/gem-element/multi.test.ts +20 -11
  143. package/src/test/history.test.ts +1 -2
  144. package/src/test/store.test.ts +3 -4
  145. package/src/test/utils.test.ts +12 -14
  146. package/src/test/utils.ts +22 -0
  147. package/lib/directives.d.ts +0 -4
  148. package/lib/directives.d.ts.map +0 -1
  149. package/lib/directives.js +0 -5
  150. package/lib/directives.js.map +0 -1
  151. package/src/lib/directives.ts +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lit-html.js","sourceRoot":"","sources":["../src/lib/lit-html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import type * as Lit from './lit-html';
2
+ import type { Store } from './store';
3
+ import { createUpdater } from './utils';
4
+ export declare let html: typeof Lit.html;
5
+ export declare let render: typeof Lit.render;
6
+ export declare function setEngine(h: typeof Lit.html, r: typeof Lit.render): void;
7
+ export declare const SheetToken: unique symbol;
8
+ export declare const UpdateToken: unique symbol;
9
+ declare class GemCSSStyleSheet extends CSSStyleSheet {
10
+ #private;
11
+ cssText: string;
12
+ get element(): HTMLStyleElement;
13
+ replaceSync(text: string): void;
14
+ }
15
+ declare class GemCSSSheet {
16
+ #private;
17
+ constructor(media?: string);
18
+ setContent(v: string): void;
19
+ getStyle(host?: HTMLElement): GemCSSStyleSheet;
20
+ updateStyle(): void;
21
+ }
22
+ export type Sheet<T> = {
23
+ [P in keyof T]: string;
24
+ } & {
25
+ [SheetToken]: GemCSSSheet;
26
+ };
27
+ /**
28
+ *
29
+ * 创建 style sheet 用于 `@adoptedStyle`,不支持样式更新,只支持自定义 CSS 属性
30
+ */
31
+ export declare function css<T extends Record<string, string>>(media: TemplateStringsArray, ...rest: any[]): Sheet<T>;
32
+ export declare function css<T extends Record<string, string>>(media: string, rules: T | string): Sheet<T>;
33
+ export declare function css<T extends Record<string, string>>(rules: T | string): Sheet<T>;
34
+ export declare const isSSR: boolean;
35
+ /**必须使用在字段中,否则会读取到错误的实例 */
36
+ export declare let createState: <T>(initState: T) => ReturnType<typeof createUpdater<T>>;
37
+ type EffectCallback<T> = (depValues: T, oldDepValues?: T) => any;
38
+ export type Metadata = Partial<ShadowRootInit> & {
39
+ /** 内容可被外部样式化 */
40
+ penetrable?: boolean;
41
+ noBlocking?: boolean;
42
+ aria?: Partial<ARIAMixin & {
43
+ /** 自动添加 tabIndex;支持 `disabled` 属性 */
44
+ focusable: boolean;
45
+ }>;
46
+ observedStores?: Store<any>[];
47
+ adoptedStyleSheets?: Sheet<unknown>[];
48
+ observedProperties?: string[];
49
+ observedAttributes?: string[];
50
+ definedEvents?: string[];
51
+ definedCSSStates?: string[];
52
+ definedParts?: string[];
53
+ definedSlots?: string[];
54
+ /**@deprecated GemDevtools 在使用*/
55
+ definedRefs?: string[];
56
+ };
57
+ export declare abstract class GemElement extends HTMLElement {
58
+ #private;
59
+ constructor();
60
+ get internals(): ElementInternals & {
61
+ sheets: GemCSSStyleSheet[];
62
+ stateList: ReturnType<typeof createState<any>>[];
63
+ };
64
+ /** @lifecycle 将来会彻底移除,现在做兼容实现*/ willMount?(): void | Promise<void>;
65
+ /** @lifecycle 将来会彻底移除,现在做兼容实现*/ mounted?(): void | (() => void) | Promise<void>;
66
+ /** @lifecycle 将来会彻底移除,现在做兼容实现*/ updated?(): void | Promise<void>;
67
+ /** @lifecycle 将来会彻底移除,现在做兼容实现*/ unmounted?(): void | Promise<void>;
68
+ /** @lifecycle 将来会彻底移除,现在做兼容实现*/ shouldUpdate?(): boolean;
69
+ /** @lifecycle 将来会彻底移除,现在做兼容实现*/ render?(): Lit.TemplateResult | null | undefined;
70
+ /**
71
+ * @private
72
+ * @final
73
+ * use `@mounted`
74
+ */
75
+ connectedCallback(): Unique;
76
+ /**
77
+ * @private
78
+ * @final
79
+ * use `@unmounted`
80
+ */
81
+ disconnectedCallback(): Unique;
82
+ /**
83
+ * @helper
84
+ * 记录副作用回调和值;
85
+ * 回调到返回值如果是函数将再卸载时执行;
86
+ * 第一次执行时 `oldDeps` 为空;
87
+ *
88
+ * ```js
89
+ * class App extends GemElement {
90
+ * mounted() {
91
+ * this.effect(callback, () => [this.attrName]);
92
+ * }
93
+ * }
94
+ * ```
95
+ * */
96
+ effect: <K = any[] | undefined>(callback: EffectCallback<K>, getDep?: K extends any[] ? () => K : undefined) => void;
97
+ /**
98
+ * @helper
99
+ * 在 `render` 前执行回调;
100
+ * 和 `effect` 一样接受依赖数组参数,在 `constructor` 中使用;
101
+ * 第一次执行时 `oldDeps` 为空;
102
+ *
103
+ * ```js
104
+ * class App extends GemElement {
105
+ * constructor() {
106
+ * super();
107
+ * this.memo(() => {
108
+ * this.a = exec(this.attrName);
109
+ * }), () => [this.attrName]);
110
+ * }
111
+ * }
112
+ * ```
113
+ * */
114
+ memo: <K = any[] | undefined>(callback: EffectCallback<K>, getDep?: K extends any[] ? () => K : undefined) => void;
115
+ /**
116
+ * @helper
117
+ * async
118
+ */
119
+ update: () => void;
120
+ }
121
+ type Unique = typeof UpdateToken;
122
+ export {};
123
+ //# sourceMappingURL=reactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../src/lib/reactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAA6B,aAAa,EAAuD,MAAM,SAAS,CAAC;AAExH,eAAO,IAAI,IAAI,EACyE,OAAO,GAAG,CAAC,IAAI,CAAC;AACxG,eAAO,IAAI,MAAM,EAC8B,OAAO,GAAG,CAAC,MAAM,CAAC;AAEjE,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,QAGjE;AAUD,eAAO,MAAM,UAAU,eAA+B,CAAC;AAEvD,eAAO,MAAM,WAAW,eAA2B,CAAC;AAapD,cAAM,gBAAiB,SAAQ,aAAa;;IAG1C,OAAO,SAAM;IACb,IAAI,OAAO,qBAMV;IACD,WAAW,CAAC,IAAI,EAAE,MAAM;CAKzB;AAED,cAAM,WAAW;;gBAGH,KAAK,SAAK;IAGtB,UAAU,CAAC,CAAC,EAAE,MAAM;IAOpB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW;IAgC3B,WAAW;CAKZ;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CAAE,GAAG;IAAE,CAAC,UAAU,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAElF;;;GAGG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7G,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAClG,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAqCnF,eAAO,MAAM,KAAK,SAAiC,CAAC;AAqCpD,0BAA0B;AAC1B,eAAO,IAAI,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAGjF,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC;AAuCjE,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG;IAC/C,gBAAgB;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CACZ,SAAS,GAAG;QACV,qCAAqC;QACrC,SAAS,EAAE,OAAO,CAAC;KACpB,CACF,CAAC;IAEF,cAAc,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAEtC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAgBF,8BAAsB,UAAW,SAAQ,WAAW;;;IAuFlD,IAAI,SAAS;gBAnFH,gBAAgB,EAAE;mBACf,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;MAoFjD;IA4FD,gCAAgC,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACnE,gCAAgC,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAChF,gCAAgC,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACjE,gCAAgC,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACnE,gCAAgC,CAAC,YAAY,CAAC,IAAI,OAAO;IACzD,gCAAgC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS;IAyCjF;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAS3B;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;IAgB9B;;;;;;;;;;;;;SAaK;IACL,MAAM,GAAI,CAAC,gCAAgC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,SAAS,UAa1G;IAEF;;;;;;;;;;;;;;;;SAgBK;IACL,IAAI,GAAI,CAAC,gCAAgC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,SAAS,UAMxG;IAEF;;;OAGG;IACH,MAAM,aAAoC;CAC3C;AAGD,KAAK,MAAM,GAAG,OAAO,WAAW,CAAC"}
@@ -0,0 +1,478 @@
1
+ import { connect } from './store';
2
+ import { addListener, addMicrotask, createUpdater, GemError, isArrayChange, LinkedList, randomStr, raw } from './utils';
3
+ export let html = ((arr, ...args) => raw(arr, ...args.map((e) => (e instanceof Element ? e.outerHTML : e))));
4
+ export let render = ((value, container) => (container.innerHTML = value));
5
+ export function setEngine(h, r) {
6
+ html = h;
7
+ render = r;
8
+ }
9
+ const { assign, defineProperty } = Object;
10
+ // https://github.com/tc39/proposal-decorator-metadata
11
+ defineProperty(Symbol, 'metadata', { value: Symbol.for('Symbol.metadata') });
12
+ const execCallback = (fun) => typeof fun === 'function' && fun();
13
+ // 读取构造样式表,跨多个 gem 工作
14
+ export const SheetToken = Symbol.for('gem@sheetToken');
15
+ // 更新元素,跨多个 gem 工作
16
+ export const UpdateToken = Symbol.for('gem@update');
17
+ const BoundaryCSSState = 'gem-style-boundary';
18
+ /**@internal */
19
+ export const _RenderErrorEvent = 'gem@render-error';
20
+ // fix modal-factory type error
21
+ const updateTokenAlias = UpdateToken;
22
+ const rootStyleSheetInfo = new WeakMap();
23
+ const rootUpdateFnMap = new WeakMap();
24
+ class GemCSSStyleSheet extends CSSStyleSheet {
25
+ #ele;
26
+ cssText = '';
27
+ get element() {
28
+ if (!this.#ele) {
29
+ this.#ele = document.createElement('style');
30
+ this.#ele.textContent = this.cssText;
31
+ }
32
+ return this.#ele;
33
+ }
34
+ replaceSync(text) {
35
+ this.cssText = text;
36
+ if (this.#ele)
37
+ this.#ele.textContent = text;
38
+ super.replaceSync(text);
39
+ }
40
+ }
41
+ class GemCSSSheet {
42
+ #content = '';
43
+ #media = '';
44
+ constructor(media = '') {
45
+ this.#media = media;
46
+ }
47
+ setContent(v) {
48
+ this.#content = v;
49
+ }
50
+ // 不需要 GC
51
+ #record = new Map();
52
+ #used = new Map();
53
+ getStyle(host) {
54
+ const isLight = host && !host.internals?.shadowRoot;
55
+ // 对同一类 dom 只使用同一个样式表
56
+ const key = isLight ? host.constructor : this;
57
+ if (!this.#record.has(key)) {
58
+ const sheet = new GemCSSStyleSheet({ media: this.#media });
59
+ this.#record.set(key, sheet);
60
+ }
61
+ const sheet = this.#record.get(key);
62
+ // 只执行一次
63
+ if (!this.#used.has(sheet)) {
64
+ let style = this.#content;
65
+ let scope = '';
66
+ if (isLight) {
67
+ // light dom 嵌套时需要选择子元素
68
+ // `> *` 实际上是多范围?是否存在性能问题
69
+ scope = `@scope (${host.tagName}) to (:state(${BoundaryCSSState}) > *)`;
70
+ // 不能使用 @layer,两个 @layer 不能覆盖,只有顺序起作用
71
+ // 所以外部不能通过元素名称选择器来覆盖样式,除非样式在之前插入(会自动反转应用到尾部, see `appleCSSStyleSheet`)
72
+ style = `${scope}{ ${style} }`;
73
+ }
74
+ sheet.replaceSync(style);
75
+ this.#used.set(sheet, scope);
76
+ }
77
+ return sheet;
78
+ }
79
+ // 一般用于主题更新
80
+ updateStyle() {
81
+ this.#used.forEach((scope, sheet) => {
82
+ sheet.replaceSync(scope ? `${scope}{${this.#content}}` : this.#content);
83
+ });
84
+ }
85
+ }
86
+ export function css(mediaOrRules, ...rest) {
87
+ let media = '';
88
+ let rules = '';
89
+ const rulesValue = rest.at(0);
90
+ if (Array.isArray(mediaOrRules)) {
91
+ rules = raw(mediaOrRules, ...rest);
92
+ }
93
+ else if (rulesValue !== undefined) {
94
+ media = mediaOrRules;
95
+ rules = rulesValue;
96
+ }
97
+ else {
98
+ rules = mediaOrRules;
99
+ }
100
+ const styleSheet = new GemCSSSheet(media);
101
+ const sheet = { [SheetToken]: styleSheet };
102
+ let style = '';
103
+ if (typeof rules === 'string') {
104
+ style = rules;
105
+ }
106
+ else {
107
+ Object.keys(rules).forEach((key) => {
108
+ const isScope = key === '$';
109
+ // 对于已经有 `-` 的保留原始 key,支持覆盖修改
110
+ // :scope 下可以写嵌套样式 &:xxx,:host() 下不行(子内容可以)
111
+ sheet[key] = isScope || key.includes('-') ? key : `${key}-${randomStr()}`;
112
+ style += `${isScope ? ':where(:scope:not([hidden])),:host(:where(:not([hidden])))' : `.${sheet[key]}`} {${rules[key]}}`;
113
+ });
114
+ }
115
+ styleSheet.setContent(style);
116
+ return sheet;
117
+ }
118
+ // TODO: move to transform?
119
+ export const isSSR = typeof process !== 'undefined';
120
+ const updateStyleSheets = (map, sheets, value) => {
121
+ let needUpdate = false;
122
+ sheets.forEach((e) => {
123
+ const count = map.get(e) || 0;
124
+ needUpdate ||= (value === 1 && count === 0) || (value === -1 && count === 1);
125
+ // count 为 0 时不立即删除,以便更新时识别是否外部样式
126
+ // 但是只要挂载 document 的样式表就不会被 GC 了, 是否要在闲时 GC?
127
+ map.set(e, count + value);
128
+ });
129
+ if (needUpdate) {
130
+ // 避免重复更新,例如 list 元素增删,全 light dom 时 document 更新
131
+ addMicrotask(rootUpdateFnMap.get(map), isSSR);
132
+ }
133
+ };
134
+ const appleCSSStyleSheet = (ele, sheets) => {
135
+ const root = ele.getRootNode();
136
+ if (!rootStyleSheetInfo.has(root)) {
137
+ const map = new Map();
138
+ rootStyleSheetInfo.set(root, map);
139
+ rootUpdateFnMap.set(map, () => {
140
+ // 先找到外部样式表
141
+ const newSheets = root.adoptedStyleSheets.filter((e) => !map.has(e));
142
+ map.forEach((count, sheet) => count && newSheets.push(sheet));
143
+ // 外层元素的样式要放到最后,以提升优先级,但是只考虑第一次出现样式表的位置
144
+ root.adoptedStyleSheets = newSheets.reverse();
145
+ });
146
+ }
147
+ const map = rootStyleSheetInfo.get(root);
148
+ updateStyleSheets(map, sheets, 1);
149
+ return () => updateStyleSheets(map, sheets, -1);
150
+ };
151
+ /**必须使用在字段中,否则会读取到错误的实例 */
152
+ export let createState;
153
+ function execEffectList(list) {
154
+ list?.forEach((effectItem) => {
155
+ const { callback, getDep, values, preCallback } = effectItem;
156
+ const newValues = getDep?.();
157
+ if (!getDep || !values || isArrayChange(values, newValues)) {
158
+ execCallback(preCallback);
159
+ effectItem.preCallback = callback(newValues, values);
160
+ effectItem.values = newValues;
161
+ // 更新时也要设置,避免异步的 `#initEffect` 重复执行
162
+ effectItem.initialized = true;
163
+ }
164
+ });
165
+ }
166
+ function clearEffect(list) {
167
+ return list.filter((e) => {
168
+ execCallback(e.preCallback);
169
+ e.initialized = false;
170
+ e.values = undefined;
171
+ return e.fixed;
172
+ });
173
+ }
174
+ /**@internal */
175
+ export let _createTemplate;
176
+ // global render task pool
177
+ const noBlockingTaskList = new LinkedList();
178
+ const tick = (timeStamp = performance.now()) => {
179
+ if (performance.now() > timeStamp + 16)
180
+ return requestAnimationFrame(tick);
181
+ const task = noBlockingTaskList.get();
182
+ if (task) {
183
+ task();
184
+ tick(timeStamp);
185
+ }
186
+ };
187
+ noBlockingTaskList.addEventListener('start', () => addMicrotask(tick));
188
+ let currentConstructGemElement;
189
+ export class GemElement extends HTMLElement {
190
+ #renderRoot;
191
+ #internals;
192
+ #effectList = [];
193
+ #memoList = [];
194
+ #renderList = [];
195
+ #isAppendReason;
196
+ #isMounted;
197
+ // not in constructor 的近似值
198
+ #notInCons;
199
+ #rendering;
200
+ #clearStyle;
201
+ [updateTokenAlias]() {
202
+ // 避免 `connectedCallback` 中的 property 赋值造成多余更新
203
+ if (this.#isMounted)
204
+ addMicrotask(this.#update);
205
+ }
206
+ static {
207
+ createState = (initState) => {
208
+ const ele = currentConstructGemElement;
209
+ const state = createUpdater(initState, (payload) => {
210
+ const effect = ele.#effectList.at(0);
211
+ // https://github.com/mantou132/gem/issues/203
212
+ if (ele.#isMounted && effect && !effect.initialized) {
213
+ throw new GemError(`Do't set state sync before insert the DOM`);
214
+ }
215
+ assign(state, payload);
216
+ // 避免无限刷新
217
+ // 挂载前 set state 不应该触发更新
218
+ if (!ele.#rendering && ele.#isMounted)
219
+ addMicrotask(ele.#update);
220
+ });
221
+ ele.#internals.stateList.push(state);
222
+ return state;
223
+ };
224
+ _createTemplate = (ele, item) => ele.#renderList.push(item);
225
+ }
226
+ constructor() {
227
+ super();
228
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
229
+ currentConstructGemElement = this;
230
+ const { mode, serializable, delegatesFocus, slotAssignment, aria } = this.#metadata;
231
+ const { focusable, ...internalsAria } = aria || {};
232
+ this.#renderRoot = !mode ? this : this.attachShadow({ mode, serializable, delegatesFocus, slotAssignment });
233
+ this.#internals = this.attachInternals();
234
+ this.#internals.stateList = [];
235
+ this.#internals.sheets = [];
236
+ assign(this.#internals, internalsAria);
237
+ // https://stackoverflow.com/questions/43836886/failed-to-construct-customelement-error-when-javascript-file-is-placed-in-head
238
+ // focusable 元素一般同时具备 disabled 属性
239
+ // 和原生元素行为保持一致,disabled 时不触发 click 事件
240
+ let hasInitTabIndex;
241
+ this.#effectList.push({
242
+ fixed: true,
243
+ getDep: () => [this.disabled],
244
+ callback: ([disabled = false]) => {
245
+ if (hasInitTabIndex === undefined)
246
+ hasInitTabIndex = this.hasAttribute('tabindex');
247
+ this.#internals.ariaDisabled = String(disabled);
248
+ if (focusable && !hasInitTabIndex)
249
+ this.tabIndex = -Number(disabled);
250
+ if ((focusable || delegatesFocus) && disabled) {
251
+ return addListener(this, 'click', (e) => e.isTrusted && e.stopImmediatePropagation(), {
252
+ capture: true,
253
+ });
254
+ }
255
+ },
256
+ });
257
+ }
258
+ get #metadata() {
259
+ return this.constructor[Symbol.metadata];
260
+ }
261
+ get #renderItem() {
262
+ // 从末尾开始寻找,允许被覆盖
263
+ return this.#renderList.findLast((e) => !e.condition || e.condition());
264
+ }
265
+ get internals() {
266
+ return this.#internals;
267
+ }
268
+ /**
269
+ * 每次更新完检查依赖,执行对应的副作用回调
270
+ * */
271
+ #execEffect = () => {
272
+ execEffectList(this.#effectList);
273
+ };
274
+ #execMemo = () => {
275
+ execEffectList(this.#memoList);
276
+ };
277
+ /**
278
+ * - 条件渲染
279
+ * - 没有 `render` 时显示子内容
280
+ * - 返回 `undefined` 时不会更新现有内容
281
+ * - 返回 `null` 时渲染空内容
282
+ * - 返回空的 TemplateResult 时渲染空的子内容
283
+ * */
284
+ #render = (item) => {
285
+ try {
286
+ this.#rendering = true;
287
+ this.#execMemo();
288
+ const isLight = this.#renderRoot === this;
289
+ const temp = item ? item.render() : isLight ? undefined : html `<slot></slot>`;
290
+ if (temp === undefined)
291
+ return;
292
+ render(temp !== null
293
+ ? temp
294
+ : isLight
295
+ ? // prettier-ignore
296
+ html `<style>@scope{:scope{display:none !important}}</style>`
297
+ : // prettier-ignore
298
+ html `<style>:host{display:none !important}</style>`, this.#renderRoot);
299
+ }
300
+ catch (err) {
301
+ this.dispatchEvent(new CustomEvent(_RenderErrorEvent, { bubbles: true, composed: true, detail: err }));
302
+ throw err;
303
+ }
304
+ finally {
305
+ this.#rendering = false;
306
+ }
307
+ };
308
+ #updateCallback = () => {
309
+ const item = this.#renderItem;
310
+ if (this.#isMounted &&
311
+ // 当有渲染函数,但是没一个符合条件时跳过
312
+ (item || !this.#renderList.length)) {
313
+ this.#render(item);
314
+ addMicrotask(this.#execEffect);
315
+ }
316
+ };
317
+ #update = () => {
318
+ if (this.#metadata.noBlocking) {
319
+ noBlockingTaskList.add(this.#updateCallback);
320
+ }
321
+ else {
322
+ this.#updateCallback();
323
+ }
324
+ };
325
+ #prepareStyle = () => {
326
+ const { adoptedStyleSheets = [] } = this.#metadata;
327
+ const { shadowRoot, sheets } = this.#internals;
328
+ const clsSheets = adoptedStyleSheets.map((item) => item[SheetToken].getStyle(this));
329
+ if (shadowRoot) {
330
+ shadowRoot.adoptedStyleSheets = clsSheets.concat(sheets);
331
+ }
332
+ else {
333
+ this.prepend(...sheets.map((e) => e.element));
334
+ return appleCSSStyleSheet(this, clsSheets);
335
+ }
336
+ };
337
+ /**
338
+ * 元素挂载后执行还未初始化的副作用
339
+ * */
340
+ #initEffect = () => {
341
+ this.#effectList?.forEach((effectItem) => {
342
+ const { callback, getDep, initialized } = effectItem;
343
+ if (!initialized) {
344
+ effectItem.values = getDep?.();
345
+ effectItem.preCallback = callback(effectItem.values);
346
+ effectItem.initialized = true;
347
+ }
348
+ });
349
+ };
350
+ #compat = () => {
351
+ if (this.willMount)
352
+ this.memo(this.willMount.bind(this), () => []);
353
+ if (this.mounted)
354
+ this.effect(this.mounted.bind(this), () => []);
355
+ if (this.updated)
356
+ this.effect((_, old) => old && this.updated.apply(this));
357
+ if (this.unmounted)
358
+ this.effect(() => this.unmounted.bind(this), () => []);
359
+ if (!this.#renderList.length && this.render)
360
+ this.#renderList.push({ render: this.render.bind(this), condition: this.shouldUpdate?.bind(this) });
361
+ };
362
+ #disconnectStore;
363
+ #connectedCallback = async () => {
364
+ if (this.#isAppendReason) {
365
+ this.#isAppendReason = false;
366
+ // https://github.com/mantou132/gem/issues/202
367
+ this.#clearStyle?.();
368
+ this.#clearStyle = this.#prepareStyle();
369
+ return;
370
+ }
371
+ this.#notInCons = true;
372
+ this.#compat();
373
+ const { observedStores, mode, penetrable } = this.#metadata;
374
+ // 有渲染函数的 light dom 应该添加边界,防止内容被外部样式化
375
+ // 如果渲染内容需要应用外部样式,需要手动 `delete` 边界
376
+ if (!mode && this.#renderList.length && !penetrable)
377
+ this.#internals.states.add(BoundaryCSSState);
378
+ this.#disconnectStore = observedStores?.map((store) => connect(store, this.#update));
379
+ this.#render(this.#renderItem);
380
+ this.#isMounted = true;
381
+ this.#clearStyle = this.#prepareStyle();
382
+ // 等待所有元素的样式被应用,再执行回调
383
+ // 这让 mounted 和 effect 回调和其他回调一样保持一样的异步行为
384
+ addMicrotask(this.#initEffect);
385
+ };
386
+ /**
387
+ * @private
388
+ * @final
389
+ * use `@mounted`
390
+ */
391
+ connectedCallback() {
392
+ if (this.#metadata.noBlocking) {
393
+ noBlockingTaskList.add(this.#connectedCallback);
394
+ }
395
+ else {
396
+ this.#connectedCallback();
397
+ }
398
+ return undefined;
399
+ }
400
+ /**
401
+ * @private
402
+ * @final
403
+ * use `@unmounted`
404
+ */
405
+ disconnectedCallback() {
406
+ if (this.isConnected) {
407
+ this.#isAppendReason = true;
408
+ return undefined;
409
+ }
410
+ noBlockingTaskList.delete(this.#connectedCallback);
411
+ noBlockingTaskList.delete(this.#updateCallback);
412
+ this.#isMounted = false;
413
+ this.#disconnectStore?.forEach((disconnect) => disconnect());
414
+ // 是否要异步执行回调?
415
+ this.#effectList = clearEffect(this.#effectList);
416
+ this.#memoList = clearEffect(this.#memoList);
417
+ this.#clearStyle?.();
418
+ return undefined;
419
+ }
420
+ /**
421
+ * @helper
422
+ * 记录副作用回调和值;
423
+ * 回调到返回值如果是函数将再卸载时执行;
424
+ * 第一次执行时 `oldDeps` 为空;
425
+ *
426
+ * ```js
427
+ * class App extends GemElement {
428
+ * mounted() {
429
+ * this.effect(callback, () => [this.attrName]);
430
+ * }
431
+ * }
432
+ * ```
433
+ * */
434
+ effect = (callback, getDep) => {
435
+ const effectItem = {
436
+ callback,
437
+ getDep,
438
+ initialized: this.#isMounted,
439
+ fixed: !this.#notInCons,
440
+ };
441
+ // 已挂载时立即执行副作用,未挂载时等挂载后执行
442
+ if (this.#isMounted) {
443
+ effectItem.values = getDep?.();
444
+ effectItem.preCallback = callback(effectItem.values);
445
+ }
446
+ this.#effectList.push(effectItem);
447
+ };
448
+ /**
449
+ * @helper
450
+ * 在 `render` 前执行回调;
451
+ * 和 `effect` 一样接受依赖数组参数,在 `constructor` 中使用;
452
+ * 第一次执行时 `oldDeps` 为空;
453
+ *
454
+ * ```js
455
+ * class App extends GemElement {
456
+ * constructor() {
457
+ * super();
458
+ * this.memo(() => {
459
+ * this.a = exec(this.attrName);
460
+ * }), () => [this.attrName]);
461
+ * }
462
+ * }
463
+ * ```
464
+ * */
465
+ memo = (callback, getDep) => {
466
+ this.#memoList.push({
467
+ callback,
468
+ getDep,
469
+ fixed: !this.#notInCons,
470
+ });
471
+ };
472
+ /**
473
+ * @helper
474
+ * async
475
+ */
476
+ update = () => addMicrotask(this.#update);
477
+ }
478
+ //# sourceMappingURL=reactive.js.map