@processandtools/rp-article-designer 1.0.0 → 1.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/dist/index.cjs +1 -8
- package/dist/index.js +1 -2571
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,2571 +1 @@
|
|
|
1
|
-
var Be = Object.defineProperty;
|
|
2
|
-
var He = (e, t, r) => t in e ? Be(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
|
|
3
|
-
var C = (e, t, r) => He(e, typeof t != "symbol" ? t + "" : t, r);
|
|
4
|
-
import { jsx as f, jsxs as O, Fragment as pe } from "react/jsx-runtime";
|
|
5
|
-
import { createContext as le, useState as re, useCallback as Ie, useMemo as $, useEffect as Ue, useContext as V, Fragment as Ze } from "react";
|
|
6
|
-
import { Edges as Ke, Text as Ye } from "@react-three/drei";
|
|
7
|
-
const F = le(void 0);
|
|
8
|
-
function We({ data: e, children: t, names: r }) {
|
|
9
|
-
const i = e, [n, s] = re(i), [a, o] = re(null), [l, u] = re(null), h = Ie((S) => ({
|
|
10
|
-
anglElems: n.anglelem.filter((T) => T.NAME === S),
|
|
11
|
-
anglZones: n.anglzone.filter((T) => T.NAME === S),
|
|
12
|
-
anglPrims: n.anglprim.filter((T) => T.NAME === S),
|
|
13
|
-
anglClies: n.anglclie.filter((T) => T.NAME === S),
|
|
14
|
-
anglGrtxs: n.anglgrtx.filter((T) => T.NAME === S)
|
|
15
|
-
}), [n]), { anglElems: m, anglZones: p, anglPrims: E, anglClies: y, anglGrtxs: c } = $(() => r && r.length > 0 ? {
|
|
16
|
-
anglElems: n.anglelem.filter((S) => r.includes(S.NAME)),
|
|
17
|
-
anglZones: n.anglzone.filter((S) => r.includes(S.NAME)),
|
|
18
|
-
anglPrims: n.anglprim.filter((S) => r.includes(S.NAME)),
|
|
19
|
-
anglClies: n.anglclie.filter((S) => r.includes(S.NAME)),
|
|
20
|
-
anglGrtxs: n.anglgrtx.filter((S) => r.includes(S.NAME))
|
|
21
|
-
} : {
|
|
22
|
-
anglElems: n.anglelem,
|
|
23
|
-
anglZones: n.anglzone,
|
|
24
|
-
anglPrims: n.anglprim,
|
|
25
|
-
anglClies: n.anglclie,
|
|
26
|
-
anglGrtxs: n.anglgrtx
|
|
27
|
-
}, [n, r]), D = {
|
|
28
|
-
anglElems: m,
|
|
29
|
-
anglZones: p,
|
|
30
|
-
anglPrims: E,
|
|
31
|
-
anglClies: y,
|
|
32
|
-
anglGrtxs: c,
|
|
33
|
-
selectedElem: a,
|
|
34
|
-
setSelectedElem: o,
|
|
35
|
-
hoveredElem: l,
|
|
36
|
-
setHoveredElem: u,
|
|
37
|
-
updateAnglPrim: (S, T, _) => {
|
|
38
|
-
s((k) => ({
|
|
39
|
-
...k,
|
|
40
|
-
anglprim: k.anglprim.map(
|
|
41
|
-
(w) => w.NAME === S ? { ...w, [T]: _ } : w
|
|
42
|
-
)
|
|
43
|
-
}));
|
|
44
|
-
},
|
|
45
|
-
updateAnglElem: (S, T, _, k) => {
|
|
46
|
-
s((w) => ({
|
|
47
|
-
...w,
|
|
48
|
-
anglelem: w.anglelem.map(
|
|
49
|
-
(b) => b.TREEID === T && b.NAME === S ? { ...b, [_]: k } : b
|
|
50
|
-
)
|
|
51
|
-
}));
|
|
52
|
-
},
|
|
53
|
-
updateAnglZone: (S, T, _, k) => {
|
|
54
|
-
s((w) => ({
|
|
55
|
-
...w,
|
|
56
|
-
anglzone: w.anglzone.map(
|
|
57
|
-
(b) => b.TREEID === T && b.NAME === S ? { ...b, [_]: k } : b
|
|
58
|
-
)
|
|
59
|
-
}));
|
|
60
|
-
},
|
|
61
|
-
updateAnglClie: (S, T, _, k, w) => {
|
|
62
|
-
s((b) => ({
|
|
63
|
-
...b,
|
|
64
|
-
anglclie: b.anglclie.map(
|
|
65
|
-
(L) => L.TREEID === T && L.TAGNAME === _ && L.DATATYPE === w && L.NAME === S ? {
|
|
66
|
-
...L,
|
|
67
|
-
TAGVALUE: k,
|
|
68
|
-
DATE_LASTCHANGE: (/* @__PURE__ */ new Date()).toISOString()
|
|
69
|
-
} : L
|
|
70
|
-
)
|
|
71
|
-
}));
|
|
72
|
-
},
|
|
73
|
-
updateAnglGrtx: (S, T, _, k) => {
|
|
74
|
-
s((w) => ({
|
|
75
|
-
...w,
|
|
76
|
-
anglgrtx: w.anglgrtx.map(
|
|
77
|
-
(b) => b.TREEID === T && b.NUM === _ && b.NAME === S ? {
|
|
78
|
-
...b,
|
|
79
|
-
TEXT: k,
|
|
80
|
-
DATE_LASTCHANGE: (/* @__PURE__ */ new Date()).toISOString()
|
|
81
|
-
} : b
|
|
82
|
-
)
|
|
83
|
-
}));
|
|
84
|
-
},
|
|
85
|
-
// Multi-article support
|
|
86
|
-
getArticleData: h,
|
|
87
|
-
allData: n
|
|
88
|
-
};
|
|
89
|
-
return /* @__PURE__ */ f(F.Provider, { value: D, children: t });
|
|
90
|
-
}
|
|
91
|
-
const _e = le(null);
|
|
92
|
-
function be({ children: e, articleName: t, dimensionOverrides: r }) {
|
|
93
|
-
const i = {
|
|
94
|
-
articleName: t,
|
|
95
|
-
dimensionOverrides: r
|
|
96
|
-
};
|
|
97
|
-
return /* @__PURE__ */ f(_e.Provider, { value: i, children: e });
|
|
98
|
-
}
|
|
99
|
-
const ke = le(void 0);
|
|
100
|
-
var P = /* @__PURE__ */ ((e) => (e[e.Surface = 3] = "Surface", e[e.Material = 4] = "Material", e[e.Numeric = 100] = "Numeric", e[e.Text = 120] = "Text", e))(P || {});
|
|
101
|
-
function me(e) {
|
|
102
|
-
return new Map(e.map((t) => [t.NAME, t]));
|
|
103
|
-
}
|
|
104
|
-
function ce(e, t, r = /* @__PURE__ */ new Set()) {
|
|
105
|
-
const i = t.get(e);
|
|
106
|
-
if (!i) return;
|
|
107
|
-
if (r.has(e)) {
|
|
108
|
-
console.error(`Circular dependency: ${[...r, e].join(" -> ")}`);
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
const n = i.WERT;
|
|
112
|
-
if (n.startsWith("$") && i.TYP != P.Text) {
|
|
113
|
-
const a = n.slice(1);
|
|
114
|
-
return r.add(e), ce(a, t, r);
|
|
115
|
-
}
|
|
116
|
-
const s = Number(n);
|
|
117
|
-
return isNaN(s) ? n : s;
|
|
118
|
-
}
|
|
119
|
-
function Ae(e, t, r) {
|
|
120
|
-
const i = r.get(e);
|
|
121
|
-
if (!i)
|
|
122
|
-
return console.warn(`Variable ${e} not found`), r;
|
|
123
|
-
const n = new Map(r);
|
|
124
|
-
return n.set(e, { ...i, WERT: String(t) }), n;
|
|
125
|
-
}
|
|
126
|
-
function de(e, t) {
|
|
127
|
-
return e.replace(/\$([A-Za-z_][A-Za-z0-9_]*)/g, (r, i) => {
|
|
128
|
-
const n = ce(i, t);
|
|
129
|
-
return n !== void 0 ? String(n) : r;
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
function ge(e) {
|
|
133
|
-
return /\$[A-Za-z_][A-Za-z0-9_]*/g.test(e);
|
|
134
|
-
}
|
|
135
|
-
function Xe(e) {
|
|
136
|
-
const t = e.matchAll(/\$([A-Za-z_][A-Za-z0-9_]*)/g);
|
|
137
|
-
return Array.from(t, (r) => r[1]);
|
|
138
|
-
}
|
|
139
|
-
const nr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
140
|
-
__proto__: null,
|
|
141
|
-
createVariableTree: me,
|
|
142
|
-
extractVariableNames: Xe,
|
|
143
|
-
getValue: ce,
|
|
144
|
-
hasVariables: ge,
|
|
145
|
-
resolveString: de,
|
|
146
|
-
setValue: Ae
|
|
147
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
148
|
-
function je({ children: e, imosVariables: t }) {
|
|
149
|
-
const [r, i] = re(() => me(t));
|
|
150
|
-
Ue(() => {
|
|
151
|
-
i(me(t));
|
|
152
|
-
}, [t]);
|
|
153
|
-
const n = Ie((a, o) => {
|
|
154
|
-
i((l) => Ae(a, o, l));
|
|
155
|
-
}, []), s = { tree: r, setValue: n };
|
|
156
|
-
return /* @__PURE__ */ f(ke.Provider, { value: s, children: e });
|
|
157
|
-
}
|
|
158
|
-
const De = le(null), Ne = (e) => {
|
|
159
|
-
const t = Number(e);
|
|
160
|
-
return isNaN(t) ? null : t;
|
|
161
|
-
}, Y = (e) => e == null ? "" : String(e), z = (e, t, r) => {
|
|
162
|
-
const i = Ne(e), n = Ne(t);
|
|
163
|
-
return i === null || n === null ? !1 : r(i, n);
|
|
164
|
-
}, K = (e, t, r) => e == null || t == null ? !1 : r(Y(e), Y(t)), qe = {
|
|
165
|
-
// Equality
|
|
166
|
-
"=": (e, t) => e == null || t == null ? e === t : Y(e).trim() === Y(t).trim(),
|
|
167
|
-
"!=": (e, t) => e == null || t == null ? e !== t : Y(e).trim() !== Y(t).trim(),
|
|
168
|
-
// Numeric comparisons - all use compareNumbers helper
|
|
169
|
-
">": (e, t) => z(e, t, (r, i) => r > i),
|
|
170
|
-
"<": (e, t) => z(e, t, (r, i) => r < i),
|
|
171
|
-
">=": (e, t) => z(e, t, (r, i) => r >= i),
|
|
172
|
-
"<=": (e, t) => z(e, t, (r, i) => r <= i),
|
|
173
|
-
// HTML entity versions - reuse same logic
|
|
174
|
-
">": (e, t) => z(e, t, (r, i) => r > i),
|
|
175
|
-
">=": (e, t) => z(e, t, (r, i) => r >= i),
|
|
176
|
-
"<": (e, t) => z(e, t, (r, i) => r < i),
|
|
177
|
-
"<=": (e, t) => z(e, t, (r, i) => r <= i),
|
|
178
|
-
// String operations - all use compareStrings helper
|
|
179
|
-
B: (e, t) => K(e, t, (r, i) => r.startsWith(i)),
|
|
180
|
-
"!B": (e, t) => K(e, t, (r, i) => !r.startsWith(i)),
|
|
181
|
-
E: (e, t) => K(e, t, (r, i) => r.endsWith(i)),
|
|
182
|
-
"!E": (e, t) => K(e, t, (r, i) => !r.endsWith(i)),
|
|
183
|
-
C: (e, t) => K(e, t, (r, i) => r.includes(i)),
|
|
184
|
-
"!C": (e, t) => K(e, t, (r, i) => !r.includes(i))
|
|
185
|
-
}, Je = {
|
|
186
|
-
"Zusatzfilter 3": "filter3",
|
|
187
|
-
"Zusatzfilter 4": "filter4"
|
|
188
|
-
// Add more mappings as needed
|
|
189
|
-
};
|
|
190
|
-
function we(e, t = {}) {
|
|
191
|
-
const { variableTree: r, dataType: i, silent: n = !1, allowFunctions: s = !0 } = t, a = /^(.+?)\s*(mm|cm|m|in|ft|px|pt|%|deg|rad)$/i, o = {
|
|
192
|
-
value: void 0,
|
|
193
|
-
original: e,
|
|
194
|
-
resolved: e,
|
|
195
|
-
hadVariables: !1,
|
|
196
|
-
wasEvaluated: !1
|
|
197
|
-
};
|
|
198
|
-
try {
|
|
199
|
-
let l = e.trim(), u;
|
|
200
|
-
if (a.test(l)) {
|
|
201
|
-
const h = l.match(a);
|
|
202
|
-
h && (l = h[1].trim(), u = h[2]);
|
|
203
|
-
}
|
|
204
|
-
r && ge(l) && (o.hadVariables = !0, l = de(l, r), o.resolved = l), Ce(l) ? (o.wasEvaluated = !0, o.value = Le(l, s)) : Ee(l) ? (o.wasEvaluated = !0, o.value = Se(l, s)) : o.value = et(l, i);
|
|
205
|
-
} catch (l) {
|
|
206
|
-
o.error = l instanceof Error ? l.message : String(l), n || console.error(`[ExpressionResolver] Failed to resolve: "${e}"`, l), o.value = e;
|
|
207
|
-
}
|
|
208
|
-
return o;
|
|
209
|
-
}
|
|
210
|
-
function se(e, t = {}) {
|
|
211
|
-
return we(e, t).value;
|
|
212
|
-
}
|
|
213
|
-
function Ce(e) {
|
|
214
|
-
return !e || typeof e != "string" ? !1 : /^\s*IF\s*\(/i.test(e.trim());
|
|
215
|
-
}
|
|
216
|
-
function Le(e, t = !0) {
|
|
217
|
-
const i = e.trim().match(/^IF\s*\((.*)\)\s*$/i);
|
|
218
|
-
if (!i)
|
|
219
|
-
throw new Error(`Invalid IF statement: ${e}`);
|
|
220
|
-
const n = i[1], s = Qe(n);
|
|
221
|
-
if (s.length !== 3)
|
|
222
|
-
throw new Error(`IF statement must have exactly 3 parts: IF(condition, trueValue, falseValue). Got: ${s.length} parts`);
|
|
223
|
-
const [a, o, l] = s, h = ie(a.trim(), t) ? o.trim() : l.trim();
|
|
224
|
-
if (Ce(h))
|
|
225
|
-
return Le(h, t);
|
|
226
|
-
if (Ee(h))
|
|
227
|
-
return Se(h, t);
|
|
228
|
-
{
|
|
229
|
-
const m = Number(h);
|
|
230
|
-
return isNaN(m) ? h : m;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
function Qe(e) {
|
|
234
|
-
const t = [];
|
|
235
|
-
let r = "", i = 0;
|
|
236
|
-
for (let n = 0; n < e.length; n++) {
|
|
237
|
-
const s = e[n];
|
|
238
|
-
s === "(" ? (i++, r += s) : s === ")" ? (i--, r += s) : s === "," && i === 0 ? (t.push(r), r = "") : r += s;
|
|
239
|
-
}
|
|
240
|
-
return r && t.push(r), t;
|
|
241
|
-
}
|
|
242
|
-
function ie(e, t) {
|
|
243
|
-
if (/\bAND\b/i.test(e))
|
|
244
|
-
return e.split(/\bAND\b/i).every((u) => ie(u.trim(), t));
|
|
245
|
-
if (/\bOR\b/i.test(e))
|
|
246
|
-
return e.split(/\bOR\b/i).some((u) => ie(u.trim(), t));
|
|
247
|
-
if (/^\s*NOT\s+/i.test(e)) {
|
|
248
|
-
const l = e.replace(/^\s*NOT\s+/i, "").trim();
|
|
249
|
-
return !ie(l, t);
|
|
250
|
-
}
|
|
251
|
-
const r = e.match(/(.+?)(<=|>=|!=|<>|=|<|>)(.+)/);
|
|
252
|
-
if (!r)
|
|
253
|
-
throw new Error(`Invalid condition: ${e}`);
|
|
254
|
-
const [, i, n, s] = r, a = Te(i.trim(), t), o = Te(s.trim(), t);
|
|
255
|
-
switch (n) {
|
|
256
|
-
case "=":
|
|
257
|
-
return a === o;
|
|
258
|
-
case "!=":
|
|
259
|
-
case "<>":
|
|
260
|
-
return a !== o;
|
|
261
|
-
case "<":
|
|
262
|
-
return a < o;
|
|
263
|
-
case ">":
|
|
264
|
-
return a > o;
|
|
265
|
-
case "<=":
|
|
266
|
-
return a <= o;
|
|
267
|
-
case ">=":
|
|
268
|
-
return a >= o;
|
|
269
|
-
default:
|
|
270
|
-
throw new Error(`Unknown operator: ${n}`);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
function Te(e, t) {
|
|
274
|
-
if (e.startsWith('"') && e.endsWith('"') || e.startsWith("'") && e.endsWith("'"))
|
|
275
|
-
return e.slice(1, -1);
|
|
276
|
-
if (Ee(e))
|
|
277
|
-
return Se(e, t);
|
|
278
|
-
const r = Number(e);
|
|
279
|
-
return isNaN(r) ? e : r;
|
|
280
|
-
}
|
|
281
|
-
function Ee(e) {
|
|
282
|
-
if (!e || typeof e != "string") return !1;
|
|
283
|
-
const t = e.trim();
|
|
284
|
-
return /[+\-*/()]/.test(t) ? /^[\d\s+\-*/().,a-z]+$/i.test(t) : !1;
|
|
285
|
-
}
|
|
286
|
-
const he = /* @__PURE__ */ new Map();
|
|
287
|
-
function Se(e, t = !0) {
|
|
288
|
-
const r = e.trim(), i = `${r}:${t}`;
|
|
289
|
-
if (he.has(i))
|
|
290
|
-
return he.get(i);
|
|
291
|
-
let n = r.replace(/\s+/g, "");
|
|
292
|
-
if (t && (n = n.replace(/round\(/g, "Math.round(").replace(/floor\(/g, "Math.floor(").replace(/ceil\(/g, "Math.ceil(").replace(/abs\(/g, "Math.abs(").replace(/min\(/g, "Math.min(").replace(/max\(/g, "Math.max(").replace(/pow\(/g, "Math.pow(").replace(/sqrt\(/g, "Math.sqrt(")), !(t ? /^[\d+\-*/().,a-zA-Z]+$/ : /^[\d+\-*/().]+$/).test(n))
|
|
293
|
-
throw new Error(`Expression contains invalid characters: ${e}`);
|
|
294
|
-
if (!n)
|
|
295
|
-
throw new Error("Empty expression");
|
|
296
|
-
try {
|
|
297
|
-
const a = Function(`'use strict'; return (${n})`)();
|
|
298
|
-
if (typeof a != "number" || isNaN(a))
|
|
299
|
-
throw new Error(`Expression did not evaluate to a number: ${e}`);
|
|
300
|
-
return he.set(i, a), a;
|
|
301
|
-
} catch (a) {
|
|
302
|
-
throw new Error(`Failed to evaluate expression: ${e} - ${a}`);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
function et(e, t) {
|
|
306
|
-
if (!t) {
|
|
307
|
-
const r = Number(e);
|
|
308
|
-
return isNaN(r) ? e : r;
|
|
309
|
-
}
|
|
310
|
-
switch (t.toUpperCase()) {
|
|
311
|
-
case "FL":
|
|
312
|
-
return parseFloat(e);
|
|
313
|
-
case "IN":
|
|
314
|
-
return parseInt(e, 10);
|
|
315
|
-
case "CI":
|
|
316
|
-
case "CS":
|
|
317
|
-
case "ST":
|
|
318
|
-
return e;
|
|
319
|
-
case "DA":
|
|
320
|
-
return new Date(e).toISOString();
|
|
321
|
-
default:
|
|
322
|
-
const r = Number(e);
|
|
323
|
-
return isNaN(r) ? e : r;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
const tt = (e) => Je[e] || e, W = class W {
|
|
327
|
-
};
|
|
328
|
-
C(W, "evaluateTree", (t, r, i) => t ? t.roots.every((n) => W.evaluateNode(n, r, i)) : !1), C(W, "evaluateNode", (t, r, i) => {
|
|
329
|
-
if (!t) return !1;
|
|
330
|
-
if (t.kind === "comparison") {
|
|
331
|
-
let n = t.data.LEFTVALUE;
|
|
332
|
-
const s = tt(t.data.LEFTVALUE);
|
|
333
|
-
r[s] !== void 0 ? n = r[s] : n = se(t.data.LEFTVALUE, { variableTree: i, dataType: t.data.DATATYPE, silent: !0 });
|
|
334
|
-
const a = se(t.data.RIGHTVALUE, { variableTree: i, dataType: t.data.DATATYPE, silent: !0 });
|
|
335
|
-
return qe[t.data.COMPARISONTYPE](n, a);
|
|
336
|
-
}
|
|
337
|
-
if (t.kind === "operation") {
|
|
338
|
-
const n = t.children.map((s) => W.evaluateNode(s, r, i));
|
|
339
|
-
switch (t.data.OPSTRING) {
|
|
340
|
-
case "AND":
|
|
341
|
-
return n.every(Boolean);
|
|
342
|
-
case "OR":
|
|
343
|
-
return n.some(Boolean);
|
|
344
|
-
case "NOT":
|
|
345
|
-
return !n.every(Boolean);
|
|
346
|
-
case "NOT OR":
|
|
347
|
-
return !n.some(Boolean);
|
|
348
|
-
default:
|
|
349
|
-
return !1;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
return !1;
|
|
353
|
-
});
|
|
354
|
-
let ae = W;
|
|
355
|
-
class Me {
|
|
356
|
-
static evaluate(t, r, i) {
|
|
357
|
-
const n = t.nodes.find((s) => s.conditionId === 0 || s.conditionTree === null);
|
|
358
|
-
for (const s of t.nodes) {
|
|
359
|
-
if (s.conditionId === 0 || s.conditionTree === null) continue;
|
|
360
|
-
if (ae.evaluateTree(s.conditionTree, r, i))
|
|
361
|
-
return {
|
|
362
|
-
lindiv: s.lindiv,
|
|
363
|
-
nodeNum: s.nodeNum,
|
|
364
|
-
matched: !0,
|
|
365
|
-
isDefault: !1,
|
|
366
|
-
descriptorType: t.descriptor.DESC_TYPE
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
if (n)
|
|
370
|
-
return {
|
|
371
|
-
lindiv: n.lindiv,
|
|
372
|
-
nodeNum: n.nodeNum,
|
|
373
|
-
matched: !1,
|
|
374
|
-
isDefault: !0,
|
|
375
|
-
descriptorType: t.descriptor.DESC_TYPE
|
|
376
|
-
};
|
|
377
|
-
throw new Error("No matching node found and no default node exists");
|
|
378
|
-
}
|
|
379
|
-
static findAllNonDefaultMatches(t, r, i) {
|
|
380
|
-
const n = [];
|
|
381
|
-
for (const s of t.nodes) {
|
|
382
|
-
if (s.conditionId === 0 || s.conditionTree === null) continue;
|
|
383
|
-
ae.evaluateTree(s.conditionTree, r, i) && n.push(s);
|
|
384
|
-
}
|
|
385
|
-
return n;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
class rt {
|
|
389
|
-
constructor(t, r) {
|
|
390
|
-
C(this, "descriptors");
|
|
391
|
-
C(this, "variableTree");
|
|
392
|
-
this.descriptors = new Map(
|
|
393
|
-
t.map((i) => [i.descriptor.NAME, i])
|
|
394
|
-
), this.variableTree = r;
|
|
395
|
-
}
|
|
396
|
-
evaluate(t, r) {
|
|
397
|
-
const i = this.getDescriptor(t);
|
|
398
|
-
if (!i)
|
|
399
|
-
throw new Error(`Descriptor not found: ${t}`);
|
|
400
|
-
return Me.evaluate(i, r, this.variableTree);
|
|
401
|
-
}
|
|
402
|
-
getDescriptor(t) {
|
|
403
|
-
return this.descriptors.get(t);
|
|
404
|
-
}
|
|
405
|
-
hasDescriptor(t) {
|
|
406
|
-
return this.descriptors.has(t);
|
|
407
|
-
}
|
|
408
|
-
getDescriptorNames() {
|
|
409
|
-
return Array.from(this.descriptors.keys());
|
|
410
|
-
}
|
|
411
|
-
getDescriptorsByType(t) {
|
|
412
|
-
return Array.from(this.descriptors.values()).filter(
|
|
413
|
-
(r) => r.descriptor.DESC_TYPE === t
|
|
414
|
-
);
|
|
415
|
-
}
|
|
416
|
-
findAllMatches(t, r) {
|
|
417
|
-
const i = this.getDescriptor(t);
|
|
418
|
-
if (!i)
|
|
419
|
-
throw new Error(`Descriptor not found: ${t}`);
|
|
420
|
-
return Me.findAllNonDefaultMatches(i, r, this.variableTree);
|
|
421
|
-
}
|
|
422
|
-
getStats() {
|
|
423
|
-
const t = {};
|
|
424
|
-
for (const r of this.descriptors.values()) {
|
|
425
|
-
const i = r.descriptor.DESC_TYPE;
|
|
426
|
-
t[i] = (t[i] || 0) + 1;
|
|
427
|
-
}
|
|
428
|
-
return {
|
|
429
|
-
total: this.descriptors.size,
|
|
430
|
-
byType: t,
|
|
431
|
-
names: this.getDescriptorNames()
|
|
432
|
-
};
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
function j() {
|
|
436
|
-
const e = V(ke);
|
|
437
|
-
if (!e)
|
|
438
|
-
throw new Error("useVariables must be used within a VariableProvider");
|
|
439
|
-
const { tree: t, setValue: r } = e, i = $(() => (a) => ce(a, t), [t]), n = $(() => (a) => de(a, t), [t]), s = $(() => (a) => ge(a), []);
|
|
440
|
-
return {
|
|
441
|
-
tree: t,
|
|
442
|
-
// Variable tree
|
|
443
|
-
getValue: i,
|
|
444
|
-
// Get variable value
|
|
445
|
-
resolveString: n,
|
|
446
|
-
// Resolve string with variables
|
|
447
|
-
hasVariables: s,
|
|
448
|
-
// Check if string has variables
|
|
449
|
-
setValue: r
|
|
450
|
-
// Set variable value (updates tree state)
|
|
451
|
-
};
|
|
452
|
-
}
|
|
453
|
-
function it({ children: e, descriptorData: t }) {
|
|
454
|
-
const r = j(), i = $(() => new rt(
|
|
455
|
-
t,
|
|
456
|
-
r.tree
|
|
457
|
-
), [t, r]);
|
|
458
|
-
return /* @__PURE__ */ f(De.Provider, { value: i, children: e });
|
|
459
|
-
}
|
|
460
|
-
var x = /* @__PURE__ */ ((e) => (e._2D_TOP = "2D_TOP", e._2D_FRONT = "2D_FRONT", e._3D = "3D", e))(x || {});
|
|
461
|
-
const fe = 0, nt = 1, Oe = (e) => e + ".0", Pe = (e) => e + ".1", Ve = (e) => e + ".2", Re = (e) => e + ".3", ve = (e) => e.substring(0, e.lastIndexOf(".")), st = (e) => {
|
|
462
|
-
const t = ve(e), i = ($e(e) + 3) % 4;
|
|
463
|
-
return `${t}.${i}`;
|
|
464
|
-
}, at = (e) => {
|
|
465
|
-
const t = ve(e), i = ($e(e) + 1) % 4;
|
|
466
|
-
return `${t}.${i}`;
|
|
467
|
-
}, $e = (e) => parseInt(e.substring(e.lastIndexOf(".") + 1)), X = {
|
|
468
|
-
IAC_THICKNESS: "IAC_THICKNESS",
|
|
469
|
-
// sides and dividers (shelf / partitions)
|
|
470
|
-
IAC_BOTTOMSHELFTHICKNESS: "IAC_BOTTOMSHELFTHICKNESS",
|
|
471
|
-
// for bottom shelf
|
|
472
|
-
IAC_TOPSHELFTHICKNESS: "IAC_TOPSHELFTHICKNESS"
|
|
473
|
-
// for top shelf
|
|
474
|
-
}, v = 1;
|
|
475
|
-
function Q() {
|
|
476
|
-
const e = V(F);
|
|
477
|
-
if (e === void 0)
|
|
478
|
-
throw new Error("useData must be used within a DataProvider");
|
|
479
|
-
return e;
|
|
480
|
-
}
|
|
481
|
-
function ee() {
|
|
482
|
-
const e = V(_e);
|
|
483
|
-
if (!e)
|
|
484
|
-
throw new Error("useArticle must be used within an ArticleProvider");
|
|
485
|
-
return e;
|
|
486
|
-
}
|
|
487
|
-
function ne(e, t, r) {
|
|
488
|
-
const { getArticleData: i } = Q(), { articleName: n } = ee(), { anglClies: s } = i(n), a = s.find((l) => l.TREEID === e && l.DATATYPE === r && l.TAGNAME === t);
|
|
489
|
-
return a ? {
|
|
490
|
-
thickness: Number(a.TAGVALUE)
|
|
491
|
-
} : null;
|
|
492
|
-
}
|
|
493
|
-
function ot(e) {
|
|
494
|
-
const { getArticleData: t } = Q(), { resolveString: r } = j(), { articleName: i } = ee(), n = t(i).anglGrtxs;
|
|
495
|
-
if (!n) return null;
|
|
496
|
-
const s = n.filter((o) => o.TREEID === e), a = /* @__PURE__ */ new Map();
|
|
497
|
-
return s.map((o) => a.set(`AD zone info0${o.NUM + 1}`, r(o.TEXT))), {
|
|
498
|
-
zoneInfo: a
|
|
499
|
-
};
|
|
500
|
-
}
|
|
501
|
-
function ue(e) {
|
|
502
|
-
const { getArticleData: t } = Q(), { articleName: r } = ee(), { anglZones: i } = t(r), n = i.find((a) => a.TREEID === e), s = i.filter((a) => a.TREEID.substring(0, a.TREEID.lastIndexOf(".")) === e);
|
|
503
|
-
return s.sort((a, o) => a.TREEID.localeCompare(o.TREEID, void 0, { numeric: !0 })), n ? {
|
|
504
|
-
// Zone data
|
|
505
|
-
currentZone: n,
|
|
506
|
-
children: s,
|
|
507
|
-
// Shelf properties
|
|
508
|
-
get topShelfCP() {
|
|
509
|
-
return n?.TOPSHELF;
|
|
510
|
-
},
|
|
511
|
-
get bottomShelfCP() {
|
|
512
|
-
return n?.BOTSHELF;
|
|
513
|
-
},
|
|
514
|
-
zoneInfo() {
|
|
515
|
-
return ot(e)?.zoneInfo;
|
|
516
|
-
},
|
|
517
|
-
// Thickness calculations
|
|
518
|
-
getClieThk(a, o) {
|
|
519
|
-
return this.topShelfCP === "" ? 0 : ne(a, o, nt)?.thickness || 0;
|
|
520
|
-
},
|
|
521
|
-
get topShelfThk() {
|
|
522
|
-
return this.getClieThk(e, X.IAC_TOPSHELFTHICKNESS);
|
|
523
|
-
},
|
|
524
|
-
get bottomShelfThk() {
|
|
525
|
-
return this.getClieThk(e, X.IAC_BOTTOMSHELFTHICKNESS);
|
|
526
|
-
},
|
|
527
|
-
get dividerThk() {
|
|
528
|
-
return this.getClieThk(e, X.IAC_THICKNESS);
|
|
529
|
-
}
|
|
530
|
-
} : null;
|
|
531
|
-
}
|
|
532
|
-
function te(e) {
|
|
533
|
-
const { getArticleData: t } = Q(), { articleName: r } = ee(), { resolveString: i } = j(), { anglElems: n } = t(r), s = n.find((M) => M.TREEID === e), a = ve(e), o = ue(a);
|
|
534
|
-
if (!s) return null;
|
|
535
|
-
const l = s.CPNAME === "" ? 0 : ne(e, X.IAC_THICKNESS, fe)?.thickness || 0, u = ne(at(e), X.IAC_THICKNESS, fe)?.thickness || 0, h = ne(st(e), X.IAC_THICKNESS, fe)?.thickness || 0, m = s.CPNAME === "" ? 0 : s.INSETFOR !== "" ? se(i(s.INSETFOR)) : Number(s.INSET), p = (typeof m == "string" ? 0 : m) || 0, E = s.MANINFO || "black", y = s.CPNAME, c = o?.topShelfThk || 0, d = o?.bottomShelfThk || 0, g = {
|
|
536
|
-
start: Number(s.STARTOFFS) || 0,
|
|
537
|
-
end: Number(s.ENDOFFS) || 0,
|
|
538
|
-
top: Number(s.TOPOFFS) || 0,
|
|
539
|
-
bottom: Number(s.BOTOFFS) || 0
|
|
540
|
-
}, I = {
|
|
541
|
-
start: s.STARTTRIM,
|
|
542
|
-
end: s.ENDTRIM,
|
|
543
|
-
top: s.TOPTRIM,
|
|
544
|
-
bottom: s.BOTTRIM
|
|
545
|
-
}, N = {
|
|
546
|
-
top: I.top === "S" ? c : 0,
|
|
547
|
-
bottom: I.bottom === "S" ? d : 0
|
|
548
|
-
};
|
|
549
|
-
return {
|
|
550
|
-
TREEID: e,
|
|
551
|
-
thk: l,
|
|
552
|
-
nxtThk: u,
|
|
553
|
-
prvThk: h,
|
|
554
|
-
inset: p,
|
|
555
|
-
color: E,
|
|
556
|
-
CPNAME: y,
|
|
557
|
-
topThk: c,
|
|
558
|
-
bottomThk: d,
|
|
559
|
-
oversize: g,
|
|
560
|
-
trim: I,
|
|
561
|
-
elmTrimThk: N
|
|
562
|
-
};
|
|
563
|
-
}
|
|
564
|
-
var A = class extends Error {
|
|
565
|
-
constructor(e) {
|
|
566
|
-
super(`Evaluation Error: ${e}`), this.name = "EvaluationError";
|
|
567
|
-
}
|
|
568
|
-
}, H, lt = (H = class {
|
|
569
|
-
constructor() {
|
|
570
|
-
C(this, "cache", /* @__PURE__ */ new Map());
|
|
571
|
-
C(this, "source", "");
|
|
572
|
-
C(this, "tokens", []);
|
|
573
|
-
C(this, "start", 0);
|
|
574
|
-
C(this, "current", 0);
|
|
575
|
-
C(this, "errors", []);
|
|
576
|
-
}
|
|
577
|
-
reportError(t) {
|
|
578
|
-
this.errors.push(t);
|
|
579
|
-
}
|
|
580
|
-
scan(t) {
|
|
581
|
-
if (this.cache.has(t)) {
|
|
582
|
-
const r = this.cache.get(t);
|
|
583
|
-
return this.cache.delete(t), this.cache.set(t, r), r;
|
|
584
|
-
}
|
|
585
|
-
try {
|
|
586
|
-
this.source = t;
|
|
587
|
-
const r = this.preformScan();
|
|
588
|
-
if (this.cache.set(this.source, r), this.cache.size > 3) {
|
|
589
|
-
const i = this.cache.keys().next().value;
|
|
590
|
-
this.cache.delete(i);
|
|
591
|
-
}
|
|
592
|
-
return r;
|
|
593
|
-
} catch (r) {
|
|
594
|
-
throw console.error(r), new Error(r instanceof Error ? r.message : String(r));
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
preformScan() {
|
|
598
|
-
this.resetState();
|
|
599
|
-
try {
|
|
600
|
-
if (this.source.includes("<") || this.source.includes(">"))
|
|
601
|
-
throw new Error("Angle brackets are not allowed in the input string");
|
|
602
|
-
if (this.source.length === 0)
|
|
603
|
-
throw new Error("Empty input string");
|
|
604
|
-
for (this.start = 0, this.current = 0, this.tokens = [], this.start === 0 && this.addToken("LEFT_ANGLE_BRACKET", "<"); !this.isAtEnd(); ) {
|
|
605
|
-
this.start = this.current;
|
|
606
|
-
const t = this.peek();
|
|
607
|
-
switch (t) {
|
|
608
|
-
case ":":
|
|
609
|
-
this.addToken("RIGHT_ANGLE_BRACKET", ">"), this.addToken("LEFT_ANGLE_BRACKET", "<"), this.advance();
|
|
610
|
-
break;
|
|
611
|
-
case " ":
|
|
612
|
-
case "\r":
|
|
613
|
-
case " ":
|
|
614
|
-
case `
|
|
615
|
-
`:
|
|
616
|
-
this.advance();
|
|
617
|
-
break;
|
|
618
|
-
case "0":
|
|
619
|
-
case "1":
|
|
620
|
-
case "2":
|
|
621
|
-
case "3":
|
|
622
|
-
case "4":
|
|
623
|
-
case "5":
|
|
624
|
-
case "6":
|
|
625
|
-
case "7":
|
|
626
|
-
case "8":
|
|
627
|
-
case "9":
|
|
628
|
-
case ".":
|
|
629
|
-
this.scanNumber();
|
|
630
|
-
break;
|
|
631
|
-
case "$":
|
|
632
|
-
this.scanVariable();
|
|
633
|
-
break;
|
|
634
|
-
case "+":
|
|
635
|
-
case "-":
|
|
636
|
-
case "*":
|
|
637
|
-
case "/":
|
|
638
|
-
this.addToken("OPERATOR", t), this.advance();
|
|
639
|
-
break;
|
|
640
|
-
case "(":
|
|
641
|
-
this.addToken("PAREN_OPEN", "("), this.advance();
|
|
642
|
-
break;
|
|
643
|
-
case ")":
|
|
644
|
-
this.addToken("PAREN_CLOSE", ")"), this.advance();
|
|
645
|
-
break;
|
|
646
|
-
case "{":
|
|
647
|
-
this.current != 0 && this.tokens[this.tokens.length - 1].type != "OPERATOR" && this.addToken("OPERATOR", "*"), this.addToken("BRACE_OPEN", "{"), this.addToken("LEFT_ANGLE_BRACKET", "<"), this.advance();
|
|
648
|
-
break;
|
|
649
|
-
case "}":
|
|
650
|
-
this.addToken("RIGHT_ANGLE_BRACKET", ">"), this.addToken("BRACE_CLOSE", "}"), this.advance();
|
|
651
|
-
break;
|
|
652
|
-
case "[":
|
|
653
|
-
this.addToken("OPERATOR", "~"), this.addToken("BRACKET_OPEN", "["), this.advance();
|
|
654
|
-
break;
|
|
655
|
-
case "]":
|
|
656
|
-
this.addToken("BRACKET_CLOSE", "]"), this.advance();
|
|
657
|
-
break;
|
|
658
|
-
case "m":
|
|
659
|
-
this.peekNext() === "m" ? this.scanMm() : this.scanIdentifierOrFunction();
|
|
660
|
-
break;
|
|
661
|
-
default:
|
|
662
|
-
this.isAlpha(t) ? this.scanIdentifierOrFunction() : this.reportError(
|
|
663
|
-
`Unexpected character: ${t} at position: ${this.current}`
|
|
664
|
-
);
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
if (this.addToken("RIGHT_ANGLE_BRACKET", ">"), this.addToken("EOF", ""), this.errors.length > 0)
|
|
668
|
-
throw new Error(this.errors.join(`,
|
|
669
|
-
`));
|
|
670
|
-
return this.tokens;
|
|
671
|
-
} catch (t) {
|
|
672
|
-
throw new Error(t instanceof Error ? t.message : String(t));
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
isAtEnd() {
|
|
676
|
-
return this.current >= this.source.length;
|
|
677
|
-
}
|
|
678
|
-
advance() {
|
|
679
|
-
return this.source.charAt(this.current++);
|
|
680
|
-
}
|
|
681
|
-
peek() {
|
|
682
|
-
return this.isAtEnd() ? "\0" : this.source.charAt(this.current);
|
|
683
|
-
}
|
|
684
|
-
peekNext() {
|
|
685
|
-
return this.current + 1 >= this.source.length ? "\0" : this.source.charAt(this.current + 1);
|
|
686
|
-
}
|
|
687
|
-
addToken(t, r) {
|
|
688
|
-
this.tokens.push({
|
|
689
|
-
type: t,
|
|
690
|
-
lexeme: r || (t ? this.source.substring(this.start, this.current) : ""),
|
|
691
|
-
position: this.start
|
|
692
|
-
});
|
|
693
|
-
}
|
|
694
|
-
isDigit(t) {
|
|
695
|
-
return /^[0-9]$/.test(t);
|
|
696
|
-
}
|
|
697
|
-
isAlpha(t) {
|
|
698
|
-
return /^[a-zA-Z]$/.test(t);
|
|
699
|
-
}
|
|
700
|
-
scanNumber() {
|
|
701
|
-
for (; this.isDigit(this.peek()); )
|
|
702
|
-
this.advance();
|
|
703
|
-
if (this.peek() === ".")
|
|
704
|
-
for (this.advance(), this.isDigit(this.peek()) || this.reportError(
|
|
705
|
-
"Expected digit after decimal point at position: " + this.current
|
|
706
|
-
); this.isDigit(this.peek()); )
|
|
707
|
-
this.advance();
|
|
708
|
-
this.addToken(
|
|
709
|
-
"NUMBER"
|
|
710
|
-
/* NUMBER */
|
|
711
|
-
);
|
|
712
|
-
}
|
|
713
|
-
scanVariable() {
|
|
714
|
-
for (this.advance(); /[a-zA-Z0-9_]/.test(this.peek()); )
|
|
715
|
-
this.advance();
|
|
716
|
-
const t = this.source.substring(this.start + 1, this.current);
|
|
717
|
-
if (t.endsWith("mm")) {
|
|
718
|
-
const r = t.substring(0, t.length - 2);
|
|
719
|
-
r && r.length > 0 ? (this.addToken("VARIABLE", r), this.addToken("UNIT", "mm")) : this.reportError("Variable name cannot be empty or $mm");
|
|
720
|
-
} else
|
|
721
|
-
this.addToken("VARIABLE", t);
|
|
722
|
-
}
|
|
723
|
-
scanMm() {
|
|
724
|
-
this.advance(), this.advance(), this.addToken("UNIT", "mm");
|
|
725
|
-
}
|
|
726
|
-
scanIdentifierOrFunction() {
|
|
727
|
-
const t = ["X", "Y", "n"];
|
|
728
|
-
for (; this.isAlpha(this.peek()); )
|
|
729
|
-
this.advance();
|
|
730
|
-
const r = this.source.substring(this.start, this.current), i = H.MATHEMATICAL_FUNCTIONS[r.toLocaleLowerCase()];
|
|
731
|
-
i != null ? this.addToken(i, r) : t.includes(r) ? this.addToken("SPECIAL_VARIABLE", r) : this.reportError(
|
|
732
|
-
`Unknown identifier: ${r} at position: ${this.current}`
|
|
733
|
-
);
|
|
734
|
-
}
|
|
735
|
-
resetState() {
|
|
736
|
-
this.tokens = [], this.start = 0, this.current = 0, this.errors = [];
|
|
737
|
-
}
|
|
738
|
-
}, C(H, "MATHEMATICAL_FUNCTIONS", {
|
|
739
|
-
abs: "FUNCTION",
|
|
740
|
-
acos: "FUNCTION",
|
|
741
|
-
asin: "FUNCTION",
|
|
742
|
-
atan: "FUNCTION",
|
|
743
|
-
bog2deg: "FUNCTION",
|
|
744
|
-
cos: "FUNCTION",
|
|
745
|
-
deg2bog: "FUNCTION",
|
|
746
|
-
in2mm: "FUNCTION",
|
|
747
|
-
ln: "FUNCTION",
|
|
748
|
-
log: "FUNCTION",
|
|
749
|
-
log10: "FUNCTION",
|
|
750
|
-
max: "FUNCTION",
|
|
751
|
-
maxunder: "FUNCTION",
|
|
752
|
-
mm2in: "FUNCTION",
|
|
753
|
-
nextto: "FUNCTION",
|
|
754
|
-
pi: "FUNCTION",
|
|
755
|
-
pow: "FUNCTION",
|
|
756
|
-
round: "FUNCTION",
|
|
757
|
-
sin: "FUNCTION",
|
|
758
|
-
sqr: "FUNCTION",
|
|
759
|
-
tab: "FUNCTION",
|
|
760
|
-
tan: "FUNCTION"
|
|
761
|
-
/* FUNCTION */
|
|
762
|
-
}), H), ct = class {
|
|
763
|
-
constructor() {
|
|
764
|
-
C(this, "cache", /* @__PURE__ */ new Map());
|
|
765
|
-
C(this, "tokens", []);
|
|
766
|
-
C(this, "current", 0);
|
|
767
|
-
C(this, "resetCurrent", () => {
|
|
768
|
-
this.current = 0;
|
|
769
|
-
});
|
|
770
|
-
}
|
|
771
|
-
parse(e) {
|
|
772
|
-
if (this.cache.has(e)) {
|
|
773
|
-
const t = this.cache.get(e);
|
|
774
|
-
return this.cache.delete(e), this.cache.set(e, t), t;
|
|
775
|
-
}
|
|
776
|
-
try {
|
|
777
|
-
this.tokens = e;
|
|
778
|
-
const t = this.performParse(e);
|
|
779
|
-
if (this.cache.set(e, t), this.cache.size > 3) {
|
|
780
|
-
const r = this.cache.keys().next().value;
|
|
781
|
-
this.cache.delete(r);
|
|
782
|
-
}
|
|
783
|
-
return t;
|
|
784
|
-
} catch (t) {
|
|
785
|
-
throw new Error(t instanceof Error ? t.message : String(t));
|
|
786
|
-
}
|
|
787
|
-
}
|
|
788
|
-
performParse(e) {
|
|
789
|
-
if (this.resetCurrent(), this.tokens.length === 0)
|
|
790
|
-
throw new Error("No tokens to parse.");
|
|
791
|
-
try {
|
|
792
|
-
return this.expression();
|
|
793
|
-
} catch (t) {
|
|
794
|
-
throw new Error(t instanceof Error ? t.message : String(t));
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
checkMillimeterSuffix() {
|
|
798
|
-
if (this.isAtEnd()) return !1;
|
|
799
|
-
const e = this.peek();
|
|
800
|
-
return e.type === "UNIT" && e.lexeme === "mm";
|
|
801
|
-
}
|
|
802
|
-
consumeMillimeterSuffix() {
|
|
803
|
-
return this.checkMillimeterSuffix() ? (this.advance(), !0) : !1;
|
|
804
|
-
}
|
|
805
|
-
sections() {
|
|
806
|
-
const e = [];
|
|
807
|
-
if (!this.check(
|
|
808
|
-
"LEFT_ANGLE_BRACKET"
|
|
809
|
-
/* ANGLE_BRACKET_OPEN */
|
|
810
|
-
))
|
|
811
|
-
return this.expression();
|
|
812
|
-
for (; this.check(
|
|
813
|
-
"LEFT_ANGLE_BRACKET"
|
|
814
|
-
/* ANGLE_BRACKET_OPEN */
|
|
815
|
-
); ) {
|
|
816
|
-
this.advance();
|
|
817
|
-
let t = this.expression();
|
|
818
|
-
this.consume(
|
|
819
|
-
"RIGHT_ANGLE_BRACKET",
|
|
820
|
-
"Expected '>' after section expression."
|
|
821
|
-
), e.push({
|
|
822
|
-
type: "Section",
|
|
823
|
-
nodes: t,
|
|
824
|
-
hasMillimeterSuffix: this.consumeMillimeterSuffix()
|
|
825
|
-
});
|
|
826
|
-
}
|
|
827
|
-
if (e.length === 1) {
|
|
828
|
-
const t = e[0];
|
|
829
|
-
return t.type === "Section" && t.nodes.type === "Section" ? t.nodes : t;
|
|
830
|
-
}
|
|
831
|
-
return {
|
|
832
|
-
type: "Sections",
|
|
833
|
-
sections: e
|
|
834
|
-
};
|
|
835
|
-
}
|
|
836
|
-
expression() {
|
|
837
|
-
try {
|
|
838
|
-
let e = this.term();
|
|
839
|
-
for (; !this.isAtEnd() && this.check(
|
|
840
|
-
"OPERATOR"
|
|
841
|
-
/* OPERATOR */
|
|
842
|
-
) && ["+", "-"].includes(this.peek().lexeme); ) {
|
|
843
|
-
this.advance();
|
|
844
|
-
const t = this.previous().lexeme, r = this.term();
|
|
845
|
-
e = {
|
|
846
|
-
type: "BinaryExpression",
|
|
847
|
-
left: e,
|
|
848
|
-
operator: t,
|
|
849
|
-
right: r
|
|
850
|
-
};
|
|
851
|
-
}
|
|
852
|
-
return e;
|
|
853
|
-
} catch (e) {
|
|
854
|
-
throw new Error(
|
|
855
|
-
`Failed to parse expression: ${e.message}`
|
|
856
|
-
);
|
|
857
|
-
}
|
|
858
|
-
}
|
|
859
|
-
term() {
|
|
860
|
-
try {
|
|
861
|
-
let e = this.factor();
|
|
862
|
-
for (; !this.isAtEnd() && this.check(
|
|
863
|
-
"OPERATOR"
|
|
864
|
-
/* OPERATOR */
|
|
865
|
-
) && ["*", "/", "~"].includes(this.peek().lexeme); ) {
|
|
866
|
-
this.advance();
|
|
867
|
-
const t = this.previous().lexeme, r = this.factor();
|
|
868
|
-
if (r.type === "SpecialVariable" && r.name === "n")
|
|
869
|
-
throw new Error(
|
|
870
|
-
'Invalid usage: "n" cannot appear on the right-hand side of an operator'
|
|
871
|
-
);
|
|
872
|
-
e = {
|
|
873
|
-
type: "BinaryExpression",
|
|
874
|
-
left: e,
|
|
875
|
-
operator: t,
|
|
876
|
-
right: r
|
|
877
|
-
};
|
|
878
|
-
}
|
|
879
|
-
return e;
|
|
880
|
-
} catch (e) {
|
|
881
|
-
throw new Error(`Failed to parse term: ${e.message}`);
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
factor() {
|
|
885
|
-
try {
|
|
886
|
-
if (this.check(
|
|
887
|
-
"OPERATOR"
|
|
888
|
-
/* OPERATOR */
|
|
889
|
-
) && ["-", "+"].includes(this.peek().lexeme)) {
|
|
890
|
-
this.advance();
|
|
891
|
-
const e = this.previous().lexeme, t = this.factor();
|
|
892
|
-
return {
|
|
893
|
-
type: "UnaryExpression",
|
|
894
|
-
operator: e,
|
|
895
|
-
right: t
|
|
896
|
-
};
|
|
897
|
-
}
|
|
898
|
-
return this.primary();
|
|
899
|
-
} catch (e) {
|
|
900
|
-
throw new Error(`Failed to parse factor: ${e.message}`);
|
|
901
|
-
}
|
|
902
|
-
}
|
|
903
|
-
primary() {
|
|
904
|
-
try {
|
|
905
|
-
if (this.check(
|
|
906
|
-
"NUMBER"
|
|
907
|
-
/* NUMBER */
|
|
908
|
-
))
|
|
909
|
-
return this.advance(), {
|
|
910
|
-
type: "NumberLiteral",
|
|
911
|
-
value: parseFloat(this.previous().lexeme),
|
|
912
|
-
hasMillimeterSuffix: this.consumeMillimeterSuffix()
|
|
913
|
-
};
|
|
914
|
-
if (this.check(
|
|
915
|
-
"VARIABLE"
|
|
916
|
-
/* VARIABLE */
|
|
917
|
-
))
|
|
918
|
-
return this.advance(), {
|
|
919
|
-
type: "Variable",
|
|
920
|
-
name: this.previous().lexeme,
|
|
921
|
-
hasMillimeterSuffix: this.consumeMillimeterSuffix()
|
|
922
|
-
};
|
|
923
|
-
if (this.check(
|
|
924
|
-
"SPECIAL_VARIABLE"
|
|
925
|
-
/* SPECIAL_VARIABLE */
|
|
926
|
-
))
|
|
927
|
-
return this.advance(), {
|
|
928
|
-
type: "SpecialVariable",
|
|
929
|
-
name: this.previous().lexeme,
|
|
930
|
-
hasMillimeterSuffix: this.previous().lexeme === "n"
|
|
931
|
-
};
|
|
932
|
-
if (this.check(
|
|
933
|
-
"FUNCTION"
|
|
934
|
-
/* FUNCTION */
|
|
935
|
-
)) {
|
|
936
|
-
this.advance();
|
|
937
|
-
const e = this.previous().lexeme;
|
|
938
|
-
this.consume(
|
|
939
|
-
"PAREN_OPEN",
|
|
940
|
-
`Expected '(' after function name '${e}'.`
|
|
941
|
-
);
|
|
942
|
-
const t = this.expression();
|
|
943
|
-
return this.consume(
|
|
944
|
-
"PAREN_CLOSE",
|
|
945
|
-
"Expected ')' after function arguments."
|
|
946
|
-
), {
|
|
947
|
-
type: "FunctionCall",
|
|
948
|
-
name: e,
|
|
949
|
-
arg: t,
|
|
950
|
-
hasMillimeterSuffix: this.consumeMillimeterSuffix()
|
|
951
|
-
};
|
|
952
|
-
}
|
|
953
|
-
if (this.check(
|
|
954
|
-
"PAREN_OPEN"
|
|
955
|
-
/* PAREN_OPEN */
|
|
956
|
-
)) {
|
|
957
|
-
this.advance();
|
|
958
|
-
const e = this.expression();
|
|
959
|
-
if (!e)
|
|
960
|
-
throw new Error("Expected expression inside parentheses.");
|
|
961
|
-
return this.consume("PAREN_CLOSE", "Expected ')' after expression."), {
|
|
962
|
-
type: "Grouping",
|
|
963
|
-
expression: e,
|
|
964
|
-
hasMillimeterSuffix: this.consumeMillimeterSuffix()
|
|
965
|
-
};
|
|
966
|
-
}
|
|
967
|
-
if (this.check(
|
|
968
|
-
"PAREN_CLOSE"
|
|
969
|
-
/* PAREN_CLOSE */
|
|
970
|
-
))
|
|
971
|
-
throw new Error("Unexpected ')' without a matching '('.");
|
|
972
|
-
if (this.check(
|
|
973
|
-
"BRACE_OPEN"
|
|
974
|
-
/* BRACE_OPEN */
|
|
975
|
-
)) {
|
|
976
|
-
this.advance();
|
|
977
|
-
let e = this.sections();
|
|
978
|
-
return this.consume("BRACE_CLOSE", "Expected '}' after expression."), e.type === "Section" && e.nodes.type === "Section" && (e = e.nodes), {
|
|
979
|
-
type: "Repeated",
|
|
980
|
-
toRepeat: e,
|
|
981
|
-
hasMillimeterSuffix: this.consumeMillimeterSuffix()
|
|
982
|
-
};
|
|
983
|
-
}
|
|
984
|
-
if (this.check(
|
|
985
|
-
"LEFT_ANGLE_BRACKET"
|
|
986
|
-
/* ANGLE_BRACKET_OPEN */
|
|
987
|
-
))
|
|
988
|
-
return this.sections();
|
|
989
|
-
throw new Error(`Unexpected token: ${this.peek().lexeme}`);
|
|
990
|
-
} catch (e) {
|
|
991
|
-
throw new Error(`Failed to parse primary: ${e.message}`);
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
check(e) {
|
|
995
|
-
return this.isAtEnd() ? !1 : this.peek().type === e;
|
|
996
|
-
}
|
|
997
|
-
advance() {
|
|
998
|
-
return this.isAtEnd() || this.current++, this.previous();
|
|
999
|
-
}
|
|
1000
|
-
consume(e, t) {
|
|
1001
|
-
if (this.check(e)) return this.advance();
|
|
1002
|
-
throw new Error(t);
|
|
1003
|
-
}
|
|
1004
|
-
isAtEnd() {
|
|
1005
|
-
return this.current >= this.tokens.length;
|
|
1006
|
-
}
|
|
1007
|
-
peek() {
|
|
1008
|
-
return this.tokens[this.current];
|
|
1009
|
-
}
|
|
1010
|
-
previous() {
|
|
1011
|
-
return this.tokens[this.current - 1];
|
|
1012
|
-
}
|
|
1013
|
-
}, xe = (e) => e.type === "SpecialVariable" && e.name === "n";
|
|
1014
|
-
function ut(e, t) {
|
|
1015
|
-
if (e.right.type === "SpecialVariable" && e.right.name === "n")
|
|
1016
|
-
return new A(
|
|
1017
|
-
"Cannot have n in the right side of an expression"
|
|
1018
|
-
);
|
|
1019
|
-
const r = xe(e.left) ? e.left : this.evaluate(e.left), i = xe(e.right) ? e.right : this.evaluate(e.right);
|
|
1020
|
-
if (r instanceof A) return r;
|
|
1021
|
-
if (i instanceof A) return i;
|
|
1022
|
-
const n = r.type === "NumberLiteral" && i.type === "NumberLiteral", s = n ? r.hasMillimeterSuffix === i.hasMillimeterSuffix : !1, a = (o) => o.type === "Repeated";
|
|
1023
|
-
switch (e.operator) {
|
|
1024
|
-
case "+":
|
|
1025
|
-
return n && s && t?.isInsideGroup == !1 ? {
|
|
1026
|
-
type: "NumberLiteral",
|
|
1027
|
-
value: r.value + i.value,
|
|
1028
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix === !0 || i.hasMillimeterSuffix === !0,
|
|
1029
|
-
spreadMm: r.spreadMm || i.spreadMm
|
|
1030
|
-
} : n && t?.isInsideGroup == !0 ? {
|
|
1031
|
-
type: "NumberLiteral",
|
|
1032
|
-
value: r.value + i.value,
|
|
1033
|
-
spreadMm: r.hasMillimeterSuffix || i.hasMillimeterSuffix
|
|
1034
|
-
} : {
|
|
1035
|
-
type: "BinaryExpression",
|
|
1036
|
-
operator: "+",
|
|
1037
|
-
left: r,
|
|
1038
|
-
right: i
|
|
1039
|
-
};
|
|
1040
|
-
case "*":
|
|
1041
|
-
return n && t?.isInsideGroup == !0 ? {
|
|
1042
|
-
type: "NumberLiteral",
|
|
1043
|
-
value: r.value * i.value,
|
|
1044
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix === !0 || i.hasMillimeterSuffix === !0,
|
|
1045
|
-
spreadMm: r.spreadMm || i.spreadMm
|
|
1046
|
-
} : a(i) && r.type === "NumberLiteral" ? {
|
|
1047
|
-
type: "Repeated",
|
|
1048
|
-
toRepeat: i.toRepeat,
|
|
1049
|
-
times: Math.round(r.value),
|
|
1050
|
-
hasMillimeterSuffix: i.type === "NumberLiteral" && i.hasMillimeterSuffix || !1
|
|
1051
|
-
} : t?.isInsideGroup == !1 && r.type !== "SpecialVariable" && r.name !== "n" ? new A("cannot have * outside of group") : r.type === "SpecialVariable" ? {
|
|
1052
|
-
type: "BinaryExpression",
|
|
1053
|
-
operator: "*",
|
|
1054
|
-
left: r,
|
|
1055
|
-
right: {
|
|
1056
|
-
type: "NumberLiteral",
|
|
1057
|
-
value: i.value,
|
|
1058
|
-
hasMillimeterSuffix: !0
|
|
1059
|
-
}
|
|
1060
|
-
} : {
|
|
1061
|
-
type: "BinaryExpression",
|
|
1062
|
-
operator: "*",
|
|
1063
|
-
left: r,
|
|
1064
|
-
right: i,
|
|
1065
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix || i.hasMillimeterSuffix
|
|
1066
|
-
};
|
|
1067
|
-
case "/":
|
|
1068
|
-
if (n && t?.isInsideGroup == !0)
|
|
1069
|
-
return {
|
|
1070
|
-
type: "NumberLiteral",
|
|
1071
|
-
value: r.value / i.value,
|
|
1072
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix === !0 || i.hasMillimeterSuffix === !0
|
|
1073
|
-
};
|
|
1074
|
-
if (t?.isInsideGroup == !1)
|
|
1075
|
-
return new A("cannot have / outside of group");
|
|
1076
|
-
case "-":
|
|
1077
|
-
return n && s && t?.isInsideGroup == !1 ? {
|
|
1078
|
-
type: "NumberLiteral",
|
|
1079
|
-
value: r.value - i.value,
|
|
1080
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix === !0 || i.hasMillimeterSuffix === !0,
|
|
1081
|
-
spreadMm: r.spreadMm || i.spreadMm
|
|
1082
|
-
} : n && t?.isInsideGroup == !0 ? {
|
|
1083
|
-
type: "NumberLiteral",
|
|
1084
|
-
value: r.value - i.value,
|
|
1085
|
-
spreadMm: r.hasMillimeterSuffix || i.hasMillimeterSuffix
|
|
1086
|
-
} : {
|
|
1087
|
-
type: "BinaryExpression",
|
|
1088
|
-
operator: "-",
|
|
1089
|
-
left: r,
|
|
1090
|
-
right: i
|
|
1091
|
-
};
|
|
1092
|
-
default:
|
|
1093
|
-
throw new A("Invalid Operator");
|
|
1094
|
-
}
|
|
1095
|
-
}
|
|
1096
|
-
function ht(e, t) {
|
|
1097
|
-
const r = this.evaluate(e.arg);
|
|
1098
|
-
if (r instanceof A)
|
|
1099
|
-
throw new A("Error in function arguments");
|
|
1100
|
-
switch (e.name.toLowerCase()) {
|
|
1101
|
-
case "abs":
|
|
1102
|
-
return {
|
|
1103
|
-
type: "NumberLiteral",
|
|
1104
|
-
value: Math.abs(r.value),
|
|
1105
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1106
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1107
|
-
};
|
|
1108
|
-
case "acos":
|
|
1109
|
-
return {
|
|
1110
|
-
type: "NumberLiteral",
|
|
1111
|
-
value: Math.acos(r.value),
|
|
1112
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1113
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1114
|
-
};
|
|
1115
|
-
case "asin":
|
|
1116
|
-
return {
|
|
1117
|
-
type: "NumberLiteral",
|
|
1118
|
-
value: Math.asin(r.value),
|
|
1119
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1120
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1121
|
-
};
|
|
1122
|
-
case "atan":
|
|
1123
|
-
return {
|
|
1124
|
-
type: "NumberLiteral",
|
|
1125
|
-
value: Math.atan(r.value),
|
|
1126
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1127
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1128
|
-
};
|
|
1129
|
-
case "cos":
|
|
1130
|
-
return {
|
|
1131
|
-
type: "NumberLiteral",
|
|
1132
|
-
value: Math.cos(r.value),
|
|
1133
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1134
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1135
|
-
};
|
|
1136
|
-
case "sin":
|
|
1137
|
-
return {
|
|
1138
|
-
type: "NumberLiteral",
|
|
1139
|
-
value: Math.sin(r.value),
|
|
1140
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1141
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1142
|
-
};
|
|
1143
|
-
case "tan":
|
|
1144
|
-
return {
|
|
1145
|
-
type: "NumberLiteral",
|
|
1146
|
-
value: Math.tan(r.value),
|
|
1147
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1148
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1149
|
-
};
|
|
1150
|
-
case "round":
|
|
1151
|
-
return {
|
|
1152
|
-
type: "NumberLiteral",
|
|
1153
|
-
value: Math.round(r.value),
|
|
1154
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1155
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1156
|
-
};
|
|
1157
|
-
case "bog2deg":
|
|
1158
|
-
return {
|
|
1159
|
-
type: "NumberLiteral",
|
|
1160
|
-
value: r.value * (180 / Math.PI),
|
|
1161
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1162
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1163
|
-
};
|
|
1164
|
-
case "deg2bog":
|
|
1165
|
-
return {
|
|
1166
|
-
type: "NumberLiteral",
|
|
1167
|
-
value: r.value * (Math.PI / 180),
|
|
1168
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1169
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1170
|
-
};
|
|
1171
|
-
case "in2mm":
|
|
1172
|
-
return {
|
|
1173
|
-
type: "NumberLiteral",
|
|
1174
|
-
value: r.value * 25.4,
|
|
1175
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1176
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1177
|
-
};
|
|
1178
|
-
case "mm2in":
|
|
1179
|
-
return {
|
|
1180
|
-
type: "NumberLiteral",
|
|
1181
|
-
value: r.value / 25.4,
|
|
1182
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1183
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1184
|
-
};
|
|
1185
|
-
case "ln":
|
|
1186
|
-
return {
|
|
1187
|
-
type: "NumberLiteral",
|
|
1188
|
-
value: Math.log(r.value),
|
|
1189
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1190
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1191
|
-
};
|
|
1192
|
-
case "log10":
|
|
1193
|
-
return {
|
|
1194
|
-
type: "NumberLiteral",
|
|
1195
|
-
value: Math.log10(r.value),
|
|
1196
|
-
hasMillimeterSuffix: r.hasMillimeterSuffix,
|
|
1197
|
-
spreadMm: t?.isInsideGroup === !1
|
|
1198
|
-
};
|
|
1199
|
-
default:
|
|
1200
|
-
throw new A("Function not implemented");
|
|
1201
|
-
}
|
|
1202
|
-
}
|
|
1203
|
-
function ft(e) {
|
|
1204
|
-
if (!this.variables || !(e.name in this.variables))
|
|
1205
|
-
throw new A(`Variable ${e.name} is not defined.`);
|
|
1206
|
-
return {
|
|
1207
|
-
type: "NumberLiteral",
|
|
1208
|
-
value: this.variables[e.name],
|
|
1209
|
-
hasMillimeterSuffix: e.hasMillimeterSuffix
|
|
1210
|
-
};
|
|
1211
|
-
}
|
|
1212
|
-
var mt = class {
|
|
1213
|
-
constructor() {
|
|
1214
|
-
C(this, "nestingLevel", 0);
|
|
1215
|
-
C(this, "variables", {});
|
|
1216
|
-
// evaluate binary expression
|
|
1217
|
-
C(this, "evaluateBinaryExpression");
|
|
1218
|
-
C(this, "evaluateFunction");
|
|
1219
|
-
C(this, "evaluateVariable");
|
|
1220
|
-
this.evaluateBinaryExpression = ut.bind(this), this.evaluateFunction = ht.bind(this), this.evaluateVariable = ft.bind(this);
|
|
1221
|
-
}
|
|
1222
|
-
evaluate(e, t = { isInsideGroup: !1 }, r) {
|
|
1223
|
-
this.nestingLevel++;
|
|
1224
|
-
try {
|
|
1225
|
-
if (r && (this.variables = r), this.isSections(e))
|
|
1226
|
-
return this.evaluateSections(e, t);
|
|
1227
|
-
if (this.isSection(e)) {
|
|
1228
|
-
const i = this.evaluate(e.nodes, t);
|
|
1229
|
-
return i instanceof A ? new A(
|
|
1230
|
-
`Error in section ${JSON.stringify(e)}`
|
|
1231
|
-
) : { ...e, nodes: i };
|
|
1232
|
-
}
|
|
1233
|
-
if (this.isNumberLiteral(e))
|
|
1234
|
-
if (t.isInsideGroup) {
|
|
1235
|
-
if (e.hasMillimeterSuffix)
|
|
1236
|
-
return { ...e, spreadMm: !0 };
|
|
1237
|
-
} else
|
|
1238
|
-
return e;
|
|
1239
|
-
if (this.isGrouping(e)) {
|
|
1240
|
-
t = { ...t, isInsideGroup: !0 };
|
|
1241
|
-
const i = this.evaluate(e.expression, t);
|
|
1242
|
-
return i instanceof A ? i : {
|
|
1243
|
-
...i,
|
|
1244
|
-
hasMillimeterSuffix: e.hasMillimeterSuffix
|
|
1245
|
-
};
|
|
1246
|
-
}
|
|
1247
|
-
if (this.isRepeated(e)) {
|
|
1248
|
-
const i = this.evaluate(e.toRepeat);
|
|
1249
|
-
return i instanceof A ? i : { ...e, toRepeat: i };
|
|
1250
|
-
}
|
|
1251
|
-
if (this.isBinaryExpression(e))
|
|
1252
|
-
return this.evaluateBinaryExpression(e, t);
|
|
1253
|
-
if (this.isUnaryExpression(e))
|
|
1254
|
-
return {
|
|
1255
|
-
type: "NumberLiteral",
|
|
1256
|
-
value: e.operator === "-" ? -1 * e.right.value : e.right.value,
|
|
1257
|
-
hasMillimeterSuffix: e.right.hasMillimeterSuffix
|
|
1258
|
-
};
|
|
1259
|
-
if (this.isFunctionCall(e))
|
|
1260
|
-
return this.evaluateFunction(e, t);
|
|
1261
|
-
if (this.isVariable(e)) {
|
|
1262
|
-
if (this.variables)
|
|
1263
|
-
return this.evaluateVariable(e);
|
|
1264
|
-
throw new A("No variables defined.");
|
|
1265
|
-
}
|
|
1266
|
-
throw new A(`unsupported node type: ${e.type}`);
|
|
1267
|
-
} catch (i) {
|
|
1268
|
-
throw new A(i.message);
|
|
1269
|
-
} finally {
|
|
1270
|
-
this.nestingLevel--;
|
|
1271
|
-
}
|
|
1272
|
-
}
|
|
1273
|
-
isUnaryExpression(e) {
|
|
1274
|
-
return e.type === "UnaryExpression";
|
|
1275
|
-
}
|
|
1276
|
-
isNumberLiteral(e) {
|
|
1277
|
-
return e.type === "NumberLiteral";
|
|
1278
|
-
}
|
|
1279
|
-
isVariable(e) {
|
|
1280
|
-
return e.type === "Variable" || e.type === "SpecialVariable";
|
|
1281
|
-
}
|
|
1282
|
-
isBinaryExpression(e) {
|
|
1283
|
-
return e.type === "BinaryExpression";
|
|
1284
|
-
}
|
|
1285
|
-
isFunctionCall(e) {
|
|
1286
|
-
return e.type === "FunctionCall";
|
|
1287
|
-
}
|
|
1288
|
-
isGrouping(e) {
|
|
1289
|
-
return e.type === "Grouping";
|
|
1290
|
-
}
|
|
1291
|
-
isRepeated(e) {
|
|
1292
|
-
return e.type === "Repeated";
|
|
1293
|
-
}
|
|
1294
|
-
isSections(e) {
|
|
1295
|
-
return e.type === "Sections";
|
|
1296
|
-
}
|
|
1297
|
-
isSection(e) {
|
|
1298
|
-
return e.type === "Section";
|
|
1299
|
-
}
|
|
1300
|
-
evaluateSections(e, t = { isInsideGroup: !1 }) {
|
|
1301
|
-
return { type: "Sections", sections: e.sections.map((i) => {
|
|
1302
|
-
const n = this.evaluate(i.nodes);
|
|
1303
|
-
if (n instanceof A) throw n;
|
|
1304
|
-
return { type: "Section", nodes: n };
|
|
1305
|
-
}) };
|
|
1306
|
-
}
|
|
1307
|
-
};
|
|
1308
|
-
function G(e, t) {
|
|
1309
|
-
if (!e)
|
|
1310
|
-
throw new A(
|
|
1311
|
-
`unsupported node type to traverse: ${JSON.stringify(e)}`
|
|
1312
|
-
);
|
|
1313
|
-
t(e), e.type === "Sections" && Array.isArray(e.sections) ? e.sections.forEach((r) => G(r, t)) : e.type === "Section" && e.nodes ? G(e.nodes, t) : e.type;
|
|
1314
|
-
}
|
|
1315
|
-
var pt = class {
|
|
1316
|
-
accumulateIncorporatedThicknesses(e, t, r, i, n, s, a, o, l) {
|
|
1317
|
-
let u = 0;
|
|
1318
|
-
if (a === "M")
|
|
1319
|
-
for (let h = 1; h < e.sections.length - 1; h++)
|
|
1320
|
-
u += i;
|
|
1321
|
-
if (a === "O")
|
|
1322
|
-
for (let h = 1; h < e.sections.length - 1; h++)
|
|
1323
|
-
u += i * 2;
|
|
1324
|
-
return n === "M" && (u += t / 2), n === "O" && (u += t), s === "M" && (u += t / 2), s === "O" && (u += t), l === "M" && (u += r / 2), l === "O" && (u += r), o === "M" && (u += r / 2), o === "O" && (u += r), u;
|
|
1325
|
-
}
|
|
1326
|
-
}, dt = class {
|
|
1327
|
-
calculateSections(e, t = 500, r = 0, i) {
|
|
1328
|
-
try {
|
|
1329
|
-
if (e instanceof A)
|
|
1330
|
-
throw e;
|
|
1331
|
-
if (e.type !== "Sections" && e.type !== "Section")
|
|
1332
|
-
throw new A(
|
|
1333
|
-
`Expected Sections or Section, got ${JSON.stringify(e)}`
|
|
1334
|
-
);
|
|
1335
|
-
let n = { type: "Sections", sections: [] };
|
|
1336
|
-
if (e.type === "Sections")
|
|
1337
|
-
for (const c of e.sections)
|
|
1338
|
-
if (c.nodes.type === "Repeated" && c.nodes.times) {
|
|
1339
|
-
for (let d = 0; d < (c.nodes?.times ?? 0); d++)
|
|
1340
|
-
if (c.nodes.toRepeat.type === "Section")
|
|
1341
|
-
n.sections.push(
|
|
1342
|
-
c.nodes.toRepeat
|
|
1343
|
-
);
|
|
1344
|
-
else if (c.nodes.toRepeat.type === "Sections")
|
|
1345
|
-
for (const g of c.nodes.toRepeat.sections)
|
|
1346
|
-
n.sections.push(g);
|
|
1347
|
-
} else
|
|
1348
|
-
n.sections.push(c);
|
|
1349
|
-
else e.type === "Section" && n.sections.push(e);
|
|
1350
|
-
if (i) {
|
|
1351
|
-
const d = new pt().accumulateIncorporatedThicknesses(
|
|
1352
|
-
n,
|
|
1353
|
-
i.startPanelThk,
|
|
1354
|
-
i.endPanelThk,
|
|
1355
|
-
r,
|
|
1356
|
-
i.sizerefout1,
|
|
1357
|
-
i.sizerefedg1,
|
|
1358
|
-
i.sizerefmid,
|
|
1359
|
-
i.sizerefedg2,
|
|
1360
|
-
i.sizerefout2
|
|
1361
|
-
);
|
|
1362
|
-
}
|
|
1363
|
-
n.sections.forEach((c) => {
|
|
1364
|
-
let d = !1;
|
|
1365
|
-
G(c, (g) => {
|
|
1366
|
-
g.type === "NumberLiteral" ? g?.spreadMm === !0 && (d = !0) : g.type === "BinaryExpression" && g.left.type === "NumberLiteral" && (g.left?.spreadMm === !0 && (d = !0), g.right?.spreadMm === !0 && (d = !0));
|
|
1367
|
-
}), d && G(c, (g) => {
|
|
1368
|
-
g.type === "NumberLiteral" ? g.hasMillimeterSuffix = !0 : g.type === "BinaryExpression" && (g.left.type === "NumberLiteral" && (g.left.hasMillimeterSuffix = !0), g.right.type === "NumberLiteral" && (g.right.hasMillimeterSuffix = !0));
|
|
1369
|
-
});
|
|
1370
|
-
});
|
|
1371
|
-
let s = 0;
|
|
1372
|
-
const a = (c) => {
|
|
1373
|
-
if (r && c.type === "Section" && (s += r), c.type === "NumberLiteral")
|
|
1374
|
-
c.hasMillimeterSuffix === !0 && (s += c.value);
|
|
1375
|
-
else if (c.type === "BinaryExpression") {
|
|
1376
|
-
const d = c;
|
|
1377
|
-
d.left.type === "NumberLiteral" && d.right.type === "NumberLiteral" && (d.left.hasMillimeterSuffix === !0 && (s += d.left.value), d.right.hasMillimeterSuffix === !0 && (s += d.right.value));
|
|
1378
|
-
}
|
|
1379
|
-
};
|
|
1380
|
-
if (n.sections.forEach(
|
|
1381
|
-
(c) => G(c, a)
|
|
1382
|
-
), s > t)
|
|
1383
|
-
throw new A("Total length exceeded");
|
|
1384
|
-
let o = t - s + r, l = 0;
|
|
1385
|
-
const u = (c) => {
|
|
1386
|
-
if (c.type === "BinaryExpression") {
|
|
1387
|
-
const d = c;
|
|
1388
|
-
if (d.right.type === "NumberLiteral" && d.left.type === "SpecialVariable" && d.left.name === "n" && d.operator === "*") {
|
|
1389
|
-
l = Math.floor(
|
|
1390
|
-
o / (d.right.value + r)
|
|
1391
|
-
);
|
|
1392
|
-
const g = (l - 1) * r, I = l * d.right.value;
|
|
1393
|
-
o += -g - I;
|
|
1394
|
-
}
|
|
1395
|
-
}
|
|
1396
|
-
};
|
|
1397
|
-
n.sections.forEach(
|
|
1398
|
-
(c) => G(c, u)
|
|
1399
|
-
);
|
|
1400
|
-
let h = 0;
|
|
1401
|
-
const m = (c) => {
|
|
1402
|
-
c.type === "BinaryExpression" && (c.left.type === "NumberLiteral" && c.left.hasMillimeterSuffix === !1 && (h += c.left.value), c.right.type === "NumberLiteral" && c.right.hasMillimeterSuffix === !1 && (h += c.right.value)), c.type === "NumberLiteral" && c.hasMillimeterSuffix === !1 && (h += c.value);
|
|
1403
|
-
};
|
|
1404
|
-
n.sections.forEach((c) => {
|
|
1405
|
-
G(c, m);
|
|
1406
|
-
});
|
|
1407
|
-
const p = o / h, E = [], y = (c) => {
|
|
1408
|
-
let d = 0, g = 0;
|
|
1409
|
-
if (c.type === "NumberLiteral")
|
|
1410
|
-
c.hasMillimeterSuffix === !1 && (d += c.value * p), c.hasMillimeterSuffix === !0 && (g += c.value), E.push(Number((d + g).toFixed(2)));
|
|
1411
|
-
else if (c.type === "BinaryExpression" && (c.left.type === "NumberLiteral" && c.right.type === "NumberLiteral" && (c.left.hasMillimeterSuffix === !1 && (d += c.left.value * p), c.left.hasMillimeterSuffix === !0 && (g += c.left.value), c.right.hasMillimeterSuffix === !1 && (d += c.right.value * p), c.right.hasMillimeterSuffix === !0 && (g += c.right.value), E.push(Number((d + g).toFixed(2)))), c.left.type === "SpecialVariable" && c.left.name === "n" && c.right.type === "NumberLiteral")) {
|
|
1412
|
-
g += c.right.value;
|
|
1413
|
-
for (let I = 0; I < l; I++)
|
|
1414
|
-
c.right.hasMillimeterSuffix === !0 && E.push(Number(g.toFixed(2)));
|
|
1415
|
-
}
|
|
1416
|
-
};
|
|
1417
|
-
return n.sections.forEach((c) => {
|
|
1418
|
-
G(c, y);
|
|
1419
|
-
}), E;
|
|
1420
|
-
} catch {
|
|
1421
|
-
return new A("Error calculating sections");
|
|
1422
|
-
}
|
|
1423
|
-
}
|
|
1424
|
-
}, gt = new lt(), Et = new ct(), St = new mt(), vt = (e, t, r, i) => {
|
|
1425
|
-
try {
|
|
1426
|
-
const n = gt.scan(e), s = Et.parse(n), a = St.evaluate(s, {}, i);
|
|
1427
|
-
if (a && !(a instanceof A)) {
|
|
1428
|
-
const l = new dt().calculateSections(a, t, r);
|
|
1429
|
-
if (l && l instanceof A) throw new Error(l.message);
|
|
1430
|
-
return l;
|
|
1431
|
-
}
|
|
1432
|
-
return a || new A("Unknown error during evaluation.");
|
|
1433
|
-
} catch (n) {
|
|
1434
|
-
return new A(n.message);
|
|
1435
|
-
}
|
|
1436
|
-
};
|
|
1437
|
-
function Nt(e) {
|
|
1438
|
-
const t = /^(\d+)\*\{(\d+)\}$/, r = e.match(t);
|
|
1439
|
-
if (r) {
|
|
1440
|
-
const i = parseInt(r[1], 10), n = r[2];
|
|
1441
|
-
return i > 0 ? Array(i).fill(n).join(":") : "";
|
|
1442
|
-
}
|
|
1443
|
-
return e;
|
|
1444
|
-
}
|
|
1445
|
-
function Tt(e) {
|
|
1446
|
-
const t = e.trim().match(/^(\d+(?:\.\d+)?)\s*\*\s*\{.+\}$/);
|
|
1447
|
-
return t ? Number(t[1]) : e;
|
|
1448
|
-
}
|
|
1449
|
-
function Mt(e, t, r) {
|
|
1450
|
-
let i = 0;
|
|
1451
|
-
const { LINDIV1: n, DIVDIR: s, HORDEFTYPE: a, DIVELEM1: o } = e;
|
|
1452
|
-
let l = "width";
|
|
1453
|
-
if (n === "") return { divisionType: l, zone_dimensions: [], divided_length_list: [] };
|
|
1454
|
-
if (s === "H")
|
|
1455
|
-
if (a === "W")
|
|
1456
|
-
i = t.width, l = "width";
|
|
1457
|
-
else if (a === "D")
|
|
1458
|
-
i = t.depth, l = "depth";
|
|
1459
|
-
else if (a === "P")
|
|
1460
|
-
if (o === 0 || o === 2)
|
|
1461
|
-
i = t.width, l = "width";
|
|
1462
|
-
else if (o === 1 || o === 3)
|
|
1463
|
-
i = t.depth, l = "depth";
|
|
1464
|
-
else
|
|
1465
|
-
throw new Error("Unhandled case: DIVELEM1 = " + o);
|
|
1466
|
-
else
|
|
1467
|
-
throw new Error("Unhandled case: HORDEFTYPE = " + a);
|
|
1468
|
-
else if (s === "V")
|
|
1469
|
-
i = t.height, l = "height";
|
|
1470
|
-
else if (s === "A")
|
|
1471
|
-
i = t.width, l = "article";
|
|
1472
|
-
else if (s === "I")
|
|
1473
|
-
i = t.width, l = "independent";
|
|
1474
|
-
else
|
|
1475
|
-
throw new Error("Unhandled case: DIVDIR = " + s);
|
|
1476
|
-
let u = [];
|
|
1477
|
-
const h = Nt(n);
|
|
1478
|
-
if (l === "independent") {
|
|
1479
|
-
const p = Tt(n);
|
|
1480
|
-
u = Array(p).fill(i);
|
|
1481
|
-
} else l === "article" ? u = [i] : u = vt(h, i, r);
|
|
1482
|
-
return Array.isArray(u) ? (a === "P" && (o === 2 || o === 3) && (u = [...u].reverse()), {
|
|
1483
|
-
zone_dimensions: u.map((p) => {
|
|
1484
|
-
if (l === "width")
|
|
1485
|
-
return {
|
|
1486
|
-
width: p,
|
|
1487
|
-
height: t.height,
|
|
1488
|
-
depth: t.depth
|
|
1489
|
-
};
|
|
1490
|
-
if (l === "depth")
|
|
1491
|
-
return {
|
|
1492
|
-
width: t.width,
|
|
1493
|
-
height: t.height,
|
|
1494
|
-
depth: p
|
|
1495
|
-
};
|
|
1496
|
-
if (l === "height")
|
|
1497
|
-
return {
|
|
1498
|
-
width: t.width,
|
|
1499
|
-
height: p,
|
|
1500
|
-
depth: t.depth
|
|
1501
|
-
};
|
|
1502
|
-
if (l === "article" || l === "independent")
|
|
1503
|
-
return {
|
|
1504
|
-
width: t.width,
|
|
1505
|
-
height: t.height,
|
|
1506
|
-
depth: t.depth
|
|
1507
|
-
};
|
|
1508
|
-
throw new Error("Unhandled case: DIVDIR = " + s);
|
|
1509
|
-
}),
|
|
1510
|
-
divisionType: l,
|
|
1511
|
-
divided_length_list: u
|
|
1512
|
-
}) : { divisionType: l, zone_dimensions: [], divided_length_list: [] };
|
|
1513
|
-
}
|
|
1514
|
-
function xt({
|
|
1515
|
-
divisionType: e,
|
|
1516
|
-
parentDimensions: t,
|
|
1517
|
-
lengthList: r,
|
|
1518
|
-
childTREEIDs: i,
|
|
1519
|
-
dividerThk: n
|
|
1520
|
-
}) {
|
|
1521
|
-
const s = -t.width / 2, a = -t.depth / 2, o = -t.height / 2;
|
|
1522
|
-
return {
|
|
1523
|
-
childPositions: r.reduce((u, h, m) => {
|
|
1524
|
-
let p = 0, E = 0, y = 0, c;
|
|
1525
|
-
return e === "width" ? (p = s + u.cumulativeX + h / 2, E = 0, y = 0, c = {
|
|
1526
|
-
width: h,
|
|
1527
|
-
height: t.height,
|
|
1528
|
-
depth: t.depth
|
|
1529
|
-
}, u.cumulativeX += h + n) : e === "depth" ? (p = 0, E = a + u.cumulativeY + h / 2, y = 0, c = {
|
|
1530
|
-
width: t.width,
|
|
1531
|
-
height: t.height,
|
|
1532
|
-
depth: h
|
|
1533
|
-
}, u.cumulativeY += h + n) : e === "independent" || e === "article" ? (p = 0, E = 0, y = 0, c = {
|
|
1534
|
-
width: h,
|
|
1535
|
-
height: t.height,
|
|
1536
|
-
depth: t.depth
|
|
1537
|
-
}) : (p = 0, E = 0, y = o + u.cumulativeZ + h / 2, c = {
|
|
1538
|
-
width: t.width,
|
|
1539
|
-
height: h,
|
|
1540
|
-
depth: t.depth
|
|
1541
|
-
}, u.cumulativeZ += h + n), u.positions.push({
|
|
1542
|
-
x: p,
|
|
1543
|
-
y: E,
|
|
1544
|
-
z: y,
|
|
1545
|
-
zone_dims: c,
|
|
1546
|
-
TREEID: i[m]
|
|
1547
|
-
}), u;
|
|
1548
|
-
}, { cumulativeX: 0, cumulativeY: 0, cumulativeZ: 0, positions: [] }).positions,
|
|
1549
|
-
dividerType: e
|
|
1550
|
-
};
|
|
1551
|
-
}
|
|
1552
|
-
function yt(e) {
|
|
1553
|
-
return {
|
|
1554
|
-
front: te(Oe(e)),
|
|
1555
|
-
left: te(Re(e)),
|
|
1556
|
-
right: te(Pe(e)),
|
|
1557
|
-
back: te(Ve(e))
|
|
1558
|
-
};
|
|
1559
|
-
}
|
|
1560
|
-
function It(e, t, r) {
|
|
1561
|
-
return {
|
|
1562
|
-
front: e.front?.thk || 0,
|
|
1563
|
-
right: e.right?.thk || 0,
|
|
1564
|
-
back: e.back?.thk || 0,
|
|
1565
|
-
left: e.left?.thk || 0,
|
|
1566
|
-
top: t,
|
|
1567
|
-
bottom: r
|
|
1568
|
-
};
|
|
1569
|
-
}
|
|
1570
|
-
function _t(e) {
|
|
1571
|
-
return {
|
|
1572
|
-
front: e.front?.inset || 0,
|
|
1573
|
-
right: e.right?.inset || 0,
|
|
1574
|
-
back: e.back?.inset || 0,
|
|
1575
|
-
left: e.left?.inset || 0
|
|
1576
|
-
};
|
|
1577
|
-
}
|
|
1578
|
-
function bt(e, t) {
|
|
1579
|
-
return {
|
|
1580
|
-
dimensions: {
|
|
1581
|
-
width: e.width - t.left - t.right,
|
|
1582
|
-
height: e.height,
|
|
1583
|
-
depth: e.depth - t.front - t.back
|
|
1584
|
-
},
|
|
1585
|
-
position: {
|
|
1586
|
-
x: t.left / 2 - t.right / 2,
|
|
1587
|
-
y: t.front / 2 - t.back / 2,
|
|
1588
|
-
z: 0
|
|
1589
|
-
}
|
|
1590
|
-
};
|
|
1591
|
-
}
|
|
1592
|
-
function kt(e, t) {
|
|
1593
|
-
return {
|
|
1594
|
-
dimensions: {
|
|
1595
|
-
width: e.dimensions.width - t.left - t.right,
|
|
1596
|
-
height: e.dimensions.height - t.top - t.bottom,
|
|
1597
|
-
depth: e.dimensions.depth - t.front - t.back
|
|
1598
|
-
},
|
|
1599
|
-
position: {
|
|
1600
|
-
x: t.left / 2 - t.right / 2,
|
|
1601
|
-
y: t.front / 2 - t.back / 2,
|
|
1602
|
-
z: t.bottom / 2 - t.top / 2
|
|
1603
|
-
}
|
|
1604
|
-
};
|
|
1605
|
-
}
|
|
1606
|
-
function At(e, t, r, i) {
|
|
1607
|
-
return t.divisionType ? xt({
|
|
1608
|
-
divisionType: t.divisionType,
|
|
1609
|
-
parentDimensions: e,
|
|
1610
|
-
lengthList: t.divided_length_list,
|
|
1611
|
-
childTREEIDs: i,
|
|
1612
|
-
dividerThk: Number(r) || 0
|
|
1613
|
-
}) : { childPositions: [], dividerType: "height" };
|
|
1614
|
-
}
|
|
1615
|
-
function Dt(e, t, r, i) {
|
|
1616
|
-
if (!r)
|
|
1617
|
-
return { childPositions: [], dividerType: "height" };
|
|
1618
|
-
const n = Mt(r, e.dimensions, t);
|
|
1619
|
-
return At(
|
|
1620
|
-
e.dimensions,
|
|
1621
|
-
n,
|
|
1622
|
-
t,
|
|
1623
|
-
i
|
|
1624
|
-
);
|
|
1625
|
-
}
|
|
1626
|
-
function U({
|
|
1627
|
-
length: e,
|
|
1628
|
-
width: t,
|
|
1629
|
-
thk: r,
|
|
1630
|
-
material: i = "gray",
|
|
1631
|
-
opacity: n = 0.2,
|
|
1632
|
-
isSelected: s = !1,
|
|
1633
|
-
isHovered: a = !1,
|
|
1634
|
-
onClick: o,
|
|
1635
|
-
onPointerEnter: l,
|
|
1636
|
-
onPointerLeave: u
|
|
1637
|
-
}) {
|
|
1638
|
-
const h = s ? "#ff6b00" : a ? "#0066ff" : i, m = s ? 0.8 : a ? 0.6 : n;
|
|
1639
|
-
return /* @__PURE__ */ f("group", { children: /* @__PURE__ */ O(
|
|
1640
|
-
"mesh",
|
|
1641
|
-
{
|
|
1642
|
-
onClick: o,
|
|
1643
|
-
onPointerEnter: l,
|
|
1644
|
-
onPointerLeave: u,
|
|
1645
|
-
children: [
|
|
1646
|
-
/* @__PURE__ */ f("boxGeometry", { args: [e / v, t / v, r / v] }),
|
|
1647
|
-
/* @__PURE__ */ f(
|
|
1648
|
-
"meshStandardMaterial",
|
|
1649
|
-
{
|
|
1650
|
-
color: h,
|
|
1651
|
-
opacity: m,
|
|
1652
|
-
transparent: !0
|
|
1653
|
-
}
|
|
1654
|
-
),
|
|
1655
|
-
/* @__PURE__ */ f(Ke, { color: s ? "#ff6b00" : a ? "#0066ff" : "black" })
|
|
1656
|
-
]
|
|
1657
|
-
}
|
|
1658
|
-
) });
|
|
1659
|
-
}
|
|
1660
|
-
function wt(e, t, r = 0, i = 0) {
|
|
1661
|
-
const n = e / 2, s = t / 2, a = n, o = s;
|
|
1662
|
-
return `
|
|
1663
|
-
${a},${-o}
|
|
1664
|
-
${-a},${-o}
|
|
1665
|
-
${-a + r},${o}
|
|
1666
|
-
${a - i},${o}
|
|
1667
|
-
`.trim().replace(/\s+/g, " ");
|
|
1668
|
-
}
|
|
1669
|
-
function Z({
|
|
1670
|
-
dim_x: e,
|
|
1671
|
-
dim_y: t,
|
|
1672
|
-
fill: r = "lightgray",
|
|
1673
|
-
text: i = "",
|
|
1674
|
-
stroke_width: n = 2,
|
|
1675
|
-
rotate: s = 0,
|
|
1676
|
-
isSelected: a = !1,
|
|
1677
|
-
isHovered: o = !1,
|
|
1678
|
-
onClick: l,
|
|
1679
|
-
onMouseEnter: u,
|
|
1680
|
-
onMouseLeave: h,
|
|
1681
|
-
startPanelThk: m = 0,
|
|
1682
|
-
endPanelThk: p = 0
|
|
1683
|
-
}) {
|
|
1684
|
-
const E = wt(
|
|
1685
|
-
e,
|
|
1686
|
-
t,
|
|
1687
|
-
m,
|
|
1688
|
-
p
|
|
1689
|
-
), y = a ? "#ff6b00" : o ? "#0066ff" : "black", c = a ? n * 2 : o ? n * 1.5 : n, d = a ? 0.8 : o ? 0.7 : 0.5;
|
|
1690
|
-
return /* @__PURE__ */ O("g", { transform: `rotate(${s})`, children: [
|
|
1691
|
-
/* @__PURE__ */ f(
|
|
1692
|
-
"polygon",
|
|
1693
|
-
{
|
|
1694
|
-
points: E,
|
|
1695
|
-
stroke: y,
|
|
1696
|
-
strokeWidth: c,
|
|
1697
|
-
fill: r,
|
|
1698
|
-
strokeLinejoin: "bevel",
|
|
1699
|
-
strokeMiterlimit: "1",
|
|
1700
|
-
opacity: d,
|
|
1701
|
-
onClick: l,
|
|
1702
|
-
onMouseEnter: u,
|
|
1703
|
-
onMouseLeave: h,
|
|
1704
|
-
style: { cursor: l ? "pointer" : "default" }
|
|
1705
|
-
}
|
|
1706
|
-
),
|
|
1707
|
-
/* @__PURE__ */ f(
|
|
1708
|
-
"text",
|
|
1709
|
-
{
|
|
1710
|
-
transform: "scale(1,-1)",
|
|
1711
|
-
x: 0,
|
|
1712
|
-
y: 0,
|
|
1713
|
-
textAnchor: "middle",
|
|
1714
|
-
dominantBaseline: "middle",
|
|
1715
|
-
fontSize: 14,
|
|
1716
|
-
children: i
|
|
1717
|
-
}
|
|
1718
|
-
)
|
|
1719
|
-
] });
|
|
1720
|
-
}
|
|
1721
|
-
function Ct({ TREEID: e, dimension: t, view: r, helper: i }) {
|
|
1722
|
-
const n = i.front, s = V(F);
|
|
1723
|
-
if (!n || !s) return;
|
|
1724
|
-
const { selectedElem: a, setSelectedElem: o, hoveredElem: l, setHoveredElem: u } = s, { CPNAME: h } = n;
|
|
1725
|
-
if (!h) return null;
|
|
1726
|
-
const { elmTrimThk: m } = n, p = i.left?.thk, E = i.right?.thk, y = (n.trim.start === "S" ? p : 0) ?? 0, c = (n.trim.end === "S" ? E : 0) ?? 0, d = (n.trim.start === "M" ? p : 0) ?? 0, g = (n.trim.end === "M" ? E : 0) ?? 0, I = t.height - m.top - m.bottom + n.oversize.top + n.oversize.bottom, N = t.width - y - c + n.oversize.start + n.oversize.end, M = n.thk, D = -(n.oversize.start / 2 - n.oversize.end / 2 - y / 2 + c / 2), S = n.oversize.bottom / 2 - n.oversize.top / 2 + m.bottom / 2 - m.top / 2, T = -(t.depth / 2 - M / 2), _ = a === e, k = l === e, w = () => {
|
|
1727
|
-
console.log("handleClick", e), o(_ ? null : e);
|
|
1728
|
-
}, b = () => {
|
|
1729
|
-
u(e);
|
|
1730
|
-
}, L = () => {
|
|
1731
|
-
u(null);
|
|
1732
|
-
};
|
|
1733
|
-
return r === x._3D ? /* @__PURE__ */ f("group", { position: [D / v, T / v, S / v], rotation: [Math.PI / 2, 0, Math.PI / 2], children: /* @__PURE__ */ f(
|
|
1734
|
-
U,
|
|
1735
|
-
{
|
|
1736
|
-
length: I,
|
|
1737
|
-
width: N,
|
|
1738
|
-
thk: M,
|
|
1739
|
-
treeId: e,
|
|
1740
|
-
isSelected: _,
|
|
1741
|
-
isHovered: k,
|
|
1742
|
-
onClick: w,
|
|
1743
|
-
onPointerEnter: b,
|
|
1744
|
-
onPointerLeave: L
|
|
1745
|
-
}
|
|
1746
|
-
) }) : /* @__PURE__ */ f("g", { transform: `translate(${D},${r === x._2D_TOP ? T : S}) rotate(0)`, children: /* @__PURE__ */ f(
|
|
1747
|
-
Z,
|
|
1748
|
-
{
|
|
1749
|
-
dim_x: N,
|
|
1750
|
-
dim_y: r === x._2D_TOP ? M : I,
|
|
1751
|
-
text: "front " + I + " x " + N + " x " + M,
|
|
1752
|
-
treeId: e,
|
|
1753
|
-
isSelected: _,
|
|
1754
|
-
isHovered: k,
|
|
1755
|
-
onClick: w,
|
|
1756
|
-
onMouseEnter: b,
|
|
1757
|
-
onMouseLeave: L,
|
|
1758
|
-
startPanelThk: r === x._2D_TOP ? d : 0,
|
|
1759
|
-
endPanelThk: r === x._2D_TOP ? g : 0
|
|
1760
|
-
}
|
|
1761
|
-
) });
|
|
1762
|
-
}
|
|
1763
|
-
const J = ({ view: e = x._3D, position: t = [0, 0, 0], rotation: r = [0, 0, 0], children: i }) => {
|
|
1764
|
-
if (e === x._3D)
|
|
1765
|
-
return /* @__PURE__ */ f(
|
|
1766
|
-
"group",
|
|
1767
|
-
{
|
|
1768
|
-
position: [t[0] / v, t[1] / v, t[2] / v],
|
|
1769
|
-
rotation: r,
|
|
1770
|
-
children: i
|
|
1771
|
-
}
|
|
1772
|
-
);
|
|
1773
|
-
const n = t[0], s = e === x._2D_TOP ? t[1] : t[2], a = r[2] * (180 / Math.PI);
|
|
1774
|
-
return /* @__PURE__ */ f("g", { transform: `translate(${n},${s}) rotate(${a})`, children: i });
|
|
1775
|
-
};
|
|
1776
|
-
function Lt({ TREEID: e, dimension: t, view: r, helper: i }) {
|
|
1777
|
-
const n = i.left, s = V(F);
|
|
1778
|
-
if (!n || !s) return;
|
|
1779
|
-
const { selectedElem: a, setSelectedElem: o, hoveredElem: l, setHoveredElem: u } = s, { CPNAME: h } = n;
|
|
1780
|
-
if (!h) return null;
|
|
1781
|
-
const { elmTrimThk: m } = n, p = i.back?.thk, E = i.front?.thk, y = (n.trim.start === "S" ? p : 0) ?? 0, c = (n.trim.end === "S" ? E : 0) ?? 0, d = (n.trim.start === "M" ? p : 0) ?? 0, g = (n.trim.end === "M" ? E : 0) ?? 0, I = t.height - m.top - m.bottom + n.oversize.top + n.oversize.bottom, N = t.depth - y - c + n.oversize.start + n.oversize.end, M = n.thk, D = -(t.width / 2 - M / 2), S = n.oversize.start / 2 - n.oversize.end / 2 - y / 2 + c / 2, T = n.oversize.bottom / 2 - n.oversize.top / 2 + m.bottom / 2 - m.top / 2, _ = a === e, k = l === e, w = () => {
|
|
1782
|
-
o(_ ? null : e);
|
|
1783
|
-
}, b = () => {
|
|
1784
|
-
u(e);
|
|
1785
|
-
}, L = () => {
|
|
1786
|
-
u(null);
|
|
1787
|
-
};
|
|
1788
|
-
return r === x._3D ? /* @__PURE__ */ f("group", { position: [D / v, S / v, T / v], rotation: [0, Math.PI / 2, 0], children: /* @__PURE__ */ f(
|
|
1789
|
-
U,
|
|
1790
|
-
{
|
|
1791
|
-
length: I,
|
|
1792
|
-
width: N,
|
|
1793
|
-
thk: M,
|
|
1794
|
-
treeId: e,
|
|
1795
|
-
isSelected: _,
|
|
1796
|
-
isHovered: k,
|
|
1797
|
-
onClick: w,
|
|
1798
|
-
onPointerEnter: b,
|
|
1799
|
-
onPointerLeave: L
|
|
1800
|
-
}
|
|
1801
|
-
) }) : /* @__PURE__ */ f("g", { transform: `translate(${D},${r === x._2D_TOP ? S : T}) rotate(90)`, children: /* @__PURE__ */ f(
|
|
1802
|
-
Z,
|
|
1803
|
-
{
|
|
1804
|
-
dim_x: r === x._2D_TOP ? N : I,
|
|
1805
|
-
dim_y: M,
|
|
1806
|
-
text: "left " + I + " x " + N + " x " + M,
|
|
1807
|
-
treeId: e,
|
|
1808
|
-
rotate: 180,
|
|
1809
|
-
isSelected: _,
|
|
1810
|
-
isHovered: k,
|
|
1811
|
-
onClick: w,
|
|
1812
|
-
onMouseEnter: b,
|
|
1813
|
-
onMouseLeave: L,
|
|
1814
|
-
startPanelThk: r === x._2D_TOP ? d : 0,
|
|
1815
|
-
endPanelThk: r === x._2D_TOP ? g : 0
|
|
1816
|
-
}
|
|
1817
|
-
) });
|
|
1818
|
-
}
|
|
1819
|
-
function Ot({ TREEID: e, dimension: t, view: r, helper: i }) {
|
|
1820
|
-
const n = i.back, s = V(F);
|
|
1821
|
-
if (!n || !s) return;
|
|
1822
|
-
const { selectedElem: a, setSelectedElem: o, hoveredElem: l, setHoveredElem: u } = s, { CPNAME: h } = n;
|
|
1823
|
-
if (!h) return null;
|
|
1824
|
-
const { elmTrimThk: m } = n, p = i.right?.thk, E = i.left?.thk, y = (n.trim.start === "S" ? p : 0) ?? 0, c = (n.trim.end === "S" ? E : 0) ?? 0, d = (n.trim.start === "M" ? p : 0) ?? 0, g = (n.trim.end === "M" ? E : 0) ?? 0, I = t.height - m.top - m.bottom + n.oversize.top + n.oversize.bottom, N = t.width - y - c + n.oversize.start + n.oversize.end, M = n.thk, D = n.oversize.start / 2 - n.oversize.end / 2 - y / 2 + c / 2, S = t.depth / 2 - M / 2, T = n.oversize.bottom / 2 - n.oversize.top / 2 + m.bottom / 2 - m.top / 2, _ = a === e, k = l === e, w = () => {
|
|
1825
|
-
o(_ ? null : e);
|
|
1826
|
-
}, b = () => {
|
|
1827
|
-
u(e);
|
|
1828
|
-
}, L = () => {
|
|
1829
|
-
u(null);
|
|
1830
|
-
};
|
|
1831
|
-
return r === x._3D ? /* @__PURE__ */ O("group", { position: [D / v, S / v, T / v], rotation: [Math.PI / 2, 0, Math.PI / 2], children: [
|
|
1832
|
-
/* @__PURE__ */ f(
|
|
1833
|
-
U,
|
|
1834
|
-
{
|
|
1835
|
-
length: I,
|
|
1836
|
-
width: N,
|
|
1837
|
-
thk: M,
|
|
1838
|
-
treeId: e,
|
|
1839
|
-
isSelected: _,
|
|
1840
|
-
isHovered: k,
|
|
1841
|
-
onClick: w,
|
|
1842
|
-
onPointerEnter: b,
|
|
1843
|
-
onPointerLeave: L
|
|
1844
|
-
}
|
|
1845
|
-
),
|
|
1846
|
-
/* @__PURE__ */ f(Ye, { position: [0, 0, 0], color: "blue", fontSize: 20, children: e })
|
|
1847
|
-
] }) : /* @__PURE__ */ f("g", { transform: `translate(${D},${r === x._2D_TOP ? S : T}) rotate(0)`, children: /* @__PURE__ */ f(
|
|
1848
|
-
Z,
|
|
1849
|
-
{
|
|
1850
|
-
dim_x: N,
|
|
1851
|
-
dim_y: r === x._2D_TOP ? M : I,
|
|
1852
|
-
text: "Back " + I + " x " + N + " x " + M,
|
|
1853
|
-
treeId: e,
|
|
1854
|
-
isSelected: _,
|
|
1855
|
-
rotate: 180,
|
|
1856
|
-
isHovered: k,
|
|
1857
|
-
onClick: w,
|
|
1858
|
-
onMouseEnter: b,
|
|
1859
|
-
onMouseLeave: L,
|
|
1860
|
-
startPanelThk: r === x._2D_TOP ? d : 0,
|
|
1861
|
-
endPanelThk: r === x._2D_TOP ? g : 0
|
|
1862
|
-
}
|
|
1863
|
-
) });
|
|
1864
|
-
}
|
|
1865
|
-
function Pt({ TREEID: e, dimension: t, view: r, helper: i }) {
|
|
1866
|
-
const n = i.right, s = V(F);
|
|
1867
|
-
if (!n || !s) return;
|
|
1868
|
-
const { selectedElem: a, setSelectedElem: o, hoveredElem: l, setHoveredElem: u } = s, { CPNAME: h } = n;
|
|
1869
|
-
if (!h) return null;
|
|
1870
|
-
const { elmTrimThk: m } = n, p = i.front?.thk, E = i.back?.thk, y = (n.trim.start === "S" ? p : 0) ?? 0, c = (n.trim.end === "S" ? E : 0) ?? 0, d = (n.trim.start === "M" ? p : 0) ?? 0, g = (n.trim.end === "M" ? E : 0) ?? 0, I = t.height - m.top - m.bottom + n.oversize.top + n.oversize.bottom, N = t.depth - y - c + n.oversize.start + n.oversize.end, M = n.thk, D = t.width / 2 - M / 2, S = -(n.oversize.start / 2 - n.oversize.end / 2 - y / 2 + c / 2), T = n.oversize.bottom / 2 + n.oversize.top / 2 + m.bottom / 2 - m.top / 2, _ = a === e, k = l === e, w = () => {
|
|
1871
|
-
o(_ ? null : e);
|
|
1872
|
-
}, b = () => {
|
|
1873
|
-
u(e);
|
|
1874
|
-
}, L = () => {
|
|
1875
|
-
u(null);
|
|
1876
|
-
};
|
|
1877
|
-
return r === x._3D ? /* @__PURE__ */ f("group", { position: [D / v, S / v, T / v], rotation: [0, Math.PI / 2, 0], children: /* @__PURE__ */ f(
|
|
1878
|
-
U,
|
|
1879
|
-
{
|
|
1880
|
-
length: I,
|
|
1881
|
-
width: N,
|
|
1882
|
-
thk: M,
|
|
1883
|
-
treeId: e,
|
|
1884
|
-
isSelected: _,
|
|
1885
|
-
isHovered: k,
|
|
1886
|
-
onClick: w,
|
|
1887
|
-
onPointerEnter: b,
|
|
1888
|
-
onPointerLeave: L
|
|
1889
|
-
}
|
|
1890
|
-
) }) : /* @__PURE__ */ f("g", { transform: `translate(${D},${r === x._2D_TOP ? S : T}) rotate(90)`, children: /* @__PURE__ */ f(
|
|
1891
|
-
Z,
|
|
1892
|
-
{
|
|
1893
|
-
dim_x: r === x._2D_TOP ? N : I,
|
|
1894
|
-
dim_y: M,
|
|
1895
|
-
text: "right " + I + " x " + N + " x " + M,
|
|
1896
|
-
treeId: e,
|
|
1897
|
-
isSelected: _,
|
|
1898
|
-
isHovered: k,
|
|
1899
|
-
onClick: w,
|
|
1900
|
-
onMouseEnter: b,
|
|
1901
|
-
onMouseLeave: L,
|
|
1902
|
-
startPanelThk: r === x._2D_TOP ? d : 0,
|
|
1903
|
-
endPanelThk: r === x._2D_TOP ? g : 0
|
|
1904
|
-
}
|
|
1905
|
-
) });
|
|
1906
|
-
}
|
|
1907
|
-
function Vt({ TREEID: e, dimension: t, view: r, helper: i }) {
|
|
1908
|
-
const n = ue(e), s = V(F);
|
|
1909
|
-
if (!n || !s) return;
|
|
1910
|
-
const { selectedElem: a, setSelectedElem: o, hoveredElem: l, setHoveredElem: u } = s, { topShelfCP: h } = n;
|
|
1911
|
-
if (!h) return;
|
|
1912
|
-
const m = (i.front?.trim.top !== "S" ? i.front?.thk : 0) ?? 0, p = (i.back?.trim.top !== "S" ? i.back?.thk : 0) ?? 0, E = (i.left?.trim.top !== "S" ? i.left?.thk : 0) ?? 0, y = (i.right?.trim.top !== "S" ? i.right?.thk : 0) ?? 0, c = t.width - E - y, d = t.depth - p - m, g = n.topShelfThk, I = E / 2 - y / 2, N = -(p / 2 - m / 2), M = t.height / 2 - g / 2, D = a === e, S = l === e, T = () => {
|
|
1913
|
-
o(D ? null : e);
|
|
1914
|
-
}, _ = () => {
|
|
1915
|
-
u(e);
|
|
1916
|
-
}, k = () => {
|
|
1917
|
-
u(null);
|
|
1918
|
-
};
|
|
1919
|
-
return r === x._3D ? /* @__PURE__ */ f("group", { position: [I / v, N / v, M / v], rotation: [0, 0, 0], children: /* @__PURE__ */ f(
|
|
1920
|
-
U,
|
|
1921
|
-
{
|
|
1922
|
-
length: c,
|
|
1923
|
-
width: d,
|
|
1924
|
-
thk: g,
|
|
1925
|
-
opacity: 0.8,
|
|
1926
|
-
treeId: e,
|
|
1927
|
-
isSelected: D,
|
|
1928
|
-
isHovered: S,
|
|
1929
|
-
onClick: T,
|
|
1930
|
-
onPointerEnter: _,
|
|
1931
|
-
onPointerLeave: k
|
|
1932
|
-
}
|
|
1933
|
-
) }) : /* @__PURE__ */ f("g", { transform: `translate(${I},${r === x._2D_TOP ? N : M})`, children: /* @__PURE__ */ f(
|
|
1934
|
-
Z,
|
|
1935
|
-
{
|
|
1936
|
-
dim_x: c,
|
|
1937
|
-
dim_y: r === x._2D_TOP ? d : g,
|
|
1938
|
-
text: "Top " + e + " -- " + c + " x " + d + " x " + g,
|
|
1939
|
-
treeId: e,
|
|
1940
|
-
isSelected: D,
|
|
1941
|
-
isHovered: S,
|
|
1942
|
-
onClick: T,
|
|
1943
|
-
onMouseEnter: _,
|
|
1944
|
-
onMouseLeave: k
|
|
1945
|
-
}
|
|
1946
|
-
) });
|
|
1947
|
-
}
|
|
1948
|
-
function Rt({ TREEID: e, dimension: t, view: r, helper: i }) {
|
|
1949
|
-
const n = ue(e), s = V(F);
|
|
1950
|
-
if (!n || !s) return;
|
|
1951
|
-
const { selectedElem: a, setSelectedElem: o, hoveredElem: l, setHoveredElem: u } = s, { bottomShelfCP: h } = n;
|
|
1952
|
-
if (!h) return;
|
|
1953
|
-
const m = (i.front?.trim.bottom !== "S" ? i.front?.thk : 0) ?? 0, p = (i.back?.trim.bottom !== "S" ? i.back?.thk : 0) ?? 0, E = (i.left?.trim.bottom !== "S" ? i.left?.thk : 0) ?? 0, y = (i.right?.trim.bottom !== "S" ? i.right?.thk : 0) ?? 0, c = t.width - E - y, d = t.depth - p - m, g = n.bottomShelfThk, I = E / 2 - y / 2, N = -(p / 2 - m / 2), M = -(t.height / 2 - g / 2), D = a === e, S = l === e, T = () => {
|
|
1954
|
-
o(D ? null : e);
|
|
1955
|
-
}, _ = () => {
|
|
1956
|
-
u(e);
|
|
1957
|
-
}, k = () => {
|
|
1958
|
-
u(null);
|
|
1959
|
-
};
|
|
1960
|
-
return r === x._3D ? /* @__PURE__ */ f("group", { position: [I / v, N / v, M / v], rotation: [0, 0, 0], children: /* @__PURE__ */ f(
|
|
1961
|
-
U,
|
|
1962
|
-
{
|
|
1963
|
-
length: c,
|
|
1964
|
-
width: d,
|
|
1965
|
-
thk: g,
|
|
1966
|
-
opacity: 0.8,
|
|
1967
|
-
treeId: e,
|
|
1968
|
-
isSelected: D,
|
|
1969
|
-
isHovered: S,
|
|
1970
|
-
onClick: T,
|
|
1971
|
-
onPointerEnter: _,
|
|
1972
|
-
onPointerLeave: k
|
|
1973
|
-
}
|
|
1974
|
-
) }) : /* @__PURE__ */ f("g", { transform: `translate(${I},${r === x._2D_TOP ? N : M})`, children: /* @__PURE__ */ f(
|
|
1975
|
-
Z,
|
|
1976
|
-
{
|
|
1977
|
-
dim_x: c,
|
|
1978
|
-
dim_y: r === x._2D_TOP ? d : g,
|
|
1979
|
-
text: "Bot " + c + " x " + d + " x " + g,
|
|
1980
|
-
treeId: e,
|
|
1981
|
-
isSelected: D,
|
|
1982
|
-
isHovered: S,
|
|
1983
|
-
onClick: T,
|
|
1984
|
-
onMouseEnter: _,
|
|
1985
|
-
onMouseLeave: k
|
|
1986
|
-
}
|
|
1987
|
-
) });
|
|
1988
|
-
}
|
|
1989
|
-
function $t() {
|
|
1990
|
-
const e = V(De);
|
|
1991
|
-
if (!e)
|
|
1992
|
-
throw new Error(
|
|
1993
|
-
"useDescriptorManager must be used within a DescriptorProvider"
|
|
1994
|
-
);
|
|
1995
|
-
return e;
|
|
1996
|
-
}
|
|
1997
|
-
function Ft(e, t, r, i = {}) {
|
|
1998
|
-
const { throwOnError: n = !1 } = i;
|
|
1999
|
-
if (!e.hasDescriptor(t))
|
|
2000
|
-
throw new Error(`Descriptor ${t} not found`);
|
|
2001
|
-
return $(() => {
|
|
2002
|
-
try {
|
|
2003
|
-
return {
|
|
2004
|
-
result: e.evaluate(t, r),
|
|
2005
|
-
error: null,
|
|
2006
|
-
success: !0
|
|
2007
|
-
};
|
|
2008
|
-
} catch (s) {
|
|
2009
|
-
const a = s instanceof Error ? s.message : "Unknown error";
|
|
2010
|
-
if (n)
|
|
2011
|
-
throw s;
|
|
2012
|
-
return {
|
|
2013
|
-
result: null,
|
|
2014
|
-
error: a,
|
|
2015
|
-
success: !1
|
|
2016
|
-
};
|
|
2017
|
-
}
|
|
2018
|
-
}, [e, t, r, n]);
|
|
2019
|
-
}
|
|
2020
|
-
function sr(e, t, r) {
|
|
2021
|
-
return $(() => {
|
|
2022
|
-
try {
|
|
2023
|
-
const i = e.findAllMatches(t, r);
|
|
2024
|
-
return {
|
|
2025
|
-
matches: i,
|
|
2026
|
-
error: null,
|
|
2027
|
-
count: i.length
|
|
2028
|
-
};
|
|
2029
|
-
} catch (i) {
|
|
2030
|
-
const n = i instanceof Error ? i.message : "Unknown error";
|
|
2031
|
-
return {
|
|
2032
|
-
matches: [],
|
|
2033
|
-
error: n,
|
|
2034
|
-
count: 0
|
|
2035
|
-
};
|
|
2036
|
-
}
|
|
2037
|
-
}, [e, t, r]);
|
|
2038
|
-
}
|
|
2039
|
-
const R = {
|
|
2040
|
-
LINEAR_DIVISION: "linear-division",
|
|
2041
|
-
ARTICLE: "article"
|
|
2042
|
-
}, B = {
|
|
2043
|
-
STRING: "string",
|
|
2044
|
-
// Direct value
|
|
2045
|
-
DESCRIPTOR: "descriptor"
|
|
2046
|
-
// Value from descriptor evaluation
|
|
2047
|
-
}, ye = {
|
|
2048
|
-
// Check if divider is linear division (any source)
|
|
2049
|
-
linearDivision: (e) => e.type === R.LINEAR_DIVISION,
|
|
2050
|
-
// Check if divider is article (any source)
|
|
2051
|
-
article: (e) => e.type === R.ARTICLE
|
|
2052
|
-
}, zt = {
|
|
2053
|
-
// Check if linear division uses direct string formula
|
|
2054
|
-
string: (e) => e.type === R.LINEAR_DIVISION && e.valueSource === B.STRING,
|
|
2055
|
-
// Check if linear division uses descriptor
|
|
2056
|
-
descriptor: (e) => e.type === R.LINEAR_DIVISION && e.valueSource === B.DESCRIPTOR
|
|
2057
|
-
}, oe = {
|
|
2058
|
-
// Check if article uses direct string name
|
|
2059
|
-
string: (e) => e.type === R.ARTICLE && e.valueSource === B.STRING,
|
|
2060
|
-
// Check if article uses descriptor
|
|
2061
|
-
descriptor: (e) => e.type === R.ARTICLE && e.valueSource === B.DESCRIPTOR
|
|
2062
|
-
}, q = {
|
|
2063
|
-
// Create a linear division with string formula
|
|
2064
|
-
linearDivisionString(e, t, r, i, n, s, a, o) {
|
|
2065
|
-
return {
|
|
2066
|
-
TREEID: e,
|
|
2067
|
-
type: R.LINEAR_DIVISION,
|
|
2068
|
-
valueSource: B.STRING,
|
|
2069
|
-
DIVDIR: t,
|
|
2070
|
-
DIVTYPE: r,
|
|
2071
|
-
HORDEFTYPE: i,
|
|
2072
|
-
LINDIV1: n,
|
|
2073
|
-
DIVELEM1: s,
|
|
2074
|
-
DIVIDER: "",
|
|
2075
|
-
formula: a,
|
|
2076
|
-
thickness: o
|
|
2077
|
-
};
|
|
2078
|
-
},
|
|
2079
|
-
// Create a linear division with descriptor reference
|
|
2080
|
-
// Create linear division with descriptor reference
|
|
2081
|
-
linearDivisionDescriptor(e, t, r, i, n, s, a, o) {
|
|
2082
|
-
return {
|
|
2083
|
-
TREEID: e,
|
|
2084
|
-
type: R.LINEAR_DIVISION,
|
|
2085
|
-
valueSource: B.DESCRIPTOR,
|
|
2086
|
-
DIVDIR: t,
|
|
2087
|
-
DIVTYPE: r,
|
|
2088
|
-
HORDEFTYPE: i,
|
|
2089
|
-
LINDIV1: n,
|
|
2090
|
-
DIVELEM1: s,
|
|
2091
|
-
DIVIDER: "",
|
|
2092
|
-
descriptorName: a,
|
|
2093
|
-
thickness: o
|
|
2094
|
-
};
|
|
2095
|
-
},
|
|
2096
|
-
// Create an article divider
|
|
2097
|
-
// Create article with direct name string
|
|
2098
|
-
articleString(e, t, r, i, n, s, a) {
|
|
2099
|
-
return {
|
|
2100
|
-
TREEID: e,
|
|
2101
|
-
type: R.ARTICLE,
|
|
2102
|
-
valueSource: B.STRING,
|
|
2103
|
-
DIVDIR: t,
|
|
2104
|
-
DIVTYPE: r,
|
|
2105
|
-
HORDEFTYPE: i,
|
|
2106
|
-
LINDIV1: n,
|
|
2107
|
-
DIVELEM1: s,
|
|
2108
|
-
DIVIDER: a,
|
|
2109
|
-
articleName: a
|
|
2110
|
-
};
|
|
2111
|
-
},
|
|
2112
|
-
// Create article with descriptor reference
|
|
2113
|
-
articleDescriptor(e, t, r, i, n, s, a) {
|
|
2114
|
-
return {
|
|
2115
|
-
TREEID: e,
|
|
2116
|
-
type: R.ARTICLE,
|
|
2117
|
-
valueSource: B.DESCRIPTOR,
|
|
2118
|
-
DIVDIR: t,
|
|
2119
|
-
DIVTYPE: r,
|
|
2120
|
-
HORDEFTYPE: i,
|
|
2121
|
-
LINDIV1: n,
|
|
2122
|
-
DIVELEM1: s,
|
|
2123
|
-
DIVIDER: a,
|
|
2124
|
-
descriptorName: a
|
|
2125
|
-
};
|
|
2126
|
-
},
|
|
2127
|
-
// Smart factory: Automatically determines type and source
|
|
2128
|
-
fromZoneData(e, t) {
|
|
2129
|
-
const r = (i) => i.trim().startsWith("#");
|
|
2130
|
-
if (e.DIVDIR === "A") {
|
|
2131
|
-
if (r(e.DIVIDER)) {
|
|
2132
|
-
const i = e.DIVIDER.replace("#", "").trim();
|
|
2133
|
-
return q.articleDescriptor(
|
|
2134
|
-
e.TREEID,
|
|
2135
|
-
e.DIVDIR,
|
|
2136
|
-
e.DIVTYPE,
|
|
2137
|
-
e.HORDEFTYPE,
|
|
2138
|
-
e.LINDIV1,
|
|
2139
|
-
e.DIVELEM1,
|
|
2140
|
-
i
|
|
2141
|
-
);
|
|
2142
|
-
}
|
|
2143
|
-
return q.articleString(
|
|
2144
|
-
e.TREEID,
|
|
2145
|
-
e.DIVDIR,
|
|
2146
|
-
e.DIVTYPE,
|
|
2147
|
-
e.HORDEFTYPE,
|
|
2148
|
-
e.LINDIV1,
|
|
2149
|
-
e.DIVELEM1,
|
|
2150
|
-
e.DIVIDER
|
|
2151
|
-
);
|
|
2152
|
-
}
|
|
2153
|
-
if (r(e.LINDIV1)) {
|
|
2154
|
-
const i = e.LINDIV1.replace("#", "").trim();
|
|
2155
|
-
return q.linearDivisionDescriptor(
|
|
2156
|
-
e.TREEID,
|
|
2157
|
-
e.DIVDIR,
|
|
2158
|
-
e.DIVTYPE,
|
|
2159
|
-
e.HORDEFTYPE,
|
|
2160
|
-
e.LINDIV1,
|
|
2161
|
-
e.DIVELEM1,
|
|
2162
|
-
i,
|
|
2163
|
-
t
|
|
2164
|
-
);
|
|
2165
|
-
}
|
|
2166
|
-
return q.linearDivisionString(
|
|
2167
|
-
e.TREEID,
|
|
2168
|
-
e.DIVDIR,
|
|
2169
|
-
e.DIVTYPE,
|
|
2170
|
-
e.HORDEFTYPE,
|
|
2171
|
-
e.LINDIV1,
|
|
2172
|
-
e.DIVELEM1,
|
|
2173
|
-
e.LINDIV1,
|
|
2174
|
-
t
|
|
2175
|
-
);
|
|
2176
|
-
}
|
|
2177
|
-
};
|
|
2178
|
-
function Gt(e) {
|
|
2179
|
-
if (!e) return "width";
|
|
2180
|
-
const t = {
|
|
2181
|
-
0: "width",
|
|
2182
|
-
1: "depth",
|
|
2183
|
-
2: "width",
|
|
2184
|
-
3: "depth"
|
|
2185
|
-
};
|
|
2186
|
-
return e.DIVDIR === "V" ? "height" : e.HORDEFTYPE === "W" ? "width" : e.HORDEFTYPE === "D" ? "depth" : e.HORDEFTYPE === "P" ? t[e.DIVELEM1] ?? "width" : "width";
|
|
2187
|
-
}
|
|
2188
|
-
function Bt(e, t) {
|
|
2189
|
-
return t ? t[e] : 0;
|
|
2190
|
-
}
|
|
2191
|
-
function Ht(e, t) {
|
|
2192
|
-
const r = e;
|
|
2193
|
-
if (Kt(e))
|
|
2194
|
-
return {
|
|
2195
|
-
value: e.startsWith("#") ? e.slice(1) : e,
|
|
2196
|
-
original: r,
|
|
2197
|
-
isReference: !0
|
|
2198
|
-
};
|
|
2199
|
-
if (/^\d+:\d+$/.test(e))
|
|
2200
|
-
return {
|
|
2201
|
-
value: e,
|
|
2202
|
-
original: r,
|
|
2203
|
-
isReference: !1
|
|
2204
|
-
};
|
|
2205
|
-
const { format: i, expression: n, suffix: s } = Zt(e);
|
|
2206
|
-
let a = n;
|
|
2207
|
-
a = a.replace(/^\((.+)\)$/, "$1");
|
|
2208
|
-
const l = we(a, {
|
|
2209
|
-
variableTree: t,
|
|
2210
|
-
allowFunctions: !0,
|
|
2211
|
-
// Enable round(), floor(), etc.
|
|
2212
|
-
dataType: "FL",
|
|
2213
|
-
silent: !0
|
|
2214
|
-
}).value ?? n;
|
|
2215
|
-
let u;
|
|
2216
|
-
switch (i) {
|
|
2217
|
-
case "expr:ratio":
|
|
2218
|
-
u = `${l}${s}`;
|
|
2219
|
-
break;
|
|
2220
|
-
case "ratio:expr":
|
|
2221
|
-
u = `${s}${l}`;
|
|
2222
|
-
break;
|
|
2223
|
-
case "expr*{ratio}":
|
|
2224
|
-
u = `${l}${s}`;
|
|
2225
|
-
break;
|
|
2226
|
-
case "simple":
|
|
2227
|
-
u = String(l);
|
|
2228
|
-
break;
|
|
2229
|
-
}
|
|
2230
|
-
return {
|
|
2231
|
-
value: u,
|
|
2232
|
-
original: r,
|
|
2233
|
-
isReference: !1
|
|
2234
|
-
};
|
|
2235
|
-
}
|
|
2236
|
-
function Ut(e, t) {
|
|
2237
|
-
return Ht(e, t).value;
|
|
2238
|
-
}
|
|
2239
|
-
function Zt(e) {
|
|
2240
|
-
const r = e.trim().replace(/^\((.+)\)$/, "$1"), i = r.match(/^(\d+|n):(.+?)(mm|cm)?$/);
|
|
2241
|
-
if (i) {
|
|
2242
|
-
const [, a, o, l] = i;
|
|
2243
|
-
return {
|
|
2244
|
-
format: "ratio:expr",
|
|
2245
|
-
expression: o.trim(),
|
|
2246
|
-
suffix: l ? `${a}:${l}` : `${a}:`
|
|
2247
|
-
};
|
|
2248
|
-
}
|
|
2249
|
-
const n = r.match(/^(.+?)(mm|cm)?:(\d+)$/);
|
|
2250
|
-
if (n) {
|
|
2251
|
-
const [, a, o, l] = n;
|
|
2252
|
-
return {
|
|
2253
|
-
format: "expr:ratio",
|
|
2254
|
-
expression: a.trim(),
|
|
2255
|
-
suffix: o ? `${o}:${l}` : `:${l}`
|
|
2256
|
-
};
|
|
2257
|
-
}
|
|
2258
|
-
const s = r.match(/^(.+?)(\*)?{(\d+)}$/);
|
|
2259
|
-
if (s) {
|
|
2260
|
-
const [, a, o, l] = s;
|
|
2261
|
-
return {
|
|
2262
|
-
format: "expr*{ratio}",
|
|
2263
|
-
expression: a.trim(),
|
|
2264
|
-
suffix: o ? `*{${l}}` : `{${l}}`
|
|
2265
|
-
};
|
|
2266
|
-
}
|
|
2267
|
-
return {
|
|
2268
|
-
format: "simple",
|
|
2269
|
-
expression: r,
|
|
2270
|
-
suffix: ""
|
|
2271
|
-
};
|
|
2272
|
-
}
|
|
2273
|
-
function Kt(e) {
|
|
2274
|
-
return e.startsWith("#") ? !0 : e.includes("(") || /[+\-*/]/.test(e) ? !1 : /^[A-Za-z0-9_-]+$/.test(e) ? !0 : !/^\d+:\d+$/.test(e);
|
|
2275
|
-
}
|
|
2276
|
-
function Yt({ divider: e, inputData: t }) {
|
|
2277
|
-
const r = $t(), { resolveString: i } = j(), { result: n, error: s } = Ft(r, e.descriptorName, t, { throwOnError: !1 }), a = $(() => e ? oe.string(e) ? e.articleName : oe.descriptor(e) && n?.lindiv ? n.lindiv : "" : "", [e, n]);
|
|
2278
|
-
return {
|
|
2279
|
-
updatedDivider: $(() => {
|
|
2280
|
-
if (e)
|
|
2281
|
-
return n?.lindiv != null ? {
|
|
2282
|
-
...e,
|
|
2283
|
-
LINDIV1: Ut(i(n.lindiv)),
|
|
2284
|
-
// Replace the descriptor reference with actual formula
|
|
2285
|
-
articleName: a
|
|
2286
|
-
} : { ...e, LINDIV1: i(e.LINDIV1) };
|
|
2287
|
-
}, [e, n, a, i])
|
|
2288
|
-
};
|
|
2289
|
-
}
|
|
2290
|
-
const Wt = {
|
|
2291
|
-
width: {
|
|
2292
|
-
rotation: [0, Math.PI / 2, 0],
|
|
2293
|
-
get3D: (e, t) => ({ length: e.height, width: e.depth, thk: t }),
|
|
2294
|
-
get2DTop: (e, t) => ({ dim_x: e.depth, dim_y: t, rotate: 90 }),
|
|
2295
|
-
get2DFront: (e, t) => ({ dim_x: e.height, dim_y: t, rotate: 90 })
|
|
2296
|
-
},
|
|
2297
|
-
height: {
|
|
2298
|
-
rotation: [0, 0, 0],
|
|
2299
|
-
get3D: (e, t) => ({ length: e.width, width: e.depth, thk: t }),
|
|
2300
|
-
get2DTop: (e) => ({ dim_x: e.width, dim_y: e.depth }),
|
|
2301
|
-
get2DFront: (e, t) => ({ dim_x: e.width, dim_y: t })
|
|
2302
|
-
},
|
|
2303
|
-
depth: {
|
|
2304
|
-
rotation: [Math.PI / 2, 0, Math.PI / 2],
|
|
2305
|
-
get3D: (e, t) => ({ length: e.height, width: e.width, thk: t }),
|
|
2306
|
-
get2DTop: (e, t) => ({ dim_x: e.width, dim_y: t }),
|
|
2307
|
-
get2DFront: (e) => ({ dim_x: e.width, dim_y: e.height })
|
|
2308
|
-
},
|
|
2309
|
-
article: {
|
|
2310
|
-
rotation: [0, 0, 0],
|
|
2311
|
-
get3D: (e, t) => ({ length: e.width, width: e.depth, thk: t }),
|
|
2312
|
-
get2DTop: (e) => ({ dim_x: e.width, dim_y: e.depth }),
|
|
2313
|
-
get2DFront: (e, t) => ({ dim_x: e.width, dim_y: t })
|
|
2314
|
-
},
|
|
2315
|
-
independent: {
|
|
2316
|
-
rotation: [0, 0, 0],
|
|
2317
|
-
get3D: (e, t) => ({ length: e.width, width: e.depth, thk: t }),
|
|
2318
|
-
get2DTop: (e) => ({ dim_x: e.width, dim_y: e.depth }),
|
|
2319
|
-
get2DFront: (e, t) => ({ dim_x: e.width, dim_y: t })
|
|
2320
|
-
}
|
|
2321
|
-
}, Xt = (e, t, r) => ({
|
|
2322
|
-
x: e === "width" ? r.width / 2 + t / 2 : 0,
|
|
2323
|
-
y: e === "depth" ? r.depth / 2 + t / 2 : 0,
|
|
2324
|
-
z: e === "height" ? r.height / 2 + t / 2 : 0
|
|
2325
|
-
});
|
|
2326
|
-
function jt({ divider: e, view: t, childrenPositon: r, dividerThk: i }) {
|
|
2327
|
-
const n = V(F), s = r.dividerType, a = r.childPositions, o = Wt[s];
|
|
2328
|
-
if (!n) return null;
|
|
2329
|
-
const { selectedElem: l, setSelectedElem: u, hoveredElem: h, setHoveredElem: m } = n;
|
|
2330
|
-
return a.map((p, E) => {
|
|
2331
|
-
const c = !(E === a.length - 1) && i !== 0, d = Xt(s, i, p.zone_dims), g = o.get3D(p.zone_dims, i), I = t === x._2D_TOP ? o.get2DTop(p.zone_dims, i) : o.get2DFront(p.zone_dims, i), N = `${e.TREEID} divider`, M = l === N, D = h === N;
|
|
2332
|
-
return /* @__PURE__ */ f(Ze, { children: /* @__PURE__ */ O(J, { view: t, position: [p.x / v, p.y / v, p.z / v], children: [
|
|
2333
|
-
/* @__PURE__ */ f(J, { view: t, position: [d.x / v, d.y / v, d.z / v], rotation: o.rotation, children: c && /* @__PURE__ */ O(pe, { children: [
|
|
2334
|
-
/* @__PURE__ */ f("group", { children: /* @__PURE__ */ O("mesh", { children: [
|
|
2335
|
-
/* @__PURE__ */ f(
|
|
2336
|
-
"boxGeometry",
|
|
2337
|
-
{
|
|
2338
|
-
args: [g.length, g.width, g.thk]
|
|
2339
|
-
}
|
|
2340
|
-
),
|
|
2341
|
-
/* @__PURE__ */ f("meshStandardMaterial", { color: "blue", transparent: !0, opacity: 0.3 })
|
|
2342
|
-
] }) }),
|
|
2343
|
-
t === x._3D ? /* @__PURE__ */ f(
|
|
2344
|
-
U,
|
|
2345
|
-
{
|
|
2346
|
-
...g,
|
|
2347
|
-
opacity: 1,
|
|
2348
|
-
treeId: N,
|
|
2349
|
-
isSelected: M,
|
|
2350
|
-
isHovered: D,
|
|
2351
|
-
onClick: () => u(M ? null : N),
|
|
2352
|
-
onPointerEnter: () => m(N),
|
|
2353
|
-
onPointerLeave: () => m(null)
|
|
2354
|
-
}
|
|
2355
|
-
) : /* @__PURE__ */ f(
|
|
2356
|
-
Z,
|
|
2357
|
-
{
|
|
2358
|
-
...I,
|
|
2359
|
-
text: N,
|
|
2360
|
-
treeId: N,
|
|
2361
|
-
isSelected: M,
|
|
2362
|
-
isHovered: D,
|
|
2363
|
-
onClick: () => u(M ? null : N),
|
|
2364
|
-
onMouseEnter: () => m(N),
|
|
2365
|
-
onMouseLeave: () => m(null)
|
|
2366
|
-
}
|
|
2367
|
-
)
|
|
2368
|
-
] }) }),
|
|
2369
|
-
/* @__PURE__ */ f(ze, { TREEID: p.TREEID, dimension: p.zone_dims, view: t })
|
|
2370
|
-
] }) }, E);
|
|
2371
|
-
});
|
|
2372
|
-
}
|
|
2373
|
-
function qt({ view: e, remainingZone: t, articleName: r }) {
|
|
2374
|
-
return /* @__PURE__ */ f(
|
|
2375
|
-
be,
|
|
2376
|
-
{
|
|
2377
|
-
articleName: r,
|
|
2378
|
-
dimensionOverrides: {
|
|
2379
|
-
width: t.dimensions.width,
|
|
2380
|
-
height: t.dimensions.height,
|
|
2381
|
-
depth: t.dimensions.depth
|
|
2382
|
-
},
|
|
2383
|
-
children: /* @__PURE__ */ f(
|
|
2384
|
-
J,
|
|
2385
|
-
{
|
|
2386
|
-
view: e,
|
|
2387
|
-
position: [
|
|
2388
|
-
t.position.x / v,
|
|
2389
|
-
t.position.y / v,
|
|
2390
|
-
t.position.z / v
|
|
2391
|
-
],
|
|
2392
|
-
children: /* @__PURE__ */ f(Ge, { view: e })
|
|
2393
|
-
}
|
|
2394
|
-
)
|
|
2395
|
-
}
|
|
2396
|
-
);
|
|
2397
|
-
}
|
|
2398
|
-
function Jt({ childrenPositon: e, dividerThk: t, divider: r, view: i, remainingZone: n }) {
|
|
2399
|
-
if (ye.linearDivision(r))
|
|
2400
|
-
return e ? /* @__PURE__ */ f(jt, { view: i, childrenPositon: e, dividerThk: t, divider: r, remainingZone: n }) : null;
|
|
2401
|
-
if (ye.article(r)) {
|
|
2402
|
-
const s = oe.string(r) ? r.articleName : r.LINDIV1;
|
|
2403
|
-
return !n || s === "" ? null : /* @__PURE__ */ f(qt, { view: i, articleName: s, remainingZone: n });
|
|
2404
|
-
}
|
|
2405
|
-
return null;
|
|
2406
|
-
}
|
|
2407
|
-
function Fe() {
|
|
2408
|
-
const { getArticleData: e } = Q(), { articleName: t, dimensionOverrides: r } = ee(), { resolveString: i } = j(), { anglPrims: n } = e(t);
|
|
2409
|
-
if (n.length === 0) throw new Error(`No prims found for article: ${t}`);
|
|
2410
|
-
const s = n[0], a = (l, u) => {
|
|
2411
|
-
const h = typeof l == "string" && l !== "" ? se(i(l)) : u;
|
|
2412
|
-
return parseFloat(String(h)) || 0;
|
|
2413
|
-
}, o = {
|
|
2414
|
-
width: r?.width ?? a(s.DIMCALCFX, s.SIZEX),
|
|
2415
|
-
height: r?.height ?? a(s.DIMCALCFZ, s.SIZEZ),
|
|
2416
|
-
depth: r?.depth ?? a(s.DIMCALCFY, s.SIZEY)
|
|
2417
|
-
};
|
|
2418
|
-
return {
|
|
2419
|
-
current_prim: s,
|
|
2420
|
-
prim_dims: o
|
|
2421
|
-
};
|
|
2422
|
-
}
|
|
2423
|
-
function ze({ TREEID: e, dimension: t, view: r = x._3D }) {
|
|
2424
|
-
console.log(`===================================== Zone Start ${e} =====================================`);
|
|
2425
|
-
const i = ue(e), n = i?.zoneInfo(), s = i?.dividerThk || 0, a = Fe(), o = yt(e), l = It(o, i?.topShelfThk || 0, i?.bottomShelfThk || 0), u = _t(o), h = bt(t, u), m = kt(h, l), p = $(() => {
|
|
2426
|
-
if (i)
|
|
2427
|
-
return q.fromZoneData(i.currentZone, s);
|
|
2428
|
-
}, [i, s]), E = n ? Object.fromEntries(n) : {}, y = Gt(p), c = Bt(y, m.dimensions);
|
|
2429
|
-
E["AD article width"] = a?.prim_dims.width.toString(), E["AD article height"] = a?.prim_dims.height.toString(), E["AD article depth"] = a?.prim_dims.depth.toString(), E[0] = "0", E.X = c.toString();
|
|
2430
|
-
const d = p ? zt.descriptor(p) : !1, g = p ? oe.descriptor(p) : !1, N = d || g ? Yt({ divider: p, inputData: E }).updatedDivider : p, M = Dt(m, s, N, i?.children.map((D) => D.TREEID) || []);
|
|
2431
|
-
return (e === "0" || e === "0") && (console.log("start dimensions ", t), console.log("border inset", u), console.log("border thk", l), console.log("zone dimensions ", h.dimensions), console.log("position => ", h.position), console.log("remaining dimensions ", m.dimensions), console.log("remaining position => ", m.position)), /* @__PURE__ */ f(pe, { children: /* @__PURE__ */ O(J, { view: r, position: [h.position.x / v, h.position.y / v, h.position.z / v], children: [
|
|
2432
|
-
o.front?.CPNAME && /* @__PURE__ */ f(Ct, { view: r, TREEID: Oe(e), dimension: h.dimensions, helper: o }),
|
|
2433
|
-
o.left?.CPNAME && /* @__PURE__ */ f(Lt, { view: r, TREEID: Re(e), dimension: h.dimensions, helper: o }),
|
|
2434
|
-
o.back?.CPNAME && /* @__PURE__ */ f(Ot, { view: r, TREEID: Ve(e), dimension: h.dimensions, helper: o }),
|
|
2435
|
-
o.right?.CPNAME && /* @__PURE__ */ f(Pt, { view: r, TREEID: Pe(e), dimension: h.dimensions, helper: o }),
|
|
2436
|
-
i?.topShelfCP && /* @__PURE__ */ f(Vt, { view: r, TREEID: e, dimension: h.dimensions, helper: o }),
|
|
2437
|
-
i?.bottomShelfCP && /* @__PURE__ */ f(Rt, { view: r, TREEID: e, dimension: h.dimensions, helper: o }),
|
|
2438
|
-
/* @__PURE__ */ f(J, { view: r, position: [m.position.x / v, m.position.y / v, m.position.z / v], children: N && /* @__PURE__ */ f(Jt, { remainingZone: m, divider: N, view: r, childrenPositon: M, dividerThk: s }) })
|
|
2439
|
-
] }) });
|
|
2440
|
-
}
|
|
2441
|
-
const Qt = "scale(1,-1)";
|
|
2442
|
-
function Ge({ view: e = x._3D }) {
|
|
2443
|
-
console.log("========================================================= Designer ===============================================================================================");
|
|
2444
|
-
const r = Fe().prim_dims, i = /* @__PURE__ */ f(ze, { TREEID: "0", view: e, dimension: r }), n = e === x._3D ? i : /* @__PURE__ */ f("g", { transform: Qt, children: i });
|
|
2445
|
-
return console.log(n), n;
|
|
2446
|
-
}
|
|
2447
|
-
function ar({ view: e, data: t, articleName: r }) {
|
|
2448
|
-
const i = t.descriptors, n = t.variables, s = t.anglprim.map((a) => a.NAME);
|
|
2449
|
-
return /* @__PURE__ */ f(pe, { children: /* @__PURE__ */ f(We, { names: s, data: t, children: /* @__PURE__ */ f(be, { articleName: r, children: /* @__PURE__ */ f(je, { imosVariables: n, children: /* @__PURE__ */ f(it, { descriptorData: i, children: /* @__PURE__ */ f(Ge, { view: e }) }) }) }) }) });
|
|
2450
|
-
}
|
|
2451
|
-
function or() {
|
|
2452
|
-
const { tree: e, getValue: t, setValue: r } = j(), i = (o, l) => {
|
|
2453
|
-
const u = Number(l);
|
|
2454
|
-
r(o, isNaN(u) ? l : u);
|
|
2455
|
-
}, s = (() => {
|
|
2456
|
-
const o = {
|
|
2457
|
-
[P.Numeric]: { type: P.Numeric, label: "Dimensions (Numeric)", variables: [] },
|
|
2458
|
-
[P.Surface]: { type: P.Surface, label: "Surfaces", variables: [] },
|
|
2459
|
-
[P.Material]: { type: P.Material, label: "Materials", variables: [] },
|
|
2460
|
-
[P.Text]: { type: P.Text, label: "Text", variables: [] }
|
|
2461
|
-
};
|
|
2462
|
-
return Array.from(e.entries()).forEach(([l, u]) => {
|
|
2463
|
-
const h = t(l), m = u.WERT.startsWith("$");
|
|
2464
|
-
o[u.TYP]?.variables.push({
|
|
2465
|
-
name: l,
|
|
2466
|
-
value: h ?? "undefined",
|
|
2467
|
-
reference: m ? u.WERT : void 0,
|
|
2468
|
-
rawType: u.TYP
|
|
2469
|
-
});
|
|
2470
|
-
}), Object.values(o).filter((l) => l.variables.length > 0);
|
|
2471
|
-
})(), a = (o) => {
|
|
2472
|
-
const l = o.rawType === P.Numeric, u = typeof o.value == "number" ? o.value : Number(o.value);
|
|
2473
|
-
return l && !isNaN(u) ? /* @__PURE__ */ O("div", { className: "var-controller__slider-container", children: [
|
|
2474
|
-
/* @__PURE__ */ f(
|
|
2475
|
-
"input",
|
|
2476
|
-
{
|
|
2477
|
-
type: "range",
|
|
2478
|
-
min: 0,
|
|
2479
|
-
max: 2e4,
|
|
2480
|
-
value: u,
|
|
2481
|
-
onChange: (h) => i(o.name, h.target.value),
|
|
2482
|
-
className: "var-controller__slider"
|
|
2483
|
-
}
|
|
2484
|
-
),
|
|
2485
|
-
/* @__PURE__ */ f(
|
|
2486
|
-
"input",
|
|
2487
|
-
{
|
|
2488
|
-
type: "number",
|
|
2489
|
-
value: u,
|
|
2490
|
-
onChange: (h) => i(o.name, h.target.value),
|
|
2491
|
-
onBlur: (h) => i(o.name, h.target.value),
|
|
2492
|
-
className: "var-controller__number-input",
|
|
2493
|
-
min: 0,
|
|
2494
|
-
max: 2e4
|
|
2495
|
-
}
|
|
2496
|
-
)
|
|
2497
|
-
] }) : /* @__PURE__ */ f(
|
|
2498
|
-
"input",
|
|
2499
|
-
{
|
|
2500
|
-
type: "text",
|
|
2501
|
-
value: o.value,
|
|
2502
|
-
onChange: (h) => i(o.name, h.target.value),
|
|
2503
|
-
onBlur: (h) => i(o.name, h.target.value),
|
|
2504
|
-
className: "var-controller__text-input"
|
|
2505
|
-
}
|
|
2506
|
-
);
|
|
2507
|
-
};
|
|
2508
|
-
return /* @__PURE__ */ O("div", { className: "var-controller", children: [
|
|
2509
|
-
/* @__PURE__ */ f("h2", { children: "Variable Controller" }),
|
|
2510
|
-
/* @__PURE__ */ O("p", { className: "var-controller__header", children: [
|
|
2511
|
-
"Total variables: ",
|
|
2512
|
-
e.size
|
|
2513
|
-
] }),
|
|
2514
|
-
s.map((o) => /* @__PURE__ */ O("section", { className: "var-controller__section", children: [
|
|
2515
|
-
/* @__PURE__ */ O("h3", { className: "var-controller__section-title", children: [
|
|
2516
|
-
o.label,
|
|
2517
|
-
" (",
|
|
2518
|
-
o.variables.length,
|
|
2519
|
-
")"
|
|
2520
|
-
] }),
|
|
2521
|
-
/* @__PURE__ */ O("table", { className: "var-controller__table", children: [
|
|
2522
|
-
/* @__PURE__ */ f("thead", { children: /* @__PURE__ */ O("tr", { children: [
|
|
2523
|
-
/* @__PURE__ */ f("th", { style: { width: "25%" }, children: "Variable Name" }),
|
|
2524
|
-
/* @__PURE__ */ f("th", { style: { width: "35%" }, children: "Current Value" }),
|
|
2525
|
-
/* @__PURE__ */ f("th", { style: { width: "25%" }, children: "Reference" }),
|
|
2526
|
-
/* @__PURE__ */ f("th", { className: "center", style: { width: "15%" }, children: "Type" })
|
|
2527
|
-
] }) }),
|
|
2528
|
-
/* @__PURE__ */ f("tbody", { children: o.variables.map((l) => /* @__PURE__ */ O("tr", { children: [
|
|
2529
|
-
/* @__PURE__ */ f("td", { className: "var-controller__var-name", children: l.name }),
|
|
2530
|
-
/* @__PURE__ */ f("td", { children: a(l) }),
|
|
2531
|
-
/* @__PURE__ */ f("td", { className: "var-controller__reference", children: l.reference || "-" }),
|
|
2532
|
-
/* @__PURE__ */ f("td", { style: { textAlign: "center" }, children: /* @__PURE__ */ f("span", { className: "var-controller__type-badge", children: o.type }) })
|
|
2533
|
-
] }, l.name)) })
|
|
2534
|
-
] })
|
|
2535
|
-
] }, o.type)),
|
|
2536
|
-
/* @__PURE__ */ O("section", { className: "var-controller__stats", children: [
|
|
2537
|
-
/* @__PURE__ */ f("h4", { children: "Quick Stats" }),
|
|
2538
|
-
/* @__PURE__ */ f("ul", { children: s.map((o) => /* @__PURE__ */ O("li", { children: [
|
|
2539
|
-
o.label,
|
|
2540
|
-
": ",
|
|
2541
|
-
o.variables.length,
|
|
2542
|
-
" variables"
|
|
2543
|
-
] }, o.type)) })
|
|
2544
|
-
] })
|
|
2545
|
-
] });
|
|
2546
|
-
}
|
|
2547
|
-
const lr = "1.0.0";
|
|
2548
|
-
export {
|
|
2549
|
-
_e as ArticleContext,
|
|
2550
|
-
ar as ArticleDesigner,
|
|
2551
|
-
be as ArticleProvider,
|
|
2552
|
-
F as DataContext,
|
|
2553
|
-
We as DataProvider,
|
|
2554
|
-
De as DescriptorContext,
|
|
2555
|
-
it as DescriptorProvider,
|
|
2556
|
-
Ge as Designer,
|
|
2557
|
-
lr as VERSION,
|
|
2558
|
-
x as VIEW,
|
|
2559
|
-
or as VarController,
|
|
2560
|
-
ke as VariableContext,
|
|
2561
|
-
je as VariableProvider,
|
|
2562
|
-
nr as VariableResolver,
|
|
2563
|
-
ze as Zone,
|
|
2564
|
-
Yt as ZoneDescriptor,
|
|
2565
|
-
ee as useArticle,
|
|
2566
|
-
Q as useData,
|
|
2567
|
-
Ft as useDescriptorEvaluation,
|
|
2568
|
-
$t as useDescriptorManager,
|
|
2569
|
-
sr as useDescriptorMatches,
|
|
2570
|
-
j as useVariables
|
|
2571
|
-
};
|
|
1
|
+
const a1_0x3c608e=a1_0x5acd;(function(_0x326388,_0x16e71b){const _0x1a40b6=a1_0x5acd,_0x4b47cf=_0x326388();while(!![]){try{const _0x27affa=-parseInt(_0x1a40b6(0x184))/0x1*(-parseInt(_0x1a40b6(0x1c2))/0x2)+-parseInt(_0x1a40b6(0xb1))/0x3+parseInt(_0x1a40b6(0x202))/0x4+-parseInt(_0x1a40b6(0x127))/0x5*(-parseInt(_0x1a40b6(0xcf))/0x6)+-parseInt(_0x1a40b6(0x23d))/0x7*(-parseInt(_0x1a40b6(0x17b))/0x8)+-parseInt(_0x1a40b6(0xfc))/0x9+-parseInt(_0x1a40b6(0x112))/0xa;if(_0x27affa===_0x16e71b)break;else _0x4b47cf['push'](_0x4b47cf['shift']());}catch(_0x15aff5){_0x4b47cf['push'](_0x4b47cf['shift']());}}}(a1_0x1224,0xd3085));var Be=Object['defineProperty'],He=(_0x3aa4eb,_0x3d47dc,_0x412474)=>_0x3d47dc in _0x3aa4eb?Be(_0x3aa4eb,_0x3d47dc,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x412474}):_0x3aa4eb[_0x3d47dc]=_0x412474,C=(_0x232ea6,_0x3cc7da,_0x399865)=>He(_0x232ea6,typeof _0x3cc7da!='symbol'?_0x3cc7da+'':_0x3cc7da,_0x399865);import{jsx as a1_0x404de2,jsxs as a1_0x396ee5,Fragment as a1_0x32a4ce}from'react/jsx-runtime';import{createContext as a1_0x32ef47,useState as a1_0x21cd9c,useCallback as a1_0x4f948e,useMemo as a1_0x3fa351,useEffect as a1_0x29def0,useContext as a1_0x409691,Fragment as a1_0x3d7b58}from'react';import{Edges as a1_0x1bbb2a,Text as a1_0x325b09}from'@react-three/drei';const F=a1_0x32ef47(void 0x0);function We({data:_0xf0a288,children:_0x423380,names:_0x19f3cd}){const _0x44ca00=a1_0x5acd,_0x5a1935=_0xf0a288,[_0x59958f,_0x1a498e]=a1_0x21cd9c(_0x5a1935),[_0x3c359c,_0x5c3eb0]=a1_0x21cd9c(null),[_0x53db48,_0xefefcb]=a1_0x21cd9c(null),_0x1b6752=a1_0x4f948e(_0x24e045=>({'anglElems':_0x59958f[_0x44ca00(0x1f6)]['filter'](_0x59614f=>_0x59614f[_0x44ca00(0xc3)]===_0x24e045),'anglZones':_0x59958f['anglzone']['filter'](_0x51b0b7=>_0x51b0b7[_0x44ca00(0xc3)]===_0x24e045),'anglPrims':_0x59958f[_0x44ca00(0xa3)]['filter'](_0x48f13b=>_0x48f13b[_0x44ca00(0xc3)]===_0x24e045),'anglClies':_0x59958f[_0x44ca00(0x1a9)][_0x44ca00(0x190)](_0x43e0cd=>_0x43e0cd['NAME']===_0x24e045),'anglGrtxs':_0x59958f[_0x44ca00(0x134)]['filter'](_0x4901f7=>_0x4901f7['NAME']===_0x24e045)}),[_0x59958f]),{anglElems:_0x5e86ee,anglZones:_0x82291d,anglPrims:_0xe48bbb,anglClies:_0x583984,anglGrtxs:_0x8b25a5}=a1_0x3fa351(()=>_0x19f3cd&&_0x19f3cd[_0x44ca00(0x13f)]>0x0?{'anglElems':_0x59958f[_0x44ca00(0x1f6)][_0x44ca00(0x190)](_0x406368=>_0x19f3cd[_0x44ca00(0x1a0)](_0x406368['NAME'])),'anglZones':_0x59958f['anglzone'][_0x44ca00(0x190)](_0x32555a=>_0x19f3cd[_0x44ca00(0x1a0)](_0x32555a[_0x44ca00(0xc3)])),'anglPrims':_0x59958f[_0x44ca00(0xa3)]['filter'](_0x550647=>_0x19f3cd[_0x44ca00(0x1a0)](_0x550647['NAME'])),'anglClies':_0x59958f[_0x44ca00(0x1a9)][_0x44ca00(0x190)](_0x3df692=>_0x19f3cd[_0x44ca00(0x1a0)](_0x3df692[_0x44ca00(0xc3)])),'anglGrtxs':_0x59958f[_0x44ca00(0x134)][_0x44ca00(0x190)](_0x23aded=>_0x19f3cd[_0x44ca00(0x1a0)](_0x23aded[_0x44ca00(0xc3)]))}:{'anglElems':_0x59958f[_0x44ca00(0x1f6)],'anglZones':_0x59958f[_0x44ca00(0x181)],'anglPrims':_0x59958f['anglprim'],'anglClies':_0x59958f[_0x44ca00(0x1a9)],'anglGrtxs':_0x59958f[_0x44ca00(0x134)]},[_0x59958f,_0x19f3cd]),_0x26c33a={'anglElems':_0x5e86ee,'anglZones':_0x82291d,'anglPrims':_0xe48bbb,'anglClies':_0x583984,'anglGrtxs':_0x8b25a5,'selectedElem':_0x3c359c,'setSelectedElem':_0x5c3eb0,'hoveredElem':_0x53db48,'setHoveredElem':_0xefefcb,'updateAnglPrim':(_0x246f0d,_0x1465d1,_0x5ea938)=>{const _0x21c1c8=_0x44ca00;_0x1a498e(_0x37bc14=>({..._0x37bc14,'anglprim':_0x37bc14['anglprim'][_0x21c1c8(0xf3)](_0x170413=>_0x170413[_0x21c1c8(0xc3)]===_0x246f0d?{..._0x170413,[_0x1465d1]:_0x5ea938}:_0x170413)}));},'updateAnglElem':(_0x1cab87,_0x3d1a06,_0x89db6,_0x221808)=>{const _0x6f42ed=_0x44ca00;_0x1a498e(_0x31d1f3=>({..._0x31d1f3,'anglelem':_0x31d1f3[_0x6f42ed(0x1f6)][_0x6f42ed(0xf3)](_0x319827=>_0x319827['TREEID']===_0x3d1a06&&_0x319827[_0x6f42ed(0xc3)]===_0x1cab87?{..._0x319827,[_0x89db6]:_0x221808}:_0x319827)}));},'updateAnglZone':(_0x52ce6b,_0x161fb1,_0x13044b,_0x2e673d)=>{const _0x55d8ae=_0x44ca00;_0x1a498e(_0x5a44d2=>({..._0x5a44d2,'anglzone':_0x5a44d2['anglzone'][_0x55d8ae(0xf3)](_0x2fd053=>_0x2fd053[_0x55d8ae(0xe8)]===_0x161fb1&&_0x2fd053[_0x55d8ae(0xc3)]===_0x52ce6b?{..._0x2fd053,[_0x13044b]:_0x2e673d}:_0x2fd053)}));},'updateAnglClie':(_0x390b53,_0x4b0485,_0x142a72,_0x541ea6,_0x183ed3)=>{const _0x4dc89f=_0x44ca00;_0x1a498e(_0x2aa959=>({..._0x2aa959,'anglclie':_0x2aa959[_0x4dc89f(0x1a9)][_0x4dc89f(0xf3)](_0x4b2738=>_0x4b2738[_0x4dc89f(0xe8)]===_0x4b0485&&_0x4b2738[_0x4dc89f(0xe3)]===_0x142a72&&_0x4b2738['DATATYPE']===_0x183ed3&&_0x4b2738[_0x4dc89f(0xc3)]===_0x390b53?{..._0x4b2738,'TAGVALUE':_0x541ea6,'DATE_LASTCHANGE':new Date()[_0x4dc89f(0xdd)]()}:_0x4b2738)}));},'updateAnglGrtx':(_0x42c2e7,_0xdabfa9,_0x419603,_0x4317c1)=>{const _0x5a6d26=_0x44ca00;_0x1a498e(_0x1aa816=>({..._0x1aa816,'anglgrtx':_0x1aa816[_0x5a6d26(0x134)]['map'](_0x270901=>_0x270901[_0x5a6d26(0xe8)]===_0xdabfa9&&_0x270901[_0x5a6d26(0xf1)]===_0x419603&&_0x270901['NAME']===_0x42c2e7?{..._0x270901,'TEXT':_0x4317c1,'DATE_LASTCHANGE':new Date()[_0x5a6d26(0xdd)]()}:_0x270901)}));},'getArticleData':_0x1b6752,'allData':_0x59958f};return a1_0x404de2(F['Provider'],{'value':_0x26c33a,'children':_0x423380});}const _e=a1_0x32ef47(null);function be({children:_0x1e8f97,articleName:_0x6ab12b,dimensionOverrides:_0x34d697}){const _0x563eb1={'articleName':_0x6ab12b,'dimensionOverrides':_0x34d697};return a1_0x404de2(_e['Provider'],{'value':_0x563eb1,'children':_0x1e8f97});}const ke=a1_0x32ef47(void 0x0);var P=(_0x2344b2=>(_0x2344b2[_0x2344b2[a1_0x3c608e(0xa0)]=0x3]=a1_0x3c608e(0xa0),_0x2344b2[_0x2344b2[a1_0x3c608e(0x229)]=0x4]='Material',_0x2344b2[_0x2344b2[a1_0x3c608e(0x19a)]=0x64]=a1_0x3c608e(0x19a),_0x2344b2[_0x2344b2[a1_0x3c608e(0x1c9)]=0x78]=a1_0x3c608e(0x1c9),_0x2344b2))(P||{});function me(_0x3ccf72){const _0x4772c3=a1_0x3c608e;return new Map(_0x3ccf72[_0x4772c3(0xf3)](_0x2a3f83=>[_0x2a3f83[_0x4772c3(0xc3)],_0x2a3f83]));}function ce(_0x224a91,_0x16f669,_0x47bb70=new Set()){const _0x58fe51=a1_0x3c608e,_0x50e774=_0x16f669[_0x58fe51(0xcc)](_0x224a91);if(!_0x50e774)return;if(_0x47bb70[_0x58fe51(0x228)](_0x224a91)){console[_0x58fe51(0x1bd)](_0x58fe51(0x1d9)+[..._0x47bb70,_0x224a91]['join']('\x20->\x20'));return;}const _0xbf1c05=_0x50e774[_0x58fe51(0x1d1)];if(_0xbf1c05[_0x58fe51(0x1cd)]('$')&&_0x50e774[_0x58fe51(0x152)]!=P[_0x58fe51(0x1c9)]){const _0x59a5dc=_0xbf1c05[_0x58fe51(0x1ec)](0x1);return _0x47bb70[_0x58fe51(0x20f)](_0x224a91),ce(_0x59a5dc,_0x16f669,_0x47bb70);}const _0x41a819=Number(_0xbf1c05);return isNaN(_0x41a819)?_0xbf1c05:_0x41a819;}function Ae(_0x4320ed,_0x1efdc1,_0x16df00){const _0xe786f5=a1_0x3c608e,_0x1b7db1=_0x16df00[_0xe786f5(0xcc)](_0x4320ed);if(!_0x1b7db1)return console[_0xe786f5(0x155)](_0xe786f5(0x204)+_0x4320ed+_0xe786f5(0x1ea)),_0x16df00;const _0x405e8b=new Map(_0x16df00);return _0x405e8b[_0xe786f5(0x1f7)](_0x4320ed,{..._0x1b7db1,'WERT':String(_0x1efdc1)}),_0x405e8b;}function de(_0xcd5c27,_0x35847f){const _0x51d3e0=a1_0x3c608e;return _0xcd5c27[_0x51d3e0(0x141)](/\$([A-Za-z_][A-Za-z0-9_]*)/g,(_0x32e987,_0x3a6718)=>{const _0x2c3da3=ce(_0x3a6718,_0x35847f);return _0x2c3da3!==void 0x0?String(_0x2c3da3):_0x32e987;});}function ge(_0x181904){return/\$[A-Za-z_][A-Za-z0-9_]*/g['test'](_0x181904);}function Xe(_0x5d6717){const _0x504f9c=a1_0x3c608e,_0x29f33c=_0x5d6717[_0x504f9c(0x21a)](/\$([A-Za-z_][A-Za-z0-9_]*)/g);return Array[_0x504f9c(0x18a)](_0x29f33c,_0x107323=>_0x107323[0x1]);}const nr=Object[a1_0x3c608e(0x236)](Object[a1_0x3c608e(0xe6)]({'__proto__':null,'createVariableTree':me,'extractVariableNames':Xe,'getValue':ce,'hasVariables':ge,'resolveString':de,'setValue':Ae},Symbol[a1_0x3c608e(0xfa)],{'value':'Module'}));function je({children:_0x444096,imosVariables:_0x86fca6}){const [_0xae2194,_0xcf73d4]=a1_0x21cd9c(()=>me(_0x86fca6));a1_0x29def0(()=>{_0xcf73d4(me(_0x86fca6));},[_0x86fca6]);const _0x258aec=a1_0x4f948e((_0x5650c3,_0x1a458f)=>{_0xcf73d4(_0x40a1de=>Ae(_0x5650c3,_0x1a458f,_0x40a1de));},[]),_0x4fe033={'tree':_0xae2194,'setValue':_0x258aec};return a1_0x404de2(ke['Provider'],{'value':_0x4fe033,'children':_0x444096});}const De=a1_0x32ef47(null),Ne=_0x30f7d5=>{const _0x3e828c=Number(_0x30f7d5);return isNaN(_0x3e828c)?null:_0x3e828c;},Y=_0xec857e=>_0xec857e==null?'':String(_0xec857e),z=(_0x579475,_0x159bf1,_0x2ab9e1)=>{const _0x22f641=Ne(_0x579475),_0x2c70b9=Ne(_0x159bf1);return _0x22f641===null||_0x2c70b9===null?!0x1:_0x2ab9e1(_0x22f641,_0x2c70b9);},K=(_0x2752f8,_0x12bc99,_0xeed16)=>_0x2752f8==null||_0x12bc99==null?!0x1:_0xeed16(Y(_0x2752f8),Y(_0x12bc99)),qe={'=':(_0x1a4198,_0x5aa55d)=>_0x1a4198==null||_0x5aa55d==null?_0x1a4198===_0x5aa55d:Y(_0x1a4198)[a1_0x3c608e(0xee)]()===Y(_0x5aa55d)[a1_0x3c608e(0xee)](),'!=':(_0x2b8f08,_0x22398c)=>_0x2b8f08==null||_0x22398c==null?_0x2b8f08!==_0x22398c:Y(_0x2b8f08)[a1_0x3c608e(0xee)]()!==Y(_0x22398c)[a1_0x3c608e(0xee)](),'>':(_0x5cc9fe,_0x4cc9c8)=>z(_0x5cc9fe,_0x4cc9c8,(_0x3b60f4,_0x3d1d45)=>_0x3b60f4>_0x3d1d45),'<':(_0x302eec,_0x374d9c)=>z(_0x302eec,_0x374d9c,(_0x560353,_0x301a44)=>_0x560353<_0x301a44),'>=':(_0x20a6f9,_0x2b03f3)=>z(_0x20a6f9,_0x2b03f3,(_0x3f9b5e,_0x33455e)=>_0x3f9b5e>=_0x33455e),'<=':(_0x1aefd9,_0x207755)=>z(_0x1aefd9,_0x207755,(_0x3e2800,_0x63ea10)=>_0x3e2800<=_0x63ea10),'>':(_0x53e7aa,_0x307786)=>z(_0x53e7aa,_0x307786,(_0x4650ef,_0x7dbe93)=>_0x4650ef>_0x7dbe93),'>=':(_0x3d01b4,_0x507a31)=>z(_0x3d01b4,_0x507a31,(_0x127997,_0x4a6e74)=>_0x127997>=_0x4a6e74),'<':(_0x1a7472,_0x3b2b24)=>z(_0x1a7472,_0x3b2b24,(_0x4743d5,_0x4681f8)=>_0x4743d5<_0x4681f8),'<=':(_0x40741e,_0x49eea7)=>z(_0x40741e,_0x49eea7,(_0x31b367,_0x4660de)=>_0x31b367<=_0x4660de),'B':(_0x23fabc,_0x2cf84e)=>K(_0x23fabc,_0x2cf84e,(_0x553c3e,_0x5cd714)=>_0x553c3e[a1_0x3c608e(0x1cd)](_0x5cd714)),'!B':(_0x5182f9,_0x48fd47)=>K(_0x5182f9,_0x48fd47,(_0x857aae,_0x5b5a28)=>!_0x857aae[a1_0x3c608e(0x1cd)](_0x5b5a28)),'E':(_0x4159c0,_0x880253)=>K(_0x4159c0,_0x880253,(_0x515aba,_0x13a36c)=>_0x515aba['endsWith'](_0x13a36c)),'!E':(_0xc28909,_0x15d6ae)=>K(_0xc28909,_0x15d6ae,(_0x18cb00,_0x2ecd20)=>!_0x18cb00['endsWith'](_0x2ecd20)),'C':(_0x110446,_0x106514)=>K(_0x110446,_0x106514,(_0xbe4496,_0x5a413f)=>_0xbe4496[a1_0x3c608e(0x1a0)](_0x5a413f)),'!C':(_0x43e848,_0x2dd74b)=>K(_0x43e848,_0x2dd74b,(_0xaaadf4,_0x590441)=>!_0xaaadf4[a1_0x3c608e(0x1a0)](_0x590441))},Je={'Zusatzfilter\x203':a1_0x3c608e(0x1f1),'Zusatzfilter\x204':a1_0x3c608e(0x22c)};function we(_0xc3fdfb,_0x4ab044={}){const _0x412fcc=a1_0x3c608e,{variableTree:_0x176aaa,dataType:_0x5e2e80,silent:_0x509d8e=!0x1,allowFunctions:_0x158123=!0x0}=_0x4ab044,_0x13d955=/^(.+?)\s*(mm|cm|m|in|ft|px|pt|%|deg|rad)$/i,_0x118853={'value':void 0x0,'original':_0xc3fdfb,'resolved':_0xc3fdfb,'hadVariables':!0x1,'wasEvaluated':!0x1};try{let _0x95a802=_0xc3fdfb['trim'](),_0x1d1c6e;if(_0x13d955[_0x412fcc(0x1e5)](_0x95a802)){const _0x5c3d2c=_0x95a802[_0x412fcc(0xe5)](_0x13d955);_0x5c3d2c&&(_0x95a802=_0x5c3d2c[0x1][_0x412fcc(0xee)](),_0x1d1c6e=_0x5c3d2c[0x2]);}_0x176aaa&&ge(_0x95a802)&&(_0x118853['hadVariables']=!0x0,_0x95a802=de(_0x95a802,_0x176aaa),_0x118853[_0x412fcc(0x1f4)]=_0x95a802),Ce(_0x95a802)?(_0x118853[_0x412fcc(0x1a7)]=!0x0,_0x118853['value']=Le(_0x95a802,_0x158123)):Ee(_0x95a802)?(_0x118853[_0x412fcc(0x1a7)]=!0x0,_0x118853['value']=Se(_0x95a802,_0x158123)):_0x118853[_0x412fcc(0x22a)]=et(_0x95a802,_0x5e2e80);}catch(_0x52eed4){_0x118853['error']=_0x52eed4 instanceof Error?_0x52eed4['message']:String(_0x52eed4),_0x509d8e||console[_0x412fcc(0x1bd)]('[ExpressionResolver]\x20Failed\x20to\x20resolve:\x20\x22'+_0xc3fdfb+'\x22',_0x52eed4),_0x118853[_0x412fcc(0x22a)]=_0xc3fdfb;}return _0x118853;}function se(_0x5a73e2,_0x1b8bcf={}){const _0x23e566=a1_0x3c608e;return we(_0x5a73e2,_0x1b8bcf)[_0x23e566(0x22a)];}function Ce(_0x4c09f7){const _0x3f6f27=a1_0x3c608e;return!_0x4c09f7||typeof _0x4c09f7!=_0x3f6f27(0x1f8)?!0x1:/^\s*IF\s*\(/i['test'](_0x4c09f7['trim']());}function Le(_0x59a697,_0x5e4cd9=!0x0){const _0x3c7648=a1_0x3c608e,_0x3828ee=_0x59a697[_0x3c7648(0xee)]()[_0x3c7648(0xe5)](/^IF\s*\((.*)\)\s*$/i);if(!_0x3828ee)throw new Error('Invalid\x20IF\x20statement:\x20'+_0x59a697);const _0x487fda=_0x3828ee[0x1],_0x2521db=Qe(_0x487fda);if(_0x2521db[_0x3c7648(0x13f)]!==0x3)throw new Error(_0x3c7648(0x1d0)+_0x2521db[_0x3c7648(0x13f)]+_0x3c7648(0x15b));const [_0x5a39fc,_0x1aa72a,_0x16948b]=_0x2521db,_0x2f3ea0=ie(_0x5a39fc[_0x3c7648(0xee)](),_0x5e4cd9)?_0x1aa72a[_0x3c7648(0xee)]():_0x16948b['trim']();if(Ce(_0x2f3ea0))return Le(_0x2f3ea0,_0x5e4cd9);if(Ee(_0x2f3ea0))return Se(_0x2f3ea0,_0x5e4cd9);{const _0x10a0cd=Number(_0x2f3ea0);return isNaN(_0x10a0cd)?_0x2f3ea0:_0x10a0cd;}}function Qe(_0x32068f){const _0x3d3e81=a1_0x3c608e,_0x1c0195=[];let _0x179810='',_0x35a984=0x0;for(let _0x264d0e=0x0;_0x264d0e<_0x32068f[_0x3d3e81(0x13f)];_0x264d0e++){const _0x8f30d6=_0x32068f[_0x264d0e];_0x8f30d6==='('?(_0x35a984++,_0x179810+=_0x8f30d6):_0x8f30d6===')'?(_0x35a984--,_0x179810+=_0x8f30d6):_0x8f30d6===','&&_0x35a984===0x0?(_0x1c0195[_0x3d3e81(0x17e)](_0x179810),_0x179810=''):_0x179810+=_0x8f30d6;}return _0x179810&&_0x1c0195[_0x3d3e81(0x17e)](_0x179810),_0x1c0195;}function ie(_0x211fb7,_0x5660a3){const _0x166035=a1_0x3c608e;if(/\bAND\b/i[_0x166035(0x1e5)](_0x211fb7))return _0x211fb7[_0x166035(0x1b9)](/\bAND\b/i)[_0x166035(0xf8)](_0x559873=>ie(_0x559873['trim'](),_0x5660a3));if(/\bOR\b/i[_0x166035(0x1e5)](_0x211fb7))return _0x211fb7[_0x166035(0x1b9)](/\bOR\b/i)[_0x166035(0x113)](_0x22f9c5=>ie(_0x22f9c5[_0x166035(0xee)](),_0x5660a3));if(/^\s*NOT\s+/i[_0x166035(0x1e5)](_0x211fb7)){const _0x1239cc=_0x211fb7['replace'](/^\s*NOT\s+/i,'')[_0x166035(0xee)]();return!ie(_0x1239cc,_0x5660a3);}const _0x5950e6=_0x211fb7[_0x166035(0xe5)](/(.+?)(<=|>=|!=|<>|=|<|>)(.+)/);if(!_0x5950e6)throw new Error(_0x166035(0x166)+_0x211fb7);const [,_0x2d5c71,_0x4a8685,_0x945fc9]=_0x5950e6,_0xcdc312=Te(_0x2d5c71[_0x166035(0xee)](),_0x5660a3),_0x80c11a=Te(_0x945fc9['trim'](),_0x5660a3);switch(_0x4a8685){case'=':return _0xcdc312===_0x80c11a;case'!=':case'<>':return _0xcdc312!==_0x80c11a;case'<':return _0xcdc312<_0x80c11a;case'>':return _0xcdc312>_0x80c11a;case'<=':return _0xcdc312<=_0x80c11a;case'>=':return _0xcdc312>=_0x80c11a;default:throw new Error(_0x166035(0x1e2)+_0x4a8685);}}function Te(_0x254ebf,_0x5e76c6){const _0x142555=a1_0x3c608e;if(_0x254ebf['startsWith']('\x22')&&_0x254ebf[_0x142555(0x1d4)]('\x22')||_0x254ebf['startsWith']('\x27')&&_0x254ebf[_0x142555(0x1d4)]('\x27'))return _0x254ebf[_0x142555(0x1ec)](0x1,-0x1);if(Ee(_0x254ebf))return Se(_0x254ebf,_0x5e76c6);const _0x1bd4b0=Number(_0x254ebf);return isNaN(_0x1bd4b0)?_0x254ebf:_0x1bd4b0;}function Ee(_0x1a3420){const _0x3f5b0c=a1_0x3c608e;if(!_0x1a3420||typeof _0x1a3420!=_0x3f5b0c(0x1f8))return!0x1;const _0xe8082f=_0x1a3420['trim']();return/[+\-*/()]/[_0x3f5b0c(0x1e5)](_0xe8082f)?/^[\d\s+\-*/().,a-z]+$/i['test'](_0xe8082f):!0x1;}const he=new Map();function Se(_0x49ffb3,_0x493854=!0x0){const _0x5d71bb=a1_0x3c608e,_0x49bbb5=_0x49ffb3[_0x5d71bb(0xee)](),_0x1185ce=_0x49bbb5+':'+_0x493854;if(he[_0x5d71bb(0x228)](_0x1185ce))return he[_0x5d71bb(0xcc)](_0x1185ce);let _0x5c6e4c=_0x49bbb5[_0x5d71bb(0x141)](/\s+/g,'');if(_0x493854&&(_0x5c6e4c=_0x5c6e4c['replace'](/round\(/g,'Math.round(')[_0x5d71bb(0x141)](/floor\(/g,_0x5d71bb(0x150))['replace'](/ceil\(/g,_0x5d71bb(0x214))['replace'](/abs\(/g,'Math.abs(')[_0x5d71bb(0x141)](/min\(/g,_0x5d71bb(0xa7))[_0x5d71bb(0x141)](/max\(/g,'Math.max(')[_0x5d71bb(0x141)](/pow\(/g,_0x5d71bb(0x17c))[_0x5d71bb(0x141)](/sqrt\(/g,_0x5d71bb(0x1cc))),!(_0x493854?/^[\d+\-*/().,a-zA-Z]+$/:/^[\d+\-*/().]+$/)[_0x5d71bb(0x1e5)](_0x5c6e4c))throw new Error('Expression\x20contains\x20invalid\x20characters:\x20'+_0x49ffb3);if(!_0x5c6e4c)throw new Error(_0x5d71bb(0xe1));try{const _0x53a57e=Function(_0x5d71bb(0x233)+_0x5c6e4c+')')();if(typeof _0x53a57e!='number'||isNaN(_0x53a57e))throw new Error('Expression\x20did\x20not\x20evaluate\x20to\x20a\x20number:\x20'+_0x49ffb3);return he[_0x5d71bb(0x1f7)](_0x1185ce,_0x53a57e),_0x53a57e;}catch(_0x301e7d){throw new Error(_0x5d71bb(0x9b)+_0x49ffb3+_0x5d71bb(0xe0)+_0x301e7d);}}function et(_0xe3b683,_0x473d02){const _0x367827=a1_0x3c608e;if(!_0x473d02){const _0x3ead7f=Number(_0xe3b683);return isNaN(_0x3ead7f)?_0xe3b683:_0x3ead7f;}switch(_0x473d02[_0x367827(0x1ed)]()){case'FL':return parseFloat(_0xe3b683);case'IN':return parseInt(_0xe3b683,0xa);case'CI':case'CS':case'ST':return _0xe3b683;case'DA':return new Date(_0xe3b683)[_0x367827(0xdd)]();default:const _0x1845eb=Number(_0xe3b683);return isNaN(_0x1845eb)?_0xe3b683:_0x1845eb;}}const tt=_0x54bf3f=>Je[_0x54bf3f]||_0x54bf3f,W=class W{};C(W,a1_0x3c608e(0x20b),(_0x36c5d,_0x3504a9,_0x3708e7)=>_0x36c5d?_0x36c5d['roots'][a1_0x3c608e(0xf8)](_0x4bcfe7=>W[a1_0x3c608e(0xe2)](_0x4bcfe7,_0x3504a9,_0x3708e7)):!0x1),C(W,'evaluateNode',(_0xe4ca9f,_0x515584,_0x5947ea)=>{const _0x41b3ec=a1_0x3c608e;if(!_0xe4ca9f)return!0x1;if(_0xe4ca9f[_0x41b3ec(0x237)]===_0x41b3ec(0x1fe)){let _0x25bbbb=_0xe4ca9f['data'][_0x41b3ec(0x1b1)];const _0x157ffe=tt(_0xe4ca9f[_0x41b3ec(0x15c)][_0x41b3ec(0x1b1)]);_0x515584[_0x157ffe]!==void 0x0?_0x25bbbb=_0x515584[_0x157ffe]:_0x25bbbb=se(_0xe4ca9f[_0x41b3ec(0x15c)][_0x41b3ec(0x1b1)],{'variableTree':_0x5947ea,'dataType':_0xe4ca9f[_0x41b3ec(0x15c)]['DATATYPE'],'silent':!0x0});const _0xfbf8d=se(_0xe4ca9f[_0x41b3ec(0x15c)][_0x41b3ec(0x135)],{'variableTree':_0x5947ea,'dataType':_0xe4ca9f['data']['DATATYPE'],'silent':!0x0});return qe[_0xe4ca9f[_0x41b3ec(0x15c)][_0x41b3ec(0x175)]](_0x25bbbb,_0xfbf8d);}if(_0xe4ca9f[_0x41b3ec(0x237)]==='operation'){const _0x1aba31=_0xe4ca9f['children']['map'](_0x46c1e4=>W[_0x41b3ec(0xe2)](_0x46c1e4,_0x515584,_0x5947ea));switch(_0xe4ca9f['data'][_0x41b3ec(0x115)]){case _0x41b3ec(0xc7):return _0x1aba31[_0x41b3ec(0xf8)](Boolean);case'OR':return _0x1aba31['some'](Boolean);case _0x41b3ec(0x1f2):return!_0x1aba31[_0x41b3ec(0xf8)](Boolean);case _0x41b3ec(0x143):return!_0x1aba31[_0x41b3ec(0x113)](Boolean);default:return!0x1;}}return!0x1;});let ae=W;class Me{static['evaluate'](_0x5e828b,_0x41fc04,_0x50e0e6){const _0x26db13=a1_0x3c608e,_0x18bbea=_0x5e828b[_0x26db13(0x13d)]['find'](_0x42f2a6=>_0x42f2a6[_0x26db13(0xad)]===0x0||_0x42f2a6[_0x26db13(0x22e)]===null);for(const _0x16934a of _0x5e828b[_0x26db13(0x13d)]){if(_0x16934a[_0x26db13(0xad)]===0x0||_0x16934a[_0x26db13(0x22e)]===null)continue;if(ae[_0x26db13(0x20b)](_0x16934a[_0x26db13(0x22e)],_0x41fc04,_0x50e0e6))return{'lindiv':_0x16934a['lindiv'],'nodeNum':_0x16934a['nodeNum'],'matched':!0x0,'isDefault':!0x1,'descriptorType':_0x5e828b[_0x26db13(0x95)]['DESC_TYPE']};}if(_0x18bbea)return{'lindiv':_0x18bbea[_0x26db13(0xa2)],'nodeNum':_0x18bbea[_0x26db13(0x144)],'matched':!0x1,'isDefault':!0x0,'descriptorType':_0x5e828b[_0x26db13(0x95)][_0x26db13(0x93)]};throw new Error('No\x20matching\x20node\x20found\x20and\x20no\x20default\x20node\x20exists');}static[a1_0x3c608e(0x146)](_0x43f245,_0x77028b,_0x663f60){const _0x34c5bf=a1_0x3c608e,_0x42290a=[];for(const _0x2be078 of _0x43f245[_0x34c5bf(0x13d)]){if(_0x2be078[_0x34c5bf(0xad)]===0x0||_0x2be078[_0x34c5bf(0x22e)]===null)continue;ae['evaluateTree'](_0x2be078[_0x34c5bf(0x22e)],_0x77028b,_0x663f60)&&_0x42290a[_0x34c5bf(0x17e)](_0x2be078);}return _0x42290a;}}class rt{constructor(_0x5d845d,_0x18d19e){const _0x45e69d=a1_0x3c608e;C(this,_0x45e69d(0x21b)),C(this,_0x45e69d(0xaf)),(this[_0x45e69d(0x21b)]=new Map(_0x5d845d[_0x45e69d(0xf3)](_0xf78453=>[_0xf78453[_0x45e69d(0x95)][_0x45e69d(0xc3)],_0xf78453])),this[_0x45e69d(0xaf)]=_0x18d19e);}['evaluate'](_0x4d1884,_0x87f396){const _0x32fd54=a1_0x3c608e,_0x247015=this[_0x32fd54(0x11a)](_0x4d1884);if(!_0x247015)throw new Error('Descriptor\x20not\x20found:\x20'+_0x4d1884);return Me['evaluate'](_0x247015,_0x87f396,this[_0x32fd54(0xaf)]);}['getDescriptor'](_0x58a0a2){const _0x2d2682=a1_0x3c608e;return this[_0x2d2682(0x21b)]['get'](_0x58a0a2);}[a1_0x3c608e(0x201)](_0x2ebfa8){const _0x594edf=a1_0x3c608e;return this[_0x594edf(0x21b)][_0x594edf(0x228)](_0x2ebfa8);}[a1_0x3c608e(0xf6)](){const _0x228155=a1_0x3c608e;return Array[_0x228155(0x18a)](this[_0x228155(0x21b)][_0x228155(0x1ae)]());}[a1_0x3c608e(0x130)](_0x47edd7){const _0xf068ca=a1_0x3c608e;return Array[_0xf068ca(0x18a)](this['descriptors']['values']())['filter'](_0x25da8d=>_0x25da8d[_0xf068ca(0x95)][_0xf068ca(0x93)]===_0x47edd7);}[a1_0x3c608e(0x99)](_0x24bb50,_0xab9105){const _0x520ba9=a1_0x3c608e,_0x3e0346=this['getDescriptor'](_0x24bb50);if(!_0x3e0346)throw new Error(_0x520ba9(0xc1)+_0x24bb50);return Me[_0x520ba9(0x146)](_0x3e0346,_0xab9105,this['variableTree']);}[a1_0x3c608e(0x1ac)](){const _0x15be1e=a1_0x3c608e,_0x3fcebe={};for(const _0x4b8df8 of this['descriptors'][_0x15be1e(0x200)]()){const _0x1ef997=_0x4b8df8[_0x15be1e(0x95)][_0x15be1e(0x93)];_0x3fcebe[_0x1ef997]=(_0x3fcebe[_0x1ef997]||0x0)+0x1;}return{'total':this[_0x15be1e(0x21b)][_0x15be1e(0xa9)],'byType':_0x3fcebe,'names':this['getDescriptorNames']()};}}function j(){const _0x392102=a1_0x3c608e,_0x4bbf28=a1_0x409691(ke);if(!_0x4bbf28)throw new Error(_0x392102(0xda));const {tree:_0x49bb2d,setValue:_0x1570c4}=_0x4bbf28,_0x1b3694=a1_0x3fa351(()=>_0x45bfa7=>ce(_0x45bfa7,_0x49bb2d),[_0x49bb2d]),_0x13500d=a1_0x3fa351(()=>_0x25401a=>de(_0x25401a,_0x49bb2d),[_0x49bb2d]),_0x41d722=a1_0x3fa351(()=>_0x58f40b=>ge(_0x58f40b),[]);return{'tree':_0x49bb2d,'getValue':_0x1b3694,'resolveString':_0x13500d,'hasVariables':_0x41d722,'setValue':_0x1570c4};}function it({children:_0x187777,descriptorData:_0x3855ec}){const _0x44b88a=a1_0x3c608e,_0x49bfa6=j(),_0x4b7563=a1_0x3fa351(()=>new rt(_0x3855ec,_0x49bfa6[_0x44b88a(0x97)]),[_0x3855ec,_0x49bfa6]);return a1_0x404de2(De['Provider'],{'value':_0x4b7563,'children':_0x187777});}var x=(_0x4375d9=>(_0x4375d9['_2D_TOP']=a1_0x3c608e(0x117),_0x4375d9[a1_0x3c608e(0x192)]=a1_0x3c608e(0x116),_0x4375d9[a1_0x3c608e(0x1d6)]='3D',_0x4375d9))(x||{});const fe=0x0,nt=0x1,Oe=_0x9f041c=>_0x9f041c+'.0',Pe=_0xfe528c=>_0xfe528c+'.1',Ve=_0x29d18f=>_0x29d18f+'.2',Re=_0x2467b0=>_0x2467b0+'.3',ve=_0x358ae4=>_0x358ae4[a1_0x3c608e(0xc0)](0x0,_0x358ae4[a1_0x3c608e(0x10c)]('.')),st=_0x295758=>{const _0x5ed5de=ve(_0x295758),_0x4988eb=($e(_0x295758)+0x3)%0x4;return _0x5ed5de+'.'+_0x4988eb;},at=_0x705ba5=>{const _0x2f7968=ve(_0x705ba5),_0x174994=($e(_0x705ba5)+0x1)%0x4;return _0x2f7968+'.'+_0x174994;},$e=_0x251a45=>parseInt(_0x251a45[a1_0x3c608e(0xc0)](_0x251a45[a1_0x3c608e(0x10c)]('.')+0x1)),X={'IAC_THICKNESS':a1_0x3c608e(0x222),'IAC_BOTTOMSHELFTHICKNESS':a1_0x3c608e(0x16b),'IAC_TOPSHELFTHICKNESS':'IAC_TOPSHELFTHICKNESS'},v=0x1;function Q(){const _0x451e53=a1_0x3c608e,_0x5d31e1=a1_0x409691(F);if(_0x5d31e1===void 0x0)throw new Error(_0x451e53(0x205));return _0x5d31e1;}function ee(){const _0x587a23=a1_0x409691(_e);if(!_0x587a23)throw new Error('useArticle\x20must\x20be\x20used\x20within\x20an\x20ArticleProvider');return _0x587a23;}function ne(_0x31ca4c,_0x558123,_0x2a1b42){const _0x4c7a7d=a1_0x3c608e,{getArticleData:_0x5e6b4d}=Q(),{articleName:_0x3c78e2}=ee(),{anglClies:_0x379b0e}=_0x5e6b4d(_0x3c78e2),_0x2391d3=_0x379b0e[_0x4c7a7d(0x1dd)](_0x360ba2=>_0x360ba2[_0x4c7a7d(0xe8)]===_0x31ca4c&&_0x360ba2[_0x4c7a7d(0x187)]===_0x2a1b42&&_0x360ba2['TAGNAME']===_0x558123);return _0x2391d3?{'thickness':Number(_0x2391d3[_0x4c7a7d(0x20a)])}:null;}function ot(_0x494628){const _0x4c585a=a1_0x3c608e,{getArticleData:_0x529b34}=Q(),{resolveString:_0x5dfcf3}=j(),{articleName:_0x585bee}=ee(),_0x17d7d8=_0x529b34(_0x585bee)[_0x4c585a(0x18c)];if(!_0x17d7d8)return null;const _0x23d3c5=_0x17d7d8[_0x4c585a(0x190)](_0x1ddaa4=>_0x1ddaa4[_0x4c585a(0xe8)]===_0x494628),_0x400e66=new Map();return _0x23d3c5['map'](_0x180a29=>_0x400e66[_0x4c585a(0x1f7)](_0x4c585a(0xce)+(_0x180a29['NUM']+0x1),_0x5dfcf3(_0x180a29[_0x4c585a(0x239)]))),{'zoneInfo':_0x400e66};}function ue(_0x43e614){const _0x36e364=a1_0x3c608e,{getArticleData:_0x3e8f7b}=Q(),{articleName:_0x53d381}=ee(),{anglZones:_0x493e21}=_0x3e8f7b(_0x53d381),_0x494362=_0x493e21[_0x36e364(0x1dd)](_0x3e8749=>_0x3e8749[_0x36e364(0xe8)]===_0x43e614),_0x2489c9=_0x493e21['filter'](_0x4fdae4=>_0x4fdae4['TREEID']['substring'](0x0,_0x4fdae4[_0x36e364(0xe8)][_0x36e364(0x10c)]('.'))===_0x43e614);return _0x2489c9[_0x36e364(0xb7)]((_0x3de95f,_0x5bca88)=>_0x3de95f[_0x36e364(0xe8)][_0x36e364(0x92)](_0x5bca88[_0x36e364(0xe8)],void 0x0,{'numeric':!0x0})),_0x494362?{'currentZone':_0x494362,'children':_0x2489c9,get 'topShelfCP'(){return _0x494362?.['TOPSHELF'];},get 'bottomShelfCP'(){const _0x262236=_0x36e364;return _0x494362?.[_0x262236(0x226)];},'zoneInfo'(){const _0x4d985e=_0x36e364;return ot(_0x43e614)?.[_0x4d985e(0x136)];},'getClieThk'(_0x2a1df8,_0x44d2da){const _0x86949a=_0x36e364;return this['topShelfCP']===''?0x0:ne(_0x2a1df8,_0x44d2da,nt)?.[_0x86949a(0x14a)]||0x0;},get 'topShelfThk'(){const _0x4f4710=_0x36e364;return this[_0x4f4710(0x234)](_0x43e614,X['IAC_TOPSHELFTHICKNESS']);},get 'bottomShelfThk'(){const _0x80631c=_0x36e364;return this[_0x80631c(0x234)](_0x43e614,X[_0x80631c(0x16b)]);},get 'dividerThk'(){const _0x338e9f=_0x36e364;return this[_0x338e9f(0x234)](_0x43e614,X[_0x338e9f(0x222)]);}}:null;}function te(_0xbba66d){const _0x77217=a1_0x3c608e,{getArticleData:_0x5cc279}=Q(),{articleName:_0x7ef5ce}=ee(),{resolveString:_0x4432cc}=j(),{anglElems:_0x155979}=_0x5cc279(_0x7ef5ce),_0x268b58=_0x155979[_0x77217(0x1dd)](_0x1fb720=>_0x1fb720[_0x77217(0xe8)]===_0xbba66d),_0x5052eb=ve(_0xbba66d),_0x42901b=ue(_0x5052eb);if(!_0x268b58)return null;const _0x5da585=_0x268b58[_0x77217(0x207)]===''?0x0:ne(_0xbba66d,X['IAC_THICKNESS'],fe)?.[_0x77217(0x14a)]||0x0,_0x3e921f=ne(at(_0xbba66d),X['IAC_THICKNESS'],fe)?.[_0x77217(0x14a)]||0x0,_0x39b453=ne(st(_0xbba66d),X['IAC_THICKNESS'],fe)?.[_0x77217(0x14a)]||0x0,_0x5a1873=_0x268b58[_0x77217(0x207)]===''?0x0:_0x268b58['INSETFOR']!==''?se(_0x4432cc(_0x268b58[_0x77217(0x1bc)])):Number(_0x268b58[_0x77217(0x230)]),_0x858848=(typeof _0x5a1873=='string'?0x0:_0x5a1873)||0x0,_0x22f185=_0x268b58[_0x77217(0x23a)]||_0x77217(0x13a),_0x4e9e36=_0x268b58[_0x77217(0x207)],_0x3a7b11=_0x42901b?.[_0x77217(0x20d)]||0x0,_0x19a455=_0x42901b?.[_0x77217(0x13b)]||0x0,_0x111535={'start':Number(_0x268b58['STARTOFFS'])||0x0,'end':Number(_0x268b58[_0x77217(0xf9)])||0x0,'top':Number(_0x268b58[_0x77217(0x19d)])||0x0,'bottom':Number(_0x268b58['BOTOFFS'])||0x0},_0x510a35={'start':_0x268b58[_0x77217(0x109)],'end':_0x268b58['ENDTRIM'],'top':_0x268b58['TOPTRIM'],'bottom':_0x268b58[_0x77217(0xbb)]},_0x3ad393={'top':_0x510a35[_0x77217(0x163)]==='S'?_0x3a7b11:0x0,'bottom':_0x510a35[_0x77217(0x198)]==='S'?_0x19a455:0x0};return{'TREEID':_0xbba66d,'thk':_0x5da585,'nxtThk':_0x3e921f,'prvThk':_0x39b453,'inset':_0x858848,'color':_0x22f185,'CPNAME':_0x4e9e36,'topThk':_0x3a7b11,'bottomThk':_0x19a455,'oversize':_0x111535,'trim':_0x510a35,'elmTrimThk':_0x3ad393};}var A=class extends Error{constructor(_0x4aecc6){const _0x5b817e=a1_0x3c608e;super(_0x5b817e(0x1bf)+_0x4aecc6),this[_0x5b817e(0x168)]=_0x5b817e(0x1c0);}},H,lt=(H=class{constructor(){const _0x590bea=a1_0x3c608e;C(this,_0x590bea(0x10a),new Map()),C(this,_0x590bea(0x10e),''),C(this,'tokens',[]),C(this,'start',0x0),C(this,_0x590bea(0xd9),0x0),C(this,_0x590bea(0x174),[]);}[a1_0x3c608e(0x209)](_0x1d8895){const _0x7a4977=a1_0x3c608e;this[_0x7a4977(0x174)][_0x7a4977(0x17e)](_0x1d8895);}[a1_0x3c608e(0x9e)](_0x3407e5){const _0x16836b=a1_0x3c608e;if(this[_0x16836b(0x10a)][_0x16836b(0x228)](_0x3407e5)){const _0x23d4eb=this['cache']['get'](_0x3407e5);return this[_0x16836b(0x10a)]['delete'](_0x3407e5),this[_0x16836b(0x10a)][_0x16836b(0x1f7)](_0x3407e5,_0x23d4eb),_0x23d4eb;}try{this[_0x16836b(0x10e)]=_0x3407e5;const _0x3819af=this['preformScan']();if(this[_0x16836b(0x10a)][_0x16836b(0x1f7)](this[_0x16836b(0x10e)],_0x3819af),this[_0x16836b(0x10a)][_0x16836b(0xa9)]>0x3){const _0x51567f=this[_0x16836b(0x10a)][_0x16836b(0x1ae)]()[_0x16836b(0x15d)]()[_0x16836b(0x22a)];this[_0x16836b(0x10a)][_0x16836b(0xb2)](_0x51567f);}return _0x3819af;}catch(_0xf7f8be){throw console['error'](_0xf7f8be),new Error(_0xf7f8be instanceof Error?_0xf7f8be['message']:String(_0xf7f8be));}}[a1_0x3c608e(0x21d)](){const _0x49a9c4=a1_0x3c608e;this['resetState']();try{if(this[_0x49a9c4(0x10e)][_0x49a9c4(0x1a0)]('<')||this[_0x49a9c4(0x10e)][_0x49a9c4(0x1a0)]('>'))throw new Error('Angle\x20brackets\x20are\x20not\x20allowed\x20in\x20the\x20input\x20string');if(this[_0x49a9c4(0x10e)][_0x49a9c4(0x13f)]===0x0)throw new Error(_0x49a9c4(0x167));for(this['start']=0x0,this[_0x49a9c4(0xd9)]=0x0,this['tokens']=[],this[_0x49a9c4(0x18e)]===0x0&&this[_0x49a9c4(0x178)](_0x49a9c4(0x235),'<');!this[_0x49a9c4(0xc5)]();){this['start']=this['current'];const _0x48fedd=this[_0x49a9c4(0x10f)]();switch(_0x48fedd){case':':this[_0x49a9c4(0x178)](_0x49a9c4(0x139),'>'),this['addToken'](_0x49a9c4(0x235),'<'),this[_0x49a9c4(0xbf)]();break;case'\x20':case'\x0d':case'\x09':case'\x0a':this[_0x49a9c4(0xbf)]();break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':case'.':this['scanNumber']();break;case'$':this['scanVariable']();break;case'+':case'-':case'*':case'/':this[_0x49a9c4(0x178)](_0x49a9c4(0xb3),_0x48fedd),this[_0x49a9c4(0xbf)]();break;case'(':this[_0x49a9c4(0x178)]('PAREN_OPEN','('),this['advance']();break;case')':this[_0x49a9c4(0x178)](_0x49a9c4(0x1ce),')'),this[_0x49a9c4(0xbf)]();break;case'{':this[_0x49a9c4(0xd9)]!=0x0&&this[_0x49a9c4(0x1a4)][this[_0x49a9c4(0x1a4)][_0x49a9c4(0x13f)]-0x1]['type']!=_0x49a9c4(0xb3)&&this['addToken'](_0x49a9c4(0xb3),'*'),this[_0x49a9c4(0x178)]('BRACE_OPEN','{'),this[_0x49a9c4(0x178)]('LEFT_ANGLE_BRACKET','<'),this[_0x49a9c4(0xbf)]();break;case'}':this[_0x49a9c4(0x178)](_0x49a9c4(0x139),'>'),this[_0x49a9c4(0x178)](_0x49a9c4(0x217),'}'),this['advance']();break;case'[':this[_0x49a9c4(0x178)]('OPERATOR','~'),this[_0x49a9c4(0x178)](_0x49a9c4(0x153),'['),this[_0x49a9c4(0xbf)]();break;case']':this[_0x49a9c4(0x178)]('BRACKET_CLOSE',']'),this[_0x49a9c4(0xbf)]();break;case'm':this[_0x49a9c4(0x9a)]()==='m'?this[_0x49a9c4(0x19b)]():this['scanIdentifierOrFunction']();break;default:this[_0x49a9c4(0xbd)](_0x48fedd)?this['scanIdentifierOrFunction']():this['reportError'](_0x49a9c4(0x125)+_0x48fedd+'\x20at\x20position:\x20'+this[_0x49a9c4(0xd9)]);}}if(this[_0x49a9c4(0x178)](_0x49a9c4(0x139),'>'),this['addToken'](_0x49a9c4(0x1fd),''),this[_0x49a9c4(0x174)][_0x49a9c4(0x13f)]>0x0)throw new Error(this['errors'][_0x49a9c4(0x1d8)](',\x0a'));return this[_0x49a9c4(0x1a4)];}catch(_0x5b905b){throw new Error(_0x5b905b instanceof Error?_0x5b905b[_0x49a9c4(0xe7)]:String(_0x5b905b));}}['isAtEnd'](){const _0x53a499=a1_0x3c608e;return this[_0x53a499(0xd9)]>=this[_0x53a499(0x10e)][_0x53a499(0x13f)];}[a1_0x3c608e(0xbf)](){const _0x38d56e=a1_0x3c608e;return this[_0x38d56e(0x10e)][_0x38d56e(0xf2)](this['current']++);}['peek'](){const _0x20416c=a1_0x3c608e;return this[_0x20416c(0xc5)]()?'\x00':this[_0x20416c(0x10e)]['charAt'](this[_0x20416c(0xd9)]);}[a1_0x3c608e(0x9a)](){const _0x4d8bbe=a1_0x3c608e;return this[_0x4d8bbe(0xd9)]+0x1>=this[_0x4d8bbe(0x10e)][_0x4d8bbe(0x13f)]?'\x00':this[_0x4d8bbe(0x10e)][_0x4d8bbe(0xf2)](this[_0x4d8bbe(0xd9)]+0x1);}[a1_0x3c608e(0x178)](_0x52b24e,_0x4575d2){const _0x3dfa5a=a1_0x3c608e;this[_0x3dfa5a(0x1a4)][_0x3dfa5a(0x17e)]({'type':_0x52b24e,'lexeme':_0x4575d2||(_0x52b24e?this['source']['substring'](this['start'],this[_0x3dfa5a(0xd9)]):''),'position':this[_0x3dfa5a(0x18e)]});}[a1_0x3c608e(0x21f)](_0x36d9d4){const _0x475f85=a1_0x3c608e;return/^[0-9]$/[_0x475f85(0x1e5)](_0x36d9d4);}[a1_0x3c608e(0xbd)](_0x44f387){const _0x3d368f=a1_0x3c608e;return/^[a-zA-Z]$/[_0x3d368f(0x1e5)](_0x44f387);}['scanNumber'](){const _0x2bf652=a1_0x3c608e;for(;this[_0x2bf652(0x21f)](this[_0x2bf652(0x10f)]());)this[_0x2bf652(0xbf)]();if(this[_0x2bf652(0x10f)]()==='.'){for(this[_0x2bf652(0xbf)](),this[_0x2bf652(0x21f)](this[_0x2bf652(0x10f)]())||this[_0x2bf652(0x209)](_0x2bf652(0xa4)+this[_0x2bf652(0xd9)]);this['isDigit'](this['peek']());)this['advance']();}this[_0x2bf652(0x178)](_0x2bf652(0xf4));}['scanVariable'](){const _0x1fdad5=a1_0x3c608e;for(this[_0x1fdad5(0xbf)]();/[a-zA-Z0-9_]/[_0x1fdad5(0x1e5)](this[_0x1fdad5(0x10f)]());)this[_0x1fdad5(0xbf)]();const _0x17519c=this[_0x1fdad5(0x10e)][_0x1fdad5(0xc0)](this[_0x1fdad5(0x18e)]+0x1,this[_0x1fdad5(0xd9)]);if(_0x17519c[_0x1fdad5(0x1d4)]('mm')){const _0x2acfe6=_0x17519c[_0x1fdad5(0xc0)](0x0,_0x17519c['length']-0x2);_0x2acfe6&&_0x2acfe6[_0x1fdad5(0x13f)]>0x0?(this[_0x1fdad5(0x178)]('VARIABLE',_0x2acfe6),this[_0x1fdad5(0x178)](_0x1fdad5(0x14d),'mm')):this[_0x1fdad5(0x209)](_0x1fdad5(0x16e));}else this[_0x1fdad5(0x178)](_0x1fdad5(0xba),_0x17519c);}[a1_0x3c608e(0x19b)](){const _0xc3d56c=a1_0x3c608e;this[_0xc3d56c(0xbf)](),this['advance'](),this[_0xc3d56c(0x178)]('UNIT','mm');}[a1_0x3c608e(0x11b)](){const _0x5578c5=a1_0x3c608e,_0x3b279c=['X','Y','n'];for(;this[_0x5578c5(0xbd)](this['peek']());)this['advance']();const _0xa62dc3=this[_0x5578c5(0x10e)]['substring'](this[_0x5578c5(0x18e)],this[_0x5578c5(0xd9)]),_0x554c40=H['MATHEMATICAL_FUNCTIONS'][_0xa62dc3[_0x5578c5(0x120)]()];_0x554c40!=null?this[_0x5578c5(0x178)](_0x554c40,_0xa62dc3):_0x3b279c['includes'](_0xa62dc3)?this[_0x5578c5(0x178)]('SPECIAL_VARIABLE',_0xa62dc3):this['reportError'](_0x5578c5(0xc6)+_0xa62dc3+_0x5578c5(0x104)+this['current']);}[a1_0x3c608e(0x114)](){const _0x47519c=a1_0x3c608e;this[_0x47519c(0x1a4)]=[],this['start']=0x0,this['current']=0x0,this['errors']=[];}},C(H,a1_0x3c608e(0x15f),{'abs':a1_0x3c608e(0x22d),'acos':a1_0x3c608e(0x22d),'asin':a1_0x3c608e(0x22d),'atan':a1_0x3c608e(0x22d),'bog2deg':a1_0x3c608e(0x22d),'cos':a1_0x3c608e(0x22d),'deg2bog':a1_0x3c608e(0x22d),'in2mm':a1_0x3c608e(0x22d),'ln':a1_0x3c608e(0x22d),'log':a1_0x3c608e(0x22d),'log10':'FUNCTION','max':a1_0x3c608e(0x22d),'maxunder':'FUNCTION','mm2in':a1_0x3c608e(0x22d),'nextto':'FUNCTION','pi':'FUNCTION','pow':a1_0x3c608e(0x22d),'round':a1_0x3c608e(0x22d),'sin':a1_0x3c608e(0x22d),'sqr':a1_0x3c608e(0x22d),'tab':a1_0x3c608e(0x22d),'tan':'FUNCTION'}),H),ct=class{constructor(){const _0x85e950=a1_0x3c608e;C(this,'cache',new Map()),C(this,_0x85e950(0x1a4),[]),C(this,'current',0x0),C(this,_0x85e950(0x19e),()=>{this['current']=0x0;});}[a1_0x3c608e(0x1c6)](_0x3bf397){const _0x3ada7f=a1_0x3c608e;if(this[_0x3ada7f(0x10a)][_0x3ada7f(0x228)](_0x3bf397)){const _0x39b902=this[_0x3ada7f(0x10a)][_0x3ada7f(0xcc)](_0x3bf397);return this[_0x3ada7f(0x10a)]['delete'](_0x3bf397),this['cache']['set'](_0x3bf397,_0x39b902),_0x39b902;}try{this[_0x3ada7f(0x1a4)]=_0x3bf397;const _0x5cf8e8=this['performParse'](_0x3bf397);if(this[_0x3ada7f(0x10a)][_0x3ada7f(0x1f7)](_0x3bf397,_0x5cf8e8),this[_0x3ada7f(0x10a)][_0x3ada7f(0xa9)]>0x3){const _0x18db77=this[_0x3ada7f(0x10a)][_0x3ada7f(0x1ae)]()[_0x3ada7f(0x15d)]()[_0x3ada7f(0x22a)];this[_0x3ada7f(0x10a)][_0x3ada7f(0xb2)](_0x18db77);}return _0x5cf8e8;}catch(_0x324839){throw new Error(_0x324839 instanceof Error?_0x324839['message']:String(_0x324839));}}['performParse'](_0x3ffca4){const _0x2c70ac=a1_0x3c608e;if(this[_0x2c70ac(0x19e)](),this[_0x2c70ac(0x1a4)][_0x2c70ac(0x13f)]===0x0)throw new Error(_0x2c70ac(0xb8));try{return this['expression']();}catch(_0x5bf1fb){throw new Error(_0x5bf1fb instanceof Error?_0x5bf1fb['message']:String(_0x5bf1fb));}}[a1_0x3c608e(0x1b0)](){const _0x2d127c=a1_0x3c608e;if(this[_0x2d127c(0xc5)]())return!0x1;const _0x298e6a=this[_0x2d127c(0x10f)]();return _0x298e6a[_0x2d127c(0x186)]===_0x2d127c(0x14d)&&_0x298e6a['lexeme']==='mm';}[a1_0x3c608e(0x1ff)](){const _0x472bbb=a1_0x3c608e;return this['checkMillimeterSuffix']()?(this[_0x472bbb(0xbf)](),!0x0):!0x1;}[a1_0x3c608e(0xeb)](){const _0x4ab25b=a1_0x3c608e,_0x8b683c=[];if(!this['check'](_0x4ab25b(0x235)))return this['expression']();for(;this['check'](_0x4ab25b(0x235));){this[_0x4ab25b(0xbf)]();let _0x5b3ca7=this[_0x4ab25b(0x195)]();this[_0x4ab25b(0x103)](_0x4ab25b(0x139),_0x4ab25b(0x1e3)),_0x8b683c['push']({'type':_0x4ab25b(0x142),'nodes':_0x5b3ca7,'hasMillimeterSuffix':this[_0x4ab25b(0x1ff)]()});}if(_0x8b683c[_0x4ab25b(0x13f)]===0x1){const _0x7944d7=_0x8b683c[0x0];return _0x7944d7[_0x4ab25b(0x186)]==='Section'&&_0x7944d7[_0x4ab25b(0x13d)]['type']===_0x4ab25b(0x142)?_0x7944d7[_0x4ab25b(0x13d)]:_0x7944d7;}return{'type':_0x4ab25b(0x1df),'sections':_0x8b683c};}[a1_0x3c608e(0x195)](){const _0x48c046=a1_0x3c608e;try{let _0x4fb682=this[_0x48c046(0x180)]();for(;!this[_0x48c046(0xc5)]()&&this[_0x48c046(0xd3)](_0x48c046(0xb3))&&['+','-']['includes'](this[_0x48c046(0x10f)]()[_0x48c046(0x224)]);){this[_0x48c046(0xbf)]();const _0x2f4a50=this[_0x48c046(0x1fa)]()[_0x48c046(0x224)],_0x1828e1=this['term']();_0x4fb682={'type':_0x48c046(0x140),'left':_0x4fb682,'operator':_0x2f4a50,'right':_0x1828e1};}return _0x4fb682;}catch(_0x3c2986){throw new Error(_0x48c046(0x208)+_0x3c2986[_0x48c046(0xe7)]);}}[a1_0x3c608e(0x180)](){const _0x1e5eb4=a1_0x3c608e;try{let _0x1eb09c=this[_0x1e5eb4(0x1af)]();for(;!this[_0x1e5eb4(0xc5)]()&&this['check']('OPERATOR')&&['*','/','~'][_0x1e5eb4(0x1a0)](this[_0x1e5eb4(0x10f)]()[_0x1e5eb4(0x224)]);){this[_0x1e5eb4(0xbf)]();const _0x2af7dc=this[_0x1e5eb4(0x1fa)]()[_0x1e5eb4(0x224)],_0x37730b=this[_0x1e5eb4(0x1af)]();if(_0x37730b['type']==='SpecialVariable'&&_0x37730b[_0x1e5eb4(0x168)]==='n')throw new Error(_0x1e5eb4(0x1b8));_0x1eb09c={'type':_0x1e5eb4(0x140),'left':_0x1eb09c,'operator':_0x2af7dc,'right':_0x37730b};}return _0x1eb09c;}catch(_0x2c2292){throw new Error(_0x1e5eb4(0xc2)+_0x2c2292[_0x1e5eb4(0xe7)]);}}['factor'](){const _0x4f8170=a1_0x3c608e;try{if(this[_0x4f8170(0xd3)](_0x4f8170(0xb3))&&['-','+'][_0x4f8170(0x1a0)](this[_0x4f8170(0x10f)]()['lexeme'])){this[_0x4f8170(0xbf)]();const _0x45b2e8=this['previous']()[_0x4f8170(0x224)],_0x21c935=this[_0x4f8170(0x1af)]();return{'type':'UnaryExpression','operator':_0x45b2e8,'right':_0x21c935};}return this[_0x4f8170(0x1d7)]();}catch(_0x37bdf2){throw new Error(_0x4f8170(0x122)+_0x37bdf2[_0x4f8170(0xe7)]);}}[a1_0x3c608e(0x1d7)](){const _0x441a7d=a1_0x3c608e;try{if(this[_0x441a7d(0xd3)](_0x441a7d(0xf4)))return this['advance'](),{'type':_0x441a7d(0x1e7),'value':parseFloat(this[_0x441a7d(0x1fa)]()[_0x441a7d(0x224)]),'hasMillimeterSuffix':this[_0x441a7d(0x1ff)]()};if(this['check'](_0x441a7d(0xba)))return this['advance'](),{'type':_0x441a7d(0x131),'name':this[_0x441a7d(0x1fa)]()[_0x441a7d(0x224)],'hasMillimeterSuffix':this['consumeMillimeterSuffix']()};if(this[_0x441a7d(0xd3)](_0x441a7d(0x212)))return this['advance'](),{'type':_0x441a7d(0xfe),'name':this[_0x441a7d(0x1fa)]()['lexeme'],'hasMillimeterSuffix':this[_0x441a7d(0x1fa)]()[_0x441a7d(0x224)]==='n'};if(this['check'](_0x441a7d(0x22d))){this[_0x441a7d(0xbf)]();const _0x34eb6d=this[_0x441a7d(0x1fa)]()[_0x441a7d(0x224)];this[_0x441a7d(0x103)]('PAREN_OPEN',_0x441a7d(0xcb)+_0x34eb6d+'\x27.');const _0xcb6316=this[_0x441a7d(0x195)]();return this[_0x441a7d(0x103)]('PAREN_CLOSE',_0x441a7d(0x106)),{'type':'FunctionCall','name':_0x34eb6d,'arg':_0xcb6316,'hasMillimeterSuffix':this[_0x441a7d(0x1ff)]()};}if(this[_0x441a7d(0xd3)](_0x441a7d(0x1a2))){this['advance']();const _0x49a2bf=this[_0x441a7d(0x195)]();if(!_0x49a2bf)throw new Error(_0x441a7d(0x18d));return this[_0x441a7d(0x103)]('PAREN_CLOSE','Expected\x20\x27)\x27\x20after\x20expression.'),{'type':_0x441a7d(0x188),'expression':_0x49a2bf,'hasMillimeterSuffix':this[_0x441a7d(0x1ff)]()};}if(this[_0x441a7d(0xd3)](_0x441a7d(0x1ce)))throw new Error('Unexpected\x20\x27)\x27\x20without\x20a\x20matching\x20\x27(\x27.');if(this[_0x441a7d(0xd3)](_0x441a7d(0xb0))){this[_0x441a7d(0xbf)]();let _0x44d383=this['sections']();return this['consume']('BRACE_CLOSE',_0x441a7d(0x185)),_0x44d383[_0x441a7d(0x186)]==='Section'&&_0x44d383['nodes']['type']==='Section'&&(_0x44d383=_0x44d383['nodes']),{'type':'Repeated','toRepeat':_0x44d383,'hasMillimeterSuffix':this[_0x441a7d(0x1ff)]()};}if(this[_0x441a7d(0xd3)](_0x441a7d(0x235)))return this[_0x441a7d(0xeb)]();throw new Error(_0x441a7d(0x176)+this[_0x441a7d(0x10f)]()[_0x441a7d(0x224)]);}catch(_0xf3504f){throw new Error(_0x441a7d(0x1ca)+_0xf3504f[_0x441a7d(0xe7)]);}}['check'](_0x2ad6f7){const _0x3e5ce8=a1_0x3c608e;return this[_0x3e5ce8(0xc5)]()?!0x1:this[_0x3e5ce8(0x10f)]()['type']===_0x2ad6f7;}[a1_0x3c608e(0xbf)](){const _0x55c9e5=a1_0x3c608e;return this[_0x55c9e5(0xc5)]()||this[_0x55c9e5(0xd9)]++,this[_0x55c9e5(0x1fa)]();}[a1_0x3c608e(0x103)](_0x32f08d,_0x4a4a57){const _0x4eb273=a1_0x3c608e;if(this['check'](_0x32f08d))return this[_0x4eb273(0xbf)]();throw new Error(_0x4a4a57);}[a1_0x3c608e(0xc5)](){const _0x318916=a1_0x3c608e;return this[_0x318916(0xd9)]>=this[_0x318916(0x1a4)][_0x318916(0x13f)];}[a1_0x3c608e(0x10f)](){const _0x3d34f5=a1_0x3c608e;return this[_0x3d34f5(0x1a4)][this[_0x3d34f5(0xd9)]];}[a1_0x3c608e(0x1fa)](){return this['tokens'][this['current']-0x1];}},xe=_0x57406a=>_0x57406a['type']===a1_0x3c608e(0xfe)&&_0x57406a[a1_0x3c608e(0x168)]==='n';function ut(_0x20af01,_0x515df8){const _0x24dc2b=a1_0x3c608e;if(_0x20af01['right'][_0x24dc2b(0x186)]===_0x24dc2b(0xfe)&&_0x20af01['right'][_0x24dc2b(0x168)]==='n')return new A('Cannot\x20have\x20n\x20in\x20the\x20right\x20side\x20of\x20an\x20expression');const _0x21afa5=xe(_0x20af01[_0x24dc2b(0x1c8)])?_0x20af01[_0x24dc2b(0x1c8)]:this[_0x24dc2b(0x179)](_0x20af01[_0x24dc2b(0x1c8)]),_0x35edda=xe(_0x20af01[_0x24dc2b(0x23c)])?_0x20af01[_0x24dc2b(0x23c)]:this[_0x24dc2b(0x179)](_0x20af01[_0x24dc2b(0x23c)]);if(_0x21afa5 instanceof A)return _0x21afa5;if(_0x35edda instanceof A)return _0x35edda;const _0x5b1429=_0x21afa5[_0x24dc2b(0x186)]==='NumberLiteral'&&_0x35edda[_0x24dc2b(0x186)]===_0x24dc2b(0x1e7),_0x30d9e0=_0x5b1429?_0x21afa5[_0x24dc2b(0xc4)]===_0x35edda[_0x24dc2b(0xc4)]:!0x1,_0x571424=_0x3e396b=>_0x3e396b[_0x24dc2b(0x186)]==='Repeated';switch(_0x20af01[_0x24dc2b(0x123)]){case'+':return _0x5b1429&&_0x30d9e0&&_0x515df8?.[_0x24dc2b(0x17f)]==!0x1?{'type':_0x24dc2b(0x1e7),'value':_0x21afa5[_0x24dc2b(0x22a)]+_0x35edda[_0x24dc2b(0x22a)],'hasMillimeterSuffix':_0x21afa5[_0x24dc2b(0xc4)]===!0x0||_0x35edda[_0x24dc2b(0xc4)]===!0x0,'spreadMm':_0x21afa5[_0x24dc2b(0x147)]||_0x35edda[_0x24dc2b(0x147)]}:_0x5b1429&&_0x515df8?.[_0x24dc2b(0x17f)]==!0x0?{'type':_0x24dc2b(0x1e7),'value':_0x21afa5[_0x24dc2b(0x22a)]+_0x35edda[_0x24dc2b(0x22a)],'spreadMm':_0x21afa5[_0x24dc2b(0xc4)]||_0x35edda['hasMillimeterSuffix']}:{'type':_0x24dc2b(0x140),'operator':'+','left':_0x21afa5,'right':_0x35edda};case'*':return _0x5b1429&&_0x515df8?.[_0x24dc2b(0x17f)]==!0x0?{'type':_0x24dc2b(0x1e7),'value':_0x21afa5[_0x24dc2b(0x22a)]*_0x35edda[_0x24dc2b(0x22a)],'hasMillimeterSuffix':_0x21afa5['hasMillimeterSuffix']===!0x0||_0x35edda[_0x24dc2b(0xc4)]===!0x0,'spreadMm':_0x21afa5[_0x24dc2b(0x147)]||_0x35edda[_0x24dc2b(0x147)]}:_0x571424(_0x35edda)&&_0x21afa5['type']==='NumberLiteral'?{'type':_0x24dc2b(0x223),'toRepeat':_0x35edda[_0x24dc2b(0x197)],'times':Math['round'](_0x21afa5['value']),'hasMillimeterSuffix':_0x35edda['type']===_0x24dc2b(0x1e7)&&_0x35edda[_0x24dc2b(0xc4)]||!0x1}:_0x515df8?.[_0x24dc2b(0x17f)]==!0x1&&_0x21afa5[_0x24dc2b(0x186)]!==_0x24dc2b(0xfe)&&_0x21afa5[_0x24dc2b(0x168)]!=='n'?new A('cannot\x20have\x20*\x20outside\x20of\x20group'):_0x21afa5[_0x24dc2b(0x186)]===_0x24dc2b(0xfe)?{'type':'BinaryExpression','operator':'*','left':_0x21afa5,'right':{'type':_0x24dc2b(0x1e7),'value':_0x35edda[_0x24dc2b(0x22a)],'hasMillimeterSuffix':!0x0}}:{'type':_0x24dc2b(0x140),'operator':'*','left':_0x21afa5,'right':_0x35edda,'hasMillimeterSuffix':_0x21afa5[_0x24dc2b(0xc4)]||_0x35edda['hasMillimeterSuffix']};case'/':if(_0x5b1429&&_0x515df8?.[_0x24dc2b(0x17f)]==!0x0)return{'type':_0x24dc2b(0x1e7),'value':_0x21afa5[_0x24dc2b(0x22a)]/_0x35edda[_0x24dc2b(0x22a)],'hasMillimeterSuffix':_0x21afa5[_0x24dc2b(0xc4)]===!0x0||_0x35edda[_0x24dc2b(0xc4)]===!0x0};if(_0x515df8?.[_0x24dc2b(0x17f)]==!0x1)return new A('cannot\x20have\x20\x20/\x20outside\x20of\x20group');case'-':return _0x5b1429&&_0x30d9e0&&_0x515df8?.[_0x24dc2b(0x17f)]==!0x1?{'type':_0x24dc2b(0x1e7),'value':_0x21afa5['value']-_0x35edda[_0x24dc2b(0x22a)],'hasMillimeterSuffix':_0x21afa5[_0x24dc2b(0xc4)]===!0x0||_0x35edda[_0x24dc2b(0xc4)]===!0x0,'spreadMm':_0x21afa5[_0x24dc2b(0x147)]||_0x35edda[_0x24dc2b(0x147)]}:_0x5b1429&&_0x515df8?.[_0x24dc2b(0x17f)]==!0x0?{'type':_0x24dc2b(0x1e7),'value':_0x21afa5[_0x24dc2b(0x22a)]-_0x35edda[_0x24dc2b(0x22a)],'spreadMm':_0x21afa5[_0x24dc2b(0xc4)]||_0x35edda[_0x24dc2b(0xc4)]}:{'type':_0x24dc2b(0x140),'operator':'-','left':_0x21afa5,'right':_0x35edda};default:throw new A(_0x24dc2b(0xac));}}function ht(_0x559158,_0x4b6f52){const _0x1fc2a3=a1_0x3c608e,_0x28ff7e=this[_0x1fc2a3(0x179)](_0x559158['arg']);if(_0x28ff7e instanceof A)throw new A(_0x1fc2a3(0x1e0));switch(_0x559158['name'][_0x1fc2a3(0x19c)]()){case'abs':return{'type':_0x1fc2a3(0x1e7),'value':Math[_0x1fc2a3(0x14c)](_0x28ff7e['value']),'hasMillimeterSuffix':_0x28ff7e['hasMillimeterSuffix'],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case _0x1fc2a3(0x221):return{'type':_0x1fc2a3(0x1e7),'value':Math['acos'](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e['hasMillimeterSuffix'],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case _0x1fc2a3(0xf0):return{'type':'NumberLiteral','value':Math[_0x1fc2a3(0xf0)](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case'atan':return{'type':'NumberLiteral','value':Math[_0x1fc2a3(0x165)](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case _0x1fc2a3(0x133):return{'type':_0x1fc2a3(0x1e7),'value':Math['cos'](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.['isInsideGroup']===!0x1};case _0x1fc2a3(0xa8):return{'type':_0x1fc2a3(0x1e7),'value':Math[_0x1fc2a3(0xa8)](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e['hasMillimeterSuffix'],'spreadMm':_0x4b6f52?.['isInsideGroup']===!0x1};case'tan':return{'type':_0x1fc2a3(0x1e7),'value':Math[_0x1fc2a3(0x1da)](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case'round':return{'type':_0x1fc2a3(0x1e7),'value':Math[_0x1fc2a3(0x164)](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case _0x1fc2a3(0xc9):return{'type':_0x1fc2a3(0x1e7),'value':_0x28ff7e[_0x1fc2a3(0x22a)]*(0xb4/Math['PI']),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.['isInsideGroup']===!0x1};case _0x1fc2a3(0x159):return{'type':_0x1fc2a3(0x1e7),'value':_0x28ff7e[_0x1fc2a3(0x22a)]*(Math['PI']/0xb4),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case'in2mm':return{'type':'NumberLiteral','value':_0x28ff7e['value']*25.4,'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case _0x1fc2a3(0x1b3):return{'type':_0x1fc2a3(0x1e7),'value':_0x28ff7e['value']/25.4,'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.[_0x1fc2a3(0x17f)]===!0x1};case'ln':return{'type':'NumberLiteral','value':Math[_0x1fc2a3(0x94)](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.['isInsideGroup']===!0x1};case _0x1fc2a3(0x105):return{'type':_0x1fc2a3(0x1e7),'value':Math[_0x1fc2a3(0x105)](_0x28ff7e[_0x1fc2a3(0x22a)]),'hasMillimeterSuffix':_0x28ff7e[_0x1fc2a3(0xc4)],'spreadMm':_0x4b6f52?.['isInsideGroup']===!0x1};default:throw new A(_0x1fc2a3(0xb6));}}function ft(_0x41d0f8){const _0x40e5db=a1_0x3c608e;if(!this[_0x40e5db(0xf7)]||!(_0x41d0f8['name']in this[_0x40e5db(0xf7)]))throw new A(_0x40e5db(0x204)+_0x41d0f8[_0x40e5db(0x168)]+'\x20is\x20not\x20defined.');return{'type':'NumberLiteral','value':this[_0x40e5db(0xf7)][_0x41d0f8[_0x40e5db(0x168)]],'hasMillimeterSuffix':_0x41d0f8['hasMillimeterSuffix']};}var mt=class{constructor(){const _0x1242ba=a1_0x3c608e;C(this,_0x1242ba(0x145),0x0),C(this,_0x1242ba(0xf7),{}),C(this,_0x1242ba(0x1a3)),C(this,_0x1242ba(0x16f)),C(this,_0x1242ba(0x16a)),(this[_0x1242ba(0x1a3)]=ut['bind'](this),this[_0x1242ba(0x16f)]=ht[_0x1242ba(0xd7)](this),this[_0x1242ba(0x16a)]=ft[_0x1242ba(0xd7)](this));}[a1_0x3c608e(0x179)](_0x1ed4ae,_0x4dc525={'isInsideGroup':!0x1},_0x5c004e){const _0x3d8d1f=a1_0x3c608e;this[_0x3d8d1f(0x145)]++;try{if(_0x5c004e&&(this[_0x3d8d1f(0xf7)]=_0x5c004e),this[_0x3d8d1f(0xf5)](_0x1ed4ae))return this['evaluateSections'](_0x1ed4ae,_0x4dc525);if(this['isSection'](_0x1ed4ae)){const _0x233fe1=this[_0x3d8d1f(0x179)](_0x1ed4ae['nodes'],_0x4dc525);return _0x233fe1 instanceof A?new A('Error\x20in\x20section\x20'+JSON[_0x3d8d1f(0xfb)](_0x1ed4ae)):{..._0x1ed4ae,'nodes':_0x233fe1};}if(this['isNumberLiteral'](_0x1ed4ae)){if(_0x4dc525[_0x3d8d1f(0x17f)]){if(_0x1ed4ae[_0x3d8d1f(0xc4)])return{..._0x1ed4ae,'spreadMm':!0x0};}else return _0x1ed4ae;}if(this[_0x3d8d1f(0xef)](_0x1ed4ae)){_0x4dc525={..._0x4dc525,'isInsideGroup':!0x0};const _0x58c8a3=this[_0x3d8d1f(0x179)](_0x1ed4ae[_0x3d8d1f(0x195)],_0x4dc525);return _0x58c8a3 instanceof A?_0x58c8a3:{..._0x58c8a3,'hasMillimeterSuffix':_0x1ed4ae['hasMillimeterSuffix']};}if(this[_0x3d8d1f(0x129)](_0x1ed4ae)){const _0x1f8d18=this[_0x3d8d1f(0x179)](_0x1ed4ae[_0x3d8d1f(0x197)]);return _0x1f8d18 instanceof A?_0x1f8d18:{..._0x1ed4ae,'toRepeat':_0x1f8d18};}if(this[_0x3d8d1f(0x172)](_0x1ed4ae))return this[_0x3d8d1f(0x1a3)](_0x1ed4ae,_0x4dc525);if(this[_0x3d8d1f(0x1b5)](_0x1ed4ae))return{'type':_0x3d8d1f(0x1e7),'value':_0x1ed4ae['operator']==='-'?-0x1*_0x1ed4ae[_0x3d8d1f(0x23c)][_0x3d8d1f(0x22a)]:_0x1ed4ae[_0x3d8d1f(0x23c)][_0x3d8d1f(0x22a)],'hasMillimeterSuffix':_0x1ed4ae[_0x3d8d1f(0x23c)][_0x3d8d1f(0xc4)]};if(this[_0x3d8d1f(0xed)](_0x1ed4ae))return this[_0x3d8d1f(0x16f)](_0x1ed4ae,_0x4dc525);if(this['isVariable'](_0x1ed4ae)){if(this[_0x3d8d1f(0xf7)])return this[_0x3d8d1f(0x16a)](_0x1ed4ae);throw new A(_0x3d8d1f(0x20e));}throw new A(_0x3d8d1f(0x96)+_0x1ed4ae[_0x3d8d1f(0x186)]);}catch(_0x49d57b){throw new A(_0x49d57b[_0x3d8d1f(0xe7)]);}finally{this['nestingLevel']--;}}[a1_0x3c608e(0x1b5)](_0x144004){const _0x19059b=a1_0x3c608e;return _0x144004[_0x19059b(0x186)]==='UnaryExpression';}[a1_0x3c608e(0xec)](_0x3e3e34){const _0x25f1bb=a1_0x3c608e;return _0x3e3e34[_0x25f1bb(0x186)]==='NumberLiteral';}[a1_0x3c608e(0x213)](_0x12ebce){const _0x282cdc=a1_0x3c608e;return _0x12ebce[_0x282cdc(0x186)]===_0x282cdc(0x131)||_0x12ebce[_0x282cdc(0x186)]==='SpecialVariable';}[a1_0x3c608e(0x172)](_0x13c2a6){const _0x42817b=a1_0x3c608e;return _0x13c2a6[_0x42817b(0x186)]===_0x42817b(0x140);}[a1_0x3c608e(0xed)](_0x5cfa){const _0x1c2063=a1_0x3c608e;return _0x5cfa[_0x1c2063(0x186)]===_0x1c2063(0xde);}[a1_0x3c608e(0xef)](_0x2eec8f){const _0x20c29c=a1_0x3c608e;return _0x2eec8f[_0x20c29c(0x186)]==='Grouping';}[a1_0x3c608e(0x129)](_0x2156b){const _0x51a920=a1_0x3c608e;return _0x2156b[_0x51a920(0x186)]===_0x51a920(0x223);}[a1_0x3c608e(0xf5)](_0x1157c4){const _0x128d65=a1_0x3c608e;return _0x1157c4[_0x128d65(0x186)]===_0x128d65(0x1df);}[a1_0x3c608e(0x23b)](_0x3217ec){const _0x5f2cfe=a1_0x3c608e;return _0x3217ec[_0x5f2cfe(0x186)]==='Section';}[a1_0x3c608e(0x177)](_0x5aff4a,_0x5ee81a={'isInsideGroup':!0x1}){const _0x49459e=a1_0x3c608e;return{'type':_0x49459e(0x1df),'sections':_0x5aff4a[_0x49459e(0xeb)]['map'](_0x3ec438=>{const _0xd30882=_0x49459e,_0x1c1366=this[_0xd30882(0x179)](_0x3ec438[_0xd30882(0x13d)]);if(_0x1c1366 instanceof A)throw _0x1c1366;return{'type':_0xd30882(0x142),'nodes':_0x1c1366};})};}};function G(_0x22c79a,_0x1646cd){const _0x11405f=a1_0x3c608e;if(!_0x22c79a)throw new A(_0x11405f(0xd1)+JSON[_0x11405f(0xfb)](_0x22c79a));_0x1646cd(_0x22c79a),_0x22c79a['type']===_0x11405f(0x1df)&&Array['isArray'](_0x22c79a[_0x11405f(0xeb)])?_0x22c79a[_0x11405f(0xeb)][_0x11405f(0x12f)](_0x3fda3f=>G(_0x3fda3f,_0x1646cd)):_0x22c79a[_0x11405f(0x186)]===_0x11405f(0x142)&&_0x22c79a[_0x11405f(0x13d)]?G(_0x22c79a[_0x11405f(0x13d)],_0x1646cd):_0x22c79a[_0x11405f(0x186)];}var pt=class{[a1_0x3c608e(0x13e)](_0x1b57cc,_0x6f389f,_0x227b9d,_0x407e0f,_0x41e3fc,_0x36c6fe,_0x5a0370,_0x6d441a,_0x4da042){const _0x37e74b=a1_0x3c608e;let _0x514ef4=0x0;if(_0x5a0370==='M'){for(let _0x2c0412=0x1;_0x2c0412<_0x1b57cc[_0x37e74b(0xeb)]['length']-0x1;_0x2c0412++)_0x514ef4+=_0x407e0f;}if(_0x5a0370==='O'){for(let _0x1ec6d9=0x1;_0x1ec6d9<_0x1b57cc['sections'][_0x37e74b(0x13f)]-0x1;_0x1ec6d9++)_0x514ef4+=_0x407e0f*0x2;}return _0x41e3fc==='M'&&(_0x514ef4+=_0x6f389f/0x2),_0x41e3fc==='O'&&(_0x514ef4+=_0x6f389f),_0x36c6fe==='M'&&(_0x514ef4+=_0x6f389f/0x2),_0x36c6fe==='O'&&(_0x514ef4+=_0x6f389f),_0x4da042==='M'&&(_0x514ef4+=_0x227b9d/0x2),_0x4da042==='O'&&(_0x514ef4+=_0x227b9d),_0x6d441a==='M'&&(_0x514ef4+=_0x227b9d/0x2),_0x6d441a==='O'&&(_0x514ef4+=_0x227b9d),_0x514ef4;}},dt=class{['calculateSections'](_0x5eae67,_0x49de92=0x1f4,_0x271d3d=0x0,_0x28c808){const _0x59cf28=a1_0x3c608e;try{if(_0x5eae67 instanceof A)throw _0x5eae67;if(_0x5eae67[_0x59cf28(0x186)]!==_0x59cf28(0x1df)&&_0x5eae67[_0x59cf28(0x186)]!==_0x59cf28(0x142))throw new A(_0x59cf28(0x1fc)+JSON[_0x59cf28(0xfb)](_0x5eae67));let _0x39bff3={'type':_0x59cf28(0x1df),'sections':[]};if(_0x5eae67[_0x59cf28(0x186)]===_0x59cf28(0x1df)){for(const _0x669a38 of _0x5eae67[_0x59cf28(0xeb)])if(_0x669a38[_0x59cf28(0x13d)][_0x59cf28(0x186)]==='Repeated'&&_0x669a38[_0x59cf28(0x13d)]['times']){for(let _0x3d8b38=0x0;_0x3d8b38<(_0x669a38[_0x59cf28(0x13d)]?.[_0x59cf28(0x218)]??0x0);_0x3d8b38++)if(_0x669a38[_0x59cf28(0x13d)]['toRepeat'][_0x59cf28(0x186)]==='Section')_0x39bff3[_0x59cf28(0xeb)][_0x59cf28(0x17e)](_0x669a38['nodes']['toRepeat']);else{if(_0x669a38[_0x59cf28(0x13d)][_0x59cf28(0x197)]['type']===_0x59cf28(0x1df)){for(const _0x55c5f5 of _0x669a38[_0x59cf28(0x13d)]['toRepeat']['sections'])_0x39bff3['sections'][_0x59cf28(0x17e)](_0x55c5f5);}}}else _0x39bff3[_0x59cf28(0xeb)][_0x59cf28(0x17e)](_0x669a38);}else _0x5eae67[_0x59cf28(0x186)]===_0x59cf28(0x142)&&_0x39bff3[_0x59cf28(0xeb)]['push'](_0x5eae67);if(_0x28c808){const _0x50e33d=new pt()[_0x59cf28(0x13e)](_0x39bff3,_0x28c808[_0x59cf28(0x158)],_0x28c808[_0x59cf28(0x1c5)],_0x271d3d,_0x28c808[_0x59cf28(0x12d)],_0x28c808[_0x59cf28(0x1b6)],_0x28c808[_0x59cf28(0xea)],_0x28c808['sizerefedg2'],_0x28c808[_0x59cf28(0x191)]);}_0x39bff3[_0x59cf28(0xeb)][_0x59cf28(0x12f)](_0x597f28=>{let _0x25a2c9=!0x1;G(_0x597f28,_0x415ce2=>{const _0x2175d3=a1_0x5acd;_0x415ce2[_0x2175d3(0x186)]===_0x2175d3(0x1e7)?_0x415ce2?.[_0x2175d3(0x147)]===!0x0&&(_0x25a2c9=!0x0):_0x415ce2[_0x2175d3(0x186)]===_0x2175d3(0x140)&&_0x415ce2['left'][_0x2175d3(0x186)]===_0x2175d3(0x1e7)&&(_0x415ce2[_0x2175d3(0x1c8)]?.['spreadMm']===!0x0&&(_0x25a2c9=!0x0),_0x415ce2[_0x2175d3(0x23c)]?.['spreadMm']===!0x0&&(_0x25a2c9=!0x0));}),_0x25a2c9&&G(_0x597f28,_0x25037c=>{const _0x1eb76a=a1_0x5acd;_0x25037c[_0x1eb76a(0x186)]==='NumberLiteral'?_0x25037c[_0x1eb76a(0xc4)]=!0x0:_0x25037c[_0x1eb76a(0x186)]===_0x1eb76a(0x140)&&(_0x25037c[_0x1eb76a(0x1c8)][_0x1eb76a(0x186)]===_0x1eb76a(0x1e7)&&(_0x25037c[_0x1eb76a(0x1c8)][_0x1eb76a(0xc4)]=!0x0),_0x25037c['right']['type']===_0x1eb76a(0x1e7)&&(_0x25037c[_0x1eb76a(0x23c)][_0x1eb76a(0xc4)]=!0x0));});});let _0x2eb95c=0x0;const _0x4801a1=_0x1e6257=>{const _0x1ce8d2=_0x59cf28;if(_0x271d3d&&_0x1e6257[_0x1ce8d2(0x186)]===_0x1ce8d2(0x142)&&(_0x2eb95c+=_0x271d3d),_0x1e6257[_0x1ce8d2(0x186)]===_0x1ce8d2(0x1e7))_0x1e6257['hasMillimeterSuffix']===!0x0&&(_0x2eb95c+=_0x1e6257[_0x1ce8d2(0x22a)]);else{if(_0x1e6257['type']===_0x1ce8d2(0x140)){const _0x1c7950=_0x1e6257;_0x1c7950[_0x1ce8d2(0x1c8)][_0x1ce8d2(0x186)]===_0x1ce8d2(0x1e7)&&_0x1c7950[_0x1ce8d2(0x23c)][_0x1ce8d2(0x186)]===_0x1ce8d2(0x1e7)&&(_0x1c7950['left'][_0x1ce8d2(0xc4)]===!0x0&&(_0x2eb95c+=_0x1c7950[_0x1ce8d2(0x1c8)][_0x1ce8d2(0x22a)]),_0x1c7950[_0x1ce8d2(0x23c)]['hasMillimeterSuffix']===!0x0&&(_0x2eb95c+=_0x1c7950[_0x1ce8d2(0x23c)]['value']));}}};if(_0x39bff3['sections'][_0x59cf28(0x12f)](_0x43acfe=>G(_0x43acfe,_0x4801a1)),_0x2eb95c>_0x49de92)throw new A(_0x59cf28(0x15e));let _0xc41ea5=_0x49de92-_0x2eb95c+_0x271d3d,_0x2f2ead=0x0;const _0x5e89c9=_0x20c0ee=>{const _0x4be4a2=_0x59cf28;if(_0x20c0ee[_0x4be4a2(0x186)]===_0x4be4a2(0x140)){const _0x9eefc4=_0x20c0ee;if(_0x9eefc4[_0x4be4a2(0x23c)][_0x4be4a2(0x186)]===_0x4be4a2(0x1e7)&&_0x9eefc4[_0x4be4a2(0x1c8)][_0x4be4a2(0x186)]===_0x4be4a2(0xfe)&&_0x9eefc4['left'][_0x4be4a2(0x168)]==='n'&&_0x9eefc4[_0x4be4a2(0x123)]==='*'){_0x2f2ead=Math[_0x4be4a2(0x170)](_0xc41ea5/(_0x9eefc4[_0x4be4a2(0x23c)][_0x4be4a2(0x22a)]+_0x271d3d));const _0x16f0f7=(_0x2f2ead-0x1)*_0x271d3d,_0x156de3=_0x2f2ead*_0x9eefc4['right']['value'];_0xc41ea5+=-_0x16f0f7-_0x156de3;}}};_0x39bff3[_0x59cf28(0xeb)][_0x59cf28(0x12f)](_0x3f1365=>G(_0x3f1365,_0x5e89c9));let _0x15e569=0x0;const _0x1f9da3=_0x132a67=>{const _0x2a9ad4=_0x59cf28;_0x132a67[_0x2a9ad4(0x186)]===_0x2a9ad4(0x140)&&(_0x132a67[_0x2a9ad4(0x1c8)][_0x2a9ad4(0x186)]===_0x2a9ad4(0x1e7)&&_0x132a67['left'][_0x2a9ad4(0xc4)]===!0x1&&(_0x15e569+=_0x132a67['left']['value']),_0x132a67[_0x2a9ad4(0x23c)][_0x2a9ad4(0x186)]===_0x2a9ad4(0x1e7)&&_0x132a67[_0x2a9ad4(0x23c)][_0x2a9ad4(0xc4)]===!0x1&&(_0x15e569+=_0x132a67[_0x2a9ad4(0x23c)][_0x2a9ad4(0x22a)])),_0x132a67['type']===_0x2a9ad4(0x1e7)&&_0x132a67[_0x2a9ad4(0xc4)]===!0x1&&(_0x15e569+=_0x132a67[_0x2a9ad4(0x22a)]);};_0x39bff3[_0x59cf28(0xeb)][_0x59cf28(0x12f)](_0x4950e4=>{G(_0x4950e4,_0x1f9da3);});const _0x7badc9=_0xc41ea5/_0x15e569,_0x8d8353=[],_0x3b9b78=_0x49dd5b=>{const _0x40b4e3=_0x59cf28;let _0x4243f0=0x0,_0x38a65d=0x0;if(_0x49dd5b['type']===_0x40b4e3(0x1e7))_0x49dd5b[_0x40b4e3(0xc4)]===!0x1&&(_0x4243f0+=_0x49dd5b['value']*_0x7badc9),_0x49dd5b['hasMillimeterSuffix']===!0x0&&(_0x38a65d+=_0x49dd5b[_0x40b4e3(0x22a)]),_0x8d8353[_0x40b4e3(0x17e)](Number((_0x4243f0+_0x38a65d)[_0x40b4e3(0x18b)](0x2)));else{if(_0x49dd5b[_0x40b4e3(0x186)]===_0x40b4e3(0x140)&&(_0x49dd5b['left'][_0x40b4e3(0x186)]===_0x40b4e3(0x1e7)&&_0x49dd5b[_0x40b4e3(0x23c)][_0x40b4e3(0x186)]==='NumberLiteral'&&(_0x49dd5b[_0x40b4e3(0x1c8)][_0x40b4e3(0xc4)]===!0x1&&(_0x4243f0+=_0x49dd5b[_0x40b4e3(0x1c8)]['value']*_0x7badc9),_0x49dd5b[_0x40b4e3(0x1c8)][_0x40b4e3(0xc4)]===!0x0&&(_0x38a65d+=_0x49dd5b[_0x40b4e3(0x1c8)][_0x40b4e3(0x22a)]),_0x49dd5b[_0x40b4e3(0x23c)][_0x40b4e3(0xc4)]===!0x1&&(_0x4243f0+=_0x49dd5b[_0x40b4e3(0x23c)][_0x40b4e3(0x22a)]*_0x7badc9),_0x49dd5b[_0x40b4e3(0x23c)]['hasMillimeterSuffix']===!0x0&&(_0x38a65d+=_0x49dd5b[_0x40b4e3(0x23c)]['value']),_0x8d8353['push'](Number((_0x4243f0+_0x38a65d)[_0x40b4e3(0x18b)](0x2)))),_0x49dd5b[_0x40b4e3(0x1c8)][_0x40b4e3(0x186)]===_0x40b4e3(0xfe)&&_0x49dd5b['left'][_0x40b4e3(0x168)]==='n'&&_0x49dd5b[_0x40b4e3(0x23c)]['type']==='NumberLiteral')){_0x38a65d+=_0x49dd5b[_0x40b4e3(0x23c)][_0x40b4e3(0x22a)];for(let _0xdef50a=0x0;_0xdef50a<_0x2f2ead;_0xdef50a++)_0x49dd5b[_0x40b4e3(0x23c)][_0x40b4e3(0xc4)]===!0x0&&_0x8d8353['push'](Number(_0x38a65d[_0x40b4e3(0x18b)](0x2)));}}};return _0x39bff3['sections']['forEach'](_0x516e8a=>{G(_0x516e8a,_0x3b9b78);}),_0x8d8353;}catch{return new A(_0x59cf28(0x1f9));}}},gt=new lt(),Et=new ct(),St=new mt(),vt=(_0xec34bb,_0xfe5426,_0x54ce86,_0x298499)=>{const _0x4e2883=a1_0x3c608e;try{const _0x54a69b=gt[_0x4e2883(0x9e)](_0xec34bb),_0x44c0ce=Et[_0x4e2883(0x1c6)](_0x54a69b),_0xe0a8a6=St[_0x4e2883(0x179)](_0x44c0ce,{},_0x298499);if(_0xe0a8a6&&!(_0xe0a8a6 instanceof A)){const _0x54ad24=new dt()[_0x4e2883(0x102)](_0xe0a8a6,_0xfe5426,_0x54ce86);if(_0x54ad24&&_0x54ad24 instanceof A)throw new Error(_0x54ad24['message']);return _0x54ad24;}return _0xe0a8a6||new A(_0x4e2883(0x1ee));}catch(_0x1f6217){return new A(_0x1f6217[_0x4e2883(0xe7)]);}};function Nt(_0x355e57){const _0x1065d8=a1_0x3c608e,_0x20678b=/^(\d+)\*\{(\d+)\}$/,_0x3fe48b=_0x355e57['match'](_0x20678b);if(_0x3fe48b){const _0x29f470=parseInt(_0x3fe48b[0x1],0xa),_0x51dab4=_0x3fe48b[0x2];return _0x29f470>0x0?Array(_0x29f470)[_0x1065d8(0x1a8)](_0x51dab4)['join'](':'):'';}return _0x355e57;}function Tt(_0x2e8e64){const _0x5a8d55=a1_0x3c608e,_0x5d6d96=_0x2e8e64[_0x5a8d55(0xee)]()['match'](/^(\d+(?:\.\d+)?)\s*\*\s*\{.+\}$/);return _0x5d6d96?Number(_0x5d6d96[0x1]):_0x2e8e64;}function Mt(_0x3a3a45,_0x4ee33d,_0x353804){const _0x569824=a1_0x3c608e;let _0x1a3fa6=0x0;const {LINDIV1:_0xbcb926,DIVDIR:_0x49eacc,HORDEFTYPE:_0x1a8de3,DIVELEM1:_0x3d302c}=_0x3a3a45;let _0x217ce4='width';if(_0xbcb926==='')return{'divisionType':_0x217ce4,'zone_dimensions':[],'divided_length_list':[]};if(_0x49eacc==='H'){if(_0x1a8de3==='W')_0x1a3fa6=_0x4ee33d[_0x569824(0x111)],_0x217ce4='width';else{if(_0x1a8de3==='D')_0x1a3fa6=_0x4ee33d[_0x569824(0x1e4)],_0x217ce4=_0x569824(0x1e4);else{if(_0x1a8de3==='P'){if(_0x3d302c===0x0||_0x3d302c===0x2)_0x1a3fa6=_0x4ee33d[_0x569824(0x111)],_0x217ce4=_0x569824(0x111);else{if(_0x3d302c===0x1||_0x3d302c===0x3)_0x1a3fa6=_0x4ee33d[_0x569824(0x1e4)],_0x217ce4=_0x569824(0x1e4);else throw new Error(_0x569824(0xa6)+_0x3d302c);}}else throw new Error('Unhandled\x20case:\x20HORDEFTYPE\x20=\x20'+_0x1a8de3);}}}else{if(_0x49eacc==='V')_0x1a3fa6=_0x4ee33d[_0x569824(0xab)],_0x217ce4='height';else{if(_0x49eacc==='A')_0x1a3fa6=_0x4ee33d[_0x569824(0x111)],_0x217ce4='article';else{if(_0x49eacc==='I')_0x1a3fa6=_0x4ee33d[_0x569824(0x111)],_0x217ce4=_0x569824(0x1c7);else throw new Error(_0x569824(0x17a)+_0x49eacc);}}}let _0x468a00=[];const _0x3afed1=Nt(_0xbcb926);if(_0x217ce4===_0x569824(0x1c7)){const _0x5c359e=Tt(_0xbcb926);_0x468a00=Array(_0x5c359e)[_0x569824(0x1a8)](_0x1a3fa6);}else _0x217ce4===_0x569824(0x231)?_0x468a00=[_0x1a3fa6]:_0x468a00=vt(_0x3afed1,_0x1a3fa6,_0x353804);return Array[_0x569824(0x1e6)](_0x468a00)?(_0x1a8de3==='P'&&(_0x3d302c===0x2||_0x3d302c===0x3)&&(_0x468a00=[..._0x468a00][_0x569824(0x215)]()),{'zone_dimensions':_0x468a00[_0x569824(0xf3)](_0x4ddc18=>{const _0x1b5ff6=_0x569824;if(_0x217ce4===_0x1b5ff6(0x111))return{'width':_0x4ddc18,'height':_0x4ee33d['height'],'depth':_0x4ee33d[_0x1b5ff6(0x1e4)]};if(_0x217ce4==='depth')return{'width':_0x4ee33d[_0x1b5ff6(0x111)],'height':_0x4ee33d['height'],'depth':_0x4ddc18};if(_0x217ce4===_0x1b5ff6(0xab))return{'width':_0x4ee33d[_0x1b5ff6(0x111)],'height':_0x4ddc18,'depth':_0x4ee33d[_0x1b5ff6(0x1e4)]};if(_0x217ce4===_0x1b5ff6(0x231)||_0x217ce4===_0x1b5ff6(0x1c7))return{'width':_0x4ee33d['width'],'height':_0x4ee33d[_0x1b5ff6(0xab)],'depth':_0x4ee33d[_0x1b5ff6(0x1e4)]};throw new Error(_0x1b5ff6(0x17a)+_0x49eacc);}),'divisionType':_0x217ce4,'divided_length_list':_0x468a00}):{'divisionType':_0x217ce4,'zone_dimensions':[],'divided_length_list':[]};}function xt({divisionType:_0x471e96,parentDimensions:_0x48c4c5,lengthList:_0x107c79,childTREEIDs:_0x888745,dividerThk:_0x479c1e}){const _0x2e3d42=a1_0x3c608e,_0x2b1f84=-_0x48c4c5[_0x2e3d42(0x111)]/0x2,_0x528c15=-_0x48c4c5['depth']/0x2,_0x201e13=-_0x48c4c5['height']/0x2;return{'childPositions':_0x107c79[_0x2e3d42(0xdf)]((_0xf691a,_0x37a933,_0x4a6da4)=>{const _0x5a9db9=_0x2e3d42;let _0x18f7de=0x0,_0x24d93d=0x0,_0x360f96=0x0,_0x3af603;return _0x471e96===_0x5a9db9(0x111)?(_0x18f7de=_0x2b1f84+_0xf691a[_0x5a9db9(0xa5)]+_0x37a933/0x2,_0x24d93d=0x0,_0x360f96=0x0,_0x3af603={'width':_0x37a933,'height':_0x48c4c5[_0x5a9db9(0xab)],'depth':_0x48c4c5[_0x5a9db9(0x1e4)]},_0xf691a[_0x5a9db9(0xa5)]+=_0x37a933+_0x479c1e):_0x471e96===_0x5a9db9(0x1e4)?(_0x18f7de=0x0,_0x24d93d=_0x528c15+_0xf691a['cumulativeY']+_0x37a933/0x2,_0x360f96=0x0,_0x3af603={'width':_0x48c4c5['width'],'height':_0x48c4c5[_0x5a9db9(0xab)],'depth':_0x37a933},_0xf691a['cumulativeY']+=_0x37a933+_0x479c1e):_0x471e96===_0x5a9db9(0x1c7)||_0x471e96===_0x5a9db9(0x231)?(_0x18f7de=0x0,_0x24d93d=0x0,_0x360f96=0x0,_0x3af603={'width':_0x37a933,'height':_0x48c4c5[_0x5a9db9(0xab)],'depth':_0x48c4c5[_0x5a9db9(0x1e4)]}):(_0x18f7de=0x0,_0x24d93d=0x0,_0x360f96=_0x201e13+_0xf691a[_0x5a9db9(0x12e)]+_0x37a933/0x2,_0x3af603={'width':_0x48c4c5[_0x5a9db9(0x111)],'height':_0x37a933,'depth':_0x48c4c5['depth']},_0xf691a['cumulativeZ']+=_0x37a933+_0x479c1e),_0xf691a['positions'][_0x5a9db9(0x17e)]({'x':_0x18f7de,'y':_0x24d93d,'z':_0x360f96,'zone_dims':_0x3af603,'TREEID':_0x888745[_0x4a6da4]}),_0xf691a;},{'cumulativeX':0x0,'cumulativeY':0x0,'cumulativeZ':0x0,'positions':[]})[_0x2e3d42(0x119)],'dividerType':_0x471e96};}function yt(_0x3e5900){return{'front':te(Oe(_0x3e5900)),'left':te(Re(_0x3e5900)),'right':te(Pe(_0x3e5900)),'back':te(Ve(_0x3e5900))};}function It(_0x54fd17,_0x4037d8,_0xab2d25){const _0x3780e1=a1_0x3c608e;return{'front':_0x54fd17['front']?.[_0x3780e1(0x9f)]||0x0,'right':_0x54fd17[_0x3780e1(0x23c)]?.[_0x3780e1(0x9f)]||0x0,'back':_0x54fd17['back']?.[_0x3780e1(0x9f)]||0x0,'left':_0x54fd17[_0x3780e1(0x1c8)]?.['thk']||0x0,'top':_0x4037d8,'bottom':_0xab2d25};}function _t(_0x110840){const _0x2500e1=a1_0x3c608e;return{'front':_0x110840[_0x2500e1(0x11c)]?.['inset']||0x0,'right':_0x110840['right']?.[_0x2500e1(0x220)]||0x0,'back':_0x110840[_0x2500e1(0x225)]?.[_0x2500e1(0x220)]||0x0,'left':_0x110840['left']?.[_0x2500e1(0x220)]||0x0};}function bt(_0x28701f,_0x4d9abf){const _0x3f3b23=a1_0x3c608e;return{'dimensions':{'width':_0x28701f[_0x3f3b23(0x111)]-_0x4d9abf[_0x3f3b23(0x1c8)]-_0x4d9abf['right'],'height':_0x28701f[_0x3f3b23(0xab)],'depth':_0x28701f[_0x3f3b23(0x1e4)]-_0x4d9abf[_0x3f3b23(0x11c)]-_0x4d9abf[_0x3f3b23(0x225)]},'position':{'x':_0x4d9abf[_0x3f3b23(0x1c8)]/0x2-_0x4d9abf[_0x3f3b23(0x23c)]/0x2,'y':_0x4d9abf[_0x3f3b23(0x11c)]/0x2-_0x4d9abf[_0x3f3b23(0x225)]/0x2,'z':0x0}};}function kt(_0x2edc1b,_0x30429e){const _0x52763e=a1_0x3c608e;return{'dimensions':{'width':_0x2edc1b[_0x52763e(0x16d)]['width']-_0x30429e[_0x52763e(0x1c8)]-_0x30429e['right'],'height':_0x2edc1b[_0x52763e(0x16d)][_0x52763e(0xab)]-_0x30429e[_0x52763e(0x163)]-_0x30429e[_0x52763e(0x198)],'depth':_0x2edc1b['dimensions'][_0x52763e(0x1e4)]-_0x30429e[_0x52763e(0x11c)]-_0x30429e[_0x52763e(0x225)]},'position':{'x':_0x30429e[_0x52763e(0x1c8)]/0x2-_0x30429e[_0x52763e(0x23c)]/0x2,'y':_0x30429e[_0x52763e(0x11c)]/0x2-_0x30429e[_0x52763e(0x225)]/0x2,'z':_0x30429e['bottom']/0x2-_0x30429e[_0x52763e(0x163)]/0x2}};}function At(_0x367c06,_0xe59efa,_0x1a2024,_0x1b2ba2){const _0x33500f=a1_0x3c608e;return _0xe59efa[_0x33500f(0x1ba)]?xt({'divisionType':_0xe59efa[_0x33500f(0x1ba)],'parentDimensions':_0x367c06,'lengthList':_0xe59efa[_0x33500f(0x138)],'childTREEIDs':_0x1b2ba2,'dividerThk':Number(_0x1a2024)||0x0}):{'childPositions':[],'dividerType':_0x33500f(0xab)};}function Dt(_0x18d8d4,_0x5c0e3b,_0x4160ca,_0x404b46){const _0x20cdf0=a1_0x3c608e;if(!_0x4160ca)return{'childPositions':[],'dividerType':_0x20cdf0(0xab)};const _0x8cedde=Mt(_0x4160ca,_0x18d8d4[_0x20cdf0(0x16d)],_0x5c0e3b);return At(_0x18d8d4[_0x20cdf0(0x16d)],_0x8cedde,_0x5c0e3b,_0x404b46);}function U({length:_0x22df00,width:_0x7fc4e9,thk:_0x462943,material:_0xcbb9a5=a1_0x3c608e(0xe9),opacity:_0x3d9f55=0.2,isSelected:_0x56d862=!0x1,isHovered:_0x9aa5c9=!0x1,onClick:_0x122152,onPointerEnter:_0x5f4c69,onPointerLeave:_0xbdcfb7}){const _0x103a0a=a1_0x3c608e,_0x4fe4cf=_0x56d862?'#ff6b00':_0x9aa5c9?_0x103a0a(0x157):_0xcbb9a5,_0x1e92d5=_0x56d862?0.8:_0x9aa5c9?0.6:_0x3d9f55;return a1_0x404de2(_0x103a0a(0x12c),{'children':a1_0x396ee5(_0x103a0a(0x118),{'onClick':_0x122152,'onPointerEnter':_0x5f4c69,'onPointerLeave':_0xbdcfb7,'children':[a1_0x404de2(_0x103a0a(0x1d3),{'args':[_0x22df00/v,_0x7fc4e9/v,_0x462943/v]}),a1_0x404de2(_0x103a0a(0x232),{'color':_0x4fe4cf,'opacity':_0x1e92d5,'transparent':!0x0}),a1_0x404de2(a1_0x1bbb2a,{'color':_0x56d862?_0x103a0a(0xa1):_0x9aa5c9?'#0066ff':_0x103a0a(0x13a)})]})});}function wt(_0x3b5cc8,_0x83353e,_0x2526a1=0x0,_0x1a9977=0x0){const _0x4f75d7=a1_0x3c608e,_0x5ec50e=_0x3b5cc8/0x2,_0x569858=_0x83353e/0x2,_0x52eeab=_0x5ec50e,_0x2bef89=_0x569858;return(_0x4f75d7(0x21c)+_0x52eeab+','+-_0x2bef89+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+-_0x52eeab+','+-_0x2bef89+_0x4f75d7(0x21c)+(-_0x52eeab+_0x2526a1)+','+_0x2bef89+_0x4f75d7(0x21c)+(_0x52eeab-_0x1a9977)+','+_0x2bef89+_0x4f75d7(0x182))[_0x4f75d7(0xee)]()[_0x4f75d7(0x141)](/\s+/g,'\x20');}function Z({dim_x:_0x3288c2,dim_y:_0x4ff3db,fill:_0x14fde5=a1_0x3c608e(0x128),text:_0xbdac4a='',stroke_width:_0x49d6ae=0x2,rotate:_0x22d9d7=0x0,isSelected:_0x3e1be2=!0x1,isHovered:_0x5da78a=!0x1,onClick:_0x2caaf1,onMouseEnter:_0x290531,onMouseLeave:_0x14806a,startPanelThk:_0x62bf89=0x0,endPanelThk:_0x941f8a=0x0}){const _0x1923c0=a1_0x3c608e,_0x4cf838=wt(_0x3288c2,_0x4ff3db,_0x62bf89,_0x941f8a),_0x259ec4=_0x3e1be2?_0x1923c0(0xa1):_0x5da78a?'#0066ff':_0x1923c0(0x13a),_0x3ef0b8=_0x3e1be2?_0x49d6ae*0x2:_0x5da78a?_0x49d6ae*1.5:_0x49d6ae,_0x39464a=_0x3e1be2?0.8:_0x5da78a?0.7:0.5;return a1_0x396ee5('g',{'transform':_0x1923c0(0xbe)+_0x22d9d7+')','children':[a1_0x404de2(_0x1923c0(0x1e1),{'points':_0x4cf838,'stroke':_0x259ec4,'strokeWidth':_0x3ef0b8,'fill':_0x14fde5,'strokeLinejoin':_0x1923c0(0x1ab),'strokeMiterlimit':'1','opacity':_0x39464a,'onClick':_0x2caaf1,'onMouseEnter':_0x290531,'onMouseLeave':_0x14806a,'style':{'cursor':_0x2caaf1?'pointer':_0x1923c0(0x1c3)}}),a1_0x404de2(_0x1923c0(0xe4),{'transform':_0x1923c0(0x21e),'x':0x0,'y':0x0,'textAnchor':_0x1923c0(0x10b),'dominantBaseline':_0x1923c0(0x10b),'fontSize':0xe,'children':_0xbdac4a})]});}function Ct({TREEID:_0x30dfaa,dimension:_0x4f1241,view:_0xfc654d,helper:_0x380db5}){const _0x31fb28=a1_0x3c608e,_0x4807a=_0x380db5[_0x31fb28(0x11c)],_0x4d3028=a1_0x409691(F);if(!_0x4807a||!_0x4d3028)return;const {selectedElem:_0x488673,setSelectedElem:_0x34cd01,hoveredElem:_0x3684f9,setHoveredElem:_0x1493ab}=_0x4d3028,{CPNAME:_0x86741f}=_0x4807a;if(!_0x86741f)return null;const {elmTrimThk:_0x2b1fd4}=_0x4807a,_0x3af53d=_0x380db5[_0x31fb28(0x1c8)]?.[_0x31fb28(0x9f)],_0x3feb65=_0x380db5[_0x31fb28(0x23c)]?.[_0x31fb28(0x9f)],_0x3e8b4a=(_0x4807a[_0x31fb28(0xee)]['start']==='S'?_0x3af53d:0x0)??0x0,_0x391905=(_0x4807a[_0x31fb28(0xee)][_0x31fb28(0x149)]==='S'?_0x3feb65:0x0)??0x0,_0x319018=(_0x4807a[_0x31fb28(0xee)][_0x31fb28(0x18e)]==='M'?_0x3af53d:0x0)??0x0,_0x5702a2=(_0x4807a[_0x31fb28(0xee)]['end']==='M'?_0x3feb65:0x0)??0x0,_0x3f3f6a=_0x4f1241[_0x31fb28(0xab)]-_0x2b1fd4['top']-_0x2b1fd4['bottom']+_0x4807a[_0x31fb28(0x17d)][_0x31fb28(0x163)]+_0x4807a[_0x31fb28(0x17d)]['bottom'],_0x55aedd=_0x4f1241['width']-_0x3e8b4a-_0x391905+_0x4807a['oversize'][_0x31fb28(0x18e)]+_0x4807a['oversize'][_0x31fb28(0x149)],_0x53d644=_0x4807a[_0x31fb28(0x9f)],_0x3137ae=-(_0x4807a[_0x31fb28(0x17d)][_0x31fb28(0x18e)]/0x2-_0x4807a[_0x31fb28(0x17d)][_0x31fb28(0x149)]/0x2-_0x3e8b4a/0x2+_0x391905/0x2),_0x27a08c=_0x4807a['oversize']['bottom']/0x2-_0x4807a[_0x31fb28(0x17d)][_0x31fb28(0x163)]/0x2+_0x2b1fd4[_0x31fb28(0x198)]/0x2-_0x2b1fd4[_0x31fb28(0x163)]/0x2,_0x106c6e=-(_0x4f1241['depth']/0x2-_0x53d644/0x2),_0x2b590d=_0x488673===_0x30dfaa,_0x57c3af=_0x3684f9===_0x30dfaa,_0xbb3e41=()=>{const _0x47732c=_0x31fb28;console[_0x47732c(0x94)]('handleClick',_0x30dfaa),_0x34cd01(_0x2b590d?null:_0x30dfaa);},_0x3cd9e3=()=>{_0x1493ab(_0x30dfaa);},_0x5391ad=()=>{_0x1493ab(null);};return _0xfc654d===x[_0x31fb28(0x1d6)]?a1_0x404de2(_0x31fb28(0x12c),{'position':[_0x3137ae/v,_0x106c6e/v,_0x27a08c/v],'rotation':[Math['PI']/0x2,0x0,Math['PI']/0x2],'children':a1_0x404de2(U,{'length':_0x3f3f6a,'width':_0x55aedd,'thk':_0x53d644,'treeId':_0x30dfaa,'isSelected':_0x2b590d,'isHovered':_0x57c3af,'onClick':_0xbb3e41,'onPointerEnter':_0x3cd9e3,'onPointerLeave':_0x5391ad})}):a1_0x404de2('g',{'transform':_0x31fb28(0x22f)+_0x3137ae+','+(_0xfc654d===x[_0x31fb28(0x1db)]?_0x106c6e:_0x27a08c)+_0x31fb28(0xb5),'children':a1_0x404de2(Z,{'dim_x':_0x55aedd,'dim_y':_0xfc654d===x[_0x31fb28(0x1db)]?_0x53d644:_0x3f3f6a,'text':'front\x20'+_0x3f3f6a+_0x31fb28(0x110)+_0x55aedd+_0x31fb28(0x110)+_0x53d644,'treeId':_0x30dfaa,'isSelected':_0x2b590d,'isHovered':_0x57c3af,'onClick':_0xbb3e41,'onMouseEnter':_0x3cd9e3,'onMouseLeave':_0x5391ad,'startPanelThk':_0xfc654d===x[_0x31fb28(0x1db)]?_0x319018:0x0,'endPanelThk':_0xfc654d===x[_0x31fb28(0x1db)]?_0x5702a2:0x0})});}const J=({view:_0x5f47ba=x[a1_0x3c608e(0x1d6)],position:_0x4b3008=[0x0,0x0,0x0],rotation:_0xd4422f=[0x0,0x0,0x0],children:_0x1ae335})=>{const _0x20f708=a1_0x3c608e;if(_0x5f47ba===x[_0x20f708(0x1d6)])return a1_0x404de2(_0x20f708(0x12c),{'position':[_0x4b3008[0x0]/v,_0x4b3008[0x1]/v,_0x4b3008[0x2]/v],'rotation':_0xd4422f,'children':_0x1ae335});const _0x1503b0=_0x4b3008[0x0],_0x12ccff=_0x5f47ba===x[_0x20f708(0x1db)]?_0x4b3008[0x1]:_0x4b3008[0x2],_0x1e5001=_0xd4422f[0x2]*(0xb4/Math['PI']);return a1_0x404de2('g',{'transform':_0x20f708(0x22f)+_0x1503b0+','+_0x12ccff+_0x20f708(0x1a6)+_0x1e5001+')','children':_0x1ae335});};function Lt({TREEID:_0x189c5f,dimension:_0x5280ab,view:_0x32df7e,helper:_0x16e612}){const _0x46277e=a1_0x3c608e,_0x24dc45=_0x16e612[_0x46277e(0x1c8)],_0x529d93=a1_0x409691(F);if(!_0x24dc45||!_0x529d93)return;const {selectedElem:_0x270ef4,setSelectedElem:_0x5a6c85,hoveredElem:_0x48dc7b,setHoveredElem:_0xfe985a}=_0x529d93,{CPNAME:_0x1b4dba}=_0x24dc45;if(!_0x1b4dba)return null;const {elmTrimThk:_0x57200e}=_0x24dc45,_0x4144d0=_0x16e612[_0x46277e(0x225)]?.[_0x46277e(0x9f)],_0x230685=_0x16e612[_0x46277e(0x11c)]?.[_0x46277e(0x9f)],_0x28bfcf=(_0x24dc45[_0x46277e(0xee)]['start']==='S'?_0x4144d0:0x0)??0x0,_0x35fe27=(_0x24dc45[_0x46277e(0xee)][_0x46277e(0x149)]==='S'?_0x230685:0x0)??0x0,_0x131a25=(_0x24dc45[_0x46277e(0xee)][_0x46277e(0x18e)]==='M'?_0x4144d0:0x0)??0x0,_0x4ce8d3=(_0x24dc45[_0x46277e(0xee)]['end']==='M'?_0x230685:0x0)??0x0,_0x511729=_0x5280ab[_0x46277e(0xab)]-_0x57200e[_0x46277e(0x163)]-_0x57200e[_0x46277e(0x198)]+_0x24dc45[_0x46277e(0x17d)][_0x46277e(0x163)]+_0x24dc45['oversize'][_0x46277e(0x198)],_0x515af8=_0x5280ab[_0x46277e(0x1e4)]-_0x28bfcf-_0x35fe27+_0x24dc45['oversize']['start']+_0x24dc45[_0x46277e(0x17d)][_0x46277e(0x149)],_0x1e429e=_0x24dc45[_0x46277e(0x9f)],_0x1f14ad=-(_0x5280ab[_0x46277e(0x111)]/0x2-_0x1e429e/0x2),_0x3263cb=_0x24dc45[_0x46277e(0x17d)][_0x46277e(0x18e)]/0x2-_0x24dc45[_0x46277e(0x17d)]['end']/0x2-_0x28bfcf/0x2+_0x35fe27/0x2,_0x2d2476=_0x24dc45[_0x46277e(0x17d)][_0x46277e(0x198)]/0x2-_0x24dc45['oversize'][_0x46277e(0x163)]/0x2+_0x57200e['bottom']/0x2-_0x57200e['top']/0x2,_0x28e441=_0x270ef4===_0x189c5f,_0x47dd2a=_0x48dc7b===_0x189c5f,_0x2186b6=()=>{_0x5a6c85(_0x28e441?null:_0x189c5f);},_0x4b2a0d=()=>{_0xfe985a(_0x189c5f);},_0x3ffba9=()=>{_0xfe985a(null);};return _0x32df7e===x[_0x46277e(0x1d6)]?a1_0x404de2('group',{'position':[_0x1f14ad/v,_0x3263cb/v,_0x2d2476/v],'rotation':[0x0,Math['PI']/0x2,0x0],'children':a1_0x404de2(U,{'length':_0x511729,'width':_0x515af8,'thk':_0x1e429e,'treeId':_0x189c5f,'isSelected':_0x28e441,'isHovered':_0x47dd2a,'onClick':_0x2186b6,'onPointerEnter':_0x4b2a0d,'onPointerLeave':_0x3ffba9})}):a1_0x404de2('g',{'transform':_0x46277e(0x22f)+_0x1f14ad+','+(_0x32df7e===x[_0x46277e(0x1db)]?_0x3263cb:_0x2d2476)+_0x46277e(0xb9),'children':a1_0x404de2(Z,{'dim_x':_0x32df7e===x[_0x46277e(0x1db)]?_0x515af8:_0x511729,'dim_y':_0x1e429e,'text':_0x46277e(0x107)+_0x511729+_0x46277e(0x110)+_0x515af8+_0x46277e(0x110)+_0x1e429e,'treeId':_0x189c5f,'rotate':0xb4,'isSelected':_0x28e441,'isHovered':_0x47dd2a,'onClick':_0x2186b6,'onMouseEnter':_0x4b2a0d,'onMouseLeave':_0x3ffba9,'startPanelThk':_0x32df7e===x[_0x46277e(0x1db)]?_0x131a25:0x0,'endPanelThk':_0x32df7e===x[_0x46277e(0x1db)]?_0x4ce8d3:0x0})});}function Ot({TREEID:_0x3995fb,dimension:_0x45ebc4,view:_0xb1c3c6,helper:_0x16d98e}){const _0x41a92a=a1_0x3c608e,_0x227178=_0x16d98e[_0x41a92a(0x225)],_0xe44857=a1_0x409691(F);if(!_0x227178||!_0xe44857)return;const {selectedElem:_0xc0df78,setSelectedElem:_0x3ada1f,hoveredElem:_0x20ba0a,setHoveredElem:_0x2b18e2}=_0xe44857,{CPNAME:_0x558174}=_0x227178;if(!_0x558174)return null;const {elmTrimThk:_0x5ec7d0}=_0x227178,_0x2ea69b=_0x16d98e['right']?.[_0x41a92a(0x9f)],_0x126d47=_0x16d98e[_0x41a92a(0x1c8)]?.[_0x41a92a(0x9f)],_0x422656=(_0x227178[_0x41a92a(0xee)][_0x41a92a(0x18e)]==='S'?_0x2ea69b:0x0)??0x0,_0x3d8186=(_0x227178[_0x41a92a(0xee)][_0x41a92a(0x149)]==='S'?_0x126d47:0x0)??0x0,_0x433a55=(_0x227178[_0x41a92a(0xee)][_0x41a92a(0x18e)]==='M'?_0x2ea69b:0x0)??0x0,_0x142828=(_0x227178['trim']['end']==='M'?_0x126d47:0x0)??0x0,_0x307c5c=_0x45ebc4[_0x41a92a(0xab)]-_0x5ec7d0[_0x41a92a(0x163)]-_0x5ec7d0[_0x41a92a(0x198)]+_0x227178[_0x41a92a(0x17d)]['top']+_0x227178[_0x41a92a(0x17d)][_0x41a92a(0x198)],_0x87c719=_0x45ebc4[_0x41a92a(0x111)]-_0x422656-_0x3d8186+_0x227178[_0x41a92a(0x17d)][_0x41a92a(0x18e)]+_0x227178['oversize'][_0x41a92a(0x149)],_0x142363=_0x227178[_0x41a92a(0x9f)],_0x269c16=_0x227178['oversize'][_0x41a92a(0x18e)]/0x2-_0x227178['oversize'][_0x41a92a(0x149)]/0x2-_0x422656/0x2+_0x3d8186/0x2,_0x10ad6d=_0x45ebc4['depth']/0x2-_0x142363/0x2,_0x26430a=_0x227178[_0x41a92a(0x17d)][_0x41a92a(0x198)]/0x2-_0x227178['oversize'][_0x41a92a(0x163)]/0x2+_0x5ec7d0[_0x41a92a(0x198)]/0x2-_0x5ec7d0[_0x41a92a(0x163)]/0x2,_0x3977ad=_0xc0df78===_0x3995fb,_0x213a77=_0x20ba0a===_0x3995fb,_0xd87d20=()=>{_0x3ada1f(_0x3977ad?null:_0x3995fb);},_0x594060=()=>{_0x2b18e2(_0x3995fb);},_0x19d4ff=()=>{_0x2b18e2(null);};return _0xb1c3c6===x[_0x41a92a(0x1d6)]?a1_0x396ee5('group',{'position':[_0x269c16/v,_0x10ad6d/v,_0x26430a/v],'rotation':[Math['PI']/0x2,0x0,Math['PI']/0x2],'children':[a1_0x404de2(U,{'length':_0x307c5c,'width':_0x87c719,'thk':_0x142363,'treeId':_0x3995fb,'isSelected':_0x3977ad,'isHovered':_0x213a77,'onClick':_0xd87d20,'onPointerEnter':_0x594060,'onPointerLeave':_0x19d4ff}),a1_0x404de2(a1_0x325b09,{'position':[0x0,0x0,0x0],'color':_0x41a92a(0x156),'fontSize':0x14,'children':_0x3995fb})]}):a1_0x404de2('g',{'transform':_0x41a92a(0x22f)+_0x269c16+','+(_0xb1c3c6===x[_0x41a92a(0x1db)]?_0x10ad6d:_0x26430a)+_0x41a92a(0xb5),'children':a1_0x404de2(Z,{'dim_x':_0x87c719,'dim_y':_0xb1c3c6===x[_0x41a92a(0x1db)]?_0x142363:_0x307c5c,'text':_0x41a92a(0x15a)+_0x307c5c+_0x41a92a(0x110)+_0x87c719+'\x20x\x20'+_0x142363,'treeId':_0x3995fb,'isSelected':_0x3977ad,'rotate':0xb4,'isHovered':_0x213a77,'onClick':_0xd87d20,'onMouseEnter':_0x594060,'onMouseLeave':_0x19d4ff,'startPanelThk':_0xb1c3c6===x[_0x41a92a(0x1db)]?_0x433a55:0x0,'endPanelThk':_0xb1c3c6===x[_0x41a92a(0x1db)]?_0x142828:0x0})});}function Pt({TREEID:_0x1e8042,dimension:_0x5ec6ee,view:_0x35cc25,helper:_0x535fa7}){const _0x1dea0a=a1_0x3c608e,_0x846a3b=_0x535fa7[_0x1dea0a(0x23c)],_0x39a4a8=a1_0x409691(F);if(!_0x846a3b||!_0x39a4a8)return;const {selectedElem:_0x3ae918,setSelectedElem:_0x54af98,hoveredElem:_0x49ac8f,setHoveredElem:_0x4bd954}=_0x39a4a8,{CPNAME:_0x3cc7cf}=_0x846a3b;if(!_0x3cc7cf)return null;const {elmTrimThk:_0x4ab6ef}=_0x846a3b,_0x2e768e=_0x535fa7['front']?.[_0x1dea0a(0x9f)],_0x450ddf=_0x535fa7[_0x1dea0a(0x225)]?.[_0x1dea0a(0x9f)],_0x23f68b=(_0x846a3b[_0x1dea0a(0xee)][_0x1dea0a(0x18e)]==='S'?_0x2e768e:0x0)??0x0,_0x7fab35=(_0x846a3b[_0x1dea0a(0xee)][_0x1dea0a(0x149)]==='S'?_0x450ddf:0x0)??0x0,_0x196205=(_0x846a3b[_0x1dea0a(0xee)][_0x1dea0a(0x18e)]==='M'?_0x2e768e:0x0)??0x0,_0xf3c572=(_0x846a3b[_0x1dea0a(0xee)][_0x1dea0a(0x149)]==='M'?_0x450ddf:0x0)??0x0,_0x272431=_0x5ec6ee[_0x1dea0a(0xab)]-_0x4ab6ef['top']-_0x4ab6ef[_0x1dea0a(0x198)]+_0x846a3b[_0x1dea0a(0x17d)][_0x1dea0a(0x163)]+_0x846a3b['oversize']['bottom'],_0x34da56=_0x5ec6ee[_0x1dea0a(0x1e4)]-_0x23f68b-_0x7fab35+_0x846a3b[_0x1dea0a(0x17d)][_0x1dea0a(0x18e)]+_0x846a3b[_0x1dea0a(0x17d)][_0x1dea0a(0x149)],_0x37a7a4=_0x846a3b['thk'],_0x384e93=_0x5ec6ee[_0x1dea0a(0x111)]/0x2-_0x37a7a4/0x2,_0x27b480=-(_0x846a3b[_0x1dea0a(0x17d)][_0x1dea0a(0x18e)]/0x2-_0x846a3b['oversize']['end']/0x2-_0x23f68b/0x2+_0x7fab35/0x2),_0x2de560=_0x846a3b[_0x1dea0a(0x17d)][_0x1dea0a(0x198)]/0x2+_0x846a3b[_0x1dea0a(0x17d)][_0x1dea0a(0x163)]/0x2+_0x4ab6ef[_0x1dea0a(0x198)]/0x2-_0x4ab6ef['top']/0x2,_0x138409=_0x3ae918===_0x1e8042,_0xa1a576=_0x49ac8f===_0x1e8042,_0x2a70ca=()=>{_0x54af98(_0x138409?null:_0x1e8042);},_0x3505a3=()=>{_0x4bd954(_0x1e8042);},_0x41c3d7=()=>{_0x4bd954(null);};return _0x35cc25===x[_0x1dea0a(0x1d6)]?a1_0x404de2(_0x1dea0a(0x12c),{'position':[_0x384e93/v,_0x27b480/v,_0x2de560/v],'rotation':[0x0,Math['PI']/0x2,0x0],'children':a1_0x404de2(U,{'length':_0x272431,'width':_0x34da56,'thk':_0x37a7a4,'treeId':_0x1e8042,'isSelected':_0x138409,'isHovered':_0xa1a576,'onClick':_0x2a70ca,'onPointerEnter':_0x3505a3,'onPointerLeave':_0x41c3d7})}):a1_0x404de2('g',{'transform':_0x1dea0a(0x22f)+_0x384e93+','+(_0x35cc25===x[_0x1dea0a(0x1db)]?_0x27b480:_0x2de560)+_0x1dea0a(0xb9),'children':a1_0x404de2(Z,{'dim_x':_0x35cc25===x[_0x1dea0a(0x1db)]?_0x34da56:_0x272431,'dim_y':_0x37a7a4,'text':'right\x20'+_0x272431+_0x1dea0a(0x110)+_0x34da56+_0x1dea0a(0x110)+_0x37a7a4,'treeId':_0x1e8042,'isSelected':_0x138409,'isHovered':_0xa1a576,'onClick':_0x2a70ca,'onMouseEnter':_0x3505a3,'onMouseLeave':_0x41c3d7,'startPanelThk':_0x35cc25===x[_0x1dea0a(0x1db)]?_0x196205:0x0,'endPanelThk':_0x35cc25===x['_2D_TOP']?_0xf3c572:0x0})});}function Vt({TREEID:_0x3b0880,dimension:_0x2c77cc,view:_0x2a2f83,helper:_0x23203b}){const _0x248ab3=a1_0x3c608e,_0xcce258=ue(_0x3b0880),_0x22a949=a1_0x409691(F);if(!_0xcce258||!_0x22a949)return;const {selectedElem:_0x2dcb68,setSelectedElem:_0xacae75,hoveredElem:_0x5d3d57,setHoveredElem:_0x45852c}=_0x22a949,{topShelfCP:_0x1ffe5d}=_0xcce258;if(!_0x1ffe5d)return;const _0x5052d6=(_0x23203b[_0x248ab3(0x11c)]?.['trim'][_0x248ab3(0x163)]!=='S'?_0x23203b[_0x248ab3(0x11c)]?.['thk']:0x0)??0x0,_0x1842e1=(_0x23203b['back']?.[_0x248ab3(0xee)][_0x248ab3(0x163)]!=='S'?_0x23203b[_0x248ab3(0x225)]?.[_0x248ab3(0x9f)]:0x0)??0x0,_0x4a9266=(_0x23203b[_0x248ab3(0x1c8)]?.[_0x248ab3(0xee)][_0x248ab3(0x163)]!=='S'?_0x23203b[_0x248ab3(0x1c8)]?.[_0x248ab3(0x9f)]:0x0)??0x0,_0x41d798=(_0x23203b[_0x248ab3(0x23c)]?.[_0x248ab3(0xee)][_0x248ab3(0x163)]!=='S'?_0x23203b[_0x248ab3(0x23c)]?.[_0x248ab3(0x9f)]:0x0)??0x0,_0x1dd98b=_0x2c77cc[_0x248ab3(0x111)]-_0x4a9266-_0x41d798,_0x4bb3ba=_0x2c77cc[_0x248ab3(0x1e4)]-_0x1842e1-_0x5052d6,_0xc24c0f=_0xcce258[_0x248ab3(0x20d)],_0xcd451=_0x4a9266/0x2-_0x41d798/0x2,_0x2518b8=-(_0x1842e1/0x2-_0x5052d6/0x2),_0x237d80=_0x2c77cc[_0x248ab3(0xab)]/0x2-_0xc24c0f/0x2,_0x1522ef=_0x2dcb68===_0x3b0880,_0x5db18c=_0x5d3d57===_0x3b0880,_0x3fa1e0=()=>{_0xacae75(_0x1522ef?null:_0x3b0880);},_0x4e839f=()=>{_0x45852c(_0x3b0880);},_0x75264=()=>{_0x45852c(null);};return _0x2a2f83===x[_0x248ab3(0x1d6)]?a1_0x404de2(_0x248ab3(0x12c),{'position':[_0xcd451/v,_0x2518b8/v,_0x237d80/v],'rotation':[0x0,0x0,0x0],'children':a1_0x404de2(U,{'length':_0x1dd98b,'width':_0x4bb3ba,'thk':_0xc24c0f,'opacity':0.8,'treeId':_0x3b0880,'isSelected':_0x1522ef,'isHovered':_0x5db18c,'onClick':_0x3fa1e0,'onPointerEnter':_0x4e839f,'onPointerLeave':_0x75264})}):a1_0x404de2('g',{'transform':'translate('+_0xcd451+','+(_0x2a2f83===x[_0x248ab3(0x1db)]?_0x2518b8:_0x237d80)+')','children':a1_0x404de2(Z,{'dim_x':_0x1dd98b,'dim_y':_0x2a2f83===x[_0x248ab3(0x1db)]?_0x4bb3ba:_0xc24c0f,'text':_0x248ab3(0x11d)+_0x3b0880+_0x248ab3(0x227)+_0x1dd98b+_0x248ab3(0x110)+_0x4bb3ba+_0x248ab3(0x110)+_0xc24c0f,'treeId':_0x3b0880,'isSelected':_0x1522ef,'isHovered':_0x5db18c,'onClick':_0x3fa1e0,'onMouseEnter':_0x4e839f,'onMouseLeave':_0x75264})});}function Rt({TREEID:_0x7dffde,dimension:_0x3f5b94,view:_0x4687b0,helper:_0x287e39}){const _0x351f83=a1_0x3c608e,_0x3b7e14=ue(_0x7dffde),_0x515098=a1_0x409691(F);if(!_0x3b7e14||!_0x515098)return;const {selectedElem:_0x537003,setSelectedElem:_0x11cf56,hoveredElem:_0x4a2ed7,setHoveredElem:_0xd39e55}=_0x515098,{bottomShelfCP:_0x47dff0}=_0x3b7e14;if(!_0x47dff0)return;const _0x482a3a=(_0x287e39[_0x351f83(0x11c)]?.['trim'][_0x351f83(0x198)]!=='S'?_0x287e39['front']?.[_0x351f83(0x9f)]:0x0)??0x0,_0x23944a=(_0x287e39[_0x351f83(0x225)]?.[_0x351f83(0xee)][_0x351f83(0x198)]!=='S'?_0x287e39[_0x351f83(0x225)]?.['thk']:0x0)??0x0,_0x51099c=(_0x287e39[_0x351f83(0x1c8)]?.[_0x351f83(0xee)][_0x351f83(0x198)]!=='S'?_0x287e39[_0x351f83(0x1c8)]?.[_0x351f83(0x9f)]:0x0)??0x0,_0x102a07=(_0x287e39[_0x351f83(0x23c)]?.[_0x351f83(0xee)]['bottom']!=='S'?_0x287e39[_0x351f83(0x23c)]?.[_0x351f83(0x9f)]:0x0)??0x0,_0x5b15e4=_0x3f5b94['width']-_0x51099c-_0x102a07,_0xcc0d45=_0x3f5b94['depth']-_0x23944a-_0x482a3a,_0x31d246=_0x3b7e14[_0x351f83(0x13b)],_0x3cbbcb=_0x51099c/0x2-_0x102a07/0x2,_0x2f6c33=-(_0x23944a/0x2-_0x482a3a/0x2),_0x740b11=-(_0x3f5b94[_0x351f83(0xab)]/0x2-_0x31d246/0x2),_0x33d4fd=_0x537003===_0x7dffde,_0x18bddc=_0x4a2ed7===_0x7dffde,_0x39e719=()=>{_0x11cf56(_0x33d4fd?null:_0x7dffde);},_0x1e4932=()=>{_0xd39e55(_0x7dffde);},_0x5dad02=()=>{_0xd39e55(null);};return _0x4687b0===x['_3D']?a1_0x404de2('group',{'position':[_0x3cbbcb/v,_0x2f6c33/v,_0x740b11/v],'rotation':[0x0,0x0,0x0],'children':a1_0x404de2(U,{'length':_0x5b15e4,'width':_0xcc0d45,'thk':_0x31d246,'opacity':0.8,'treeId':_0x7dffde,'isSelected':_0x33d4fd,'isHovered':_0x18bddc,'onClick':_0x39e719,'onPointerEnter':_0x1e4932,'onPointerLeave':_0x5dad02})}):a1_0x404de2('g',{'transform':_0x351f83(0x22f)+_0x3cbbcb+','+(_0x4687b0===x[_0x351f83(0x1db)]?_0x2f6c33:_0x740b11)+')','children':a1_0x404de2(Z,{'dim_x':_0x5b15e4,'dim_y':_0x4687b0===x['_2D_TOP']?_0xcc0d45:_0x31d246,'text':_0x351f83(0x161)+_0x5b15e4+'\x20x\x20'+_0xcc0d45+_0x351f83(0x110)+_0x31d246,'treeId':_0x7dffde,'isSelected':_0x33d4fd,'isHovered':_0x18bddc,'onClick':_0x39e719,'onMouseEnter':_0x1e4932,'onMouseLeave':_0x5dad02})});}function a1_0x5acd(_0x5e27ea,_0x19b701){_0x5e27ea=_0x5e27ea-0x92;const _0x12249b=a1_0x1224();let _0x5acd80=_0x12249b[_0x5e27ea];return _0x5acd80;}function $t(){const _0x4057e3=a1_0x3c608e,_0xcab6=a1_0x409691(De);if(!_0xcab6)throw new Error(_0x4057e3(0x193));return _0xcab6;}function Ft(_0x4c6283,_0x55ae49,_0x5bfd24,_0x18d502={}){const _0x5dc087=a1_0x3c608e,{throwOnError:_0x4d957f=!0x1}=_0x18d502;if(!_0x4c6283[_0x5dc087(0x201)](_0x55ae49))throw new Error(_0x5dc087(0x132)+_0x55ae49+_0x5dc087(0x1ea));return a1_0x3fa351(()=>{const _0x2a4e78=_0x5dc087;try{return{'result':_0x4c6283[_0x2a4e78(0x179)](_0x55ae49,_0x5bfd24),'error':null,'success':!0x0};}catch(_0x50f196){const _0x42a94b=_0x50f196 instanceof Error?_0x50f196[_0x2a4e78(0xe7)]:_0x2a4e78(0x194);if(_0x4d957f)throw _0x50f196;return{'result':null,'error':_0x42a94b,'success':!0x1};}},[_0x4c6283,_0x55ae49,_0x5bfd24,_0x4d957f]);}function sr(_0x4e2b22,_0xd725c8,_0x2490b2){return a1_0x3fa351(()=>{const _0x5ecfa6=a1_0x5acd;try{const _0x41c11a=_0x4e2b22['findAllMatches'](_0xd725c8,_0x2490b2);return{'matches':_0x41c11a,'error':null,'count':_0x41c11a[_0x5ecfa6(0x13f)]};}catch(_0x7fe6c6){const _0x49fde4=_0x7fe6c6 instanceof Error?_0x7fe6c6['message']:_0x5ecfa6(0x194);return{'matches':[],'error':_0x49fde4,'count':0x0};}},[_0x4e2b22,_0xd725c8,_0x2490b2]);}const R={'LINEAR_DIVISION':a1_0x3c608e(0x14b),'ARTICLE':a1_0x3c608e(0x231)},B={'STRING':a1_0x3c608e(0x1f8),'DESCRIPTOR':'descriptor'},ye={'linearDivision':_0x19a91f=>_0x19a91f[a1_0x3c608e(0x186)]===R[a1_0x3c608e(0x151)],'article':_0x1447de=>_0x1447de[a1_0x3c608e(0x186)]===R[a1_0x3c608e(0xd8)]},zt={'string':_0x33b3a3=>_0x33b3a3[a1_0x3c608e(0x186)]===R[a1_0x3c608e(0x151)]&&_0x33b3a3[a1_0x3c608e(0x1cb)]===B[a1_0x3c608e(0x1d5)],'descriptor':_0x444fd9=>_0x444fd9[a1_0x3c608e(0x186)]===R[a1_0x3c608e(0x151)]&&_0x444fd9['valueSource']===B[a1_0x3c608e(0x219)]},oe={'string':_0x59dd8d=>_0x59dd8d['type']===R[a1_0x3c608e(0xd8)]&&_0x59dd8d[a1_0x3c608e(0x1cb)]===B[a1_0x3c608e(0x1d5)],'descriptor':_0x43c0f4=>_0x43c0f4[a1_0x3c608e(0x186)]===R[a1_0x3c608e(0xd8)]&&_0x43c0f4['valueSource']===B[a1_0x3c608e(0x219)]},q={'linearDivisionString'(_0x36efd4,_0xe925b4,_0x5c39a2,_0x37b368,_0x5324e4,_0x442ba5,_0x296fcf,_0x1a2279){const _0x33f2ff=a1_0x3c608e;return{'TREEID':_0x36efd4,'type':R[_0x33f2ff(0x151)],'valueSource':B[_0x33f2ff(0x1d5)],'DIVDIR':_0xe925b4,'DIVTYPE':_0x5c39a2,'HORDEFTYPE':_0x37b368,'LINDIV1':_0x5324e4,'DIVELEM1':_0x442ba5,'DIVIDER':'','formula':_0x296fcf,'thickness':_0x1a2279};},'linearDivisionDescriptor'(_0x47a5de,_0x2f68de,_0x267f44,_0x3ad306,_0xf7d405,_0x1e1df4,_0x1a7b26,_0x479433){const _0x37698a=a1_0x3c608e;return{'TREEID':_0x47a5de,'type':R[_0x37698a(0x151)],'valueSource':B[_0x37698a(0x219)],'DIVDIR':_0x2f68de,'DIVTYPE':_0x267f44,'HORDEFTYPE':_0x3ad306,'LINDIV1':_0xf7d405,'DIVELEM1':_0x1e1df4,'DIVIDER':'','descriptorName':_0x1a7b26,'thickness':_0x479433};},'articleString'(_0xf04702,_0xa91597,_0x5094f8,_0x1052bb,_0x1458d7,_0xb97b,_0x432d82){const _0x36057e=a1_0x3c608e;return{'TREEID':_0xf04702,'type':R[_0x36057e(0xd8)],'valueSource':B[_0x36057e(0x1d5)],'DIVDIR':_0xa91597,'DIVTYPE':_0x5094f8,'HORDEFTYPE':_0x1052bb,'LINDIV1':_0x1458d7,'DIVELEM1':_0xb97b,'DIVIDER':_0x432d82,'articleName':_0x432d82};},'articleDescriptor'(_0x2a8939,_0x10726c,_0x36f46f,_0x399cce,_0x501877,_0x4d1e58,_0x4ae37b){const _0x3a08b4=a1_0x3c608e;return{'TREEID':_0x2a8939,'type':R[_0x3a08b4(0xd8)],'valueSource':B[_0x3a08b4(0x219)],'DIVDIR':_0x10726c,'DIVTYPE':_0x36f46f,'HORDEFTYPE':_0x399cce,'LINDIV1':_0x501877,'DIVELEM1':_0x4d1e58,'DIVIDER':_0x4ae37b,'descriptorName':_0x4ae37b};},'fromZoneData'(_0x5cc4f0,_0xadf423){const _0x31c3b1=a1_0x3c608e,_0x444310=_0x171620=>_0x171620[_0x31c3b1(0xee)]()[_0x31c3b1(0x1cd)]('#');if(_0x5cc4f0['DIVDIR']==='A'){if(_0x444310(_0x5cc4f0[_0x31c3b1(0x171)])){const _0x1d31d3=_0x5cc4f0['DIVIDER']['replace']('#','')['trim']();return q[_0x31c3b1(0x162)](_0x5cc4f0['TREEID'],_0x5cc4f0[_0x31c3b1(0x1cf)],_0x5cc4f0[_0x31c3b1(0x238)],_0x5cc4f0[_0x31c3b1(0x10d)],_0x5cc4f0[_0x31c3b1(0xfd)],_0x5cc4f0[_0x31c3b1(0x1de)],_0x1d31d3);}return q[_0x31c3b1(0x98)](_0x5cc4f0[_0x31c3b1(0xe8)],_0x5cc4f0[_0x31c3b1(0x1cf)],_0x5cc4f0[_0x31c3b1(0x238)],_0x5cc4f0[_0x31c3b1(0x10d)],_0x5cc4f0['LINDIV1'],_0x5cc4f0[_0x31c3b1(0x1de)],_0x5cc4f0['DIVIDER']);}if(_0x444310(_0x5cc4f0[_0x31c3b1(0xfd)])){const _0x522ce6=_0x5cc4f0['LINDIV1'][_0x31c3b1(0x141)]('#','')[_0x31c3b1(0xee)]();return q[_0x31c3b1(0xb4)](_0x5cc4f0[_0x31c3b1(0xe8)],_0x5cc4f0[_0x31c3b1(0x1cf)],_0x5cc4f0[_0x31c3b1(0x238)],_0x5cc4f0[_0x31c3b1(0x10d)],_0x5cc4f0[_0x31c3b1(0xfd)],_0x5cc4f0[_0x31c3b1(0x1de)],_0x522ce6,_0xadf423);}return q[_0x31c3b1(0xdc)](_0x5cc4f0[_0x31c3b1(0xe8)],_0x5cc4f0[_0x31c3b1(0x1cf)],_0x5cc4f0[_0x31c3b1(0x238)],_0x5cc4f0['HORDEFTYPE'],_0x5cc4f0[_0x31c3b1(0xfd)],_0x5cc4f0['DIVELEM1'],_0x5cc4f0['LINDIV1'],_0xadf423);}};function Gt(_0x2ef517){const _0x41f74d=a1_0x3c608e;if(!_0x2ef517)return _0x41f74d(0x111);const _0x301e23={0x0:_0x41f74d(0x111),0x1:_0x41f74d(0x1e4),0x2:_0x41f74d(0x111),0x3:'depth'};return _0x2ef517[_0x41f74d(0x1cf)]==='V'?_0x41f74d(0xab):_0x2ef517[_0x41f74d(0x10d)]==='W'?_0x41f74d(0x111):_0x2ef517[_0x41f74d(0x10d)]==='D'?'depth':_0x2ef517[_0x41f74d(0x10d)]==='P'?_0x301e23[_0x2ef517[_0x41f74d(0x1de)]]??_0x41f74d(0x111):_0x41f74d(0x111);}function a1_0x1224(){const _0x2df31f=['getDescriptorNames','variables','every','ENDOFFS','toStringTag','stringify','804735uPxYkK','LINDIV1','SpecialVariable','SIZEX','Surfaces','SIZEZ','calculateSections','consume','\x20at\x20position:\x20','log10','Expected\x20\x27)\x27\x20after\x20function\x20arguments.','left\x20','rotation','STARTTRIM','cache','middle','lastIndexOf','HORDEFTYPE','source','peek','\x20x\x20','width','16552380zuUAbK','some','resetState','OPSTRING','2D_FRONT','2D_TOP','mesh','positions','getDescriptor','scanIdentifierOrFunction','front','Top\x20','var-controller__var-name','var-controller__slider-container','toLocaleLowerCase','fromZoneData','Failed\x20to\x20parse\x20factor:\x20','operator','DIMCALCFY','Unexpected\x20character:\x20','entries','85HqYIrL','lightgray','isRepeated','start\x20dimensions\x20','updatedDivider','group','sizerefout1','cumulativeZ','forEach','getDescriptorsByType','Variable','Descriptor\x20','cos','anglgrtx','RIGHTVALUE','zoneInfo','var-controller__reference','divided_length_list','RIGHT_ANGLE_BRACKET','black','bottomShelfThk','articleName','nodes','accumulateIncorporatedThicknesses','length','BinaryExpression','replace','Section','NOT\x20OR','nodeNum','nestingLevel','findAllNonDefaultMatches','spreadMm','position','end','thickness','linear-division','abs','UNIT','\x20variables','simple','Math.floor(','LINEAR_DIVISION','TYP','BRACKET_OPEN','section','warn','blue','#0066ff','startPanelThk','deg2bog','Back\x20','\x20parts','data','next','Total\x20length\x20exceeded','MATHEMATICAL_FUNCTIONS','target','Bot\x20','articleDescriptor','top','round','atan','Invalid\x20condition:\x20','Empty\x20input\x20string','name','descriptorName','evaluateVariable','IAC_BOTTOMSHELFTHICKNESS','remaining\x20position\x20=>\x20','dimensions','Variable\x20name\x20cannot\x20be\x20empty\x20or\x20$mm','evaluateFunction','floor','DIVIDER','isBinaryExpression','input','errors','COMPARISONTYPE','Unexpected\x20token:\x20','evaluateSections','addToken','evaluate','Unhandled\x20case:\x20DIVDIR\x20=\x20','1053224ajtjiZ','Math.pow(','oversize','push','isInsideGroup','term','anglzone','\x0a\x20\x20\x20\x20','Variable\x20Controller','131777frJPrz','Expected\x20\x27}\x27\x20after\x20expression.','type','DATATYPE','Grouping','SIZEY','from','toFixed','anglGrtxs','Expected\x20expression\x20inside\x20parentheses.','start','topShelfCP','filter','sizerefout2','_2D_FRONT','useDescriptorManager\x20must\x20be\x20used\x20within\x20a\x20DescriptorProvider','Unknown\x20error','expression','Total\x20variables:\x20','toRepeat','bottom','AD\x20article\x20depth','Numeric','scanMm','toLowerCase','TOPOFFS','resetCurrent','AD\x20article\x20height','includes','var-controller__number-input','PAREN_OPEN','evaluateBinaryExpression','tokens','childPositions',')\x20rotate(','wasEvaluated','fill','anglclie','div','bevel','getStats','Quick\x20Stats','keys','factor','checkMillimeterSuffix','LEFTVALUE','25%','mm2in','linearDivision','isUnaryExpression','sizerefedg1','ratio:expr','Invalid\x20usage:\x20\x22n\x22\x20cannot\x20appear\x20on\x20the\x20right-hand\x20side\x20of\x20an\x20operator','split','divisionType','border\x20inset','INSETFOR','error','Variable\x20Name','Evaluation\x20Error:\x20','EvaluationError','zone_dims','4ATDjlA','default','var-controller__type-badge','endPanelThk','parse','independent','left','Text','Failed\x20to\x20parse\x20primary:\x20','valueSource','Math.sqrt(','startsWith','PAREN_CLOSE','DIVDIR','IF\x20statement\x20must\x20have\x20exactly\x203\x20parts:\x20IF(condition,\x20trueValue,\x20falseValue).\x20Got:\x20','WERT','Current\x20Value','boxGeometry','endsWith','STRING','_3D','primary','join','Circular\x20dependency:\x20','tan','_2D_TOP','var-controller__header','find','DIVELEM1','Sections','Error\x20in\x20function\x20arguments','polygon','Unknown\x20operator:\x20','Expected\x20\x27>\x27\x20after\x20section\x20expression.','depth','test','isArray','NumberLiteral','var-controller__section','get2DFront','\x20not\x20found','children','slice','toUpperCase','Unknown\x20error\x20during\x20evaluation.','reference','rawType','filter3','NOT','thead','resolved','tbody','anglelem','set','string','Error\x20calculating\x20sections','previous','remaining\x20dimensions\x20','Expected\x20Sections\x20or\x20Section,\x20got\x20','EOF','comparison','consumeMillimeterSuffix','values','hasDescriptor','4293548xLKVzy','Dimensions\x20(Numeric)','Variable\x20','useData\x20must\x20be\x20used\x20within\x20a\x20DataProvider','bottomShelfCP','CPNAME','Failed\x20to\x20parse\x20expression:\x20','reportError','TAGVALUE','evaluateTree','prim_dims','topShelfThk','No\x20variables\x20defined.','add','get2DTop','expr:ratio','SPECIAL_VARIABLE','isVariable','Math.ceil(','reverse','No\x20prims\x20found\x20for\x20article:\x20','BRACE_CLOSE','times','DESCRIPTOR','matchAll','descriptors','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','preformScan','scale(1,-1)','isDigit','inset','acos','IAC_THICKNESS','Repeated','lexeme','back','BOTSHELF','\x20\x20\x20--\x20\x20','has','Material','value','fromEntries','filter4','FUNCTION','conditionTree','translate(','INSET','article','meshStandardMaterial','\x27use\x20strict\x27;\x20return\x20(','getClieThk','LEFT_ANGLE_BRACKET','freeze','kind','DIVTYPE','TEXT','MANINFO','isSection','right','63lwbmjO','localeCompare','DESC_TYPE','log','descriptor','unsupported\x20node\x20type:\x20','tree','articleString','findAllMatches','peekNext','Failed\x20to\x20evaluate\x20expression:\x20','border\x20thk','expr*{ratio}','scan','thk','Surface','#ff6b00','lindiv','anglprim','Expected\x20digit\x20after\x20decimal\x20point\x20at\x20position:\x20','cumulativeX','Unhandled\x20case:\x20DIVELEM1\x20=\x20','Math.min(','sin','size','number','height','Invalid\x20Operator','conditionId','label','variableTree','BRACE_OPEN','205641gqMVho','delete','OPERATOR','linearDivisionDescriptor',')\x20rotate(0)','Function\x20not\x20implemented','sort','No\x20tokens\x20to\x20parse.',')\x20rotate(90)','VARIABLE','BOTTRIM','var-controller__table','isAlpha','rotate(','advance','substring','Descriptor\x20not\x20found:\x20','Failed\x20to\x20parse\x20term:\x20','NAME','hasMillimeterSuffix','isAtEnd','Unknown\x20identifier:\x20','AND','35%','bog2deg','center','Expected\x20\x27(\x27\x20after\x20function\x20name\x20\x27','get','var-controller','AD\x20zone\x20info0','54978lmpUiA','Reference','unsupported\x20node\x20type\x20to\x20traverse:\x20','toString','check','=====================================\x20Zone\x20Start\x20','Type','Materials','bind','ARTICLE','current','useVariables\x20must\x20be\x20used\x20within\x20a\x20VariableProvider','undefined','linearDivisionString','toISOString','FunctionCall','reduce','\x20-\x20','Empty\x20expression','evaluateNode','TAGNAME','text','match','defineProperty','message','TREEID','gray','sizerefmid','sections','isNumberLiteral','isFunctionCall','trim','isGrouping','asin','NUM','charAt','map','NUMBER','isSections'];a1_0x1224=function(){return _0x2df31f;};return a1_0x1224();}function Bt(_0x25f6b3,_0x3757a0){return _0x3757a0?_0x3757a0[_0x25f6b3]:0x0;}function Ht(_0x38802a,_0x501d01){const _0x24a7a0=a1_0x3c608e,_0x3cb4a4=_0x38802a;if(Kt(_0x38802a))return{'value':_0x38802a['startsWith']('#')?_0x38802a[_0x24a7a0(0x1ec)](0x1):_0x38802a,'original':_0x3cb4a4,'isReference':!0x0};if(/^\d+:\d+$/['test'](_0x38802a))return{'value':_0x38802a,'original':_0x3cb4a4,'isReference':!0x1};const {format:_0x39d920,expression:_0x2c2afd,suffix:_0x445eaa}=Zt(_0x38802a);let _0x251b41=_0x2c2afd;_0x251b41=_0x251b41[_0x24a7a0(0x141)](/^\((.+)\)$/,'$1');const _0x273a98=we(_0x251b41,{'variableTree':_0x501d01,'allowFunctions':!0x0,'dataType':'FL','silent':!0x0})[_0x24a7a0(0x22a)]??_0x2c2afd;let _0x79fdf7;switch(_0x39d920){case _0x24a7a0(0x211):_0x79fdf7=''+_0x273a98+_0x445eaa;break;case'ratio:expr':_0x79fdf7=''+_0x445eaa+_0x273a98;break;case'expr*{ratio}':_0x79fdf7=''+_0x273a98+_0x445eaa;break;case _0x24a7a0(0x14f):_0x79fdf7=String(_0x273a98);break;}return{'value':_0x79fdf7,'original':_0x3cb4a4,'isReference':!0x1};}function Ut(_0x458bf2,_0x9b6b84){const _0x4e83ef=a1_0x3c608e;return Ht(_0x458bf2,_0x9b6b84)[_0x4e83ef(0x22a)];}function Zt(_0x415f3e){const _0x33d6c9=a1_0x3c608e,_0x162f5f=_0x415f3e[_0x33d6c9(0xee)]()[_0x33d6c9(0x141)](/^\((.+)\)$/,'$1'),_0x16d934=_0x162f5f[_0x33d6c9(0xe5)](/^(\d+|n):(.+?)(mm|cm)?$/);if(_0x16d934){const [,_0x5614b4,_0x3bc14a,_0x181f0c]=_0x16d934;return{'format':_0x33d6c9(0x1b7),'expression':_0x3bc14a['trim'](),'suffix':_0x181f0c?_0x5614b4+':'+_0x181f0c:_0x5614b4+':'};}const _0x18deda=_0x162f5f[_0x33d6c9(0xe5)](/^(.+?)(mm|cm)?:(\d+)$/);if(_0x18deda){const [,_0x20f3bf,_0x385eee,_0x2c0b2e]=_0x18deda;return{'format':_0x33d6c9(0x211),'expression':_0x20f3bf[_0x33d6c9(0xee)](),'suffix':_0x385eee?_0x385eee+':'+_0x2c0b2e:':'+_0x2c0b2e};}const _0x1eb32c=_0x162f5f[_0x33d6c9(0xe5)](/^(.+?)(\*)?{(\d+)}$/);if(_0x1eb32c){const [,_0x87c328,_0x3ffafd,_0x5ed04b]=_0x1eb32c;return{'format':_0x33d6c9(0x9d),'expression':_0x87c328[_0x33d6c9(0xee)](),'suffix':_0x3ffafd?'*{'+_0x5ed04b+'}':'{'+_0x5ed04b+'}'};}return{'format':'simple','expression':_0x162f5f,'suffix':''};}function Kt(_0x4202fa){const _0x157d3c=a1_0x3c608e;return _0x4202fa[_0x157d3c(0x1cd)]('#')?!0x0:_0x4202fa[_0x157d3c(0x1a0)]('(')||/[+\-*/]/['test'](_0x4202fa)?!0x1:/^[A-Za-z0-9_-]+$/[_0x157d3c(0x1e5)](_0x4202fa)?!0x0:!/^\d+:\d+$/[_0x157d3c(0x1e5)](_0x4202fa);}function Yt({divider:_0x11129a,inputData:_0x1970b9}){const _0x23579f=a1_0x3c608e,_0xc5f9c7=$t(),{resolveString:_0xde6160}=j(),{result:_0x59634b,error:_0x3da341}=Ft(_0xc5f9c7,_0x11129a[_0x23579f(0x169)],_0x1970b9,{'throwOnError':!0x1}),_0xba10d=a1_0x3fa351(()=>_0x11129a?oe['string'](_0x11129a)?_0x11129a[_0x23579f(0x13c)]:oe[_0x23579f(0x95)](_0x11129a)&&_0x59634b?.['lindiv']?_0x59634b[_0x23579f(0xa2)]:'':'',[_0x11129a,_0x59634b]);return{'updatedDivider':a1_0x3fa351(()=>{const _0x40ce91=_0x23579f;if(_0x11129a)return _0x59634b?.[_0x40ce91(0xa2)]!=null?{..._0x11129a,'LINDIV1':Ut(_0xde6160(_0x59634b[_0x40ce91(0xa2)])),'articleName':_0xba10d}:{..._0x11129a,'LINDIV1':_0xde6160(_0x11129a[_0x40ce91(0xfd)])};},[_0x11129a,_0x59634b,_0xba10d,_0xde6160])};}const Wt={'width':{'rotation':[0x0,Math['PI']/0x2,0x0],'get3D':(_0x3b205d,_0xb26689)=>({'length':_0x3b205d['height'],'width':_0x3b205d[a1_0x3c608e(0x1e4)],'thk':_0xb26689}),'get2DTop':(_0x70f172,_0x5a37d)=>({'dim_x':_0x70f172[a1_0x3c608e(0x1e4)],'dim_y':_0x5a37d,'rotate':0x5a}),'get2DFront':(_0x13322c,_0x30b83d)=>({'dim_x':_0x13322c[a1_0x3c608e(0xab)],'dim_y':_0x30b83d,'rotate':0x5a})},'height':{'rotation':[0x0,0x0,0x0],'get3D':(_0x4a61fa,_0x27d241)=>({'length':_0x4a61fa[a1_0x3c608e(0x111)],'width':_0x4a61fa[a1_0x3c608e(0x1e4)],'thk':_0x27d241}),'get2DTop':_0x29bdbb=>({'dim_x':_0x29bdbb[a1_0x3c608e(0x111)],'dim_y':_0x29bdbb[a1_0x3c608e(0x1e4)]}),'get2DFront':(_0x553914,_0x5f1f1c)=>({'dim_x':_0x553914[a1_0x3c608e(0x111)],'dim_y':_0x5f1f1c})},'depth':{'rotation':[Math['PI']/0x2,0x0,Math['PI']/0x2],'get3D':(_0xc63feb,_0x3edb30)=>({'length':_0xc63feb[a1_0x3c608e(0xab)],'width':_0xc63feb[a1_0x3c608e(0x111)],'thk':_0x3edb30}),'get2DTop':(_0x16e22e,_0x5f2a26)=>({'dim_x':_0x16e22e[a1_0x3c608e(0x111)],'dim_y':_0x5f2a26}),'get2DFront':_0x1eb164=>({'dim_x':_0x1eb164[a1_0x3c608e(0x111)],'dim_y':_0x1eb164['height']})},'article':{'rotation':[0x0,0x0,0x0],'get3D':(_0x5a9b65,_0x78999a)=>({'length':_0x5a9b65[a1_0x3c608e(0x111)],'width':_0x5a9b65[a1_0x3c608e(0x1e4)],'thk':_0x78999a}),'get2DTop':_0x56883e=>({'dim_x':_0x56883e['width'],'dim_y':_0x56883e['depth']}),'get2DFront':(_0xd6b52b,_0x5506e1)=>({'dim_x':_0xd6b52b[a1_0x3c608e(0x111)],'dim_y':_0x5506e1})},'independent':{'rotation':[0x0,0x0,0x0],'get3D':(_0x185311,_0xe71faf)=>({'length':_0x185311['width'],'width':_0x185311[a1_0x3c608e(0x1e4)],'thk':_0xe71faf}),'get2DTop':_0x389a26=>({'dim_x':_0x389a26[a1_0x3c608e(0x111)],'dim_y':_0x389a26[a1_0x3c608e(0x1e4)]}),'get2DFront':(_0x39f080,_0xe6cedd)=>({'dim_x':_0x39f080[a1_0x3c608e(0x111)],'dim_y':_0xe6cedd})}},Xt=(_0x5d2bb5,_0x667d65,_0x243401)=>({'x':_0x5d2bb5===a1_0x3c608e(0x111)?_0x243401['width']/0x2+_0x667d65/0x2:0x0,'y':_0x5d2bb5===a1_0x3c608e(0x1e4)?_0x243401['depth']/0x2+_0x667d65/0x2:0x0,'z':_0x5d2bb5===a1_0x3c608e(0xab)?_0x243401[a1_0x3c608e(0xab)]/0x2+_0x667d65/0x2:0x0});function jt({divider:_0x1faca9,view:_0x30028e,childrenPositon:_0x426d3e,dividerThk:_0x4c6662}){const _0x3ae40a=a1_0x3c608e,_0x1843d0=a1_0x409691(F),_0x20d27f=_0x426d3e['dividerType'],_0x109f56=_0x426d3e[_0x3ae40a(0x1a5)],_0x1342d2=Wt[_0x20d27f];if(!_0x1843d0)return null;const {selectedElem:_0x39105c,setSelectedElem:_0x12057d,hoveredElem:_0x193fc1,setHoveredElem:_0xffbcfe}=_0x1843d0;return _0x109f56[_0x3ae40a(0xf3)]((_0x514aea,_0x4e8d8b)=>{const _0x11a532=_0x3ae40a,_0x461f56=!(_0x4e8d8b===_0x109f56[_0x11a532(0x13f)]-0x1)&&_0x4c6662!==0x0,_0xf5e0e4=Xt(_0x20d27f,_0x4c6662,_0x514aea[_0x11a532(0x1c1)]),_0x548e7a=_0x1342d2['get3D'](_0x514aea[_0x11a532(0x1c1)],_0x4c6662),_0x5c67d8=_0x30028e===x['_2D_TOP']?_0x1342d2[_0x11a532(0x210)](_0x514aea[_0x11a532(0x1c1)],_0x4c6662):_0x1342d2[_0x11a532(0x1e9)](_0x514aea[_0x11a532(0x1c1)],_0x4c6662),_0x5de6ff=_0x1faca9['TREEID']+'\x20divider',_0x4ff5e9=_0x39105c===_0x5de6ff,_0x47c5f2=_0x193fc1===_0x5de6ff;return a1_0x404de2(a1_0x3d7b58,{'children':a1_0x396ee5(J,{'view':_0x30028e,'position':[_0x514aea['x']/v,_0x514aea['y']/v,_0x514aea['z']/v],'children':[a1_0x404de2(J,{'view':_0x30028e,'position':[_0xf5e0e4['x']/v,_0xf5e0e4['y']/v,_0xf5e0e4['z']/v],'rotation':_0x1342d2[_0x11a532(0x108)],'children':_0x461f56&&a1_0x396ee5(a1_0x32a4ce,{'children':[a1_0x404de2(_0x11a532(0x12c),{'children':a1_0x396ee5(_0x11a532(0x118),{'children':[a1_0x404de2('boxGeometry',{'args':[_0x548e7a[_0x11a532(0x13f)],_0x548e7a['width'],_0x548e7a['thk']]}),a1_0x404de2(_0x11a532(0x232),{'color':'blue','transparent':!0x0,'opacity':0.3})]})}),_0x30028e===x['_3D']?a1_0x404de2(U,{..._0x548e7a,'opacity':0x1,'treeId':_0x5de6ff,'isSelected':_0x4ff5e9,'isHovered':_0x47c5f2,'onClick':()=>_0x12057d(_0x4ff5e9?null:_0x5de6ff),'onPointerEnter':()=>_0xffbcfe(_0x5de6ff),'onPointerLeave':()=>_0xffbcfe(null)}):a1_0x404de2(Z,{..._0x5c67d8,'text':_0x5de6ff,'treeId':_0x5de6ff,'isSelected':_0x4ff5e9,'isHovered':_0x47c5f2,'onClick':()=>_0x12057d(_0x4ff5e9?null:_0x5de6ff),'onMouseEnter':()=>_0xffbcfe(_0x5de6ff),'onMouseLeave':()=>_0xffbcfe(null)})]})}),a1_0x404de2(ze,{'TREEID':_0x514aea[_0x11a532(0xe8)],'dimension':_0x514aea[_0x11a532(0x1c1)],'view':_0x30028e})]})},_0x4e8d8b);});}function qt({view:_0x2fb4bb,remainingZone:_0x347528,articleName:_0x560a1b}){const _0x40e00d=a1_0x3c608e;return a1_0x404de2(be,{'articleName':_0x560a1b,'dimensionOverrides':{'width':_0x347528[_0x40e00d(0x16d)][_0x40e00d(0x111)],'height':_0x347528['dimensions'][_0x40e00d(0xab)],'depth':_0x347528[_0x40e00d(0x16d)][_0x40e00d(0x1e4)]},'children':a1_0x404de2(J,{'view':_0x2fb4bb,'position':[_0x347528[_0x40e00d(0x148)]['x']/v,_0x347528['position']['y']/v,_0x347528[_0x40e00d(0x148)]['z']/v],'children':a1_0x404de2(Ge,{'view':_0x2fb4bb})})});}function Jt({childrenPositon:_0x168bc9,dividerThk:_0x32b3c7,divider:_0x28f44f,view:_0x27a34b,remainingZone:_0x3d4a18}){const _0x3c03bc=a1_0x3c608e;if(ye[_0x3c03bc(0x1b4)](_0x28f44f))return _0x168bc9?a1_0x404de2(jt,{'view':_0x27a34b,'childrenPositon':_0x168bc9,'dividerThk':_0x32b3c7,'divider':_0x28f44f,'remainingZone':_0x3d4a18}):null;if(ye[_0x3c03bc(0x231)](_0x28f44f)){const _0x4ca57e=oe[_0x3c03bc(0x1f8)](_0x28f44f)?_0x28f44f['articleName']:_0x28f44f[_0x3c03bc(0xfd)];return!_0x3d4a18||_0x4ca57e===''?null:a1_0x404de2(qt,{'view':_0x27a34b,'articleName':_0x4ca57e,'remainingZone':_0x3d4a18});}return null;}function Fe(){const _0x209cd4=a1_0x3c608e,{getArticleData:_0x5b7b5f}=Q(),{articleName:_0x18acf9,dimensionOverrides:_0x435951}=ee(),{resolveString:_0x291695}=j(),{anglPrims:_0x15fedf}=_0x5b7b5f(_0x18acf9);if(_0x15fedf[_0x209cd4(0x13f)]===0x0)throw new Error(_0x209cd4(0x216)+_0x18acf9);const _0x5e1150=_0x15fedf[0x0],_0x4f2e9e=(_0x3c390b,_0x161d7e)=>{const _0x1e8b3c=typeof _0x3c390b=='string'&&_0x3c390b!==''?se(_0x291695(_0x3c390b)):_0x161d7e;return parseFloat(String(_0x1e8b3c))||0x0;},_0x224fe2={'width':_0x435951?.['width']??_0x4f2e9e(_0x5e1150['DIMCALCFX'],_0x5e1150[_0x209cd4(0xff)]),'height':_0x435951?.[_0x209cd4(0xab)]??_0x4f2e9e(_0x5e1150['DIMCALCFZ'],_0x5e1150[_0x209cd4(0x101)]),'depth':_0x435951?.[_0x209cd4(0x1e4)]??_0x4f2e9e(_0x5e1150[_0x209cd4(0x124)],_0x5e1150[_0x209cd4(0x189)])};return{'current_prim':_0x5e1150,'prim_dims':_0x224fe2};}function ze({TREEID:_0x4f432c,dimension:_0x13fe37,view:_0x39420e=x[a1_0x3c608e(0x1d6)]}){const _0x233be5=a1_0x3c608e;console[_0x233be5(0x94)](_0x233be5(0xd4)+_0x4f432c+'\x20=====================================');const _0xddcca9=ue(_0x4f432c),_0x33d3d2=_0xddcca9?.[_0x233be5(0x136)](),_0x27c144=_0xddcca9?.['dividerThk']||0x0,_0x12e829=Fe(),_0x4075e0=yt(_0x4f432c),_0x4f56f8=It(_0x4075e0,_0xddcca9?.[_0x233be5(0x20d)]||0x0,_0xddcca9?.[_0x233be5(0x13b)]||0x0),_0x637f88=_t(_0x4075e0),_0x2cfdba=bt(_0x13fe37,_0x637f88),_0x2c7fb0=kt(_0x2cfdba,_0x4f56f8),_0x5dde94=a1_0x3fa351(()=>{const _0x4a2933=_0x233be5;if(_0xddcca9)return q[_0x4a2933(0x121)](_0xddcca9['currentZone'],_0x27c144);},[_0xddcca9,_0x27c144]),_0xb995c4=_0x33d3d2?Object[_0x233be5(0x22b)](_0x33d3d2):{},_0x5c5940=Gt(_0x5dde94),_0x1acadc=Bt(_0x5c5940,_0x2c7fb0[_0x233be5(0x16d)]);_0xb995c4['AD\x20article\x20width']=_0x12e829?.[_0x233be5(0x20c)][_0x233be5(0x111)]['toString'](),_0xb995c4[_0x233be5(0x19f)]=_0x12e829?.[_0x233be5(0x20c)]['height'][_0x233be5(0xd2)](),_0xb995c4[_0x233be5(0x199)]=_0x12e829?.[_0x233be5(0x20c)]['depth'][_0x233be5(0xd2)](),_0xb995c4[0x0]='0',_0xb995c4['X']=_0x1acadc['toString']();const _0x3d7d1f=_0x5dde94?zt['descriptor'](_0x5dde94):!0x1,_0x469a5d=_0x5dde94?oe['descriptor'](_0x5dde94):!0x1,_0xfed262=_0x3d7d1f||_0x469a5d?Yt({'divider':_0x5dde94,'inputData':_0xb995c4})[_0x233be5(0x12b)]:_0x5dde94,_0x279a99=Dt(_0x2c7fb0,_0x27c144,_0xfed262,_0xddcca9?.[_0x233be5(0x1eb)][_0x233be5(0xf3)](_0x32f99c=>_0x32f99c['TREEID'])||[]);return(_0x4f432c==='0'||_0x4f432c==='0')&&(console[_0x233be5(0x94)](_0x233be5(0x12a),_0x13fe37),console[_0x233be5(0x94)](_0x233be5(0x1bb),_0x637f88),console[_0x233be5(0x94)](_0x233be5(0x9c),_0x4f56f8),console[_0x233be5(0x94)]('zone\x20dimensions\x20',_0x2cfdba['dimensions']),console[_0x233be5(0x94)]('position\x20=>\x20',_0x2cfdba['position']),console[_0x233be5(0x94)](_0x233be5(0x1fb),_0x2c7fb0[_0x233be5(0x16d)]),console['log'](_0x233be5(0x16c),_0x2c7fb0[_0x233be5(0x148)])),a1_0x404de2(a1_0x32a4ce,{'children':a1_0x396ee5(J,{'view':_0x39420e,'position':[_0x2cfdba[_0x233be5(0x148)]['x']/v,_0x2cfdba[_0x233be5(0x148)]['y']/v,_0x2cfdba[_0x233be5(0x148)]['z']/v],'children':[_0x4075e0[_0x233be5(0x11c)]?.['CPNAME']&&a1_0x404de2(Ct,{'view':_0x39420e,'TREEID':Oe(_0x4f432c),'dimension':_0x2cfdba[_0x233be5(0x16d)],'helper':_0x4075e0}),_0x4075e0['left']?.['CPNAME']&&a1_0x404de2(Lt,{'view':_0x39420e,'TREEID':Re(_0x4f432c),'dimension':_0x2cfdba[_0x233be5(0x16d)],'helper':_0x4075e0}),_0x4075e0[_0x233be5(0x225)]?.['CPNAME']&&a1_0x404de2(Ot,{'view':_0x39420e,'TREEID':Ve(_0x4f432c),'dimension':_0x2cfdba[_0x233be5(0x16d)],'helper':_0x4075e0}),_0x4075e0['right']?.[_0x233be5(0x207)]&&a1_0x404de2(Pt,{'view':_0x39420e,'TREEID':Pe(_0x4f432c),'dimension':_0x2cfdba[_0x233be5(0x16d)],'helper':_0x4075e0}),_0xddcca9?.[_0x233be5(0x18f)]&&a1_0x404de2(Vt,{'view':_0x39420e,'TREEID':_0x4f432c,'dimension':_0x2cfdba['dimensions'],'helper':_0x4075e0}),_0xddcca9?.[_0x233be5(0x206)]&&a1_0x404de2(Rt,{'view':_0x39420e,'TREEID':_0x4f432c,'dimension':_0x2cfdba[_0x233be5(0x16d)],'helper':_0x4075e0}),a1_0x404de2(J,{'view':_0x39420e,'position':[_0x2c7fb0[_0x233be5(0x148)]['x']/v,_0x2c7fb0[_0x233be5(0x148)]['y']/v,_0x2c7fb0[_0x233be5(0x148)]['z']/v],'children':_0xfed262&&a1_0x404de2(Jt,{'remainingZone':_0x2c7fb0,'divider':_0xfed262,'view':_0x39420e,'childrenPositon':_0x279a99,'dividerThk':_0x27c144})})]})});}const Qt=a1_0x3c608e(0x21e);function Ge({view:_0x2b80e1=x['_3D']}){const _0x207d00=a1_0x3c608e;console[_0x207d00(0x94)]('=========================================================\x20\x20Designer\x20\x20\x20===============================================================================================');const _0x473d89=Fe()[_0x207d00(0x20c)],_0x2b7eeb=a1_0x404de2(ze,{'TREEID':'0','view':_0x2b80e1,'dimension':_0x473d89}),_0x4c361f=_0x2b80e1===x[_0x207d00(0x1d6)]?_0x2b7eeb:a1_0x404de2('g',{'transform':Qt,'children':_0x2b7eeb});return console[_0x207d00(0x94)](_0x4c361f),_0x4c361f;}function ar({view:_0x2ca1cb,data:_0x3ef9d4,articleName:_0x15ba0c}){const _0x4bd1d3=a1_0x3c608e,_0x5011ae=_0x3ef9d4[_0x4bd1d3(0x21b)],_0x44f847=_0x3ef9d4['variables'],_0x545ac5=_0x3ef9d4[_0x4bd1d3(0xa3)][_0x4bd1d3(0xf3)](_0x433560=>_0x433560[_0x4bd1d3(0xc3)]);return a1_0x404de2(a1_0x32a4ce,{'children':a1_0x404de2(We,{'names':_0x545ac5,'data':_0x3ef9d4,'children':a1_0x404de2(be,{'articleName':_0x15ba0c,'children':a1_0x404de2(je,{'imosVariables':_0x44f847,'children':a1_0x404de2(it,{'descriptorData':_0x5011ae,'children':a1_0x404de2(Ge,{'view':_0x2ca1cb})})})})})});}function or(){const _0x272553=a1_0x3c608e,{tree:_0xa17b21,getValue:_0x53c238,setValue:_0x527b85}=j(),_0x1e7f42=(_0x522415,_0x5e492e)=>{const _0x5b81e5=Number(_0x5e492e);_0x527b85(_0x522415,isNaN(_0x5b81e5)?_0x5e492e:_0x5b81e5);},_0x485ef3=((()=>{const _0x3e896d=a1_0x5acd,_0x490750={[P[_0x3e896d(0x19a)]]:{'type':P[_0x3e896d(0x19a)],'label':_0x3e896d(0x203),'variables':[]},[P[_0x3e896d(0xa0)]]:{'type':P[_0x3e896d(0xa0)],'label':_0x3e896d(0x100),'variables':[]},[P[_0x3e896d(0x229)]]:{'type':P[_0x3e896d(0x229)],'label':_0x3e896d(0xd6),'variables':[]},[P[_0x3e896d(0x1c9)]]:{'type':P[_0x3e896d(0x1c9)],'label':_0x3e896d(0x1c9),'variables':[]}};return Array['from'](_0xa17b21[_0x3e896d(0x126)]())[_0x3e896d(0x12f)](([_0x75ac2b,_0x3a13e8])=>{const _0x269a93=_0x3e896d,_0x3a06a3=_0x53c238(_0x75ac2b),_0x3720f2=_0x3a13e8[_0x269a93(0x1d1)][_0x269a93(0x1cd)]('$');_0x490750[_0x3a13e8['TYP']]?.[_0x269a93(0xf7)]['push']({'name':_0x75ac2b,'value':_0x3a06a3??_0x269a93(0xdb),'reference':_0x3720f2?_0x3a13e8[_0x269a93(0x1d1)]:void 0x0,'rawType':_0x3a13e8[_0x269a93(0x152)]});}),Object[_0x3e896d(0x200)](_0x490750)['filter'](_0x4af70e=>_0x4af70e[_0x3e896d(0xf7)]['length']>0x0);})()),_0x176ba4=_0x51d39d=>{const _0x4a8dec=a1_0x5acd,_0x42e015=_0x51d39d[_0x4a8dec(0x1f0)]===P[_0x4a8dec(0x19a)],_0x13a87b=typeof _0x51d39d['value']==_0x4a8dec(0xaa)?_0x51d39d[_0x4a8dec(0x22a)]:Number(_0x51d39d[_0x4a8dec(0x22a)]);return _0x42e015&&!isNaN(_0x13a87b)?a1_0x396ee5('div',{'className':_0x4a8dec(0x11f),'children':[a1_0x404de2(_0x4a8dec(0x173),{'type':'range','min':0x0,'max':0x4e20,'value':_0x13a87b,'onChange':_0x1c1641=>_0x1e7f42(_0x51d39d[_0x4a8dec(0x168)],_0x1c1641['target'][_0x4a8dec(0x22a)]),'className':'var-controller__slider'}),a1_0x404de2(_0x4a8dec(0x173),{'type':_0x4a8dec(0xaa),'value':_0x13a87b,'onChange':_0x55b69d=>_0x1e7f42(_0x51d39d['name'],_0x55b69d[_0x4a8dec(0x160)][_0x4a8dec(0x22a)]),'onBlur':_0x33558e=>_0x1e7f42(_0x51d39d[_0x4a8dec(0x168)],_0x33558e[_0x4a8dec(0x160)][_0x4a8dec(0x22a)]),'className':_0x4a8dec(0x1a1),'min':0x0,'max':0x4e20})]}):a1_0x404de2('input',{'type':'text','value':_0x51d39d['value'],'onChange':_0x5e64b2=>_0x1e7f42(_0x51d39d[_0x4a8dec(0x168)],_0x5e64b2[_0x4a8dec(0x160)][_0x4a8dec(0x22a)]),'onBlur':_0x130c89=>_0x1e7f42(_0x51d39d[_0x4a8dec(0x168)],_0x130c89[_0x4a8dec(0x160)][_0x4a8dec(0x22a)]),'className':'var-controller__text-input'});};return a1_0x396ee5(_0x272553(0x1aa),{'className':_0x272553(0xcd),'children':[a1_0x404de2('h2',{'children':_0x272553(0x183)}),a1_0x396ee5('p',{'className':_0x272553(0x1dc),'children':[_0x272553(0x196),_0xa17b21[_0x272553(0xa9)]]}),_0x485ef3[_0x272553(0xf3)](_0x5a039f=>a1_0x396ee5(_0x272553(0x154),{'className':_0x272553(0x1e8),'children':[a1_0x396ee5('h3',{'className':'var-controller__section-title','children':[_0x5a039f['label'],'\x20(',_0x5a039f['variables'][_0x272553(0x13f)],')']}),a1_0x396ee5('table',{'className':_0x272553(0xbc),'children':[a1_0x404de2(_0x272553(0x1f3),{'children':a1_0x396ee5('tr',{'children':[a1_0x404de2('th',{'style':{'width':_0x272553(0x1b2)},'children':_0x272553(0x1be)}),a1_0x404de2('th',{'style':{'width':_0x272553(0xc8)},'children':_0x272553(0x1d2)}),a1_0x404de2('th',{'style':{'width':_0x272553(0x1b2)},'children':_0x272553(0xd0)}),a1_0x404de2('th',{'className':'center','style':{'width':'15%'},'children':_0x272553(0xd5)})]})}),a1_0x404de2(_0x272553(0x1f5),{'children':_0x5a039f[_0x272553(0xf7)][_0x272553(0xf3)](_0xc334c0=>a1_0x396ee5('tr',{'children':[a1_0x404de2('td',{'className':_0x272553(0x11e),'children':_0xc334c0['name']}),a1_0x404de2('td',{'children':_0x176ba4(_0xc334c0)}),a1_0x404de2('td',{'className':_0x272553(0x137),'children':_0xc334c0[_0x272553(0x1ef)]||'-'}),a1_0x404de2('td',{'style':{'textAlign':_0x272553(0xca)},'children':a1_0x404de2('span',{'className':_0x272553(0x1c4),'children':_0x5a039f['type']})})]},_0xc334c0['name']))})]})]},_0x5a039f[_0x272553(0x186)])),a1_0x396ee5('section',{'className':'var-controller__stats','children':[a1_0x404de2('h4',{'children':_0x272553(0x1ad)}),a1_0x404de2('ul',{'children':_0x485ef3[_0x272553(0xf3)](_0x3509e0=>a1_0x396ee5('li',{'children':[_0x3509e0[_0x272553(0xae)],':\x20',_0x3509e0[_0x272553(0xf7)]['length'],_0x272553(0x14e)]},_0x3509e0[_0x272553(0x186)]))})]})]});}const lr='1.0.0';export{_e as ArticleContext,ar as ArticleDesigner,be as ArticleProvider,F as DataContext,We as DataProvider,De as DescriptorContext,it as DescriptorProvider,Ge as Designer,lr as VERSION,x as VIEW,or as VarController,ke as VariableContext,je as VariableProvider,nr as VariableResolver,ze as Zone,Yt as ZoneDescriptor,ee as useArticle,Q as useData,Ft as useDescriptorEvaluation,$t as useDescriptorManager,sr as useDescriptorMatches,j as useVariables};
|