local-operator-ui 0.12.7 → 0.13.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/out/main/index.jsc +0 -0
- package/out/preload/index.jsc +0 -0
- package/out/renderer/assets/_basePickBy-Dt8NA_1A.js +1 -0
- package/out/renderer/assets/_baseUniq-Dfn2rCfr.js +1 -0
- package/out/renderer/assets/agent-details-page-CJJgDqdX.js +6 -0
- package/out/renderer/assets/agent-hub-page-CznUZD2f.js +11 -0
- package/out/renderer/assets/agents-page-COdPTFYp.js +18 -0
- package/out/renderer/assets/arc-C1_J1TYO.js +1 -0
- package/out/renderer/assets/architectureDiagram-IEHRJDOE-p5UIRlv1.js +36 -0
- package/out/renderer/assets/asn1-EdZsLKOL.js +1 -0
- package/out/renderer/assets/band-CquvqAHh.js +1 -0
- package/out/renderer/assets/blockDiagram-JOT3LUYC-Dk6LFvtm.js +121 -0
- package/out/renderer/assets/c4Diagram-VJAJSXHY-C0Hp8OKf.js +10 -0
- package/out/renderer/assets/channel-BqUr4Qsu.js +1 -0
- package/out/renderer/assets/chunk-4BMEZGHF-CV1FNkGZ.js +1 -0
- package/out/renderer/assets/chunk-A2AXSNBT-Co_5OkmZ.js +164 -0
- package/out/renderer/assets/chunk-AEK57VVT-Bu3wjBen.js +220 -0
- package/out/renderer/assets/chunk-D6G4REZN-BvFphnUv.js +1 -0
- package/out/renderer/assets/chunk-RZ5BOZE2-DBIcRvVx.js +1 -0
- package/out/renderer/assets/chunk-XZIHB7SX-DjSBj758.js +1 -0
- package/out/renderer/assets/classDiagram-GIVACNV2-DyZfTBa4.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-DyZfTBa4.js +1 -0
- package/out/renderer/assets/clojure-BMjYHr_A.js +1 -0
- package/out/renderer/assets/clone-hR8g0-gq.js +1 -0
- package/out/renderer/assets/css-BnMrqG3P.js +1 -0
- package/out/renderer/assets/cytoscape.esm-DHvQc-Lm.js +331 -0
- package/out/renderer/assets/dagre-OKDRZEBW-DbOc711m.js +4 -0
- package/out/renderer/assets/diagram-SSKATNLV-YLnBMg9L.js +43 -0
- package/out/renderer/assets/diagram-VNBRO52H-DHzPX2Ws.js +24 -0
- package/out/renderer/assets/erDiagram-Q7BY3M3F-CxFuapOs.js +60 -0
- package/out/renderer/assets/flowDiagram-4HSFHLVR-D5vc3yns.js +161 -0
- package/out/renderer/assets/ganttDiagram-APWFNJXF-ejBZIm6I.js +257 -0
- package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-6m7tU_G2.js +65 -0
- package/out/renderer/assets/graph-DIHt6FPP.js +1 -0
- package/out/renderer/assets/icon-CTN1YQYZ.js +195 -0
- package/out/renderer/assets/icon-nCvgDdVX.css +1 -0
- package/out/renderer/assets/index-BpRBp6-j.js +7 -0
- package/out/renderer/assets/index-BweSWC55.js +1 -0
- package/out/renderer/assets/index-CLHdxmCS.js +1272 -0
- package/out/renderer/assets/index-DikLkf3S.css +1 -0
- package/out/renderer/assets/infoDiagram-PH2N3AL5-D1KBOewb.js +2 -0
- package/out/renderer/assets/init-Dmth1JHB.js +1 -0
- package/out/renderer/assets/installer-T4sGv29U.js +16 -0
- package/out/renderer/assets/javascript-qCveANmP.js +1 -0
- package/out/renderer/assets/journeyDiagram-U35MCT3I-DsqwRdF3.js +138 -0
- package/out/renderer/assets/kanban-definition-NDS4AKOZ-BQvBdP_9.js +88 -0
- package/out/renderer/assets/katex-BCx1q_2Y.css +1 -0
- package/out/renderer/assets/layout-C7qoUpVb.js +1 -0
- package/out/renderer/assets/linear-BfLTrHPc.js +1 -0
- package/out/renderer/assets/mermaid.core-CyfNZ-Rl.js +213 -0
- package/out/renderer/assets/mindmap-definition-ALO5MXBD-CTSdCgh1.js +95 -0
- package/out/renderer/assets/mllike-CXdrOF99.js +1 -0
- package/out/renderer/assets/ordinal-DILIJJjt.js +1 -0
- package/out/renderer/assets/page-header-CNXeqkJB.js +1 -0
- package/out/renderer/assets/parseISO-CyJpeshf.js +6 -0
- package/out/renderer/assets/pieDiagram-IB7DONF6-CeYuFnxD.js +30 -0
- package/out/renderer/assets/pug-DukmZTjD.js +1 -0
- package/out/renderer/assets/python-BuPzkPfP.js +1 -0
- package/out/renderer/assets/quadrantDiagram-7GDLP6J5-urCUNLvr.js +7 -0
- package/out/renderer/assets/radar-MK3ICKWK-D0m91kg2.js +128 -0
- package/out/renderer/assets/requirementDiagram-KVF5MWMF-7WDiFe7C.js +64 -0
- package/out/renderer/assets/rpm-CTu-6PCP.js +1 -0
- package/out/renderer/assets/sankeyDiagram-QLVOVGJD-BvCTETAk.js +10 -0
- package/out/renderer/assets/schedules-page-B2sb5H0L.js +115 -0
- package/out/renderer/assets/sequenceDiagram-X6HHIX6F-DGlKyLMu.js +122 -0
- package/out/renderer/assets/settings-page-DnOXVx9n.js +154 -0
- package/out/renderer/assets/settings-section-CBkMzMRA.js +6 -0
- package/out/renderer/assets/sql-D0XecflT.js +1 -0
- package/out/renderer/assets/square-pen-C9ah35lX.js +6 -0
- package/out/renderer/assets/stateDiagram-DGXRK772-BY_eMRWs.js +1 -0
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DecHc3j6.js +1 -0
- package/out/renderer/assets/step-DMJAOHzS.js +1 -0
- package/out/renderer/assets/time-BOTM2Tp0.js +1 -0
- package/out/renderer/assets/timeline-definition-BDJGKUSR-9Ezq9kKH.js +61 -0
- package/out/renderer/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/out/renderer/assets/use-agent-like-mutation-BYo-fu7V.js +1 -0
- package/out/renderer/assets/xychartDiagram-VJFVF3MP-O2pD61nn.js +7 -0
- package/out/renderer/index.html +4 -4
- package/out/renderer/installer.html +3 -3
- package/package.json +50 -22
- package/out/renderer/assets/GeistMonoNerdFontMono-Black-CPyfXpD2.otf +0 -0
- package/out/renderer/assets/GeistMonoNerdFontMono-Light-CRgGhpeL.otf +0 -0
- package/out/renderer/assets/GeistMonoNerdFontMono-Medium-Dui3XGJy.otf +0 -0
- package/out/renderer/assets/GeistMonoNerdFontMono-Thin-D5jufbuH.otf +0 -0
- package/out/renderer/assets/GeistMonoNerdFontMono-UltraBlack-CChzVbOW.otf +0 -0
- package/out/renderer/assets/_basePickBy-Xni00Dlk.js +0 -195
- package/out/renderer/assets/_baseUniq-JxZZknyU.js +0 -835
- package/out/renderer/assets/arc-BPRFPuHz.js +0 -131
- package/out/renderer/assets/architectureDiagram-IEHRJDOE-iKnn0iSS.js +0 -8653
- package/out/renderer/assets/asn1-BnOEsgAm.js +0 -144
- package/out/renderer/assets/blockDiagram-JOT3LUYC-BW-Yo0Fe.js +0 -3585
- package/out/renderer/assets/c4Diagram-VJAJSXHY-cTGz3ymz.js +0 -2487
- package/out/renderer/assets/channel-CsQk5gsI.js +0 -7
- package/out/renderer/assets/chunk-4BMEZGHF-DjpLWrPj.js +0 -16
- package/out/renderer/assets/chunk-A2AXSNBT-Blza621e.js +0 -1827
- package/out/renderer/assets/chunk-AEK57VVT-ZmlsDCZe.js +0 -1953
- package/out/renderer/assets/chunk-D6G4REZN-C7msyVje.js +0 -108
- package/out/renderer/assets/chunk-RZ5BOZE2-CWvJQJJl.js +0 -34
- package/out/renderer/assets/chunk-XZIHB7SX-C-gdVJBt.js +0 -19
- package/out/renderer/assets/classDiagram-GIVACNV2-BcRnaMRd.js +0 -21
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-BcRnaMRd.js +0 -21
- package/out/renderer/assets/clear-icon-with-text-Cu96UxOE.png +0 -0
- package/out/renderer/assets/clojure-BhXMqnxz.js +0 -849
- package/out/renderer/assets/clone-3XFGex6Y.js +0 -8
- package/out/renderer/assets/css-c-jst79C.js +0 -1783
- package/out/renderer/assets/cytoscape.esm-C0AOj4uS.js +0 -30062
- package/out/renderer/assets/dagre-OKDRZEBW-BMuSMCUF.js +0 -695
- package/out/renderer/assets/diagram-SSKATNLV-BCxxN7T6.js +0 -304
- package/out/renderer/assets/diagram-VNBRO52H-q41sVUvc.js +0 -193
- package/out/renderer/assets/erDiagram-Q7BY3M3F-BFd2rLsa.js +0 -1160
- package/out/renderer/assets/flowDiagram-4HSFHLVR-_Arrrk_3.js +0 -2324
- package/out/renderer/assets/fonts-CM-VN_uu.css +0 -64
- package/out/renderer/assets/fonts-DqkQ6BY5.js +0 -31168
- package/out/renderer/assets/ganttDiagram-APWFNJXF-Dzw68AV_.js +0 -2500
- package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-BlkO8Bzg.js +0 -1204
- package/out/renderer/assets/graph-DL-34vhw.js +0 -424
- package/out/renderer/assets/index-BDLsFoJv.js +0 -312
- package/out/renderer/assets/index-CiPFa_9B.css +0 -10
- package/out/renderer/assets/index-MaDq9HTX.js +0 -365078
- package/out/renderer/assets/index-vAasWWpO.js +0 -406
- package/out/renderer/assets/infoDiagram-PH2N3AL5-DO4pqvW_.js +0 -33
- package/out/renderer/assets/installer-Ct30gPA9.js +0 -511
- package/out/renderer/assets/javascript-C3MnDRiU.js +0 -994
- package/out/renderer/assets/journeyDiagram-U35MCT3I-BJQ-FRal.js +0 -1199
- package/out/renderer/assets/kanban-definition-NDS4AKOZ-B1zGbozL.js +0 -1046
- package/out/renderer/assets/layout-BrQGvDtH.js +0 -2060
- package/out/renderer/assets/mindmap-definition-ALO5MXBD-B5SNv6RZ.js +0 -5836
- package/out/renderer/assets/mllike-DHn7xckP.js +0 -334
- package/out/renderer/assets/pieDiagram-IB7DONF6-DKT0Bk2S.js +0 -239
- package/out/renderer/assets/pug-By0kVCfm.js +0 -405
- package/out/renderer/assets/python-CvWbmiX4.js +0 -427
- package/out/renderer/assets/quadrantDiagram-7GDLP6J5-CFMDiFFE.js +0 -1340
- package/out/renderer/assets/radar-MK3ICKWK-DwsnroMG.js +0 -16935
- package/out/renderer/assets/requirementDiagram-KVF5MWMF-DPTaldQZ.js +0 -1163
- package/out/renderer/assets/rpm-C-DLY-If.js +0 -109
- package/out/renderer/assets/sankeyDiagram-QLVOVGJD-DIFNjSQ_.js +0 -1201
- package/out/renderer/assets/sequenceDiagram-X6HHIX6F-Chi1Y6mU.js +0 -3415
- package/out/renderer/assets/sql-BSrOzCRI.js +0 -354
- package/out/renderer/assets/stateDiagram-DGXRK772-DcmhTUVK.js +0 -467
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Dy-oRm-T.js +0 -21
- package/out/renderer/assets/timeline-definition-BDJGKUSR-0y2wZWef.js +0 -1223
- package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +0 -133
- package/out/renderer/assets/xychartDiagram-VJFVF3MP-Bbr5uqsp.js +0 -1800
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import { p as populateCommonDb } from "./chunk-4BMEZGHF-DjpLWrPj.js";
|
|
2
|
-
import { _ as __name, s as setAccDescription, g as getAccDescription, t as getDiagramTitle, q as setDiagramTitle, a as getAccTitle, b as setAccTitle, K as selectSvgElement, z as clear, F as cleanAndMerge, G as getConfig, H as defaultConfig_default, l as log, a1 as getThemeVariables3 } from "./index-MaDq9HTX.js";
|
|
3
|
-
import { p as parse } from "./radar-MK3ICKWK-DwsnroMG.js";
|
|
4
|
-
import "./fonts-DqkQ6BY5.js";
|
|
5
|
-
import "./_baseUniq-JxZZknyU.js";
|
|
6
|
-
import "./_basePickBy-Xni00Dlk.js";
|
|
7
|
-
import "./clone-3XFGex6Y.js";
|
|
8
|
-
var defaultOptions = {
|
|
9
|
-
showLegend: true,
|
|
10
|
-
ticks: 5,
|
|
11
|
-
max: null,
|
|
12
|
-
min: 0,
|
|
13
|
-
graticule: "circle"
|
|
14
|
-
};
|
|
15
|
-
var defaultRadarData = {
|
|
16
|
-
axes: [],
|
|
17
|
-
curves: [],
|
|
18
|
-
options: defaultOptions
|
|
19
|
-
};
|
|
20
|
-
var data = structuredClone(defaultRadarData);
|
|
21
|
-
var DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;
|
|
22
|
-
var getConfig2 = /* @__PURE__ */ __name(() => {
|
|
23
|
-
const config = cleanAndMerge({
|
|
24
|
-
...DEFAULT_RADAR_CONFIG,
|
|
25
|
-
...getConfig().radar
|
|
26
|
-
});
|
|
27
|
-
return config;
|
|
28
|
-
}, "getConfig");
|
|
29
|
-
var getAxes = /* @__PURE__ */ __name(() => data.axes, "getAxes");
|
|
30
|
-
var getCurves = /* @__PURE__ */ __name(() => data.curves, "getCurves");
|
|
31
|
-
var getOptions = /* @__PURE__ */ __name(() => data.options, "getOptions");
|
|
32
|
-
var setAxes = /* @__PURE__ */ __name((axes) => {
|
|
33
|
-
data.axes = axes.map((axis) => {
|
|
34
|
-
return {
|
|
35
|
-
name: axis.name,
|
|
36
|
-
label: axis.label ?? axis.name
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
}, "setAxes");
|
|
40
|
-
var setCurves = /* @__PURE__ */ __name((curves) => {
|
|
41
|
-
data.curves = curves.map((curve) => {
|
|
42
|
-
return {
|
|
43
|
-
name: curve.name,
|
|
44
|
-
label: curve.label ?? curve.name,
|
|
45
|
-
entries: computeCurveEntries(curve.entries)
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
}, "setCurves");
|
|
49
|
-
var computeCurveEntries = /* @__PURE__ */ __name((entries) => {
|
|
50
|
-
if (entries[0].axis == void 0) {
|
|
51
|
-
return entries.map((entry) => entry.value);
|
|
52
|
-
}
|
|
53
|
-
const axes = getAxes();
|
|
54
|
-
if (axes.length === 0) {
|
|
55
|
-
throw new Error("Axes must be populated before curves for reference entries");
|
|
56
|
-
}
|
|
57
|
-
return axes.map((axis) => {
|
|
58
|
-
const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);
|
|
59
|
-
if (entry === void 0) {
|
|
60
|
-
throw new Error("Missing entry for axis " + axis.label);
|
|
61
|
-
}
|
|
62
|
-
return entry.value;
|
|
63
|
-
});
|
|
64
|
-
}, "computeCurveEntries");
|
|
65
|
-
var setOptions = /* @__PURE__ */ __name((options) => {
|
|
66
|
-
const optionMap = options.reduce(
|
|
67
|
-
(acc, option) => {
|
|
68
|
-
acc[option.name] = option;
|
|
69
|
-
return acc;
|
|
70
|
-
},
|
|
71
|
-
{}
|
|
72
|
-
);
|
|
73
|
-
data.options = {
|
|
74
|
-
showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,
|
|
75
|
-
ticks: optionMap.ticks?.value ?? defaultOptions.ticks,
|
|
76
|
-
max: optionMap.max?.value ?? defaultOptions.max,
|
|
77
|
-
min: optionMap.min?.value ?? defaultOptions.min,
|
|
78
|
-
graticule: optionMap.graticule?.value ?? defaultOptions.graticule
|
|
79
|
-
};
|
|
80
|
-
}, "setOptions");
|
|
81
|
-
var clear2 = /* @__PURE__ */ __name(() => {
|
|
82
|
-
clear();
|
|
83
|
-
data = structuredClone(defaultRadarData);
|
|
84
|
-
}, "clear");
|
|
85
|
-
var db = {
|
|
86
|
-
getAxes,
|
|
87
|
-
getCurves,
|
|
88
|
-
getOptions,
|
|
89
|
-
setAxes,
|
|
90
|
-
setCurves,
|
|
91
|
-
setOptions,
|
|
92
|
-
getConfig: getConfig2,
|
|
93
|
-
clear: clear2,
|
|
94
|
-
setAccTitle,
|
|
95
|
-
getAccTitle,
|
|
96
|
-
setDiagramTitle,
|
|
97
|
-
getDiagramTitle,
|
|
98
|
-
getAccDescription,
|
|
99
|
-
setAccDescription
|
|
100
|
-
};
|
|
101
|
-
var populate = /* @__PURE__ */ __name((ast) => {
|
|
102
|
-
populateCommonDb(ast, db);
|
|
103
|
-
const { axes, curves, options } = ast;
|
|
104
|
-
db.setAxes(axes);
|
|
105
|
-
db.setCurves(curves);
|
|
106
|
-
db.setOptions(options);
|
|
107
|
-
}, "populate");
|
|
108
|
-
var parser = {
|
|
109
|
-
parse: /* @__PURE__ */ __name(async (input) => {
|
|
110
|
-
const ast = await parse("radar", input);
|
|
111
|
-
log.debug(ast);
|
|
112
|
-
populate(ast);
|
|
113
|
-
}, "parse")
|
|
114
|
-
};
|
|
115
|
-
var draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {
|
|
116
|
-
const db2 = diagram2.db;
|
|
117
|
-
const axes = db2.getAxes();
|
|
118
|
-
const curves = db2.getCurves();
|
|
119
|
-
const options = db2.getOptions();
|
|
120
|
-
const config = db2.getConfig();
|
|
121
|
-
const title = db2.getDiagramTitle();
|
|
122
|
-
const svg = selectSvgElement(id);
|
|
123
|
-
const g = drawFrame(svg, config);
|
|
124
|
-
const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));
|
|
125
|
-
const minValue = options.min;
|
|
126
|
-
const radius = Math.min(config.width, config.height) / 2;
|
|
127
|
-
drawGraticule(g, axes, radius, options.ticks, options.graticule);
|
|
128
|
-
drawAxes(g, axes, radius, config);
|
|
129
|
-
drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);
|
|
130
|
-
drawLegend(g, curves, options.showLegend, config);
|
|
131
|
-
g.append("text").attr("class", "radarTitle").text(title).attr("x", 0).attr("y", -config.height / 2 - config.marginTop);
|
|
132
|
-
}, "draw");
|
|
133
|
-
var drawFrame = /* @__PURE__ */ __name((svg, config) => {
|
|
134
|
-
const totalWidth = config.width + config.marginLeft + config.marginRight;
|
|
135
|
-
const totalHeight = config.height + config.marginTop + config.marginBottom;
|
|
136
|
-
const center = {
|
|
137
|
-
x: config.marginLeft + config.width / 2,
|
|
138
|
-
y: config.marginTop + config.height / 2
|
|
139
|
-
};
|
|
140
|
-
svg.attr("viewbox", `0 0 ${totalWidth} ${totalHeight}`).attr("width", totalWidth).attr("height", totalHeight);
|
|
141
|
-
return svg.append("g").attr("transform", `translate(${center.x}, ${center.y})`);
|
|
142
|
-
}, "drawFrame");
|
|
143
|
-
var drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {
|
|
144
|
-
if (graticule === "circle") {
|
|
145
|
-
for (let i = 0; i < ticks; i++) {
|
|
146
|
-
const r = radius * (i + 1) / ticks;
|
|
147
|
-
g.append("circle").attr("r", r).attr("class", "radarGraticule");
|
|
148
|
-
}
|
|
149
|
-
} else if (graticule === "polygon") {
|
|
150
|
-
const numAxes = axes.length;
|
|
151
|
-
for (let i = 0; i < ticks; i++) {
|
|
152
|
-
const r = radius * (i + 1) / ticks;
|
|
153
|
-
const points = axes.map((_, j) => {
|
|
154
|
-
const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;
|
|
155
|
-
const x = r * Math.cos(angle);
|
|
156
|
-
const y = r * Math.sin(angle);
|
|
157
|
-
return `${x},${y}`;
|
|
158
|
-
}).join(" ");
|
|
159
|
-
g.append("polygon").attr("points", points).attr("class", "radarGraticule");
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}, "drawGraticule");
|
|
163
|
-
var drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {
|
|
164
|
-
const numAxes = axes.length;
|
|
165
|
-
for (let i = 0; i < numAxes; i++) {
|
|
166
|
-
const label = axes[i].label;
|
|
167
|
-
const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;
|
|
168
|
-
g.append("line").attr("x1", 0).attr("y1", 0).attr("x2", radius * config.axisScaleFactor * Math.cos(angle)).attr("y2", radius * config.axisScaleFactor * Math.sin(angle)).attr("class", "radarAxisLine");
|
|
169
|
-
g.append("text").text(label).attr("x", radius * config.axisLabelFactor * Math.cos(angle)).attr("y", radius * config.axisLabelFactor * Math.sin(angle)).attr("class", "radarAxisLabel");
|
|
170
|
-
}
|
|
171
|
-
}, "drawAxes");
|
|
172
|
-
function drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {
|
|
173
|
-
const numAxes = axes.length;
|
|
174
|
-
const radius = Math.min(config.width, config.height) / 2;
|
|
175
|
-
curves.forEach((curve, index) => {
|
|
176
|
-
if (curve.entries.length !== numAxes) {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
const points = curve.entries.map((entry, i) => {
|
|
180
|
-
const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;
|
|
181
|
-
const r = relativeRadius(entry, minValue, maxValue, radius);
|
|
182
|
-
const x = r * Math.cos(angle);
|
|
183
|
-
const y = r * Math.sin(angle);
|
|
184
|
-
return { x, y };
|
|
185
|
-
});
|
|
186
|
-
if (graticule === "circle") {
|
|
187
|
-
g.append("path").attr("d", closedRoundCurve(points, config.curveTension)).attr("class", `radarCurve-${index}`);
|
|
188
|
-
} else if (graticule === "polygon") {
|
|
189
|
-
g.append("polygon").attr("points", points.map((p) => `${p.x},${p.y}`).join(" ")).attr("class", `radarCurve-${index}`);
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
__name(drawCurves, "drawCurves");
|
|
194
|
-
function relativeRadius(value, minValue, maxValue, radius) {
|
|
195
|
-
const clippedValue = Math.min(Math.max(value, minValue), maxValue);
|
|
196
|
-
return radius * (clippedValue - minValue) / (maxValue - minValue);
|
|
197
|
-
}
|
|
198
|
-
__name(relativeRadius, "relativeRadius");
|
|
199
|
-
function closedRoundCurve(points, tension) {
|
|
200
|
-
const numPoints = points.length;
|
|
201
|
-
let d = `M${points[0].x},${points[0].y}`;
|
|
202
|
-
for (let i = 0; i < numPoints; i++) {
|
|
203
|
-
const p0 = points[(i - 1 + numPoints) % numPoints];
|
|
204
|
-
const p1 = points[i];
|
|
205
|
-
const p2 = points[(i + 1) % numPoints];
|
|
206
|
-
const p3 = points[(i + 2) % numPoints];
|
|
207
|
-
const cp1 = {
|
|
208
|
-
x: p1.x + (p2.x - p0.x) * tension,
|
|
209
|
-
y: p1.y + (p2.y - p0.y) * tension
|
|
210
|
-
};
|
|
211
|
-
const cp2 = {
|
|
212
|
-
x: p2.x - (p3.x - p1.x) * tension,
|
|
213
|
-
y: p2.y - (p3.y - p1.y) * tension
|
|
214
|
-
};
|
|
215
|
-
d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;
|
|
216
|
-
}
|
|
217
|
-
return `${d} Z`;
|
|
218
|
-
}
|
|
219
|
-
__name(closedRoundCurve, "closedRoundCurve");
|
|
220
|
-
function drawLegend(g, curves, showLegend, config) {
|
|
221
|
-
if (!showLegend) {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
const legendX = (config.width / 2 + config.marginRight) * 3 / 4;
|
|
225
|
-
const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;
|
|
226
|
-
const lineHeight = 20;
|
|
227
|
-
curves.forEach((curve, index) => {
|
|
228
|
-
const itemGroup = g.append("g").attr("transform", `translate(${legendX}, ${legendY + index * lineHeight})`);
|
|
229
|
-
itemGroup.append("rect").attr("width", 12).attr("height", 12).attr("class", `radarLegendBox-${index}`);
|
|
230
|
-
itemGroup.append("text").attr("x", 16).attr("y", 0).attr("class", "radarLegendText").text(curve.label);
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
__name(drawLegend, "drawLegend");
|
|
234
|
-
var renderer = { draw };
|
|
235
|
-
var genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {
|
|
236
|
-
let sections = "";
|
|
237
|
-
for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {
|
|
238
|
-
const indexColor = themeVariables[`cScale${i}`];
|
|
239
|
-
sections += `
|
|
240
|
-
.radarCurve-${i} {
|
|
241
|
-
color: ${indexColor};
|
|
242
|
-
fill: ${indexColor};
|
|
243
|
-
fill-opacity: ${radarOptions.curveOpacity};
|
|
244
|
-
stroke: ${indexColor};
|
|
245
|
-
stroke-width: ${radarOptions.curveStrokeWidth};
|
|
246
|
-
}
|
|
247
|
-
.radarLegendBox-${i} {
|
|
248
|
-
fill: ${indexColor};
|
|
249
|
-
fill-opacity: ${radarOptions.curveOpacity};
|
|
250
|
-
stroke: ${indexColor};
|
|
251
|
-
}
|
|
252
|
-
`;
|
|
253
|
-
}
|
|
254
|
-
return sections;
|
|
255
|
-
}, "genIndexStyles");
|
|
256
|
-
var buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {
|
|
257
|
-
const defaultThemeVariables = getThemeVariables3();
|
|
258
|
-
const currentConfig = getConfig();
|
|
259
|
-
const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);
|
|
260
|
-
const radarOptions = cleanAndMerge(themeVariables.radar, radar);
|
|
261
|
-
return { themeVariables, radarOptions };
|
|
262
|
-
}, "buildRadarStyleOptions");
|
|
263
|
-
var styles = /* @__PURE__ */ __name(({ radar } = {}) => {
|
|
264
|
-
const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);
|
|
265
|
-
return `
|
|
266
|
-
.radarTitle {
|
|
267
|
-
font-size: ${themeVariables.fontSize};
|
|
268
|
-
color: ${themeVariables.titleColor};
|
|
269
|
-
dominant-baseline: hanging;
|
|
270
|
-
text-anchor: middle;
|
|
271
|
-
}
|
|
272
|
-
.radarAxisLine {
|
|
273
|
-
stroke: ${radarOptions.axisColor};
|
|
274
|
-
stroke-width: ${radarOptions.axisStrokeWidth};
|
|
275
|
-
}
|
|
276
|
-
.radarAxisLabel {
|
|
277
|
-
dominant-baseline: middle;
|
|
278
|
-
text-anchor: middle;
|
|
279
|
-
font-size: ${radarOptions.axisLabelFontSize}px;
|
|
280
|
-
color: ${radarOptions.axisColor};
|
|
281
|
-
}
|
|
282
|
-
.radarGraticule {
|
|
283
|
-
fill: ${radarOptions.graticuleColor};
|
|
284
|
-
fill-opacity: ${radarOptions.graticuleOpacity};
|
|
285
|
-
stroke: ${radarOptions.graticuleColor};
|
|
286
|
-
stroke-width: ${radarOptions.graticuleStrokeWidth};
|
|
287
|
-
}
|
|
288
|
-
.radarLegendText {
|
|
289
|
-
text-anchor: start;
|
|
290
|
-
font-size: ${radarOptions.legendFontSize}px;
|
|
291
|
-
dominant-baseline: hanging;
|
|
292
|
-
}
|
|
293
|
-
${genIndexStyles(themeVariables, radarOptions)}
|
|
294
|
-
`;
|
|
295
|
-
}, "styles");
|
|
296
|
-
var diagram = {
|
|
297
|
-
parser,
|
|
298
|
-
db,
|
|
299
|
-
renderer,
|
|
300
|
-
styles
|
|
301
|
-
};
|
|
302
|
-
export {
|
|
303
|
-
diagram
|
|
304
|
-
};
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { p as populateCommonDb } from "./chunk-4BMEZGHF-DjpLWrPj.js";
|
|
2
|
-
import { _ as __name, s as setAccDescription, g as getAccDescription, t as getDiagramTitle, q as setDiagramTitle, a as getAccTitle, b as setAccTitle, F as cleanAndMerge, K as selectSvgElement, e as configureSvgSize, z as clear, G as getConfig, H as defaultConfig_default, l as log } from "./index-MaDq9HTX.js";
|
|
3
|
-
import { p as parse } from "./radar-MK3ICKWK-DwsnroMG.js";
|
|
4
|
-
import "./fonts-DqkQ6BY5.js";
|
|
5
|
-
import "./_baseUniq-JxZZknyU.js";
|
|
6
|
-
import "./_basePickBy-Xni00Dlk.js";
|
|
7
|
-
import "./clone-3XFGex6Y.js";
|
|
8
|
-
var defaultPacketData = {
|
|
9
|
-
packet: []
|
|
10
|
-
};
|
|
11
|
-
var data = structuredClone(defaultPacketData);
|
|
12
|
-
var DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;
|
|
13
|
-
var getConfig2 = /* @__PURE__ */ __name(() => {
|
|
14
|
-
const config = cleanAndMerge({
|
|
15
|
-
...DEFAULT_PACKET_CONFIG,
|
|
16
|
-
...getConfig().packet
|
|
17
|
-
});
|
|
18
|
-
if (config.showBits) {
|
|
19
|
-
config.paddingY += 10;
|
|
20
|
-
}
|
|
21
|
-
return config;
|
|
22
|
-
}, "getConfig");
|
|
23
|
-
var getPacket = /* @__PURE__ */ __name(() => data.packet, "getPacket");
|
|
24
|
-
var pushWord = /* @__PURE__ */ __name((word) => {
|
|
25
|
-
if (word.length > 0) {
|
|
26
|
-
data.packet.push(word);
|
|
27
|
-
}
|
|
28
|
-
}, "pushWord");
|
|
29
|
-
var clear2 = /* @__PURE__ */ __name(() => {
|
|
30
|
-
clear();
|
|
31
|
-
data = structuredClone(defaultPacketData);
|
|
32
|
-
}, "clear");
|
|
33
|
-
var db = {
|
|
34
|
-
pushWord,
|
|
35
|
-
getPacket,
|
|
36
|
-
getConfig: getConfig2,
|
|
37
|
-
clear: clear2,
|
|
38
|
-
setAccTitle,
|
|
39
|
-
getAccTitle,
|
|
40
|
-
setDiagramTitle,
|
|
41
|
-
getDiagramTitle,
|
|
42
|
-
getAccDescription,
|
|
43
|
-
setAccDescription
|
|
44
|
-
};
|
|
45
|
-
var maxPacketSize = 1e4;
|
|
46
|
-
var populate = /* @__PURE__ */ __name((ast) => {
|
|
47
|
-
populateCommonDb(ast, db);
|
|
48
|
-
let lastByte = -1;
|
|
49
|
-
let word = [];
|
|
50
|
-
let row = 1;
|
|
51
|
-
const { bitsPerRow } = db.getConfig();
|
|
52
|
-
for (let { start, end, label } of ast.blocks) {
|
|
53
|
-
if (end && end < start) {
|
|
54
|
-
throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);
|
|
55
|
-
}
|
|
56
|
-
if (start !== lastByte + 1) {
|
|
57
|
-
throw new Error(
|
|
58
|
-
`Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastByte + 1}.`
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
lastByte = end ?? start;
|
|
62
|
-
log.debug(`Packet block ${start} - ${lastByte} with label ${label}`);
|
|
63
|
-
while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {
|
|
64
|
-
const [block, nextBlock] = getNextFittingBlock({ start, end, label }, row, bitsPerRow);
|
|
65
|
-
word.push(block);
|
|
66
|
-
if (block.end + 1 === row * bitsPerRow) {
|
|
67
|
-
db.pushWord(word);
|
|
68
|
-
word = [];
|
|
69
|
-
row++;
|
|
70
|
-
}
|
|
71
|
-
if (!nextBlock) {
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
({ start, end, label } = nextBlock);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
db.pushWord(word);
|
|
78
|
-
}, "populate");
|
|
79
|
-
var getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {
|
|
80
|
-
if (block.end === void 0) {
|
|
81
|
-
block.end = block.start;
|
|
82
|
-
}
|
|
83
|
-
if (block.start > block.end) {
|
|
84
|
-
throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);
|
|
85
|
-
}
|
|
86
|
-
if (block.end + 1 <= row * bitsPerRow) {
|
|
87
|
-
return [block, void 0];
|
|
88
|
-
}
|
|
89
|
-
return [
|
|
90
|
-
{
|
|
91
|
-
start: block.start,
|
|
92
|
-
end: row * bitsPerRow - 1,
|
|
93
|
-
label: block.label
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
start: row * bitsPerRow,
|
|
97
|
-
end: block.end,
|
|
98
|
-
label: block.label
|
|
99
|
-
}
|
|
100
|
-
];
|
|
101
|
-
}, "getNextFittingBlock");
|
|
102
|
-
var parser = {
|
|
103
|
-
parse: /* @__PURE__ */ __name(async (input) => {
|
|
104
|
-
const ast = await parse("packet", input);
|
|
105
|
-
log.debug(ast);
|
|
106
|
-
populate(ast);
|
|
107
|
-
}, "parse")
|
|
108
|
-
};
|
|
109
|
-
var draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {
|
|
110
|
-
const db2 = diagram2.db;
|
|
111
|
-
const config = db2.getConfig();
|
|
112
|
-
const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;
|
|
113
|
-
const words = db2.getPacket();
|
|
114
|
-
const title = db2.getDiagramTitle();
|
|
115
|
-
const totalRowHeight = rowHeight + paddingY;
|
|
116
|
-
const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);
|
|
117
|
-
const svgWidth = bitWidth * bitsPerRow + 2;
|
|
118
|
-
const svg = selectSvgElement(id);
|
|
119
|
-
svg.attr("viewbox", `0 0 ${svgWidth} ${svgHeight}`);
|
|
120
|
-
configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);
|
|
121
|
-
for (const [word, packet] of words.entries()) {
|
|
122
|
-
drawWord(svg, packet, word, config);
|
|
123
|
-
}
|
|
124
|
-
svg.append("text").text(title).attr("x", svgWidth / 2).attr("y", svgHeight - totalRowHeight / 2).attr("dominant-baseline", "middle").attr("text-anchor", "middle").attr("class", "packetTitle");
|
|
125
|
-
}, "draw");
|
|
126
|
-
var drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {
|
|
127
|
-
const group = svg.append("g");
|
|
128
|
-
const wordY = rowNumber * (rowHeight + paddingY) + paddingY;
|
|
129
|
-
for (const block of word) {
|
|
130
|
-
const blockX = block.start % bitsPerRow * bitWidth + 1;
|
|
131
|
-
const width = (block.end - block.start + 1) * bitWidth - paddingX;
|
|
132
|
-
group.append("rect").attr("x", blockX).attr("y", wordY).attr("width", width).attr("height", rowHeight).attr("class", "packetBlock");
|
|
133
|
-
group.append("text").attr("x", blockX + width / 2).attr("y", wordY + rowHeight / 2).attr("class", "packetLabel").attr("dominant-baseline", "middle").attr("text-anchor", "middle").text(block.label);
|
|
134
|
-
if (!showBits) {
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
const isSingleBlock = block.end === block.start;
|
|
138
|
-
const bitNumberY = wordY - 2;
|
|
139
|
-
group.append("text").attr("x", blockX + (isSingleBlock ? width / 2 : 0)).attr("y", bitNumberY).attr("class", "packetByte start").attr("dominant-baseline", "auto").attr("text-anchor", isSingleBlock ? "middle" : "start").text(block.start);
|
|
140
|
-
if (!isSingleBlock) {
|
|
141
|
-
group.append("text").attr("x", blockX + width).attr("y", bitNumberY).attr("class", "packetByte end").attr("dominant-baseline", "auto").attr("text-anchor", "end").text(block.end);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}, "drawWord");
|
|
145
|
-
var renderer = { draw };
|
|
146
|
-
var defaultPacketStyleOptions = {
|
|
147
|
-
byteFontSize: "10px",
|
|
148
|
-
startByteColor: "black",
|
|
149
|
-
endByteColor: "black",
|
|
150
|
-
labelColor: "black",
|
|
151
|
-
labelFontSize: "12px",
|
|
152
|
-
titleColor: "black",
|
|
153
|
-
titleFontSize: "14px",
|
|
154
|
-
blockStrokeColor: "black",
|
|
155
|
-
blockStrokeWidth: "1",
|
|
156
|
-
blockFillColor: "#efefef"
|
|
157
|
-
};
|
|
158
|
-
var styles = /* @__PURE__ */ __name(({ packet } = {}) => {
|
|
159
|
-
const options = cleanAndMerge(defaultPacketStyleOptions, packet);
|
|
160
|
-
return `
|
|
161
|
-
.packetByte {
|
|
162
|
-
font-size: ${options.byteFontSize};
|
|
163
|
-
}
|
|
164
|
-
.packetByte.start {
|
|
165
|
-
fill: ${options.startByteColor};
|
|
166
|
-
}
|
|
167
|
-
.packetByte.end {
|
|
168
|
-
fill: ${options.endByteColor};
|
|
169
|
-
}
|
|
170
|
-
.packetLabel {
|
|
171
|
-
fill: ${options.labelColor};
|
|
172
|
-
font-size: ${options.labelFontSize};
|
|
173
|
-
}
|
|
174
|
-
.packetTitle {
|
|
175
|
-
fill: ${options.titleColor};
|
|
176
|
-
font-size: ${options.titleFontSize};
|
|
177
|
-
}
|
|
178
|
-
.packetBlock {
|
|
179
|
-
stroke: ${options.blockStrokeColor};
|
|
180
|
-
stroke-width: ${options.blockStrokeWidth};
|
|
181
|
-
fill: ${options.blockFillColor};
|
|
182
|
-
}
|
|
183
|
-
`;
|
|
184
|
-
}, "styles");
|
|
185
|
-
var diagram = {
|
|
186
|
-
parser,
|
|
187
|
-
db,
|
|
188
|
-
renderer,
|
|
189
|
-
styles
|
|
190
|
-
};
|
|
191
|
-
export {
|
|
192
|
-
diagram
|
|
193
|
-
};
|