j20 0.0.13 → 0.0.15

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.
package/dist/index.d.ts CHANGED
@@ -4608,7 +4608,7 @@ declare function ref<T>(init: T): RefObject<T>;
4608
4608
  declare function ref<T>(): RefObject<T>;
4609
4609
 
4610
4610
  declare const wc: () => {
4611
- host: HTMLElement;
4611
+ host: Element;
4612
4612
  emit: (name: string, detail: any) => void;
4613
4613
  onConnectedCallback: (callback: () => void) => void;
4614
4614
  onDisconnectedCallback: (callback: () => void) => void;
@@ -4648,6 +4648,8 @@ declare const onMount: (callback: () => (() => void) | void) => void;
4648
4648
 
4649
4649
  declare const onDestroy: (callback: () => void) => _j20org_signal.Effect;
4650
4650
 
4651
+ declare const style: (css?: string) => CSSStyleSheet;
4652
+
4651
4653
  interface ListProps<T> {
4652
4654
  of: T[];
4653
4655
  children: (i: T, index: number) => JSX.Element;
@@ -4730,7 +4732,7 @@ interface Instance {
4730
4732
  parent?: Instance;
4731
4733
  id: string;
4732
4734
  range: Text[];
4733
- host?: HTMLElement;
4735
+ host?: Element;
4734
4736
  disposes?: (() => void)[];
4735
4737
  children?: Instance[];
4736
4738
  mounts?: (() => void)[];
@@ -4759,5 +4761,5 @@ declare const template: (template: string) => (isSvg: boolean) => any;
4759
4761
 
4760
4762
  declare const registerWebComponent: <C extends WC<any, any>>(Comp: C) => void;
4761
4763
 
4762
- export { $, $useContext, Case, Default, For, Fragment, If, Replace, Some, Switch, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, template, wc };
4764
+ export { $, $useContext, Case, Default, For, Fragment, If, Replace, Some, Switch, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, style, template, wc };
4763
4765
  export type { AttrValueType, CaseProps, CustomElement, DOMElement, DefaultProps, FC, IfProps, Instance, ListProps, RefObject, ReplaceProps, ReplacePropsInner, SomeProps, SwitchProps, WC };
package/dist/index.js CHANGED
@@ -481,137 +481,8 @@ const createDom = (tag, props, children) => {
481
481
  return node;
482
482
  };
483
483
 
484
- const stack = [];
485
- const getCurrentInstance = () => stack.at(-1);
486
- // api security guard
487
- const securityGetCurrentInstance = () => {
488
- const instance = getCurrentInstance();
489
- if (!instance)
490
- throw new Error("Do not run this api out of component");
491
- return instance;
492
- };
493
- const instanceInit = (parent) => {
494
- const id = generateId();
495
- const parentInstance = parent ?? getCurrentInstance();
496
- const instance = {
497
- parent: parentInstance,
498
- id,
499
- range: [document.createTextNode(""), document.createTextNode("")],
500
- };
501
- if (parentInstance) {
502
- if (parentInstance.children) {
503
- parentInstance.children.push(instance);
504
- }
505
- else {
506
- parentInstance.children = [instance];
507
- }
508
- }
509
- return instance;
510
- };
511
- const mounts = [];
512
- const instanceCreateElement = (instance, runner) => {
513
- stack.push(instance);
514
- const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());
515
- fragment.prepend(instance.range[0]);
516
- fragment.append(instance.range[1]);
517
- if (instance.mounts) {
518
- mounts.push(...instance.mounts);
519
- instance.mounts = undefined;
520
- }
521
- stack.pop();
522
- if (stack.length === 0) {
523
- requestAnimationFrame(() => {
524
- mounts.forEach((mount) => mount());
525
- mounts.length = 0;
526
- });
527
- }
528
- return fragment;
529
- };
530
- const instanceCreate = (runner, parent) => {
531
- const instance = instanceInit(parent);
532
- return [instance, instanceCreateElement(instance, runner)];
533
- };
534
- const instanceGetElements = (instance) => {
535
- const [start, end] = instance.range;
536
- const els = [start];
537
- let index = start;
538
- while ((index = index.nextSibling)) {
539
- els.push(index);
540
- if (index === end)
541
- break;
542
- }
543
- return els;
544
- };
545
- const instanceDestroy = (parent, instance) => {
546
- // 使用栈来实现迭代式的深度优先销毁,避免递归开销
547
- // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)
548
- const stack = [
549
- { inst: instance, childrenDestroyed: false },
550
- ];
551
- while (stack.length > 0) {
552
- const current = stack[stack.length - 1];
553
- if (!current.childrenDestroyed) {
554
- // 第一次访问:先标记子节点已销毁,然后将子节点入栈
555
- current.childrenDestroyed = true;
556
- if (current.inst.children && current.inst.children.length > 0) {
557
- // 倒序添加子节点,保持与递归相同的销毁顺序
558
- for (let i = current.inst.children.length - 1; i >= 0; i--) {
559
- stack.push({
560
- inst: current.inst.children[i],
561
- childrenDestroyed: false,
562
- });
563
- }
564
- }
565
- }
566
- else {
567
- // 第二次访问:子节点已全部销毁,现在销毁当前节点
568
- const inst = current.inst;
569
- // 执行清理函数
570
- inst.disposes?.forEach((dispose) => {
571
- try {
572
- dispose();
573
- }
574
- catch (e) {
575
- console.error("Error during instance dispose:", e);
576
- }
577
- });
578
- // 清空 dispose 数组,但保留数组引用
579
- if (inst.disposes) {
580
- inst.disposes.length = 0;
581
- }
582
- // 清空子节点引用
583
- if (inst.children) {
584
- inst.children = [];
585
- }
586
- stack.pop();
587
- }
588
- }
589
- // 从父实例中移除此实例的引用
590
- if (parent && parent.children) {
591
- parent.children = parent.children.filter((c) => c !== instance);
592
- }
593
- };
594
-
595
- const effect = (effectFn) => {
596
- const effectInstance = effect$1(effectFn);
597
- const currentInstance = securityGetCurrentInstance();
598
- if (!currentInstance.disposes)
599
- currentInstance.disposes = [];
600
- currentInstance.disposes.push(() => effectInstance.dispose());
601
- return effectInstance;
602
- };
603
-
604
- function ref(init) {
605
- return {
606
- current: init ?? null,
607
- };
608
- }
609
-
610
484
  const BRAND = "j20";
611
485
 
612
- let host;
613
- const setHost = (h) => (host = h);
614
- const getHost = () => host;
615
486
  const registerWebComponent = (Comp) => {
616
487
  if (!Comp.customElement) {
617
488
  throw new Error("Custom element options is not provided");
@@ -644,10 +515,8 @@ const buildClass = (Comp) => {
644
515
  #props = {};
645
516
  brand = BRAND;
646
517
  customElement = customElement;
647
- lazy;
648
- constructor(lazy) {
518
+ constructor() {
649
519
  super();
650
- this.lazy = lazy;
651
520
  if (customElement.tag && customElement.mode) {
652
521
  this.#shadow = this.attachShadow({ mode: customElement.mode });
653
522
  if (styleSheet)
@@ -661,9 +530,9 @@ const buildClass = (Comp) => {
661
530
  }, {});
662
531
  }
663
532
  lazyInit() {
664
- setHost(this);
665
533
  const host = this;
666
- const [instance, fragment] = instanceCreate(() => {
534
+ hostStack.push(host);
535
+ const [, fragment] = instanceCreate(() => {
667
536
  return Comp(computed(() => {
668
537
  return new Proxy(this.#props, {
669
538
  get(target, p, receiver) {
@@ -679,8 +548,7 @@ const buildClass = (Comp) => {
679
548
  });
680
549
  }));
681
550
  }, getCurrentInstance());
682
- setHost(undefined);
683
- instance.host = this;
551
+ hostStack.pop();
684
552
  if (this.#shadow) {
685
553
  this.#shadow.appendChild(fragment);
686
554
  }
@@ -715,8 +583,6 @@ const buildClass = (Comp) => {
715
583
  }
716
584
  }
717
585
  attributeChangedCallback(name, oldValue, newValue) {
718
- if (this.lazy)
719
- return;
720
586
  const attrs = NewElementClass.observedAttributes;
721
587
  const propSignal = this.#props[a2p[name]];
722
588
  if (propSignal && attrs.includes(name)) {
@@ -758,8 +624,182 @@ const buildMap = (customElement) => {
758
624
  return { a2p, p2a, a2v };
759
625
  };
760
626
 
627
+ const hostStack = [];
628
+ const getCurrentHost = () => {
629
+ return hostStack.at(-1);
630
+ };
631
+ const createWebComponent = (tag, props) => {
632
+ const customElement = tag.customElement;
633
+ const Exist = customElements.get(customElement.tag);
634
+ let el;
635
+ if (Exist) {
636
+ if (Exist.brand !== BRAND) {
637
+ throw new Error(`Custom element [${customElement.tag}] is already registered`);
638
+ }
639
+ else {
640
+ el = new Exist();
641
+ }
642
+ }
643
+ else {
644
+ const NewClass = buildClass(tag);
645
+ customElements.define(customElement.tag, NewClass);
646
+ el = new NewClass();
647
+ }
648
+ const runner = () => {
649
+ let childrenGetter = () => untrack(() => (props ? props().children : undefined));
650
+ const ret = tag(computed(() => {
651
+ const retProps = props ? props() : {};
652
+ childrenGetter =
653
+ Object.getOwnPropertyDescriptor(retProps, "children")?.get ??
654
+ (() => undefined);
655
+ delete retProps.children;
656
+ return retProps;
657
+ }));
658
+ if (el.customElement.mode) {
659
+ el.appendToShadowDom(getChildren([].concat(ret)));
660
+ childrenGetter &&
661
+ el.appendToLightDom(getChildren([].concat(childrenGetter())));
662
+ }
663
+ else {
664
+ el.appendToBody(getChildren([].concat(ret)));
665
+ }
666
+ return el;
667
+ };
668
+ hostStack.push(el);
669
+ let [, fragment] = instanceCreate(runner);
670
+ hostStack.pop();
671
+ return fragment;
672
+ };
673
+
674
+ const instanceStack = [];
675
+ const getCurrentInstance = () => instanceStack.at(-1);
676
+ // api security guard
677
+ const securityGetCurrentInstance = () => {
678
+ const instance = getCurrentInstance();
679
+ if (!instance)
680
+ throw new Error("Do not run this api out of component");
681
+ return instance;
682
+ };
683
+ const instanceInit = (parent) => {
684
+ const id = generateId();
685
+ const parentInstance = parent ?? getCurrentInstance();
686
+ const instance = {
687
+ parent: parentInstance,
688
+ id,
689
+ host: getCurrentHost(),
690
+ range: [document.createTextNode(""), document.createTextNode("")],
691
+ };
692
+ if (parentInstance) {
693
+ if (parentInstance.children) {
694
+ parentInstance.children.push(instance);
695
+ }
696
+ else {
697
+ parentInstance.children = [instance];
698
+ }
699
+ }
700
+ return instance;
701
+ };
702
+ const mounts = [];
703
+ const instanceCreateElement = (instance, runner) => {
704
+ instanceStack.push(instance);
705
+ const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());
706
+ fragment.prepend(instance.range[0]);
707
+ fragment.append(instance.range[1]);
708
+ if (instance.mounts) {
709
+ mounts.push(...instance.mounts);
710
+ instance.mounts = undefined;
711
+ }
712
+ instanceStack.pop();
713
+ if (instanceStack.length === 0) {
714
+ requestAnimationFrame(() => {
715
+ mounts.forEach((mount) => mount());
716
+ mounts.length = 0;
717
+ });
718
+ }
719
+ return fragment;
720
+ };
721
+ const instanceCreate = (runner, parent) => {
722
+ const instance = instanceInit(parent);
723
+ return [instance, instanceCreateElement(instance, runner)];
724
+ };
725
+ const instanceGetElements = (instance) => {
726
+ const [start, end] = instance.range;
727
+ const els = [start];
728
+ let index = start;
729
+ while ((index = index.nextSibling)) {
730
+ els.push(index);
731
+ if (index === end)
732
+ break;
733
+ }
734
+ return els;
735
+ };
736
+ const instanceDestroy = (parent, instance) => {
737
+ // 使用栈来实现迭代式的深度优先销毁,避免递归开销
738
+ // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)
739
+ const stack = [
740
+ { inst: instance, childrenDestroyed: false },
741
+ ];
742
+ while (stack.length > 0) {
743
+ const current = stack[stack.length - 1];
744
+ if (!current.childrenDestroyed) {
745
+ // 第一次访问:先标记子节点已销毁,然后将子节点入栈
746
+ current.childrenDestroyed = true;
747
+ if (current.inst.children && current.inst.children.length > 0) {
748
+ // 倒序添加子节点,保持与递归相同的销毁顺序
749
+ for (let i = current.inst.children.length - 1; i >= 0; i--) {
750
+ stack.push({
751
+ inst: current.inst.children[i],
752
+ childrenDestroyed: false,
753
+ });
754
+ }
755
+ }
756
+ }
757
+ else {
758
+ // 第二次访问:子节点已全部销毁,现在销毁当前节点
759
+ const inst = current.inst;
760
+ // 执行清理函数
761
+ inst.disposes?.forEach((dispose) => {
762
+ try {
763
+ dispose();
764
+ }
765
+ catch (e) {
766
+ console.error("Error during instance dispose:", e);
767
+ }
768
+ });
769
+ // 清空 dispose 数组,但保留数组引用
770
+ if (inst.disposes) {
771
+ inst.disposes.length = 0;
772
+ }
773
+ // 清空子节点引用
774
+ if (inst.children) {
775
+ inst.children = [];
776
+ }
777
+ stack.pop();
778
+ }
779
+ }
780
+ // 从父实例中移除此实例的引用
781
+ if (parent && parent.children) {
782
+ parent.children = parent.children.filter((c) => c !== instance);
783
+ }
784
+ };
785
+
786
+ const effect = (effectFn) => {
787
+ const effectInstance = effect$1(effectFn);
788
+ const currentInstance = securityGetCurrentInstance();
789
+ if (!currentInstance.disposes)
790
+ currentInstance.disposes = [];
791
+ currentInstance.disposes.push(() => effectInstance.dispose());
792
+ return effectInstance;
793
+ };
794
+
795
+ function ref(init) {
796
+ return {
797
+ current: init ?? null,
798
+ };
799
+ }
800
+
761
801
  const wc = () => {
762
- const host = getHost();
802
+ const host = getCurrentHost();
763
803
  if (!host) {
764
804
  throw new Error("host not found, please use `wc` in web component");
765
805
  }
@@ -857,6 +897,29 @@ const onMount = (callback) => {
857
897
 
858
898
  const onDestroy = (callback) => effect(() => callback);
859
899
 
900
+ const style = (css) => {
901
+ let instance = getCurrentInstance();
902
+ const sheet = new CSSStyleSheet();
903
+ css && sheet.replaceSync(css);
904
+ while (instance) {
905
+ if (instance.host) {
906
+ instance.host.addStyleSheet(sheet);
907
+ onDestroy(() => {
908
+ instance.host.removeStyleSheet(sheet);
909
+ });
910
+ break;
911
+ }
912
+ instance = instance?.parent;
913
+ }
914
+ if (!instance) {
915
+ document.adoptedStyleSheets.push(sheet);
916
+ onDestroy(() => {
917
+ document.adoptedStyleSheets = document.adoptedStyleSheets.filter((s) => s !== sheet);
918
+ });
919
+ }
920
+ return sheet;
921
+ };
922
+
860
923
  function insertAfter(parentNode, newNode, targetNode) {
861
924
  parentNode?.insertBefore(newNode, targetNode.nextSibling);
862
925
  }
@@ -1253,49 +1316,6 @@ const createLogicComponent = (tag, props) => {
1253
1316
  return tag(computed(() => (props ? props() : {})));
1254
1317
  };
1255
1318
 
1256
- const createWebComponent = (tag, props) => {
1257
- const runner = () => {
1258
- const customElement = tag.customElement;
1259
- const Exist = customElements.get(customElement.tag);
1260
- let el;
1261
- if (Exist) {
1262
- if (Exist.brand !== BRAND) {
1263
- throw new Error(`Custom element [${customElement.tag}] is already registered`);
1264
- }
1265
- else {
1266
- el = new Exist(true);
1267
- }
1268
- }
1269
- else {
1270
- const NewClass = buildClass(tag);
1271
- customElements.define(customElement.tag, NewClass);
1272
- el = new NewClass(true);
1273
- }
1274
- let childrenGetter = () => untrack(() => (props ? props().children : undefined));
1275
- setHost(el);
1276
- const ret = tag(computed(() => {
1277
- const retProps = props ? props() : {};
1278
- childrenGetter =
1279
- Object.getOwnPropertyDescriptor(retProps, "children")?.get ??
1280
- (() => undefined);
1281
- delete retProps.children;
1282
- return retProps;
1283
- }));
1284
- setHost(undefined);
1285
- if (el.customElement.mode) {
1286
- el.appendToShadowDom(getChildren([].concat(ret)));
1287
- childrenGetter &&
1288
- el.appendToLightDom(getChildren([].concat(childrenGetter())));
1289
- }
1290
- else {
1291
- el.appendToBody(getChildren([].concat(ret)));
1292
- }
1293
- return el;
1294
- };
1295
- let [, fragment] = instanceCreate(runner);
1296
- return fragment;
1297
- };
1298
-
1299
1319
  const createElement = (tag, props, children) => {
1300
1320
  return tag instanceof Node
1301
1321
  ? createDom(tag, props, children)
@@ -1326,15 +1346,15 @@ const template = (template) => {
1326
1346
  if (!dom) {
1327
1347
  const templateEl = isSvg
1328
1348
  ? document.createElementNS("http://www.w3.org/2000/svg", "svg")
1329
- : document.createElement("template");
1349
+ : document.createElement("div");
1330
1350
  templateEl.innerHTML = template;
1331
1351
  dom = isSvg
1332
1352
  ? templateEl.firstChild
1333
- : templateEl.content.firstChild;
1353
+ : templateEl.firstChild;
1334
1354
  }
1335
1355
  return dom.cloneNode();
1336
1356
  };
1337
1357
  };
1338
1358
 
1339
- export { $, $useContext, Case, Computed, Default, Effect, For, Fragment, If, Replace, Signal, Some, Switch, batch, computed, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, signal, template, untrack, wc };
1359
+ export { $, $useContext, Case, Computed, Default, Effect, For, Fragment, If, Replace, Signal, Some, Switch, batch, computed, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, signal, style, template, untrack, wc };
1340
1360
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../signal/dist/index.js","../_dist/h/utils.js","../_dist/h/createDom.js","../_dist/h/instance.js","../_dist/api/effect.js","../_dist/api/ref.js","../_dist/brand.js","../_dist/web-components.js","../_dist/api/wc.js","../_dist/api/dollar.js","../_dist/api/utils.js","../_dist/api/context.js","../_dist/api/id.js","../_dist/api/onMount.js","../_dist/api/onDestroy.js","../_dist/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Some.js","../_dist/control/Replace.js","../_dist/control/Switch.js","../_dist/h/createLogicComponent.js","../_dist/h/createWebComponent.js","../_dist/h/createElement.js","../_dist/h/createRoot.js","../_dist/jsx-runtime.js"],"sourcesContent":["// 当前正在执行的effect或computed\nlet currentReaction = null;\n// 批处理栈,用于延迟 effect 的执行\nlet batchDepth = 0;\n// 待执行的 effect 队列\nlet pendingEffects = new Set();\n// 存储所有信号的依赖关系\nconst depMap = new WeakMap();\n/**\n * Signal类 - 用于存储响应式数据\n */\nclass Signal {\n SIGNAL = true;\n _value;\n _version = 0;\n _deps = new Set();\n constructor(value) {\n this._value = value;\n }\n get value() {\n // 如果有当前正在执行的reaction,建立依赖关系\n if (currentReaction) {\n this.track(currentReaction);\n }\n return this._value;\n }\n set value(newValue) {\n if (Object.is(this._value, newValue))\n return;\n this._value = newValue;\n this._version++;\n // 通知所有依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n // 对于effect,使用版本检查优化\n if (reaction._depVersions.has(this) || reaction.hasDepsChanged()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n }\n });\n }\n get version() {\n return this._version;\n }\n // 建立依赖关系\n track(reaction) {\n if (!this._deps.has(reaction)) {\n this._deps.add(reaction);\n // 维护反向依赖关系\n let reactions = depMap.get(this);\n if (!reactions) {\n reactions = new Set();\n depMap.set(this, reactions);\n }\n reactions.add(reaction);\n // 在reaction中记录依赖\n reaction.track(this);\n }\n }\n}\n/**\n * Computed类 - 用于计算派生值\n */\nclass Computed {\n SIGNAL = true;\n computeFn;\n _value;\n _version = 0;\n dirty = true;\n disposed = false;\n _deps = new Set();\n sources = new Set();\n constructor(computeFn) {\n this.computeFn = computeFn;\n // 使用symbol作为初始值占位符\n this._value = undefined;\n }\n get value() {\n if (this.disposed) {\n throw new Error(\"Cannot access value of disposed computed\");\n }\n if (this.dirty) {\n this.compute();\n }\n // 建立依赖关系\n if (currentReaction) {\n if (!this._deps.has(currentReaction)) {\n this._deps.add(currentReaction);\n currentReaction.track(this);\n }\n }\n return this._value;\n }\n get version() {\n return this._version;\n }\n compute() {\n if (this.disposed) {\n throw new Error(\"Cannot compute disposed computed\");\n }\n // 检查循环依赖\n if (computationStack.includes(this)) {\n throw new Error(\"Circular dependency detected in computed values\");\n }\n this.dirty = false;\n // 保存当前状态\n const prevReaction = currentReaction;\n const prevSources = this.sources;\n this.sources = new Set();\n // 将当前computed加入计算栈\n computationStack.push(this);\n currentReaction = this;\n try {\n this._value = this.computeFn();\n this._version++;\n }\n catch (e) {\n this.dirty = true;\n throw e;\n }\n finally {\n // 清理工作\n const index = computationStack.indexOf(this);\n if (index !== -1) {\n computationStack.splice(index, 1);\n }\n currentReaction = prevReaction;\n // 清理不再依赖的sources\n prevSources.forEach((source) => {\n if (!this.sources.has(source)) {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n }\n });\n }\n }\n markDirty() {\n if (this.disposed || this.dirty)\n return;\n this.dirty = true;\n // 通知依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n });\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this.sources.has(source)) {\n this.sources.add(source);\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this.sources.forEach((source) => {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this.sources.clear();\n this._deps.clear();\n // 清理引用\n this._value = undefined;\n this.computeFn = undefined;\n }\n}\n// 用于检测循环依赖\nconst computationStack = [];\n/**\n * Effect类 - 用于执行副作用\n */\nclass Effect {\n effectFn;\n cleanupFn = null;\n disposed = false;\n _deps = new Set();\n _depVersions = new Map();\n constructor(effectFn) {\n this.effectFn = effectFn;\n }\n execute() {\n if (this.disposed)\n return;\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n // 执行effect并收集依赖\n const prevReaction = currentReaction;\n currentReaction = this;\n try {\n const result = this.effectFn();\n if (typeof result === \"function\") {\n this.cleanupFn = result;\n }\n }\n finally {\n currentReaction = prevReaction;\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this._deps.forEach((dep) => {\n const reactions = depMap.get(dep);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this._deps.clear();\n this._depVersions.clear();\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n }\n isActive() {\n return !this.disposed;\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this._deps.has(source)) {\n this._deps.add(source);\n // 记录依赖的版本号\n if (\"version\" in source) {\n this._depVersions.set(source, source.version);\n }\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n hasDepsChanged() {\n for (const [dep, version] of this._depVersions) {\n if (\"version\" in dep && dep.version !== version) {\n return true;\n }\n }\n return false;\n }\n}\n// 创建信号\nfunction signal(initialValue) {\n return new Signal(initialValue);\n}\n// 创建计算值\nfunction computed(computeFn) {\n return new Computed(computeFn);\n}\n// 创建副作用\nfunction effect(effectFn) {\n const effectInstance = new Effect(effectFn);\n effectInstance.execute();\n return effectInstance;\n}\n// 临时取消追踪\nfunction untrack(fn) {\n const prevReaction = currentReaction;\n currentReaction = null;\n try {\n return fn();\n }\n finally {\n currentReaction = prevReaction;\n }\n}\n// 批处理 - 延迟 effect 的执行直到批处理结束\nfunction batch(fn) {\n batchDepth++;\n try {\n return fn();\n }\n finally {\n batchDepth--;\n // 当批处理结束时,执行所有待处理的 effect\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n // 执行所有待处理的 effect\n effects.forEach((effect) => {\n if (effect.isActive()) {\n effect.execute();\n }\n });\n }\n }\n}\n\nexport { Computed, Effect, Signal, batch, computed, effect, signal, untrack };\n//# sourceMappingURL=index.js.map\n","import { effect } from \"../api/effect\";\nexport const isEvent = (eventName) => {\n return eventName.startsWith(\"on\");\n};\nexport const getEventName = (eventName) => {\n return eventName.slice(2).toLowerCase();\n};\nexport const getChildren = (propChildren) => {\n const arr = [];\n for (let i = 0; i < propChildren.length; i++) {\n const child = propChildren[i];\n if (typeof child === \"function\") {\n let textNode;\n const effectInstance = effect(() => {\n const el = child();\n if (typeof el === \"number\" || typeof el === \"string\") {\n if (textNode) {\n textNode.nodeValue = el + \"\";\n }\n else {\n textNode = document.createTextNode(el + \"\");\n arr.push(textNode);\n }\n }\n else {\n arr.push(el);\n }\n });\n if (!textNode) {\n effectInstance.dispose();\n }\n }\n else if (child != undefined) {\n arr.push(child);\n }\n }\n return arr;\n};\nlet overflow = \"\";\nlet count = 0;\nexport const generateId = () => {\n if (count === Number.MAX_SAFE_INTEGER) {\n overflow += count.toString(32);\n count = 0;\n }\n return `${overflow}${(count++).toString(32)}`;\n};\nexport const styleObjectToString = (style) => {\n let styleString = \"\";\n for (const key in style) {\n const value = style[key];\n styleString += `${key}: ${value}; `;\n }\n return styleString.trim();\n};\n","import { effect } from \"../api/effect\";\nimport { getChildren, getEventName, isEvent, styleObjectToString, } from \"./utils\";\nimport { getCurrentInstance } from \"./instance\";\nconst update = (node, key, oldValue, newValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n node.addEventListener(getEventName(key), newValue);\n }\n else {\n if (newValue === false || newValue == null) {\n node.removeAttribute(key);\n }\n else {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nconst unset = (node, key, oldValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n }\n else if (key === \"ref\") {\n oldValue.current = null;\n }\n else {\n node.removeAttribute(key);\n }\n};\nconst add = (node, key, newValue) => {\n if (isEvent(key)) {\n node.addEventListener(getEventName(key), newValue);\n }\n else if (key === \"ref\") {\n const instance = getCurrentInstance();\n if (instance) {\n if (!instance.disposes)\n instance.disposes = [];\n instance.disposes.push(() => {\n newValue.current = null;\n });\n }\n newValue.current = node;\n }\n else {\n if (newValue !== false && newValue != null) {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const createDom = (tag, props, children) => {\n const node = tag;\n let oldProps = {};\n props &&\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n // 独立 wc 初始化\n node.lazyInit?.();\n if (children &&\n // 独立 wc 初始化时 mode 为空时,忽略 children\n (node.lazyInit\n ? !node.customElement.mode\n ? false\n : true\n : true)) {\n node.append(...getChildren([].concat(children())));\n }\n return node;\n};\n","import { createDom } from \"./createDom\";\nimport { generateId } from \"./utils\";\nconst stack = [];\nexport const getCurrentInstance = () => stack.at(-1);\n// api security guard\nexport const securityGetCurrentInstance = () => {\n const instance = getCurrentInstance();\n if (!instance)\n throw new Error(\"Do not run this api out of component\");\n return instance;\n};\nexport const instanceInit = (parent) => {\n const id = generateId();\n const parentInstance = parent ?? getCurrentInstance();\n const instance = {\n parent: parentInstance,\n id,\n range: [document.createTextNode(\"\"), document.createTextNode(\"\")],\n };\n if (parentInstance) {\n if (parentInstance.children) {\n parentInstance.children.push(instance);\n }\n else {\n parentInstance.children = [instance];\n }\n }\n return instance;\n};\nexport const mounts = [];\nexport const instanceCreateElement = (instance, runner) => {\n stack.push(instance);\n const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());\n fragment.prepend(instance.range[0]);\n fragment.append(instance.range[1]);\n if (instance.mounts) {\n mounts.push(...instance.mounts);\n instance.mounts = undefined;\n }\n stack.pop();\n if (stack.length === 0) {\n requestAnimationFrame(() => {\n mounts.forEach((mount) => mount());\n mounts.length = 0;\n });\n }\n return fragment;\n};\nexport const instanceCreate = (runner, parent) => {\n const instance = instanceInit(parent);\n return [instance, instanceCreateElement(instance, runner)];\n};\nexport const instanceGetElements = (instance) => {\n const [start, end] = instance.range;\n const els = [start];\n let index = start;\n while ((index = index.nextSibling)) {\n els.push(index);\n if (index === end)\n break;\n }\n return els;\n};\nexport const instanceDestroy = (parent, instance) => {\n // 使用栈来实现迭代式的深度优先销毁,避免递归开销\n // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)\n const stack = [\n { inst: instance, childrenDestroyed: false },\n ];\n while (stack.length > 0) {\n const current = stack[stack.length - 1];\n if (!current.childrenDestroyed) {\n // 第一次访问:先标记子节点已销毁,然后将子节点入栈\n current.childrenDestroyed = true;\n if (current.inst.children && current.inst.children.length > 0) {\n // 倒序添加子节点,保持与递归相同的销毁顺序\n for (let i = current.inst.children.length - 1; i >= 0; i--) {\n stack.push({\n inst: current.inst.children[i],\n childrenDestroyed: false,\n });\n }\n }\n }\n else {\n // 第二次访问:子节点已全部销毁,现在销毁当前节点\n const inst = current.inst;\n // 执行清理函数\n inst.disposes?.forEach((dispose) => {\n try {\n dispose();\n }\n catch (e) {\n console.error(\"Error during instance dispose:\", e);\n }\n });\n // 清空 dispose 数组,但保留数组引用\n if (inst.disposes) {\n inst.disposes.length = 0;\n }\n // 清空子节点引用\n if (inst.children) {\n inst.children = [];\n }\n stack.pop();\n }\n }\n // 从父实例中移除此实例的引用\n if (parent && parent.children) {\n parent.children = parent.children.filter((c) => c !== instance);\n }\n};\n","import { effect as innerEffect, Effect } from \"@j20org/signal\";\nimport { securityGetCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = securityGetCurrentInstance();\n if (!currentInstance.disposes)\n currentInstance.disposes = [];\n currentInstance.disposes.push(() => effectInstance.dispose());\n return effectInstance;\n};\nexport { Effect };\n","export function ref(init) {\n return {\n current: init ?? null,\n };\n}\n","export const BRAND = \"j20\";\n","import { signal } from \"./api/signal\";\nimport { computed } from \"./api/computed\";\nimport { getCurrentInstance, instanceCreate } from \"./h/instance\";\nimport { BRAND } from \"./brand\";\nlet host;\nexport const setHost = (h) => (host = h);\nexport const getHost = () => host;\nexport const registerWebComponent = (Comp) => {\n if (!Comp.customElement) {\n throw new Error(\"Custom element options is not provided\");\n }\n if (customElements.get(Comp.customElement.tag)) {\n throw new Error(\"Custom element tag is already defined\");\n }\n const NewClass = buildClass(Comp);\n customElements.define(Comp.customElement.tag, NewClass);\n};\nexport class WebComponentClass extends HTMLElement {\n lazy;\n constructor(lazy) {\n super();\n this.lazy = lazy;\n }\n addStyleSheet(sheet) { }\n removeStyleSheet(sheet) { }\n}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\n const styleSheet = customElement.style\n ? typeof customElement.style === \"string\"\n ? (() => {\n const style = new CSSStyleSheet();\n style.replaceSync(customElement.style);\n return style;\n })()\n : customElement.style\n : null;\n return class NewElementClass extends HTMLElement {\n static get observedAttributes() {\n return Object.entries(customElement.props ?? {})\n .map(([, value]) => value.attribute)\n .filter((i) => i != undefined);\n }\n #shadow;\n #props = {};\n brand = BRAND;\n customElement = customElement;\n lazy;\n constructor(lazy) {\n super();\n this.lazy = lazy;\n if (customElement.tag && customElement.mode) {\n this.#shadow = this.attachShadow({ mode: customElement.mode });\n if (styleSheet)\n this.#shadow.adoptedStyleSheets = [styleSheet];\n }\n this.#props = Object.entries(customElement.props ?? {}).reduce((acc, [key, value]) => {\n acc[key] = signal(value.attribute\n ? a2v[value.attribute](this.getAttribute(value.attribute))\n : undefined);\n return acc;\n }, {});\n }\n lazyInit() {\n setHost(this);\n const host = this;\n const [instance, fragment] = instanceCreate(() => {\n return Comp(computed(() => {\n return new Proxy(this.#props, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p.startsWith(\"on\")) {\n return (detail) => host.dispatchEvent(new CustomEvent(p.slice(2).toLocaleLowerCase(), {\n detail,\n }));\n }\n else {\n return Reflect.get(target, p, receiver)?.value;\n }\n },\n });\n }));\n }, getCurrentInstance());\n setHost(undefined);\n instance.host = this;\n if (this.#shadow) {\n this.#shadow.appendChild(fragment);\n }\n else {\n this.appendChild(fragment);\n }\n }\n appendToShadowDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.#shadow.append(...elements);\n }\n }\n appendToLightDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.append(...elements);\n }\n }\n appendToBody(elements) {\n if (elements.length > 0) {\n this.append(...elements);\n }\n }\n addStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets.push(sheet);\n }\n }\n removeStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets =\n this.#shadow.adoptedStyleSheets.filter((s) => s !== sheet);\n }\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (this.lazy)\n return;\n const attrs = NewElementClass.observedAttributes;\n const propSignal = this.#props[a2p[name]];\n if (propSignal && attrs.includes(name)) {\n propSignal.value = a2v[name](newValue);\n }\n }\n #connectedCallbackArray = [];\n addConnectedCallback(callback) {\n this.#connectedCallbackArray.push(callback);\n }\n connectedCallback() {\n this.#connectedCallbackArray.forEach((fn) => fn());\n }\n #disconnectedCallbackArray = [];\n addDisconnectedCallback(callback) {\n this.#disconnectedCallbackArray.push(callback);\n }\n disconnectedCallback() {\n this.#disconnectedCallbackArray.forEach((fn) => fn());\n }\n };\n};\nconst buildMap = (customElement) => {\n const a2p = {};\n const p2a = {};\n const a2v = {};\n Object.entries(customElement.props ?? {})\n .map(([key, value]) => [value.attribute, key, value.type])\n .filter(([attr]) => attr != undefined)\n .forEach((i) => {\n a2p[i[0]] = i[1];\n p2a[i[1]] = i[0];\n a2v[i[0]] = {\n string: (v) => v ?? undefined,\n number: (v) => (v ? Number(v) : undefined),\n boolean: (v) => (v == null ? false : true),\n }[i[2]];\n });\n return { a2p, p2a, a2v };\n};\n","import { getHost } from \"../web-components\";\nexport const wc = () => {\n const host = getHost();\n if (!host) {\n throw new Error(\"host not found, please use `wc` in web component\");\n }\n const emit = (name, detail) => {\n host.dispatchEvent(new CustomEvent(name, {\n detail,\n }));\n };\n const onConnectedCallback = (callback) => {\n host.addConnectedCallback(callback);\n };\n const onDisconnectedCallback = (callback) => {\n host.addDisconnectedCallback(callback);\n };\n return {\n host,\n emit,\n onConnectedCallback,\n onDisconnectedCallback,\n };\n};\n","export const $ = (val) => val;\n","export const isSignal = (a) => a?.SIGNAL === true;\n","import { instanceCreateElement, instanceInit, securityGetCurrentInstance, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = securityGetCurrentInstance();\n let index = instance?.parent;\n while (index) {\n if (contextWeakMap.has(index)) {\n const { ctx, value } = contextWeakMap.get(index);\n if (ctx === Context) {\n return value;\n }\n }\n else {\n index = index.parent;\n }\n }\n return Context.defaultValue;\n};\nexport const createContext = (defaultValue) => {\n const Context = (p) => {\n const props = p;\n const instance = instanceInit(securityGetCurrentInstance());\n contextWeakMap.set(instance, {\n ctx: Context,\n value: {\n get value() {\n return props.value.value;\n },\n },\n });\n const fragment = instanceCreateElement(instance, () => props.value.children);\n return fragment;\n };\n Context.isLogic = true;\n const Consumer = (p) => {\n const props = p;\n const data = context(Context);\n if (data)\n return props.value.children(data);\n return props.value.children(isSignal(defaultValue)\n ? defaultValue\n : {\n get value() {\n return defaultValue;\n },\n });\n };\n Consumer.isLogic = true;\n Context.Consumer = Consumer;\n Context.defaultValue = defaultValue;\n return Context;\n};\nexport const $useContext = (c) => context(c.value);\n","import { securityGetCurrentInstance } from \"../h/instance\";\n/**\n * 获取当前实例的 id\n * @returns 当前实例的 id,如果没有实例则返回 undefined\n */\nexport const id = () => {\n return securityGetCurrentInstance()?.id;\n};\n","import { securityGetCurrentInstance } from \"../h/instance\";\nexport const onMount = (callback) => {\n const instance = securityGetCurrentInstance();\n if (!instance.mounts) {\n instance.mounts = [];\n }\n instance.mounts.push(callback);\n};\n","import { effect } from \"./effect\";\nexport const onDestroy = (callback) => effect(() => callback);\n","import { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, instanceGetElements, instanceDestroy, securityGetCurrentInstance, } from \"../h/instance\";\nimport { untrack } from \"../api/untrack\";\nfunction insertAfter(parentNode, newNode, targetNode) {\n parentNode?.insertBefore(newNode, targetNode.nextSibling);\n}\nconst isSame = (a, b, trait) => {\n return Object.is(trait(a), trait(b));\n};\nconst defaultTrait = (a) => a;\nexport const For = (p) => {\n let initialized = false;\n const currentInstance = securityGetCurrentInstance();\n let oldList = [];\n let oldListItems = [];\n let initElements = [];\n effect(() => {\n const props = p.value;\n const trait = props.trait ?? defaultTrait;\n const newList = props.of;\n // @ts-expect-error\n if (import.meta.env.DEV) {\n const traitMap = new Map();\n const duplicates = [];\n for (const item of newList) {\n const traitValue = trait(item);\n if (!traitMap.has(traitValue)) {\n traitMap.set(traitValue, []);\n }\n traitMap.get(traitValue).push(item);\n // 检查是否有重复\n if (traitMap.get(traitValue).length === 2) {\n duplicates.push(...traitMap.get(traitValue));\n }\n }\n // 输出 trait 重复警告\n if (duplicates.length > 0) {\n console.warn(\"[j20 For] Duplicate trait values detected in list. \" +\n \"Each item should have a unique trait value for optimal performance. \" +\n \"Duplicates found:\", duplicates);\n }\n }\n const newListItems = new Array(newList.length);\n // 实现 diff 逻辑,参考 vue3\n let i = 0;\n const l2 = newList.length;\n let e1 = oldList.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[i], newList[i], trait)) {\n newListItems[i] = oldListItems[i];\n i++;\n }\n else {\n break;\n }\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[e1], newList[e2], trait)) {\n newListItems[e2] = oldListItems[e1];\n e1--;\n e2--;\n }\n else {\n break;\n }\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n for (; i <= e2; i++) {\n const newIndex = signal(i);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newList[i], newIndex));\n return newChild;\n }, currentInstance);\n if (!initialized) {\n initElements.push(newInstanceFragment);\n }\n else {\n if (i > 0) {\n const prev = newListItems[i - 1]?.instance;\n const prevEl = prev?.range[1] ?? currentInstance.range[0];\n insertAfter(prevEl.parentNode, newInstanceFragment, prevEl);\n }\n else {\n const parentNode = currentInstance.range[0].parentNode;\n parentNode?.insertBefore(newInstanceFragment, currentInstance.range[0]);\n }\n }\n newListItems[i] = {\n index: newIndex,\n item: newList[i],\n instance: newInstance,\n };\n }\n }\n }\n // 4. common sequence + unmount\n else if (i > e2) {\n while (i <= e1) {\n // remove elements\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n i++;\n }\n }\n // 5. unknown sequence\n else {\n // 创建一个 key -> index 的映射,用于快速查找旧列表中的项\n const s1 = i; // 旧列表开始索引\n const s2 = i; // 新列表开始索引\n // 为新的未处理项创建 key -> index 映射\n const keyToNewIndexMap = new Map();\n for (let i = s2; i <= e2; i++) {\n keyToNewIndexMap.set(trait(newList[i]), i);\n }\n // 需要处理的新项数量\n const toBePatched = e2 - s2 + 1;\n // 创建一个数组,存储新旧索引的映射关系\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (let i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n // 遍历旧列表中未处理的项,如果在新列表中存在则更新,否则删除\n let patched = 0;\n let moved = false;\n let maxNewIndexSoFar = 0;\n for (let i = s1; i <= e1; i++) {\n if (patched >= toBePatched) {\n // 所有新项都已处理,剩余的旧项可以直接删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n continue;\n }\n const oldItem = oldList[i];\n const oldKey = trait(oldItem);\n const newIndex = keyToNewIndexMap.get(oldKey);\n if (newIndex === undefined) {\n // 在新列表中不存在,删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n }\n else {\n // 在新列表中存在,更新映射关系\n // newIndex - s2 得到在 newIndexToOldIndexMap 中的位置\n // i + 1 避免与初始值 0 冲突\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n // 检查是否需要移动\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n // 复用实例\n newListItems[newIndex] = oldListItems[i];\n patched++;\n }\n }\n // 如果需要移动节点,使用最长递增子序列算法优化移动\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : [];\n // 从后向前遍历,确保插入顺序正确\n let j = increasingNewIndexSequence.length - 1;\n for (let i = toBePatched - 1; i >= 0; i--) {\n const newIndex = s2 + i;\n const newItem = newList[newIndex];\n // 确定锚点元素\n const anchor = newIndex + 1 < l2\n ? newListItems[newIndex + 1].instance.range[0]\n : currentInstance.range[1];\n if (newIndexToOldIndexMap[i] === 0) {\n // 创建新节点\n const newIdx = signal(newIndex);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newItem, newIdx));\n return newChild;\n }, currentInstance);\n // 插入到 DOM\n anchor.parentNode?.insertBefore(newInstanceFragment, anchor);\n newListItems[newIndex] = {\n index: newIdx,\n item: newItem,\n instance: newInstance,\n };\n }\n else if (moved) {\n // 需要移动\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n // 移动节点\n const nodeToMove = newListItems[newIndex];\n const elementsToMove = instanceGetElements(nodeToMove.instance);\n // 将所有元素移动到锚点之前\n elementsToMove.forEach((el) => {\n anchor.parentNode?.insertBefore(el, anchor);\n });\n }\n else {\n // 不需要移动,跳过\n j--;\n }\n }\n }\n }\n oldList = newList;\n oldListItems = newListItems;\n currentInstance.children = newListItems.map((item, index) => {\n item.index.value = index;\n return item.instance;\n });\n });\n initialized = true;\n return initElements.splice(0, initElements.length);\n};\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nexport const createComponent = (tag, props) => {\n const runner = () => tag(computed(() => (props ? props() : {})));\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const If = (p) => {\n const props = p;\n const arr = computed(() => (!props.value.of ? [0] : [1]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const children = propsValues.children;\n if (children && typeof children === \"function\") {\n return children(!!bool);\n }\n if (bool) {\n return children;\n }\n else {\n return propsValues.else;\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\n// 实现\nfunction Some(p) {\n const props = p;\n const resSig = computed(() => props.value.of);\n const arr = computed(() => (resSig.value != null ? [1] : [0]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const { children } = propsValues;\n if (bool) {\n return children(computed(() => resSig.value));\n }\n else {\n return propsValues.none;\n }\n };\n },\n }));\n}\nSome.isLogic = true;\nexport { Some };\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Replace = (p) => {\n const props = p;\n let count = 0;\n const list = computed(() => {\n props.value.of;\n return [(count = (count + 1) % 2)];\n });\n return createComponent(For, () => ({\n of: list.value,\n get children() {\n return (item) => {\n const children = props.value.children;\n return typeof children === \"function\" ? children(item) : children;\n };\n },\n }));\n};\nReplace.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nimport { generateId } from \"../h/utils\";\nexport const Switch = (p) => {\n const props = p;\n const children = props.value.children;\n const res = computed(() => children.filter((i) => i.valid)[0]);\n return createComponent(For, () => ({\n of: res.value ? [res.value] : [],\n trait: (item) => item.id,\n get children() {\n return (item) => item.children;\n },\n }));\n};\nSwitch.isLogic = true;\nexport const Case = (p) => {\n const props = p;\n const id = generateId();\n return {\n id,\n get valid() {\n return props.value.of;\n },\n get children() {\n return props.value.children;\n },\n };\n};\nCase.isLogic = true;\nexport const Default = (p) => {\n const props = p;\n const id = generateId();\n const data = {\n id,\n get valid() {\n return true;\n },\n get children() {\n return props.value.children;\n },\n };\n return data;\n};\nDefault.isLogic = true;\n","import { computed } from \"../api/computed\";\nexport const createLogicComponent = (tag, props) => {\n return tag(computed(() => (props ? props() : {})));\n};\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nimport { untrack } from \"../api/untrack\";\nimport { BRAND } from \"../brand\";\nimport { buildClass, setHost } from \"../web-components\";\nimport { getChildren } from \"./utils\";\nexport const createWebComponent = (tag, props) => {\n const runner = () => {\n const customElement = tag.customElement;\n const Exist = customElements.get(customElement.tag);\n let el;\n if (Exist) {\n if (Exist.brand !== BRAND) {\n throw new Error(`Custom element [${customElement.tag}] is already registered`);\n }\n else {\n el = new Exist(true);\n }\n }\n else {\n const NewClass = buildClass(tag);\n customElements.define(customElement.tag, NewClass);\n el = new NewClass(true);\n }\n let childrenGetter = () => untrack(() => (props ? props().children : undefined));\n setHost(el);\n const ret = tag(computed(() => {\n const retProps = props ? props() : {};\n childrenGetter =\n Object.getOwnPropertyDescriptor(retProps, \"children\")?.get ??\n (() => undefined);\n delete retProps.children;\n return retProps;\n }));\n setHost(undefined);\n if (el.customElement.mode) {\n el.appendToShadowDom(getChildren([].concat(ret)));\n childrenGetter &&\n el.appendToLightDom(getChildren([].concat(childrenGetter())));\n }\n else {\n el.appendToBody(getChildren([].concat(ret)));\n }\n return el;\n };\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { createComponent } from \"./createComponent\";\nimport { createDom } from \"./createDom\";\nimport { createLogicComponent } from \"./createLogicComponent\";\nimport { createWebComponent } from \"./createWebComponent\";\nexport const createElement = (tag, props, children) => {\n return tag instanceof Node\n ? createDom(tag, props, children)\n : \"isLogic\" in tag\n ? createLogicComponent(tag, props)\n : \"customElement\" in tag\n ? createWebComponent(tag, props)\n : createComponent(tag, props);\n};\n","import { instanceCreate } from \"./instance\";\nexport const createRoot = (boot) => {\n let [instance, fragment] = instanceCreate(() => boot());\n return {\n element: fragment,\n instance,\n };\n};\n","import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"template\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.content.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":["effect","innerEffect"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../signal/dist/index.js","../_dist/h/utils.js","../_dist/h/createDom.js","../_dist/brand.js","../_dist/web-components.js","../_dist/h/createWebComponent.js","../_dist/h/instance.js","../_dist/api/effect.js","../_dist/api/ref.js","../_dist/api/wc.js","../_dist/api/dollar.js","../_dist/api/utils.js","../_dist/api/context.js","../_dist/api/id.js","../_dist/api/onMount.js","../_dist/api/onDestroy.js","../_dist/api/style.js","../_dist/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Some.js","../_dist/control/Replace.js","../_dist/control/Switch.js","../_dist/h/createLogicComponent.js","../_dist/h/createElement.js","../_dist/h/createRoot.js","../_dist/jsx-runtime.js"],"sourcesContent":["// 当前正在执行的effect或computed\nlet currentReaction = null;\n// 批处理栈,用于延迟 effect 的执行\nlet batchDepth = 0;\n// 待执行的 effect 队列\nlet pendingEffects = new Set();\n// 存储所有信号的依赖关系\nconst depMap = new WeakMap();\n/**\n * Signal类 - 用于存储响应式数据\n */\nclass Signal {\n SIGNAL = true;\n _value;\n _version = 0;\n _deps = new Set();\n constructor(value) {\n this._value = value;\n }\n get value() {\n // 如果有当前正在执行的reaction,建立依赖关系\n if (currentReaction) {\n this.track(currentReaction);\n }\n return this._value;\n }\n set value(newValue) {\n if (Object.is(this._value, newValue))\n return;\n this._value = newValue;\n this._version++;\n // 通知所有依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n // 对于effect,使用版本检查优化\n if (reaction._depVersions.has(this) || reaction.hasDepsChanged()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n }\n });\n }\n get version() {\n return this._version;\n }\n // 建立依赖关系\n track(reaction) {\n if (!this._deps.has(reaction)) {\n this._deps.add(reaction);\n // 维护反向依赖关系\n let reactions = depMap.get(this);\n if (!reactions) {\n reactions = new Set();\n depMap.set(this, reactions);\n }\n reactions.add(reaction);\n // 在reaction中记录依赖\n reaction.track(this);\n }\n }\n}\n/**\n * Computed类 - 用于计算派生值\n */\nclass Computed {\n SIGNAL = true;\n computeFn;\n _value;\n _version = 0;\n dirty = true;\n disposed = false;\n _deps = new Set();\n sources = new Set();\n constructor(computeFn) {\n this.computeFn = computeFn;\n // 使用symbol作为初始值占位符\n this._value = undefined;\n }\n get value() {\n if (this.disposed) {\n throw new Error(\"Cannot access value of disposed computed\");\n }\n if (this.dirty) {\n this.compute();\n }\n // 建立依赖关系\n if (currentReaction) {\n if (!this._deps.has(currentReaction)) {\n this._deps.add(currentReaction);\n currentReaction.track(this);\n }\n }\n return this._value;\n }\n get version() {\n return this._version;\n }\n compute() {\n if (this.disposed) {\n throw new Error(\"Cannot compute disposed computed\");\n }\n // 检查循环依赖\n if (computationStack.includes(this)) {\n throw new Error(\"Circular dependency detected in computed values\");\n }\n this.dirty = false;\n // 保存当前状态\n const prevReaction = currentReaction;\n const prevSources = this.sources;\n this.sources = new Set();\n // 将当前computed加入计算栈\n computationStack.push(this);\n currentReaction = this;\n try {\n this._value = this.computeFn();\n this._version++;\n }\n catch (e) {\n this.dirty = true;\n throw e;\n }\n finally {\n // 清理工作\n const index = computationStack.indexOf(this);\n if (index !== -1) {\n computationStack.splice(index, 1);\n }\n currentReaction = prevReaction;\n // 清理不再依赖的sources\n prevSources.forEach((source) => {\n if (!this.sources.has(source)) {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n }\n });\n }\n }\n markDirty() {\n if (this.disposed || this.dirty)\n return;\n this.dirty = true;\n // 通知依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n });\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this.sources.has(source)) {\n this.sources.add(source);\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this.sources.forEach((source) => {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this.sources.clear();\n this._deps.clear();\n // 清理引用\n this._value = undefined;\n this.computeFn = undefined;\n }\n}\n// 用于检测循环依赖\nconst computationStack = [];\n/**\n * Effect类 - 用于执行副作用\n */\nclass Effect {\n effectFn;\n cleanupFn = null;\n disposed = false;\n _deps = new Set();\n _depVersions = new Map();\n constructor(effectFn) {\n this.effectFn = effectFn;\n }\n execute() {\n if (this.disposed)\n return;\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n // 执行effect并收集依赖\n const prevReaction = currentReaction;\n currentReaction = this;\n try {\n const result = this.effectFn();\n if (typeof result === \"function\") {\n this.cleanupFn = result;\n }\n }\n finally {\n currentReaction = prevReaction;\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this._deps.forEach((dep) => {\n const reactions = depMap.get(dep);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this._deps.clear();\n this._depVersions.clear();\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n }\n isActive() {\n return !this.disposed;\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this._deps.has(source)) {\n this._deps.add(source);\n // 记录依赖的版本号\n if (\"version\" in source) {\n this._depVersions.set(source, source.version);\n }\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n hasDepsChanged() {\n for (const [dep, version] of this._depVersions) {\n if (\"version\" in dep && dep.version !== version) {\n return true;\n }\n }\n return false;\n }\n}\n// 创建信号\nfunction signal(initialValue) {\n return new Signal(initialValue);\n}\n// 创建计算值\nfunction computed(computeFn) {\n return new Computed(computeFn);\n}\n// 创建副作用\nfunction effect(effectFn) {\n const effectInstance = new Effect(effectFn);\n effectInstance.execute();\n return effectInstance;\n}\n// 临时取消追踪\nfunction untrack(fn) {\n const prevReaction = currentReaction;\n currentReaction = null;\n try {\n return fn();\n }\n finally {\n currentReaction = prevReaction;\n }\n}\n// 批处理 - 延迟 effect 的执行直到批处理结束\nfunction batch(fn) {\n batchDepth++;\n try {\n return fn();\n }\n finally {\n batchDepth--;\n // 当批处理结束时,执行所有待处理的 effect\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n // 执行所有待处理的 effect\n effects.forEach((effect) => {\n if (effect.isActive()) {\n effect.execute();\n }\n });\n }\n }\n}\n\nexport { Computed, Effect, Signal, batch, computed, effect, signal, untrack };\n//# sourceMappingURL=index.js.map\n","import { effect } from \"../api/effect\";\nexport const isEvent = (eventName) => {\n return eventName.startsWith(\"on\");\n};\nexport const getEventName = (eventName) => {\n return eventName.slice(2).toLowerCase();\n};\nexport const getChildren = (propChildren) => {\n const arr = [];\n for (let i = 0; i < propChildren.length; i++) {\n const child = propChildren[i];\n if (typeof child === \"function\") {\n let textNode;\n const effectInstance = effect(() => {\n const el = child();\n if (typeof el === \"number\" || typeof el === \"string\") {\n if (textNode) {\n textNode.nodeValue = el + \"\";\n }\n else {\n textNode = document.createTextNode(el + \"\");\n arr.push(textNode);\n }\n }\n else {\n arr.push(el);\n }\n });\n if (!textNode) {\n effectInstance.dispose();\n }\n }\n else if (child != undefined) {\n arr.push(child);\n }\n }\n return arr;\n};\nlet overflow = \"\";\nlet count = 0;\nexport const generateId = () => {\n if (count === Number.MAX_SAFE_INTEGER) {\n overflow += count.toString(32);\n count = 0;\n }\n return `${overflow}${(count++).toString(32)}`;\n};\nexport const styleObjectToString = (style) => {\n let styleString = \"\";\n for (const key in style) {\n const value = style[key];\n styleString += `${key}: ${value}; `;\n }\n return styleString.trim();\n};\n","import { effect } from \"../api/effect\";\nimport { getChildren, getEventName, isEvent, styleObjectToString, } from \"./utils\";\nimport { getCurrentInstance } from \"./instance\";\nconst update = (node, key, oldValue, newValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n node.addEventListener(getEventName(key), newValue);\n }\n else {\n if (newValue === false || newValue == null) {\n node.removeAttribute(key);\n }\n else {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nconst unset = (node, key, oldValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n }\n else if (key === \"ref\") {\n oldValue.current = null;\n }\n else {\n node.removeAttribute(key);\n }\n};\nconst add = (node, key, newValue) => {\n if (isEvent(key)) {\n node.addEventListener(getEventName(key), newValue);\n }\n else if (key === \"ref\") {\n const instance = getCurrentInstance();\n if (instance) {\n if (!instance.disposes)\n instance.disposes = [];\n instance.disposes.push(() => {\n newValue.current = null;\n });\n }\n newValue.current = node;\n }\n else {\n if (newValue !== false && newValue != null) {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const createDom = (tag, props, children) => {\n const node = tag;\n let oldProps = {};\n props &&\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n // 独立 wc 初始化\n node.lazyInit?.();\n if (children &&\n // 独立 wc 初始化时 mode 为空时,忽略 children\n (node.lazyInit\n ? !node.customElement.mode\n ? false\n : true\n : true)) {\n node.append(...getChildren([].concat(children())));\n }\n return node;\n};\n","export const BRAND = \"j20\";\n","import { signal } from \"./api/signal\";\nimport { computed } from \"./api/computed\";\nimport { getCurrentInstance, instanceCreate } from \"./h/instance\";\nimport { BRAND } from \"./brand\";\nimport { hostStack } from \"./h/createWebComponent\";\nexport const registerWebComponent = (Comp) => {\n if (!Comp.customElement) {\n throw new Error(\"Custom element options is not provided\");\n }\n if (customElements.get(Comp.customElement.tag)) {\n throw new Error(\"Custom element tag is already defined\");\n }\n const NewClass = buildClass(Comp);\n customElements.define(Comp.customElement.tag, NewClass);\n};\nexport class WebComponentClass extends HTMLElement {\n constructor() {\n super();\n }\n addStyleSheet(sheet) { }\n removeStyleSheet(sheet) { }\n}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\n const styleSheet = customElement.style\n ? typeof customElement.style === \"string\"\n ? (() => {\n const style = new CSSStyleSheet();\n style.replaceSync(customElement.style);\n return style;\n })()\n : customElement.style\n : null;\n return class NewElementClass extends HTMLElement {\n static get observedAttributes() {\n return Object.entries(customElement.props ?? {})\n .map(([, value]) => value.attribute)\n .filter((i) => i != undefined);\n }\n #shadow;\n #props = {};\n brand = BRAND;\n customElement = customElement;\n constructor() {\n super();\n if (customElement.tag && customElement.mode) {\n this.#shadow = this.attachShadow({ mode: customElement.mode });\n if (styleSheet)\n this.#shadow.adoptedStyleSheets = [styleSheet];\n }\n this.#props = Object.entries(customElement.props ?? {}).reduce((acc, [key, value]) => {\n acc[key] = signal(value.attribute\n ? a2v[value.attribute](this.getAttribute(value.attribute))\n : undefined);\n return acc;\n }, {});\n }\n lazyInit() {\n const host = this;\n hostStack.push(host);\n const [, fragment] = instanceCreate(() => {\n return Comp(computed(() => {\n return new Proxy(this.#props, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p.startsWith(\"on\")) {\n return (detail) => host.dispatchEvent(new CustomEvent(p.slice(2).toLocaleLowerCase(), {\n detail,\n }));\n }\n else {\n return Reflect.get(target, p, receiver)?.value;\n }\n },\n });\n }));\n }, getCurrentInstance());\n hostStack.pop();\n if (this.#shadow) {\n this.#shadow.appendChild(fragment);\n }\n else {\n this.appendChild(fragment);\n }\n }\n appendToShadowDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.#shadow.append(...elements);\n }\n }\n appendToLightDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.append(...elements);\n }\n }\n appendToBody(elements) {\n if (elements.length > 0) {\n this.append(...elements);\n }\n }\n addStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets.push(sheet);\n }\n }\n removeStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets =\n this.#shadow.adoptedStyleSheets.filter((s) => s !== sheet);\n }\n }\n attributeChangedCallback(name, oldValue, newValue) {\n const attrs = NewElementClass.observedAttributes;\n const propSignal = this.#props[a2p[name]];\n if (propSignal && attrs.includes(name)) {\n propSignal.value = a2v[name](newValue);\n }\n }\n #connectedCallbackArray = [];\n addConnectedCallback(callback) {\n this.#connectedCallbackArray.push(callback);\n }\n connectedCallback() {\n this.#connectedCallbackArray.forEach((fn) => fn());\n }\n #disconnectedCallbackArray = [];\n addDisconnectedCallback(callback) {\n this.#disconnectedCallbackArray.push(callback);\n }\n disconnectedCallback() {\n this.#disconnectedCallbackArray.forEach((fn) => fn());\n }\n };\n};\nconst buildMap = (customElement) => {\n const a2p = {};\n const p2a = {};\n const a2v = {};\n Object.entries(customElement.props ?? {})\n .map(([key, value]) => [value.attribute, key, value.type])\n .filter(([attr]) => attr != undefined)\n .forEach((i) => {\n a2p[i[0]] = i[1];\n p2a[i[1]] = i[0];\n a2v[i[0]] = {\n string: (v) => v ?? undefined,\n number: (v) => (v ? Number(v) : undefined),\n boolean: (v) => (v == null ? false : true),\n }[i[2]];\n });\n return { a2p, p2a, a2v };\n};\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nimport { untrack } from \"../api/untrack\";\nimport { BRAND } from \"../brand\";\nimport { buildClass } from \"../web-components\";\nimport { getChildren } from \"./utils\";\nexport const hostStack = [];\nexport const getCurrentHost = () => {\n return hostStack.at(-1);\n};\nexport const createWebComponent = (tag, props) => {\n const customElement = tag.customElement;\n const Exist = customElements.get(customElement.tag);\n let el;\n if (Exist) {\n if (Exist.brand !== BRAND) {\n throw new Error(`Custom element [${customElement.tag}] is already registered`);\n }\n else {\n el = new Exist();\n }\n }\n else {\n const NewClass = buildClass(tag);\n customElements.define(customElement.tag, NewClass);\n el = new NewClass();\n }\n const runner = () => {\n let childrenGetter = () => untrack(() => (props ? props().children : undefined));\n const ret = tag(computed(() => {\n const retProps = props ? props() : {};\n childrenGetter =\n Object.getOwnPropertyDescriptor(retProps, \"children\")?.get ??\n (() => undefined);\n delete retProps.children;\n return retProps;\n }));\n if (el.customElement.mode) {\n el.appendToShadowDom(getChildren([].concat(ret)));\n childrenGetter &&\n el.appendToLightDom(getChildren([].concat(childrenGetter())));\n }\n else {\n el.appendToBody(getChildren([].concat(ret)));\n }\n return el;\n };\n hostStack.push(el);\n let [, fragment] = instanceCreate(runner);\n hostStack.pop();\n return fragment;\n};\n","import { createDom } from \"./createDom\";\nimport { getCurrentHost } from \"./createWebComponent\";\nimport { generateId } from \"./utils\";\nconst instanceStack = [];\nexport const getCurrentInstance = () => instanceStack.at(-1);\n// api security guard\nexport const securityGetCurrentInstance = () => {\n const instance = getCurrentInstance();\n if (!instance)\n throw new Error(\"Do not run this api out of component\");\n return instance;\n};\nexport const instanceInit = (parent) => {\n const id = generateId();\n const parentInstance = parent ?? getCurrentInstance();\n const instance = {\n parent: parentInstance,\n id,\n host: getCurrentHost(),\n range: [document.createTextNode(\"\"), document.createTextNode(\"\")],\n };\n if (parentInstance) {\n if (parentInstance.children) {\n parentInstance.children.push(instance);\n }\n else {\n parentInstance.children = [instance];\n }\n }\n return instance;\n};\nexport const mounts = [];\nexport const instanceCreateElement = (instance, runner) => {\n instanceStack.push(instance);\n const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());\n fragment.prepend(instance.range[0]);\n fragment.append(instance.range[1]);\n if (instance.mounts) {\n mounts.push(...instance.mounts);\n instance.mounts = undefined;\n }\n instanceStack.pop();\n if (instanceStack.length === 0) {\n requestAnimationFrame(() => {\n mounts.forEach((mount) => mount());\n mounts.length = 0;\n });\n }\n return fragment;\n};\nexport const instanceCreate = (runner, parent) => {\n const instance = instanceInit(parent);\n return [instance, instanceCreateElement(instance, runner)];\n};\nexport const instanceGetElements = (instance) => {\n const [start, end] = instance.range;\n const els = [start];\n let index = start;\n while ((index = index.nextSibling)) {\n els.push(index);\n if (index === end)\n break;\n }\n return els;\n};\nexport const instanceDestroy = (parent, instance) => {\n // 使用栈来实现迭代式的深度优先销毁,避免递归开销\n // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)\n const stack = [\n { inst: instance, childrenDestroyed: false },\n ];\n while (stack.length > 0) {\n const current = stack[stack.length - 1];\n if (!current.childrenDestroyed) {\n // 第一次访问:先标记子节点已销毁,然后将子节点入栈\n current.childrenDestroyed = true;\n if (current.inst.children && current.inst.children.length > 0) {\n // 倒序添加子节点,保持与递归相同的销毁顺序\n for (let i = current.inst.children.length - 1; i >= 0; i--) {\n stack.push({\n inst: current.inst.children[i],\n childrenDestroyed: false,\n });\n }\n }\n }\n else {\n // 第二次访问:子节点已全部销毁,现在销毁当前节点\n const inst = current.inst;\n // 执行清理函数\n inst.disposes?.forEach((dispose) => {\n try {\n dispose();\n }\n catch (e) {\n console.error(\"Error during instance dispose:\", e);\n }\n });\n // 清空 dispose 数组,但保留数组引用\n if (inst.disposes) {\n inst.disposes.length = 0;\n }\n // 清空子节点引用\n if (inst.children) {\n inst.children = [];\n }\n stack.pop();\n }\n }\n // 从父实例中移除此实例的引用\n if (parent && parent.children) {\n parent.children = parent.children.filter((c) => c !== instance);\n }\n};\n","import { effect as innerEffect, Effect } from \"@j20org/signal\";\nimport { securityGetCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = securityGetCurrentInstance();\n if (!currentInstance.disposes)\n currentInstance.disposes = [];\n currentInstance.disposes.push(() => effectInstance.dispose());\n return effectInstance;\n};\nexport { Effect };\n","export function ref(init) {\n return {\n current: init ?? null,\n };\n}\n","import { getCurrentHost } from \"../h/createWebComponent\";\nexport const wc = () => {\n const host = getCurrentHost();\n if (!host) {\n throw new Error(\"host not found, please use `wc` in web component\");\n }\n const emit = (name, detail) => {\n host.dispatchEvent(new CustomEvent(name, {\n detail,\n }));\n };\n const onConnectedCallback = (callback) => {\n host.addConnectedCallback(callback);\n };\n const onDisconnectedCallback = (callback) => {\n host.addDisconnectedCallback(callback);\n };\n return {\n host,\n emit,\n onConnectedCallback,\n onDisconnectedCallback,\n };\n};\n","export const $ = (val) => val;\n","export const isSignal = (a) => a?.SIGNAL === true;\n","import { instanceCreateElement, instanceInit, securityGetCurrentInstance, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = securityGetCurrentInstance();\n let index = instance?.parent;\n while (index) {\n if (contextWeakMap.has(index)) {\n const { ctx, value } = contextWeakMap.get(index);\n if (ctx === Context) {\n return value;\n }\n }\n else {\n index = index.parent;\n }\n }\n return Context.defaultValue;\n};\nexport const createContext = (defaultValue) => {\n const Context = (p) => {\n const props = p;\n const instance = instanceInit(securityGetCurrentInstance());\n contextWeakMap.set(instance, {\n ctx: Context,\n value: {\n get value() {\n return props.value.value;\n },\n },\n });\n const fragment = instanceCreateElement(instance, () => props.value.children);\n return fragment;\n };\n Context.isLogic = true;\n const Consumer = (p) => {\n const props = p;\n const data = context(Context);\n if (data)\n return props.value.children(data);\n return props.value.children(isSignal(defaultValue)\n ? defaultValue\n : {\n get value() {\n return defaultValue;\n },\n });\n };\n Consumer.isLogic = true;\n Context.Consumer = Consumer;\n Context.defaultValue = defaultValue;\n return Context;\n};\nexport const $useContext = (c) => context(c.value);\n","import { securityGetCurrentInstance } from \"../h/instance\";\n/**\n * 获取当前实例的 id\n * @returns 当前实例的 id,如果没有实例则返回 undefined\n */\nexport const id = () => {\n return securityGetCurrentInstance()?.id;\n};\n","import { securityGetCurrentInstance } from \"../h/instance\";\nexport const onMount = (callback) => {\n const instance = securityGetCurrentInstance();\n if (!instance.mounts) {\n instance.mounts = [];\n }\n instance.mounts.push(callback);\n};\n","import { effect } from \"./effect\";\nexport const onDestroy = (callback) => effect(() => callback);\n","import { getCurrentInstance } from \"../h/instance\";\nimport { onDestroy } from \"./onDestroy\";\nexport const style = (css) => {\n let instance = getCurrentInstance();\n const sheet = new CSSStyleSheet();\n css && sheet.replaceSync(css);\n while (instance) {\n if (instance.host) {\n instance.host.addStyleSheet(sheet);\n onDestroy(() => {\n instance.host.removeStyleSheet(sheet);\n });\n break;\n }\n instance = instance?.parent;\n }\n if (!instance) {\n document.adoptedStyleSheets.push(sheet);\n onDestroy(() => {\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter((s) => s !== sheet);\n });\n }\n return sheet;\n};\n","import { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, instanceGetElements, instanceDestroy, securityGetCurrentInstance, } from \"../h/instance\";\nimport { untrack } from \"../api/untrack\";\nfunction insertAfter(parentNode, newNode, targetNode) {\n parentNode?.insertBefore(newNode, targetNode.nextSibling);\n}\nconst isSame = (a, b, trait) => {\n return Object.is(trait(a), trait(b));\n};\nconst defaultTrait = (a) => a;\nexport const For = (p) => {\n let initialized = false;\n const currentInstance = securityGetCurrentInstance();\n let oldList = [];\n let oldListItems = [];\n let initElements = [];\n effect(() => {\n const props = p.value;\n const trait = props.trait ?? defaultTrait;\n const newList = props.of;\n // @ts-expect-error\n if (import.meta.env.DEV) {\n const traitMap = new Map();\n const duplicates = [];\n for (const item of newList) {\n const traitValue = trait(item);\n if (!traitMap.has(traitValue)) {\n traitMap.set(traitValue, []);\n }\n traitMap.get(traitValue).push(item);\n // 检查是否有重复\n if (traitMap.get(traitValue).length === 2) {\n duplicates.push(...traitMap.get(traitValue));\n }\n }\n // 输出 trait 重复警告\n if (duplicates.length > 0) {\n console.warn(\"[j20 For] Duplicate trait values detected in list. \" +\n \"Each item should have a unique trait value for optimal performance. \" +\n \"Duplicates found:\", duplicates);\n }\n }\n const newListItems = new Array(newList.length);\n // 实现 diff 逻辑,参考 vue3\n let i = 0;\n const l2 = newList.length;\n let e1 = oldList.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[i], newList[i], trait)) {\n newListItems[i] = oldListItems[i];\n i++;\n }\n else {\n break;\n }\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[e1], newList[e2], trait)) {\n newListItems[e2] = oldListItems[e1];\n e1--;\n e2--;\n }\n else {\n break;\n }\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n for (; i <= e2; i++) {\n const newIndex = signal(i);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newList[i], newIndex));\n return newChild;\n }, currentInstance);\n if (!initialized) {\n initElements.push(newInstanceFragment);\n }\n else {\n if (i > 0) {\n const prev = newListItems[i - 1]?.instance;\n const prevEl = prev?.range[1] ?? currentInstance.range[0];\n insertAfter(prevEl.parentNode, newInstanceFragment, prevEl);\n }\n else {\n const parentNode = currentInstance.range[0].parentNode;\n parentNode?.insertBefore(newInstanceFragment, currentInstance.range[0]);\n }\n }\n newListItems[i] = {\n index: newIndex,\n item: newList[i],\n instance: newInstance,\n };\n }\n }\n }\n // 4. common sequence + unmount\n else if (i > e2) {\n while (i <= e1) {\n // remove elements\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n i++;\n }\n }\n // 5. unknown sequence\n else {\n // 创建一个 key -> index 的映射,用于快速查找旧列表中的项\n const s1 = i; // 旧列表开始索引\n const s2 = i; // 新列表开始索引\n // 为新的未处理项创建 key -> index 映射\n const keyToNewIndexMap = new Map();\n for (let i = s2; i <= e2; i++) {\n keyToNewIndexMap.set(trait(newList[i]), i);\n }\n // 需要处理的新项数量\n const toBePatched = e2 - s2 + 1;\n // 创建一个数组,存储新旧索引的映射关系\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (let i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n // 遍历旧列表中未处理的项,如果在新列表中存在则更新,否则删除\n let patched = 0;\n let moved = false;\n let maxNewIndexSoFar = 0;\n for (let i = s1; i <= e1; i++) {\n if (patched >= toBePatched) {\n // 所有新项都已处理,剩余的旧项可以直接删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n continue;\n }\n const oldItem = oldList[i];\n const oldKey = trait(oldItem);\n const newIndex = keyToNewIndexMap.get(oldKey);\n if (newIndex === undefined) {\n // 在新列表中不存在,删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n }\n else {\n // 在新列表中存在,更新映射关系\n // newIndex - s2 得到在 newIndexToOldIndexMap 中的位置\n // i + 1 避免与初始值 0 冲突\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n // 检查是否需要移动\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n // 复用实例\n newListItems[newIndex] = oldListItems[i];\n patched++;\n }\n }\n // 如果需要移动节点,使用最长递增子序列算法优化移动\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : [];\n // 从后向前遍历,确保插入顺序正确\n let j = increasingNewIndexSequence.length - 1;\n for (let i = toBePatched - 1; i >= 0; i--) {\n const newIndex = s2 + i;\n const newItem = newList[newIndex];\n // 确定锚点元素\n const anchor = newIndex + 1 < l2\n ? newListItems[newIndex + 1].instance.range[0]\n : currentInstance.range[1];\n if (newIndexToOldIndexMap[i] === 0) {\n // 创建新节点\n const newIdx = signal(newIndex);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newItem, newIdx));\n return newChild;\n }, currentInstance);\n // 插入到 DOM\n anchor.parentNode?.insertBefore(newInstanceFragment, anchor);\n newListItems[newIndex] = {\n index: newIdx,\n item: newItem,\n instance: newInstance,\n };\n }\n else if (moved) {\n // 需要移动\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n // 移动节点\n const nodeToMove = newListItems[newIndex];\n const elementsToMove = instanceGetElements(nodeToMove.instance);\n // 将所有元素移动到锚点之前\n elementsToMove.forEach((el) => {\n anchor.parentNode?.insertBefore(el, anchor);\n });\n }\n else {\n // 不需要移动,跳过\n j--;\n }\n }\n }\n }\n oldList = newList;\n oldListItems = newListItems;\n currentInstance.children = newListItems.map((item, index) => {\n item.index.value = index;\n return item.instance;\n });\n });\n initialized = true;\n return initElements.splice(0, initElements.length);\n};\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nexport const createComponent = (tag, props) => {\n const runner = () => tag(computed(() => (props ? props() : {})));\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const If = (p) => {\n const props = p;\n const arr = computed(() => (!props.value.of ? [0] : [1]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const children = propsValues.children;\n if (children && typeof children === \"function\") {\n return children(!!bool);\n }\n if (bool) {\n return children;\n }\n else {\n return propsValues.else;\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\n// 实现\nfunction Some(p) {\n const props = p;\n const resSig = computed(() => props.value.of);\n const arr = computed(() => (resSig.value != null ? [1] : [0]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const { children } = propsValues;\n if (bool) {\n return children(computed(() => resSig.value));\n }\n else {\n return propsValues.none;\n }\n };\n },\n }));\n}\nSome.isLogic = true;\nexport { Some };\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Replace = (p) => {\n const props = p;\n let count = 0;\n const list = computed(() => {\n props.value.of;\n return [(count = (count + 1) % 2)];\n });\n return createComponent(For, () => ({\n of: list.value,\n get children() {\n return (item) => {\n const children = props.value.children;\n return typeof children === \"function\" ? children(item) : children;\n };\n },\n }));\n};\nReplace.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nimport { generateId } from \"../h/utils\";\nexport const Switch = (p) => {\n const props = p;\n const children = props.value.children;\n const res = computed(() => children.filter((i) => i.valid)[0]);\n return createComponent(For, () => ({\n of: res.value ? [res.value] : [],\n trait: (item) => item.id,\n get children() {\n return (item) => item.children;\n },\n }));\n};\nSwitch.isLogic = true;\nexport const Case = (p) => {\n const props = p;\n const id = generateId();\n return {\n id,\n get valid() {\n return props.value.of;\n },\n get children() {\n return props.value.children;\n },\n };\n};\nCase.isLogic = true;\nexport const Default = (p) => {\n const props = p;\n const id = generateId();\n const data = {\n id,\n get valid() {\n return true;\n },\n get children() {\n return props.value.children;\n },\n };\n return data;\n};\nDefault.isLogic = true;\n","import { computed } from \"../api/computed\";\nexport const createLogicComponent = (tag, props) => {\n return tag(computed(() => (props ? props() : {})));\n};\n","import { createComponent } from \"./createComponent\";\nimport { createDom } from \"./createDom\";\nimport { createLogicComponent } from \"./createLogicComponent\";\nimport { createWebComponent } from \"./createWebComponent\";\nexport const createElement = (tag, props, children) => {\n return tag instanceof Node\n ? createDom(tag, props, children)\n : \"isLogic\" in tag\n ? createLogicComponent(tag, props)\n : \"customElement\" in tag\n ? createWebComponent(tag, props)\n : createComponent(tag, props);\n};\n","import { instanceCreate } from \"./instance\";\nexport const createRoot = (boot) => {\n let [instance, fragment] = instanceCreate(() => boot());\n return {\n element: fragment,\n instance,\n };\n};\n","import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"div\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":["effect","innerEffect"],"mappings":"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"}
@@ -12,11 +12,11 @@ const template = (template) => {
12
12
  if (!dom) {
13
13
  const templateEl = isSvg
14
14
  ? document.createElementNS("http://www.w3.org/2000/svg", "svg")
15
- : document.createElement("template");
15
+ : document.createElement("div");
16
16
  templateEl.innerHTML = template;
17
17
  dom = isSvg
18
18
  ? templateEl.firstChild
19
- : templateEl.content.firstChild;
19
+ : templateEl.firstChild;
20
20
  }
21
21
  return dom.cloneNode();
22
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.js","sources":["../_dist/jsx-runtime.js"],"sourcesContent":["import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"template\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.content.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":[],"mappings":";;AACY,MAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AAC5C,IAAI,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC9C;AACY,MAAC,GAAG,GAAG;AACP,MAAC,IAAI,GAAG;AACR,MAAC,QAAQ,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;AACnC,MAAC,QAAQ,GAAG,CAAC,QAAQ,KAAK;AACtC,IAAI,IAAI,GAAG;AACX,IAAI,OAAO,CAAC,KAAK,KAAK;AACtB,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,UAAU,GAAG;AAC/B,kBAAkB,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK;AAC9E,kBAAkB,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACpD,YAAY,UAAU,CAAC,SAAS,GAAG,QAAQ;AAC3C,YAAY,GAAG,GAAG;AAClB,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,UAAU,CAAC,OAAO,CAAC,UAAU;AAC/C,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,SAAS,EAAE;AAC9B,IAAI,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"jsx-runtime.js","sources":["../_dist/jsx-runtime.js"],"sourcesContent":["import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"div\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":[],"mappings":";;AACY,MAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AAC5C,IAAI,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC9C;AACY,MAAC,GAAG,GAAG;AACP,MAAC,IAAI,GAAG;AACR,MAAC,QAAQ,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;AACnC,MAAC,QAAQ,GAAG,CAAC,QAAQ,KAAK;AACtC,IAAI,IAAI,GAAG;AACX,IAAI,OAAO,CAAC,KAAK,KAAK;AACtB,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,UAAU,GAAG;AAC/B,kBAAkB,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK;AAC9E,kBAAkB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/C,YAAY,UAAU,CAAC,SAAS,GAAG,QAAQ;AAC3C,YAAY,GAAG,GAAG;AAClB,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,UAAU,CAAC,UAAU;AACvC,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,SAAS,EAAE;AAC9B,IAAI,CAAC;AACL;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "j20",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "homepage": "https://www.github.com/anuoua/j20",
5
5
  "type": "module",
6
6
  "author": "anuoua",