@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,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Cast
|
|
3
|
+
} from "./chunk-QO64L4KB.js";
|
|
4
|
+
import {
|
|
5
|
+
Crossenv
|
|
6
|
+
} from "./chunk-3LVR6KZH.js";
|
|
7
|
+
import {
|
|
8
|
+
Utils
|
|
9
|
+
} from "./chunk-YEBOL67V.js";
|
|
10
|
+
|
|
11
|
+
// src/agnostic/html/hyper-json/transformers/trim/index.ts
|
|
12
|
+
var trim = (callerTagName) => {
|
|
13
|
+
return Utils.toNamedTransformer(callerTagName, (currentValue) => {
|
|
14
|
+
const { Text } = Crossenv.getWindow();
|
|
15
|
+
if (typeof currentValue !== "string" && !(currentValue instanceof Text)) return Utils.makeTransformerError({
|
|
16
|
+
message: "Current value must be of type string or Text",
|
|
17
|
+
input: currentValue
|
|
18
|
+
});
|
|
19
|
+
const inputStr = Cast.toString(currentValue);
|
|
20
|
+
const trimmed = inputStr.trim();
|
|
21
|
+
return {
|
|
22
|
+
action: "REPLACE",
|
|
23
|
+
value: currentValue instanceof Text ? Cast.toText(trimmed) : trimmed
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
trim
|
|
30
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/agnostic/html/hyper-json/types/index.ts
|
|
2
|
+
var Types;
|
|
3
|
+
((Types2) => {
|
|
4
|
+
let TyperTagName;
|
|
5
|
+
((TyperTagName2) => {
|
|
6
|
+
TyperTagName2["NULL"] = "null";
|
|
7
|
+
TyperTagName2["BOOLEAN"] = "boolean";
|
|
8
|
+
TyperTagName2["NUMBER"] = "number";
|
|
9
|
+
TyperTagName2["STRING"] = "string";
|
|
10
|
+
TyperTagName2["TEXT"] = "text";
|
|
11
|
+
TyperTagName2["NODELIST"] = "nodelist";
|
|
12
|
+
TyperTagName2["ARRAY"] = "array";
|
|
13
|
+
TyperTagName2["RECORD"] = "record";
|
|
14
|
+
})(TyperTagName = Types2.TyperTagName || (Types2.TyperTagName = {}));
|
|
15
|
+
let ReductionAction;
|
|
16
|
+
((ReductionAction2) => {
|
|
17
|
+
ReductionAction2["APPEND"] = "append";
|
|
18
|
+
ReductionAction2["PREPEND"] = "prepend";
|
|
19
|
+
ReductionAction2["REPLACE"] = "replace";
|
|
20
|
+
})(ReductionAction = Types2.ReductionAction || (Types2.ReductionAction = {}));
|
|
21
|
+
})(Types || (Types = {}));
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
Types
|
|
25
|
+
};
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isFalsy
|
|
3
|
+
} from "./chunk-QXAJXTXV.js";
|
|
4
|
+
import {
|
|
5
|
+
isValidClassName
|
|
6
|
+
} from "./chunk-W5A2TON3.js";
|
|
7
|
+
|
|
8
|
+
// src/agnostic/css/bem/getNamesArr.ts
|
|
9
|
+
function getNamesArr(arg) {
|
|
10
|
+
const returned = [];
|
|
11
|
+
if (typeof arg === "string") {
|
|
12
|
+
arg.trim().split(/\s+/gm).forEach((name) => {
|
|
13
|
+
if (isValidClassName(name)) returned.push(name);
|
|
14
|
+
});
|
|
15
|
+
} else if (Array.isArray(arg)) {
|
|
16
|
+
arg.forEach((elt) => returned.push(...getNamesArr(elt)));
|
|
17
|
+
} else if (typeof arg === "object" && arg !== null) {
|
|
18
|
+
Object.entries(arg).forEach(([key, val]) => {
|
|
19
|
+
if (!isFalsy(val)) returned.push(...getNamesArr(key));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return returned;
|
|
23
|
+
}
|
|
24
|
+
var getNamesArr_default = getNamesArr;
|
|
25
|
+
|
|
26
|
+
// src/agnostic/css/bem/BEM.ts
|
|
27
|
+
var BEM = class _BEM {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.findBlockByName = this.findBlockByName.bind(this);
|
|
30
|
+
this.addBlock = this.addBlock.bind(this);
|
|
31
|
+
this.addElement = this.addElement.bind(this);
|
|
32
|
+
this.addModifier = this.addModifier.bind(this);
|
|
33
|
+
this.copy = this.copy.bind(this);
|
|
34
|
+
this.block = this.block.bind(this);
|
|
35
|
+
this.element = this.element.bind(this);
|
|
36
|
+
this.modifier = this.modifier.bind(this);
|
|
37
|
+
this.blk = this.blk.bind(this);
|
|
38
|
+
this.elt = this.elt.bind(this);
|
|
39
|
+
this.mod = this.mod.bind(this);
|
|
40
|
+
this.cp = this.cp.bind(this);
|
|
41
|
+
this.addSingleBlock = this.addSingleBlock.bind(this);
|
|
42
|
+
this.addSingleElement = this.addSingleElement.bind(this);
|
|
43
|
+
this.addSingleModifier = this.addSingleModifier.bind(this);
|
|
44
|
+
this.setCurrentBlockByName = this.setCurrentBlockByName.bind(this);
|
|
45
|
+
this.createBlockByName = this.createBlockByName.bind(this);
|
|
46
|
+
this.getCurrentBlock = this.getCurrentBlock.bind(this);
|
|
47
|
+
}
|
|
48
|
+
addBlock(blockNameArg) {
|
|
49
|
+
const blocksNames = getNamesArr_default(blockNameArg);
|
|
50
|
+
blocksNames.forEach(this.addSingleBlock);
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
addElement(elementNameArg) {
|
|
54
|
+
const elementsNames = getNamesArr_default(elementNameArg);
|
|
55
|
+
elementsNames.forEach(this.addSingleElement);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
addModifier(modifierNameArg) {
|
|
59
|
+
const currentBlock = this.getCurrentBlock();
|
|
60
|
+
if (currentBlock === void 0) return this;
|
|
61
|
+
const modifiersNames = getNamesArr_default(modifierNameArg);
|
|
62
|
+
modifiersNames.forEach(this.addSingleModifier);
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
copy() {
|
|
66
|
+
const copy = new _BEM();
|
|
67
|
+
this.blocks.forEach((block) => {
|
|
68
|
+
copy.addBlock(block.name);
|
|
69
|
+
block.modifiers.forEach(copy.addModifier);
|
|
70
|
+
});
|
|
71
|
+
return copy;
|
|
72
|
+
}
|
|
73
|
+
block(blockNameArg) {
|
|
74
|
+
return this.copy().addBlock(blockNameArg);
|
|
75
|
+
}
|
|
76
|
+
element(elementNameArg) {
|
|
77
|
+
return this.copy().addElement(elementNameArg);
|
|
78
|
+
}
|
|
79
|
+
modifier(modifierNameArg) {
|
|
80
|
+
return this.copy().addModifier(modifierNameArg);
|
|
81
|
+
}
|
|
82
|
+
blk(blockNameArg) {
|
|
83
|
+
return this.block(blockNameArg);
|
|
84
|
+
}
|
|
85
|
+
elt(elementNameArg) {
|
|
86
|
+
return this.element(elementNameArg);
|
|
87
|
+
}
|
|
88
|
+
mod(modifierNameArg) {
|
|
89
|
+
return this.modifier(modifierNameArg);
|
|
90
|
+
}
|
|
91
|
+
cp() {
|
|
92
|
+
return this.copy();
|
|
93
|
+
}
|
|
94
|
+
get value() {
|
|
95
|
+
return this.blocks.map((block) => {
|
|
96
|
+
return [block.name, ...block.modifiers.map((modifier) => {
|
|
97
|
+
return `${block.name}_${modifier}`;
|
|
98
|
+
})].join(" ");
|
|
99
|
+
}).join(" ");
|
|
100
|
+
}
|
|
101
|
+
get val() {
|
|
102
|
+
return this.value;
|
|
103
|
+
}
|
|
104
|
+
blocks = [];
|
|
105
|
+
findBlockByName(name) {
|
|
106
|
+
return this.blocks.find((block) => block.name === name);
|
|
107
|
+
}
|
|
108
|
+
addSingleBlock(blockName) {
|
|
109
|
+
if (this.findBlockByName(blockName) !== void 0) {
|
|
110
|
+
this.setCurrentBlockByName(blockName);
|
|
111
|
+
} else {
|
|
112
|
+
const block = this.createBlockByName(blockName);
|
|
113
|
+
this.blocks.push(block);
|
|
114
|
+
}
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
addSingleElement(elementName) {
|
|
118
|
+
const currentBlock = this.getCurrentBlock();
|
|
119
|
+
if (currentBlock === void 0) this.addBlock(elementName);
|
|
120
|
+
else {
|
|
121
|
+
currentBlock.name = currentBlock.name + "__" + elementName;
|
|
122
|
+
}
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
addSingleModifier(modifierName) {
|
|
126
|
+
const currentBlock = this.getCurrentBlock();
|
|
127
|
+
if (currentBlock !== void 0) {
|
|
128
|
+
currentBlock.modifiers.push(modifierName);
|
|
129
|
+
}
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
setCurrentBlockByName(blockName) {
|
|
133
|
+
const block = this.findBlockByName(blockName);
|
|
134
|
+
if (block !== void 0) {
|
|
135
|
+
const blockPos = this.blocks.indexOf(block);
|
|
136
|
+
this.blocks = [
|
|
137
|
+
...this.blocks.slice(0, blockPos),
|
|
138
|
+
...this.blocks.slice(blockPos + 1),
|
|
139
|
+
block
|
|
140
|
+
];
|
|
141
|
+
}
|
|
142
|
+
return this;
|
|
143
|
+
}
|
|
144
|
+
createBlockByName(blockName) {
|
|
145
|
+
return { name: blockName, modifiers: [] };
|
|
146
|
+
}
|
|
147
|
+
getCurrentBlock() {
|
|
148
|
+
return this.blocks.slice(-1)[0];
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
var BEM_default = BEM;
|
|
152
|
+
|
|
153
|
+
// src/agnostic/css/bem/index.ts
|
|
154
|
+
var Bem;
|
|
155
|
+
((Bem2) => {
|
|
156
|
+
Bem2.BEM = BEM_default;
|
|
157
|
+
function bem(blockNameArg) {
|
|
158
|
+
const bem2 = new BEM_default();
|
|
159
|
+
if (blockNameArg instanceof BEM_default) return blockNameArg.copy();
|
|
160
|
+
return bem2.addBlock(blockNameArg);
|
|
161
|
+
}
|
|
162
|
+
Bem2.bem = bem;
|
|
163
|
+
Bem2.getNamesArr = getNamesArr_default;
|
|
164
|
+
})(Bem || (Bem = {}));
|
|
165
|
+
|
|
166
|
+
export {
|
|
167
|
+
Bem
|
|
168
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Tree
|
|
3
|
+
} from "./chunk-4F7ZVE7T.js";
|
|
4
|
+
import {
|
|
5
|
+
Types
|
|
6
|
+
} from "./chunk-3KQRMKQJ.js";
|
|
7
|
+
import {
|
|
8
|
+
Serialize
|
|
9
|
+
} from "./chunk-DRNK3RLE.js";
|
|
10
|
+
import {
|
|
11
|
+
Transformers
|
|
12
|
+
} from "./chunk-SCM6NACT.js";
|
|
13
|
+
import {
|
|
14
|
+
Cast
|
|
15
|
+
} from "./chunk-AMS3FB24.js";
|
|
16
|
+
import {
|
|
17
|
+
Crossenv
|
|
18
|
+
} from "./chunk-3LVR6KZH.js";
|
|
19
|
+
|
|
20
|
+
// src/agnostic/html/hyper-json/index.ts
|
|
21
|
+
var HyperJson;
|
|
22
|
+
((HyperJson2) => {
|
|
23
|
+
HyperJson2.Crossenv = Crossenv;
|
|
24
|
+
HyperJson2.Cast = Cast;
|
|
25
|
+
HyperJson2.Serialize = Serialize;
|
|
26
|
+
HyperJson2.Transformers = Transformers;
|
|
27
|
+
HyperJson2.Tree = Tree;
|
|
28
|
+
HyperJson2.Types = Types;
|
|
29
|
+
})(HyperJson || (HyperJson = {}));
|
|
30
|
+
|
|
31
|
+
export {
|
|
32
|
+
HyperJson
|
|
33
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Crossenv
|
|
3
|
+
} from "./chunk-3LVR6KZH.js";
|
|
4
|
+
import {
|
|
5
|
+
isRecord
|
|
6
|
+
} from "./chunk-YDIBNEGA.js";
|
|
7
|
+
import {
|
|
8
|
+
isFalsy
|
|
9
|
+
} from "./chunk-QXAJXTXV.js";
|
|
10
|
+
|
|
11
|
+
// src/agnostic/html/hyper-json/cast/index.ts
|
|
12
|
+
var getWindow = Crossenv.getWindow;
|
|
13
|
+
var Cast;
|
|
14
|
+
((Cast2) => {
|
|
15
|
+
Cast2.toNull = () => null;
|
|
16
|
+
Cast2.toBoolean = (input) => !isFalsy(input);
|
|
17
|
+
Cast2.toNumber = (input) => {
|
|
18
|
+
if (typeof input === "number") return input;
|
|
19
|
+
if (typeof input === "string") return parseFloat(`${input}`);
|
|
20
|
+
if (input instanceof getWindow().Text) return parseFloat(`${input.textContent}`);
|
|
21
|
+
return 0;
|
|
22
|
+
};
|
|
23
|
+
Cast2.toString = (input) => {
|
|
24
|
+
if (typeof input === "string") return input;
|
|
25
|
+
if (typeof input === "number" || typeof input === "boolean" || input === null) return `${input}`;
|
|
26
|
+
if (input instanceof getWindow().Element) return input.outerHTML;
|
|
27
|
+
if (input instanceof getWindow().Text) return input.textContent ?? "";
|
|
28
|
+
if (input instanceof getWindow().NodeList) return Array.from(input).map((e) => {
|
|
29
|
+
if (e instanceof getWindow().Element) return e.outerHTML;
|
|
30
|
+
return e.textContent;
|
|
31
|
+
}).join("");
|
|
32
|
+
return input.toString();
|
|
33
|
+
};
|
|
34
|
+
Cast2.toText = (input) => {
|
|
35
|
+
if (input instanceof getWindow().Text) return input;
|
|
36
|
+
return getWindow().document.createTextNode((0, Cast2.toString)(input));
|
|
37
|
+
};
|
|
38
|
+
Cast2.toElement = (input) => {
|
|
39
|
+
if (input instanceof getWindow().Element) return input;
|
|
40
|
+
const elt = getWindow().document.createElement("div");
|
|
41
|
+
if (input instanceof getWindow().Text) {
|
|
42
|
+
elt.append(input.cloneNode(true));
|
|
43
|
+
return elt;
|
|
44
|
+
}
|
|
45
|
+
if (input instanceof getWindow().NodeList) {
|
|
46
|
+
elt.append(...Array.from(input).map((e) => e.cloneNode(true)));
|
|
47
|
+
return elt;
|
|
48
|
+
}
|
|
49
|
+
if (Array.isArray(input)) return elt;
|
|
50
|
+
if (isRecord(input)) return elt;
|
|
51
|
+
elt.append(`${input}`);
|
|
52
|
+
return elt;
|
|
53
|
+
};
|
|
54
|
+
Cast2.toNodeList = (input) => {
|
|
55
|
+
if (input instanceof getWindow().NodeList) return input;
|
|
56
|
+
const frag = getWindow().document.createDocumentFragment();
|
|
57
|
+
if (input instanceof getWindow().Element || input instanceof getWindow().Text) {
|
|
58
|
+
frag.append(input.cloneNode(true));
|
|
59
|
+
return frag.childNodes;
|
|
60
|
+
}
|
|
61
|
+
if (Array.isArray(input)) return frag.childNodes;
|
|
62
|
+
if (isRecord(input)) return frag.childNodes;
|
|
63
|
+
frag.append(`${input}`);
|
|
64
|
+
return frag.childNodes;
|
|
65
|
+
};
|
|
66
|
+
Cast2.toArray = (input) => {
|
|
67
|
+
if (Array.isArray(input)) return input;
|
|
68
|
+
if (input instanceof getWindow().NodeList) return Array.from(input);
|
|
69
|
+
return [input];
|
|
70
|
+
};
|
|
71
|
+
Cast2.toRecord = (input) => {
|
|
72
|
+
if (isRecord(input)) return input;
|
|
73
|
+
return {};
|
|
74
|
+
};
|
|
75
|
+
Cast2.toTransformer = (input) => {
|
|
76
|
+
return () => ({
|
|
77
|
+
action: "REPLACE",
|
|
78
|
+
value: input
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
})(Cast || (Cast = {}));
|
|
82
|
+
|
|
83
|
+
export {
|
|
84
|
+
Cast
|
|
85
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Transformers,
|
|
3
|
+
Tree
|
|
4
|
+
} from "./chunk-3SQJEEBK.js";
|
|
5
|
+
import {
|
|
6
|
+
Cast
|
|
7
|
+
} from "./chunk-QO64L4KB.js";
|
|
8
|
+
import {
|
|
9
|
+
Serialize
|
|
10
|
+
} from "./chunk-DRNK3RLE.js";
|
|
11
|
+
import {
|
|
12
|
+
Crossenv
|
|
13
|
+
} from "./chunk-3LVR6KZH.js";
|
|
14
|
+
import {
|
|
15
|
+
Utils
|
|
16
|
+
} from "./chunk-YEBOL67V.js";
|
|
17
|
+
import {
|
|
18
|
+
Types
|
|
19
|
+
} from "./chunk-7QMAYGNV.js";
|
|
20
|
+
|
|
21
|
+
// src/agnostic/html/hyper-json/index.ts
|
|
22
|
+
var HyperJson;
|
|
23
|
+
((HyperJson2) => {
|
|
24
|
+
HyperJson2.Cast = Cast;
|
|
25
|
+
HyperJson2.Crossenv = Crossenv;
|
|
26
|
+
HyperJson2.Serialize = Serialize;
|
|
27
|
+
HyperJson2.Transformers = Transformers;
|
|
28
|
+
HyperJson2.Tree = Tree;
|
|
29
|
+
HyperJson2.Types = Types;
|
|
30
|
+
HyperJson2.Utils = Utils;
|
|
31
|
+
})(HyperJson || (HyperJson = {}));
|
|
32
|
+
|
|
33
|
+
export {
|
|
34
|
+
HyperJson
|
|
35
|
+
};
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Serialize
|
|
3
|
+
} from "./chunk-DRNK3RLE.js";
|
|
4
|
+
import {
|
|
5
|
+
Transformers
|
|
6
|
+
} from "./chunk-HUKHWFVL.js";
|
|
7
|
+
import {
|
|
8
|
+
Types
|
|
9
|
+
} from "./chunk-3KQRMKQJ.js";
|
|
10
|
+
import {
|
|
11
|
+
Cast
|
|
12
|
+
} from "./chunk-AMS3FB24.js";
|
|
13
|
+
import {
|
|
14
|
+
Crossenv
|
|
15
|
+
} from "./chunk-3LVR6KZH.js";
|
|
16
|
+
import {
|
|
17
|
+
isInEnum
|
|
18
|
+
} from "./chunk-E6MSDKON.js";
|
|
19
|
+
import {
|
|
20
|
+
isRecord
|
|
21
|
+
} from "./chunk-YDIBNEGA.js";
|
|
22
|
+
|
|
23
|
+
// src/agnostic/html/hyper-json/tree/index.ts
|
|
24
|
+
var getWindow = Crossenv.getWindow;
|
|
25
|
+
var isElement = (node) => node.nodeType === getWindow().Node.ELEMENT_NODE;
|
|
26
|
+
var isText = (node) => node.nodeType === getWindow().Node.TEXT_NODE;
|
|
27
|
+
var Tree = class _Tree {
|
|
28
|
+
node;
|
|
29
|
+
name;
|
|
30
|
+
parent;
|
|
31
|
+
root;
|
|
32
|
+
path;
|
|
33
|
+
pathString;
|
|
34
|
+
pathFromParent;
|
|
35
|
+
tagName;
|
|
36
|
+
attributes;
|
|
37
|
+
subtrees = /* @__PURE__ */ new Map();
|
|
38
|
+
children;
|
|
39
|
+
type;
|
|
40
|
+
constructor(node, parent, pathFromParent) {
|
|
41
|
+
this.resolve = this.resolve.bind(this);
|
|
42
|
+
this.initValue = this.initValue.bind(this);
|
|
43
|
+
this.mergeValues = this.mergeValues.bind(this);
|
|
44
|
+
this.getInnerValue = this.getInnerValue.bind(this);
|
|
45
|
+
this.wrapInnerValue = this.wrapInnerValue.bind(this);
|
|
46
|
+
this.printEvaluationsCounters = this.printEvaluationsCounters.bind(this);
|
|
47
|
+
this.evaluate = this.evaluate.bind(this);
|
|
48
|
+
this.setCache = this.setCache.bind(this);
|
|
49
|
+
this.node = node;
|
|
50
|
+
this.name = this.node instanceof getWindow().Element ? this.node.getAttribute("_name") : null;
|
|
51
|
+
this.parent = parent ?? null;
|
|
52
|
+
this.root = this.parent === null ? this : this.parent.root;
|
|
53
|
+
if (this.parent === null) this.path = [];
|
|
54
|
+
else if (pathFromParent === void 0) {
|
|
55
|
+
this.path = [...this.parent.path, 0];
|
|
56
|
+
} else {
|
|
57
|
+
this.path = [...this.parent.path, pathFromParent];
|
|
58
|
+
}
|
|
59
|
+
this.pathString = `/${this.path.join("/")}`;
|
|
60
|
+
this.pathFromParent = pathFromParent ?? this.name ?? 0;
|
|
61
|
+
this.tagName = node instanceof getWindow().Element ? node.tagName.toLowerCase() : null;
|
|
62
|
+
this.attributes = isElement(node) ? Array.from(node.attributes) : null;
|
|
63
|
+
const { childNodes } = node;
|
|
64
|
+
let positionnedChildrenCount = 0;
|
|
65
|
+
const mutableSubtrees = /* @__PURE__ */ new Map();
|
|
66
|
+
Array.from(childNodes).filter((node2, _, nodes) => {
|
|
67
|
+
if (isElement(node2)) return true;
|
|
68
|
+
if (isText(node2)) {
|
|
69
|
+
const hasContent = (node2.textContent ?? "").trim() !== "";
|
|
70
|
+
if (hasContent) return true;
|
|
71
|
+
if (nodes.some((n) => n instanceof getWindow().Element)) return false;
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}).forEach((childNode) => {
|
|
76
|
+
if (childNode instanceof getWindow().Text) {
|
|
77
|
+
mutableSubtrees.set(
|
|
78
|
+
positionnedChildrenCount,
|
|
79
|
+
new _Tree(childNode, this, positionnedChildrenCount)
|
|
80
|
+
);
|
|
81
|
+
positionnedChildrenCount += 1;
|
|
82
|
+
} else {
|
|
83
|
+
const propertyName = childNode.getAttribute("_name");
|
|
84
|
+
if (propertyName === null) {
|
|
85
|
+
mutableSubtrees.set(
|
|
86
|
+
positionnedChildrenCount,
|
|
87
|
+
new _Tree(childNode, this, positionnedChildrenCount)
|
|
88
|
+
);
|
|
89
|
+
positionnedChildrenCount += 1;
|
|
90
|
+
} else {
|
|
91
|
+
mutableSubtrees.set(
|
|
92
|
+
propertyName,
|
|
93
|
+
new _Tree(childNode, this, propertyName)
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
this.subtrees = mutableSubtrees;
|
|
99
|
+
this.children = Array.from(this.subtrees.values());
|
|
100
|
+
if (this.tagName === null) {
|
|
101
|
+
this.type = "text";
|
|
102
|
+
} else if (this.tagName === Types.TyperTagName.NULL) {
|
|
103
|
+
this.type = "null";
|
|
104
|
+
} else if (this.tagName === Types.TyperTagName.BOOLEAN) {
|
|
105
|
+
this.type = "boolean";
|
|
106
|
+
} else if (this.tagName === Types.TyperTagName.NUMBER) {
|
|
107
|
+
this.type = "number";
|
|
108
|
+
} else if (this.tagName === Types.TyperTagName.STRING) {
|
|
109
|
+
this.type = "string";
|
|
110
|
+
} else if (this.tagName === Types.TyperTagName.TEXT) {
|
|
111
|
+
this.type = "text";
|
|
112
|
+
} else if (this.tagName === Types.TyperTagName.NODELIST) {
|
|
113
|
+
this.type = "nodelist";
|
|
114
|
+
} else if (this.tagName === Types.TyperTagName.ARRAY) {
|
|
115
|
+
this.type = "array";
|
|
116
|
+
} else if (this.tagName === Types.TyperTagName.RECORD) {
|
|
117
|
+
this.type = "record";
|
|
118
|
+
} else if (isInEnum(Types.TransformerTagName, this.tagName)) {
|
|
119
|
+
this.type = "transformer";
|
|
120
|
+
} else {
|
|
121
|
+
this.type = "element";
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
resolve = function(path) {
|
|
125
|
+
let currentTree = this.root;
|
|
126
|
+
for (const chunk of path) {
|
|
127
|
+
const { subtrees } = currentTree;
|
|
128
|
+
const foundSubtree = subtrees.get(chunk);
|
|
129
|
+
if (foundSubtree === void 0) return void 0;
|
|
130
|
+
currentTree = foundSubtree;
|
|
131
|
+
}
|
|
132
|
+
return currentTree;
|
|
133
|
+
};
|
|
134
|
+
initValue() {
|
|
135
|
+
const { type } = this;
|
|
136
|
+
let currentValue;
|
|
137
|
+
if (type === "null") {
|
|
138
|
+
currentValue = null;
|
|
139
|
+
} else if (type === "boolean") {
|
|
140
|
+
currentValue = false;
|
|
141
|
+
} else if (type === "number") {
|
|
142
|
+
currentValue = 0;
|
|
143
|
+
} else if (type === "string") {
|
|
144
|
+
currentValue = "";
|
|
145
|
+
} else if (type === "text") {
|
|
146
|
+
currentValue = this.node.textContent;
|
|
147
|
+
} else if (type === "element") {
|
|
148
|
+
currentValue = getWindow().document.createDocumentFragment().childNodes;
|
|
149
|
+
} else if (type === "nodelist") {
|
|
150
|
+
currentValue = getWindow().document.createDocumentFragment().childNodes;
|
|
151
|
+
} else if (type === "array") {
|
|
152
|
+
currentValue = [];
|
|
153
|
+
} else if (type === "record") {
|
|
154
|
+
currentValue = {};
|
|
155
|
+
} else if (type === "transformer") {
|
|
156
|
+
currentValue = [];
|
|
157
|
+
} else {
|
|
158
|
+
currentValue = null;
|
|
159
|
+
}
|
|
160
|
+
return currentValue;
|
|
161
|
+
}
|
|
162
|
+
mergeValues(currentValue, incomingValue, mergeKey) {
|
|
163
|
+
const { Element, Text, NodeList, document } = getWindow();
|
|
164
|
+
if (typeof incomingValue === "function") {
|
|
165
|
+
const evaluated = incomingValue(currentValue, { resolver: this.resolve });
|
|
166
|
+
if (evaluated.action === null) return currentValue;
|
|
167
|
+
if (evaluated.action === "REPLACE") return evaluated.value;
|
|
168
|
+
return this.mergeValues(currentValue, evaluated.value, mergeKey);
|
|
169
|
+
}
|
|
170
|
+
if (Array.isArray(currentValue)) {
|
|
171
|
+
if (typeof mergeKey === "string") return currentValue;
|
|
172
|
+
return [...currentValue, incomingValue];
|
|
173
|
+
}
|
|
174
|
+
if (currentValue === null || typeof currentValue === "boolean" || typeof currentValue === "number" || typeof currentValue === "string" || typeof currentValue === "function" || currentValue instanceof Text || currentValue instanceof Element) {
|
|
175
|
+
if (incomingValue === null || typeof incomingValue === "boolean" || typeof incomingValue === "number" || typeof incomingValue === "string" || Array.isArray(incomingValue) || isRecord(incomingValue)) {
|
|
176
|
+
return incomingValue;
|
|
177
|
+
}
|
|
178
|
+
const frag = document.createDocumentFragment();
|
|
179
|
+
if (currentValue instanceof Element || currentValue instanceof Text) frag.append(currentValue.cloneNode(true));
|
|
180
|
+
else frag.append(`${currentValue}`);
|
|
181
|
+
if (incomingValue instanceof Element || incomingValue instanceof Text) {
|
|
182
|
+
frag.append(incomingValue.cloneNode(true));
|
|
183
|
+
return frag.childNodes;
|
|
184
|
+
}
|
|
185
|
+
frag.append(...Array.from(incomingValue).map((e) => e.cloneNode(true)));
|
|
186
|
+
return frag.childNodes;
|
|
187
|
+
}
|
|
188
|
+
if (currentValue instanceof NodeList) {
|
|
189
|
+
if (incomingValue instanceof Element || incomingValue instanceof Text) {
|
|
190
|
+
const frag = document.createDocumentFragment();
|
|
191
|
+
frag.append(...Array.from(currentValue).map((e) => e.cloneNode(true)), incomingValue);
|
|
192
|
+
return frag.childNodes;
|
|
193
|
+
}
|
|
194
|
+
if (incomingValue instanceof NodeList) {
|
|
195
|
+
const frag = document.createDocumentFragment();
|
|
196
|
+
frag.append(
|
|
197
|
+
...Array.from(currentValue).map((e) => e.cloneNode(true)),
|
|
198
|
+
...Array.from(incomingValue).map((e) => e.cloneNode(true))
|
|
199
|
+
);
|
|
200
|
+
return frag.childNodes;
|
|
201
|
+
}
|
|
202
|
+
if (incomingValue === null || typeof incomingValue === "string" || typeof incomingValue === "number" || typeof incomingValue === "boolean") {
|
|
203
|
+
const frag = document.createDocumentFragment();
|
|
204
|
+
frag.append(...Array.from(currentValue).map((e) => e.cloneNode(true)), `${incomingValue}`);
|
|
205
|
+
return frag.childNodes;
|
|
206
|
+
}
|
|
207
|
+
if (Array.isArray(incomingValue)) return [
|
|
208
|
+
...Array.from(currentValue),
|
|
209
|
+
...incomingValue
|
|
210
|
+
];
|
|
211
|
+
return { ...incomingValue };
|
|
212
|
+
}
|
|
213
|
+
if (typeof mergeKey === "number") return currentValue;
|
|
214
|
+
return {
|
|
215
|
+
...currentValue,
|
|
216
|
+
[mergeKey]: incomingValue
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
getInnerValue(initialValue) {
|
|
220
|
+
const { subtrees } = this;
|
|
221
|
+
const innerValue = Array.from(subtrees.entries()).reduce((currentValue, [subpath, subtree]) => this.mergeValues(
|
|
222
|
+
currentValue,
|
|
223
|
+
subtree.evaluate(),
|
|
224
|
+
subpath
|
|
225
|
+
), initialValue);
|
|
226
|
+
return innerValue;
|
|
227
|
+
}
|
|
228
|
+
wrapInnerValue(innerValue) {
|
|
229
|
+
const { type, pathFromParent } = this;
|
|
230
|
+
if (type === "transformer") {
|
|
231
|
+
const transformerName = this.tagName;
|
|
232
|
+
const generator = Transformers.get(transformerName);
|
|
233
|
+
if (generator === void 0) return innerValue;
|
|
234
|
+
const transformer = Array.isArray(innerValue) ? generator(pathFromParent, ...innerValue) : generator(pathFromParent, innerValue);
|
|
235
|
+
return transformer;
|
|
236
|
+
}
|
|
237
|
+
if (type === "null") return Cast.toNull();
|
|
238
|
+
if (type === "boolean") return Cast.toBoolean(innerValue);
|
|
239
|
+
if (type === "number") return Cast.toNumber(innerValue);
|
|
240
|
+
if (type === "string") return Cast.toString(innerValue);
|
|
241
|
+
if (type === "array") return Cast.toArray(innerValue);
|
|
242
|
+
if (type === "record") return Cast.toRecord(innerValue);
|
|
243
|
+
if (type === "text") return Cast.toText(innerValue);
|
|
244
|
+
if (type === "element") return Cast.toElement(innerValue);
|
|
245
|
+
if (type === "nodelist") return Cast.toNodeList(innerValue);
|
|
246
|
+
return Cast.toNull();
|
|
247
|
+
}
|
|
248
|
+
evaluationsCounter = {
|
|
249
|
+
computed: 0,
|
|
250
|
+
cached: 0
|
|
251
|
+
};
|
|
252
|
+
printEvaluationsCounters() {
|
|
253
|
+
const { subtrees, evaluationsCounter } = this;
|
|
254
|
+
const { computed, cached } = evaluationsCounter;
|
|
255
|
+
console.log(this.pathString, `computed: ${computed}, cached: ${cached}`);
|
|
256
|
+
subtrees.forEach((subtree) => subtree.printEvaluationsCounters());
|
|
257
|
+
}
|
|
258
|
+
cache = void 0;
|
|
259
|
+
setCache(value) {
|
|
260
|
+
this.cache = Serialize.serialize(value);
|
|
261
|
+
}
|
|
262
|
+
evaluate() {
|
|
263
|
+
if (this.cache !== void 0) {
|
|
264
|
+
this.evaluationsCounter.cached++;
|
|
265
|
+
return Serialize.deserialize(this.cache);
|
|
266
|
+
}
|
|
267
|
+
const init = this.initValue();
|
|
268
|
+
const inner = this.getInnerValue(init);
|
|
269
|
+
const wrapped = this.wrapInnerValue(inner);
|
|
270
|
+
this.setCache(wrapped);
|
|
271
|
+
this.evaluationsCounter.computed++;
|
|
272
|
+
return wrapped;
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
export {
|
|
277
|
+
Tree
|
|
278
|
+
};
|