defuss 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dom-11AL5tu8.cjs +2121 -0
- package/dist/dom-77kNwui3.mjs +2028 -0
- package/dist/dom-8PVikEgj.cjs +2102 -0
- package/dist/dom-B0seF_6L.mjs +2095 -0
- package/dist/dom-B1I0Ntr-.cjs +2128 -0
- package/dist/dom-B2s8h2Oe.cjs +2102 -0
- package/dist/dom-B3MC1bVG.mjs +2034 -0
- package/dist/dom-B3OUXCES.mjs +2070 -0
- package/dist/dom-BBBIovzv.mjs +2034 -0
- package/dist/dom-BEu4Sfd-.cjs +2117 -0
- package/dist/dom-BEzo1MUJ.cjs +2117 -0
- package/dist/dom-BJERuZjE.mjs +2090 -0
- package/dist/dom-BMlw6puj.mjs +2034 -0
- package/dist/dom-BUDmDmgY.cjs +2102 -0
- package/dist/dom-BawwQ--f.mjs +2049 -0
- package/dist/dom-Bei2KSCq.cjs +2142 -0
- package/dist/dom-BfPMu0dJ.mjs +2057 -0
- package/dist/dom-BxWLR_CU.mjs +2034 -0
- package/dist/dom-C-4x7pHa.cjs +2124 -0
- package/dist/dom-C1NIQBAt.cjs +2117 -0
- package/dist/dom-CCyoKmdi.mjs +2049 -0
- package/dist/dom-CDGc8hoY.mjs +2058 -0
- package/dist/dom-CFT2GRw6.mjs +2034 -0
- package/dist/dom-CNKp2T-z.cjs +2126 -0
- package/dist/dom-CSWaOL3c.mjs +2099 -0
- package/dist/dom-CfWHCMus.cjs +2164 -0
- package/dist/dom-Co1NqlV6.mjs +2059 -0
- package/dist/dom-CxRqR3pd.cjs +2102 -0
- package/dist/dom-D3TRLsDS.cjs +2102 -0
- package/dist/dom-DHKdnUMm.cjs +2118 -0
- package/dist/dom-DKQ6CnRq.mjs +2050 -0
- package/dist/dom-DLIPg3QY.mjs +1977 -0
- package/dist/dom-DLKmVfPz.mjs +2057 -0
- package/dist/dom-DNGWHS7t.cjs +2159 -0
- package/dist/dom-DPbGY8oU.mjs +2073 -0
- package/dist/dom-DTo7fRwx.mjs +2055 -0
- package/dist/dom-Daho4GPR.mjs +2053 -0
- package/dist/dom-Db15rsM1.mjs +2049 -0
- package/dist/dom-DgoG3lqb.cjs +2117 -0
- package/dist/dom-DmGkOplK.cjs +2127 -0
- package/dist/dom-DvHgqwJh.mjs +2046 -0
- package/dist/dom-EqEVp0-C.cjs +2033 -0
- package/dist/dom-NjCYLgPw.cjs +2126 -0
- package/dist/dom-UHntoboN.cjs +2139 -0
- package/dist/dom-Z-gE5GK8.cjs +2168 -0
- package/dist/dom-mlV6havt.mjs +2048 -0
- package/dist/dom-x3xpYktC.cjs +2114 -0
- package/dist/dom-yD0xCNhJ.cjs +2096 -0
- package/dist/index-B2aNqkPk.d.ts +1440 -0
- package/dist/index-B_CgmZnk.d.ts +1433 -0
- package/dist/index-CEtCW1xG.d.ts +1433 -0
- package/dist/index-CfTsJbfE.d.ts +1432 -0
- package/dist/{index-S3MRf--S.d.ts → index-Co0eiBV7.d.ts} +270 -198
- package/dist/index-CtUAjHuo.d.ts +1433 -0
- package/dist/index-CuzRXgFf.d.ts +1439 -0
- package/dist/index-DFuY8uu9.d.ts +1431 -0
- package/dist/index-Dhj90n6u.d.ts +1433 -0
- package/dist/index-DjCdylRj.d.ts +1438 -0
- package/dist/index-DyKry_9r.d.ts +1439 -0
- package/dist/index-FWrGRiCX.d.ts +1431 -0
- package/dist/index-wIzDVlFz.d.ts +1439 -0
- package/dist/index.cjs +397 -3
- package/dist/index.d.cts +27 -151
- package/dist/index.d.ts +27 -151
- package/dist/index.mjs +328 -3
- package/dist/render/client.cjs +97 -2
- package/dist/render/client.d.cts +2 -2
- package/dist/render/client.d.ts +2 -2
- package/dist/render/client.mjs +79 -2
- package/dist/render/index.cjs +21 -2
- package/dist/render/index.d.cts +1 -1
- package/dist/render/index.d.ts +1 -1
- package/dist/render/index.mjs +2 -2
- package/dist/render/server.cjs +94 -2
- package/dist/render/server.d.cts +2 -2
- package/dist/render/server.d.ts +2 -2
- package/dist/render/server.mjs +55 -2
- package/package.json +10 -17
- package/dist/dom-BWzRM0Rn.mjs +0 -2
- package/dist/dom-BWzRM0Rn.mjs.map +0 -1
- package/dist/dom-C5mY2MSs.cjs +0 -2
- package/dist/dom-C5mY2MSs.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/render/client.cjs.map +0 -1
- package/dist/render/client.mjs.map +0 -1
- package/dist/render/index.cjs.map +0 -1
- package/dist/render/index.mjs.map +0 -1
- package/dist/render/server.cjs.map +0 -1
- package/dist/render/server.mjs.map +0 -1
package/dist/render/client.cjs
CHANGED
|
@@ -1,2 +1,97 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dom = require('../dom-EqEVp0-C.cjs');
|
|
4
|
+
require('defuss-runtime');
|
|
5
|
+
|
|
6
|
+
const renderSync = (virtualNode, parentDomElement = document.documentElement) => {
|
|
7
|
+
dom.globalScopeDomApis(window, document);
|
|
8
|
+
return dom.renderIsomorphicSync(
|
|
9
|
+
virtualNode,
|
|
10
|
+
parentDomElement,
|
|
11
|
+
window
|
|
12
|
+
);
|
|
13
|
+
};
|
|
14
|
+
const render = async (virtualNode, parentDomElement = document.documentElement) => {
|
|
15
|
+
dom.globalScopeDomApis(window, document);
|
|
16
|
+
return dom.renderIsomorphicAsync(
|
|
17
|
+
virtualNode,
|
|
18
|
+
parentDomElement,
|
|
19
|
+
window
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
const renderToString = (el) => new XMLSerializer().serializeToString(el);
|
|
23
|
+
const hydrate = (nodes, parentElements, debug) => {
|
|
24
|
+
let elementIndex = 0;
|
|
25
|
+
for (const node of nodes) {
|
|
26
|
+
if (typeof node === "string" || node === null) {
|
|
27
|
+
while (elementIndex < parentElements.length && parentElements[elementIndex].nodeType !== Node.ELEMENT_NODE && parentElements[elementIndex].nodeType !== Node.TEXT_NODE) {
|
|
28
|
+
elementIndex++;
|
|
29
|
+
}
|
|
30
|
+
elementIndex++;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
while (elementIndex < parentElements.length && parentElements[elementIndex].nodeType !== Node.ELEMENT_NODE) {
|
|
34
|
+
elementIndex++;
|
|
35
|
+
}
|
|
36
|
+
if (elementIndex >= parentElements.length && debug) {
|
|
37
|
+
console.warn(
|
|
38
|
+
"[defuss] Hydration warning: Not enough DOM elements to match VNodes."
|
|
39
|
+
);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
const vnode = node;
|
|
43
|
+
const element = parentElements[elementIndex];
|
|
44
|
+
if (vnode.attributes.ref) {
|
|
45
|
+
vnode.attributes.ref.current = element;
|
|
46
|
+
}
|
|
47
|
+
for (const key of Object.keys(vnode.attributes)) {
|
|
48
|
+
if (key === "ref") continue;
|
|
49
|
+
if (key.startsWith("on") && typeof vnode.attributes[key] === "function") {
|
|
50
|
+
let eventName = key.substring(2).toLowerCase();
|
|
51
|
+
let capture = false;
|
|
52
|
+
if (eventName.endsWith("capture")) {
|
|
53
|
+
capture = true;
|
|
54
|
+
eventName = eventName.replace(/capture$/, "");
|
|
55
|
+
}
|
|
56
|
+
element.addEventListener(eventName, vnode.attributes[key], capture);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (vnode?.attributes?.onMount) {
|
|
60
|
+
vnode.attributes.onMount(element);
|
|
61
|
+
}
|
|
62
|
+
if (vnode?.attributes?.onUnmount) {
|
|
63
|
+
dom.observeUnmount(element, vnode.attributes.onUnmount);
|
|
64
|
+
}
|
|
65
|
+
if (vnode?.children && vnode?.children?.length > 0) {
|
|
66
|
+
hydrate(
|
|
67
|
+
vnode.children,
|
|
68
|
+
Array.from(element.childNodes)
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
elementIndex++;
|
|
72
|
+
}
|
|
73
|
+
if (elementIndex < parentElements.length && debug) {
|
|
74
|
+
console.warn(
|
|
75
|
+
"[defuss] Hydration warning: There are more DOM elements than VNodes."
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
exports.Fragment = dom.Fragment;
|
|
81
|
+
exports.createInPlaceErrorMessageVNode = dom.createInPlaceErrorMessageVNode;
|
|
82
|
+
exports.createRef = dom.createRef;
|
|
83
|
+
exports.getRenderer = dom.getRenderer;
|
|
84
|
+
exports.globalScopeDomApis = dom.globalScopeDomApis;
|
|
85
|
+
exports.handleLifecycleEventsForOnMount = dom.handleLifecycleEventsForOnMount;
|
|
86
|
+
exports.isJSX = dom.isJSX;
|
|
87
|
+
exports.isRef = dom.isRef;
|
|
88
|
+
exports.jsx = dom.jsx;
|
|
89
|
+
exports.jsxDEV = dom.jsxDEV;
|
|
90
|
+
exports.jsxs = dom.jsxs;
|
|
91
|
+
exports.observeUnmount = dom.observeUnmount;
|
|
92
|
+
exports.renderIsomorphicAsync = dom.renderIsomorphicAsync;
|
|
93
|
+
exports.renderIsomorphicSync = dom.renderIsomorphicSync;
|
|
94
|
+
exports.hydrate = hydrate;
|
|
95
|
+
exports.render = render;
|
|
96
|
+
exports.renderSync = renderSync;
|
|
97
|
+
exports.renderToString = renderToString;
|
package/dist/render/client.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync,
|
|
2
|
-
export { A as AllHTMLElements, C as CSSProperties,
|
|
1
|
+
import { R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync, h as VNode } from '../index-B2aNqkPk.js';
|
|
2
|
+
export { A as AllHTMLElements, C as CSSProperties, p as Children, D as DomAbstractionImpl, F as FontFaceProperties, I as Fragment, G as Globals, K as KeyFrameProperties, N as NodeType, q as Props, f as Ref, d as RefUpdateFn, e as RefUpdateRenderFn, c as RefUpdateRenderFnInput, r as RenderNodeInput, s as RenderResultNode, S as SyncRenderInput, y as SyncRenderResult, V as VAttributes, g as VNodeAttributes, n as VNodeChild, o as VNodeChildren, j as VNodeKey, m as VNodeRef, l as VNodeRefCallback, k as VNodeRefObject, i as VNodeType, t as createInPlaceErrorMessageVNode, O as createRef, x as getRenderer, E as globalScopeDomApis, w as handleLifecycleEventsForOnMount, H as isJSX, M as isRef, u as jsx, L as jsxDEV, J as jsxs, v as observeUnmount, B as renderIsomorphicAsync, z as renderIsomorphicSync } from '../index-B2aNqkPk.js';
|
|
3
3
|
import * as CSS from 'csstype';
|
|
4
4
|
export { CSS };
|
|
5
5
|
|
package/dist/render/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync,
|
|
2
|
-
export { A as AllHTMLElements, C as CSSProperties,
|
|
1
|
+
import { R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync, h as VNode } from '../index-B2aNqkPk.js';
|
|
2
|
+
export { A as AllHTMLElements, C as CSSProperties, p as Children, D as DomAbstractionImpl, F as FontFaceProperties, I as Fragment, G as Globals, K as KeyFrameProperties, N as NodeType, q as Props, f as Ref, d as RefUpdateFn, e as RefUpdateRenderFn, c as RefUpdateRenderFnInput, r as RenderNodeInput, s as RenderResultNode, S as SyncRenderInput, y as SyncRenderResult, V as VAttributes, g as VNodeAttributes, n as VNodeChild, o as VNodeChildren, j as VNodeKey, m as VNodeRef, l as VNodeRefCallback, k as VNodeRefObject, i as VNodeType, t as createInPlaceErrorMessageVNode, O as createRef, x as getRenderer, E as globalScopeDomApis, w as handleLifecycleEventsForOnMount, H as isJSX, M as isRef, u as jsx, L as jsxDEV, J as jsxs, v as observeUnmount, B as renderIsomorphicAsync, z as renderIsomorphicSync } from '../index-B2aNqkPk.js';
|
|
3
3
|
import * as CSS from 'csstype';
|
|
4
4
|
export { CSS };
|
|
5
5
|
|
package/dist/render/client.mjs
CHANGED
|
@@ -1,2 +1,79 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { b as globalScopeDomApis, r as renderIsomorphicSync, a as renderIsomorphicAsync, o as observeUnmount } from '../dom-DLIPg3QY.mjs';
|
|
2
|
+
export { F as Fragment, c as createInPlaceErrorMessageVNode, k as createRef, g as getRenderer, h as handleLifecycleEventsForOnMount, i as isJSX, f as isRef, j as jsx, e as jsxDEV, d as jsxs } from '../dom-DLIPg3QY.mjs';
|
|
3
|
+
import 'defuss-runtime';
|
|
4
|
+
|
|
5
|
+
const renderSync = (virtualNode, parentDomElement = document.documentElement) => {
|
|
6
|
+
globalScopeDomApis(window, document);
|
|
7
|
+
return renderIsomorphicSync(
|
|
8
|
+
virtualNode,
|
|
9
|
+
parentDomElement,
|
|
10
|
+
window
|
|
11
|
+
);
|
|
12
|
+
};
|
|
13
|
+
const render = async (virtualNode, parentDomElement = document.documentElement) => {
|
|
14
|
+
globalScopeDomApis(window, document);
|
|
15
|
+
return renderIsomorphicAsync(
|
|
16
|
+
virtualNode,
|
|
17
|
+
parentDomElement,
|
|
18
|
+
window
|
|
19
|
+
);
|
|
20
|
+
};
|
|
21
|
+
const renderToString = (el) => new XMLSerializer().serializeToString(el);
|
|
22
|
+
const hydrate = (nodes, parentElements, debug) => {
|
|
23
|
+
let elementIndex = 0;
|
|
24
|
+
for (const node of nodes) {
|
|
25
|
+
if (typeof node === "string" || node === null) {
|
|
26
|
+
while (elementIndex < parentElements.length && parentElements[elementIndex].nodeType !== Node.ELEMENT_NODE && parentElements[elementIndex].nodeType !== Node.TEXT_NODE) {
|
|
27
|
+
elementIndex++;
|
|
28
|
+
}
|
|
29
|
+
elementIndex++;
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
while (elementIndex < parentElements.length && parentElements[elementIndex].nodeType !== Node.ELEMENT_NODE) {
|
|
33
|
+
elementIndex++;
|
|
34
|
+
}
|
|
35
|
+
if (elementIndex >= parentElements.length && debug) {
|
|
36
|
+
console.warn(
|
|
37
|
+
"[defuss] Hydration warning: Not enough DOM elements to match VNodes."
|
|
38
|
+
);
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
const vnode = node;
|
|
42
|
+
const element = parentElements[elementIndex];
|
|
43
|
+
if (vnode.attributes.ref) {
|
|
44
|
+
vnode.attributes.ref.current = element;
|
|
45
|
+
}
|
|
46
|
+
for (const key of Object.keys(vnode.attributes)) {
|
|
47
|
+
if (key === "ref") continue;
|
|
48
|
+
if (key.startsWith("on") && typeof vnode.attributes[key] === "function") {
|
|
49
|
+
let eventName = key.substring(2).toLowerCase();
|
|
50
|
+
let capture = false;
|
|
51
|
+
if (eventName.endsWith("capture")) {
|
|
52
|
+
capture = true;
|
|
53
|
+
eventName = eventName.replace(/capture$/, "");
|
|
54
|
+
}
|
|
55
|
+
element.addEventListener(eventName, vnode.attributes[key], capture);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (vnode?.attributes?.onMount) {
|
|
59
|
+
vnode.attributes.onMount(element);
|
|
60
|
+
}
|
|
61
|
+
if (vnode?.attributes?.onUnmount) {
|
|
62
|
+
observeUnmount(element, vnode.attributes.onUnmount);
|
|
63
|
+
}
|
|
64
|
+
if (vnode?.children && vnode?.children?.length > 0) {
|
|
65
|
+
hydrate(
|
|
66
|
+
vnode.children,
|
|
67
|
+
Array.from(element.childNodes)
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
elementIndex++;
|
|
71
|
+
}
|
|
72
|
+
if (elementIndex < parentElements.length && debug) {
|
|
73
|
+
console.warn(
|
|
74
|
+
"[defuss] Hydration warning: There are more DOM elements than VNodes."
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export { globalScopeDomApis, hydrate, observeUnmount, render, renderIsomorphicAsync, renderIsomorphicSync, renderSync, renderToString };
|
package/dist/render/index.cjs
CHANGED
|
@@ -1,2 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dom = require('../dom-EqEVp0-C.cjs');
|
|
4
|
+
require('defuss-runtime');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.Fragment = dom.Fragment;
|
|
9
|
+
exports.createInPlaceErrorMessageVNode = dom.createInPlaceErrorMessageVNode;
|
|
10
|
+
exports.createRef = dom.createRef;
|
|
11
|
+
exports.getRenderer = dom.getRenderer;
|
|
12
|
+
exports.globalScopeDomApis = dom.globalScopeDomApis;
|
|
13
|
+
exports.handleLifecycleEventsForOnMount = dom.handleLifecycleEventsForOnMount;
|
|
14
|
+
exports.isJSX = dom.isJSX;
|
|
15
|
+
exports.isRef = dom.isRef;
|
|
16
|
+
exports.jsx = dom.jsx;
|
|
17
|
+
exports.jsxDEV = dom.jsxDEV;
|
|
18
|
+
exports.jsxs = dom.jsxs;
|
|
19
|
+
exports.observeUnmount = dom.observeUnmount;
|
|
20
|
+
exports.renderIsomorphicAsync = dom.renderIsomorphicAsync;
|
|
21
|
+
exports.renderIsomorphicSync = dom.renderIsomorphicSync;
|
package/dist/render/index.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AllHTMLElements, C as CSSProperties,
|
|
1
|
+
export { A as AllHTMLElements, C as CSSProperties, p as Children, D as DomAbstractionImpl, F as FontFaceProperties, I as Fragment, G as Globals, K as KeyFrameProperties, N as NodeType, P as ParentElementInput, b as ParentElementInputAsync, q as Props, f as Ref, d as RefUpdateFn, e as RefUpdateRenderFn, c as RefUpdateRenderFnInput, R as RenderInput, r as RenderNodeInput, a as RenderResult, s as RenderResultNode, S as SyncRenderInput, y as SyncRenderResult, V as VAttributes, h as VNode, g as VNodeAttributes, n as VNodeChild, o as VNodeChildren, j as VNodeKey, m as VNodeRef, l as VNodeRefCallback, k as VNodeRefObject, i as VNodeType, t as createInPlaceErrorMessageVNode, O as createRef, x as getRenderer, E as globalScopeDomApis, w as handleLifecycleEventsForOnMount, H as isJSX, M as isRef, u as jsx, L as jsxDEV, J as jsxs, v as observeUnmount, B as renderIsomorphicAsync, z as renderIsomorphicSync } from '../index-B2aNqkPk.js';
|
|
2
2
|
import * as CSS from 'csstype';
|
|
3
3
|
export { CSS };
|
package/dist/render/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AllHTMLElements, C as CSSProperties,
|
|
1
|
+
export { A as AllHTMLElements, C as CSSProperties, p as Children, D as DomAbstractionImpl, F as FontFaceProperties, I as Fragment, G as Globals, K as KeyFrameProperties, N as NodeType, P as ParentElementInput, b as ParentElementInputAsync, q as Props, f as Ref, d as RefUpdateFn, e as RefUpdateRenderFn, c as RefUpdateRenderFnInput, R as RenderInput, r as RenderNodeInput, a as RenderResult, s as RenderResultNode, S as SyncRenderInput, y as SyncRenderResult, V as VAttributes, h as VNode, g as VNodeAttributes, n as VNodeChild, o as VNodeChildren, j as VNodeKey, m as VNodeRef, l as VNodeRefCallback, k as VNodeRefObject, i as VNodeType, t as createInPlaceErrorMessageVNode, O as createRef, x as getRenderer, E as globalScopeDomApis, w as handleLifecycleEventsForOnMount, H as isJSX, M as isRef, u as jsx, L as jsxDEV, J as jsxs, v as observeUnmount, B as renderIsomorphicAsync, z as renderIsomorphicSync } from '../index-B2aNqkPk.js';
|
|
2
2
|
import * as CSS from 'csstype';
|
|
3
3
|
export { CSS };
|
package/dist/render/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export { F as Fragment, c as createInPlaceErrorMessageVNode, k as createRef, g as getRenderer, b as globalScopeDomApis, h as handleLifecycleEventsForOnMount, i as isJSX, f as isRef, j as jsx, e as jsxDEV, d as jsxs, o as observeUnmount, a as renderIsomorphicAsync, r as renderIsomorphicSync } from '../dom-DLIPg3QY.mjs';
|
|
2
|
+
import 'defuss-runtime';
|
package/dist/render/server.cjs
CHANGED
|
@@ -1,2 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var HappyDom = require('happy-dom');
|
|
4
|
+
var dom = require('../dom-EqEVp0-C.cjs');
|
|
5
|
+
var serializeHtml = require('w3c-xmlserializer');
|
|
6
|
+
require('defuss-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var HappyDom__namespace = /*#__PURE__*/_interopNamespaceDefault(HappyDom);
|
|
26
|
+
|
|
27
|
+
const setupDomApis = (options = {}) => {
|
|
28
|
+
const browserGlobals = options.browserGlobals ? options.browserGlobals : getBrowserGlobals();
|
|
29
|
+
const document = getDocument(options.createRoot, browserGlobals);
|
|
30
|
+
dom.globalScopeDomApis(browserGlobals, document);
|
|
31
|
+
return { browserGlobals, document };
|
|
32
|
+
};
|
|
33
|
+
const renderSync = (virtualNode, parentDomElement, options = {}) => {
|
|
34
|
+
const { browserGlobals, document } = setupDomApis(options);
|
|
35
|
+
if (!parentDomElement) {
|
|
36
|
+
parentDomElement = document.documentElement;
|
|
37
|
+
}
|
|
38
|
+
return dom.renderIsomorphicSync(
|
|
39
|
+
virtualNode,
|
|
40
|
+
parentDomElement,
|
|
41
|
+
browserGlobals
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
const render = (virtualNode, parentDomElement, options = {}) => {
|
|
45
|
+
const { browserGlobals, document } = setupDomApis(options);
|
|
46
|
+
if (!parentDomElement) {
|
|
47
|
+
parentDomElement = document.documentElement;
|
|
48
|
+
}
|
|
49
|
+
return dom.renderIsomorphicAsync(
|
|
50
|
+
virtualNode,
|
|
51
|
+
parentDomElement,
|
|
52
|
+
browserGlobals
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
const createRoot = (document) => {
|
|
56
|
+
const htmlElement = document.createElement("html");
|
|
57
|
+
document.appendChild(htmlElement);
|
|
58
|
+
return document.documentElement;
|
|
59
|
+
};
|
|
60
|
+
const getBrowserGlobals = () => {
|
|
61
|
+
return new HappyDom__namespace.Window({
|
|
62
|
+
url: "http://localhost/"
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
const getDocument = (shouldCreateRoot = false, browserGlobals) => {
|
|
66
|
+
const document = (browserGlobals || getBrowserGlobals()).document;
|
|
67
|
+
if (shouldCreateRoot) {
|
|
68
|
+
createRoot(document);
|
|
69
|
+
return document;
|
|
70
|
+
}
|
|
71
|
+
return document;
|
|
72
|
+
};
|
|
73
|
+
const renderToString = (el) => serializeHtml(el).replaceAll(' xmlns="http://www.w3.org/1999/xhtml"', "");
|
|
74
|
+
|
|
75
|
+
exports.Fragment = dom.Fragment;
|
|
76
|
+
exports.createInPlaceErrorMessageVNode = dom.createInPlaceErrorMessageVNode;
|
|
77
|
+
exports.createRef = dom.createRef;
|
|
78
|
+
exports.getRenderer = dom.getRenderer;
|
|
79
|
+
exports.globalScopeDomApis = dom.globalScopeDomApis;
|
|
80
|
+
exports.handleLifecycleEventsForOnMount = dom.handleLifecycleEventsForOnMount;
|
|
81
|
+
exports.isJSX = dom.isJSX;
|
|
82
|
+
exports.isRef = dom.isRef;
|
|
83
|
+
exports.jsx = dom.jsx;
|
|
84
|
+
exports.jsxDEV = dom.jsxDEV;
|
|
85
|
+
exports.jsxs = dom.jsxs;
|
|
86
|
+
exports.observeUnmount = dom.observeUnmount;
|
|
87
|
+
exports.renderIsomorphicAsync = dom.renderIsomorphicAsync;
|
|
88
|
+
exports.renderIsomorphicSync = dom.renderIsomorphicSync;
|
|
89
|
+
exports.createRoot = createRoot;
|
|
90
|
+
exports.getBrowserGlobals = getBrowserGlobals;
|
|
91
|
+
exports.getDocument = getDocument;
|
|
92
|
+
exports.render = render;
|
|
93
|
+
exports.renderSync = renderSync;
|
|
94
|
+
exports.renderToString = renderToString;
|
package/dist/render/server.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { G as Globals, R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync } from '../index-
|
|
2
|
-
export { A as AllHTMLElements, C as CSSProperties,
|
|
1
|
+
import { G as Globals, R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync } from '../index-B2aNqkPk.js';
|
|
2
|
+
export { A as AllHTMLElements, C as CSSProperties, p as Children, D as DomAbstractionImpl, F as FontFaceProperties, I as Fragment, K as KeyFrameProperties, N as NodeType, q as Props, f as Ref, d as RefUpdateFn, e as RefUpdateRenderFn, c as RefUpdateRenderFnInput, r as RenderNodeInput, s as RenderResultNode, S as SyncRenderInput, y as SyncRenderResult, V as VAttributes, h as VNode, g as VNodeAttributes, n as VNodeChild, o as VNodeChildren, j as VNodeKey, m as VNodeRef, l as VNodeRefCallback, k as VNodeRefObject, i as VNodeType, t as createInPlaceErrorMessageVNode, O as createRef, x as getRenderer, E as globalScopeDomApis, w as handleLifecycleEventsForOnMount, H as isJSX, M as isRef, u as jsx, L as jsxDEV, J as jsxs, v as observeUnmount, B as renderIsomorphicAsync, z as renderIsomorphicSync } from '../index-B2aNqkPk.js';
|
|
3
3
|
import * as CSS from 'csstype';
|
|
4
4
|
export { CSS };
|
|
5
5
|
|
package/dist/render/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { G as Globals, R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync } from '../index-
|
|
2
|
-
export { A as AllHTMLElements, C as CSSProperties,
|
|
1
|
+
import { G as Globals, R as RenderInput, P as ParentElementInput, a as RenderResult, b as ParentElementInputAsync } from '../index-B2aNqkPk.js';
|
|
2
|
+
export { A as AllHTMLElements, C as CSSProperties, p as Children, D as DomAbstractionImpl, F as FontFaceProperties, I as Fragment, K as KeyFrameProperties, N as NodeType, q as Props, f as Ref, d as RefUpdateFn, e as RefUpdateRenderFn, c as RefUpdateRenderFnInput, r as RenderNodeInput, s as RenderResultNode, S as SyncRenderInput, y as SyncRenderResult, V as VAttributes, h as VNode, g as VNodeAttributes, n as VNodeChild, o as VNodeChildren, j as VNodeKey, m as VNodeRef, l as VNodeRefCallback, k as VNodeRefObject, i as VNodeType, t as createInPlaceErrorMessageVNode, O as createRef, x as getRenderer, E as globalScopeDomApis, w as handleLifecycleEventsForOnMount, H as isJSX, M as isRef, u as jsx, L as jsxDEV, J as jsxs, v as observeUnmount, B as renderIsomorphicAsync, z as renderIsomorphicSync } from '../index-B2aNqkPk.js';
|
|
3
3
|
import * as CSS from 'csstype';
|
|
4
4
|
export { CSS };
|
|
5
5
|
|
package/dist/render/server.mjs
CHANGED
|
@@ -1,2 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import * as HappyDom from 'happy-dom';
|
|
2
|
+
import { r as renderIsomorphicSync, a as renderIsomorphicAsync, b as globalScopeDomApis } from '../dom-DLIPg3QY.mjs';
|
|
3
|
+
export { F as Fragment, c as createInPlaceErrorMessageVNode, k as createRef, g as getRenderer, h as handleLifecycleEventsForOnMount, i as isJSX, f as isRef, j as jsx, e as jsxDEV, d as jsxs, o as observeUnmount } from '../dom-DLIPg3QY.mjs';
|
|
4
|
+
import serializeHtml from 'w3c-xmlserializer';
|
|
5
|
+
import 'defuss-runtime';
|
|
6
|
+
|
|
7
|
+
const setupDomApis = (options = {}) => {
|
|
8
|
+
const browserGlobals = options.browserGlobals ? options.browserGlobals : getBrowserGlobals();
|
|
9
|
+
const document = getDocument(options.createRoot, browserGlobals);
|
|
10
|
+
globalScopeDomApis(browserGlobals, document);
|
|
11
|
+
return { browserGlobals, document };
|
|
12
|
+
};
|
|
13
|
+
const renderSync = (virtualNode, parentDomElement, options = {}) => {
|
|
14
|
+
const { browserGlobals, document } = setupDomApis(options);
|
|
15
|
+
if (!parentDomElement) {
|
|
16
|
+
parentDomElement = document.documentElement;
|
|
17
|
+
}
|
|
18
|
+
return renderIsomorphicSync(
|
|
19
|
+
virtualNode,
|
|
20
|
+
parentDomElement,
|
|
21
|
+
browserGlobals
|
|
22
|
+
);
|
|
23
|
+
};
|
|
24
|
+
const render = (virtualNode, parentDomElement, options = {}) => {
|
|
25
|
+
const { browserGlobals, document } = setupDomApis(options);
|
|
26
|
+
if (!parentDomElement) {
|
|
27
|
+
parentDomElement = document.documentElement;
|
|
28
|
+
}
|
|
29
|
+
return renderIsomorphicAsync(
|
|
30
|
+
virtualNode,
|
|
31
|
+
parentDomElement,
|
|
32
|
+
browserGlobals
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
const createRoot = (document) => {
|
|
36
|
+
const htmlElement = document.createElement("html");
|
|
37
|
+
document.appendChild(htmlElement);
|
|
38
|
+
return document.documentElement;
|
|
39
|
+
};
|
|
40
|
+
const getBrowserGlobals = () => {
|
|
41
|
+
return new HappyDom.Window({
|
|
42
|
+
url: "http://localhost/"
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
const getDocument = (shouldCreateRoot = false, browserGlobals) => {
|
|
46
|
+
const document = (browserGlobals || getBrowserGlobals()).document;
|
|
47
|
+
if (shouldCreateRoot) {
|
|
48
|
+
createRoot(document);
|
|
49
|
+
return document;
|
|
50
|
+
}
|
|
51
|
+
return document;
|
|
52
|
+
};
|
|
53
|
+
const renderToString = (el) => serializeHtml(el).replaceAll(' xmlns="http://www.w3.org/1999/xhtml"', "");
|
|
54
|
+
|
|
55
|
+
export { createRoot, getBrowserGlobals, getDocument, globalScopeDomApis, render, renderIsomorphicAsync, renderIsomorphicSync, renderSync, renderToString };
|
package/package.json
CHANGED
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "defuss",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"description": "Explicit simplicity for the web.",
|
|
10
|
-
"keywords": [
|
|
11
|
-
"jsx",
|
|
12
|
-
"render",
|
|
13
|
-
"ssr",
|
|
14
|
-
"isomorphic"
|
|
15
|
-
],
|
|
10
|
+
"keywords": ["jsx", "render", "ssr", "isomorphic"],
|
|
16
11
|
"repository": {
|
|
17
12
|
"url": "git+https://github.com/kyr0/defuss.git",
|
|
18
13
|
"type": "git"
|
|
19
14
|
},
|
|
20
15
|
"scripts": {
|
|
21
|
-
"clean": "rm -rf ./
|
|
16
|
+
"clean": "rm -rf ./coverage && rm -rf ./node_modules/.pnpm && rm -rf ./node_modules/.vite",
|
|
22
17
|
"pretest": "pnpm run build",
|
|
23
|
-
"test": "vitest --coverage
|
|
18
|
+
"test:watch": "vitest --coverage",
|
|
19
|
+
"test": "vitest run --coverage",
|
|
24
20
|
"prebuild": "pnpm run clean",
|
|
25
|
-
"build": "pkgroll
|
|
21
|
+
"build": "pkgroll"
|
|
26
22
|
},
|
|
27
23
|
"author": "Aron Homberg <info@aron-homberg.de>",
|
|
28
24
|
"sideEffects": false,
|
|
@@ -81,20 +77,17 @@
|
|
|
81
77
|
"main": "./dist/index.cjs",
|
|
82
78
|
"module": "./dist/index.mjs",
|
|
83
79
|
"types": "./dist/index.d.cts",
|
|
84
|
-
"files": [
|
|
85
|
-
"dist",
|
|
86
|
-
"assets"
|
|
87
|
-
],
|
|
80
|
+
"files": ["dist", "assets"],
|
|
88
81
|
"devDependencies": {
|
|
89
82
|
"@types/node": "^22.10.2",
|
|
90
|
-
"@vitest/coverage-v8": "^
|
|
83
|
+
"@vitest/coverage-v8": "^3.1.3",
|
|
91
84
|
"pkgroll": "^2.6.0",
|
|
92
85
|
"tsx": "^4.19.2",
|
|
93
86
|
"typescript": "^5.7.2",
|
|
94
|
-
"vitest": "^
|
|
87
|
+
"vitest": "^3.1.3"
|
|
95
88
|
},
|
|
96
89
|
"dependencies": {
|
|
97
|
-
"
|
|
90
|
+
"defuss-runtime": "workspace:*",
|
|
98
91
|
"@types/w3c-xmlserializer": "^2.0.4",
|
|
99
92
|
"csstype": "^3.1.3",
|
|
100
93
|
"happy-dom": "^15.11.7",
|
package/dist/dom-BWzRM0Rn.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var V=Object.defineProperty;var o=(r,e)=>V(r,"name",{value:e,configurable:!0});const z=/(.*)\[(\d+)\]/,K=/^\d+$/,S=o(r=>r.split(".").flatMap(e=>{const n=e.match(z);return n?[...S(n[1]),Number(n[2])]:e}),"getAllKeysFromPath"),W=o((r,e,n)=>{e in r||(r[e]=K.test(String(n))?[]:{})},"ensureKey"),R=o((r,e)=>S(e).reduce((t,s)=>t?.[s],r),"getByPath"),k=o((r,e,n)=>{const t=S(e),s=t[0],i=Array.isArray(r)?[...r]:{...r};return t.length===1?(n===void 0?Array.isArray(i)?i.splice(Number(s),1):delete i[s]:i[s]=n,i):(W(i,s,t[1]),i[s]=k(i[s],t.slice(1).join("."),n),i)},"setByPath"),$=o(r=>{let e=r;const n=[],t=o((s,i)=>{n.forEach(l=>l(e,s,i))},"notify");return{get value(){return e},get(s){return s?R(e,s):e},set(s,i){const l=e;if(i===void 0)l!==s&&(e=s,t(l));else{const a=k(e,s,i);l!==a&&(e=a,t(l,s))}},subscribe(s){return n.push(s),()=>{const i=n.indexOf(s);i>=0&&n.splice(i,1)}}}},"createStore"),E=o(r=>r&&typeof r=="object"&&"current"in r,"isRef");function Y(r,e){const n=$(e),t={current:null,store:n,get state(){return n.value},set state(s){n.set(s)},update:o(s=>{n.set(s)},"update"),subscribe:o(s=>n.subscribe(s),"subscribe")};return typeof r=="function"&&t.subscribe(r),t}o(Y,"createRef");const u=o(r=>(r instanceof HTMLElement||console.warn("Expected HTMLElement, but found:",r?.nodeName??r),r),"elementGuard"),x={maxWaitMs:1e3,timeout:5e3,delay:0,verbose:!1,onTimeGuardError:o(()=>{},"onTimeGuardError")};class c{static{o(this,"Call")}name;fn;args;constructor(e,...n){this.name=e.name,this.fn=e,this.args=n}}class Z{static{o(this,"CallChainImpl")}options;callStack;chainStack;elements;prevElements;stoppedWithError;lastResult;isResolved;constructor(e={},n=!1){this.options={...x,...e},this.callStack=[],this.chainStack=[],this.elements=e.initialEl?[e.initialEl]:[],this.prevElements=[],this.stoppedWithError=!1,this.lastResult=null,this.isResolved=n;const t=new Proxy(this,{get(s,i){if(typeof i=="string"&&!Number.isNaN(Number(i)))return s.elements[Number(i)];const l=s[i];return typeof l=="function"?function(...a){return l.apply(t,a)}:l}});return t}resetElements(){this.prevElements=[...this.elements],this.elements=this.options.initialEl?[this.options.initialEl]:[]}getFirstElement(){return this.elements[0]}createSubChain(e=!0){if(e){const n=new y({...this.options,initialEl:this.getFirstElement()},!0);return n.elements=this.elements,n.prevElements=this.prevElements,n.callStack=this.callStack,n.chainStack=this.chainStack,n.stoppedWithError=this.stoppedWithError,n.lastResult=this.lastResult,n}else return new y({...this.options,initialEl:this.getFirstElement()},!0)}__init(e,n){if(!e)throw new Error("dequery: selector/ref/element required");if(typeof e=="string")if(e.indexOf("<")===0){this.elements=_(e);const{text:t,html:s,...i}=n;return typeof this.elements[0]<"u"&&this.elements[0]instanceof Element&&(Object.entries(i).forEach(([l,a])=>{this.elements[0].setAttribute(l,String(a))}),s?this.elements[0].innerHTML=s:t&&(this.elements[0].textContent=t)),this.createSubChain()}else return this.query(e);else{if(E(e))return this.ref(e);if(e.nodeType)return this.elements=[e],this.createSubChain();if(w(e)){const t=C(e,void 0,globalThis);return this.elements=typeof t<"u"?Array.isArray(t)?t:[t]:[],this.createSubChain()}}throw new Error("Unsupported selectorOrEl type")}debug(e){return this.callStack.push(new c(o(function(){return e(this.elements),this.createSubChain(!0)},"debug"))),this}ref(e){return this.callStack.push(new c(o(async function(t){if(await b(t,this.options.maxWaitMs),t.current)this.elements=[u(t.current)];else throw new Error("Ref is null or undefined");return this.createSubChain()},"ref2"),e)),this}query(e){return this.callStack.push(new c(o(async function(t){return await N(t,this.options.maxWaitMs),this.elements=Array.from(document.querySelectorAll(t)),this.createSubChain()},"query"),e)),this}all(){return this.callStack.push(new c(o(function(){return this.elements.map(n=>new y({...this.options,initialEl:n},!0))},"all"))),this}get length(){return this.elements.length}first(){return this.callStack.push(new c(o(function(){return this.elements=[this.elements[0]],this.createSubChain()},"first"))),this}last(){return this.callStack.push(new c(o(function(){const n=this.elements;return this.elements=[n[n.length-1]],this.createSubChain()},"last"))),this}next(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>u(n).nextElementSibling).filter(Boolean),this.createSubChain()},"next"))),this}prev(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>u(n).previousElementSibling).filter(Boolean),this.createSubChain()},"prev"))),this}find(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.flatMap(s=>Array.from(u(s).querySelectorAll(t))),this.createSubChain()},"find"),e)),this}parent(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>n.parentElement).filter(Boolean),this.createSubChain()},"parent"))),this}children(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.flatMap(n=>Array.from(u(n).children)),this.createSubChain(!0)},"children"))),this}closest(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.map(s=>u(s).closest(t)).filter(Boolean),this.createSubChain()},"closest"),e)),this}filter(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.filter(s=>u(s).matches(t)),this.createSubChain(this.elements.length>0)},"filter"),e)),this}attr(e,n){return n!==void 0?(this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).setAttribute(s,i)),null},"setAttr"),e,n)),this):(this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).getAttribute(s)},"getAttr"),e)),this)}prop(e,n){return n!==void 0?(this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l)[s]=i),null},"setProp"),e,n)),this):(this.callStack.push(new c(o(function(s){return u(this.getFirstElement())[s]},"getProp"),e)),this)}css(e,n){return typeof e=="string"&&n===void 0?this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).style.getPropertyValue(s)},"getCss"),e)):this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>{if(typeof s=="string")u(l).style.setProperty(s,i);else for(const a in s)u(l).style.setProperty(a,s[a])}),null},"setCss"),e,n)),this}addClass(e){return this.callStack.push(new c(o(function(t){const s=Array.isArray(t)?t:[t];return this.elements.forEach(i=>u(i).classList.add(...s)),null},"addClass"),e)),this}removeClass(e){return this.callStack.push(new c(o(function(t){const s=Array.isArray(t)?t:[t];return this.elements.forEach(i=>u(i).classList.remove(...s)),null},"removeClass"),e)),this}hasClass(e){return this.callStack.push(new c(o(function(t){return this.elements.every(s=>u(s).classList.contains(t))},"hasClass"),e)),this}toggleClass(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).classList.toggle(t)),null},"toggleClass"),e)),this}animateClass(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>{const a=u(l);a.classList.add(s),setTimeout(()=>a.classList.remove(s),i)}),null},"animateClass"),e,n)),this}empty(){return this.callStack.push(new c(o(function(){return this.elements.forEach(n=>u(n).innerHTML=""),null},"empty"))),this}html(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>P(u(s),t)),null},"html2"),e)),this}jsx(e){return w(e)?(this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>A(u(s),t,globalThis)),null},"jsx"),e)),this):(console.warn("jsx: expected JSX, got",e),this)}text(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).textContent=t),null},"text2"),e)),this}update(e){return this.callStack.push(new c(o(function(t){return typeof t=="string"?/<\/?>[a-z][\s\S]*>/i.test(t)?this.elements.forEach(i=>P(u(i),t)):this.elements.forEach(i=>u(i).textContent=t):this.elements.forEach(s=>A(u(s),t,globalThis)),null},"update"),e)),this}remove(){return this.callStack.push(new c(o(function(){return this.elements.forEach(n=>u(n).remove()),null},"remove"))),this}replaceWith(e){return this.callStack.push(new c(o(async function(t){let s;if(typeof t=="string")/<\/?[a-z][\s\S]*>/i.test(t)?s=_(t)[0]:s=document.createTextNode(t);else if(w(t))s=C(t,void 0,globalThis);else if(E(t))await b(t,this.options.maxWaitMs),s=u(t.current);else if(t instanceof Node)s=t;else if(t instanceof y)s=t.getFirstElement();else return console.warn("replaceWith: unsupported content type",t),null;return this.elements.forEach(i=>{i.parentNode?.replaceChild(s.cloneNode(!0),i)}),null},"replaceWith"),e)),this}append(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{typeof t=="string"?u(s).innerHTML+=t:t instanceof y?t.elements.forEach(i=>{s.appendChild(i.cloneNode(!0))}):s.appendChild(t.cloneNode(!0))}),null},"append"),e)),this}appendTo(e){return this.callStack.push(new c(o(async function(t){let s;if(E(t))await b(t,this.options.maxWaitMs),s=u(t.current);else if(typeof t=="string")await N(t,this.options.maxWaitMs),s=u(document.querySelector(t));else if(t instanceof Node)s=u(t);else if(t instanceof y)s=u(t.getFirstElement());else return console.warn("appendTo: expected selector, ref or node, got",t),null;return this.elements.forEach(i=>{s.appendChild(i.cloneNode(!0))}),null},"appendTo"),e)),this}on(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).addEventListener(s,i)),null},"on"),e,n)),this}off(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).removeEventListener(s,i)),null},"off"),e,n)),this}trigger(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).dispatchEvent(new Event(t,{bubbles:!0,cancelable:!0}))),null},"trigger"),e)),this}val(e){return e!==void 0?this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{s instanceof HTMLInputElement&&(s.value=String(t))}),null},"setVal"),e)):this.callStack.push(new c(o(function(){return u(this.getFirstElement()).value},"getVal"))),this}map(e){return this.callStack.push(new c(o(function(t){return this.elements.map(t)},"map"),e)),this}toArray(){return this.callStack.push(new c(o(function(){return[...this.elements]},"toArray"))),this}data(e,n){return n!==void 0?this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).dataset[s]=i),null},"setData"),e,n)):this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).dataset[s]},"getData"),e)),this}form(e){return e?this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{s instanceof Element&&s.querySelectorAll("input, select, textarea").forEach(l=>{const a=l.name||l.id;t[a]!==void 0&&(l instanceof HTMLInputElement&&l.type==="checkbox"?l.checked=!!t[a]:l.value=String(t[a]))})}),null},"setForm"),e)):this.callStack.push(new c(o(function(){const t={};return this.elements.forEach(s=>{s instanceof Element&&s.querySelectorAll("input, select, textarea").forEach(l=>{const a=l.name||l.id;l instanceof HTMLInputElement&&l.type==="checkbox"?t[a]=l.checked:t[a]=l.value})}),t},"getForm"))),this}then(e,n){this.stoppedWithError||B(this.options.timeout,async()=>{const t=[];for(const s of this.callStack){if(this.stoppedWithError)break;try{t.push(await s.fn.apply(this,s.args)),await q(this.options.delay)}catch{this.stoppedWithError=!0;break}}return this.chainStack.push([...t]),this.lastResult=t[t.length-1],this.callStack=[],this.resetElements(),this.isResolved=!0,this.lastResult},[]).then(e).catch(n)}}const y=new Proxy(Z,{construct(r,e){const n=new r(...e);return new Proxy(n,{get(t,s){return s==="then"&&n.isResolved?Promise.resolve(n.lastResult):(n.isResolved=!1,t[s])}})}});function v(r,e=x){let n=new y({...e,initialEl:void 0}).__init(r,e);return(async()=>n=await n)(),n}o(v,"dequery");const Q=v,ee=v;function L(r){return typeof r=="object"&&r!==null&&"isResolved"in r&&"lastResult"in r}o(L,"isDequery");async function M(r,e,n=1){const t=Date.now();return new Promise((s,i)=>{const l=setInterval(()=>{try{const a=r();a!=null?(clearInterval(l),s(a)):Date.now()-t>=e&&(clearInterval(l),i(new Error(`Timeout after ${e}ms`)))}catch(a){throw clearInterval(l),i(a),a}},n)})}o(M,"waitForWithPolling");async function N(r,e,n){return M(()=>document.querySelector(r),e,n)}o(N,"waitForSelectorWithPolling");async function b(r,e,n){return M(()=>r.current,e,n)}o(b,"waitForRefWithPolling");function _(r,e="text/html"){const n=new DOMParser().parseFromString(r,e);return Array.from(n.body.childNodes)}o(_,"renderHTML");function q(r){return new Promise(e=>setTimeout(e,r))}o(q,"sleep");function B(r,e,n,t){return e(...n)}o(B,"runWithTimeGuard");const j="class",H="xlink",te="xmlns",ne="ref",F={[te]:"http://www.w3.org/2000/xmlns/",[H]:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"},se=o(r=>r&&typeof r=="object"&&!r.attributes&&!r.type&&!r.children,"isJSXComment"),U=o(r=>r.filter(e=>!se(e)),"filterComments"),X=o(r=>({type:"p",attributes:{},children:[`FATAL ERROR: ${r?.message||r}`]}),"createInPlaceErrorMessageVNode"),I=o((r,e,n)=>{e={...e},typeof n<"u"&&(e.key=n);let t=(e?.children?[].concat(e.children):[]).filter(Boolean);if(delete e?.children,t=U([].concat.apply([],t)),r==="fragment")return U(t);if(typeof r=="function"&&r.constructor.name!=="AsyncFunction")try{return r({children:t,...e})}catch(s){return typeof s=="string"?s=`[JsxError] in ${r.name}: ${s}`:s instanceof Error&&(s.message=`[JsxError] in ${r.name}: ${s.message}`),X(s)}return{type:r,attributes:e,children:t}},"jsx"),J=o((r,e)=>{if(!r||typeof e!="function")throw new Error("Invalid arguments. Ensure domNode and onUnmount are valid.");const n=r.parentNode;if(!n)throw new Error("The provided domNode does not have a parentNode.");const t=new MutationObserver(s=>{for(const i of s)if(i.removedNodes.length>0){for(const l of i.removedNodes)if(l===r){e(),t.disconnect();return}}});t.observe(n,{childList:!0})},"observeUnmount"),m=o(r=>{typeof r?.$onMount=="function"&&(r.$onMount(),r.$onMount=null),typeof r?.$onUnmount=="function"&&J(r,r.$onUnmount)},"handleLifecycleEventsForOnMount"),g=o(r=>{const e={hasElNamespace:o(n=>n.namespaceURI===F.svg,"hasElNamespace"),hasSvgNamespace:o((n,t)=>e.hasElNamespace(n)&&t!=="STYLE"&&t!=="SCRIPT","hasSvgNamespace"),createElementOrElements:o((n,t)=>Array.isArray(n)?e.createChildElements(n,t):typeof n<"u"?e.createElement(n,t):e.createTextNode("",t),"createElementOrElements"),createElement:o((n,t)=>{let s;try{n.constructor.name==="AsyncFunction"?s=r.createElement("div"):typeof n.type=="function"?(s=r.createElement("div"),s.innerText=`FATAL ERROR: ${n.type._error}`):n.type.toUpperCase()==="SVG"||t&&e.hasSvgNamespace(t,n.type.toUpperCase())?s=r.createElementNS(F.svg,n.type):s=r.createElement(n.type),n.attributes&&(e.setAttributes(n,s),n.attributes.dangerouslySetInnerHTML&&(s.innerHTML=n.attributes.dangerouslySetInnerHTML.__html)),n.children&&e.createChildElements(n.children,s),t&&(t.appendChild(s),m(s))}catch(i){throw console.error("Fatal error! Error happend while rendering the VDOM!",i,n),i}return s},"createElement"),createTextNode:o((n,t)=>{const s=r.createTextNode(n.toString());return t&&t.appendChild(s),s},"createTextNode"),createChildElements:o((n,t)=>{const s=[];for(let i=0;i<n.length;i++){const l=n[i];l===null||typeof l!="object"&&typeof l!="function"?s.push(e.createTextNode((typeof l>"u"||l===null?"":l).toString(),t)):s.push(e.createElement(l,t))}return s},"createChildElements"),setAttribute:o((n,t,s,i)=>{if(typeof t>"u"||n==="dangerouslySetInnerHTML")return;if(n===ne&&typeof t!="function"){t.current=s;return}if(n.startsWith("on")&&typeof t=="function"){let a=n.substring(2).toLowerCase();const f=a.indexOf("capture"),h=f>-1;a==="mount"&&(s.$onMount=t),a==="unmount"&&(s.$onUnmount=t),h&&(a=a.substring(0,f)),s.addEventListener(a,t,h);return}n==="className"&&(n=j),n===j&&Array.isArray(t)&&(t=t.join(" "));const l=n.match(/[A-Z]/)?.index;if(e.hasElNamespace(s)&&l){const a=n.substring(0,l).toLowerCase(),f=n.substring(l,n.length).toLowerCase(),h=F[a]||null;s.setAttributeNS(h,a===H||a==="xmlns"?`${a}:${f}`:n,t)}else if(n==="style"&&typeof t!="string"){const a=Object.keys(t);for(let f=0;f<a.length;f++)s.style[a[f]]=t[a[f]]}else typeof t=="boolean"?s[n]=t:s.setAttribute(n,t)},"setAttribute"),setAttributes:o((n,t)=>{const s=Object.keys(n.attributes);for(let i=0;i<s.length;i++)e.setAttribute(s[i],n.attributes[s[i]],t,n)},"setAttributes")};return e},"getRenderer"),C=o((r,e,n)=>{L(e)&&(e=e.getFirstElement()||e);let t;return typeof r=="string"?t=g(n.window.document).createTextNode(r,e):t=g(n.window.document).createElementOrElements(r,e),t},"renderIsomorphicSync"),re=o(async(r,e,n)=>(e instanceof Promise&&(e=await e),L(e)&&(e=(await e.toArray())[0]),r instanceof Promise&&(r=await r),C(r,e,n)),"renderIsomorphicAsync"),ie=o((r,e)=>{globalThis.__defuss_document=e,globalThis.__defuss_window=r},"globalScopeDomApis"),w=o(r=>r===null||typeof r!="object"?!1:Array.isArray(r)?r.every(w):typeof r.type=="string"||typeof r.type=="function"||typeof r.attributes=="object"&&typeof r.children=="object","isJSX"),oe=o(r=>r.children,"Fragment"),le=I,ae=o((r,e,n,t,s,i)=>{let l;try{l=I(r,e,n)}catch(a){console.error("JSX error:",a,"in",s,"component",i)}return l},"jsxDEV"),G=o((r,e)=>{if(r===e)return!0;if(r.nodeType!==e.nodeType)return!1;if(r.nodeType===Node.ELEMENT_NODE){const n=r,t=e;if(n.tagName!==t.tagName)return!1;const s=n.attributes,i=t.attributes;if(s.length!==i.length)return!1;for(let l=0;l<s.length;l++){const a=s[l],f=t.getAttribute(a.name);if(a.value!==f)return!1}}return!(r.nodeType===Node.TEXT_NODE&&r.textContent!==e.textContent)},"areDomNodesEqual"),O=o((r,e)=>{if(!G(r,e)){r.parentNode?.replaceChild(e.cloneNode(!0),r);return}if(r.nodeType===Node.ELEMENT_NODE){const n=r.childNodes,t=e.childNodes,s=Math.max(n.length,t.length);for(let i=0;i<s;i++){const l=n[i],a=t[i];l&&a?O(l,a):a&&!l?r.appendChild(a.cloneNode(!0)):l&&!a&&r.removeChild(l)}}},"updateNode"),P=o((r,e)=>{const t=new DOMParser().parseFromString(e,"text/html"),s=Array.from(t.body.children);if(s.length===0){console.warn("No root elements found in the new HTML.");return}for(let i=0;i<s.length;i++){const l=s[i],a=r.children[i];a?O(a,l):r.appendChild(l.cloneNode(!0))}for(;r.children.length>s.length;)r.removeChild(r.lastChild)},"updateDom");function D(r){if(r==null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="object"&&"type"in r)return r}o(D,"toValidChild");function ce(r,e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return r.nodeType===Node.TEXT_NODE;if(e&&typeof e=="object"){if(r.nodeType!==Node.ELEMENT_NODE)return!1;const n=r.tagName.toLowerCase(),t=e.type.toLowerCase();return n===t}return!1}o(ce,"areNodeAndChildMatching");function ue(r,e,n){const t=g(n.window.document);if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"){const s=String(e);r.nodeValue!==s&&(r.nodeValue=s);return}if(r.nodeType===Node.ELEMENT_NODE&&e&&typeof e=="object"){const s=r,i=Array.from(s.attributes);for(const l of i){const{name:a}=l;!Object.prototype.hasOwnProperty.call(e.attributes,a)&&a!=="style"&&s.removeAttribute(a)}if(t.setAttributes(e,s),e.attributes?.dangerouslySetInnerHTML){s.innerHTML=e.attributes.dangerouslySetInnerHTML.__html;return}if(e.children)A(s,e.children,n);else for(;s.firstChild;)s.removeChild(s.firstChild)}}o(ue,"patchDomInPlace");function he(r,e){const n=g(e.window.document);if(r==null)return;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return e.window.document.createTextNode(String(r));let t=n.createElementOrElements(r);return t&&!Array.isArray(t)&&(t=[t]),t}o(he,"createDomFromChild");function A(r,e,n){let t=[];if(Array.isArray(e))t=e.map(D).filter(a=>a!==void 0);else if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")t=[e];else if(e){const a=D(e);a!==void 0&&(t=[a])}const s=t.map(a=>he(a,n)),i=Array.from(r.childNodes),l=Math.max(i.length,s.length);for(let a=0;a<l;a++){const f=i[a],h=s[a],T=t[a];if(f&&h!==void 0)if(Array.isArray(h))if(h.length===0)r.removeChild(f);else{const d=h[0];r.replaceChild(d,f),typeof d<"u"&&m(d);for(let p=1;p<h.length;p++)h[p]&&(r.insertBefore(h[p],d.nextSibling),typeof h[p]<"u"&&(console.log("inserBefore!"),m(h[p])))}else h&&(T&&ce(f,T)?ue(f,T,n):(r.replaceChild(h,f),m(h)));else!f&&h!==void 0?Array.isArray(h)?h.forEach(d=>{const p=d&&r.appendChild(d);return p&&m(d),p}):h&&(r.appendChild(h),m(h)):f&&h===void 0&&r.removeChild(f)}}o(A,"updateDomWithVdom");function fe(r,e,n){for(;r.firstChild;)r.removeChild(r.firstChild);const s=g(n.window.document).createElementOrElements(e);if(Array.isArray(s))for(const i of s)i&&r.appendChild(i);else s&&r.appendChild(s)}o(fe,"replaceDomWithVdom");export{Q as $,M as A,N as B,b as C,y as D,_ as E,oe as F,q as G,B as H,re as a,g as b,X as c,le as d,ae as e,E as f,ie as g,m as h,w as i,I as j,Y as k,$ as l,S as m,W as n,J as o,R as p,G as q,C as r,k as s,A as t,P as u,fe as v,x as w,v as x,ee as y,L as z};
|
|
2
|
-
//# sourceMappingURL=dom-BWzRM0Rn.mjs.map
|