@design-edito/tools 0.1.21 → 0.1.22
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/agnostic/arrays/find-duplicates/index.d.ts +1 -0
- package/agnostic/arrays/find-duplicates/index.js +6 -0
- package/agnostic/arrays/index.d.ts +8 -7
- package/agnostic/arrays/make/index.d.ts +3 -0
- package/agnostic/arrays/make/index.js +6 -0
- package/agnostic/arrays/random-pick/index.d.ts +2 -0
- package/agnostic/arrays/random-pick/index.js +8 -0
- package/agnostic/css/index.js +10 -10
- package/agnostic/errors/index.js +2 -2
- package/agnostic/html/hyper-json/cast/index.d.ts +18 -0
- package/agnostic/html/hyper-json/cast/index.js +11 -0
- package/agnostic/html/hyper-json/crossenv/index.d.ts +13 -0
- package/agnostic/html/hyper-json/crossenv/index.js +6 -0
- package/agnostic/html/hyper-json/index.d.ts +14 -43
- package/agnostic/html/hyper-json/index.js +32 -2
- package/agnostic/html/hyper-json/serialize/index.d.ts +5 -0
- package/agnostic/html/hyper-json/serialize/index.js +7 -0
- package/agnostic/html/hyper-json/transformers/append/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/append/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/classList/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/classList/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/index.d.ts +4 -0
- package/agnostic/html/hyper-json/transformers/index.js +39 -0
- package/agnostic/html/hyper-json/transformers/join/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/join/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/length/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/length/index.js +8 -0
- package/agnostic/html/hyper-json/transformers/print/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/print/index.js +7 -0
- package/agnostic/html/hyper-json/transformers/push/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/push/index.js +7 -0
- package/agnostic/html/hyper-json/transformers/querySelector/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/querySelector/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/ref/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/ref/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/replace/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/replace/index.js +13 -0
- package/agnostic/html/hyper-json/transformers/split/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/split/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toArray/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toArray/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toBoolean/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toBoolean/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toElement/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toElement/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toNodeList/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toNodeList/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toNull/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toNull/index.js +7 -0
- package/agnostic/html/hyper-json/transformers/toNumber/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toNumber/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toRecord/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toRecord/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toRef/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toRef/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toString/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toString/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toText/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toText/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/toTransformer/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/toTransformer/index.js +12 -0
- package/agnostic/html/hyper-json/transformers/transformSelected/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/transformSelected/index.js +39 -0
- package/agnostic/html/hyper-json/transformers/trim/index.d.ts +2 -0
- package/agnostic/html/hyper-json/transformers/trim/index.js +12 -0
- package/agnostic/html/hyper-json/tree/index.d.ts +56 -0
- package/agnostic/html/hyper-json/tree/index.js +39 -0
- package/agnostic/html/hyper-json/types/index.d.ts +86 -0
- package/agnostic/html/hyper-json/types/index.js +6 -0
- package/agnostic/html/hyper-json/utils/index.d.ts +10 -0
- package/agnostic/html/hyper-json/utils/index.js +6 -0
- package/agnostic/html/index.js +51 -19
- package/agnostic/html/replace-in-element/index.d.ts +1 -0
- package/agnostic/html/replace-in-element/index.js +6 -0
- package/agnostic/html/sanitize/index.js +7 -5
- package/agnostic/html/selector-to-element/index.js +7 -5
- package/agnostic/html/string-to-nodes/index.js +8 -6
- package/agnostic/index.d.ts +0 -2
- package/agnostic/misc/{web-crawler → crawler}/index.d.ts +1 -1
- package/agnostic/misc/crawler/index.js +7 -0
- package/agnostic/misc/crossenv/get-document/index.d.ts +2 -0
- package/agnostic/misc/crossenv/get-document/index.js +7 -0
- package/agnostic/misc/crossenv/get-window/browser.d.ts +2 -0
- package/agnostic/misc/crossenv/get-window/index.d.ts +2 -0
- package/agnostic/misc/crossenv/get-window/index.js +6 -0
- package/agnostic/misc/crossenv/index.d.ts +4 -1
- package/agnostic/misc/crossenv/index.js +3 -1
- package/agnostic/misc/crossenv/types.d.ts +3 -0
- package/agnostic/misc/index.d.ts +3 -1
- package/agnostic/misc/index.js +24 -14
- package/agnostic/misc/lorem-ipsum/index.js +5 -2
- package/agnostic/numbers/index.js +3 -3
- package/agnostic/objects/index.js +10 -10
- package/agnostic/optim/index.js +3 -3
- package/agnostic/random/index.js +6 -0
- package/agnostic/strings/index.js +9 -9
- package/agnostic/time/duration/index.d.ts +26 -0
- package/agnostic/time/duration/index.js +6 -0
- package/agnostic/time/index.d.ts +8 -7
- package/agnostic/time/index.js +17 -28
- package/agnostic/time/timeout/index.d.ts +1 -0
- package/agnostic/time/timeout/index.js +6 -0
- package/agnostic/time/transitions/index.js +7 -0
- package/agnostic/time/wait/index.js +6 -0
- package/chunks/chunk-2DMWYLFG.js +16 -0
- package/chunks/chunk-2KT7AKRW.js +17 -0
- package/chunks/{chunk-UCV2AZZV.js → chunk-2PI5AZIL.js} +14 -25
- package/chunks/chunk-3KQRMKQJ.js +27 -0
- package/chunks/chunk-3LVR6KZH.js +22 -0
- package/chunks/chunk-3PHPA25U.js +18 -0
- package/chunks/chunk-3PM7GZ6B.js +33 -0
- package/chunks/chunk-3SQJEEBK.js +642 -0
- package/chunks/chunk-3UURICGY.js +211 -0
- package/chunks/chunk-3X6RXJBR.js +37 -0
- package/chunks/{chunk-DQNJQBC6.js → chunk-4CIS3R7T.js} +1 -1
- package/chunks/chunk-4F7ZVE7T.js +332 -0
- package/chunks/chunk-4GUDL44X.js +13 -0
- package/chunks/chunk-4RDW62CU.js +36 -0
- package/chunks/chunk-5IR2PWO6.js +211 -0
- package/chunks/chunk-6CM2SWSX.js +35 -0
- package/chunks/chunk-6EYBQHJS.js +33 -0
- package/chunks/chunk-6NYUQXJT.js +109 -0
- package/chunks/chunk-6NZCBAT4.js +19 -0
- package/chunks/chunk-6V23XMYE.js +982 -0
- package/chunks/chunk-73V5RDSG.js +13 -0
- package/chunks/chunk-7IGZP4TV.js +30 -0
- package/chunks/chunk-7QMAYGNV.js +25 -0
- package/chunks/chunk-7YW5HL6N.js +168 -0
- package/chunks/chunk-AFFLZUW5.js +33 -0
- package/chunks/chunk-AMS3FB24.js +85 -0
- package/chunks/chunk-AXMPRLPI.js +35 -0
- package/chunks/chunk-B6CSCX7J.js +278 -0
- package/chunks/chunk-BDHNULU7.js +211 -0
- package/chunks/chunk-BNB7LEMQ.js +35 -0
- package/chunks/chunk-CECF6UZV.js +29 -0
- package/chunks/chunk-DBAJ66BR.js +18 -0
- package/chunks/chunk-DGQLPQS2.js +33 -0
- package/chunks/chunk-DLLTITVO.js +33 -0
- package/chunks/chunk-DMDOCC72.js +18 -0
- package/chunks/{chunk-IFT6HLDW.js → chunk-DRH7Q4FL.js} +3 -6
- package/chunks/chunk-DRNK3RLE.js +64 -0
- package/chunks/chunk-EAY65ZP6.js +22 -0
- package/chunks/{chunk-4GDNHUCZ.js → chunk-ENMBK6H7.js} +2 -2
- package/chunks/chunk-F5YMP5WU.js +18 -0
- package/chunks/chunk-F7EVMWVG.js +27 -0
- package/chunks/chunk-F7XWUG2V.js +18 -0
- package/chunks/chunk-FCU6IHKD.js +15 -0
- package/chunks/chunk-FFOATPL4.js +211 -0
- package/chunks/chunk-FWHUASVA.js +22 -0
- package/chunks/chunk-GBMHGF7P.js +20 -0
- package/chunks/{chunk-GJOU3UAL.js → chunk-GDYVCEWA.js} +8 -6
- package/chunks/chunk-GNBIAWSY.js +278 -0
- package/chunks/chunk-GQSPY2CV.js +19 -0
- package/chunks/chunk-HDALT7XM.js +620 -0
- package/chunks/chunk-HUKHWFVL.js +19 -0
- package/chunks/chunk-IGD53YL5.js +870 -0
- package/chunks/chunk-ILEM73XB.js +981 -0
- package/chunks/{chunk-DMGR57KA.js → chunk-IPB3U2PD.js} +20 -18
- package/chunks/chunk-JY3QZ2YO.js +211 -0
- package/chunks/chunk-K3OQEJI3.js +33 -0
- package/chunks/chunk-KXBKJ3GS.js +642 -0
- package/chunks/chunk-LCFDDWJR.js +278 -0
- package/chunks/chunk-LGECI2WL.js +306 -0
- package/chunks/chunk-LGUEB5L5.js +211 -0
- package/chunks/chunk-LI6QDZCA.js +211 -0
- package/chunks/{chunk-ZMHKLIP2.js → chunk-LYMZZ4BB.js} +1 -1
- package/chunks/chunk-MDEDNPU5.js +38 -0
- package/chunks/chunk-MQHKEGP4.js +33 -0
- package/chunks/chunk-NF5ACCXZ.js +211 -0
- package/chunks/chunk-NK557MKV.js +35 -0
- package/chunks/chunk-NWMEWFTK.js +33 -0
- package/chunks/chunk-O5OTBN22.js +35 -0
- package/chunks/chunk-O7MDUYEF.js +211 -0
- package/chunks/{chunk-LI5KVXAJ.js → chunk-OO5SJJDW.js} +2 -5
- package/chunks/chunk-Q52UJOBC.js +18 -0
- package/chunks/chunk-QFEF4EET.js +211 -0
- package/chunks/chunk-QHSVCGLD.js +280 -0
- package/chunks/chunk-QO64L4KB.js +97 -0
- package/chunks/{chunk-WLL3FNVL.js → chunk-R6KCN6CK.js} +1 -1
- package/chunks/chunk-RJ5E22H5.js +15 -0
- package/chunks/chunk-RLAZR3NL.js +8 -0
- package/chunks/chunk-RWUPHV54.js +25 -0
- package/chunks/chunk-S2757FI3.js +36 -0
- package/chunks/chunk-S42P73SC.js +30 -0
- package/chunks/chunk-S5XDYLJH.js +18 -0
- package/chunks/chunk-SCM6NACT.js +15 -0
- package/chunks/chunk-SH3Y2I5P.js +18 -0
- package/chunks/chunk-SMLKMOAX.js +18 -0
- package/chunks/chunk-TATRVKBS.js +211 -0
- package/chunks/chunk-UODQZRY2.js +620 -0
- package/chunks/chunk-UOULDS6J.js +33 -0
- package/chunks/chunk-UUDXUSI5.js +211 -0
- package/chunks/{chunk-GL23YDEH.js → chunk-UWAMSJ2X.js} +3 -6
- package/chunks/chunk-UZUXLD2Q.js +35 -0
- package/chunks/chunk-VA6HXRX4.js +211 -0
- package/chunks/chunk-VRUJR6WR.js +39 -0
- package/chunks/chunk-W6YBEEZM.js +211 -0
- package/chunks/chunk-WECTUHS5.js +127 -0
- package/chunks/chunk-YE5HI3RK.js +211 -0
- package/chunks/chunk-YEBOL67V.js +32 -0
- package/chunks/chunk-YS6WMSWC.js +15 -0
- package/{agnostic/misc/web-crawler/index.js → chunks/chunk-YUP434IY.js} +8 -7
- package/chunks/chunk-YYE2MVZO.js +211 -0
- package/chunks/chunk-Z7ZDDBV5.js +18 -0
- package/chunks/chunk-ZB73RE7P.js +35 -0
- package/chunks/chunk-ZONKYNKA.js +28 -0
- package/node/files/index.js +3 -3
- package/package.json +4 -1
- package/agnostic/async/index.d.ts +0 -8
- package/agnostic/async/index.js +0 -20
- package/agnostic/async/timeout-call/index.d.ts +0 -1
- package/agnostic/async/timeout-call/index.js +0 -6
- package/agnostic/async/transitions/index.js +0 -7
- package/agnostic/async/wait/index.js +0 -6
- package/agnostic/misc/random/index.js +0 -6
- package/chunks/chunk-4VC5PT5T.js +0 -13
- /package/agnostic/{misc/random → random}/index.d.ts +0 -0
- /package/agnostic/{async → time}/transitions/index.d.ts +0 -0
- /package/agnostic/{async → time}/wait/index.d.ts +0 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isRecord
|
|
3
|
+
} from "./chunk-YDIBNEGA.js";
|
|
4
|
+
import {
|
|
5
|
+
isInEnum
|
|
6
|
+
} from "./chunk-E6MSDKON.js";
|
|
7
|
+
import {
|
|
8
|
+
isFalsy
|
|
9
|
+
} from "./chunk-QXAJXTXV.js";
|
|
10
|
+
|
|
11
|
+
// src/agnostic/html/hyper-json/index.ts
|
|
12
|
+
var HyperJson;
|
|
13
|
+
((HyperJson2) => {
|
|
14
|
+
const crossenvWindow = window;
|
|
15
|
+
const document = crossenvWindow.document;
|
|
16
|
+
const Element = crossenvWindow.Element;
|
|
17
|
+
const Text = crossenvWindow.Text;
|
|
18
|
+
const Node = crossenvWindow.Node;
|
|
19
|
+
const isElement = (node) => node.nodeType === Node.ELEMENT_NODE;
|
|
20
|
+
const isText = (node) => node.nodeType === Node.TEXT_NODE;
|
|
21
|
+
let TyperTagName;
|
|
22
|
+
((TyperTagName2) => {
|
|
23
|
+
TyperTagName2["NULL"] = "null";
|
|
24
|
+
TyperTagName2["BOOLEAN"] = "boolean";
|
|
25
|
+
TyperTagName2["NUMBER"] = "number";
|
|
26
|
+
TyperTagName2["STRING"] = "string";
|
|
27
|
+
TyperTagName2["TEXT"] = "text";
|
|
28
|
+
TyperTagName2["NODELIST"] = "nodelist";
|
|
29
|
+
TyperTagName2["ARRAY"] = "array";
|
|
30
|
+
TyperTagName2["RECORD"] = "record";
|
|
31
|
+
})(TyperTagName = HyperJson2.TyperTagName || (HyperJson2.TyperTagName = {}));
|
|
32
|
+
let TransformerTagName;
|
|
33
|
+
((TransformerTagName2) => {
|
|
34
|
+
TransformerTagName2["MAP"] = "map";
|
|
35
|
+
TransformerTagName2["REF"] = "ref";
|
|
36
|
+
TransformerTagName2["ADD"] = "add";
|
|
37
|
+
TransformerTagName2["MULT"] = "mult";
|
|
38
|
+
TransformerTagName2["APPEND"] = "append";
|
|
39
|
+
})(TransformerTagName = HyperJson2.TransformerTagName || (HyperJson2.TransformerTagName = {}));
|
|
40
|
+
class Tree {
|
|
41
|
+
node;
|
|
42
|
+
name;
|
|
43
|
+
parent;
|
|
44
|
+
root;
|
|
45
|
+
path;
|
|
46
|
+
pathString;
|
|
47
|
+
tagName;
|
|
48
|
+
attributes;
|
|
49
|
+
subtrees = /* @__PURE__ */ new Map();
|
|
50
|
+
children;
|
|
51
|
+
type;
|
|
52
|
+
constructor(node, parent, pathFromParent) {
|
|
53
|
+
this.initValue = this.initValue.bind(this);
|
|
54
|
+
this.getInnerValue = this.getInnerValue.bind(this);
|
|
55
|
+
this.wrapInnerValue = this.wrapInnerValue.bind(this);
|
|
56
|
+
this.evaluate = this.evaluate.bind(this);
|
|
57
|
+
this.node = node;
|
|
58
|
+
this.name = this.node instanceof Element ? this.node.getAttribute("_name") : null;
|
|
59
|
+
this.parent = parent ?? null;
|
|
60
|
+
this.root = this.parent === null ? this : this.parent.root;
|
|
61
|
+
if (this.parent === null) this.path = [];
|
|
62
|
+
else if (pathFromParent === void 0) {
|
|
63
|
+
this.path = [...this.parent.path, 0];
|
|
64
|
+
} else {
|
|
65
|
+
this.path = [...this.parent.path, pathFromParent];
|
|
66
|
+
}
|
|
67
|
+
this.pathString = `/${this.path.join("/")}`;
|
|
68
|
+
this.tagName = node instanceof Element ? node.tagName.toLowerCase() : null;
|
|
69
|
+
this.attributes = isElement(node) ? Array.from(node.attributes) : null;
|
|
70
|
+
const { childNodes } = node;
|
|
71
|
+
let positionnedChildrenCount = 0;
|
|
72
|
+
const mutableSubtrees = /* @__PURE__ */ new Map();
|
|
73
|
+
Array.from(childNodes).filter((node2) => {
|
|
74
|
+
if (isElement(node2)) return true;
|
|
75
|
+
if (isText(node2)) return true;
|
|
76
|
+
return false;
|
|
77
|
+
}).forEach((childNode) => {
|
|
78
|
+
if (childNode instanceof Text) {
|
|
79
|
+
mutableSubtrees.set(
|
|
80
|
+
positionnedChildrenCount,
|
|
81
|
+
new Tree(childNode, this, positionnedChildrenCount)
|
|
82
|
+
);
|
|
83
|
+
positionnedChildrenCount += 1;
|
|
84
|
+
} else {
|
|
85
|
+
const propertyName = childNode.getAttribute("_name");
|
|
86
|
+
if (propertyName === null) {
|
|
87
|
+
mutableSubtrees.set(
|
|
88
|
+
positionnedChildrenCount,
|
|
89
|
+
new Tree(childNode, this, positionnedChildrenCount)
|
|
90
|
+
);
|
|
91
|
+
positionnedChildrenCount += 1;
|
|
92
|
+
} else {
|
|
93
|
+
mutableSubtrees.set(
|
|
94
|
+
propertyName,
|
|
95
|
+
new Tree(childNode, this, propertyName)
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
this.subtrees = mutableSubtrees;
|
|
101
|
+
this.children = Array.from(this.subtrees.values());
|
|
102
|
+
if (this.tagName === null) {
|
|
103
|
+
this.type = "text";
|
|
104
|
+
} else if (this.tagName === "null" /* NULL */) {
|
|
105
|
+
this.type = "null";
|
|
106
|
+
} else if (this.tagName === "boolean" /* BOOLEAN */) {
|
|
107
|
+
this.type = "boolean";
|
|
108
|
+
} else if (this.tagName === "number" /* NUMBER */) {
|
|
109
|
+
this.type = "number";
|
|
110
|
+
} else if (this.tagName === "string" /* STRING */) {
|
|
111
|
+
this.type = "string";
|
|
112
|
+
} else if (this.tagName === "text" /* TEXT */) {
|
|
113
|
+
this.type = "text";
|
|
114
|
+
} else if (this.tagName === "nodelist" /* NODELIST */) {
|
|
115
|
+
this.type = "nodelist";
|
|
116
|
+
} else if (this.tagName === "array" /* ARRAY */) {
|
|
117
|
+
this.type = "array";
|
|
118
|
+
} else if (this.tagName === "record" /* RECORD */) {
|
|
119
|
+
this.type = "record";
|
|
120
|
+
} else if (isInEnum(TransformerTagName, this.tagName)) {
|
|
121
|
+
this.type = "transformer";
|
|
122
|
+
} else {
|
|
123
|
+
this.type = "element";
|
|
124
|
+
}
|
|
125
|
+
console.log(this);
|
|
126
|
+
}
|
|
127
|
+
initValue() {
|
|
128
|
+
const { type } = this;
|
|
129
|
+
let currentValue;
|
|
130
|
+
if (type === "null") {
|
|
131
|
+
currentValue = null;
|
|
132
|
+
} else if (type === "boolean") {
|
|
133
|
+
currentValue = false;
|
|
134
|
+
} else if (type === "number") {
|
|
135
|
+
currentValue = 0;
|
|
136
|
+
} else if (type === "string") {
|
|
137
|
+
currentValue = "";
|
|
138
|
+
} else if (type === "text") {
|
|
139
|
+
currentValue = this.node.textContent;
|
|
140
|
+
} else if (type === "element") {
|
|
141
|
+
currentValue = document.createDocumentFragment().childNodes;
|
|
142
|
+
} else if (type === "nodelist") {
|
|
143
|
+
currentValue = document.createDocumentFragment().childNodes;
|
|
144
|
+
} else if (type === "array") {
|
|
145
|
+
currentValue = [];
|
|
146
|
+
} else if (type === "record") {
|
|
147
|
+
currentValue = {};
|
|
148
|
+
} else if (type === "transformer") {
|
|
149
|
+
currentValue = [];
|
|
150
|
+
} else {
|
|
151
|
+
currentValue = null;
|
|
152
|
+
}
|
|
153
|
+
return currentValue;
|
|
154
|
+
}
|
|
155
|
+
getInnerValue(initialValue) {
|
|
156
|
+
const { subtrees } = this;
|
|
157
|
+
console.log("---", this, subtrees);
|
|
158
|
+
const innerValue = Array.from(subtrees.entries()).reduce((currentValue, [subpath, subTree]) => {
|
|
159
|
+
if (subTree.type === "transformer") {
|
|
160
|
+
const evaluated = subTree.evaluate();
|
|
161
|
+
return evaluated(currentValue);
|
|
162
|
+
}
|
|
163
|
+
if (currentValue === null || typeof currentValue === "boolean" || typeof currentValue === "number" || typeof currentValue === "string" || currentValue instanceof Text || currentValue instanceof Element) {
|
|
164
|
+
const evaluated = subTree.evaluate();
|
|
165
|
+
if (evaluated === null || typeof evaluated === "boolean" || typeof evaluated === "number" || typeof evaluated === "string" || Array.isArray(evaluated) || isRecord(evaluated)) {
|
|
166
|
+
return evaluated;
|
|
167
|
+
}
|
|
168
|
+
const frag = document.createDocumentFragment();
|
|
169
|
+
frag.append(`${currentValue}`);
|
|
170
|
+
if (evaluated instanceof Element || evaluated instanceof Text) {
|
|
171
|
+
frag.append(evaluated);
|
|
172
|
+
return frag.childNodes;
|
|
173
|
+
}
|
|
174
|
+
frag.append(...Array.from(evaluated));
|
|
175
|
+
return frag.childNodes;
|
|
176
|
+
}
|
|
177
|
+
if (Array.isArray(currentValue)) {
|
|
178
|
+
if (typeof subpath === "string") return currentValue;
|
|
179
|
+
return [...currentValue, subTree.evaluate()];
|
|
180
|
+
}
|
|
181
|
+
if (currentValue instanceof NodeList) {
|
|
182
|
+
const evaluated = subTree.evaluate();
|
|
183
|
+
if (evaluated instanceof Element || evaluated instanceof Text) {
|
|
184
|
+
const frag = document.createDocumentFragment();
|
|
185
|
+
frag.append(...Array.from(currentValue), evaluated);
|
|
186
|
+
return frag.childNodes;
|
|
187
|
+
}
|
|
188
|
+
if (evaluated instanceof NodeList) {
|
|
189
|
+
const frag = document.createDocumentFragment();
|
|
190
|
+
frag.append(
|
|
191
|
+
...Array.from(currentValue),
|
|
192
|
+
...Array.from(evaluated)
|
|
193
|
+
);
|
|
194
|
+
return frag.childNodes;
|
|
195
|
+
}
|
|
196
|
+
if (evaluated === null || typeof evaluated === "string" || typeof evaluated === "number" || typeof evaluated === "boolean") {
|
|
197
|
+
const frag = document.createDocumentFragment();
|
|
198
|
+
frag.append(...Array.from(currentValue), `${evaluated}`);
|
|
199
|
+
return frag.childNodes;
|
|
200
|
+
}
|
|
201
|
+
if (Array.isArray(evaluated)) return [...Array.from(currentValue), ...evaluated];
|
|
202
|
+
return { ...evaluated };
|
|
203
|
+
}
|
|
204
|
+
if (typeof subpath === "number") return currentValue;
|
|
205
|
+
return {
|
|
206
|
+
...currentValue,
|
|
207
|
+
[subpath]: subTree.evaluate()
|
|
208
|
+
};
|
|
209
|
+
}, initialValue);
|
|
210
|
+
return innerValue;
|
|
211
|
+
}
|
|
212
|
+
wrapInnerValue(innerValue) {
|
|
213
|
+
const { type, node } = this;
|
|
214
|
+
if (type === "transformer") return (contextValue) => {
|
|
215
|
+
console.log(`I am a transformer. My name is ${this.tagName}.`);
|
|
216
|
+
console.log("I have this innerValue (these are my params):");
|
|
217
|
+
console.log(innerValue);
|
|
218
|
+
console.log("And this context value:");
|
|
219
|
+
console.log(contextValue);
|
|
220
|
+
return contextValue;
|
|
221
|
+
};
|
|
222
|
+
if (type === "null") return null;
|
|
223
|
+
if (type === "boolean") return !isFalsy(innerValue);
|
|
224
|
+
if (type === "number") return parseFloat(`${innerValue}`);
|
|
225
|
+
if (type === "string") return `${innerValue}`;
|
|
226
|
+
if (type === "array") {
|
|
227
|
+
if (Array.isArray(innerValue)) return innerValue;
|
|
228
|
+
if (innerValue instanceof NodeList) {
|
|
229
|
+
return [...Array.from(innerValue)];
|
|
230
|
+
}
|
|
231
|
+
return [innerValue];
|
|
232
|
+
}
|
|
233
|
+
if (type === "record") {
|
|
234
|
+
if (isRecord(innerValue)) return innerValue;
|
|
235
|
+
return {};
|
|
236
|
+
}
|
|
237
|
+
if (type === "text") return document.createTextNode(`${innerValue}`);
|
|
238
|
+
if (type === "element") {
|
|
239
|
+
const wrapper = node.cloneNode();
|
|
240
|
+
if (innerValue instanceof NodeList) {
|
|
241
|
+
wrapper.append(...Array.from(innerValue));
|
|
242
|
+
return wrapper;
|
|
243
|
+
}
|
|
244
|
+
if (innerValue instanceof Element || innerValue instanceof Text || typeof innerValue === "string") {
|
|
245
|
+
wrapper.append(innerValue);
|
|
246
|
+
return wrapper;
|
|
247
|
+
}
|
|
248
|
+
if (innerValue === null || typeof innerValue === "number" || typeof innerValue === "boolean") {
|
|
249
|
+
wrapper.append(`${innerValue}`);
|
|
250
|
+
return wrapper;
|
|
251
|
+
}
|
|
252
|
+
return wrapper;
|
|
253
|
+
}
|
|
254
|
+
if (innerValue instanceof NodeList) return innerValue;
|
|
255
|
+
if (innerValue instanceof Element || innerValue instanceof Text || typeof innerValue === "string") {
|
|
256
|
+
const frag2 = document.createDocumentFragment();
|
|
257
|
+
frag2.append(innerValue);
|
|
258
|
+
return frag2.childNodes;
|
|
259
|
+
}
|
|
260
|
+
if (innerValue === null || typeof innerValue === "string" || typeof innerValue === "number" || typeof innerValue === "boolean") {
|
|
261
|
+
const frag2 = document.createDocumentFragment();
|
|
262
|
+
frag2.append(`${innerValue}`);
|
|
263
|
+
return frag2.childNodes;
|
|
264
|
+
}
|
|
265
|
+
const frag = document.createDocumentFragment();
|
|
266
|
+
return frag.childNodes;
|
|
267
|
+
}
|
|
268
|
+
evaluate() {
|
|
269
|
+
const init = this.initValue();
|
|
270
|
+
const inner = this.getInnerValue(init);
|
|
271
|
+
const wrapped = this.wrapInnerValue(inner);
|
|
272
|
+
return wrapped;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
HyperJson2.Tree = Tree;
|
|
276
|
+
})(HyperJson || (HyperJson = {}));
|
|
277
|
+
|
|
278
|
+
export {
|
|
279
|
+
HyperJson
|
|
280
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Crossenv
|
|
3
|
+
} from "./chunk-3LVR6KZH.js";
|
|
4
|
+
import {
|
|
5
|
+
Utils
|
|
6
|
+
} from "./chunk-YEBOL67V.js";
|
|
7
|
+
import {
|
|
8
|
+
isRecord
|
|
9
|
+
} from "./chunk-YDIBNEGA.js";
|
|
10
|
+
import {
|
|
11
|
+
isFalsy
|
|
12
|
+
} from "./chunk-QXAJXTXV.js";
|
|
13
|
+
|
|
14
|
+
// src/agnostic/html/hyper-json/cast/index.ts
|
|
15
|
+
var getWindow = Crossenv.getWindow;
|
|
16
|
+
var Cast;
|
|
17
|
+
((Cast2) => {
|
|
18
|
+
Cast2.toNull = () => null;
|
|
19
|
+
Cast2.toBoolean = (input) => !isFalsy(input);
|
|
20
|
+
Cast2.toNumber = (input) => {
|
|
21
|
+
const { Text } = getWindow();
|
|
22
|
+
if (typeof input === "number") return input;
|
|
23
|
+
if (typeof input === "string") return parseFloat(`${input}`);
|
|
24
|
+
if (input instanceof Text) return parseFloat(`${input.textContent}`);
|
|
25
|
+
return 0;
|
|
26
|
+
};
|
|
27
|
+
Cast2.toString = (input) => {
|
|
28
|
+
if (typeof input === "string") return input;
|
|
29
|
+
if (typeof input === "number" || typeof input === "boolean" || input === null) return `${input}`;
|
|
30
|
+
const { Element, Text, NodeList } = getWindow();
|
|
31
|
+
if (input instanceof Element) return input.outerHTML;
|
|
32
|
+
if (input instanceof Text) return input.textContent ?? "";
|
|
33
|
+
if (input instanceof NodeList) return Array.from(input).map((e) => {
|
|
34
|
+
if (e instanceof Element) return e.outerHTML;
|
|
35
|
+
return e.textContent;
|
|
36
|
+
}).join("");
|
|
37
|
+
return input.toString();
|
|
38
|
+
};
|
|
39
|
+
Cast2.toText = (input) => {
|
|
40
|
+
const { Text, document } = getWindow();
|
|
41
|
+
if (input instanceof Text) return input.cloneNode(true);
|
|
42
|
+
return document.createTextNode((0, Cast2.toString)(input));
|
|
43
|
+
};
|
|
44
|
+
Cast2.toElement = (input) => {
|
|
45
|
+
const { Element, Text, NodeList, document } = getWindow();
|
|
46
|
+
if (input instanceof Element) return input.cloneNode(true);
|
|
47
|
+
const elt = document.createElement("div");
|
|
48
|
+
if (input instanceof Text) {
|
|
49
|
+
elt.append(input.cloneNode(true));
|
|
50
|
+
return elt;
|
|
51
|
+
}
|
|
52
|
+
if (input instanceof NodeList) {
|
|
53
|
+
elt.append(...Array.from(input).map((e) => e.cloneNode(true)));
|
|
54
|
+
return elt;
|
|
55
|
+
}
|
|
56
|
+
if (Array.isArray(input)) return elt;
|
|
57
|
+
if (isRecord(input)) return elt;
|
|
58
|
+
elt.append(`${input}`);
|
|
59
|
+
return elt;
|
|
60
|
+
};
|
|
61
|
+
Cast2.toNodeList = (input) => {
|
|
62
|
+
const { Element, Text, NodeList, document } = getWindow();
|
|
63
|
+
const elt = document.createElement("div");
|
|
64
|
+
if (input instanceof NodeList) {
|
|
65
|
+
elt.append(...Array.from(input).map((i) => i.cloneNode(true)));
|
|
66
|
+
return elt.childNodes;
|
|
67
|
+
}
|
|
68
|
+
if (input instanceof Element || input instanceof Text) {
|
|
69
|
+
elt.append(input.cloneNode(true));
|
|
70
|
+
return elt.childNodes;
|
|
71
|
+
}
|
|
72
|
+
if (Array.isArray(input)) return elt.childNodes;
|
|
73
|
+
if (isRecord(input)) return elt.childNodes;
|
|
74
|
+
elt.innerHTML = `${input}`;
|
|
75
|
+
return elt.childNodes;
|
|
76
|
+
};
|
|
77
|
+
Cast2.toArray = (input) => {
|
|
78
|
+
const { NodeList } = getWindow();
|
|
79
|
+
if (Array.isArray(input)) return [...input];
|
|
80
|
+
if (input instanceof NodeList) return Array.from(input);
|
|
81
|
+
return [input];
|
|
82
|
+
};
|
|
83
|
+
Cast2.toRecord = (input) => {
|
|
84
|
+
if (isRecord(input)) return { ...input };
|
|
85
|
+
return {};
|
|
86
|
+
};
|
|
87
|
+
Cast2.toTransformer = (input) => {
|
|
88
|
+
return Utils.toNamedTransformer("utils/Cast.toTransformer", () => ({
|
|
89
|
+
action: "REPLACE",
|
|
90
|
+
value: input
|
|
91
|
+
}));
|
|
92
|
+
};
|
|
93
|
+
})(Cast || (Cast = {}));
|
|
94
|
+
|
|
95
|
+
export {
|
|
96
|
+
Cast
|
|
97
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Utils
|
|
3
|
+
} from "./chunk-YEBOL67V.js";
|
|
4
|
+
|
|
5
|
+
// src/agnostic/html/hyper-json/transformers/toNull/index.ts
|
|
6
|
+
var toNull = (callerTagName) => {
|
|
7
|
+
return Utils.toNamedTransformer(callerTagName, (currentValue) => ({
|
|
8
|
+
action: "REPLACE",
|
|
9
|
+
value: null
|
|
10
|
+
}));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
toNull
|
|
15
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Cast
|
|
3
|
+
} from "./chunk-QO64L4KB.js";
|
|
4
|
+
import {
|
|
5
|
+
Utils
|
|
6
|
+
} from "./chunk-YEBOL67V.js";
|
|
7
|
+
|
|
8
|
+
// src/agnostic/html/hyper-json/transformers/join/index.ts
|
|
9
|
+
var join = (callerTagName, ...args) => {
|
|
10
|
+
return Utils.toNamedTransformer(callerTagName, (currentValue) => {
|
|
11
|
+
const joiner = Cast.toString(args.at(0) ?? ",");
|
|
12
|
+
if (!Array.isArray(currentValue)) return Utils.makeTransformerError({
|
|
13
|
+
message: `Current value must be an array`,
|
|
14
|
+
input: currentValue
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
action: "REPLACE",
|
|
18
|
+
value: currentValue.join(joiner)
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
join
|
|
25
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Cast
|
|
3
|
+
} from "./chunk-AMS3FB24.js";
|
|
4
|
+
|
|
5
|
+
// src/agnostic/html/hyper-json/transformers/ref/index.ts
|
|
6
|
+
var pathsStack = [];
|
|
7
|
+
var ref = (...args) => {
|
|
8
|
+
return (_, { resolver }) => {
|
|
9
|
+
const [refPathStrRaw] = args;
|
|
10
|
+
let refPathStr = Cast.toString(refPathStrRaw ?? "");
|
|
11
|
+
while (refPathStr.startsWith("/")) {
|
|
12
|
+
refPathStr = refPathStr.slice(1);
|
|
13
|
+
}
|
|
14
|
+
while (refPathStr.endsWith("/")) {
|
|
15
|
+
refPathStr = refPathStr.slice(0, -1);
|
|
16
|
+
}
|
|
17
|
+
const refPath = refPathStr.split("/").map((e) => {
|
|
18
|
+
const parsed = parseInt(e);
|
|
19
|
+
if (Number.isNaN(parsed)) return e;
|
|
20
|
+
return parsed;
|
|
21
|
+
});
|
|
22
|
+
pathsStack.push(refPath.join("/"));
|
|
23
|
+
const foundTree = resolver(refPath);
|
|
24
|
+
if (foundTree === void 0) return { action: null };
|
|
25
|
+
console.log(pathsStack);
|
|
26
|
+
const evaluated = foundTree.evaluate();
|
|
27
|
+
return {
|
|
28
|
+
action: "MERGE",
|
|
29
|
+
value: evaluated
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
ref
|
|
36
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Crossenv
|
|
3
|
+
} from "./chunk-3LVR6KZH.js";
|
|
4
|
+
import {
|
|
5
|
+
Utils
|
|
6
|
+
} from "./chunk-YEBOL67V.js";
|
|
7
|
+
|
|
8
|
+
// src/agnostic/html/hyper-json/transformers/length/index.ts
|
|
9
|
+
var length = (callerTagName) => {
|
|
10
|
+
return Utils.toNamedTransformer(callerTagName, (currentValue) => {
|
|
11
|
+
const { Element, NodeList, Text } = Crossenv.getWindow();
|
|
12
|
+
if (typeof currentValue === "string" || Array.isArray(currentValue) || currentValue instanceof NodeList) return {
|
|
13
|
+
action: "REPLACE",
|
|
14
|
+
value: currentValue.length
|
|
15
|
+
};
|
|
16
|
+
if (currentValue instanceof Element) return {
|
|
17
|
+
action: "REPLACE",
|
|
18
|
+
value: Array.from(currentValue.childNodes).length
|
|
19
|
+
};
|
|
20
|
+
if (currentValue instanceof Text) return {
|
|
21
|
+
action: "REPLACE",
|
|
22
|
+
value: currentValue.data.length
|
|
23
|
+
};
|
|
24
|
+
return Utils.makeTransformerError(`Current value must be of type string, Array, NodeList, Element or Text`);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
length
|
|
30
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Cast
|
|
3
|
+
} from "./chunk-QO64L4KB.js";
|
|
4
|
+
import {
|
|
5
|
+
Utils
|
|
6
|
+
} from "./chunk-YEBOL67V.js";
|
|
7
|
+
|
|
8
|
+
// src/agnostic/html/hyper-json/transformers/toElement/index.ts
|
|
9
|
+
var toElement = (callerTagName) => {
|
|
10
|
+
return Utils.toNamedTransformer(callerTagName, (currentValue) => ({
|
|
11
|
+
action: "REPLACE",
|
|
12
|
+
value: Cast.toElement(currentValue)
|
|
13
|
+
}));
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
toElement
|
|
18
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ref
|
|
3
|
+
} from "./chunk-NWMEWFTK.js";
|
|
4
|
+
|
|
5
|
+
// src/agnostic/html/hyper-json/transformers/index.ts
|
|
6
|
+
var Transformers;
|
|
7
|
+
((Transformers2) => {
|
|
8
|
+
Transformers2.defaultGeneratorsMap = /* @__PURE__ */ new Map([
|
|
9
|
+
["ref", ref]
|
|
10
|
+
]);
|
|
11
|
+
})(Transformers || (Transformers = {}));
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
Transformers
|
|
15
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Cast
|
|
3
|
+
} from "./chunk-QO64L4KB.js";
|
|
4
|
+
import {
|
|
5
|
+
Utils
|
|
6
|
+
} from "./chunk-YEBOL67V.js";
|
|
7
|
+
|
|
8
|
+
// src/agnostic/html/hyper-json/transformers/toBoolean/index.ts
|
|
9
|
+
var toBoolean = (callerTagName) => {
|
|
10
|
+
return Utils.toNamedTransformer(callerTagName, (currentValue) => ({
|
|
11
|
+
action: "REPLACE",
|
|
12
|
+
value: Cast.toBoolean(currentValue)
|
|
13
|
+
}));
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
toBoolean
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Cast
|
|
3
|
+
} from "./chunk-QO64L4KB.js";
|
|
4
|
+
import {
|
|
5
|
+
Utils
|
|
6
|
+
} from "./chunk-YEBOL67V.js";
|
|
7
|
+
|
|
8
|
+
// src/agnostic/html/hyper-json/transformers/toTransformer/index.ts
|
|
9
|
+
var toTransformer = (callerTagName) => {
|
|
10
|
+
return Utils.toNamedTransformer(callerTagName, (currentValue) => ({
|
|
11
|
+
action: "REPLACE",
|
|
12
|
+
value: Cast.toTransformer(currentValue)
|
|
13
|
+
}));
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
toTransformer
|
|
18
|
+
};
|