j20 0.0.6 → 0.0.7

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
@@ -4615,6 +4615,12 @@ declare const $useContext: <T>(c: {
4615
4615
  defaultValue: T;
4616
4616
  }) => T;
4617
4617
 
4618
+ /**
4619
+ * 获取当前实例的 id
4620
+ * @returns 当前实例的 id,如果没有实例则返回 undefined
4621
+ */
4622
+ declare const id: () => string | undefined;
4623
+
4618
4624
  interface ListProps<T> {
4619
4625
  of: T[];
4620
4626
  children: (i: T, index: number) => JSX.Element;
@@ -4713,5 +4719,5 @@ declare const template: (template: string) => (isSvg: boolean) => any;
4713
4719
 
4714
4720
  declare const registerWebComponent: <C extends WC<any, any>>(Comp: C) => void;
4715
4721
 
4716
- export { $, $useContext, Case, Default, Dynamic, For, Fragment, If, Switch, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, ref, registerWebComponent, template, wc };
4722
+ export { $, $useContext, Case, Default, Dynamic, For, Fragment, If, Switch, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, ref, registerWebComponent, template, wc };
4717
4723
  export type { AttrValueType, CaseProps, CustomElement, DOMElement, DefaultProps, DynamicProps, DynamicPropsInner, FC, IfProps, Instance, ListProps, RefObject, SwitchProps, WC };
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ const depMap = new WeakMap();
6
6
  * Signal类 - 用于存储响应式数据
7
7
  */
8
8
  class Signal {
9
+ SIGNAL = true;
9
10
  _value;
10
11
  _version = 0;
11
12
  _deps = new Set();
@@ -60,6 +61,7 @@ class Signal {
60
61
  * Computed类 - 用于计算派生值
61
62
  */
62
63
  class Computed {
64
+ SIGNAL = true;
63
65
  computeFn;
64
66
  _value;
65
67
  _version = 0;
@@ -74,7 +76,7 @@ class Computed {
74
76
  }
75
77
  get value() {
76
78
  if (this.disposed) {
77
- throw new Error('Cannot access value of disposed computed');
79
+ throw new Error("Cannot access value of disposed computed");
78
80
  }
79
81
  if (this.dirty) {
80
82
  this.compute();
@@ -93,11 +95,11 @@ class Computed {
93
95
  }
94
96
  compute() {
95
97
  if (this.disposed) {
96
- throw new Error('Cannot compute disposed computed');
98
+ throw new Error("Cannot compute disposed computed");
97
99
  }
98
100
  // 检查循环依赖
99
101
  if (computationStack.includes(this)) {
100
- throw new Error('Circular dependency detected in computed values');
102
+ throw new Error("Circular dependency detected in computed values");
101
103
  }
102
104
  this.dirty = false;
103
105
  // 保存当前状态
@@ -201,7 +203,7 @@ class Effect {
201
203
  this.cleanupFn();
202
204
  }
203
205
  catch (e) {
204
- console.warn('Error in effect cleanup function:', e);
206
+ console.warn("Error in effect cleanup function:", e);
205
207
  }
206
208
  this.cleanupFn = null;
207
209
  }
@@ -237,7 +239,7 @@ class Effect {
237
239
  this.cleanupFn();
238
240
  }
239
241
  catch (e) {
240
- console.warn('Error in effect cleanup function:', e);
242
+ console.warn("Error in effect cleanup function:", e);
241
243
  }
242
244
  this.cleanupFn = null;
243
245
  }
@@ -251,7 +253,7 @@ class Effect {
251
253
  if (!this._deps.has(source)) {
252
254
  this._deps.add(source);
253
255
  // 记录依赖的版本号
254
- if ('version' in source) {
256
+ if ("version" in source) {
255
257
  this._depVersions.set(source, source.version);
256
258
  }
257
259
  let reactions = depMap.get(source);
@@ -264,7 +266,7 @@ class Effect {
264
266
  }
265
267
  hasDepsChanged() {
266
268
  for (const [dep, version] of this._depVersions) {
267
- if ('version' in dep && dep.version !== version) {
269
+ if ("version" in dep && dep.version !== version) {
268
270
  return true;
269
271
  }
270
272
  }
@@ -479,23 +481,45 @@ const instanceGetElements = (instance) => {
479
481
  return els;
480
482
  };
481
483
  const instanceDestroy = (parent, instance) => {
482
- const stack = [instance];
483
- while (stack.length) {
484
- const inst = stack.pop();
485
- // 安全地执行清理函数
486
- inst.disposes.forEach((dispose) => {
487
- try {
488
- dispose();
484
+ // 使用栈来实现迭代式的深度优先销毁,避免递归开销
485
+ // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)
486
+ const stack = [
487
+ { inst: instance, childrenDestroyed: false },
488
+ ];
489
+ while (stack.length > 0) {
490
+ const current = stack[stack.length - 1];
491
+ if (!current.childrenDestroyed) {
492
+ // 第一次访问:先标记子节点已销毁,然后将子节点入栈
493
+ current.childrenDestroyed = true;
494
+ if (current.inst.children && current.inst.children.length > 0) {
495
+ // 倒序添加子节点,保持与递归相同的销毁顺序
496
+ for (let i = current.inst.children.length - 1; i >= 0; i--) {
497
+ stack.push({
498
+ inst: current.inst.children[i],
499
+ childrenDestroyed: false,
500
+ });
501
+ }
489
502
  }
490
- catch (e) {
491
- console.error("Error during instance dispose:", e);
503
+ }
504
+ else {
505
+ // 第二次访问:子节点已全部销毁,现在销毁当前节点
506
+ const inst = current.inst;
507
+ // 执行清理函数
508
+ inst.disposes.forEach((dispose) => {
509
+ try {
510
+ dispose();
511
+ }
512
+ catch (e) {
513
+ console.error("Error during instance dispose:", e);
514
+ }
515
+ });
516
+ // 清空 dispose 数组
517
+ inst.disposes = [];
518
+ // 清空子节点引用
519
+ if (inst.children) {
520
+ inst.children = [];
492
521
  }
493
- });
494
- // 清空 dispose 数组
495
- inst.disposes = [];
496
- if (inst.children) {
497
- stack.push(...inst.children);
498
- inst.children = []; // 清空子实例引用
522
+ stack.pop();
499
523
  }
500
524
  }
501
525
  // 从父实例中移除此实例的引用
@@ -671,7 +695,7 @@ const wc = () => {
671
695
 
672
696
  const $ = (val) => val;
673
697
 
674
- const isSignal = (a) => a?.brand === Symbol.for(BRAND);
698
+ const isSignal = (a) => a?.SIGNAL === true;
675
699
 
676
700
  const contextWeakMap = new WeakMap();
677
701
  const context = (Context) => {
@@ -726,6 +750,14 @@ const createContext = (defaultValue) => {
726
750
  };
727
751
  const $useContext = (c) => context(c.value);
728
752
 
753
+ /**
754
+ * 获取当前实例的 id
755
+ * @returns 当前实例的 id,如果没有实例则返回 undefined
756
+ */
757
+ const id = () => {
758
+ return getCurrentInstance()?.id;
759
+ };
760
+
729
761
  function insertAfter(parentNode, newNode, targetNode) {
730
762
  parentNode?.insertBefore(newNode, targetNode.nextSibling);
731
763
  }
@@ -808,8 +840,7 @@ const For = (p) => {
808
840
  for (; i <= e2; i++) {
809
841
  const newIndex = signal(i);
810
842
  const [newInstance, newInstanceFragment] = instanceCreate(() => {
811
- const children = untrack(() => props.children);
812
- const newChild = children(newList[i], newIndex);
843
+ const newChild = untrack(() => props.children(newList[i], newIndex));
813
844
  return newChild;
814
845
  }, currentInstance);
815
846
  if (!initialized) {
@@ -918,8 +949,7 @@ const For = (p) => {
918
949
  // 创建新节点
919
950
  const newIdx = signal(newIndex);
920
951
  const [newInstance, newInstanceFragment] = instanceCreate(() => {
921
- const children = untrack(() => props.children);
922
- const newChild = children(newItem, newIdx);
952
+ const newChild = untrack(() => props.children(newItem, newIdx));
923
953
  return newChild;
924
954
  }, currentInstance);
925
955
  // 插入到 DOM
@@ -1189,5 +1219,5 @@ const template = (template) => {
1189
1219
  };
1190
1220
  };
1191
1221
 
1192
- export { $, $useContext, Case, Computed, Default, Dynamic, Effect, For, Fragment, If, Signal, Switch, computed, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, ref, registerWebComponent, signal, template, untrack, wc };
1222
+ export { $, $useContext, Case, Computed, Default, Dynamic, Effect, For, Fragment, If, Signal, Switch, computed, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, ref, registerWebComponent, signal, template, untrack, wc };
1193
1223
  //# 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/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Dynamic.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// 存储所有信号的依赖关系\nconst depMap = new WeakMap();\n/**\n * Signal类 - 用于存储响应式数据\n */\nclass Signal {\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 reaction.execute();\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 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 reaction.execute();\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\nexport { Computed, Effect, Signal, 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 instance?.disposes.push(() => {\n newValue.current = null;\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 为 none 时,忽略 children\n (node.lazyInit ? (!node.shadowRoot ? false : true) : 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);\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 disposes: [],\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 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 stack.pop();\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 const stack = [instance];\n while (stack.length) {\n const inst = stack.pop();\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 inst.disposes = [];\n if (inst.children) {\n stack.push(...inst.children);\n inst.children = []; // 清空子实例引用\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 { getCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = getCurrentInstance();\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}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\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.shadow) {\n this.#shadow = this.attachShadow({ mode: customElement.shadow });\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 [, 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 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 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","import { BRAND } from \"../brand\";\nexport const isSignal = (a) => a?.brand === Symbol.for(BRAND);\n","import { getCurrentInstance, instanceCreateElement, instanceInit, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = getCurrentInstance();\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(getCurrentInstance());\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 { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, getCurrentInstance, instanceGetElements, instanceDestroy, } 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 = getCurrentInstance();\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 children = untrack(() => props.children);\n const newChild = 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 children = untrack(() => props.children);\n const newChild = 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 if (bool) {\n const children = props.value.children;\n if (typeof children === \"function\") {\n return children(true);\n }\n else {\n return children;\n }\n }\n else {\n const elseCondition = props.value.else;\n if (typeof elseCondition === \"function\") {\n return elseCondition(false);\n }\n else {\n return elseCondition;\n }\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Dynamic = (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};\nDynamic.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.shadow) {\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/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/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Dynamic.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// 存储所有信号的依赖关系\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 reaction.execute();\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 reaction.execute();\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\nexport { Computed, Effect, Signal, 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 instance?.disposes.push(() => {\n newValue.current = null;\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 为 none 时,忽略 children\n (node.lazyInit ? (!node.shadowRoot ? false : true) : 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);\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 disposes: [],\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 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 stack.pop();\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 inst.disposes = [];\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 { getCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = getCurrentInstance();\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}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\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.shadow) {\n this.#shadow = this.attachShadow({ mode: customElement.shadow });\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 [, 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 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 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 { getCurrentInstance, instanceCreateElement, instanceInit, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = getCurrentInstance();\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(getCurrentInstance());\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 { getCurrentInstance } from \"../h/instance\";\n/**\n * 获取当前实例的 id\n * @returns 当前实例的 id,如果没有实例则返回 undefined\n */\nexport const id = () => {\n return getCurrentInstance()?.id;\n};\n","import { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, getCurrentInstance, instanceGetElements, instanceDestroy, } 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 = getCurrentInstance();\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 if (bool) {\n const children = props.value.children;\n if (typeof children === \"function\") {\n return children(true);\n }\n else {\n return children;\n }\n }\n else {\n const elseCondition = props.value.else;\n if (typeof elseCondition === \"function\") {\n return elseCondition(false);\n }\n else {\n return elseCondition;\n }\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Dynamic = (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};\nDynamic.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.shadow) {\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "j20",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "homepage": "https://www.github.com/anuoua/j20",
5
5
  "type": "module",
6
6
  "author": "anuoua",