j20 0.0.7 → 0.0.8
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 +24 -10
- package/dist/index.js +71 -17
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as csstype from 'csstype';
|
|
2
|
+
import * as _j20org_signal from '@j20org/signal';
|
|
2
3
|
import { effect as effect$1 } from '@j20org/signal';
|
|
3
4
|
export { Computed, Effect, Signal, computed, signal, untrack } from '@j20org/signal';
|
|
4
5
|
|
|
@@ -4621,6 +4622,10 @@ declare const $useContext: <T>(c: {
|
|
|
4621
4622
|
*/
|
|
4622
4623
|
declare const id: () => string | undefined;
|
|
4623
4624
|
|
|
4625
|
+
declare const onMount: (callback: () => (() => void) | void) => void;
|
|
4626
|
+
|
|
4627
|
+
declare const onDestroy: (callback: () => void) => _j20org_signal.Effect;
|
|
4628
|
+
|
|
4624
4629
|
interface ListProps<T> {
|
|
4625
4630
|
of: T[];
|
|
4626
4631
|
children: (i: T, index: number) => JSX.Element;
|
|
@@ -4635,14 +4640,13 @@ type AttrValueType = string | number | boolean;
|
|
|
4635
4640
|
type CustomElement<P extends Record<string, any> = {}> = {
|
|
4636
4641
|
tag: string;
|
|
4637
4642
|
shadow?: "open" | "closed";
|
|
4638
|
-
style?: string;
|
|
4643
|
+
style?: string | CSSStyleSheet;
|
|
4639
4644
|
props?: {
|
|
4640
4645
|
[K in keyof P as P[K] extends AttrValueType ? K : never]?: {
|
|
4641
4646
|
type: P[K] extends string ? "string" : P[K] extends number ? "number" : P[K] extends boolean ? "boolean" : never;
|
|
4642
4647
|
attribute: string;
|
|
4643
4648
|
};
|
|
4644
4649
|
};
|
|
4645
|
-
extend?: (customElementConstructor: any) => CustomElement;
|
|
4646
4650
|
};
|
|
4647
4651
|
type WC<P extends Record<string, string | boolean | number> = {}, E extends Record<string, any> = {}> = {
|
|
4648
4652
|
customElement: CustomElement<P>;
|
|
@@ -4654,19 +4658,29 @@ type WC<P extends Record<string, string | boolean | number> = {}, E extends Reco
|
|
|
4654
4658
|
|
|
4655
4659
|
interface IfProps {
|
|
4656
4660
|
of: any;
|
|
4657
|
-
children: JSX.Element | ((t:
|
|
4658
|
-
else?: JSX.Element
|
|
4661
|
+
children: JSX.Element | ((t: boolean) => JSX.Element);
|
|
4662
|
+
else?: JSX.Element;
|
|
4659
4663
|
}
|
|
4660
4664
|
declare const If: FC<IfProps>;
|
|
4661
4665
|
|
|
4662
|
-
interface
|
|
4666
|
+
interface SomeProps<T> {
|
|
4667
|
+
of: T;
|
|
4668
|
+
children: (v: Exclude<T, undefined | null>) => JSX.Element;
|
|
4669
|
+
none?: JSX.Element;
|
|
4670
|
+
}
|
|
4671
|
+
declare function Some<T>(p: SomeProps<T>): JSX.Element;
|
|
4672
|
+
declare namespace Some {
|
|
4673
|
+
var isLogic: boolean;
|
|
4674
|
+
}
|
|
4675
|
+
|
|
4676
|
+
interface ReplaceProps<T> {
|
|
4663
4677
|
of: T;
|
|
4664
4678
|
children: JSX.Element | ((t: T) => JSX.Element);
|
|
4665
4679
|
}
|
|
4666
|
-
interface
|
|
4667
|
-
value:
|
|
4680
|
+
interface ReplacePropsInner<T> {
|
|
4681
|
+
value: ReplaceProps<T>;
|
|
4668
4682
|
}
|
|
4669
|
-
declare const
|
|
4683
|
+
declare const Replace: <T>(p: ReplaceProps<T>) => HTMLElement;
|
|
4670
4684
|
|
|
4671
4685
|
interface SwitchProps {
|
|
4672
4686
|
children: JSX.Element[];
|
|
@@ -4719,5 +4733,5 @@ declare const template: (template: string) => (isSvg: boolean) => any;
|
|
|
4719
4733
|
|
|
4720
4734
|
declare const registerWebComponent: <C extends WC<any, any>>(Comp: C) => void;
|
|
4721
4735
|
|
|
4722
|
-
export { $, $useContext, Case, Default,
|
|
4723
|
-
export type { AttrValueType, CaseProps, CustomElement, DOMElement, DefaultProps,
|
|
4736
|
+
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, onDestroy, onMount, ref, registerWebComponent, template, wc };
|
|
4737
|
+
export type { AttrValueType, CaseProps, CustomElement, DOMElement, DefaultProps, FC, IfProps, Instance, ListProps, RefObject, ReplaceProps, ReplacePropsInner, SomeProps, SwitchProps, WC };
|
package/dist/index.js
CHANGED
|
@@ -559,6 +559,11 @@ const registerWebComponent = (Comp) => {
|
|
|
559
559
|
const buildClass = (Comp) => {
|
|
560
560
|
const { customElement } = Comp;
|
|
561
561
|
const { a2p, a2v } = buildMap(customElement);
|
|
562
|
+
const styleSheet = customElement.style
|
|
563
|
+
? typeof customElement.style === "string"
|
|
564
|
+
? new CSSStyleSheet().replaceSync(customElement.style)
|
|
565
|
+
: customElement.style
|
|
566
|
+
: null;
|
|
562
567
|
return class NewElementClass extends HTMLElement {
|
|
563
568
|
static get observedAttributes() {
|
|
564
569
|
return Object.entries(customElement.props ?? {})
|
|
@@ -575,6 +580,8 @@ const buildClass = (Comp) => {
|
|
|
575
580
|
this.lazy = lazy;
|
|
576
581
|
if (customElement.tag && customElement.shadow) {
|
|
577
582
|
this.#shadow = this.attachShadow({ mode: customElement.shadow });
|
|
583
|
+
if (styleSheet)
|
|
584
|
+
this.#shadow.adoptedStyleSheets = [styleSheet];
|
|
578
585
|
}
|
|
579
586
|
this.#props = Object.entries(customElement.props ?? {}).reduce((acc, [key, value]) => {
|
|
580
587
|
acc[key] = signal(value.attribute
|
|
@@ -758,6 +765,35 @@ const id = () => {
|
|
|
758
765
|
return getCurrentInstance()?.id;
|
|
759
766
|
};
|
|
760
767
|
|
|
768
|
+
const onMount = (callback) => {
|
|
769
|
+
let clean;
|
|
770
|
+
let destroyed = false;
|
|
771
|
+
requestAnimationFrame(() => {
|
|
772
|
+
clean = callback();
|
|
773
|
+
if (destroyed && clean) {
|
|
774
|
+
if (typeof clean === "function") {
|
|
775
|
+
clean();
|
|
776
|
+
}
|
|
777
|
+
else {
|
|
778
|
+
console.warn("onMount callback must return a function or undefined");
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
});
|
|
782
|
+
effect(() => () => {
|
|
783
|
+
destroyed = true;
|
|
784
|
+
if (clean) {
|
|
785
|
+
if (typeof clean === "function") {
|
|
786
|
+
clean();
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
console.warn("onMount callback must return a function or undefined");
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
});
|
|
793
|
+
};
|
|
794
|
+
|
|
795
|
+
const onDestroy = (callback) => effect(() => callback);
|
|
796
|
+
|
|
761
797
|
function insertAfter(parentNode, newNode, targetNode) {
|
|
762
798
|
parentNode?.insertBefore(newNode, targetNode.nextSibling);
|
|
763
799
|
}
|
|
@@ -1046,23 +1082,16 @@ const If = (p) => {
|
|
|
1046
1082
|
},
|
|
1047
1083
|
get children() {
|
|
1048
1084
|
return (bool) => {
|
|
1085
|
+
const propsValues = props.value;
|
|
1086
|
+
const children = propsValues.children;
|
|
1087
|
+
if (children && typeof children === "function") {
|
|
1088
|
+
return children(!!bool);
|
|
1089
|
+
}
|
|
1049
1090
|
if (bool) {
|
|
1050
|
-
|
|
1051
|
-
if (typeof children === "function") {
|
|
1052
|
-
return children(true);
|
|
1053
|
-
}
|
|
1054
|
-
else {
|
|
1055
|
-
return children;
|
|
1056
|
-
}
|
|
1091
|
+
return children;
|
|
1057
1092
|
}
|
|
1058
1093
|
else {
|
|
1059
|
-
|
|
1060
|
-
if (typeof elseCondition === "function") {
|
|
1061
|
-
return elseCondition(false);
|
|
1062
|
-
}
|
|
1063
|
-
else {
|
|
1064
|
-
return elseCondition;
|
|
1065
|
-
}
|
|
1094
|
+
return propsValues.else;
|
|
1066
1095
|
}
|
|
1067
1096
|
};
|
|
1068
1097
|
},
|
|
@@ -1070,7 +1099,32 @@ const If = (p) => {
|
|
|
1070
1099
|
};
|
|
1071
1100
|
If.isLogic = true;
|
|
1072
1101
|
|
|
1073
|
-
|
|
1102
|
+
// 实现
|
|
1103
|
+
function Some(p) {
|
|
1104
|
+
const props = p;
|
|
1105
|
+
const resSig = computed(() => props.value.of);
|
|
1106
|
+
const arr = computed(() => (resSig.value != null ? [1] : [0]));
|
|
1107
|
+
return createComponent(For, () => ({
|
|
1108
|
+
get of() {
|
|
1109
|
+
return arr.value;
|
|
1110
|
+
},
|
|
1111
|
+
get children() {
|
|
1112
|
+
return (bool) => {
|
|
1113
|
+
const propsValues = props.value;
|
|
1114
|
+
const { children } = propsValues;
|
|
1115
|
+
if (bool) {
|
|
1116
|
+
return children(computed(() => resSig.value));
|
|
1117
|
+
}
|
|
1118
|
+
else {
|
|
1119
|
+
return propsValues.none;
|
|
1120
|
+
}
|
|
1121
|
+
};
|
|
1122
|
+
},
|
|
1123
|
+
}));
|
|
1124
|
+
}
|
|
1125
|
+
Some.isLogic = true;
|
|
1126
|
+
|
|
1127
|
+
const Replace = (p) => {
|
|
1074
1128
|
const props = p;
|
|
1075
1129
|
let count = 0;
|
|
1076
1130
|
const list = computed(() => {
|
|
@@ -1087,7 +1141,7 @@ const Dynamic = (p) => {
|
|
|
1087
1141
|
},
|
|
1088
1142
|
}));
|
|
1089
1143
|
};
|
|
1090
|
-
|
|
1144
|
+
Replace.isLogic = true;
|
|
1091
1145
|
|
|
1092
1146
|
const Switch = (p) => {
|
|
1093
1147
|
const props = p;
|
|
@@ -1219,5 +1273,5 @@ const template = (template) => {
|
|
|
1219
1273
|
};
|
|
1220
1274
|
};
|
|
1221
1275
|
|
|
1222
|
-
export { $, $useContext, Case, Computed, Default,
|
|
1276
|
+
export { $, $useContext, Case, Computed, Default, Effect, For, Fragment, If, Replace, Signal, Some, Switch, computed, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, onDestroy, onMount, ref, registerWebComponent, signal, template, untrack, wc };
|
|
1223
1277
|
//# 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/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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"}
|
|
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// 存储所有信号的依赖关系\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 const styleSheet = customElement.style\n ? typeof customElement.style === \"string\"\n ? new CSSStyleSheet().replaceSync(customElement.style)\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.shadow) {\n this.#shadow = this.attachShadow({ mode: customElement.shadow });\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 [, 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 \"./effect\";\nexport const onMount = (callback) => {\n let clean;\n let destroyed = false;\n requestAnimationFrame(() => {\n clean = callback();\n if (destroyed && clean) {\n if (typeof clean === \"function\") {\n clean();\n }\n else {\n console.warn(\"onMount callback must return a function or undefined\");\n }\n }\n });\n effect(() => () => {\n destroyed = true;\n if (clean) {\n if (typeof clean === \"function\") {\n clean();\n }\n else {\n console.warn(\"onMount callback must return a function or undefined\");\n }\n }\n });\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, 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 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.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.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"homepage": "https://www.github.com/anuoua/j20",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "anuoua",
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"types": "./dist/jsx-runtime.d.ts"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git@github.com:anuoua/j20.git"
|
|
21
|
+
},
|
|
18
22
|
"files": [
|
|
19
23
|
"dist"
|
|
20
24
|
],
|