@diagrammo/dgmo 0.46.0 → 0.47.0
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/advanced.d.cts +3 -855
- package/dist/advanced.d.ts +3 -855
- package/dist/advanced.js +541 -70107
- package/dist/analyzer-UYKBXAKR.js +15 -0
- package/dist/auto.cjs +1 -1
- package/dist/auto.js +1 -1
- package/dist/auto.mjs +1 -1
- package/dist/block.js +83 -69417
- package/dist/calculator-LDYQCDDY.js +11 -0
- package/dist/charts-d3-QOZHKTCT.js +25 -0
- package/dist/chunk-2DXMZRWJ.js +800 -0
- package/dist/chunk-2LACINWN.js +786 -0
- package/dist/chunk-33LCUH4H.js +893 -0
- package/dist/chunk-3CIOJ5YJ.js +35 -0
- package/dist/chunk-3HDBAXF5.js +86 -0
- package/dist/chunk-3JLKYGBQ.js +290 -0
- package/dist/chunk-3MQQNXPD.js +415 -0
- package/dist/chunk-3R5POCTZ.js +967 -0
- package/dist/chunk-3SMGIJDD.js +112 -0
- package/dist/chunk-44CM72SQ.js +409 -0
- package/dist/chunk-4GRI7MEB.js +1604 -0
- package/dist/chunk-4OHACBGX.js +606 -0
- package/dist/chunk-5DH3KYFH.js +21 -0
- package/dist/chunk-5MLYVTYM.js +76 -0
- package/dist/chunk-5QXL4NYS.js +553 -0
- package/dist/chunk-5WRI5ZAA.js +31 -0
- package/dist/chunk-6EK55ART.js +117 -0
- package/dist/chunk-6FZYCKXB.js +2065 -0
- package/dist/chunk-6HO5ZTXK.js +277 -0
- package/dist/chunk-6KFWC4CO.js +7 -0
- package/dist/chunk-6MTWIQVO.js +121 -0
- package/dist/chunk-6NYWYNBI.js +329 -0
- package/dist/chunk-6SM5NJQH.js +620 -0
- package/dist/chunk-725LDASD.js +422 -0
- package/dist/chunk-76OWZ3BA.js +130 -0
- package/dist/chunk-7JEGTRLD.js +338 -0
- package/dist/chunk-A44USUV7.js +923 -0
- package/dist/chunk-A4GOY3PE.js +25 -0
- package/dist/chunk-A4VFQH5G.js +251 -0
- package/dist/chunk-AELOBFW5.js +375 -0
- package/dist/chunk-AN2MOO5T.js +522 -0
- package/dist/chunk-BMR4CIEO.js +41 -0
- package/dist/chunk-BS7SV7C3.js +51 -0
- package/dist/chunk-BUPDIHML.js +613 -0
- package/dist/chunk-BUVJFRPY.js +887 -0
- package/dist/chunk-C3Z4DX3V.js +112 -0
- package/dist/chunk-CI2G3OEB.js +1818 -0
- package/dist/chunk-CKNVO24D.js +54 -0
- package/dist/chunk-CUVHQHZ7.js +391 -0
- package/dist/chunk-CXK4DZH3.js +114 -0
- package/dist/chunk-DKEPS5LH.js +315 -0
- package/dist/chunk-DU7W62N5.js +487 -0
- package/dist/chunk-DZAQBW35.js +751 -0
- package/dist/chunk-EB6FPQUP.js +316 -0
- package/dist/chunk-EMS2SK26.js +376 -0
- package/dist/chunk-ERLBPDGU.js +510 -0
- package/dist/chunk-EVCVDTXE.js +732 -0
- package/dist/chunk-FCIIHT24.js +384 -0
- package/dist/chunk-FFUN5D66.js +97 -0
- package/dist/chunk-FITOLXSX.js +714 -0
- package/dist/chunk-FMDSF3OV.js +68 -0
- package/dist/chunk-FNB3PNGF.js +410 -0
- package/dist/chunk-G2H74XJZ.js +2104 -0
- package/dist/chunk-GMR5MFHJ.js +339 -0
- package/dist/chunk-H6PI3KJT.js +305 -0
- package/dist/chunk-I46X5VUA.js +59 -0
- package/dist/chunk-I5IGB56C.js +255 -0
- package/dist/chunk-IH6ZMVQ5.js +3950 -0
- package/dist/chunk-IJZFN3HM.js +463 -0
- package/dist/chunk-IPWPWM6R.js +3079 -0
- package/dist/chunk-IYULMRBE.js +23 -0
- package/dist/chunk-IZMRON6C.js +167 -0
- package/dist/chunk-J5FIXQRT.js +813 -0
- package/dist/chunk-JED6ZDEE.js +73 -0
- package/dist/chunk-JEUJOX5X.js +136 -0
- package/dist/chunk-JM4LEPY3.js +436 -0
- package/dist/chunk-L3UHP6TD.js +101 -0
- package/dist/chunk-L66GEFB6.js +524 -0
- package/dist/chunk-LIOHW36Z.js +469 -0
- package/dist/chunk-LP7EC4MI.js +16 -0
- package/dist/chunk-MITI6NOL.js +548 -0
- package/dist/chunk-MO5YHHMQ.js +168 -0
- package/dist/chunk-MZSBFAPJ.js +885 -0
- package/dist/chunk-NNAAJVBU.js +9 -0
- package/dist/chunk-NOTA6TEI.js +47 -0
- package/dist/chunk-NURGB5Z4.js +335 -0
- package/dist/chunk-NX4EQS3U.js +1062 -0
- package/dist/chunk-NXMESY4J.js +1 -0
- package/dist/chunk-OJR3MQYV.js +1458 -0
- package/dist/chunk-OURHMODR.js +454 -0
- package/dist/chunk-P235SVAH.js +1057 -0
- package/dist/chunk-P4RH4OSP.js +1038 -0
- package/dist/chunk-P6T66CCZ.js +226 -0
- package/dist/chunk-PBAHEPLQ.js +223 -0
- package/dist/chunk-PBHE5UG6.js +1530 -0
- package/dist/chunk-PDKUANDZ.js +35 -0
- package/dist/chunk-PWIHZ6NJ.js +296 -0
- package/dist/chunk-QEBUY5NY.js +1685 -0
- package/dist/chunk-QLCCJEJI.js +253 -0
- package/dist/chunk-QOOUC2J5.js +52 -0
- package/dist/chunk-QYTPPDAO.js +402 -0
- package/dist/chunk-R3XI2VC7.js +801 -0
- package/dist/chunk-RCERWOJR.js +154 -0
- package/dist/chunk-RJE5JTVK.js +362 -0
- package/dist/chunk-RTLBSQ3G.js +1155 -0
- package/dist/chunk-RUNNI6VE.js +448 -0
- package/dist/chunk-RVMRZAPB.js +354 -0
- package/dist/chunk-RYEGFMUO.js +955 -0
- package/dist/chunk-RZCF2VVM.js +528 -0
- package/dist/chunk-SML67VPV.js +1025 -0
- package/dist/chunk-SQ7IY53Q.js +44 -0
- package/dist/chunk-SQAG3UXH.js +161 -0
- package/dist/chunk-SRTU6HMQ.js +1851 -0
- package/dist/chunk-T2OE3YQB.js +550 -0
- package/dist/chunk-T3UBLACL.js +299 -0
- package/dist/chunk-TLVIHFRO.js +296 -0
- package/dist/chunk-TYS6CSS5.js +52 -0
- package/dist/chunk-U6EQI3U6.js +130 -0
- package/dist/chunk-UJ4FJLBF.js +86 -0
- package/dist/chunk-ULOEATBZ.js +347 -0
- package/dist/chunk-UNCCZ3NU.js +127 -0
- package/dist/chunk-USZW2HHU.js +197 -0
- package/dist/chunk-UWN33VNX.js +1610 -0
- package/dist/chunk-UZ7EZW3B.js +40 -0
- package/dist/chunk-VOKGH627.js +37 -0
- package/dist/chunk-WBRZJOEC.js +204 -0
- package/dist/chunk-WCSOJFU3.js +380 -0
- package/dist/chunk-WCT3NYCV.js +160 -0
- package/dist/chunk-WVAJFAIA.js +529 -0
- package/dist/chunk-X5LCYCL5.js +394 -0
- package/dist/chunk-XAKEUMEJ.js +1256 -0
- package/dist/chunk-Y2ZE3MSG.js +590 -0
- package/dist/chunk-Y3J7VR52.js +646 -0
- package/dist/chunk-Y5QGVTVC.js +33 -0
- package/dist/chunk-YAA6IID3.js +548 -0
- package/dist/chunk-YGJTDXVR.js +692 -0
- package/dist/chunk-YRYKTYMQ.js +186 -0
- package/dist/chunk-YYVTBZZC.js +61 -0
- package/dist/chunk-Z5CGSFJB.js +647 -0
- package/dist/chunk-Z72XRXD4.js +787 -0
- package/dist/chunk-ZGR7ULFJ.js +978 -0
- package/dist/chunk-ZJEL4H2R.js +851 -0
- package/dist/chunk-ZO27FGJS.js +554 -0
- package/dist/collapse-CLPJD2RL.js +11 -0
- package/dist/collapse-SLINJQW6.js +9 -0
- package/dist/collapse-ZWUFFCK2.js +9 -0
- package/dist/compute-G55RG53N.js +8 -0
- package/dist/dgmo-router-DZCIDUO5.js +73 -0
- package/dist/dimensions-J3FHIMJ6.js +22 -0
- package/dist/element.cjs +1 -1
- package/dist/element.js +1 -1
- package/dist/element.mjs +1 -1
- package/dist/flowchart-parser-ZNSKIBVR.js +21 -0
- package/dist/flowchart-renderer-ZAEOL4DX.js +35 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +3 -469
- package/dist/index.d.ts +3 -469
- package/dist/index.js +137 -69685
- package/dist/layout-46N4JJYK.js +17 -0
- package/dist/layout-5RA6QWR6.js +26 -0
- package/dist/layout-5T6RH5M6.js +14 -0
- package/dist/layout-7QXCNOVS.js +13 -0
- package/dist/layout-EE6GE46Y.js +17 -0
- package/dist/layout-G23F7LDH.js +9 -0
- package/dist/layout-HRBZPFCN.js +23 -0
- package/dist/layout-HWDSRX5E.js +20 -0
- package/dist/layout-HYZPWAK5.js +18 -0
- package/dist/layout-N76NR4ZO.js +19 -0
- package/dist/layout-OB3RI63S.js +14 -0
- package/dist/layout-S2QBYSK2.js +15 -0
- package/dist/layout-UM5F4DJB.js +15 -0
- package/dist/layout-search-OYV77HHS.js +1655 -0
- package/dist/load-data-EHDDZ5ZS.js +8 -0
- package/dist/palettes-PRJ2RI6D.js +56 -0
- package/dist/parser-2MFP2H2E.js +11 -0
- package/dist/parser-3STE62GB.js +21 -0
- package/dist/parser-4FL2CMDG.js +18 -0
- package/dist/parser-4OGOBJJ4.js +13 -0
- package/dist/parser-6BTRLKRZ.js +15 -0
- package/dist/parser-AQETEVRW.js +21 -0
- package/dist/parser-CFZD5IBL.js +12 -0
- package/dist/parser-FUSKFGZN.js +16 -0
- package/dist/parser-I6KXEYFK.js +13 -0
- package/dist/parser-IXSZZQHY.js +18 -0
- package/dist/parser-JAL2HD4I.js +13 -0
- package/dist/parser-KNSQSKQO.js +20 -0
- package/dist/parser-N5O4IHUN.js +13 -0
- package/dist/parser-NGU3ETO6.js +16 -0
- package/dist/parser-NRAI6O25.js +19 -0
- package/dist/parser-O5J4VBII.js +11 -0
- package/dist/parser-OV7NOBW6.js +21 -0
- package/dist/parser-PQ3POX45.js +23 -0
- package/dist/parser-TFZFBVWN.js +11 -0
- package/dist/parser-TRTHDFPP.js +18 -0
- package/dist/parser-VQP2UJ6W.js +11 -0
- package/dist/parser-XDVELHRK.js +13 -0
- package/dist/parser-XKRP7QKP.js +11 -0
- package/dist/parser-Y6WTBU76.js +14 -0
- package/dist/parser-ZSDPZYQP.js +12 -0
- package/dist/renderer-2XQQQ6QR.js +28 -0
- package/dist/renderer-5NDVNDAZ.js +26 -0
- package/dist/renderer-6EEZHMH4.js +26 -0
- package/dist/renderer-6W5462RB.js +43 -0
- package/dist/renderer-7MVLWWQD.js +22 -0
- package/dist/renderer-AWWAF6XD.js +33 -0
- package/dist/renderer-BYCNMBF7.js +34 -0
- package/dist/renderer-CLJHQPBJ.js +29 -0
- package/dist/renderer-GHPZMFU2.js +15 -0
- package/dist/renderer-JGBKUCZD.js +16 -0
- package/dist/renderer-KQB7UGDS.js +19 -0
- package/dist/renderer-PGX2TKVS.js +24 -0
- package/dist/renderer-QIWVHWZO.js +15 -0
- package/dist/renderer-RPOA5YPZ.js +35 -0
- package/dist/renderer-SMIBCRVB.js +24 -0
- package/dist/renderer-T7YKC5VP.js +28 -0
- package/dist/renderer-TOCOVLHS.js +37 -0
- package/dist/renderer-UWA5XS74.js +39 -0
- package/dist/renderer-VACVQYML.js +25 -0
- package/dist/renderer-W4M6QLIJ.js +37 -0
- package/dist/renderer-WZRREQ2P.js +23 -0
- package/dist/renderer-YY2OSF6E.js +27 -0
- package/dist/renderer-Z7I3W2PP.js +24 -0
- package/dist/renderer-ZGNTUWC4.js +22 -0
- package/dist/renderer-ZTR3DER3.js +19 -0
- package/dist/renderer-radial-C32GPJQ7.js +21 -0
- package/dist/resolver-NOAA7ID7.js +13 -0
- package/dist/state-collapse-HCGD6IVJ.js +8 -0
- package/dist/state-parser-Z2V23ATR.js +18 -0
- package/dist/state-renderer-RFYHSP4K.js +34 -0
- package/dist/themes-1-CuKpeH.d.cts +908 -0
- package/dist/themes-1-CuKpeH.d.ts +908 -0
- package/package.json +1 -1
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import {
|
|
2
|
+
stripQuotes,
|
|
3
|
+
tokenizeQuoteAware
|
|
4
|
+
} from "./chunk-Y3J7VR52.js";
|
|
5
|
+
import {
|
|
6
|
+
CATEGORICAL_COLOR_ORDER,
|
|
7
|
+
RECOGNIZED_COLOR_NAMES,
|
|
8
|
+
resolveColor
|
|
9
|
+
} from "./chunk-TLVIHFRO.js";
|
|
10
|
+
|
|
11
|
+
// src/utils/tag-groups.ts
|
|
12
|
+
function tagAttrKey(name) {
|
|
13
|
+
return name.trim().toLowerCase().replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "");
|
|
14
|
+
}
|
|
15
|
+
function stripDefaultModifier(text) {
|
|
16
|
+
if (/\bdefault\s*$/.test(text)) {
|
|
17
|
+
return { text: text.replace(/\s+default\s*$/, "").trim(), isDefault: true };
|
|
18
|
+
}
|
|
19
|
+
return { text, isDefault: false };
|
|
20
|
+
}
|
|
21
|
+
var AUTO_TAG_COLOR_SENTINEL = "";
|
|
22
|
+
var autoTagColorCycle = CATEGORICAL_COLOR_ORDER;
|
|
23
|
+
function assignAutoTagColors(group, palette) {
|
|
24
|
+
const entries = group.entries;
|
|
25
|
+
const explicitHexes = /* @__PURE__ */ new Set();
|
|
26
|
+
let hasSentinel = false;
|
|
27
|
+
for (const e of entries) {
|
|
28
|
+
if (e.color === AUTO_TAG_COLOR_SENTINEL) hasSentinel = true;
|
|
29
|
+
else explicitHexes.add(e.color.toLowerCase());
|
|
30
|
+
}
|
|
31
|
+
if (!hasSentinel) return;
|
|
32
|
+
const cycle = autoTagColorCycle.map((name) => ({
|
|
33
|
+
name,
|
|
34
|
+
hex: resolveColor(name, palette) ?? name
|
|
35
|
+
}));
|
|
36
|
+
const autoHexes = /* @__PURE__ */ new Set();
|
|
37
|
+
for (let i = 0; i < entries.length; i++) {
|
|
38
|
+
const e = entries[i];
|
|
39
|
+
if (e.color !== AUTO_TAG_COLOR_SENTINEL) continue;
|
|
40
|
+
let chosen = cycle.find(
|
|
41
|
+
(c) => !explicitHexes.has(c.hex.toLowerCase()) && !autoHexes.has(c.hex.toLowerCase())
|
|
42
|
+
);
|
|
43
|
+
if (!chosen) {
|
|
44
|
+
chosen = cycle[autoHexes.size % cycle.length];
|
|
45
|
+
}
|
|
46
|
+
autoHexes.add(chosen.hex.toLowerCase());
|
|
47
|
+
entries[i] = { ...e, color: chosen.hex };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function finalizeAutoTagColors(groups, palette) {
|
|
51
|
+
for (const g of groups) assignAutoTagColors(g, palette);
|
|
52
|
+
}
|
|
53
|
+
var TAG_BLOCK_NOCOLON_RE = /^tag\s+/i;
|
|
54
|
+
function isAliasToken(token) {
|
|
55
|
+
return /^[A-Za-z][A-Za-z0-9_]{0,11}$/.test(token);
|
|
56
|
+
}
|
|
57
|
+
function isTagBlockHeading(trimmed) {
|
|
58
|
+
return TAG_BLOCK_NOCOLON_RE.test(trimmed);
|
|
59
|
+
}
|
|
60
|
+
function parseTagDeclaration(line) {
|
|
61
|
+
if (!TAG_BLOCK_NOCOLON_RE.test(line)) return null;
|
|
62
|
+
const afterTag = line.replace(/^tag\s+/i, "");
|
|
63
|
+
if (!afterTag.trim()) return null;
|
|
64
|
+
const tokens = tokenizeQuoteAware(afterTag);
|
|
65
|
+
if (tokens.length === 0) return null;
|
|
66
|
+
let name;
|
|
67
|
+
let alias;
|
|
68
|
+
let inlineValues;
|
|
69
|
+
let colorHint;
|
|
70
|
+
let restStartIdx;
|
|
71
|
+
let valueStart = tokens.length;
|
|
72
|
+
for (let i = 1; i < tokens.length; i++) {
|
|
73
|
+
if (tokens[i].includes(",")) {
|
|
74
|
+
valueStart = i;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
let keywordIdx = -1;
|
|
79
|
+
for (let i = 1; i < valueStart; i++) {
|
|
80
|
+
if (tokens[i].toLowerCase() === "as") {
|
|
81
|
+
keywordIdx = i;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (keywordIdx > 0 && keywordIdx + 1 < tokens.length && isAliasToken(tokens[keywordIdx + 1])) {
|
|
86
|
+
name = tokens.slice(0, keywordIdx).map((t) => stripQuotes(t)).join(" ");
|
|
87
|
+
alias = tokens[keywordIdx + 1];
|
|
88
|
+
restStartIdx = keywordIdx + 2;
|
|
89
|
+
} else {
|
|
90
|
+
let prefixEnd = valueStart;
|
|
91
|
+
if (valueStart < tokens.length) {
|
|
92
|
+
const isColorWord = (s) => RECOGNIZED_COLOR_NAMES.includes(s);
|
|
93
|
+
const lastBeforeComma = tokens[valueStart].replace(/,$/, "");
|
|
94
|
+
prefixEnd = isColorWord(lastBeforeComma) ? valueStart - 1 : valueStart;
|
|
95
|
+
if (prefixEnd < 1) prefixEnd = 1;
|
|
96
|
+
}
|
|
97
|
+
name = tokens.slice(0, prefixEnd).map((t) => stripQuotes(t)).join(" ");
|
|
98
|
+
restStartIdx = prefixEnd;
|
|
99
|
+
}
|
|
100
|
+
if (restStartIdx < tokens.length) {
|
|
101
|
+
const valueStr = tokens.slice(restStartIdx).join(" ");
|
|
102
|
+
inlineValues = valueStr.split(",").map((v) => v.trim()).filter(Boolean);
|
|
103
|
+
}
|
|
104
|
+
if (!inlineValues || inlineValues.length === 0) {
|
|
105
|
+
const lastSpaceIdx = name.lastIndexOf(" ");
|
|
106
|
+
if (lastSpaceIdx > 0) {
|
|
107
|
+
const trailing = name.substring(lastSpaceIdx + 1);
|
|
108
|
+
if (RECOGNIZED_COLOR_NAMES.includes(trailing)) {
|
|
109
|
+
colorHint = trailing;
|
|
110
|
+
name = name.substring(0, lastSpaceIdx).trimEnd();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
name,
|
|
116
|
+
alias,
|
|
117
|
+
colorHint,
|
|
118
|
+
inlineValues: inlineValues && inlineValues.length > 0 ? inlineValues : void 0
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function resolveTagColor(metadata, tagGroups, activeGroupName, isContainer) {
|
|
122
|
+
if (!activeGroupName) return void 0;
|
|
123
|
+
const group = tagGroups.find(
|
|
124
|
+
(g) => tagAttrKey(g.name) === tagAttrKey(activeGroupName)
|
|
125
|
+
);
|
|
126
|
+
if (!group) return void 0;
|
|
127
|
+
const metaValue = metadata[tagAttrKey(group.name)] ?? (isContainer ? void 0 : group.defaultValue);
|
|
128
|
+
if (!metaValue) return "#999999";
|
|
129
|
+
return group.entries.find((e) => e.value.toLowerCase() === metaValue.toLowerCase())?.color ?? "#999999";
|
|
130
|
+
}
|
|
131
|
+
function validateTagValues(entities, tagGroups, pushWarning, suggestFn) {
|
|
132
|
+
if (tagGroups.length === 0) return;
|
|
133
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
134
|
+
for (const g of tagGroups) groupMap.set(tagAttrKey(g.name), g);
|
|
135
|
+
for (const entity of entities) {
|
|
136
|
+
for (const [key, value] of Object.entries(entity.metadata)) {
|
|
137
|
+
const group = groupMap.get(key);
|
|
138
|
+
if (!group) continue;
|
|
139
|
+
const match = group.entries.some(
|
|
140
|
+
(e) => e.value.toLowerCase() === value.toLowerCase()
|
|
141
|
+
);
|
|
142
|
+
if (!match) {
|
|
143
|
+
const valueLower = value.toLowerCase();
|
|
144
|
+
const isPrefix = group.entries.some(
|
|
145
|
+
(e) => e.value.toLowerCase().startsWith(valueLower)
|
|
146
|
+
);
|
|
147
|
+
if (!isPrefix) {
|
|
148
|
+
const defined = group.entries.map((e) => e.value);
|
|
149
|
+
let msg = `Unknown value '${value}' for tag group '${group.name}' \u2014 use one of: ${defined.join(", ")}`;
|
|
150
|
+
const hint = suggestFn?.(value, defined);
|
|
151
|
+
if (hint) {
|
|
152
|
+
msg += `. ${hint}`;
|
|
153
|
+
}
|
|
154
|
+
pushWarning(entity.lineNumber, msg);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
var VALID_TAG_IDENT_RE = /^[A-Za-z_][A-Za-z0-9_-]*$/;
|
|
161
|
+
function validateTagGroupNames(tagGroups, pushWarning, pushError) {
|
|
162
|
+
const report = pushError ?? pushWarning;
|
|
163
|
+
for (const group of tagGroups) {
|
|
164
|
+
if (group.name.toLowerCase() === "none") {
|
|
165
|
+
pushWarning(
|
|
166
|
+
group.lineNumber,
|
|
167
|
+
`'none' is a reserved keyword and cannot be used as a tag group name`
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
if (!VALID_TAG_IDENT_RE.test(tagAttrKey(group.name))) {
|
|
171
|
+
report(
|
|
172
|
+
group.lineNumber,
|
|
173
|
+
`Tag group name "${group.name}" can't form a valid key \u2014 use letters, digits, underscore, or hyphen, and quote a multi-word name (e.g. tag "Trust Zone" as tz)`
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
if (group.alias != null && !VALID_TAG_IDENT_RE.test(group.alias)) {
|
|
177
|
+
report(
|
|
178
|
+
group.lineNumber,
|
|
179
|
+
`Tag group alias "${group.alias}" contains invalid characters \u2014 use a single identifier (letters, digits, underscore, hyphen)`
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function cascadeTagMetadata(roots, tagGroups) {
|
|
185
|
+
const keys = tagGroups.map((g) => tagAttrKey(g.name));
|
|
186
|
+
if (keys.length === 0) return;
|
|
187
|
+
const walk = (node, inherited) => {
|
|
188
|
+
const childInherited = { ...inherited };
|
|
189
|
+
for (const key of keys) {
|
|
190
|
+
const own = node.metadata[key];
|
|
191
|
+
if (own) {
|
|
192
|
+
childInherited[key] = own;
|
|
193
|
+
} else if (inherited[key]) {
|
|
194
|
+
node.metadata[key] = inherited[key];
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
for (const child of node.children) walk(child, childInherited);
|
|
198
|
+
};
|
|
199
|
+
for (const root of roots) walk(root, {});
|
|
200
|
+
}
|
|
201
|
+
function injectDefaultTagMetadata(entities, tagGroups, skip) {
|
|
202
|
+
const defaults = [];
|
|
203
|
+
for (const group of tagGroups) {
|
|
204
|
+
if (group.defaultValue) {
|
|
205
|
+
defaults.push({
|
|
206
|
+
key: tagAttrKey(group.name),
|
|
207
|
+
value: group.defaultValue
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (defaults.length === 0) return;
|
|
212
|
+
for (const entity of entities) {
|
|
213
|
+
if (skip?.(entity)) continue;
|
|
214
|
+
for (const { key, value } of defaults) {
|
|
215
|
+
if (!(key in entity.metadata)) {
|
|
216
|
+
entity.metadata[key] = value;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function resolveActiveTagGroup(tagGroups, explicitActiveTag, programmaticOverride) {
|
|
222
|
+
if (programmaticOverride !== void 0) {
|
|
223
|
+
if (!programmaticOverride) return null;
|
|
224
|
+
if (programmaticOverride.toLowerCase() === "none") return null;
|
|
225
|
+
return programmaticOverride;
|
|
226
|
+
}
|
|
227
|
+
if (explicitActiveTag) {
|
|
228
|
+
if (explicitActiveTag.toLowerCase() === "none") return null;
|
|
229
|
+
return explicitActiveTag;
|
|
230
|
+
}
|
|
231
|
+
if (tagGroups.length > 0) return tagGroups[0].name;
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
function matchTagBlockHeading(trimmed) {
|
|
235
|
+
return parseTagDeclaration(trimmed);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export {
|
|
239
|
+
tagAttrKey,
|
|
240
|
+
stripDefaultModifier,
|
|
241
|
+
AUTO_TAG_COLOR_SENTINEL,
|
|
242
|
+
autoTagColorCycle,
|
|
243
|
+
finalizeAutoTagColors,
|
|
244
|
+
isTagBlockHeading,
|
|
245
|
+
resolveTagColor,
|
|
246
|
+
validateTagValues,
|
|
247
|
+
validateTagGroupNames,
|
|
248
|
+
cascadeTagMetadata,
|
|
249
|
+
injectDefaultTagMetadata,
|
|
250
|
+
resolveActiveTagGroup,
|
|
251
|
+
matchTagBlockHeading
|
|
252
|
+
};
|
|
253
|
+
//# sourceMappingURL=chunk-QLCCJEJI.js.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {
|
|
2
|
+
measureText,
|
|
3
|
+
truncateText
|
|
4
|
+
} from "./chunk-WCT3NYCV.js";
|
|
5
|
+
|
|
6
|
+
// src/utils/legend-constants.ts
|
|
7
|
+
var LEGEND_HEIGHT = 28;
|
|
8
|
+
var LEGEND_PILL_PAD = 16;
|
|
9
|
+
var LEGEND_PILL_FONT_SIZE = 11;
|
|
10
|
+
var LEGEND_CAPSULE_PAD = 4;
|
|
11
|
+
var LEGEND_DOT_R = 4;
|
|
12
|
+
var LEGEND_ENTRY_FONT_SIZE = 10;
|
|
13
|
+
var LEGEND_ENTRY_DOT_GAP = 4;
|
|
14
|
+
var LEGEND_ENTRY_TRAIL = 8;
|
|
15
|
+
var LEGEND_GROUP_GAP = 12;
|
|
16
|
+
var LEGEND_EYE_SIZE = 14;
|
|
17
|
+
var LEGEND_EYE_GAP = 6;
|
|
18
|
+
var LEGEND_ICON_W = 20;
|
|
19
|
+
var LEGEND_MAX_ENTRY_ROWS = 3;
|
|
20
|
+
var measureLegendText = measureText;
|
|
21
|
+
var truncateLegendText = truncateText;
|
|
22
|
+
var EYE_OPEN_PATH = "M1 7s2.5-5 6-5 6 5 6 5-2.5 5-6 5-6-5-6-5z M7 9.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z";
|
|
23
|
+
var EYE_CLOSED_PATH = "M2.5 2.5l9 9 M1.5 7s2.2-4 5.5-4c1.2 0 2.2.5 3 1.1 M12.5 7s-2.2 4-5.5 4c-1.2 0-2.2-.5-3-1.1";
|
|
24
|
+
var CONTROLS_ICON_PATH = "M5.6 1.7L8.4 1.7L7.9 3.6L9.5 4.5L10.9 3.1L12.3 5.6L10.4 6.1L10.4 7.9L12.3 8.4L10.9 10.9L9.5 9.5L7.9 10.4L8.4 12.3L5.6 12.3L6.1 10.4L4.5 9.5L3.1 10.9L1.7 8.4L3.6 7.9L3.6 6.1L1.7 5.6L3.1 3.1L4.5 4.5L6.1 3.6ZM5 7a2 2 0 1 0 4 0a2 2 0 1 0-4 0Z";
|
|
25
|
+
var LEGEND_TOGGLE_DOT_R = LEGEND_DOT_R;
|
|
26
|
+
var LEGEND_TOGGLE_OFF_OPACITY = 0.4;
|
|
27
|
+
var LEGEND_GEAR_PILL_W = 14 + LEGEND_PILL_PAD;
|
|
28
|
+
|
|
29
|
+
export {
|
|
30
|
+
LEGEND_HEIGHT,
|
|
31
|
+
LEGEND_PILL_PAD,
|
|
32
|
+
LEGEND_PILL_FONT_SIZE,
|
|
33
|
+
LEGEND_CAPSULE_PAD,
|
|
34
|
+
LEGEND_DOT_R,
|
|
35
|
+
LEGEND_ENTRY_FONT_SIZE,
|
|
36
|
+
LEGEND_ENTRY_DOT_GAP,
|
|
37
|
+
LEGEND_ENTRY_TRAIL,
|
|
38
|
+
LEGEND_GROUP_GAP,
|
|
39
|
+
LEGEND_EYE_SIZE,
|
|
40
|
+
LEGEND_EYE_GAP,
|
|
41
|
+
LEGEND_ICON_W,
|
|
42
|
+
LEGEND_MAX_ENTRY_ROWS,
|
|
43
|
+
measureLegendText,
|
|
44
|
+
truncateLegendText,
|
|
45
|
+
EYE_OPEN_PATH,
|
|
46
|
+
EYE_CLOSED_PATH,
|
|
47
|
+
CONTROLS_ICON_PATH,
|
|
48
|
+
LEGEND_TOGGLE_DOT_R,
|
|
49
|
+
LEGEND_TOGGLE_OFF_OPACITY,
|
|
50
|
+
LEGEND_GEAR_PILL_W
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=chunk-QOOUC2J5.js.map
|