@faiwer/react 0.8.2 → 0.8.4
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 +3 -0
- package/dist/core/Children.d.ts +11 -0
- package/dist/core/Children.d.ts.map +1 -0
- package/dist/core/Children.js +35 -0
- package/dist/core/Children.js.map +1 -0
- package/dist/core/actions/createTag.action.d.ts.map +1 -1
- package/dist/core/actions/createTag.action.js +85 -1
- package/dist/core/actions/createTag.action.js.map +1 -1
- package/dist/core/actions/dom/attributes.d.ts +4 -0
- package/dist/core/actions/dom/attributes.d.ts.map +1 -0
- package/dist/core/actions/dom/attributes.js +53 -0
- package/dist/core/actions/dom/attributes.js.map +1 -0
- package/dist/core/actions/dom/css.d.ts +6 -0
- package/dist/core/actions/dom/css.d.ts.map +1 -0
- package/dist/core/actions/dom/css.js +53 -0
- package/dist/core/actions/dom/css.js.map +1 -0
- package/dist/core/actions/dom/events.d.ts +3 -0
- package/dist/core/actions/dom/events.d.ts.map +1 -0
- package/dist/core/actions/dom/events.js +33 -0
- package/dist/core/actions/dom/events.js.map +1 -0
- package/dist/core/actions/dom/svg.d.ts +7 -0
- package/dist/core/actions/dom/svg.d.ts.map +1 -0
- package/dist/core/actions/dom/svg.js +76 -0
- package/dist/core/actions/dom/svg.js.map +1 -0
- package/dist/core/actions/helpers.d.ts +2 -2
- package/dist/core/actions/helpers.d.ts.map +1 -1
- package/dist/core/actions/helpers.js +17 -2
- package/dist/core/actions/helpers.js.map +1 -1
- package/dist/core/actions/remove.action.d.ts +2 -1
- package/dist/core/actions/remove.action.d.ts.map +1 -1
- package/dist/core/actions/remove.action.js +5 -5
- package/dist/core/actions/remove.action.js.map +1 -1
- package/dist/core/actions/replace.action.d.ts.map +1 -1
- package/dist/core/actions/replace.action.js +18 -0
- package/dist/core/actions/replace.action.js.map +1 -1
- package/dist/core/actions/setAttr.action.d.ts.map +1 -1
- package/dist/core/actions/setAttr.action.js +11 -85
- package/dist/core/actions/setAttr.action.js.map +1 -1
- package/dist/core/actions/setRef.action.d.ts.map +1 -1
- package/dist/core/actions/setRef.action.js +1 -2
- package/dist/core/actions/setRef.action.js.map +1 -1
- package/dist/core/classComponent.d.ts +33 -0
- package/dist/core/classComponent.d.ts.map +1 -0
- package/dist/core/classComponent.js +126 -0
- package/dist/core/classComponent.js.map +1 -0
- package/dist/core/components.d.ts.map +1 -1
- package/dist/core/components.js +4 -0
- package/dist/core/components.js.map +1 -1
- package/dist/core/createElement.d.ts +8 -2
- package/dist/core/createElement.d.ts.map +1 -1
- package/dist/core/createElement.js +16 -2
- package/dist/core/createElement.js.map +1 -1
- package/dist/core/createRoot.js.map +1 -1
- package/dist/core/reconciliation/collect/fromChildrenPair.js +16 -12
- package/dist/core/reconciliation/collect/fromChildrenPair.js.map +1 -1
- package/dist/core/reconciliation/collect/fromFiberPair.d.ts.map +1 -1
- package/dist/core/reconciliation/collect/fromFiberPair.js +4 -0
- package/dist/core/reconciliation/collect/fromFiberPair.js.map +1 -1
- package/dist/core/reconciliation/effects.d.ts.map +1 -1
- package/dist/core/reconciliation/effects.js +0 -5
- package/dist/core/reconciliation/effects.js.map +1 -1
- package/dist/core/reconciliation/errors/stack.d.ts +3 -0
- package/dist/core/reconciliation/errors/stack.d.ts.map +1 -0
- package/dist/core/reconciliation/errors/stack.js +23 -0
- package/dist/core/reconciliation/errors/stack.js.map +1 -0
- package/dist/core/reconciliation/fibers.d.ts +6 -0
- package/dist/core/reconciliation/fibers.d.ts.map +1 -1
- package/dist/core/reconciliation/fibers.js +6 -0
- package/dist/core/reconciliation/fibers.js.map +1 -1
- package/dist/core/reconciliation/invalidateFiber.d.ts.map +1 -1
- package/dist/core/reconciliation/invalidateFiber.js +5 -0
- package/dist/core/reconciliation/invalidateFiber.js.map +1 -1
- package/dist/core/reconciliation/mount.d.ts.map +1 -1
- package/dist/core/reconciliation/mount.js +3 -3
- package/dist/core/reconciliation/mount.js.map +1 -1
- package/dist/core/reconciliation/postCommit.d.ts.map +1 -1
- package/dist/core/reconciliation/postCommit.js +3 -1
- package/dist/core/reconciliation/postCommit.js.map +1 -1
- package/dist/core/reconciliation/render.js +4 -4
- package/dist/core/reconciliation/render.js.map +1 -1
- package/dist/core/reconciliation/typeGuards.d.ts +6 -1
- package/dist/core/reconciliation/typeGuards.d.ts.map +1 -1
- package/dist/core/reconciliation/typeGuards.js +12 -0
- package/dist/core/reconciliation/typeGuards.js.map +1 -1
- package/dist/core/reconciliation/validateApp.d.ts +3 -0
- package/dist/core/reconciliation/validateApp.d.ts.map +1 -0
- package/dist/core/reconciliation/{validateTree.js → validateApp.js} +21 -2
- package/dist/core/reconciliation/validateApp.js.map +1 -0
- package/dist/hooks/useContext.d.ts.map +1 -1
- package/dist/hooks/useContext.js +16 -0
- package/dist/hooks/useContext.js.map +1 -1
- package/dist/hooks/useState.d.ts.map +1 -1
- package/dist/hooks/useState.js +25 -0
- package/dist/hooks/useState.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/jsx-dev-runtime.d.ts +4 -4
- package/dist/jsx-dev-runtime.d.ts.map +1 -1
- package/dist/jsx-dev-runtime.js +4 -4
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.d.ts +3 -3
- package/dist/jsx-runtime.d.ts.map +1 -1
- package/dist/jsx-runtime.js +3 -3
- package/dist/jsx-runtime.js.map +1 -1
- package/{src → dist}/jsx.d.ts +25 -0
- package/dist/mocks.d.ts +28 -0
- package/dist/mocks.d.ts.map +1 -0
- package/dist/mocks.js +33 -0
- package/dist/mocks.js.map +1 -0
- package/dist/types/actions.d.ts +1 -0
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/app.d.ts +5 -0
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/common.d.ts +4 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +2 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/component.d.ts +1 -0
- package/dist/types/component.d.ts.map +1 -1
- package/dist/types/dom.d.ts +5 -10
- package/dist/types/dom.d.ts.map +1 -1
- package/dist/types/events.d.ts +24 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +2 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/fiber.d.ts +2 -0
- package/dist/types/fiber.d.ts.map +1 -1
- package/dist/types/hooks.d.ts +4 -1
- package/dist/types/hooks.d.ts.map +1 -1
- package/package.json +9 -3
- package/dist/core/reconciliation/validateTree.d.ts +0 -6
- package/dist/core/reconciliation/validateTree.d.ts.map +0 -1
- package/dist/core/reconciliation/validateTree.js.map +0 -1
package/README.md
CHANGED
|
@@ -87,3 +87,6 @@ createRoot(container).render(<App />);
|
|
|
87
87
|
- All components are memoized by default. Why not?
|
|
88
88
|
- No custom DOM-related code. This library is supposed to be simple and silly. Whereas React-DOM lib is huge.
|
|
89
89
|
- No modern fiber-driven stuff like `<Suspense>`, `cacheSignal`, or `use`. Too much work. It took React many years to cook it well :)
|
|
90
|
+
|
|
91
|
+
- научить solo режим ссылаться на внутренний <!--end-->
|
|
92
|
+
это уберёт миллиард begin-end в wrapper-ах
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ElementNode, ScalarNode } from '../types';
|
|
2
|
+
type Children = {
|
|
3
|
+
count: (children: JSX.Element[]) => number;
|
|
4
|
+
only: (children: JSX.Element) => asserts children is ElementNode | ScalarNode;
|
|
5
|
+
forEach: (children: JSX.Element[], fn: (child: ElementNode | ScalarNode) => void, objThis?: unknown) => void;
|
|
6
|
+
map: <T>(chidlren: JSX.Element[], fn: (child: ElementNode | ScalarNode) => T, objThis?: unknown) => T[];
|
|
7
|
+
toArray: (children: JSX.Element[]) => Array<ElementNode | ScalarNode>;
|
|
8
|
+
};
|
|
9
|
+
export declare const Children: Children;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=Children.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Children.d.ts","sourceRoot":"","sources":["../../src/core/Children.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElE,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,IAAI,WAAW,GAAG,UAAU,CAAC;IAC9E,OAAO,EAAE,CACP,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,EACvB,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,OAAO,KACd,IAAI,CAAC;IACV,GAAG,EAAE,CAAC,CAAC,EACL,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,EACvB,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,KAAK,CAAC,EAC1C,OAAO,CAAC,EAAE,OAAO,KACd,CAAC,EAAE,CAAC;IACT,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;CACvE,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,QA6CtB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const Children = {
|
|
2
|
+
count: (children) => {
|
|
3
|
+
return Children.toArray(children).length;
|
|
4
|
+
},
|
|
5
|
+
forEach: (children, fn, objThis) => {
|
|
6
|
+
for (const child of children) {
|
|
7
|
+
if (Array.isArray(child)) {
|
|
8
|
+
Children.forEach(child, fn, objThis);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
fn.call(objThis, child);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
map: (chidlren, fn, objThis) => {
|
|
16
|
+
const result = [];
|
|
17
|
+
Children.forEach(chidlren, (child) => {
|
|
18
|
+
result.push(fn.call(objThis, child));
|
|
19
|
+
}, objThis);
|
|
20
|
+
return result;
|
|
21
|
+
},
|
|
22
|
+
only(children) {
|
|
23
|
+
if (!Array.isArray(children)) {
|
|
24
|
+
children = [children];
|
|
25
|
+
}
|
|
26
|
+
const items = Children.toArray(children);
|
|
27
|
+
if (items.length !== 1) {
|
|
28
|
+
throw new Error(`Found ${items.length} children. Expected only one`);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
toArray: (children) => {
|
|
32
|
+
return Children.map(children, (child) => child);
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=Children.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Children.js","sourceRoot":"","sources":["../../src/core/Children.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAAA,CAC1C;IAED,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAQ,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IAAA,CACF;IAED,GAAG,EAAE,CACH,QAAuB,EACvB,EAA0C,EAC1C,OAAiB,EACZ,EAAE,CAAC;QACR,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,QAAQ,CAAC,OAAO,CACd,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAAA,CACtC,EACD,OAAO,CACR,CAAC;QACF,OAAO,MAAM,CAAC;IAAA,CACf;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,MAAM,8BAA8B,CAAC,CAAC;QACvE,CAAC;IAAA,CACF;IAED,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAAA,CACjD;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTag.action.d.ts","sourceRoot":"","sources":["../../../src/core/actions/createTag.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"createTag.action.d.ts","sourceRoot":"","sources":["../../../src/core/actions/createTag.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAkBtD"}
|
|
@@ -19,9 +19,93 @@ export function createTagAction(fiber) {
|
|
|
19
19
|
}
|
|
20
20
|
else if (fiber.tag !== 'root') {
|
|
21
21
|
// 'root' is a special case - it's the node where the app is mounted.
|
|
22
|
-
const tag =
|
|
22
|
+
const tag = SVG_TAGS.has(fiber.tag)
|
|
23
|
+
? document.createElementNS('http://www.w3.org/2000/svg', fiber.tag)
|
|
24
|
+
: document.createElement(fiber.tag);
|
|
23
25
|
fiber.element = tag;
|
|
24
26
|
getParentElement(fiber).appendChild(fiber.element);
|
|
25
27
|
}
|
|
26
28
|
}
|
|
29
|
+
const SVG_TAGS = new Set([
|
|
30
|
+
// Core SVG Elements:
|
|
31
|
+
'svg',
|
|
32
|
+
'g',
|
|
33
|
+
'defs',
|
|
34
|
+
'symbol',
|
|
35
|
+
'use',
|
|
36
|
+
'image',
|
|
37
|
+
'switch',
|
|
38
|
+
'style',
|
|
39
|
+
// Basic Shapes:
|
|
40
|
+
'rect',
|
|
41
|
+
'circle',
|
|
42
|
+
'ellipse',
|
|
43
|
+
'line',
|
|
44
|
+
'polyline',
|
|
45
|
+
'polygon',
|
|
46
|
+
'path',
|
|
47
|
+
// Text Elements:
|
|
48
|
+
'text',
|
|
49
|
+
'tspan',
|
|
50
|
+
'tref',
|
|
51
|
+
'textPath',
|
|
52
|
+
'altGlyph',
|
|
53
|
+
'glyphRef',
|
|
54
|
+
// Descriptive & Metadata:
|
|
55
|
+
'title',
|
|
56
|
+
'desc',
|
|
57
|
+
'metadata',
|
|
58
|
+
// Container Elements:
|
|
59
|
+
'foreignObject',
|
|
60
|
+
'marker',
|
|
61
|
+
'pattern',
|
|
62
|
+
'mask',
|
|
63
|
+
'clipPath',
|
|
64
|
+
'filter',
|
|
65
|
+
// Gradient & Painting Elements:
|
|
66
|
+
'linearGradient',
|
|
67
|
+
'radialGradient',
|
|
68
|
+
'stop',
|
|
69
|
+
// Animation Elements:
|
|
70
|
+
'animate',
|
|
71
|
+
'animateMotion',
|
|
72
|
+
'animateTransform',
|
|
73
|
+
'set',
|
|
74
|
+
// Filter Primitive Elements:
|
|
75
|
+
'feBlend',
|
|
76
|
+
'feColorMatrix',
|
|
77
|
+
'feComponentTransfer',
|
|
78
|
+
'feComposite',
|
|
79
|
+
'feConvolveMatrix',
|
|
80
|
+
'feDiffuseLighting',
|
|
81
|
+
'feDisplacementMap',
|
|
82
|
+
'feDropShadow',
|
|
83
|
+
'feFlood',
|
|
84
|
+
'feFuncA',
|
|
85
|
+
'feFuncB',
|
|
86
|
+
'feFuncG',
|
|
87
|
+
'feFuncR',
|
|
88
|
+
'feGaussianBlur',
|
|
89
|
+
'feImage',
|
|
90
|
+
'feMerge',
|
|
91
|
+
'feMergeNode',
|
|
92
|
+
'feMorphology',
|
|
93
|
+
'feOffset',
|
|
94
|
+
'fePointLight',
|
|
95
|
+
'feSpecularLighting',
|
|
96
|
+
'feSpotLight',
|
|
97
|
+
'feTile',
|
|
98
|
+
'feTurbulence',
|
|
99
|
+
// Font Elements:
|
|
100
|
+
'font',
|
|
101
|
+
'glyph',
|
|
102
|
+
'hkern',
|
|
103
|
+
'vkern',
|
|
104
|
+
'font-face',
|
|
105
|
+
'font-face-src',
|
|
106
|
+
'font-face-uri',
|
|
107
|
+
'font-face-format',
|
|
108
|
+
'font-face-name',
|
|
109
|
+
'missing-glyph',
|
|
110
|
+
]);
|
|
27
111
|
//# sourceMappingURL=createTag.action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTag.action.js","sourceRoot":"","sources":["../../../src/core/actions/createTag.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAQ;IACtD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,YAAY,WAAW,EAAE,CAAC;QACtC,uEAAuE;QACvE,kEAAkE;QAClE,mCAAmC;QACnC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;QAChC,qEAAqE;QACrE,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"createTag.action.js","sourceRoot":"","sources":["../../../src/core/actions/createTag.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAQ;IACtD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,YAAY,WAAW,EAAE,CAAC;QACtC,uEAAuE;QACvE,kEAAkE;QAClE,mCAAmC;QACnC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;QAChC,qEAAqE;QACrE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAC,GAAG,CAAC;YACnE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QACpB,gBAAgB,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;AAAA,CACF;AAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,qBAAqB;IACrB,KAAK;IACL,GAAG;IACH,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;IACP,QAAQ;IACR,OAAO;IACP,gBAAgB;IAChB,MAAM;IACN,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,SAAS;IACT,MAAM;IACN,iBAAiB;IACjB,MAAM;IACN,OAAO;IACP,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;IACV,0BAA0B;IAC1B,OAAO;IACP,MAAM;IACN,UAAU;IACV,sBAAsB;IACtB,eAAe;IACf,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,QAAQ;IACR,gCAAgC;IAChC,gBAAgB;IAChB,gBAAgB;IAChB,MAAM;IACN,sBAAsB;IACtB,SAAS;IACT,eAAe;IACf,kBAAkB;IAClB,KAAK;IACL,6BAA6B;IAC7B,SAAS;IACT,eAAe;IACf,qBAAqB;IACrB,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,SAAS;IACT,SAAS;IACT,aAAa;IACb,cAAc;IACd,UAAU;IACV,cAAc;IACd,oBAAoB;IACpB,aAAa;IACb,QAAQ;IACR,cAAc;IACd,iBAAiB;IACjB,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,WAAW;IACX,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;CAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/dom/attributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,gBAAgB,mEAe5B,CAAC;AAEF,eAAO,MAAM,UAAU,aAuCrB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const setHtmlAttribute = (element, name, value) => {
|
|
2
|
+
if (BOOL_ATTRS.has(name)) {
|
|
3
|
+
if (value) {
|
|
4
|
+
element.setAttribute(name, '');
|
|
5
|
+
}
|
|
6
|
+
else {
|
|
7
|
+
element.removeAttribute(name);
|
|
8
|
+
}
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
element.setAttribute(name === 'className' ? 'class' : name, String(value));
|
|
12
|
+
};
|
|
13
|
+
export const BOOL_ATTRS = new Set([
|
|
14
|
+
'autoFocus',
|
|
15
|
+
'checked',
|
|
16
|
+
'multiple',
|
|
17
|
+
'muted',
|
|
18
|
+
'selected',
|
|
19
|
+
'contentEditable',
|
|
20
|
+
'spellCheck',
|
|
21
|
+
'draggable',
|
|
22
|
+
'value',
|
|
23
|
+
'autoReverse',
|
|
24
|
+
'externalResourcesRequired',
|
|
25
|
+
'focusable',
|
|
26
|
+
'preserveAlpha',
|
|
27
|
+
'allowFullScreen',
|
|
28
|
+
'async',
|
|
29
|
+
'autoPlay',
|
|
30
|
+
'controls',
|
|
31
|
+
'default',
|
|
32
|
+
'defer',
|
|
33
|
+
'disabled',
|
|
34
|
+
'disablePictureInPicture',
|
|
35
|
+
'disableRemotePlayback',
|
|
36
|
+
'formNoValidate',
|
|
37
|
+
'hidden',
|
|
38
|
+
'loop',
|
|
39
|
+
'noModule',
|
|
40
|
+
'noValidate',
|
|
41
|
+
'open',
|
|
42
|
+
'playsInline',
|
|
43
|
+
'readOnly',
|
|
44
|
+
'required',
|
|
45
|
+
'reversed',
|
|
46
|
+
'scoped',
|
|
47
|
+
'seamless',
|
|
48
|
+
'itemScope',
|
|
49
|
+
'capture',
|
|
50
|
+
'download',
|
|
51
|
+
'inert',
|
|
52
|
+
]);
|
|
53
|
+
//# sourceMappingURL=attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../../src/core/actions/dom/attributes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAoB,EACpB,IAAY,EACZ,KAAmB,EACnB,EAAE,CAAC;IACH,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAAA,CAC5E,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IAChC,WAAW;IACX,SAAS;IACT,UAAU;IACV,OAAO;IACP,UAAU;IACV,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,OAAO;IACP,aAAa;IACb,2BAA2B;IAC3B,WAAW;IACX,eAAe;IACf,iBAAiB;IACjB,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,OAAO;IACP,UAAU;IACV,yBAAyB;IACzB,uBAAuB;IACvB,gBAAgB;IAChB,QAAQ;IACR,MAAM;IACN,UAAU;IACV,YAAY;IACZ,MAAM;IACN,aAAa;IACb,UAAU;IACV,UAAU;IACV,UAAU;IACV,QAAQ;IACR,UAAU;IACV,WAAW;IACX,SAAS;IACT,UAAU;IACV,OAAO;CACR,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/dom/css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAa,MAAM,oBAAoB,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,YAAY,wDA0CxB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles removing, toggling and adding tag styles.
|
|
3
|
+
*/
|
|
4
|
+
export const setTagStyles = (fiber,
|
|
5
|
+
/** Should be a CSS-string (hyphens) or a CSS map (camelCase) */
|
|
6
|
+
stylesRaw) => {
|
|
7
|
+
if (typeof stylesRaw !== 'string' &&
|
|
8
|
+
stylesRaw != null &&
|
|
9
|
+
typeof stylesRaw !== 'object') {
|
|
10
|
+
throw new Error(`Unsupported format of styles`);
|
|
11
|
+
}
|
|
12
|
+
const elementStyle = fiber.element.style;
|
|
13
|
+
const newStyles = typeof stylesRaw === 'string' ? strToStyles(stylesRaw) : (stylesRaw ?? {});
|
|
14
|
+
if (Object.keys(newStyles).length > 0) {
|
|
15
|
+
for (const key of Object.keys(fiber.data.styles ?? {})) {
|
|
16
|
+
if (!(key in newStyles)) {
|
|
17
|
+
if (key.includes('-')) {
|
|
18
|
+
elementStyle.removeProperty(key);
|
|
19
|
+
}
|
|
20
|
+
else if (key in elementStyle) {
|
|
21
|
+
// @ts-ignore It's wrongly typed as read-only.
|
|
22
|
+
elementStyle[key] = '';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
for (const [key, value] of Object.entries(newStyles)) {
|
|
27
|
+
if (key.includes('-')) {
|
|
28
|
+
elementStyle.setProperty(key, value);
|
|
29
|
+
}
|
|
30
|
+
else if (key in elementStyle) {
|
|
31
|
+
// @ts-ignore It's wrongly typed as read-only.
|
|
32
|
+
elementStyle[key] = value;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
fiber.element.removeAttribute('style');
|
|
38
|
+
}
|
|
39
|
+
fiber.data.styles = newStyles;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Converts a string like "color: red; font-size: 12px" to
|
|
43
|
+
* { color: 'red', ['font-size']: '12px' }
|
|
44
|
+
*/
|
|
45
|
+
const strToStyles = (css) => {
|
|
46
|
+
cssDummy.style.cssText = css;
|
|
47
|
+
return Object.fromEntries(Array.from(cssDummy.style).map((k) => [
|
|
48
|
+
k,
|
|
49
|
+
cssDummy.style.getPropertyValue(k),
|
|
50
|
+
]));
|
|
51
|
+
};
|
|
52
|
+
const cssDummy = document.createElement('x-css-dummy');
|
|
53
|
+
//# sourceMappingURL=css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../../../src/core/actions/dom/css.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAmB;AACnB,gEAAgE;AAChE,SAAuB,EACjB,EAAE,CAAC;IACT,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,SAAS,IAAI,IAAI;QACjB,OAAO,SAAS,KAAK,QAAQ,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,YAAY,GAAI,KAAK,CAAC,OAAuB,CAAC,KAAK,CAAC;IAC1D,MAAM,SAAS,GACb,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAE7E,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;gBACxB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC;qBAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;oBAC/B,8CAA8C;oBAC9C,YAAY,CAAC,GAAsB,CAAC,GAAG,EAAE,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,8CAA8C;gBAC9C,YAAY,CAAC,GAAsB,CAAC,GAAG,KAAK,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,OAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AAAA,CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAa,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IAC7B,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpC,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;KACnC,CAAC,CACH,CAAC;AAAA,CACH,CAAC;AAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/dom/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErE,eAAO,MAAM,eAAe,oFAwC3B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export const setEventHandler = (fiber, element, name, value) => {
|
|
2
|
+
const { events } = fiber.data;
|
|
3
|
+
if (value == null || value === false) {
|
|
4
|
+
if (events[name]) {
|
|
5
|
+
// Event handler was added before but now it's removed.
|
|
6
|
+
events[name].handler = null;
|
|
7
|
+
}
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof value !== 'function') {
|
|
11
|
+
throw new Error(`Unsupported format of event handler. It has to be "undefined" or a function`);
|
|
12
|
+
}
|
|
13
|
+
// Instead of adding and removing event handlers on every render, we can add a
|
|
14
|
+
// wrapper that calls `events[name]` and update only the internal
|
|
15
|
+
// function when it changes.
|
|
16
|
+
if (!events[name]) {
|
|
17
|
+
const eventName = name.slice(2).toLowerCase(); // onClick -> click.
|
|
18
|
+
events[name] = {
|
|
19
|
+
name: eventName,
|
|
20
|
+
handler: value,
|
|
21
|
+
wrapper: (event) => {
|
|
22
|
+
// Original React doesn't support stopping propagation on `false` return.
|
|
23
|
+
events[name].handler?.(event);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
element.addEventListener(eventName, events[name].wrapper);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// The tag is already listening to this event. Just update the internal ref.
|
|
30
|
+
events[name].handler = value;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/core/actions/dom/events.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAmB,EACnB,OAAgB,EAChB,IAAY,EACZ,KAAmB,EACb,EAAE,CAAC;IACT,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;IAE9B,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,uDAAuD;YACvD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,iEAAiE;IACjE,4BAA4B;IAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,oBAAoB;QACnE,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC;gBACzB,yEAAyE;gBACzE,MAAM,CAAC,IAAI,CAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAAA,CAChC;SACF,CAAC;QACF,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,4EAA4E;QAC5E,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;IAC/B,CAAC;AAAA,CACF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVG is weird. Some of the attributes are in camelCase, and some are in
|
|
3
|
+
* kebab-case. This methods takes into account SVG-based nuances and sets the
|
|
4
|
+
* given attribute in the right way.
|
|
5
|
+
*/
|
|
6
|
+
export declare const setSvgAttribute: (element: SVGElement, name: string, value: string) => void;
|
|
7
|
+
//# sourceMappingURL=svg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../../src/core/actions/dom/svg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,eAAe,4DAW3B,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVG is weird. Some of the attributes are in camelCase, and some are in
|
|
3
|
+
* kebab-case. This methods takes into account SVG-based nuances and sets the
|
|
4
|
+
* given attribute in the right way.
|
|
5
|
+
*/
|
|
6
|
+
export const setSvgAttribute = (element, name, value) => {
|
|
7
|
+
if (name === 'className') {
|
|
8
|
+
name = 'class';
|
|
9
|
+
}
|
|
10
|
+
else if (!SVG_CAMEL_ATTRS.has(name)) {
|
|
11
|
+
name = name.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());
|
|
12
|
+
}
|
|
13
|
+
element.setAttribute(name, value);
|
|
14
|
+
};
|
|
15
|
+
// Most of SVG attributes are in kebab-cases. Here is the list of exclusions.
|
|
16
|
+
const SVG_CAMEL_ATTRS = new Set([
|
|
17
|
+
'attributeName',
|
|
18
|
+
'repeatCount',
|
|
19
|
+
'attributeType',
|
|
20
|
+
'baseFrequency',
|
|
21
|
+
'baseProfile',
|
|
22
|
+
'calcMode',
|
|
23
|
+
'clipPathUnits',
|
|
24
|
+
'diffuseConstant',
|
|
25
|
+
'edgeMode',
|
|
26
|
+
'Experimental',
|
|
27
|
+
'filterUnits',
|
|
28
|
+
'gradientTransform',
|
|
29
|
+
'gradientUnits',
|
|
30
|
+
'kernelMatrix',
|
|
31
|
+
'kernelUnitLength',
|
|
32
|
+
'keyPoints',
|
|
33
|
+
'keySplines',
|
|
34
|
+
'keyTimes',
|
|
35
|
+
'lengthAdjust',
|
|
36
|
+
'limitingConeAngle',
|
|
37
|
+
'markerHeight',
|
|
38
|
+
'markerUnits',
|
|
39
|
+
'markerWidth',
|
|
40
|
+
'maskContentUnits',
|
|
41
|
+
'maskUnits',
|
|
42
|
+
'numOctaves',
|
|
43
|
+
'pathLength',
|
|
44
|
+
'patternContentUnits',
|
|
45
|
+
'patternTransform',
|
|
46
|
+
'patternUnits',
|
|
47
|
+
'pointsAtX',
|
|
48
|
+
'pointsAtY',
|
|
49
|
+
'pointsAtZ',
|
|
50
|
+
'preserveAlpha',
|
|
51
|
+
'preserveAspectRatio',
|
|
52
|
+
'primitiveUnits',
|
|
53
|
+
'refX',
|
|
54
|
+
'refY',
|
|
55
|
+
'repeatDur',
|
|
56
|
+
'requiredExtensions',
|
|
57
|
+
'requiredFeatures',
|
|
58
|
+
'Experimental',
|
|
59
|
+
'specularConstant',
|
|
60
|
+
'specularExponent',
|
|
61
|
+
'spreadMethod',
|
|
62
|
+
'startOffset',
|
|
63
|
+
'stdDeviation',
|
|
64
|
+
'stitchTiles',
|
|
65
|
+
'surfaceScale',
|
|
66
|
+
'systemLanguage',
|
|
67
|
+
'tableValues',
|
|
68
|
+
'targetX',
|
|
69
|
+
'targetY',
|
|
70
|
+
'textLength',
|
|
71
|
+
'viewBox',
|
|
72
|
+
'xChannelSelector',
|
|
73
|
+
'yChannelSelector',
|
|
74
|
+
'zoomAndPan',
|
|
75
|
+
]);
|
|
76
|
+
//# sourceMappingURL=svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../../src/core/actions/dom/svg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAmB,EACnB,IAAY,EACZ,KAAa,EACP,EAAE,CAAC;IACT,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,IAAI,GAAG,OAAO,CAAC;IACjB,CAAC;SAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAAA,CACnC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,eAAe;IACf,aAAa;IACb,eAAe;IACf,eAAe;IACf,aAAa;IACb,UAAU;IACV,eAAe;IACf,iBAAiB;IACjB,UAAU;IACV,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,qBAAqB;IACrB,kBAAkB;IAClB,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,eAAe;IACf,qBAAqB;IACrB,gBAAgB;IAChB,MAAM;IACN,MAAM;IACN,WAAW;IACX,oBAAoB;IACpB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,SAAS;IACT,SAAS;IACT,YAAY;IACZ,SAAS;IACT,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;CACb,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DomNode, FiberNode,
|
|
1
|
+
import type { DomNode, FiberNode, TagFiberNode } from '../../types';
|
|
2
2
|
/**
|
|
3
3
|
* Determines if a prop name represents an event handler by checking if it
|
|
4
4
|
* starts with "on". This follows React's convention where any prop beginning
|
|
@@ -34,7 +34,7 @@ export declare const getFiberDomNodes: (fiber: FiberNode) => DomNode[];
|
|
|
34
34
|
* When a node leaves the DOM tree, we need to update all associated ref
|
|
35
35
|
* objects and ref handlers.
|
|
36
36
|
*/
|
|
37
|
-
export declare const unsetRef:
|
|
37
|
+
export declare const unsetRef: (fiber: TagFiberNode, immediate: boolean) => void;
|
|
38
38
|
/**
|
|
39
39
|
* To help avoid memory leaks, this method removes fiber properties that
|
|
40
40
|
* can hold references to other objects.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/core/actions/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/core/actions/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQ3E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,2BAAmD,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,+BAa5B,CAAC;AA6BF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,8CAiCrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iCAwB5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,mDAqBpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,4BAW1B,CAAC"}
|
|
@@ -2,6 +2,8 @@ import { nullthrows } from '../../utils';
|
|
|
2
2
|
import { isBeginOf, isCompactNone, isCompactSingleChild } from '../compact';
|
|
3
3
|
import { NULL_FIBER } from '../reconciliation/fibers';
|
|
4
4
|
import { buildCommentText } from '../reconciliation/comments';
|
|
5
|
+
import { scheduleEffect } from '../reconciliation/effects';
|
|
6
|
+
import { getAppByFiber } from '../reconciliation/app';
|
|
5
7
|
/**
|
|
6
8
|
* Determines if a prop name represents an event handler by checking if it
|
|
7
9
|
* starts with "on". This follows React's convention where any prop beginning
|
|
@@ -117,9 +119,20 @@ export const getFiberDomNodes = (fiber) => {
|
|
|
117
119
|
* When a node leaves the DOM tree, we need to update all associated ref
|
|
118
120
|
* objects and ref handlers.
|
|
119
121
|
*/
|
|
120
|
-
export const unsetRef = (
|
|
122
|
+
export const unsetRef = (fiber, immediate) => {
|
|
123
|
+
const { ref } = fiber;
|
|
121
124
|
if (typeof ref === 'function') {
|
|
122
|
-
|
|
125
|
+
if (immediate) {
|
|
126
|
+
ref(null); // test
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// It can be a setter (e.g., <div onRef={setContainer}/>). Since we
|
|
130
|
+
// shouldn't allow invalidating components during commit phase we need
|
|
131
|
+
// to schedule an async update.
|
|
132
|
+
scheduleEffect(getAppByFiber(fiber), () => {
|
|
133
|
+
ref(null);
|
|
134
|
+
}, 'refs');
|
|
135
|
+
}
|
|
123
136
|
}
|
|
124
137
|
else {
|
|
125
138
|
ref.current = null;
|
|
@@ -130,6 +143,8 @@ export const unsetRef = (ref) => {
|
|
|
130
143
|
* can hold references to other objects.
|
|
131
144
|
*/
|
|
132
145
|
export const emptyFiberNode = (fiber) => {
|
|
146
|
+
// For debug purposes mark dead nodes with a negative number.
|
|
147
|
+
fiber.id = -fiber.id;
|
|
133
148
|
fiber.data = null;
|
|
134
149
|
fiber.element = null;
|
|
135
150
|
fiber.component = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/actions/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/actions/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { FiberNode } from '../../types';
|
|
2
|
+
import type { RemoveAction } from '../../types/actions';
|
|
2
3
|
/**
|
|
3
4
|
* This action can be called directly (<div/> -> []), or indirectly (<div/> ->
|
|
4
5
|
* false) from the replace action. `replaced` is `true` in the 2nd scenario.
|
|
5
6
|
*/
|
|
6
|
-
export declare function removeAction(fiber: FiberNode): void;
|
|
7
|
+
export declare function removeAction(fiber: FiberNode, { immediate }: RemoveAction): void;
|
|
7
8
|
//# sourceMappingURL=remove.action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.action.d.ts","sourceRoot":"","sources":["../../../src/core/actions/remove.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAEV,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"remove.action.d.ts","sourceRoot":"","sources":["../../../src/core/actions/remove.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,QAkCzE"}
|
|
@@ -5,12 +5,12 @@ import { applyAction } from './applyAction';
|
|
|
5
5
|
* This action can be called directly (<div/> -> []), or indirectly (<div/> ->
|
|
6
6
|
* false) from the replace action. `replaced` is `true` in the 2nd scenario.
|
|
7
7
|
*/
|
|
8
|
-
export function removeAction(fiber) {
|
|
8
|
+
export function removeAction(fiber, { immediate }) {
|
|
9
9
|
for (const child of fiber.children) {
|
|
10
10
|
// Recursively remove all children before removing the parent node. This is
|
|
11
11
|
// critical for components with effects - we must run cleanup effects
|
|
12
12
|
// before removing their parent nodes.
|
|
13
|
-
applyAction({ type: 'Remove', fiber: child });
|
|
13
|
+
applyAction({ type: 'Remove', fiber: child, immediate });
|
|
14
14
|
}
|
|
15
15
|
if (fiber.type === 'component') {
|
|
16
16
|
destroyHooks(fiber);
|
|
@@ -33,7 +33,7 @@ export function removeAction(fiber) {
|
|
|
33
33
|
n.remove();
|
|
34
34
|
}
|
|
35
35
|
if (fiber.ref) {
|
|
36
|
-
unsetRef(fiber
|
|
36
|
+
unsetRef(fiber, !!immediate);
|
|
37
37
|
}
|
|
38
38
|
emptyFiberNode(fiber); // Help with garbage collection.
|
|
39
39
|
}
|
|
@@ -44,9 +44,9 @@ export function removeAction(fiber) {
|
|
|
44
44
|
* create a memory leak. Better to mitigate this potential issue.
|
|
45
45
|
*/
|
|
46
46
|
const unlistenTagEvents = (fiber) => {
|
|
47
|
-
for (const
|
|
47
|
+
for (const record of Object.values(fiber.data.events)) {
|
|
48
48
|
if (record?.wrapper) {
|
|
49
|
-
fiber.element.removeEventListener(name, record.wrapper);
|
|
49
|
+
fiber.element.removeEventListener(record.name, record.wrapper);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.action.js","sourceRoot":"","sources":["../../../src/core/actions/remove.action.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"remove.action.js","sourceRoot":"","sources":["../../../src/core/actions/remove.action.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAgB,EAAE,EAAE,SAAS,EAAgB,EAAE;IAC1E,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,2EAA2E;QAC3E,qEAAqE;QACrE,sCAAsC;QACtC,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,sEAAsE;QACtE,0EAA0E;QAC1E,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,CAAC,CAAC,MAAM,EAAE,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,gCAAgC;AAAjC,CACvB;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAAmB,EAAQ,EAAE,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACnB,KAAK,CAAC,OAAuB,CAAC,mBAAmB,CAChD,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,OAAO,CACf,CAAC;QACJ,CAAC;IACH,CAAC;AAAA,CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,KAAyB,EAAQ,EAAE,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACvC,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;AAAA,CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace.action.d.ts","sourceRoot":"","sources":["../../../src/core/actions/replace.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"replace.action.d.ts","sourceRoot":"","sources":["../../../src/core/actions/replace.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAMhE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,QAuB1E"}
|
|
@@ -53,5 +53,23 @@ const displaceFiber = (before, after) => {
|
|
|
53
53
|
before.tag = after.tag;
|
|
54
54
|
before.props = after.props;
|
|
55
55
|
before.ref = after.ref;
|
|
56
|
+
if (after.type === 'component') {
|
|
57
|
+
for (const h of after.data.hooks) {
|
|
58
|
+
if ('move' in h) {
|
|
59
|
+
h.move(before);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (after.role === 'context') {
|
|
64
|
+
for (const f of after.data.consumers) {
|
|
65
|
+
if (f.id < 0) {
|
|
66
|
+
throw 'what?';
|
|
67
|
+
}
|
|
68
|
+
const hook = f.data.hooks.find((h) => h.type === 'context' && h.ctx === after.data.ctx);
|
|
69
|
+
hook.providerFiber = before;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// For debug purposes mark dead nodes with a negative number.
|
|
73
|
+
after.id = -after.id;
|
|
56
74
|
};
|
|
57
75
|
//# sourceMappingURL=replace.action.js.map
|