@fukict/basic 0.1.0 → 0.1.2
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 +510 -0
- package/dist/component-class/fukict.d.ts +7 -9
- package/dist/component-class/fukict.d.ts.map +1 -1
- package/dist/component-class/fukict.js +22 -20
- package/dist/component-class/fukict.js.map +1 -1
- package/dist/component-function/define.d.ts +1 -1
- package/dist/component-function/define.d.ts.map +1 -1
- package/dist/component-function/define.js +1 -4
- package/dist/component-function/define.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +1 -1
- package/dist/metadata.js +1 -1
- package/dist/renderer/attributes.d.ts +2 -2
- package/dist/renderer/attributes.d.ts.map +1 -1
- package/dist/renderer/attributes.js +4 -14
- package/dist/renderer/attributes.js.map +1 -1
- package/dist/renderer/class-helpers.d.ts +19 -0
- package/dist/renderer/class-helpers.d.ts.map +1 -0
- package/dist/renderer/class-helpers.js +49 -0
- package/dist/renderer/class-helpers.js.map +1 -0
- package/dist/renderer/create.d.ts.map +1 -1
- package/dist/renderer/create.js +47 -43
- package/dist/renderer/create.js.map +1 -1
- package/dist/renderer/diff/class.d.ts +8 -1
- package/dist/renderer/diff/class.d.ts.map +1 -1
- package/dist/renderer/diff/class.js +14 -7
- package/dist/renderer/diff/class.js.map +1 -1
- package/dist/renderer/diff/element.d.ts.map +1 -1
- package/dist/renderer/diff/element.js +11 -7
- package/dist/renderer/diff/element.js.map +1 -1
- package/dist/renderer/diff/fragment.d.ts.map +1 -1
- package/dist/renderer/diff/fragment.js +6 -3
- package/dist/renderer/diff/fragment.js.map +1 -1
- package/dist/renderer/diff/function.d.ts.map +1 -1
- package/dist/renderer/diff/function.js +13 -12
- package/dist/renderer/diff/function.js.map +1 -1
- package/dist/renderer/diff/helpers.d.ts.map +1 -1
- package/dist/renderer/diff/helpers.js +13 -0
- package/dist/renderer/diff/helpers.js.map +1 -1
- package/dist/renderer/diff/index.d.ts.map +1 -1
- package/dist/renderer/diff/index.js +4 -0
- package/dist/renderer/diff/index.js.map +1 -1
- package/dist/renderer/diff/primitive.d.ts +12 -0
- package/dist/renderer/diff/primitive.d.ts.map +1 -0
- package/dist/renderer/diff/primitive.js +50 -0
- package/dist/renderer/diff/primitive.js.map +1 -0
- package/dist/renderer/mount.d.ts.map +1 -1
- package/dist/renderer/mount.js +30 -0
- package/dist/renderer/mount.js.map +1 -1
- package/dist/renderer/vnode-helpers.d.ts +44 -0
- package/dist/renderer/vnode-helpers.d.ts.map +1 -0
- package/dist/renderer/vnode-helpers.js +47 -0
- package/dist/renderer/vnode-helpers.js.map +1 -0
- package/dist/types/class.d.ts +25 -2
- package/dist/types/class.d.ts.map +1 -1
- package/dist/types/core.d.ts +27 -3
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +1 -0
- package/dist/types/core.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/vnode.d.ts +9 -3
- package/dist/vnode.d.ts.map +1 -1
- package/dist/vnode.js +71 -2
- package/dist/vnode.js.map +1 -1
- package/package.json +4 -1
|
@@ -12,12 +12,9 @@
|
|
|
12
12
|
* ```
|
|
13
13
|
*
|
|
14
14
|
* @param fn - Function component
|
|
15
|
-
* @returns The same function with better types
|
|
15
|
+
* @returns The same function with better types
|
|
16
16
|
*/
|
|
17
17
|
export function defineFukict(fn) {
|
|
18
|
-
// Add component type marker for Babel plugin
|
|
19
|
-
fn.__COMPONENT_TYPE__ =
|
|
20
|
-
'function';
|
|
21
18
|
return fn;
|
|
22
19
|
}
|
|
23
20
|
//# sourceMappingURL=define.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/component-function/define.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAwB;IAExB,
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/component-function/define.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAwB;IAExB,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { METADATA } from './metadata.js';
|
|
7
7
|
export { METADATA };
|
|
8
|
-
export declare const VERSION: "0.1.
|
|
9
|
-
export type { VNode, VNodeChild, ElementVNode, FragmentVNode, FunctionComponentVNode, ClassComponentVNode, UnregisterFn, RefCallback, CSSProperties, ClassValue, RuntimeAttributes, EventHandlers, HTMLAttributes, SVGAttributes, Slots, Ref, FukictLifecycle, FukictComponent, FukictProps, FukictSlots, FukictConstructor, } from './types/index.js';
|
|
8
|
+
export declare const VERSION: "0.1.2";
|
|
9
|
+
export type { VNode, VNodeChild, ElementVNode, FragmentVNode, FunctionComponentVNode, ClassComponentVNode, UnregisterFn, RefCallback, CSSProperties, ClassValue, RuntimeAttributes, EventHandlers, HTMLAttributes, SVGAttributes, Slots, Ref, Refs, FukictLifecycle, FukictComponent, FukictProps, FukictSlots, FukictConstructor, } from './types/index.js';
|
|
10
10
|
export type { Context, ContextData } from './types/context.js';
|
|
11
11
|
export { VNodeType } from './types/index.js';
|
|
12
12
|
export type { JSX } from './types/jsx.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,eAAO,MAAM,OAAO,SAAmB,CAAC;AAGxC,YAAY,EACV,KAAK,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,KAAK,EACL,GAAG,EACH,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,YAAY,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,eAAO,MAAM,OAAO,SAAmB,CAAC;AAGxC,YAAY,EACV,KAAK,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,KAAK,EACL,GAAG,EACH,IAAI,EACJ,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,YAAY,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,mBAAmB;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,mBAAmB;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AA+BxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE/D,kBAAkB;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,qBAAqB;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEzE,gDAAgD;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,uBAAuB;AACvB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,wBAAwB,CAAC;AAEhC,kDAAkD;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC"}
|
package/dist/metadata.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare const METADATA: {
|
|
6
6
|
readonly name: "@fukict/basic";
|
|
7
|
-
readonly version: "0.1.
|
|
7
|
+
readonly version: "0.1.2";
|
|
8
8
|
readonly description: "Lightweight DOM rendering basic with extension mechanism";
|
|
9
9
|
readonly author: "Fukict Team";
|
|
10
10
|
readonly license: "MIT";
|
package/dist/metadata.js
CHANGED
|
@@ -9,7 +9,7 @@ import type { Fukict } from '../component-class/fukict.js';
|
|
|
9
9
|
*
|
|
10
10
|
* @param element - DOM element
|
|
11
11
|
* @param props - Props object
|
|
12
|
-
* @param
|
|
12
|
+
* @param _componentInstance - (Unused) Component instance, kept for compatibility
|
|
13
13
|
*/
|
|
14
|
-
export declare function setAttributes(element: Element, props: Record<string, unknown>,
|
|
14
|
+
export declare function setAttributes(element: Element, props: Record<string, unknown>, _componentInstance?: Fukict): void;
|
|
15
15
|
//# sourceMappingURL=attributes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/renderer/attributes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAG3D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/renderer/attributes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAG3D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,IAAI,CAwDN"}
|
|
@@ -4,25 +4,15 @@ import * as dom from '../dom/index.js';
|
|
|
4
4
|
*
|
|
5
5
|
* @param element - DOM element
|
|
6
6
|
* @param props - Props object
|
|
7
|
-
* @param
|
|
7
|
+
* @param _componentInstance - (Unused) Component instance, kept for compatibility
|
|
8
8
|
*/
|
|
9
|
-
export function setAttributes(element, props,
|
|
9
|
+
export function setAttributes(element, props, _componentInstance) {
|
|
10
10
|
for (const [key, value] of Object.entries(props)) {
|
|
11
11
|
if (key === 'children') {
|
|
12
12
|
continue;
|
|
13
13
|
}
|
|
14
|
-
//
|
|
15
|
-
if (key === 'fukict:ref'
|
|
16
|
-
typeof value === 'string' &&
|
|
17
|
-
componentInstance) {
|
|
18
|
-
// Register ref in component's refs Map
|
|
19
|
-
if (!componentInstance.refs.has(value)) {
|
|
20
|
-
componentInstance.refs.set(value, { current: null });
|
|
21
|
-
}
|
|
22
|
-
const ref = componentInstance.refs.get(value);
|
|
23
|
-
if (ref) {
|
|
24
|
-
ref.current = element;
|
|
25
|
-
}
|
|
14
|
+
// Skip fukict:ref (handled in class-helpers.ts)
|
|
15
|
+
if (key === 'fukict:ref') {
|
|
26
16
|
continue;
|
|
27
17
|
}
|
|
28
18
|
// TODO: dom 应该统一处理流程
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/renderer/attributes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAgB,EAChB,KAA8B,EAC9B,
|
|
1
|
+
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/renderer/attributes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAgB,EAChB,KAA8B,EAC9B,kBAA2B;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,gDAAgD;QAChD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QAED,qBAAqB;QAErB,sBAAsB;QACtB,IAAI,GAAG,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChD,KAAoC,CAAC,OAAO,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,6BAA6B;QAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAsB,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnE,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,GAAG,CAAC,QAAQ,CACV,OAAsB,EACtB,QAAQ,EACR,UAA6B,CAC9B,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC/D,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QAED,qCAAqC;QACrC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,GAAG,CAAC,QAAQ,CACV,OAAO,EACP,KAAoD,CACrD,CAAC;YACF,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ClassComponentVNode } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Setup ClassComponentVNode with instance, slots, refs, and parent references
|
|
4
|
+
*
|
|
5
|
+
* This function handles the common logic for both creating and updating class components:
|
|
6
|
+
* 1. Saves instance to vnode
|
|
7
|
+
* 2. Extracts and sets slots from children
|
|
8
|
+
* 3. Registers instance to parent's refs (if fukict:ref is specified)
|
|
9
|
+
* 4. Updates wrapper VNode reference
|
|
10
|
+
* 5. Updates parent instance reference on wrapper VNode
|
|
11
|
+
*
|
|
12
|
+
* Used by both renderClassComponent (create) and diffClassComponent (update).
|
|
13
|
+
*
|
|
14
|
+
* @param vnode - The ClassComponentVNode to setup
|
|
15
|
+
* @param instance - The class component instance
|
|
16
|
+
* @param parentInstance - The parent component instance (optional)
|
|
17
|
+
*/
|
|
18
|
+
export declare function setupClassComponentVNode(vnode: ClassComponentVNode, instance: unknown, parentInstance?: unknown): void;
|
|
19
|
+
//# sourceMappingURL=class-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-helpers.d.ts","sourceRoot":"","sources":["../../src/renderer/class-helpers.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAS,MAAM,mBAAmB,CAAC;AAYpE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,OAAO,EACjB,cAAc,CAAC,EAAE,OAAO,GACvB,IAAI,CAiCN"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fukict/basic - Class Component Shared Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared logic for creating and updating class components
|
|
5
|
+
*/
|
|
6
|
+
import { extractSlots } from '../component-class/slot.js';
|
|
7
|
+
/**
|
|
8
|
+
* Setup ClassComponentVNode with instance, slots, refs, and parent references
|
|
9
|
+
*
|
|
10
|
+
* This function handles the common logic for both creating and updating class components:
|
|
11
|
+
* 1. Saves instance to vnode
|
|
12
|
+
* 2. Extracts and sets slots from children
|
|
13
|
+
* 3. Registers instance to parent's refs (if fukict:ref is specified)
|
|
14
|
+
* 4. Updates wrapper VNode reference
|
|
15
|
+
* 5. Updates parent instance reference on wrapper VNode
|
|
16
|
+
*
|
|
17
|
+
* Used by both renderClassComponent (create) and diffClassComponent (update).
|
|
18
|
+
*
|
|
19
|
+
* @param vnode - The ClassComponentVNode to setup
|
|
20
|
+
* @param instance - The class component instance
|
|
21
|
+
* @param parentInstance - The parent component instance (optional)
|
|
22
|
+
*/
|
|
23
|
+
export function setupClassComponentVNode(vnode, instance, parentInstance) {
|
|
24
|
+
const instanceInternal = instance;
|
|
25
|
+
// 1. Save instance to vnode
|
|
26
|
+
vnode.__instance__ = instance;
|
|
27
|
+
// 2. Extract and set slots from children
|
|
28
|
+
if (vnode.children) {
|
|
29
|
+
instanceInternal.slots = extractSlots(vnode.children);
|
|
30
|
+
}
|
|
31
|
+
// 3. Handle fukict:ref for class components
|
|
32
|
+
// If parent is a class component and this component has fukict:ref,
|
|
33
|
+
// register this instance to parent's refs
|
|
34
|
+
if (parentInstance && vnode.props && vnode.props['fukict:ref']) {
|
|
35
|
+
const refName = vnode.props['fukict:ref'];
|
|
36
|
+
if (typeof refName === 'string') {
|
|
37
|
+
const parentInternal = parentInstance;
|
|
38
|
+
// Directly assign instance to parent's refs (no Ref wrapper)
|
|
39
|
+
parentInternal.refs[refName] = instance;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// 4. Update wrapper VNode reference
|
|
43
|
+
instanceInternal.__wrapper__ = vnode;
|
|
44
|
+
// 5. Update parent instance reference on wrapper VNode (for context chain)
|
|
45
|
+
if (parentInstance) {
|
|
46
|
+
vnode.__parentInstance__ = parentInstance;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=class-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-helpers.js","sourceRoot":"","sources":["../../src/renderer/class-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAa1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA0B,EAC1B,QAAiB,EACjB,cAAwB;IAExB,MAAM,gBAAgB,GAAG,QAAqC,CAAC;IAE/D,4BAA4B;IAC5B,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC;IAE9B,yCAAyC;IACzC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,gBAAgB,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,4CAA4C;IAC5C,uEAAuE;IACvE,6CAA6C;IAC7C,IAAI,cAAc,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAY,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,cAA2C,CAAC;YAEnE,6DAA6D;YAC7D,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,gBAAgB,CAAC,WAAW,GAAG,KAAK,CAAC;IAErC,2EAA2E;IAC3E,IAAI,cAAc,EAAE,CAAC;QAEjB,KACD,CAAC,kBAAkB,GAAG,cAAc,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/renderer/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/renderer/create.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGtD,OAAO,KAAK,EAMV,KAAK,EACL,UAAU,EACX,MAAM,mBAAmB,CAAC;AAW3B;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,CAkCtB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,CAqBtB"}
|
package/dist/renderer/create.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { extractSlots } from '../component-class/slot.js';
|
|
2
1
|
import * as dom from '../dom/index.js';
|
|
3
2
|
import { VNodeType } from '../types/index.js';
|
|
4
3
|
import { setAttributes } from './attributes.js';
|
|
4
|
+
import { setupClassComponentVNode } from './class-helpers.js';
|
|
5
|
+
import { setupElementVNode, setupFragmentVNode, setupFunctionComponentVNode, setupPrimitiveVNode, } from './vnode-helpers.js';
|
|
5
6
|
/**
|
|
6
7
|
* Create real DOM node(s) from VNode
|
|
7
8
|
*
|
|
@@ -65,6 +66,8 @@ export function createElementFromVNode(vnode, componentInstance) {
|
|
|
65
66
|
return renderFunctionComponent(vnode, componentInstance);
|
|
66
67
|
case VNodeType.ClassComponent:
|
|
67
68
|
return renderClassComponent(vnode, componentInstance);
|
|
69
|
+
case VNodeType.Primitive:
|
|
70
|
+
return renderPrimitive(vnode);
|
|
68
71
|
default:
|
|
69
72
|
return null;
|
|
70
73
|
}
|
|
@@ -78,7 +81,8 @@ function renderElement(vnode, componentInstance) {
|
|
|
78
81
|
if (vnode.__type__ !== VNodeType.Element) {
|
|
79
82
|
throw new Error('Expected ElementVNode');
|
|
80
83
|
}
|
|
81
|
-
const
|
|
84
|
+
const elementVNode = vnode;
|
|
85
|
+
const { type, props, children } = elementVNode;
|
|
82
86
|
const element = dom.createElement(type);
|
|
83
87
|
// Set attributes and events
|
|
84
88
|
if (props) {
|
|
@@ -102,8 +106,8 @@ function renderElement(vnode, componentInstance) {
|
|
|
102
106
|
else {
|
|
103
107
|
console.warn('Element vnode children is not an array:', vnode);
|
|
104
108
|
}
|
|
105
|
-
//
|
|
106
|
-
|
|
109
|
+
// Setup ElementVNode: save DOM reference
|
|
110
|
+
setupElementVNode(elementVNode, element);
|
|
107
111
|
return element;
|
|
108
112
|
}
|
|
109
113
|
/**
|
|
@@ -115,7 +119,8 @@ function renderFragment(vnode, componentInstance) {
|
|
|
115
119
|
if (vnode.__type__ !== VNodeType.Fragment) {
|
|
116
120
|
throw new Error('Expected FragmentVNode');
|
|
117
121
|
}
|
|
118
|
-
const
|
|
122
|
+
const fragmentVNode = vnode;
|
|
123
|
+
const { children } = fragmentVNode;
|
|
119
124
|
const nodes = [];
|
|
120
125
|
if (Array.isArray(children)) {
|
|
121
126
|
for (const child of children) {
|
|
@@ -134,8 +139,8 @@ function renderFragment(vnode, componentInstance) {
|
|
|
134
139
|
else {
|
|
135
140
|
console.warn('Element vnode children is not an array:', vnode);
|
|
136
141
|
}
|
|
137
|
-
//
|
|
138
|
-
|
|
142
|
+
// Setup FragmentVNode: save DOM nodes array reference
|
|
143
|
+
setupFragmentVNode(fragmentVNode, nodes);
|
|
139
144
|
return nodes;
|
|
140
145
|
}
|
|
141
146
|
/**
|
|
@@ -159,15 +164,14 @@ function renderFunctionComponent(vnode, componentInstance) {
|
|
|
159
164
|
const funcComponent = type;
|
|
160
165
|
const rendered = funcComponent(propsWithChildren);
|
|
161
166
|
if (!rendered) {
|
|
162
|
-
|
|
163
|
-
funcVNode
|
|
167
|
+
// Setup FunctionComponentVNode with empty result
|
|
168
|
+
setupFunctionComponentVNode(funcVNode, undefined, null);
|
|
164
169
|
return null;
|
|
165
170
|
}
|
|
166
171
|
// Render result (pass component instance for nested fukict:ref)
|
|
167
172
|
const domNode = createRealNode(rendered, componentInstance);
|
|
168
|
-
//
|
|
169
|
-
funcVNode
|
|
170
|
-
funcVNode.__dom__ = domNode; // 可能是 Node 或 Node[]
|
|
173
|
+
// Setup FunctionComponentVNode: save rendered VNode and DOM reference
|
|
174
|
+
setupFunctionComponentVNode(funcVNode, rendered, domNode);
|
|
171
175
|
return domNode;
|
|
172
176
|
}
|
|
173
177
|
/**
|
|
@@ -181,43 +185,43 @@ function renderClassComponent(vnode, componentInstance) {
|
|
|
181
185
|
}
|
|
182
186
|
// Type assertion after runtime check
|
|
183
187
|
const classVNode = vnode;
|
|
184
|
-
const { type, props
|
|
188
|
+
const { type, props } = classVNode;
|
|
185
189
|
// 1. Create instance (only props)
|
|
186
190
|
// Type assertion is safe here because we know it's a class constructor
|
|
187
191
|
const ComponentClass = type;
|
|
188
192
|
const instance = new ComponentClass(props ?? {});
|
|
189
|
-
// 2.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
// 3. Handle fukict:ref for class components
|
|
194
|
-
// If parent is a class component and this component has fukict:ref,
|
|
195
|
-
// register this instance to parent's refs
|
|
196
|
-
if (componentInstance && props && props['fukict:ref']) {
|
|
197
|
-
const refName = props['fukict:ref'];
|
|
198
|
-
if (typeof refName === 'string') {
|
|
199
|
-
// Create or update ref in parent component
|
|
200
|
-
if (!componentInstance.refs.has(refName)) {
|
|
201
|
-
componentInstance.refs.set(refName, { current: null });
|
|
202
|
-
}
|
|
203
|
-
const ref = componentInstance.refs.get(refName);
|
|
204
|
-
if (ref) {
|
|
205
|
-
ref.current = instance;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
// 4. Save instance to vnode
|
|
210
|
-
classVNode.__instance__ = instance;
|
|
211
|
-
// 5. Save wrapper VNode to instance (for context traversal)
|
|
212
|
-
instance.__wrapper__ = classVNode;
|
|
213
|
-
// 6. Save parent instance reference on wrapper VNode (for context chain)
|
|
214
|
-
if (componentInstance) {
|
|
215
|
-
classVNode.__parentInstance__ = componentInstance;
|
|
216
|
-
}
|
|
217
|
-
// 7. Create comment placeholder with instance ID and name
|
|
193
|
+
// 2. Setup ClassComponentVNode: instance, slots, refs, wrapper, parent reference
|
|
194
|
+
setupClassComponentVNode(classVNode, instance, componentInstance);
|
|
195
|
+
// 3. Create comment placeholder with instance ID and name
|
|
218
196
|
const placeholder = dom.createComment(`fukict:${instance.__name__}#${instance.__id__}`);
|
|
219
|
-
//
|
|
197
|
+
// 4. Save placeholder to vnode
|
|
220
198
|
classVNode.__placeholder__ = placeholder;
|
|
221
199
|
return placeholder;
|
|
222
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Render Primitive VNode
|
|
203
|
+
* Returns Text node for renderable values, Comment node for non-renderable values
|
|
204
|
+
*/
|
|
205
|
+
function renderPrimitive(vnode) {
|
|
206
|
+
// TypeScript now knows vnode is PrimitiveVNode
|
|
207
|
+
if (vnode.__type__ !== VNodeType.Primitive) {
|
|
208
|
+
throw new Error('Expected PrimitiveVNode');
|
|
209
|
+
}
|
|
210
|
+
const primitiveVNode = vnode;
|
|
211
|
+
const { value } = primitiveVNode;
|
|
212
|
+
// Renderable values: string, number
|
|
213
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
214
|
+
const textNode = dom.createTextNode(String(value));
|
|
215
|
+
setupPrimitiveVNode(primitiveVNode, textNode);
|
|
216
|
+
return textNode;
|
|
217
|
+
}
|
|
218
|
+
// Non-renderable values: boolean, null, undefined
|
|
219
|
+
// Use comment node as placeholder to maintain structure
|
|
220
|
+
if (typeof value === 'boolean' || value === null || value === undefined) {
|
|
221
|
+
const comment = dom.createComment(`fukict:primitive:${value === null ? 'null' : value === undefined ? 'undefined' : value}`);
|
|
222
|
+
setupPrimitiveVNode(primitiveVNode, comment);
|
|
223
|
+
return comment;
|
|
224
|
+
}
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
223
227
|
//# sourceMappingURL=create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/renderer/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/renderer/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fukict/basic - Diff: Class Component
|
|
3
|
+
*
|
|
4
|
+
* Diff class component VNodes
|
|
5
|
+
*/
|
|
6
|
+
import type { FukictComponent } from '../../types/class.js';
|
|
1
7
|
import type { VNode } from '../../types/index.js';
|
|
2
8
|
/**
|
|
3
9
|
* Diff Class Component VNode
|
|
10
|
+
* - Update slots and refs
|
|
4
11
|
* - Call instance.update(newProps)
|
|
5
12
|
* - Handle detached mode (fukict:detach)
|
|
6
13
|
*/
|
|
7
|
-
export declare function diffClassComponent(oldVNode: VNode, newVNode: VNode, container: Element): void;
|
|
14
|
+
export declare function diffClassComponent(oldVNode: VNode, newVNode: VNode, container: Element, parentInstance?: FukictComponent): void;
|
|
8
15
|
//# sourceMappingURL=class.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/class.ts"],"names":[],"mappings":"
|
|
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,CA8CN"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { VNodeType } from '../../types/index.js';
|
|
2
|
+
import { setupClassComponentVNode } from '../class-helpers.js';
|
|
2
3
|
import { replaceNode } from './helpers.js';
|
|
3
4
|
/**
|
|
4
5
|
* Diff Class Component VNode
|
|
6
|
+
* - Update slots and refs
|
|
5
7
|
* - Call instance.update(newProps)
|
|
6
8
|
* - Handle detached mode (fukict:detach)
|
|
7
9
|
*/
|
|
8
|
-
export function diffClassComponent(oldVNode, newVNode, container) {
|
|
10
|
+
export function diffClassComponent(oldVNode, newVNode, container, parentInstance) {
|
|
9
11
|
if (oldVNode.__type__ !== VNodeType.ClassComponent ||
|
|
10
12
|
newVNode.__type__ !== VNodeType.ClassComponent) {
|
|
11
13
|
throw new Error('Expected ClassComponentVNode');
|
|
@@ -20,18 +22,23 @@ export function diffClassComponent(oldVNode, newVNode, container) {
|
|
|
20
22
|
}
|
|
21
23
|
// Reuse instance
|
|
22
24
|
const instance = oldClassVNode.__instance__;
|
|
23
|
-
|
|
25
|
+
if (!instance) {
|
|
26
|
+
console.warn('[diffClassComponent] Instance is undefined, skipping diff');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Setup ClassComponentVNode: instance, slots, refs, wrapper, parent reference
|
|
30
|
+
setupClassComponentVNode(newClassVNode, instance, parentInstance);
|
|
31
|
+
// Copy placeholder from old vnode
|
|
32
|
+
newClassVNode.__placeholder__ = oldClassVNode.__placeholder__;
|
|
24
33
|
// Check detached mode
|
|
25
34
|
if (newClassVNode.props && newClassVNode.props['fukict:detach']) {
|
|
26
35
|
// Detached mode: only update props, skip update()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
instance.props = newClassVNode.props;
|
|
30
|
-
}
|
|
36
|
+
// Use same pattern as Fukict.update() - cast to bypass readonly
|
|
37
|
+
instance.props = newClassVNode.props;
|
|
31
38
|
return;
|
|
32
39
|
}
|
|
33
40
|
// Normal mode: call instance.update(newProps)
|
|
34
|
-
if (
|
|
41
|
+
if (typeof instance.update === 'function') {
|
|
35
42
|
instance.update(newClassVNode.props ?? {});
|
|
36
43
|
}
|
|
37
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../src/renderer/diff/class.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../src/renderer/diff/class.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAU3C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAe,EACf,QAAe,EACf,SAAkB,EAClB,cAAgC;IAEhC,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc;QAC9C,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc,EAC9C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,qCAAqC;IACrC,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,8EAA8E;IAC9E,wBAAwB,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAElE,kCAAkC;IAClC,aAAa,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;IAE9D,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/element.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/element.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAgB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAOhE;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,GACjB,IAAI,CAiCN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { VNodeType } from '../../types/index.js';
|
|
2
|
+
import { setupElementVNode } from '../vnode-helpers.js';
|
|
2
3
|
import { diffChildren } from './children.js';
|
|
3
4
|
import { replaceNode } from './helpers.js';
|
|
4
5
|
import { patchProps } from './props.js';
|
|
@@ -13,22 +14,25 @@ export function diffElement(oldVNode, newVNode, container) {
|
|
|
13
14
|
newVNode.__type__ !== VNodeType.Element) {
|
|
14
15
|
throw new Error('Expected ElementVNode');
|
|
15
16
|
}
|
|
17
|
+
const oldElementVNode = oldVNode;
|
|
18
|
+
const newElementVNode = newVNode;
|
|
16
19
|
// Tag name changed - replace entire element
|
|
17
|
-
if (
|
|
18
|
-
replaceNode(
|
|
20
|
+
if (oldElementVNode.type !== newElementVNode.type) {
|
|
21
|
+
replaceNode(oldElementVNode, newElementVNode, container);
|
|
19
22
|
return;
|
|
20
23
|
}
|
|
21
24
|
// Reuse DOM element
|
|
22
|
-
const element =
|
|
25
|
+
const element = oldElementVNode.__dom__;
|
|
23
26
|
if (!element) {
|
|
24
27
|
// DOM doesn't exist, replace node
|
|
25
|
-
replaceNode(
|
|
28
|
+
replaceNode(oldElementVNode, newElementVNode, container);
|
|
26
29
|
return;
|
|
27
30
|
}
|
|
28
|
-
|
|
31
|
+
// Setup ElementVNode: save DOM reference
|
|
32
|
+
setupElementVNode(newElementVNode, element);
|
|
29
33
|
// Patch props
|
|
30
|
-
patchProps(element,
|
|
34
|
+
patchProps(element, oldElementVNode.props, newElementVNode.props);
|
|
31
35
|
// Diff children
|
|
32
|
-
diffChildren(
|
|
36
|
+
diffChildren(oldElementVNode.children, newElementVNode.children, element);
|
|
33
37
|
}
|
|
34
38
|
//# sourceMappingURL=element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/renderer/diff/element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO;QACvC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,EACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,4CAA4C;IAC5C,IAAI,
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/renderer/diff/element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO;QACvC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,EACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,eAAe,GAAG,QAAwB,CAAC;IACjD,MAAM,eAAe,GAAG,QAAwB,CAAC;IAEjD,4CAA4C;IAC5C,IAAI,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;QAClD,WAAW,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,MAAM,OAAO,GAAG,eAAe,CAAC,OAAkB,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,kCAAkC;QAClC,WAAW,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,yCAAyC;IACzC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAE5C,cAAc;IACd,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAElE,gBAAgB;IAChB,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/fragment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"fragment.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/fragment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAiB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKjE;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,GACjB,IAAI,CA8BN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { VNodeType } from '../../types/index.js';
|
|
2
|
+
import { setupFragmentVNode } from '../vnode-helpers.js';
|
|
2
3
|
import { diffChildren } from './children.js';
|
|
3
4
|
/**
|
|
4
5
|
* Diff Fragment VNode
|
|
@@ -10,11 +11,12 @@ export function diffFragment(oldVNode, newVNode, container) {
|
|
|
10
11
|
newVNode.__type__ !== VNodeType.Fragment) {
|
|
11
12
|
throw new Error('Expected FragmentVNode');
|
|
12
13
|
}
|
|
14
|
+
const newFragmentVNode = newVNode;
|
|
13
15
|
// Diff children
|
|
14
|
-
diffChildren(oldVNode.children,
|
|
16
|
+
diffChildren(oldVNode.children, newFragmentVNode.children, container);
|
|
15
17
|
// Update __dom__ reference (collect all current child nodes)
|
|
16
18
|
const newNodes = [];
|
|
17
|
-
for (const child of
|
|
19
|
+
for (const child of newFragmentVNode.children) {
|
|
18
20
|
if (child && typeof child === 'object' && '__dom__' in child) {
|
|
19
21
|
const dom = child.__dom__;
|
|
20
22
|
if (dom) {
|
|
@@ -27,6 +29,7 @@ export function diffFragment(oldVNode, newVNode, container) {
|
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
|
-
|
|
32
|
+
// Setup FragmentVNode: save DOM nodes array reference
|
|
33
|
+
setupFragmentVNode(newFragmentVNode, newNodes);
|
|
31
34
|
}
|
|
32
35
|
//# sourceMappingURL=fragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment.js","sourceRoot":"","sources":["../../../src/renderer/diff/fragment.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ;QACxC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EACxC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB;IAChB,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"fragment.js","sourceRoot":"","sources":["../../../src/renderer/diff/fragment.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ;QACxC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EACxC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAyB,CAAC;IAEnD,gBAAgB;IAChB,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEtE,6DAA6D;IAC7D,MAAM,QAAQ,GAAW,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YAC1B,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/function.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,KAAK,EAEN,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/function.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAM9B;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,GACjB,IAAI,CAkEN"}
|