valyrian.js 7.2.12 → 8.0.1
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 +6 -6
- package/dist/flux-store/index.d.ts +32 -0
- package/dist/flux-store/index.d.ts.map +1 -0
- package/dist/flux-store/index.js +267 -0
- package/dist/flux-store/index.js.map +7 -0
- package/dist/flux-store/index.min.js +1 -0
- package/dist/flux-store/index.min.js.map +1 -0
- package/dist/flux-store/index.mjs +246 -0
- package/dist/flux-store/index.mjs.map +7 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +35 -51
- package/dist/hooks/index.js.map +3 -3
- package/dist/hooks/index.min.js +1 -0
- package/dist/hooks/index.min.js.map +1 -0
- package/dist/hooks/index.mjs +36 -52
- package/dist/hooks/index.mjs.map +3 -3
- package/dist/index.d.ts +18 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +107 -88
- package/dist/index.js.map +3 -3
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +107 -88
- package/dist/index.mjs.map +3 -3
- package/dist/native-store/index.d.ts +14 -0
- package/dist/native-store/index.d.ts.map +1 -0
- package/dist/native-store/index.js +103 -0
- package/dist/native-store/index.js.map +7 -0
- package/dist/native-store/index.min.js +1 -0
- package/dist/native-store/index.min.js.map +1 -0
- package/dist/native-store/index.mjs +82 -0
- package/dist/native-store/index.mjs.map +7 -0
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +125 -10
- package/dist/node/index.js.map +4 -4
- package/dist/node/index.mjs +125 -10
- package/dist/node/index.mjs.map +4 -4
- package/dist/node/node.sw.js +152 -0
- package/dist/node/utils/icons.d.ts +4 -5
- package/dist/node/utils/icons.d.ts.map +1 -1
- package/dist/node/utils/inline.d.ts +1 -1
- package/dist/node/utils/inline.d.ts.map +1 -1
- package/dist/node/utils/node.sw.js +152 -0
- package/dist/node/utils/session-storage.d.ts +22 -0
- package/dist/node/utils/session-storage.d.ts.map +1 -0
- package/dist/node/utils/sw.d.ts.map +1 -1
- package/dist/node/utils/tree-adapter.d.ts +5 -1
- package/dist/node/utils/tree-adapter.d.ts.map +1 -1
- package/dist/pulse-store/index.d.ts +16 -0
- package/dist/pulse-store/index.d.ts.map +1 -0
- package/dist/pulse-store/index.js +143 -0
- package/dist/pulse-store/index.js.map +7 -0
- package/dist/pulse-store/index.min.js +1 -0
- package/dist/pulse-store/index.min.js.map +1 -0
- package/dist/pulse-store/index.mjs +122 -0
- package/dist/pulse-store/index.mjs.map +7 -0
- package/dist/request/index.d.ts +11 -11
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +63 -84
- package/dist/request/index.js.map +2 -2
- package/dist/request/index.min.js +1 -0
- package/dist/request/index.min.js.map +1 -0
- package/dist/request/index.mjs +63 -84
- package/dist/request/index.mjs.map +2 -2
- package/dist/router/index.d.ts +36 -33
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +247 -96
- package/dist/router/index.js.map +3 -3
- package/dist/router/index.min.js +1 -0
- package/dist/router/index.min.js.map +1 -0
- package/dist/router/index.mjs +247 -96
- package/dist/router/index.mjs.map +3 -3
- package/dist/signals/index.d.ts +6 -0
- package/dist/signals/index.d.ts.map +1 -0
- package/dist/signals/index.js +92 -0
- package/dist/signals/index.js.map +7 -0
- package/dist/signals/index.min.js +1 -0
- package/dist/signals/index.min.js.map +1 -0
- package/dist/signals/index.mjs +71 -0
- package/dist/signals/index.mjs.map +7 -0
- package/dist/suspense/index.d.ts +6 -0
- package/dist/suspense/index.d.ts.map +1 -0
- package/dist/suspense/index.js +67 -0
- package/dist/suspense/index.js.map +7 -0
- package/dist/suspense/index.min.js +1 -0
- package/dist/suspense/index.min.js.map +1 -0
- package/dist/suspense/index.mjs +46 -0
- package/dist/suspense/index.mjs.map +7 -0
- package/dist/sw/index.min.js +1 -0
- package/dist/sw/index.min.js.map +1 -0
- package/dist/translate/index.d.ts +19 -0
- package/dist/translate/index.d.ts.map +1 -0
- package/dist/translate/index.js +150 -0
- package/dist/translate/index.js.map +7 -0
- package/dist/translate/index.min.js +1 -0
- package/dist/translate/index.min.js.map +1 -0
- package/dist/translate/index.mjs +129 -0
- package/dist/translate/index.mjs.map +7 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/deep-freeze.d.ts +3 -0
- package/dist/utils/deep-freeze.d.ts.map +1 -0
- package/dist/utils/getter-setter.d.ts +3 -0
- package/dist/utils/getter-setter.d.ts.map +1 -0
- package/dist/utils/has-changed.d.ts +2 -0
- package/dist/utils/has-changed.d.ts.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +138 -0
- package/dist/utils/index.js.map +7 -0
- package/dist/utils/index.min.js +1 -0
- package/dist/utils/index.min.js.map +1 -0
- package/dist/utils/index.mjs +115 -0
- package/dist/utils/index.mjs.map +7 -0
- package/lib/flux-store/index.ts +312 -0
- package/lib/hooks/index.ts +39 -57
- package/lib/index.ts +135 -118
- package/lib/native-store/index.ts +106 -0
- package/lib/node/index.ts +3 -1
- package/lib/node/utils/icons.ts +4 -4
- package/lib/node/utils/inline.ts +2 -0
- package/lib/node/utils/node.sw.js +152 -0
- package/lib/node/utils/session-storage.ts +117 -0
- package/lib/node/utils/sw.ts +34 -10
- package/lib/node/utils/tree-adapter.ts +19 -1
- package/lib/pulse-store/index.ts +188 -0
- package/lib/request/index.ts +92 -122
- package/lib/router/index.ts +353 -164
- package/lib/signals/index.ts +98 -0
- package/lib/suspense/index.ts +57 -0
- package/lib/translate/index.ts +156 -0
- package/lib/utils/deep-freeze.ts +54 -0
- package/lib/utils/getter-setter.ts +40 -0
- package/lib/utils/has-changed.ts +43 -0
- package/lib/utils/index.ts +3 -0
- package/package.json +40 -57
- package/tsconfig.json +5 -4
- package/dist/dataset/index.d.ts +0 -24
- package/dist/dataset/index.d.ts.map +0 -1
- package/dist/dataset/index.js +0 -178
- package/dist/dataset/index.js.map +0 -7
- package/dist/dataset/index.mjs +0 -157
- package/dist/dataset/index.mjs.map +0 -7
- package/dist/node/node.sw.tpl +0 -133
- package/dist/node/utils/node.sw.tpl +0 -133
- package/dist/proxy-signal/index.d.ts +0 -23
- package/dist/proxy-signal/index.d.ts.map +0 -1
- package/dist/proxy-signal/index.js +0 -138
- package/dist/proxy-signal/index.js.map +0 -7
- package/dist/proxy-signal/index.mjs +0 -117
- package/dist/proxy-signal/index.mjs.map +0 -7
- package/dist/signal/index.d.ts +0 -9
- package/dist/signal/index.d.ts.map +0 -1
- package/dist/signal/index.js +0 -76
- package/dist/signal/index.js.map +0 -7
- package/dist/signal/index.mjs +0 -55
- package/dist/signal/index.mjs.map +0 -7
- package/dist/store/index.d.ts +0 -16
- package/dist/store/index.d.ts.map +0 -1
- package/dist/store/index.js +0 -93
- package/dist/store/index.js.map +0 -7
- package/dist/store/index.mjs +0 -72
- package/dist/store/index.mjs.map +0 -7
- package/lib/dataset/index.ts +0 -193
- package/lib/node/utils/node.sw.tpl +0 -133
- package/lib/proxy-signal/index.ts +0 -187
- package/lib/signal/index.ts +0 -86
- package/lib/store/index.ts +0 -101
package/dist/index.js
CHANGED
|
@@ -23,11 +23,13 @@ __export(lib_exports, {
|
|
|
23
23
|
Vnode: () => Vnode,
|
|
24
24
|
createElement: () => createElement,
|
|
25
25
|
current: () => current,
|
|
26
|
+
debouncedUpdate: () => debouncedUpdate,
|
|
26
27
|
directive: () => directive,
|
|
27
28
|
directives: () => directives,
|
|
28
|
-
|
|
29
|
+
hidrateDomToVnode: () => hidrateDomToVnode,
|
|
29
30
|
isComponent: () => isComponent,
|
|
30
31
|
isNodeJs: () => isNodeJs,
|
|
32
|
+
isPOJOComponent: () => isPOJOComponent,
|
|
31
33
|
isVnode: () => isVnode,
|
|
32
34
|
isVnodeComponent: () => isVnodeComponent,
|
|
33
35
|
mount: () => mount,
|
|
@@ -35,9 +37,9 @@ __export(lib_exports, {
|
|
|
35
37
|
onMount: () => onMount,
|
|
36
38
|
onUnmount: () => onUnmount,
|
|
37
39
|
onUpdate: () => onUpdate,
|
|
38
|
-
patch: () => patch,
|
|
39
40
|
reservedProps: () => reservedProps,
|
|
40
41
|
setAttribute: () => setAttribute,
|
|
42
|
+
setPropNameReserved: () => setPropNameReserved,
|
|
41
43
|
trust: () => trust,
|
|
42
44
|
unmount: () => unmount,
|
|
43
45
|
update: () => update,
|
|
@@ -56,7 +58,8 @@ var Vnode = class {
|
|
|
56
58
|
this.isSVG = isSVG;
|
|
57
59
|
}
|
|
58
60
|
};
|
|
59
|
-
var
|
|
61
|
+
var isPOJOComponent = (component) => Boolean(component && typeof component === "object" && "view" in component);
|
|
62
|
+
var isComponent = (component) => Boolean(typeof component === "function" || isPOJOComponent(component));
|
|
60
63
|
var isVnode = (object) => object instanceof Vnode;
|
|
61
64
|
var isVnodeComponent = (object) => {
|
|
62
65
|
return isVnode(object) && isComponent(object.tag);
|
|
@@ -65,7 +68,7 @@ function v(tagOrComponent, props, ...children) {
|
|
|
65
68
|
return new Vnode(tagOrComponent, props, children);
|
|
66
69
|
}
|
|
67
70
|
v.fragment = (_, ...children) => children;
|
|
68
|
-
function
|
|
71
|
+
function hidrateDomToVnode(dom) {
|
|
69
72
|
if (dom.nodeType === 3) {
|
|
70
73
|
return dom.nodeValue;
|
|
71
74
|
}
|
|
@@ -78,7 +81,7 @@ function domToVnode(dom) {
|
|
|
78
81
|
if (childDom.nodeType === 3) {
|
|
79
82
|
children.push(childDom.nodeValue);
|
|
80
83
|
} else if (childDom.nodeType === 1) {
|
|
81
|
-
const childVnode =
|
|
84
|
+
const childVnode = hidrateDomToVnode(childDom);
|
|
82
85
|
children.push(childVnode);
|
|
83
86
|
}
|
|
84
87
|
}
|
|
@@ -87,13 +90,16 @@ function domToVnode(dom) {
|
|
|
87
90
|
const attr = attributes[i];
|
|
88
91
|
props[attr.nodeName] = attr.nodeValue;
|
|
89
92
|
}
|
|
90
|
-
|
|
93
|
+
const vnode = new Vnode(tag, props, children);
|
|
94
|
+
vnode.dom = dom;
|
|
95
|
+
vnode.isSVG = tag === "svg";
|
|
96
|
+
return vnode;
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
99
|
function trust(htmlString) {
|
|
94
100
|
const div = document.createElement("div");
|
|
95
101
|
div.innerHTML = htmlString.trim();
|
|
96
|
-
return Array.from(div.childNodes).map(
|
|
102
|
+
return Array.from(div.childNodes).map(hidrateDomToVnode);
|
|
97
103
|
}
|
|
98
104
|
var mainComponent = null;
|
|
99
105
|
var mainVnode = null;
|
|
@@ -132,44 +138,41 @@ var callSet = (set) => {
|
|
|
132
138
|
}
|
|
133
139
|
set.clear();
|
|
134
140
|
};
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (bool) {
|
|
141
|
+
var directives = {
|
|
142
|
+
"v-if": (value, vnode) => {
|
|
143
|
+
if (!Boolean(value)) {
|
|
139
144
|
const parentNode = vnode.dom?.parentNode;
|
|
140
145
|
if (parentNode) {
|
|
141
|
-
|
|
142
|
-
parentNode.replaceChild(newdom, vnode.dom);
|
|
146
|
+
parentNode.replaceChild(document.createTextNode(""), vnode.dom);
|
|
143
147
|
}
|
|
144
148
|
return false;
|
|
145
149
|
}
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
var directives = {
|
|
149
|
-
"v-if": handleVIf(true),
|
|
150
|
-
"v-unless": handleVIf(false),
|
|
150
|
+
},
|
|
151
151
|
"v-show": (value, vnode) => {
|
|
152
152
|
const bool = Boolean(value);
|
|
153
153
|
vnode.dom.style.display = bool ? "" : "none";
|
|
154
154
|
},
|
|
155
155
|
"v-html": (value, vnode) => {
|
|
156
|
-
vnode.children =
|
|
156
|
+
vnode.children = trust(value);
|
|
157
157
|
},
|
|
158
158
|
// The "v-model" directive binds the value of an input element to a model property
|
|
159
|
-
"v-model": (
|
|
160
|
-
|
|
159
|
+
"v-model": (model, vnode) => {
|
|
160
|
+
if ("name" in vnode.props === false) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
161
163
|
let value;
|
|
164
|
+
const property = vnode.props.name;
|
|
165
|
+
let event = "oninput";
|
|
162
166
|
let handler = (e) => model[property] = e.target.value;
|
|
163
167
|
if (vnode.tag === "input") {
|
|
164
|
-
event = event || "oninput";
|
|
165
168
|
switch (vnode.props.type) {
|
|
166
169
|
case "checkbox": {
|
|
167
170
|
if (Array.isArray(model[property])) {
|
|
168
171
|
handler = (e) => {
|
|
169
|
-
const
|
|
170
|
-
const idx = model[property].indexOf(
|
|
172
|
+
const val = e.target.value;
|
|
173
|
+
const idx = model[property].indexOf(val);
|
|
171
174
|
if (idx === -1) {
|
|
172
|
-
model[property].push(
|
|
175
|
+
model[property].push(val);
|
|
173
176
|
} else {
|
|
174
177
|
model[property].splice(idx, 1);
|
|
175
178
|
}
|
|
@@ -200,20 +203,20 @@ var directives = {
|
|
|
200
203
|
}
|
|
201
204
|
}
|
|
202
205
|
} else if (vnode.tag === "select") {
|
|
203
|
-
event =
|
|
206
|
+
event = "onclick";
|
|
204
207
|
if (vnode.props.multiple) {
|
|
205
208
|
handler = (e) => {
|
|
206
|
-
const
|
|
209
|
+
const val = e.target.value;
|
|
207
210
|
if (e.ctrlKey) {
|
|
208
|
-
const idx = model[property].indexOf(
|
|
211
|
+
const idx = model[property].indexOf(val);
|
|
209
212
|
if (idx === -1) {
|
|
210
|
-
model[property].push(
|
|
213
|
+
model[property].push(val);
|
|
211
214
|
} else {
|
|
212
215
|
model[property].splice(idx, 1);
|
|
213
216
|
}
|
|
214
217
|
} else {
|
|
215
218
|
model[property].splice(0, model[property].length);
|
|
216
|
-
model[property].push(
|
|
219
|
+
model[property].push(val);
|
|
217
220
|
}
|
|
218
221
|
};
|
|
219
222
|
vnode.children.forEach((child) => {
|
|
@@ -231,7 +234,6 @@ var directives = {
|
|
|
231
234
|
});
|
|
232
235
|
}
|
|
233
236
|
} else if (vnode.tag === "textarea") {
|
|
234
|
-
event = event || "oninput";
|
|
235
237
|
vnode.children = [model[property]];
|
|
236
238
|
}
|
|
237
239
|
const prevHandler = vnode.props[event];
|
|
@@ -307,6 +309,9 @@ function directive(name, directive2) {
|
|
|
307
309
|
directives[directiveName] = directive2;
|
|
308
310
|
reservedProps.add(directiveName);
|
|
309
311
|
}
|
|
312
|
+
function setPropNameReserved(name) {
|
|
313
|
+
reservedProps.add(name);
|
|
314
|
+
}
|
|
310
315
|
var eventListenerNames = /* @__PURE__ */ new Set();
|
|
311
316
|
function eventListener(e) {
|
|
312
317
|
current.event = e;
|
|
@@ -350,90 +355,90 @@ function setAttribute(name, value, newVnode) {
|
|
|
350
355
|
sharedSetAttribute(name, value, newVnode);
|
|
351
356
|
}
|
|
352
357
|
}
|
|
353
|
-
function
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
vnodeDom.removeAttribute(name);
|
|
358
|
+
function updateAttributes(newVnode, oldProps) {
|
|
359
|
+
const vnodeDom = newVnode.dom;
|
|
360
|
+
const vnodeProps = newVnode.props;
|
|
361
|
+
if (oldProps) {
|
|
362
|
+
for (const name in oldProps) {
|
|
363
|
+
if (name in vnodeProps === false && !eventListenerNames.has(name) && !reservedProps.has(name)) {
|
|
364
|
+
if (name in vnodeDom) {
|
|
365
|
+
vnodeDom[name] = null;
|
|
366
|
+
} else {
|
|
367
|
+
vnodeDom.removeAttribute(name);
|
|
368
|
+
}
|
|
365
369
|
}
|
|
366
370
|
}
|
|
367
371
|
}
|
|
368
|
-
}
|
|
369
|
-
function addProperties(vnode, oldProps) {
|
|
370
|
-
const vnodeProps = vnode.props;
|
|
371
372
|
for (const name in vnodeProps) {
|
|
372
373
|
if (directives[name]) {
|
|
373
|
-
if (directives[name](vnodeProps[name],
|
|
374
|
+
if (directives[name](vnodeProps[name], newVnode, oldProps) === false) {
|
|
374
375
|
break;
|
|
375
376
|
}
|
|
376
377
|
continue;
|
|
377
378
|
}
|
|
378
|
-
if (reservedProps.has(name)) {
|
|
379
|
-
|
|
379
|
+
if (!reservedProps.has(name)) {
|
|
380
|
+
sharedSetAttribute(name, vnodeProps[name], newVnode);
|
|
380
381
|
}
|
|
381
|
-
sharedSetAttribute(name, vnodeProps[name], vnode);
|
|
382
382
|
}
|
|
383
383
|
}
|
|
384
|
-
function updateAttributes(newVnode, oldProps) {
|
|
385
|
-
removeAttributes(newVnode, oldProps);
|
|
386
|
-
addProperties(newVnode, oldProps);
|
|
387
|
-
}
|
|
388
384
|
function createElement(tag, isSVG) {
|
|
389
385
|
return isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tag) : document.createElement(tag);
|
|
390
386
|
}
|
|
391
|
-
function flatTree(newVnode
|
|
387
|
+
function flatTree(newVnode) {
|
|
392
388
|
current.vnode = newVnode;
|
|
389
|
+
if ("v-for" in newVnode.props) {
|
|
390
|
+
const children2 = [];
|
|
391
|
+
const set = newVnode.props["v-for"];
|
|
392
|
+
const l = set.length;
|
|
393
|
+
const callback = newVnode.children[0];
|
|
394
|
+
for (let i2 = 0; i2 < l; i2++) {
|
|
395
|
+
const newChild = callback(set[i2], i2);
|
|
396
|
+
if (newChild instanceof Vnode) {
|
|
397
|
+
newChild.props = newChild.props || {};
|
|
398
|
+
newChild.isSVG = newVnode.isSVG || newChild.tag === "svg";
|
|
399
|
+
}
|
|
400
|
+
children2[i2] = newChild;
|
|
401
|
+
}
|
|
402
|
+
return children2;
|
|
403
|
+
}
|
|
393
404
|
let i = 0;
|
|
405
|
+
const originalChildren = newVnode.children;
|
|
406
|
+
let children = originalChildren;
|
|
394
407
|
while (i < children.length) {
|
|
395
408
|
const newChild = children[i];
|
|
396
409
|
if (newChild == null) {
|
|
410
|
+
if (children === originalChildren) {
|
|
411
|
+
children = [...originalChildren];
|
|
412
|
+
}
|
|
397
413
|
children.splice(i, 1);
|
|
398
414
|
continue;
|
|
399
415
|
}
|
|
400
416
|
if (Array.isArray(newChild)) {
|
|
417
|
+
if (children === originalChildren) {
|
|
418
|
+
children = [...originalChildren];
|
|
419
|
+
}
|
|
401
420
|
children.splice(i, 1, ...newChild);
|
|
402
421
|
continue;
|
|
403
422
|
}
|
|
404
423
|
if (newChild instanceof Vnode) {
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
}
|
|
424
|
+
newChild.props = newChild.props || {};
|
|
425
|
+
newChild.isSVG = newVnode.isSVG || newChild.tag === "svg";
|
|
408
426
|
if (typeof newChild.tag !== "string") {
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
427
|
+
if (children === originalChildren) {
|
|
428
|
+
children = [...originalChildren];
|
|
429
|
+
}
|
|
430
|
+
const component = current.component = newChild.tag;
|
|
431
|
+
children[i] = (isPOJOComponent(component) ? component.view : component).bind(component)(
|
|
412
432
|
newChild.props,
|
|
413
433
|
newChild.children
|
|
414
434
|
);
|
|
415
435
|
continue;
|
|
416
|
-
} else {
|
|
417
|
-
newChild.isSVG = newVnode.isSVG || newChild.tag === "svg";
|
|
418
436
|
}
|
|
419
437
|
}
|
|
420
438
|
i++;
|
|
421
439
|
}
|
|
422
440
|
return children;
|
|
423
441
|
}
|
|
424
|
-
function handleVFor(newVnode) {
|
|
425
|
-
if ("v-for" in newVnode.props) {
|
|
426
|
-
const set = newVnode.props["v-for"];
|
|
427
|
-
const children = [];
|
|
428
|
-
const callback = newVnode.children[0];
|
|
429
|
-
children.length = set.length;
|
|
430
|
-
for (let i = 0, l = set.length; i < l; i++) {
|
|
431
|
-
children[i] = callback(set[i], i);
|
|
432
|
-
}
|
|
433
|
-
return children;
|
|
434
|
-
}
|
|
435
|
-
return [...newVnode.children];
|
|
436
|
-
}
|
|
437
442
|
function createNewElement(newChild, newVnode, oldChild) {
|
|
438
443
|
const dom = createElement(newChild.tag, newChild.isSVG);
|
|
439
444
|
if (oldChild) {
|
|
@@ -442,13 +447,13 @@ function createNewElement(newChild, newVnode, oldChild) {
|
|
|
442
447
|
newVnode.dom.appendChild(dom);
|
|
443
448
|
}
|
|
444
449
|
newChild.dom = dom;
|
|
445
|
-
|
|
450
|
+
updateAttributes(newChild, null);
|
|
446
451
|
newChild.dom.props = newChild.props;
|
|
447
452
|
if ("v-text" in newChild.props) {
|
|
448
453
|
newChild.dom.textContent = newChild.props["v-text"];
|
|
449
454
|
return;
|
|
450
455
|
}
|
|
451
|
-
const children = flatTree(newChild
|
|
456
|
+
const children = flatTree(newChild);
|
|
452
457
|
if (children.length === 0) {
|
|
453
458
|
newChild.dom.textContent = "";
|
|
454
459
|
return;
|
|
@@ -506,7 +511,7 @@ function patchKeyed(newVnode, children) {
|
|
|
506
511
|
}
|
|
507
512
|
}
|
|
508
513
|
function patch(newVnode) {
|
|
509
|
-
const children = flatTree(newVnode
|
|
514
|
+
const children = flatTree(newVnode);
|
|
510
515
|
const dom = newVnode.dom;
|
|
511
516
|
if (children.length === 0) {
|
|
512
517
|
if (dom.childNodes.length) {
|
|
@@ -536,13 +541,18 @@ function patch(newVnode) {
|
|
|
536
541
|
return;
|
|
537
542
|
}
|
|
538
543
|
for (let i = 0; i < childrenLength; i++) {
|
|
539
|
-
const oldChild = oldDomChildren[i];
|
|
540
544
|
const newChild = children[i];
|
|
545
|
+
const isText = newChild instanceof Vnode === false;
|
|
546
|
+
const oldChild = oldDomChildren[i];
|
|
541
547
|
if (!oldChild) {
|
|
548
|
+
if (isText) {
|
|
549
|
+
newVnode.dom.appendChild(document.createTextNode(newChild));
|
|
550
|
+
continue;
|
|
551
|
+
}
|
|
542
552
|
createNewElement(newChild, newVnode, null);
|
|
543
553
|
continue;
|
|
544
554
|
}
|
|
545
|
-
if (
|
|
555
|
+
if (isText) {
|
|
546
556
|
if (oldChild.nodeType !== 3) {
|
|
547
557
|
newVnode.dom.replaceChild(document.createTextNode(newChild), oldChild);
|
|
548
558
|
continue;
|
|
@@ -589,15 +599,23 @@ function updateVnode(vnode) {
|
|
|
589
599
|
isMounted = true;
|
|
590
600
|
current.vnode = null;
|
|
591
601
|
current.component = null;
|
|
592
|
-
if (isNodeJs) {
|
|
593
|
-
return vnode.dom.innerHTML;
|
|
594
|
-
}
|
|
595
602
|
}
|
|
596
603
|
function update() {
|
|
597
604
|
if (mainVnode) {
|
|
598
605
|
mainVnode.children = [mainComponent];
|
|
599
|
-
|
|
606
|
+
updateVnode(mainVnode);
|
|
607
|
+
if (isNodeJs) {
|
|
608
|
+
return mainVnode.dom.innerHTML;
|
|
609
|
+
}
|
|
600
610
|
}
|
|
611
|
+
return "";
|
|
612
|
+
}
|
|
613
|
+
var debouncedUpdateTimeout;
|
|
614
|
+
var clearDebouncedUpdateMethod = isNodeJs ? clearTimeout : cancelAnimationFrame;
|
|
615
|
+
var setDebouncedUpdateMethod = isNodeJs ? () => setTimeout(update, 5) : () => requestAnimationFrame(update);
|
|
616
|
+
function debouncedUpdate() {
|
|
617
|
+
clearDebouncedUpdateMethod(debouncedUpdateTimeout);
|
|
618
|
+
debouncedUpdateTimeout = setDebouncedUpdateMethod();
|
|
601
619
|
}
|
|
602
620
|
function unmount() {
|
|
603
621
|
if (mainVnode) {
|
|
@@ -616,16 +634,17 @@ function unmount() {
|
|
|
616
634
|
current.event = null;
|
|
617
635
|
return result;
|
|
618
636
|
}
|
|
637
|
+
return "";
|
|
619
638
|
}
|
|
620
639
|
function mount(dom, component) {
|
|
621
640
|
const container = typeof dom === "string" ? isNodeJs ? createElement(dom, dom === "svg") : document.querySelector(dom) : dom;
|
|
622
641
|
if (isComponent(component)) {
|
|
623
|
-
mainComponent =
|
|
642
|
+
mainComponent = v(component, {}, []);
|
|
624
643
|
} else if (isVnodeComponent(component)) {
|
|
625
644
|
mainComponent = component;
|
|
626
645
|
} else {
|
|
627
|
-
mainComponent =
|
|
646
|
+
mainComponent = v(() => component, {}, []);
|
|
628
647
|
}
|
|
629
|
-
mainVnode =
|
|
648
|
+
mainVnode = hidrateDomToVnode(container);
|
|
630
649
|
return update();
|
|
631
650
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../lib/index.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable sonarjs/cognitive-complexity */\ndeclare global {\n // eslint-disable-next-line vars-on-top, no-var, no-unused-vars\n var document: Document;\n // eslint-disable-next-line no-unused-vars\n namespace JSX {\n // eslint-disable-next-line no-unused-vars, no-use-before-define\n interface IntrinsicElements extends DefaultRecord {}\n }\n}\n\ninterface DefaultRecord extends Record<string | number | symbol, any> {}\n\nexport interface VnodeProperties extends DefaultRecord {\n key?: string | number;\n}\n\nexport interface DomElement extends Element, DefaultRecord {}\n\nexport interface Component extends DefaultRecord {\n // eslint-disable-next-line no-unused-vars, no-use-before-define\n (props: VnodeProperties, children: any[]): Vnode | any;\n}\n\nexport interface POJOComponent extends DefaultRecord {\n view: Component;\n}\n\nexport type ValyrianComponent = Component | POJOComponent;\n\n// eslint-disable-next-line no-use-before-define\nexport interface VnodeComponentInterface extends Vnode {\n tag: ValyrianComponent;\n}\n\n// eslint-disable-next-line no-use-before-define\nexport interface Children extends Array<Vnode | VnodeComponentInterface | ValyrianComponent | any> {}\n\nexport interface Directive {\n // eslint-disable-next-line no-unused-vars, no-use-before-define\n (value: any, vnode: VnodeWithDom, oldProps: VnodeProperties | null): void | boolean;\n}\n\nexport const isNodeJs = Boolean(typeof process !== \"undefined\" && process.versions && process.versions.node);\n\nexport class Vnode {\n constructor(\n // eslint-disable-next-line no-unused-vars\n public tag: string | Component | POJOComponent,\n // eslint-disable-next-line no-unused-vars\n public props: null | VnodeProperties,\n // eslint-disable-next-line no-unused-vars\n public children: Children,\n // eslint-disable-next-line no-unused-vars\n public dom?: DomElement,\n // eslint-disable-next-line no-unused-vars\n public isSVG?: boolean\n ) {}\n}\n\nexport interface VnodeWithDom extends Vnode {\n tag: string;\n dom: DomElement;\n props: VnodeProperties;\n}\n\nexport const isComponent = (component: unknown): component is Component =>\n Boolean(typeof component === \"function\" || (component && typeof component === \"object\" && \"view\" in component));\nexport const isVnode = (object?: unknown): object is Vnode => object instanceof Vnode;\n\nexport const isVnodeComponent = (object?: unknown): object is VnodeComponentInterface => {\n return isVnode(object) && isComponent(object.tag);\n};\n\nexport function v(tagOrComponent: string | Component, props: VnodeProperties, ...children: Children) {\n return new Vnode(tagOrComponent, props, children);\n}\n\nv.fragment = (_: VnodeProperties, ...children: Children) => children;\n\nexport function domToVnode(dom: any): VnodeWithDom | void {\n if (dom.nodeType === 3) {\n return dom.nodeValue;\n }\n\n if (dom.nodeType === 1) {\n const tag = dom.nodeName.toLowerCase();\n const props = {} as VnodeProperties;\n const children = [] as Children;\n\n for (let i = 0, l = dom.childNodes.length; i < l; i++) {\n const childDom = dom.childNodes[i];\n if (childDom.nodeType === 3) {\n children.push(childDom.nodeValue);\n } else if (childDom.nodeType === 1) {\n const childVnode = domToVnode(childDom);\n children.push(childVnode);\n }\n }\n\n const attributes = dom.attributes;\n for (let i = 0, l = attributes.length; i < l; i++) {\n const attr = attributes[i];\n props[attr.nodeName] = attr.nodeValue;\n }\n\n return new Vnode(tag, props, children, dom, tag === \"svg\") as VnodeWithDom;\n }\n}\n\nexport function trust(htmlString: string) {\n const div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n return Array.from(div.childNodes).map(domToVnode);\n}\n\nlet mainComponent: VnodeComponentInterface | null = null;\nlet mainVnode: VnodeWithDom | null = null;\nlet isMounted = false;\n\nexport const current = {\n vnode: null as Vnode | null,\n component: null as ValyrianComponent | null,\n event: null as Event | null\n};\n\nexport const reservedProps = new Set<string>([\n \"key\",\n \"state\",\n \"v-keep\",\n \"v-text\",\n \"v-if\",\n \"v-for\",\n \"v-show\",\n \"v-class\",\n \"v-html\",\n \"v-model\",\n \"v-create\",\n \"v-update\",\n \"v-cleanup\"\n]);\n\nconst onCleanupSet = new Set<Function>();\nconst onMountSet = new Set<Function>();\nconst onUpdateSet = new Set<Function>();\nconst onUnmountSet = new Set<Function>();\nexport const onMount = (callback: Function) => !isMounted && onMountSet.add(callback);\nexport const onUpdate = (callback: Function) => onUpdateSet.add(callback);\nexport const onCleanup = (callback: Function) => onCleanupSet.add(callback);\nexport const onUnmount = (callback: Function) => !isMounted && onUnmountSet.add(callback);\nconst callSet = (set: Set<Function>) => {\n for (const callback of set) {\n callback();\n }\n set.clear();\n};\n\nconst handleVIf = (shouldRender: boolean): Directive => {\n return (value, vnode) => {\n const bool = shouldRender !== Boolean(value);\n if (bool) {\n const parentNode = vnode.dom?.parentNode;\n if (parentNode) {\n const newdom = document.createTextNode(\"\");\n parentNode.replaceChild(newdom, vnode.dom);\n }\n\n return false;\n }\n };\n};\n\nexport const directives: Record<string, Directive> = {\n \"v-if\": handleVIf(true),\n \"v-unless\": handleVIf(false),\n\n \"v-show\": (value, vnode) => {\n const bool = Boolean(value);\n (\n vnode.dom as unknown as {\n style: { display: string };\n }\n ).style.display = bool ? \"\" : \"none\";\n },\n\n \"v-html\": (value, vnode) => {\n vnode.children = [trust(value as string)];\n },\n\n // The \"v-model\" directive binds the value of an input element to a model property\n \"v-model\": (val, vnode) => {\n // eslint-disable-next-line prefer-const\n let [model, property, event]: any[] = val as any[];\n let value;\n // This function updates the model property when the input element's value changes\n let handler = (e: Event) => (model[property] = (e.target as DomElement & Record<string, any>).value);\n if (vnode.tag === \"input\") {\n // If the element is an input, use the \"input\" event by default\n event = event || \"oninput\";\n // Depending on the type of input element, use a different handler function\n switch (vnode.props.type) {\n case \"checkbox\": {\n if (Array.isArray(model[property])) {\n // If the model property is an array, add or remove the value from the array when the checkbox is checked or unchecked\n handler = (e: Event) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n };\n // If the value is in the array, set the checkbox to be checked\n value = model[property].indexOf(vnode.dom.value) !== -1;\n } else if (\"value\" in vnode.props) {\n // If the input element has a \"value\" attribute, use it to determine the checked state\n handler = () => {\n if (model[property] === vnode.props.value) {\n model[property] = null;\n } else {\n model[property] = vnode.props.value;\n }\n };\n value = model[property] === vnode.props.value;\n } else {\n // If there is no \"value\" attribute, use a boolean value for the model property\n handler = () => (model[property] = !model[property]);\n value = model[property];\n }\n // Set the \"checked\" attribute on the input element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", value, vnode);\n break;\n }\n case \"radio\": {\n // If the element is a radio button, set the \"checked\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", model[property] === vnode.dom.value, vnode);\n break;\n }\n default: {\n // For all other input types, set the \"value\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"value\", model[property], vnode);\n }\n }\n } else if (vnode.tag === \"select\") {\n // If the element is a select element, use the \"click\" event by default\n event = event || \"onclick\";\n if (vnode.props.multiple) {\n // If the select element allows multiple selections, update the model property with an array of selected values\n handler = (e: Event & Record<string, any>) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n if (e.ctrlKey) {\n // If the Ctrl key is pressed, add or remove the value from the array\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n } else {\n // If the Ctrl key is not pressed, set the model property to an array with the selected value\n model[property].splice(0, model[property].length);\n model[property].push(val);\n }\n };\n // Set the \"selected\" attribute on the options based on whether they are in the model property array\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = model[property].indexOf(value) !== -1;\n }\n });\n } else {\n // If the select element does not allow multiple selections, set the \"selected\" attribute on the options based on the value of the model property\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = value === model[property];\n }\n });\n }\n } else if (vnode.tag === \"textarea\") {\n // If the element is a textarea, use the \"input\" event by default\n event = event || \"oninput\";\n // Set the textarea's content to the value of the model property\n vnode.children = [model[property]];\n }\n\n // We assume that the prev handler if any will not be changed by the user across patchs\n const prevHandler = vnode.props[event];\n\n // Set the event handler on the element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\n event,\n (e: Event) => {\n handler(e);\n\n // If the previous handler is defined, call it after the model has been updated\n if (prevHandler) {\n prevHandler(e);\n }\n },\n vnode\n );\n },\n\n \"v-create\": (callback, vnode, oldProps) => {\n if (!oldProps) {\n const cleanup = callback(vnode);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-update\": (callback, vnode, oldProps) => {\n if (oldProps) {\n const cleanup = callback(vnode, oldProps);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-cleanup\": (callback, vnode) => {\n onCleanup(() => callback(vnode));\n },\n\n \"v-class\": (value, vnode) => {\n if (typeof value === \"string\") {\n vnode.dom.className = value;\n } else if (Array.isArray(value)) {\n vnode.dom.className = value.join(\" \");\n } else if (typeof value === \"object\") {\n const classList = vnode.dom.classList;\n for (const name in value) {\n const val = typeof value[name] === \"function\" ? (value[name] as Function)() : value[name];\n classList.toggle(name, val);\n }\n }\n },\n\n // Frequent used properties\n class(value, vnode) {\n if (vnode.dom.className !== value) {\n vnode.dom.className = value;\n }\n },\n\n className(value, vnode) {\n directives.class(value, vnode, null);\n },\n\n id: (value, vnode) => {\n vnode.dom.id = value;\n },\n\n style: (value, vnode) => {\n if (typeof value === \"string\") {\n vnode.dom.style = value;\n } else if (typeof value === \"object\") {\n vnode.dom.style = \"\";\n const domStyle = vnode.dom.style;\n for (const name in value) {\n domStyle[name] = value[name];\n }\n }\n }\n};\n\nexport function directive(name: string, directive: Directive) {\n const directiveName = `v-${name}`;\n directives[directiveName] = directive;\n reservedProps.add(directiveName);\n}\n\nconst eventListenerNames = new Set<string>();\n\nfunction eventListener(e: Event) {\n current.event = e;\n let dom = e.target as DomElement;\n const name = `on${e.type}`;\n\n while (dom) {\n const oldProps = dom.props;\n if (oldProps && oldProps[name]) {\n oldProps[name](e, dom);\n\n if (!e.defaultPrevented) {\n // eslint-disable-next-line no-use-before-define\n update();\n }\n return;\n }\n dom = dom.parentNode as DomElement;\n }\n\n current.event = null;\n}\n\nfunction sharedSetAttribute(name: string, value: any, newVnode: VnodeWithDom): void | boolean {\n const newVnodeDom = newVnode.dom;\n if (typeof value === \"function\") {\n if (!eventListenerNames.has(name)) {\n (mainVnode as VnodeWithDom).dom.addEventListener(name.slice(2), eventListener);\n eventListenerNames.add(name);\n }\n return;\n }\n\n if (name in newVnodeDom) {\n newVnodeDom[name] = value;\n return;\n }\n\n if (value === false) {\n newVnodeDom.removeAttribute(name);\n } else {\n newVnodeDom.setAttribute(name, value);\n }\n}\n\nexport function setAttribute(name: string, value: any, newVnode: VnodeWithDom): void {\n if (!reservedProps.has(name)) {\n newVnode.props[name] = value;\n sharedSetAttribute(name, value, newVnode);\n }\n}\n\nfunction removeAttributes(vnode: VnodeWithDom, oldProps: VnodeProperties | null): void {\n if (!oldProps) {\n return;\n }\n\n const vnodeDom = vnode.dom;\n const vnodeProps = vnode.props;\n\n for (const name in oldProps) {\n if (name in vnodeProps === false && !eventListenerNames.has(name) && !reservedProps.has(name)) {\n if (name in vnodeDom) {\n vnodeDom[name] = null;\n } else {\n vnodeDom.removeAttribute(name);\n }\n }\n }\n}\n\nfunction addProperties(vnode: VnodeWithDom, oldProps: VnodeProperties | null) {\n const vnodeProps = vnode.props;\n for (const name in vnodeProps) {\n if (directives[name]) {\n if (directives[name](vnodeProps[name], vnode, oldProps) === false) {\n break;\n }\n continue;\n }\n\n if (reservedProps.has(name)) {\n continue;\n }\n\n sharedSetAttribute(name, vnodeProps[name], vnode);\n }\n}\n\nexport function updateAttributes(newVnode: VnodeWithDom, oldProps: VnodeProperties | null): void {\n removeAttributes(newVnode, oldProps);\n addProperties(newVnode, oldProps);\n}\n\nexport function createElement(tag: string, isSVG: boolean): DomElement {\n return isSVG\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", tag)\n : (document.createElement(tag) as DomElement);\n}\n\nfunction flatTree(newVnode: VnodeWithDom, children: Children) {\n current.vnode = newVnode;\n let i = 0;\n\n while (i < children.length) {\n const newChild = children[i];\n\n if (newChild == null) {\n children.splice(i, 1);\n continue;\n }\n\n if (Array.isArray(newChild)) {\n children.splice(i, 1, ...newChild);\n continue;\n }\n\n if (newChild instanceof Vnode) {\n if (newChild.props === null) {\n newChild.props = {};\n }\n\n if (typeof newChild.tag !== \"string\") {\n const component = newChild.tag;\n\n current.component = newChild.tag;\n children[i] = (\"view\" in component ? component.view : component).bind(component)(\n newChild.props,\n newChild.children\n );\n continue;\n } else {\n newChild.isSVG = newVnode.isSVG || newChild.tag === \"svg\";\n }\n }\n\n i++;\n }\n\n return children;\n}\n\nfunction handleVFor(newVnode: VnodeWithDom) {\n if (\"v-for\" in newVnode.props) {\n const set = newVnode.props[\"v-for\"];\n const children = [];\n const callback = newVnode.children[0];\n children.length = set.length;\n\n for (let i = 0, l = set.length; i < l; i++) {\n children[i] = callback(set[i], i);\n }\n\n return children;\n }\n return [...newVnode.children];\n}\n\nfunction createNewElement(newChild: VnodeWithDom, newVnode: VnodeWithDom, oldChild: DomElement | null) {\n const dom = createElement(newChild.tag, newChild.isSVG as boolean);\n if (oldChild) {\n newVnode.dom.replaceChild(dom, oldChild);\n } else {\n newVnode.dom.appendChild(dom);\n }\n newChild.dom = dom;\n addProperties(newChild, null);\n newChild.dom.props = newChild.props;\n if (\"v-text\" in newChild.props) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n return;\n }\n\n const children = flatTree(newChild, handleVFor(newChild));\n if (children.length === 0) {\n newChild.dom.textContent = \"\";\n return;\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n if (children[i] instanceof Vnode === false) {\n newChild.dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newChild, null);\n }\n}\n\nfunction patchKeyed(newVnode: VnodeWithDom, children: Children) {\n const oldTree = [...Array.from(newVnode.dom.childNodes)] as unknown as DomElement[];\n const childNodes = newVnode.dom.childNodes;\n const oldKeyedList: Record<string, number> = {};\n const newKeyedList: Record<string, number> = {};\n\n for (let i = 0, l = oldTree.length; i < l; i++) {\n const oldProps = oldTree[i].props;\n if (oldProps) {\n oldKeyedList[oldProps.key as string] = i;\n }\n\n if (i < children.length && children[i] instanceof Vnode) {\n newKeyedList[children[i].props.key as string] = i;\n }\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n const newChild = children[i];\n const oldChild = oldTree[oldKeyedList[newChild.props.key as string]];\n\n if (!oldChild) {\n createNewElement(newChild, newVnode, childNodes[i] as DomElement | null);\n continue;\n }\n\n newChild.dom = oldChild;\n const currentChild = childNodes[i];\n if (!currentChild) {\n newVnode.dom.appendChild(oldChild);\n } else if (currentChild !== oldChild) {\n newVnode.dom.replaceChild(oldChild, currentChild);\n }\n\n if (\"v-keep\" in newChild.props === false || oldChild.props[\"v-keep\"] !== newChild.props[\"v-keep\"]) {\n updateAttributes(newChild as VnodeWithDom, oldChild.props);\n oldChild.props = newChild.props;\n\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (oldChild.textContent != newChild.props[\"v-text\"]) {\n oldChild.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n // eslint-disable-next-line no-use-before-define\n patch(newChild as VnodeWithDom);\n }\n }\n\n for (let i = children.length, l = childNodes.length; i < l; i++) {\n childNodes[i]?.remove();\n }\n}\n\n// eslint-disable-next-line complexity\nexport function patch(newVnode: VnodeWithDom): void {\n const children = flatTree(newVnode, handleVFor(newVnode));\n\n const dom = newVnode.dom;\n\n if (children.length === 0) {\n if (dom.childNodes.length) {\n dom.textContent = \"\";\n }\n return;\n }\n\n const oldDomChildren = dom.childNodes as unknown as DomElement[];\n const oldChildrenLength = oldDomChildren.length;\n if (oldChildrenLength > 0) {\n const firstOldProps = oldDomChildren[0].props;\n const firstVnode = children[0] as VnodeWithDom;\n if (firstOldProps && firstVnode instanceof Vnode && \"key\" in firstVnode.props && \"key\" in firstOldProps) {\n patchKeyed(newVnode, children);\n return;\n }\n }\n\n const childrenLength = children.length;\n if (oldChildrenLength === 0) {\n for (let i = 0; i < childrenLength; i++) {\n if (children[i] instanceof Vnode === false) {\n dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newVnode, null);\n }\n return;\n }\n\n for (let i = 0; i < childrenLength; i++) {\n const oldChild = oldDomChildren[i];\n const newChild = children[i];\n\n if (!oldChild) {\n createNewElement(newChild, newVnode, null);\n continue;\n }\n\n if (newChild instanceof Vnode === false) {\n if (oldChild.nodeType !== 3) {\n newVnode.dom.replaceChild(document.createTextNode(newChild), oldChild);\n continue;\n }\n\n // eslint-disable-next-line eqeqeq\n if (oldChild.nodeValue != newChild) {\n oldChild.nodeValue = newChild;\n }\n continue;\n }\n\n if (\"v-keep\" in newChild.props) {\n if (oldChild.props && oldChild.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n continue;\n }\n\n const nextOldChild = oldDomChildren[i + 1];\n if (nextOldChild && nextOldChild.props && nextOldChild.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n oldChild.remove();\n continue;\n }\n }\n\n if (newChild.tag !== oldChild.nodeName.toLowerCase()) {\n createNewElement(newChild, newVnode, oldChild);\n continue;\n }\n\n newChild.dom = oldChild;\n updateAttributes(newChild as VnodeWithDom, oldChild.props || null);\n oldChild.props = newChild.props;\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (newChild.dom.textContent != newChild.props[\"v-text\"]) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n patch(newChild);\n }\n\n for (let i = childrenLength, l = oldDomChildren.length; i < l; i++) {\n oldDomChildren[i]?.remove();\n }\n}\n\nexport function updateVnode(vnode: VnodeWithDom): string | void {\n callSet(onCleanupSet);\n vnode.props = vnode.props || {};\n patch(vnode);\n callSet(isMounted ? onUpdateSet : onMountSet);\n isMounted = true;\n current.vnode = null;\n current.component = null;\n if (isNodeJs) {\n return vnode.dom.innerHTML;\n }\n}\n\nexport function update(): void | string {\n if (mainVnode) {\n mainVnode.children = [mainComponent];\n return updateVnode(mainVnode);\n }\n}\n\nexport function unmount() {\n if (mainVnode) {\n mainComponent = v(() => null, {}) as VnodeComponentInterface;\n const result = update();\n callSet(onUnmountSet);\n for (const name in eventListenerNames) {\n mainVnode.dom.removeEventListener(name.slice(2).toLowerCase(), eventListener);\n Reflect.deleteProperty(eventListenerNames, name);\n }\n\n mainComponent = null;\n mainVnode = null;\n isMounted = false;\n current.vnode = null;\n current.component = null;\n current.event = null;\n return result;\n }\n}\n\nexport function mount(dom: string | DomElement, component: any) {\n const container =\n typeof dom === \"string\" ? (isNodeJs ? createElement(dom, dom === \"svg\") : document.querySelector(dom)) : dom;\n\n if (isComponent(component)) {\n mainComponent = new Vnode(component, {}, []) as VnodeComponentInterface;\n } else if (isVnodeComponent(component)) {\n mainComponent = component;\n } else {\n mainComponent = new Vnode(() => component, {}, []) as VnodeComponentInterface;\n }\n\n mainVnode = domToVnode(container) as VnodeWithDom;\n return update();\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["/* eslint-disable */\ndeclare global {\n var document: Document;\n namespace JSX {\n interface IntrinsicElements extends DefaultRecord {}\n type Element = ReturnType<\n typeof v | ((...args: any) => string | number | null | undefined | boolean | Promise<any>)\n >;\n type ComponentReturnType = string | number | null | undefined | boolean | Element | Element[];\n }\n}\n\ninterface DefaultRecord extends Record<string | number | symbol, any> {}\n\nexport interface Properties extends DefaultRecord {\n key?: string | number;\n}\n\nexport interface DomElement extends Element, DefaultRecord {}\n\nexport interface Component extends DefaultRecord {\n (props: Properties, children: any[]): Vnode | any;\n}\n\nexport interface POJOComponent extends DefaultRecord {\n view: Component;\n}\n\nexport type ValyrianComponent = Component | POJOComponent;\n\nexport interface VnodeComponentInterface extends Vnode {\n tag: ValyrianComponent;\n}\n\nexport interface Children extends Array<Vnode | VnodeComponentInterface | ValyrianComponent | any> {}\n\nexport interface Directive {\n (value: any, vnode: VnodeWithDom, oldProps: Properties | null): false | void | any;\n}\n\nexport const isNodeJs = Boolean(typeof process !== \"undefined\" && process.versions && process.versions.node);\n\nexport class Vnode {\n constructor(\n public tag: string | Component | POJOComponent,\n public props: null | Properties,\n public children: Children,\n public dom?: DomElement,\n public isSVG?: boolean\n ) {}\n}\n\nexport interface VnodeWithDom extends Vnode {\n tag: string;\n dom: DomElement;\n props: Properties;\n}\n\nexport const isPOJOComponent = (component: unknown): component is POJOComponent =>\n Boolean(component && typeof component === \"object\" && \"view\" in component);\n\nexport const isComponent = (component: unknown): component is Component =>\n Boolean(typeof component === \"function\" || isPOJOComponent(component));\nexport const isVnode = (object?: unknown): object is Vnode => object instanceof Vnode;\n\nexport const isVnodeComponent = (object?: unknown): object is VnodeComponentInterface => {\n return isVnode(object) && isComponent(object.tag);\n};\n\nexport function v(tagOrComponent: string | ValyrianComponent, props: Properties | null, ...children: Children) {\n return new Vnode(tagOrComponent, props, children);\n}\n\nv.fragment = (_: Properties, ...children: Children) => children;\n\nexport function hidrateDomToVnode(dom: any): VnodeWithDom | void {\n if (dom.nodeType === 3) {\n return dom.nodeValue;\n }\n\n if (dom.nodeType === 1) {\n const tag = dom.nodeName.toLowerCase();\n const props = {} as Properties;\n const children = [] as Children;\n\n for (let i = 0, l = dom.childNodes.length; i < l; i++) {\n const childDom = dom.childNodes[i];\n if (childDom.nodeType === 3) {\n children.push(childDom.nodeValue);\n } else if (childDom.nodeType === 1) {\n const childVnode = hidrateDomToVnode(childDom);\n children.push(childVnode);\n }\n }\n\n const attributes = dom.attributes;\n for (let i = 0, l = attributes.length; i < l; i++) {\n const attr = attributes[i];\n props[attr.nodeName] = attr.nodeValue;\n }\n\n const vnode = new Vnode(tag, props, children);\n vnode.dom = dom;\n vnode.isSVG = tag === \"svg\";\n return vnode as VnodeWithDom;\n }\n}\n\nexport function trust(htmlString: string) {\n const div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n return Array.from(div.childNodes).map(hidrateDomToVnode);\n}\n\nlet mainComponent: VnodeComponentInterface | null = null;\nlet mainVnode: VnodeWithDom | null = null;\nlet isMounted = false;\n\nexport const current = {\n vnode: null as Vnode | null,\n component: null as ValyrianComponent | null,\n event: null as Event | null\n};\n\nexport const reservedProps = new Set<string>([\n \"key\",\n \"state\",\n \"v-keep\",\n \"v-text\",\n \"v-if\",\n \"v-for\",\n \"v-show\",\n \"v-class\",\n \"v-html\",\n \"v-model\",\n \"v-create\",\n \"v-update\",\n \"v-cleanup\"\n]);\n\nconst onCleanupSet = new Set<Function>();\nconst onMountSet = new Set<Function>();\nconst onUpdateSet = new Set<Function>();\nconst onUnmountSet = new Set<Function>();\nexport const onMount = (callback: Function) => !isMounted && onMountSet.add(callback);\nexport const onUpdate = (callback: Function) => onUpdateSet.add(callback);\nexport const onCleanup = (callback: Function) => onCleanupSet.add(callback);\nexport const onUnmount = (callback: Function) => !isMounted && onUnmountSet.add(callback);\nconst callSet = (set: Set<Function>) => {\n for (const callback of set) {\n callback();\n }\n set.clear();\n};\n\nexport const directives: Record<string, Directive> = {\n \"v-if\": (value, vnode) => {\n if (!Boolean(value)) {\n const parentNode = vnode.dom?.parentNode;\n if (parentNode) {\n parentNode.replaceChild(document.createTextNode(\"\"), vnode.dom);\n }\n\n return false;\n }\n },\n\n \"v-show\": (value, vnode) => {\n const bool = Boolean(value);\n (\n vnode.dom as unknown as {\n style: { display: string };\n }\n ).style.display = bool ? \"\" : \"none\";\n },\n\n \"v-html\": (value, vnode) => {\n vnode.children = trust(value as string);\n },\n\n // The \"v-model\" directive binds the value of an input element to a model property\n \"v-model\": (model, vnode) => {\n // eslint-disable-next-line prefer-const\n if (\"name\" in vnode.props === false) {\n return;\n }\n\n let value;\n const property = vnode.props.name;\n let event = \"oninput\";\n\n // This function updates the model property when the input element's value changes\n let handler = (e: Event) => (model[property] = (e.target as DomElement & Record<string, any>).value);\n if (vnode.tag === \"input\") {\n // Depending on the type of input element, use a different handler function\n switch (vnode.props.type) {\n case \"checkbox\": {\n if (Array.isArray(model[property])) {\n // If the model property is an array, add or remove the value from the array when the checkbox is checked or unchecked\n handler = (e: Event) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n };\n // If the value is in the array, set the checkbox to be checked\n value = model[property].indexOf(vnode.dom.value) !== -1;\n } else if (\"value\" in vnode.props) {\n // If the input element has a \"value\" attribute, use it to determine the checked state\n handler = () => {\n if (model[property] === vnode.props.value) {\n model[property] = null;\n } else {\n model[property] = vnode.props.value;\n }\n };\n value = model[property] === vnode.props.value;\n } else {\n // If there is no \"value\" attribute, use a boolean value for the model property\n handler = () => (model[property] = !model[property]);\n value = model[property];\n }\n // Set the \"checked\" attribute on the input element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", value, vnode);\n break;\n }\n case \"radio\": {\n // If the element is a radio button, set the \"checked\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"checked\", model[property] === vnode.dom.value, vnode);\n break;\n }\n default: {\n // For all other input types, set the \"value\" attribute based on the value of the model property\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\"value\", model[property], vnode);\n }\n }\n } else if (vnode.tag === \"select\") {\n // If the element is a select element, use the \"click\" event by default\n event = \"onclick\";\n if (vnode.props.multiple) {\n // If the select element allows multiple selections, update the model property with an array of selected values\n handler = (e: Event & Record<string, any>) => {\n const val = (e.target as DomElement & Record<string, any>).value;\n if (e.ctrlKey) {\n // If the Ctrl key is pressed, add or remove the value from the array\n const idx = model[property].indexOf(val);\n if (idx === -1) {\n model[property].push(val);\n } else {\n model[property].splice(idx, 1);\n }\n } else {\n // If the Ctrl key is not pressed, set the model property to an array with the selected value\n model[property].splice(0, model[property].length);\n model[property].push(val);\n }\n };\n // Set the \"selected\" attribute on the options based on whether they are in the model property array\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = model[property].indexOf(value) !== -1;\n }\n });\n } else {\n // If the select element does not allow multiple selections, set the \"selected\" attribute on the options based on the value of the model property\n vnode.children.forEach((child: VnodeWithDom) => {\n if (child.tag === \"option\") {\n const value = \"value\" in child.props ? child.props.value : child.children.join(\"\").trim();\n child.props.selected = value === model[property];\n }\n });\n }\n } else if (vnode.tag === \"textarea\") {\n // Set the textarea's content to the value of the model property\n vnode.children = [model[property]];\n }\n\n // We assume that the prev handler if any will not be changed by the user across patchs\n const prevHandler = vnode.props[event];\n\n // Set the event handler on the element\n // eslint-disable-next-line no-use-before-define\n sharedSetAttribute(\n event,\n (e: Event) => {\n handler(e);\n\n // If the previous handler is defined, call it after the model has been updated\n if (prevHandler) {\n prevHandler(e);\n }\n },\n vnode\n );\n },\n\n \"v-create\": (callback, vnode, oldProps) => {\n if (!oldProps) {\n const cleanup = callback(vnode);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-update\": (callback, vnode, oldProps) => {\n if (oldProps) {\n const cleanup = callback(vnode, oldProps);\n\n if (typeof cleanup === \"function\") {\n onCleanup(cleanup);\n }\n }\n },\n\n \"v-cleanup\": (callback, vnode) => {\n onCleanup(() => callback(vnode));\n },\n\n \"v-class\": (value, vnode) => {\n if (typeof value === \"string\") {\n vnode.dom.className = value;\n } else if (Array.isArray(value)) {\n vnode.dom.className = value.join(\" \");\n } else if (typeof value === \"object\") {\n const classList = vnode.dom.classList;\n for (const name in value) {\n const val = typeof value[name] === \"function\" ? (value[name] as Function)() : value[name];\n classList.toggle(name, val);\n }\n }\n },\n\n // Frequent used properties\n class(value, vnode) {\n if (vnode.dom.className !== value) {\n vnode.dom.className = value;\n }\n },\n\n className(value, vnode) {\n directives.class(value, vnode, null);\n },\n\n id: (value, vnode) => {\n vnode.dom.id = value;\n },\n\n style: (value, vnode) => {\n if (typeof value === \"string\") {\n vnode.dom.style = value;\n } else if (typeof value === \"object\") {\n vnode.dom.style = \"\";\n const domStyle = vnode.dom.style;\n for (const name in value) {\n domStyle[name] = value[name];\n }\n }\n }\n};\n\nexport function directive(name: string, directive: Directive) {\n const directiveName = `v-${name}`;\n directives[directiveName] = directive;\n reservedProps.add(directiveName);\n}\n\nexport function setPropNameReserved(name: string) {\n reservedProps.add(name);\n}\n\nconst eventListenerNames = new Set<string>();\n\nfunction eventListener(e: Event) {\n current.event = e;\n let dom = e.target as DomElement;\n const name = `on${e.type}`;\n\n while (dom) {\n const oldProps = dom.props;\n if (oldProps && oldProps[name]) {\n oldProps[name](e, dom);\n\n if (!e.defaultPrevented) {\n // eslint-disable-next-line no-use-before-define\n update();\n }\n return;\n }\n dom = dom.parentNode as DomElement;\n }\n\n current.event = null;\n}\n\nfunction sharedSetAttribute(name: string, value: any, newVnode: VnodeWithDom): void | boolean {\n const newVnodeDom = newVnode.dom;\n if (typeof value === \"function\") {\n if (!eventListenerNames.has(name)) {\n // We attach the delegated event listener to the main vnode dom element, which is the root of the component\n (mainVnode as VnodeWithDom).dom.addEventListener(name.slice(2), eventListener);\n eventListenerNames.add(name);\n }\n return;\n }\n\n if (name in newVnodeDom) {\n newVnodeDom[name] = value;\n return;\n }\n\n if (value === false) {\n newVnodeDom.removeAttribute(name);\n } else {\n newVnodeDom.setAttribute(name, value);\n }\n}\n\nexport function setAttribute(name: string, value: any, newVnode: VnodeWithDom): void {\n if (!reservedProps.has(name)) {\n newVnode.props[name] = value;\n sharedSetAttribute(name, value, newVnode);\n }\n}\n\nexport function updateAttributes(newVnode: VnodeWithDom, oldProps: Properties | null): void {\n const vnodeDom = newVnode.dom;\n const vnodeProps = newVnode.props;\n\n if (oldProps) {\n for (const name in oldProps) {\n if (name in vnodeProps === false && !eventListenerNames.has(name) && !reservedProps.has(name)) {\n if (name in vnodeDom) {\n vnodeDom[name] = null;\n } else {\n vnodeDom.removeAttribute(name);\n }\n }\n }\n }\n\n for (const name in vnodeProps) {\n if (directives[name]) {\n if (directives[name](vnodeProps[name], newVnode, oldProps) === false) {\n break;\n }\n continue;\n }\n\n if (!reservedProps.has(name)) {\n sharedSetAttribute(name, vnodeProps[name], newVnode);\n }\n }\n}\n\nexport function createElement(tag: string, isSVG: boolean): DomElement {\n return isSVG\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", tag)\n : (document.createElement(tag) as DomElement);\n}\n\nfunction flatTree(newVnode: VnodeWithDom) {\n current.vnode = newVnode;\n\n if (\"v-for\" in newVnode.props) {\n const children = [];\n const set = newVnode.props[\"v-for\"];\n const l = set.length;\n const callback = newVnode.children[0];\n\n for (let i = 0; i < l; i++) {\n const newChild = callback(set[i], i);\n if (newChild instanceof Vnode) {\n newChild.props = newChild.props || {};\n newChild.isSVG = newVnode.isSVG || newChild.tag === \"svg\";\n }\n children[i] = newChild;\n }\n\n return children;\n }\n\n let i = 0;\n const originalChildren = newVnode.children;\n let children = originalChildren;\n\n while (i < children.length) {\n const newChild = children[i];\n\n if (newChild == null) {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n children.splice(i, 1);\n continue;\n }\n\n if (Array.isArray(newChild)) {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n children.splice(i, 1, ...newChild);\n continue;\n }\n\n if (newChild instanceof Vnode) {\n newChild.props = newChild.props || {};\n newChild.isSVG = newVnode.isSVG || newChild.tag === \"svg\";\n\n if (typeof newChild.tag !== \"string\") {\n if (children === originalChildren) {\n children = [...originalChildren];\n }\n\n const component = (current.component = newChild.tag);\n\n children[i] = (isPOJOComponent(component) ? component.view : component).bind(component)(\n newChild.props,\n newChild.children\n );\n\n continue;\n }\n }\n\n i++;\n }\n\n return children;\n}\n\nfunction createNewElement(newChild: VnodeWithDom, newVnode: VnodeWithDom, oldChild: DomElement | null) {\n const dom = createElement(newChild.tag, newChild.isSVG as boolean);\n if (oldChild) {\n newVnode.dom.replaceChild(dom, oldChild);\n } else {\n newVnode.dom.appendChild(dom);\n }\n newChild.dom = dom;\n updateAttributes(newChild, null);\n newChild.dom.props = newChild.props;\n if (\"v-text\" in newChild.props) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n return;\n }\n\n const children = flatTree(newChild);\n if (children.length === 0) {\n newChild.dom.textContent = \"\";\n return;\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n if (children[i] instanceof Vnode === false) {\n newChild.dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newChild, null);\n }\n}\n\nfunction patchKeyed(newVnode: VnodeWithDom, children: Children) {\n const oldTree = [...Array.from(newVnode.dom.childNodes)] as unknown as DomElement[];\n const childNodes = newVnode.dom.childNodes;\n const oldKeyedList: Record<string, number> = {};\n const newKeyedList: Record<string, number> = {};\n\n for (let i = 0, l = oldTree.length; i < l; i++) {\n const oldProps = oldTree[i].props;\n if (oldProps) {\n oldKeyedList[oldProps.key as string] = i;\n }\n\n if (i < children.length && children[i] instanceof Vnode) {\n newKeyedList[children[i].props.key as string] = i;\n }\n }\n\n for (let i = 0, l = children.length; i < l; i++) {\n const newChild = children[i];\n const oldChild = oldTree[oldKeyedList[newChild.props.key as string]];\n\n if (!oldChild) {\n createNewElement(newChild, newVnode, childNodes[i] as DomElement | null);\n continue;\n }\n\n newChild.dom = oldChild;\n const currentChild = childNodes[i];\n if (!currentChild) {\n newVnode.dom.appendChild(oldChild);\n } else if (currentChild !== oldChild) {\n newVnode.dom.replaceChild(oldChild, currentChild);\n }\n\n if (\"v-keep\" in newChild.props === false || oldChild.props[\"v-keep\"] !== newChild.props[\"v-keep\"]) {\n updateAttributes(newChild as VnodeWithDom, oldChild.props);\n oldChild.props = newChild.props;\n\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (oldChild.textContent != newChild.props[\"v-text\"]) {\n oldChild.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n // eslint-disable-next-line no-use-before-define\n patch(newChild as VnodeWithDom);\n }\n }\n\n for (let i = children.length, l = childNodes.length; i < l; i++) {\n childNodes[i]?.remove();\n }\n}\n\n// eslint-disable-next-line complexity\nfunction patch(newVnode: VnodeWithDom): void {\n const children = flatTree(newVnode);\n\n const dom = newVnode.dom;\n\n if (children.length === 0) {\n if (dom.childNodes.length) {\n dom.textContent = \"\";\n }\n return;\n }\n\n const oldDomChildren = dom.childNodes as unknown as DomElement[];\n const oldChildrenLength = oldDomChildren.length;\n if (oldChildrenLength > 0) {\n const firstOldProps = oldDomChildren[0].props;\n const firstVnode = children[0] as VnodeWithDom;\n if (firstOldProps && firstVnode instanceof Vnode && \"key\" in firstVnode.props && \"key\" in firstOldProps) {\n patchKeyed(newVnode, children);\n return;\n }\n }\n\n const childrenLength = children.length;\n if (oldChildrenLength === 0) {\n for (let i = 0; i < childrenLength; i++) {\n if (children[i] instanceof Vnode === false) {\n dom.appendChild(document.createTextNode(children[i]));\n continue;\n }\n createNewElement(children[i], newVnode, null);\n }\n return;\n }\n\n for (let i = 0; i < childrenLength; i++) {\n const newChild = children[i] as VnodeWithDom;\n const isText = newChild instanceof Vnode === false;\n const oldChild = oldDomChildren[i];\n\n if (!oldChild) {\n if (isText) {\n newVnode.dom.appendChild(document.createTextNode(newChild as unknown as string));\n continue;\n }\n\n createNewElement(newChild as VnodeWithDom, newVnode, null);\n continue;\n }\n\n if (isText) {\n if (oldChild.nodeType !== 3) {\n newVnode.dom.replaceChild(document.createTextNode(newChild as unknown as string), oldChild);\n continue;\n }\n\n // eslint-disable-next-line eqeqeq\n if (oldChild.nodeValue != (newChild as unknown as string)) {\n oldChild.nodeValue = newChild as unknown as string;\n }\n continue;\n }\n\n if (\"v-keep\" in newChild.props) {\n if (oldChild.props && oldChild.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n continue;\n }\n\n const nextOldChild = oldDomChildren[i + 1];\n if (nextOldChild && nextOldChild.props && nextOldChild.props[\"v-keep\"] === newChild.props[\"v-keep\"]) {\n oldChild.remove();\n continue;\n }\n }\n\n if (newChild.tag !== oldChild.nodeName.toLowerCase()) {\n createNewElement(newChild, newVnode, oldChild);\n continue;\n }\n\n newChild.dom = oldChild;\n updateAttributes(newChild, oldChild.props || null);\n oldChild.props = newChild.props;\n if (\"v-text\" in newChild.props) {\n // eslint-disable-next-line eqeqeq\n if (newChild.dom.textContent != newChild.props[\"v-text\"]) {\n newChild.dom.textContent = newChild.props[\"v-text\"];\n }\n continue;\n }\n patch(newChild);\n }\n\n for (let i = childrenLength, l = oldDomChildren.length; i < l; i++) {\n oldDomChildren[i]?.remove();\n }\n}\n\nexport function updateVnode(vnode: VnodeWithDom): string | void {\n callSet(onCleanupSet);\n vnode.props = vnode.props || {};\n patch(vnode);\n callSet(isMounted ? onUpdateSet : onMountSet);\n isMounted = true;\n current.vnode = null;\n current.component = null;\n}\n\nexport function update(): string {\n if (mainVnode) {\n mainVnode.children = [mainComponent];\n updateVnode(mainVnode as VnodeWithDom);\n if (isNodeJs) {\n return mainVnode.dom.innerHTML;\n }\n }\n return \"\";\n}\n\nlet debouncedUpdateTimeout: any;\n\nconst clearDebouncedUpdateMethod = isNodeJs ? clearTimeout : cancelAnimationFrame;\nconst setDebouncedUpdateMethod = isNodeJs ? () => setTimeout(update, 5) : () => requestAnimationFrame(update);\n\nexport function debouncedUpdate() {\n clearDebouncedUpdateMethod(debouncedUpdateTimeout);\n debouncedUpdateTimeout = setDebouncedUpdateMethod();\n}\n\nexport function unmount() {\n if (mainVnode) {\n mainComponent = v(() => null, {}) as VnodeComponentInterface;\n const result = update();\n callSet(onUnmountSet);\n for (const name in eventListenerNames) {\n mainVnode.dom.removeEventListener(name.slice(2).toLowerCase(), eventListener);\n Reflect.deleteProperty(eventListenerNames, name);\n }\n\n mainComponent = null;\n mainVnode = null;\n isMounted = false;\n current.vnode = null;\n current.component = null;\n current.event = null;\n return result;\n }\n\n return \"\";\n}\n\nexport function mount(dom: string | DomElement, component: ValyrianComponent | VnodeComponentInterface | any) {\n const container =\n typeof dom === \"string\" ? (isNodeJs ? createElement(dom, dom === \"svg\") : document.querySelector(dom)) : dom;\n\n if (isComponent(component)) {\n mainComponent = v(component, {}, []) as VnodeComponentInterface;\n } else if (isVnodeComponent(component)) {\n mainComponent = component;\n } else {\n mainComponent = v(() => component, {}, []) as VnodeComponentInterface;\n }\n\n mainVnode = hidrateDomToVnode(container) as VnodeWithDom;\n return update();\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["value", "directive", "children", "i"]
|
|
7
7
|
}
|