@fukict/basic 0.1.9 → 0.1.11
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/README.md +1 -1
- package/dist/component-class/fukict.d.ts +17 -18
- package/dist/component-class/fukict.d.ts.map +1 -1
- package/dist/component-class/fukict.js +56 -65
- package/dist/component-class/fukict.js.map +1 -1
- package/dist/dev.d.ts +26 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +46 -0
- package/dist/dev.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +1 -1
- package/dist/metadata.js +1 -1
- package/dist/metadata.js.map +1 -1
- package/dist/renderer/class-helpers.d.ts +1 -2
- package/dist/renderer/class-helpers.d.ts.map +1 -1
- package/dist/renderer/class-helpers.js +6 -7
- package/dist/renderer/class-helpers.js.map +1 -1
- package/dist/renderer/create.d.ts +1 -1
- package/dist/renderer/create.d.ts.map +1 -1
- package/dist/renderer/create.js +3 -3
- package/dist/renderer/create.js.map +1 -1
- package/dist/renderer/diff/class.d.ts.map +1 -1
- package/dist/renderer/diff/class.js +3 -9
- package/dist/renderer/diff/class.js.map +1 -1
- package/dist/renderer/diff/dom-ops.d.ts +16 -0
- package/dist/renderer/diff/dom-ops.d.ts.map +1 -0
- package/dist/renderer/diff/{helpers.js → dom-ops.js} +42 -81
- package/dist/renderer/diff/dom-ops.js.map +1 -0
- package/dist/renderer/diff/index.d.ts +5 -13
- package/dist/renderer/diff/index.d.ts.map +1 -1
- package/dist/renderer/diff/index.js +10 -103
- package/dist/renderer/diff/index.js.map +1 -1
- package/dist/renderer/diff/primitive.d.ts.map +1 -1
- package/dist/renderer/diff/primitive.js +3 -8
- package/dist/renderer/diff/primitive.js.map +1 -1
- package/dist/renderer/diff/props.js +5 -5
- package/dist/renderer/diff/props.js.map +1 -1
- package/dist/renderer/diff/reconciler.d.ts +17 -0
- package/dist/renderer/diff/reconciler.d.ts.map +1 -0
- package/dist/renderer/diff/reconciler.js +232 -0
- package/dist/renderer/diff/reconciler.js.map +1 -0
- package/dist/renderer/diff/utils.d.ts +10 -0
- package/dist/renderer/diff/utils.d.ts.map +1 -0
- package/dist/renderer/diff/utils.js +25 -0
- package/dist/renderer/diff/utils.js.map +1 -0
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +17 -0
- package/dist/renderer/index.js.map +1 -1
- package/dist/renderer/mount.js +9 -9
- package/dist/renderer/mount.js.map +1 -1
- package/dist/renderer/vnode-helpers.js +5 -5
- package/dist/renderer/vnode-helpers.js.map +1 -1
- package/dist/types/class.d.ts +2 -2
- package/dist/types/class.d.ts.map +1 -1
- package/dist/types/core.d.ts +15 -16
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/dev.d.ts +21 -0
- package/dist/types/dev.d.ts.map +1 -0
- package/dist/types/dev.js +8 -0
- package/dist/types/dev.js.map +1 -0
- package/dist/types/dom-attributes.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/jsx.d.ts.map +1 -1
- package/dist/utils/context.d.ts +2 -3
- package/dist/utils/context.d.ts.map +1 -1
- package/dist/utils/context.js +6 -22
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/dom-helpers.d.ts +3 -3
- package/dist/utils/dom-helpers.js +7 -7
- package/dist/utils/dom-helpers.js.map +1 -1
- package/dist/vnode.d.ts +5 -0
- package/dist/vnode.d.ts.map +1 -1
- package/dist/vnode.js +9 -7
- package/dist/vnode.js.map +1 -1
- package/package.json +18 -18
- package/dist/renderer/diff/children.d.ts +0 -12
- package/dist/renderer/diff/children.d.ts.map +0 -1
- package/dist/renderer/diff/children.js +0 -55
- package/dist/renderer/diff/children.js.map +0 -1
- package/dist/renderer/diff/element.d.ts +0 -14
- package/dist/renderer/diff/element.d.ts.map +0 -1
- package/dist/renderer/diff/element.js +0 -38
- package/dist/renderer/diff/element.js.map +0 -1
- package/dist/renderer/diff/fragment.d.ts +0 -13
- package/dist/renderer/diff/fragment.d.ts.map +0 -1
- package/dist/renderer/diff/fragment.js +0 -35
- package/dist/renderer/diff/fragment.js.map +0 -1
- package/dist/renderer/diff/function.d.ts +0 -9
- package/dist/renderer/diff/function.d.ts.map +0 -1
- package/dist/renderer/diff/function.js +0 -59
- package/dist/renderer/diff/function.js.map +0 -1
- package/dist/renderer/diff/helpers.d.ts +0 -19
- package/dist/renderer/diff/helpers.d.ts.map +0 -1
- package/dist/renderer/diff/helpers.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/renderer/create.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAUvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/renderer/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/class.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAuB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAavE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,EAClB,cAAc,CAAC,EAAE,eAAe,GAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/class.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAuB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAavE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,EAClB,cAAc,CAAC,EAAE,eAAe,GAC/B,IAAI,CAsCN"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { VNodeType } from '../../types/index.js';
|
|
2
1
|
import { setupClassComponentVNode } from '../class-helpers.js';
|
|
3
|
-
import { replaceNode } from './
|
|
2
|
+
import { replaceNode } from './dom-ops.js';
|
|
4
3
|
/**
|
|
5
4
|
* Diff Class Component VNode
|
|
6
5
|
* - Update slots and refs
|
|
@@ -8,11 +7,6 @@ import { replaceNode } from './helpers.js';
|
|
|
8
7
|
* - Handle detached mode (fukict:detach)
|
|
9
8
|
*/
|
|
10
9
|
export function diffClassComponent(oldVNode, newVNode, container, parentInstance) {
|
|
11
|
-
if (oldVNode.__type__ !== VNodeType.ClassComponent ||
|
|
12
|
-
newVNode.__type__ !== VNodeType.ClassComponent) {
|
|
13
|
-
throw new Error('Expected ClassComponentVNode');
|
|
14
|
-
}
|
|
15
|
-
// Type assertion after runtime check
|
|
16
10
|
const oldClassVNode = oldVNode;
|
|
17
11
|
const newClassVNode = newVNode;
|
|
18
12
|
// Class changed - replace entire component
|
|
@@ -26,10 +20,10 @@ export function diffClassComponent(oldVNode, newVNode, container, parentInstance
|
|
|
26
20
|
console.warn('[diffClassComponent] Instance is undefined, skipping diff');
|
|
27
21
|
return;
|
|
28
22
|
}
|
|
29
|
-
// Setup ClassComponentVNode: instance, slots, refs,
|
|
23
|
+
// Setup ClassComponentVNode: instance, slots, refs, parent reference
|
|
30
24
|
setupClassComponentVNode(newClassVNode, instance, parentInstance);
|
|
31
25
|
// Copy placeholder from old vnode
|
|
32
|
-
newClassVNode.
|
|
26
|
+
newClassVNode.__node__ = oldClassVNode.__node__;
|
|
33
27
|
// Check detached mode
|
|
34
28
|
if (newClassVNode.props && newClassVNode.props['fukict:detach']) {
|
|
35
29
|
// Detached mode: only update props, skip update()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../src/renderer/diff/class.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../src/renderer/diff/class.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAU3C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAe,EACf,QAAe,EACf,SAAkB,EAClB,cAAgC;IAEhC,MAAM,aAAa,GAAG,QAA+B,CAAC;IACtD,MAAM,aAAa,GAAG,QAA+B,CAAC;IAEtD,2CAA2C;IAC3C,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;QAC9C,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,YAElB,CAAC;IAEd,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,wBAAwB,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAElE,kCAAkC;IAClC,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;IAEhD,sBAAsB;IACtB,IAAI,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAChE,kDAAkD;QAClD,gEAAgE;QAC/D,QAAQ,CAAC,KAA6B,GAAG,aAAa,CAAC,KAAK,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1C,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fukict/basic - Diff: DOM Operations
|
|
3
|
+
*
|
|
4
|
+
* DOM manipulation helpers for diff operations
|
|
5
|
+
* Dependencies: create.ts, mount.ts (no diff dependencies)
|
|
6
|
+
*/
|
|
7
|
+
import type { VNodeChild } from '../../types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Replace old node with new node
|
|
10
|
+
*/
|
|
11
|
+
export declare function replaceNode(oldVNode: VNodeChild, newVNode: VNodeChild, container: Element): void;
|
|
12
|
+
/**
|
|
13
|
+
* Remove node from DOM
|
|
14
|
+
*/
|
|
15
|
+
export declare function removeNode(vnode: VNodeChild, _container: Element): void;
|
|
16
|
+
//# sourceMappingURL=dom-ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-ops.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/dom-ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAQV,UAAU,EACX,MAAM,sBAAsB,CAAC;AA6G9B;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,OAAO,GACjB,IAAI,CA8BN;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CA6CvE"}
|
|
@@ -7,12 +7,6 @@ import { activate } from '../mount.js';
|
|
|
7
7
|
function getFirstDomNode(vnode) {
|
|
8
8
|
if (!vnode)
|
|
9
9
|
return null;
|
|
10
|
-
// Primitive - not reliable
|
|
11
|
-
if (typeof vnode === 'string' ||
|
|
12
|
-
typeof vnode === 'number' ||
|
|
13
|
-
typeof vnode === 'boolean') {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
10
|
// VNode object
|
|
17
11
|
if (typeof vnode === 'object' && '__type__' in vnode) {
|
|
18
12
|
const vnodeObj = vnode;
|
|
@@ -21,68 +15,34 @@ function getFirstDomNode(vnode) {
|
|
|
21
15
|
const classVNode = vnodeObj;
|
|
22
16
|
const instance = classVNode.__instance__;
|
|
23
17
|
// Get from instance's rendered DOM
|
|
24
|
-
const instanceVNode = instance?.
|
|
25
|
-
if (instanceVNode && '
|
|
26
|
-
const dom = instanceVNode.
|
|
18
|
+
const instanceVNode = instance?._render;
|
|
19
|
+
if (instanceVNode && '__node__' in instanceVNode) {
|
|
20
|
+
const dom = instanceVNode.__node__;
|
|
27
21
|
if (dom) {
|
|
28
22
|
return Array.isArray(dom) ? dom[0] : dom;
|
|
29
23
|
}
|
|
30
24
|
}
|
|
31
25
|
// Fallback: if not mounted yet, check placeholder
|
|
32
|
-
const placeholder = classVNode.
|
|
26
|
+
const placeholder = classVNode.__node__;
|
|
33
27
|
if (placeholder?.parentNode) {
|
|
34
28
|
return placeholder;
|
|
35
29
|
}
|
|
36
30
|
return null;
|
|
37
31
|
}
|
|
38
|
-
// Other types - get from
|
|
39
|
-
const dom = vnodeObj.
|
|
32
|
+
// Other types - get from __node__
|
|
33
|
+
const dom = vnodeObj.__node__;
|
|
40
34
|
if (dom) {
|
|
41
35
|
return Array.isArray(dom) ? dom[0] : dom;
|
|
42
36
|
}
|
|
43
37
|
}
|
|
44
38
|
return null;
|
|
45
39
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Replace old node with new node
|
|
48
|
-
*/
|
|
49
|
-
export function replaceNode(oldVNode, newVNode, container) {
|
|
50
|
-
if (!oldVNode) {
|
|
51
|
-
throw new Error('Old VNode is required for replaceNode');
|
|
52
|
-
}
|
|
53
|
-
// Get the first DOM node of oldVNode to find insertion position
|
|
54
|
-
const oldFirstNode = getFirstDomNode(oldVNode);
|
|
55
|
-
const nextSibling = oldFirstNode?.nextSibling ?? null;
|
|
56
|
-
// Remove old node
|
|
57
|
-
removeNode(oldVNode, container);
|
|
58
|
-
// Create new node
|
|
59
|
-
const node = createRealNode(newVNode);
|
|
60
|
-
if (!node) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
// Insert placeholder at the same position
|
|
64
|
-
const placeholder = document.createComment('fukict-replace');
|
|
65
|
-
if (nextSibling && nextSibling.parentNode === container) {
|
|
66
|
-
container.insertBefore(placeholder, nextSibling);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
container.appendChild(placeholder);
|
|
70
|
-
}
|
|
71
|
-
// Use activate in placeholder mode - it will replace placeholder with DOM
|
|
72
|
-
activate({ vnode: newVNode, placeholder });
|
|
73
|
-
}
|
|
74
40
|
/**
|
|
75
41
|
* Unmount VNode recursively (call beforeUnmount on all class components)
|
|
76
42
|
*/
|
|
77
43
|
function unmountVNode(vnode) {
|
|
78
44
|
if (!vnode)
|
|
79
45
|
return;
|
|
80
|
-
// Primitive - nothing to unmount
|
|
81
|
-
if (typeof vnode === 'string' ||
|
|
82
|
-
typeof vnode === 'number' ||
|
|
83
|
-
typeof vnode === 'boolean') {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
46
|
// Array - unmount each item
|
|
87
47
|
if (Array.isArray(vnode)) {
|
|
88
48
|
vnode.forEach(child => unmountVNode(child));
|
|
@@ -91,7 +51,7 @@ function unmountVNode(vnode) {
|
|
|
91
51
|
// VNode object
|
|
92
52
|
if (typeof vnode === 'object' && '__type__' in vnode) {
|
|
93
53
|
const vnodeObj = vnode;
|
|
94
|
-
// Class Component - call unmount (which will handle its own
|
|
54
|
+
// Class Component - call unmount (which will handle its own _render)
|
|
95
55
|
if (vnodeObj.__type__ === VNodeType.ClassComponent) {
|
|
96
56
|
const classVNode = vnodeObj;
|
|
97
57
|
const instance = classVNode.__instance__;
|
|
@@ -103,7 +63,7 @@ function unmountVNode(vnode) {
|
|
|
103
63
|
// Function Component - unmount its rendered vnode
|
|
104
64
|
if (vnodeObj.__type__ === VNodeType.FunctionComponent) {
|
|
105
65
|
const funcVNode = vnodeObj;
|
|
106
|
-
const renderedVNode = funcVNode.
|
|
66
|
+
const renderedVNode = funcVNode.__render__;
|
|
107
67
|
if (renderedVNode) {
|
|
108
68
|
unmountVNode(renderedVNode);
|
|
109
69
|
}
|
|
@@ -131,31 +91,50 @@ function unmountVNode(vnode) {
|
|
|
131
91
|
}
|
|
132
92
|
}
|
|
133
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Replace old node with new node
|
|
96
|
+
*/
|
|
97
|
+
export function replaceNode(oldVNode, newVNode, container) {
|
|
98
|
+
if (!oldVNode) {
|
|
99
|
+
throw new Error('Old VNode is required for replaceNode');
|
|
100
|
+
}
|
|
101
|
+
// Get the first DOM node of oldVNode to find insertion position
|
|
102
|
+
const oldFirstNode = getFirstDomNode(oldVNode);
|
|
103
|
+
const nextSibling = oldFirstNode?.nextSibling ?? null;
|
|
104
|
+
// Remove old node
|
|
105
|
+
removeNode(oldVNode, container);
|
|
106
|
+
// Create new node
|
|
107
|
+
const node = createRealNode(newVNode);
|
|
108
|
+
if (!node) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
// Insert placeholder at the same position
|
|
112
|
+
const placeholder = document.createComment('fukict-replace');
|
|
113
|
+
if (nextSibling && nextSibling.parentNode === container) {
|
|
114
|
+
container.insertBefore(placeholder, nextSibling);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
container.appendChild(placeholder);
|
|
118
|
+
}
|
|
119
|
+
// Use activate in placeholder mode - it will replace placeholder with DOM
|
|
120
|
+
activate({ vnode: newVNode, placeholder });
|
|
121
|
+
}
|
|
134
122
|
/**
|
|
135
123
|
* Remove node from DOM
|
|
136
124
|
*/
|
|
137
|
-
export function removeNode(vnode,
|
|
125
|
+
export function removeNode(vnode, _container) {
|
|
138
126
|
if (!vnode)
|
|
139
127
|
return;
|
|
140
128
|
// First, unmount all components recursively (trigger beforeUnmount hooks)
|
|
141
129
|
unmountVNode(vnode);
|
|
142
130
|
// Then remove DOM nodes
|
|
143
|
-
// Primitive - find and remove text node (simplified)
|
|
144
|
-
if (typeof vnode === 'string' ||
|
|
145
|
-
typeof vnode === 'number' ||
|
|
146
|
-
typeof vnode === 'boolean') {
|
|
147
|
-
const text = String(vnode);
|
|
148
|
-
const textNodes = Array.from(container.childNodes).filter(node => node.nodeType === Node.TEXT_NODE && node.textContent === text);
|
|
149
|
-
textNodes.forEach(node => container.removeChild(node));
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
131
|
// VNode object
|
|
153
132
|
if (typeof vnode === 'object' && '__type__' in vnode) {
|
|
154
133
|
const vnodeObj = vnode;
|
|
155
134
|
// Class Component - remove placeholder if exists
|
|
156
135
|
if (vnodeObj.__type__ === VNodeType.ClassComponent) {
|
|
157
136
|
const classVNode = vnodeObj;
|
|
158
|
-
const placeholder = classVNode.
|
|
137
|
+
const placeholder = classVNode.__node__;
|
|
159
138
|
if (placeholder?.parentNode) {
|
|
160
139
|
placeholder.parentNode.removeChild(placeholder);
|
|
161
140
|
}
|
|
@@ -164,14 +143,14 @@ export function removeNode(vnode, container) {
|
|
|
164
143
|
// Primitive VNode - remove text or comment node
|
|
165
144
|
if (vnodeObj.__type__ === VNodeType.Primitive) {
|
|
166
145
|
const primitiveVNode = vnodeObj;
|
|
167
|
-
const dom = primitiveVNode.
|
|
146
|
+
const dom = primitiveVNode.__node__;
|
|
168
147
|
if (dom?.parentNode) {
|
|
169
148
|
dom.parentNode.removeChild(dom);
|
|
170
149
|
}
|
|
171
150
|
return;
|
|
172
151
|
}
|
|
173
|
-
// Other types - remove
|
|
174
|
-
const dom = vnodeObj.
|
|
152
|
+
// Other types - remove __node__
|
|
153
|
+
const dom = vnodeObj.__node__;
|
|
175
154
|
if (dom) {
|
|
176
155
|
if (Array.isArray(dom)) {
|
|
177
156
|
dom.forEach((node) => {
|
|
@@ -186,22 +165,4 @@ export function removeNode(vnode, container) {
|
|
|
186
165
|
}
|
|
187
166
|
}
|
|
188
167
|
}
|
|
189
|
-
|
|
190
|
-
* Shallow compare two objects
|
|
191
|
-
*/
|
|
192
|
-
export function shallowEqual(a, b) {
|
|
193
|
-
if (a === b)
|
|
194
|
-
return true;
|
|
195
|
-
if (!a || !b)
|
|
196
|
-
return false;
|
|
197
|
-
const keysA = Object.keys(a);
|
|
198
|
-
const keysB = Object.keys(b);
|
|
199
|
-
if (keysA.length !== keysB.length)
|
|
200
|
-
return false;
|
|
201
|
-
for (const key of keysA) {
|
|
202
|
-
if (a[key] !== b[key])
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
//# sourceMappingURL=helpers.js.map
|
|
168
|
+
//# sourceMappingURL=dom-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-ops.js","sourceRoot":"","sources":["../../../src/renderer/diff/dom-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fukict/basic - Diff
|
|
2
|
+
* @fukict/basic - Diff Module
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Public exports for diff operations
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
export {
|
|
6
|
+
export { diff, diffChildren } from './reconciler.js';
|
|
7
|
+
export { removeNode, replaceNode } from './dom-ops.js';
|
|
8
|
+
export { shallowEqual } from './utils.js';
|
|
8
9
|
export { patchProps } from './props.js';
|
|
9
|
-
export { diffChildren } from './children.js';
|
|
10
|
-
/**
|
|
11
|
-
* Diff and patch VNode tree
|
|
12
|
-
*
|
|
13
|
-
* @param oldVNode - Old VNode (can be array from slots)
|
|
14
|
-
* @param newVNode - New VNode (can be array from slots)
|
|
15
|
-
* @param container - Container element
|
|
16
|
-
*/
|
|
17
|
-
export declare function diff(oldVNode: VNodeChild, newVNode: VNodeChild, container: Element): void;
|
|
18
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,107 +1,14 @@
|
|
|
1
|
-
import { VNodeType } from '../../types/index.js';
|
|
2
|
-
import { createRealNode } from '../create.js';
|
|
3
|
-
import { activate } from '../mount.js';
|
|
4
|
-
import { diffChildren } from './children.js';
|
|
5
|
-
import { diffClassComponent } from './class.js';
|
|
6
|
-
import { diffElement } from './element.js';
|
|
7
|
-
import { diffFragment } from './fragment.js';
|
|
8
|
-
import { diffFunctionComponent } from './function.js';
|
|
9
|
-
import { removeNode, replaceNode } from './helpers.js';
|
|
10
|
-
import { diffPrimitive } from './primitive.js';
|
|
11
|
-
// Re-export for external use
|
|
12
|
-
export { replaceNode, removeNode, shallowEqual } from './helpers.js';
|
|
13
|
-
export { patchProps } from './props.js';
|
|
14
|
-
export { diffChildren } from './children.js';
|
|
15
1
|
/**
|
|
16
|
-
*
|
|
2
|
+
* @fukict/basic - Diff Module
|
|
17
3
|
*
|
|
18
|
-
*
|
|
19
|
-
* @param newVNode - New VNode (can be array from slots)
|
|
20
|
-
* @param container - Container element
|
|
4
|
+
* Public exports for diff operations
|
|
21
5
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
// Both null/undefined - no changes
|
|
32
|
-
if (!oldVNode && !newVNode) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
// Old exists, new is null - remove
|
|
36
|
-
if (oldVNode && !newVNode) {
|
|
37
|
-
removeNode(oldVNode, container);
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
// Old is null, new exists - create and mount
|
|
41
|
-
if (!oldVNode && newVNode) {
|
|
42
|
-
const node = createRealNode(newVNode);
|
|
43
|
-
if (node) {
|
|
44
|
-
if (Array.isArray(node)) {
|
|
45
|
-
node.forEach(n => container.appendChild(n));
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
container.appendChild(node);
|
|
49
|
-
}
|
|
50
|
-
activate({ vnode: newVNode, container });
|
|
51
|
-
}
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
// Both are primitives
|
|
55
|
-
if ((typeof oldVNode === 'string' ||
|
|
56
|
-
typeof oldVNode === 'number' ||
|
|
57
|
-
typeof oldVNode === 'boolean') &&
|
|
58
|
-
(typeof newVNode === 'string' ||
|
|
59
|
-
typeof newVNode === 'number' ||
|
|
60
|
-
typeof newVNode === 'boolean')) {
|
|
61
|
-
// Text changed - replace text node
|
|
62
|
-
if (oldVNode !== newVNode) {
|
|
63
|
-
const oldText = String(oldVNode);
|
|
64
|
-
const newText = String(newVNode);
|
|
65
|
-
// Find and replace text node (simplified - assumes single text node)
|
|
66
|
-
const textNodes = Array.from(container.childNodes).filter(node => node.nodeType === Node.TEXT_NODE && node.textContent === oldText);
|
|
67
|
-
if (textNodes.length > 0) {
|
|
68
|
-
textNodes[0].textContent = newText;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// One is primitive, one is VNode - replace
|
|
74
|
-
const isOldVNode = typeof oldVNode === 'object' && oldVNode !== null && '__type__' in oldVNode;
|
|
75
|
-
const isNewVNode = typeof newVNode === 'object' && newVNode !== null && '__type__' in newVNode;
|
|
76
|
-
if (!isOldVNode || !isNewVNode) {
|
|
77
|
-
replaceNode(oldVNode, newVNode, container);
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
// Both are VNodes - check type match
|
|
81
|
-
const oldVN = oldVNode;
|
|
82
|
-
const newVN = newVNode;
|
|
83
|
-
// Type mismatch - replace entire node
|
|
84
|
-
if (oldVN.__type__ !== newVN.__type__) {
|
|
85
|
-
replaceNode(oldVN, newVN, container);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
// Same type - diff by type
|
|
89
|
-
switch (newVN.__type__) {
|
|
90
|
-
case VNodeType.Element:
|
|
91
|
-
diffElement(oldVN, newVN, container);
|
|
92
|
-
break;
|
|
93
|
-
case VNodeType.Fragment:
|
|
94
|
-
diffFragment(oldVN, newVN, container);
|
|
95
|
-
break;
|
|
96
|
-
case VNodeType.FunctionComponent:
|
|
97
|
-
diffFunctionComponent(oldVN, newVN, container);
|
|
98
|
-
break;
|
|
99
|
-
case VNodeType.ClassComponent:
|
|
100
|
-
diffClassComponent(oldVN, newVN, container);
|
|
101
|
-
break;
|
|
102
|
-
case VNodeType.Primitive:
|
|
103
|
-
diffPrimitive(oldVN, newVN, container);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
6
|
+
// Core diff functions
|
|
7
|
+
export { diff, diffChildren } from './reconciler.js';
|
|
8
|
+
// DOM operations
|
|
9
|
+
export { removeNode, replaceNode } from './dom-ops.js';
|
|
10
|
+
// Utils
|
|
11
|
+
export { shallowEqual } from './utils.js';
|
|
12
|
+
// Props
|
|
13
|
+
export { patchProps } from './props.js';
|
|
107
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/diff/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/diff/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAErD,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvD,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,QAAQ;AACR,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/primitive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAkB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKlE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,GACjB,IAAI,
|
|
1
|
+
{"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/primitive.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAkB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKlE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,GACjB,IAAI,CA8CN"}
|
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
import { VNodeType } from '../../types/index.js';
|
|
2
1
|
import { setupPrimitiveVNode } from '../vnode-helpers.js';
|
|
3
|
-
import { replaceNode } from './
|
|
2
|
+
import { replaceNode } from './dom-ops.js';
|
|
4
3
|
/**
|
|
5
4
|
* Diff Primitive VNode
|
|
6
5
|
* Updates text content or replaces node if type changes
|
|
7
6
|
*/
|
|
8
7
|
export function diffPrimitive(oldVNode, newVNode, container) {
|
|
9
|
-
if (oldVNode.__type__ !== VNodeType.Primitive ||
|
|
10
|
-
newVNode.__type__ !== VNodeType.Primitive) {
|
|
11
|
-
throw new Error('Expected PrimitiveVNode');
|
|
12
|
-
}
|
|
13
8
|
const oldPrimitive = oldVNode;
|
|
14
9
|
const newPrimitive = newVNode;
|
|
15
10
|
// Value unchanged - reuse DOM
|
|
16
11
|
if (oldPrimitive.value === newPrimitive.value) {
|
|
17
|
-
newPrimitive.
|
|
12
|
+
newPrimitive.__node__ = oldPrimitive.__node__;
|
|
18
13
|
return;
|
|
19
14
|
}
|
|
20
15
|
const oldValue = oldPrimitive.value;
|
|
21
16
|
const newValue = newPrimitive.value;
|
|
22
|
-
const oldDom = oldPrimitive.
|
|
17
|
+
const oldDom = oldPrimitive.__node__;
|
|
23
18
|
// Both are renderable strings/numbers - update text content
|
|
24
19
|
if ((typeof oldValue === 'string' || typeof oldValue === 'number') &&
|
|
25
20
|
(typeof newValue === 'string' || typeof newValue === 'number')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../../src/renderer/diff/primitive.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../../src/renderer/diff/primitive.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,MAAM,YAAY,GAAG,QAA0B,CAAC;IAChD,MAAM,YAAY,GAAG,QAA0B,CAAC;IAEhD,8BAA8B;IAC9B,IAAI,YAAY,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;QAC9C,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;IACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC;IAErC,4DAA4D;IAC5D,IACE,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC;QAC9D,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,EAC9D,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,mBAAmB,CAAC,YAAY,EAAE,MAAc,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IACE,CAAC,OAAO,QAAQ,KAAK,SAAS;QAC5B,QAAQ,KAAK,IAAI;QACjB,QAAQ,KAAK,SAAS,CAAC;QACzB,CAAC,OAAO,QAAQ,KAAK,SAAS;YAC5B,QAAQ,KAAK,IAAI;YACjB,QAAQ,KAAK,SAAS,CAAC,EACzB,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACpD,yBAAyB;YACzB,MAAM,OAAO,GAAG,MAAiB,CAAC;YAClC,OAAO,CAAC,WAAW,GAAG,oBAAoB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzH,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -12,13 +12,13 @@ export function patchProps(element, oldProps, newProps) {
|
|
|
12
12
|
const old = oldProps || {};
|
|
13
13
|
const newP = newProps || {};
|
|
14
14
|
// Remove old props not in new
|
|
15
|
-
for (const key
|
|
15
|
+
for (const key in old) {
|
|
16
16
|
if (!(key in newP)) {
|
|
17
17
|
removeProp(element, key, old[key]);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
// Set new props
|
|
21
|
-
for (const key
|
|
21
|
+
for (const key in newP) {
|
|
22
22
|
const oldValue = old[key];
|
|
23
23
|
const newValue = newP[key];
|
|
24
24
|
if (oldValue !== newValue) {
|
|
@@ -58,14 +58,14 @@ export function setProp(element, key, value, oldValue) {
|
|
|
58
58
|
const oldStyle = (typeof oldValue === 'object' && oldValue !== null ? oldValue : {});
|
|
59
59
|
const newStyle = value;
|
|
60
60
|
// Remove old styles not in new
|
|
61
|
-
for (const styleKey
|
|
61
|
+
for (const styleKey in oldStyle) {
|
|
62
62
|
if (!(styleKey in newStyle)) {
|
|
63
63
|
dom.setStyle(element, styleKey, '');
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
// Set new styles
|
|
67
|
-
for (const
|
|
68
|
-
dom.setStyle(element, styleKey,
|
|
67
|
+
for (const styleKey in newStyle) {
|
|
68
|
+
dom.setStyle(element, styleKey, newStyle[styleKey]);
|
|
69
69
|
}
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/renderer/diff/props.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQ9C;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,OAAgB,EAChB,QAA0C,EAC1C,QAA0C;IAE1C,MAAM,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,KAAK,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/renderer/diff/props.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { VNodeChild } from '../../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Diff children arrays
|
|
4
|
+
*
|
|
5
|
+
* Performance optimized: All children are VNodes (primitives wrapped in PrimitiveVNode by h()).
|
|
6
|
+
* No need for primitive type checking - directly diff VNodes using cached __node__ references.
|
|
7
|
+
*/
|
|
8
|
+
export declare function diffChildren(oldChildren: VNodeChild[], newChildren: VNodeChild[], container: Element): void;
|
|
9
|
+
/**
|
|
10
|
+
* Diff and patch VNode tree
|
|
11
|
+
*
|
|
12
|
+
* @param oldVNode - Old VNode (can be array from slots)
|
|
13
|
+
* @param newVNode - New VNode (can be array from slots)
|
|
14
|
+
* @param container - Container element
|
|
15
|
+
*/
|
|
16
|
+
export declare function diff(oldVNode: VNodeChild, newVNode: VNodeChild, container: Element): void;
|
|
17
|
+
//# sourceMappingURL=reconciler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/reconciler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAKV,UAAU,EACX,MAAM,sBAAsB,CAAC;AAoB9B;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,EAAE,OAAO,GACjB,IAAI,CA+BN;AAgKD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,OAAO,GACjB,IAAI,CAoEN"}
|