@readme/markdown 9.2.2 → 9.3.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/components/TutorialTile.tsx +46 -0
- package/components/index.ts +1 -0
- package/dist/10.node.js +20064 -19229
- package/dist/10.node.js.map +1 -1
- package/dist/122.node.js +23 -0
- package/dist/122.node.js.map +1 -0
- package/dist/{17.node.js → 135.node.js} +109 -110
- package/dist/135.node.js.map +1 -0
- package/dist/136.node.js +23 -0
- package/dist/136.node.js.map +1 -0
- package/dist/{52.node.js → 188.node.js} +211 -196
- package/dist/188.node.js.map +1 -0
- package/dist/214.node.js +1280 -0
- package/dist/214.node.js.map +1 -0
- package/dist/23.node.js +2563 -0
- package/dist/23.node.js.map +1 -0
- package/dist/{867.node.js → 311.node.js} +95 -95
- package/dist/{867.node.js.map → 311.node.js.map} +1 -1
- package/dist/{940.node.js → 339.node.js} +3 -75
- package/dist/339.node.js.map +1 -0
- package/dist/354.node.js +23 -0
- package/dist/354.node.js.map +1 -0
- package/dist/359.node.js +2001 -0
- package/dist/359.node.js.map +1 -0
- package/dist/364.node.js +4435 -0
- package/dist/364.node.js.map +1 -0
- package/dist/{429.node.js → 371.node.js} +196 -139
- package/dist/371.node.js.map +1 -0
- package/dist/{687.node.js → 38.node.js} +761 -761
- package/dist/38.node.js.map +1 -0
- package/dist/391.node.js +522 -0
- package/dist/391.node.js.map +1 -0
- package/dist/462.node.js +23 -0
- package/dist/462.node.js.map +1 -0
- package/dist/48.node.js +57 -0
- package/dist/48.node.js.map +1 -0
- package/dist/486.node.js +16267 -14851
- package/dist/486.node.js.map +1 -1
- package/dist/537.node.js +59 -0
- package/dist/537.node.js.map +1 -0
- package/dist/550.node.js +201 -1408
- package/dist/550.node.js.map +1 -1
- package/dist/{403.node.js → 572.node.js} +118 -118
- package/dist/572.node.js.map +1 -0
- package/dist/580.node.js +1324 -0
- package/dist/580.node.js.map +1 -0
- package/dist/{952.node.js → 649.node.js} +39 -39
- package/dist/{952.node.js.map → 649.node.js.map} +1 -1
- package/dist/740.node.js +23 -0
- package/dist/740.node.js.map +1 -0
- package/dist/741.node.js +23 -0
- package/dist/741.node.js.map +1 -0
- package/dist/779.node.js +57 -0
- package/dist/779.node.js.map +1 -0
- package/dist/805.node.js +1355 -0
- package/dist/805.node.js.map +1 -0
- package/dist/{246.node.js → 855.node.js} +671 -495
- package/dist/855.node.js.map +1 -0
- package/dist/{11.node.js → 870.node.js} +70 -63
- package/dist/870.node.js.map +1 -0
- package/dist/874.node.js +57 -0
- package/dist/874.node.js.map +1 -0
- package/dist/881.node.js +1344 -720
- package/dist/881.node.js.map +1 -1
- package/dist/{906.node.js → 890.node.js} +147 -147
- package/dist/{906.node.js.map → 890.node.js.map} +1 -1
- package/dist/898.node.js +361 -0
- package/dist/898.node.js.map +1 -0
- package/dist/{551.node.js → 912.node.js} +133 -133
- package/dist/{551.node.js.map → 912.node.js.map} +1 -1
- package/dist/{745.node.js → 915.node.js} +86 -85
- package/dist/915.node.js.map +1 -0
- package/dist/982.node.js +1132 -0
- package/dist/982.node.js.map +1 -0
- package/dist/995.node.js +189 -159
- package/dist/995.node.js.map +1 -1
- package/dist/components/TutorialTile.d.ts +3 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/example/RenderError.d.ts +1 -1
- package/dist/lib/plain.d.ts +1 -1
- package/dist/main.js +1921 -332
- package/dist/main.node.js +1912 -333
- package/dist/main.node.js.map +1 -1
- package/package.json +1 -2
- package/dist/11.node.js.map +0 -1
- package/dist/120.node.js +0 -23
- package/dist/120.node.js.map +0 -1
- package/dist/134.node.js +0 -23
- package/dist/134.node.js.map +0 -1
- package/dist/150.node.js +0 -1892
- package/dist/150.node.js.map +0 -1
- package/dist/17.node.js.map +0 -1
- package/dist/246.node.js.map +0 -1
- package/dist/351.node.js +0 -2404
- package/dist/351.node.js.map +0 -1
- package/dist/366.node.js +0 -1185
- package/dist/366.node.js.map +0 -1
- package/dist/403.node.js.map +0 -1
- package/dist/429.node.js.map +0 -1
- package/dist/485.node.js +0 -518
- package/dist/485.node.js.map +0 -1
- package/dist/488.node.js +0 -59
- package/dist/488.node.js.map +0 -1
- package/dist/510.node.js +0 -250
- package/dist/510.node.js.map +0 -1
- package/dist/52.node.js.map +0 -1
- package/dist/617.node.js +0 -23
- package/dist/617.node.js.map +0 -1
- package/dist/687.node.js.map +0 -1
- package/dist/745.node.js.map +0 -1
- package/dist/775.node.js +0 -1904
- package/dist/775.node.js.map +0 -1
- package/dist/788.node.js +0 -1025
- package/dist/788.node.js.map +0 -1
- package/dist/81.node.js +0 -386
- package/dist/81.node.js.map +0 -1
- package/dist/849.node.js +0 -2590
- package/dist/849.node.js.map +0 -1
- package/dist/863.node.js +0 -23
- package/dist/863.node.js.map +0 -1
- package/dist/885.node.js +0 -52
- package/dist/885.node.js.map +0 -1
- package/dist/896.node.js +0 -1617
- package/dist/896.node.js.map +0 -1
- package/dist/91.node.js +0 -23
- package/dist/91.node.js.map +0 -1
- package/dist/940.node.js.map +0 -1
package/dist/898.node.js
ADDED
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.id = 898;
|
|
3
|
+
exports.ids = [898];
|
|
4
|
+
exports.modules = {
|
|
5
|
+
|
|
6
|
+
/***/ 9163:
|
|
7
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8
|
+
|
|
9
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10
|
+
/* harmony export */ S: () => (/* binding */ populateCommonDb)
|
|
11
|
+
/* harmony export */ });
|
|
12
|
+
/* harmony import */ var _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3804);
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
// src/diagrams/common/populateCommonDb.ts
|
|
16
|
+
function populateCommonDb(ast, db) {
|
|
17
|
+
if (ast.accDescr) {
|
|
18
|
+
db.setAccDescription?.(ast.accDescr);
|
|
19
|
+
}
|
|
20
|
+
if (ast.accTitle) {
|
|
21
|
+
db.setAccTitle?.(ast.accTitle);
|
|
22
|
+
}
|
|
23
|
+
if (ast.title) {
|
|
24
|
+
db.setDiagramTitle?.(ast.title);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
(0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_0__/* .__name */ .K2)(populateCommonDb, "populateCommonDb");
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
/***/ }),
|
|
33
|
+
|
|
34
|
+
/***/ 898:
|
|
35
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
36
|
+
|
|
37
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
38
|
+
/* harmony export */ diagram: () => (/* binding */ diagram)
|
|
39
|
+
/* harmony export */ });
|
|
40
|
+
/* harmony import */ var _chunk_4BMEZGHF_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9163);
|
|
41
|
+
/* harmony import */ var _chunk_O4NI6UNU_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8430);
|
|
42
|
+
/* harmony import */ var _chunk_7B677QYD_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3113);
|
|
43
|
+
/* harmony import */ var _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3804);
|
|
44
|
+
/* harmony import */ var _mermaid_js_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4010);
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
// src/diagrams/radar/db.ts
|
|
51
|
+
var defaultOptions = {
|
|
52
|
+
showLegend: true,
|
|
53
|
+
ticks: 5,
|
|
54
|
+
max: null,
|
|
55
|
+
min: 0,
|
|
56
|
+
graticule: "circle"
|
|
57
|
+
};
|
|
58
|
+
var defaultRadarData = {
|
|
59
|
+
axes: [],
|
|
60
|
+
curves: [],
|
|
61
|
+
options: defaultOptions
|
|
62
|
+
};
|
|
63
|
+
var data = structuredClone(defaultRadarData);
|
|
64
|
+
var DEFAULT_RADAR_CONFIG = _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .defaultConfig_default */ .UI.radar;
|
|
65
|
+
var getConfig2 = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(() => {
|
|
66
|
+
const config = (0,_chunk_O4NI6UNU_mjs__WEBPACK_IMPORTED_MODULE_1__/* .cleanAndMerge */ .$t)({
|
|
67
|
+
...DEFAULT_RADAR_CONFIG,
|
|
68
|
+
...(0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .getConfig */ .zj)().radar
|
|
69
|
+
});
|
|
70
|
+
return config;
|
|
71
|
+
}, "getConfig");
|
|
72
|
+
var getAxes = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(() => data.axes, "getAxes");
|
|
73
|
+
var getCurves = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(() => data.curves, "getCurves");
|
|
74
|
+
var getOptions = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(() => data.options, "getOptions");
|
|
75
|
+
var setAxes = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((axes) => {
|
|
76
|
+
data.axes = axes.map((axis) => {
|
|
77
|
+
return {
|
|
78
|
+
name: axis.name,
|
|
79
|
+
label: axis.label ?? axis.name
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}, "setAxes");
|
|
83
|
+
var setCurves = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((curves) => {
|
|
84
|
+
data.curves = curves.map((curve) => {
|
|
85
|
+
return {
|
|
86
|
+
name: curve.name,
|
|
87
|
+
label: curve.label ?? curve.name,
|
|
88
|
+
entries: computeCurveEntries(curve.entries)
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}, "setCurves");
|
|
92
|
+
var computeCurveEntries = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((entries) => {
|
|
93
|
+
if (entries[0].axis == void 0) {
|
|
94
|
+
return entries.map((entry) => entry.value);
|
|
95
|
+
}
|
|
96
|
+
const axes = getAxes();
|
|
97
|
+
if (axes.length === 0) {
|
|
98
|
+
throw new Error("Axes must be populated before curves for reference entries");
|
|
99
|
+
}
|
|
100
|
+
return axes.map((axis) => {
|
|
101
|
+
const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);
|
|
102
|
+
if (entry === void 0) {
|
|
103
|
+
throw new Error("Missing entry for axis " + axis.label);
|
|
104
|
+
}
|
|
105
|
+
return entry.value;
|
|
106
|
+
});
|
|
107
|
+
}, "computeCurveEntries");
|
|
108
|
+
var setOptions = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((options) => {
|
|
109
|
+
const optionMap = options.reduce(
|
|
110
|
+
(acc, option) => {
|
|
111
|
+
acc[option.name] = option;
|
|
112
|
+
return acc;
|
|
113
|
+
},
|
|
114
|
+
{}
|
|
115
|
+
);
|
|
116
|
+
data.options = {
|
|
117
|
+
showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,
|
|
118
|
+
ticks: optionMap.ticks?.value ?? defaultOptions.ticks,
|
|
119
|
+
max: optionMap.max?.value ?? defaultOptions.max,
|
|
120
|
+
min: optionMap.min?.value ?? defaultOptions.min,
|
|
121
|
+
graticule: optionMap.graticule?.value ?? defaultOptions.graticule
|
|
122
|
+
};
|
|
123
|
+
}, "setOptions");
|
|
124
|
+
var clear2 = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(() => {
|
|
125
|
+
(0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .clear */ .IU)();
|
|
126
|
+
data = structuredClone(defaultRadarData);
|
|
127
|
+
}, "clear");
|
|
128
|
+
var db = {
|
|
129
|
+
getAxes,
|
|
130
|
+
getCurves,
|
|
131
|
+
getOptions,
|
|
132
|
+
setAxes,
|
|
133
|
+
setCurves,
|
|
134
|
+
setOptions,
|
|
135
|
+
getConfig: getConfig2,
|
|
136
|
+
clear: clear2,
|
|
137
|
+
setAccTitle: _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .setAccTitle */ .SV,
|
|
138
|
+
getAccTitle: _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .getAccTitle */ .iN,
|
|
139
|
+
setDiagramTitle: _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .setDiagramTitle */ .ke,
|
|
140
|
+
getDiagramTitle: _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .getDiagramTitle */ .ab,
|
|
141
|
+
getAccDescription: _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .getAccDescription */ .m7,
|
|
142
|
+
setAccDescription: _chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .setAccDescription */ .EI
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// src/diagrams/radar/parser.ts
|
|
146
|
+
|
|
147
|
+
var populate = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((ast) => {
|
|
148
|
+
(0,_chunk_4BMEZGHF_mjs__WEBPACK_IMPORTED_MODULE_0__/* .populateCommonDb */ .S)(ast, db);
|
|
149
|
+
const { axes, curves, options } = ast;
|
|
150
|
+
db.setAxes(axes);
|
|
151
|
+
db.setCurves(curves);
|
|
152
|
+
db.setOptions(options);
|
|
153
|
+
}, "populate");
|
|
154
|
+
var parser = {
|
|
155
|
+
parse: /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(async (input) => {
|
|
156
|
+
const ast = await (0,_mermaid_js_parser__WEBPACK_IMPORTED_MODULE_4__/* .parse */ .qg)("radar", input);
|
|
157
|
+
_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .log */ .Rm.debug(ast);
|
|
158
|
+
populate(ast);
|
|
159
|
+
}, "parse")
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
// src/diagrams/radar/renderer.ts
|
|
163
|
+
var draw = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((_text, id, _version, diagram2) => {
|
|
164
|
+
const db2 = diagram2.db;
|
|
165
|
+
const axes = db2.getAxes();
|
|
166
|
+
const curves = db2.getCurves();
|
|
167
|
+
const options = db2.getOptions();
|
|
168
|
+
const config = db2.getConfig();
|
|
169
|
+
const title = db2.getDiagramTitle();
|
|
170
|
+
const svg = (0,_chunk_7B677QYD_mjs__WEBPACK_IMPORTED_MODULE_2__/* .selectSvgElement */ .D)(id);
|
|
171
|
+
const g = drawFrame(svg, config);
|
|
172
|
+
const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));
|
|
173
|
+
const minValue = options.min;
|
|
174
|
+
const radius = Math.min(config.width, config.height) / 2;
|
|
175
|
+
drawGraticule(g, axes, radius, options.ticks, options.graticule);
|
|
176
|
+
drawAxes(g, axes, radius, config);
|
|
177
|
+
drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);
|
|
178
|
+
drawLegend(g, curves, options.showLegend, config);
|
|
179
|
+
g.append("text").attr("class", "radarTitle").text(title).attr("x", 0).attr("y", -config.height / 2 - config.marginTop);
|
|
180
|
+
}, "draw");
|
|
181
|
+
var drawFrame = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((svg, config) => {
|
|
182
|
+
const totalWidth = config.width + config.marginLeft + config.marginRight;
|
|
183
|
+
const totalHeight = config.height + config.marginTop + config.marginBottom;
|
|
184
|
+
const center = {
|
|
185
|
+
x: config.marginLeft + config.width / 2,
|
|
186
|
+
y: config.marginTop + config.height / 2
|
|
187
|
+
};
|
|
188
|
+
svg.attr("viewbox", `0 0 ${totalWidth} ${totalHeight}`).attr("width", totalWidth).attr("height", totalHeight);
|
|
189
|
+
return svg.append("g").attr("transform", `translate(${center.x}, ${center.y})`);
|
|
190
|
+
}, "drawFrame");
|
|
191
|
+
var drawGraticule = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((g, axes, radius, ticks, graticule) => {
|
|
192
|
+
if (graticule === "circle") {
|
|
193
|
+
for (let i = 0; i < ticks; i++) {
|
|
194
|
+
const r = radius * (i + 1) / ticks;
|
|
195
|
+
g.append("circle").attr("r", r).attr("class", "radarGraticule");
|
|
196
|
+
}
|
|
197
|
+
} else if (graticule === "polygon") {
|
|
198
|
+
const numAxes = axes.length;
|
|
199
|
+
for (let i = 0; i < ticks; i++) {
|
|
200
|
+
const r = radius * (i + 1) / ticks;
|
|
201
|
+
const points = axes.map((_, j) => {
|
|
202
|
+
const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;
|
|
203
|
+
const x = r * Math.cos(angle);
|
|
204
|
+
const y = r * Math.sin(angle);
|
|
205
|
+
return `${x},${y}`;
|
|
206
|
+
}).join(" ");
|
|
207
|
+
g.append("polygon").attr("points", points).attr("class", "radarGraticule");
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}, "drawGraticule");
|
|
211
|
+
var drawAxes = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((g, axes, radius, config) => {
|
|
212
|
+
const numAxes = axes.length;
|
|
213
|
+
for (let i = 0; i < numAxes; i++) {
|
|
214
|
+
const label = axes[i].label;
|
|
215
|
+
const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;
|
|
216
|
+
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");
|
|
217
|
+
g.append("text").text(label).attr("x", radius * config.axisLabelFactor * Math.cos(angle)).attr("y", radius * config.axisLabelFactor * Math.sin(angle)).attr("class", "radarAxisLabel");
|
|
218
|
+
}
|
|
219
|
+
}, "drawAxes");
|
|
220
|
+
function drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {
|
|
221
|
+
const numAxes = axes.length;
|
|
222
|
+
const radius = Math.min(config.width, config.height) / 2;
|
|
223
|
+
curves.forEach((curve, index) => {
|
|
224
|
+
if (curve.entries.length !== numAxes) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const points = curve.entries.map((entry, i) => {
|
|
228
|
+
const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;
|
|
229
|
+
const r = relativeRadius(entry, minValue, maxValue, radius);
|
|
230
|
+
const x = r * Math.cos(angle);
|
|
231
|
+
const y = r * Math.sin(angle);
|
|
232
|
+
return { x, y };
|
|
233
|
+
});
|
|
234
|
+
if (graticule === "circle") {
|
|
235
|
+
g.append("path").attr("d", closedRoundCurve(points, config.curveTension)).attr("class", `radarCurve-${index}`);
|
|
236
|
+
} else if (graticule === "polygon") {
|
|
237
|
+
g.append("polygon").attr("points", points.map((p) => `${p.x},${p.y}`).join(" ")).attr("class", `radarCurve-${index}`);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
(0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(drawCurves, "drawCurves");
|
|
242
|
+
function relativeRadius(value, minValue, maxValue, radius) {
|
|
243
|
+
const clippedValue = Math.min(Math.max(value, minValue), maxValue);
|
|
244
|
+
return radius * (clippedValue - minValue) / (maxValue - minValue);
|
|
245
|
+
}
|
|
246
|
+
(0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(relativeRadius, "relativeRadius");
|
|
247
|
+
function closedRoundCurve(points, tension) {
|
|
248
|
+
const numPoints = points.length;
|
|
249
|
+
let d = `M${points[0].x},${points[0].y}`;
|
|
250
|
+
for (let i = 0; i < numPoints; i++) {
|
|
251
|
+
const p0 = points[(i - 1 + numPoints) % numPoints];
|
|
252
|
+
const p1 = points[i];
|
|
253
|
+
const p2 = points[(i + 1) % numPoints];
|
|
254
|
+
const p3 = points[(i + 2) % numPoints];
|
|
255
|
+
const cp1 = {
|
|
256
|
+
x: p1.x + (p2.x - p0.x) * tension,
|
|
257
|
+
y: p1.y + (p2.y - p0.y) * tension
|
|
258
|
+
};
|
|
259
|
+
const cp2 = {
|
|
260
|
+
x: p2.x - (p3.x - p1.x) * tension,
|
|
261
|
+
y: p2.y - (p3.y - p1.y) * tension
|
|
262
|
+
};
|
|
263
|
+
d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;
|
|
264
|
+
}
|
|
265
|
+
return `${d} Z`;
|
|
266
|
+
}
|
|
267
|
+
(0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(closedRoundCurve, "closedRoundCurve");
|
|
268
|
+
function drawLegend(g, curves, showLegend, config) {
|
|
269
|
+
if (!showLegend) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const legendX = (config.width / 2 + config.marginRight) * 3 / 4;
|
|
273
|
+
const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;
|
|
274
|
+
const lineHeight = 20;
|
|
275
|
+
curves.forEach((curve, index) => {
|
|
276
|
+
const itemGroup = g.append("g").attr("transform", `translate(${legendX}, ${legendY + index * lineHeight})`);
|
|
277
|
+
itemGroup.append("rect").attr("width", 12).attr("height", 12).attr("class", `radarLegendBox-${index}`);
|
|
278
|
+
itemGroup.append("text").attr("x", 16).attr("y", 0).attr("class", "radarLegendText").text(curve.label);
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
(0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(drawLegend, "drawLegend");
|
|
282
|
+
var renderer = { draw };
|
|
283
|
+
|
|
284
|
+
// src/diagrams/radar/styles.ts
|
|
285
|
+
var genIndexStyles = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((themeVariables, radarOptions) => {
|
|
286
|
+
let sections = "";
|
|
287
|
+
for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {
|
|
288
|
+
const indexColor = themeVariables[`cScale${i}`];
|
|
289
|
+
sections += `
|
|
290
|
+
.radarCurve-${i} {
|
|
291
|
+
color: ${indexColor};
|
|
292
|
+
fill: ${indexColor};
|
|
293
|
+
fill-opacity: ${radarOptions.curveOpacity};
|
|
294
|
+
stroke: ${indexColor};
|
|
295
|
+
stroke-width: ${radarOptions.curveStrokeWidth};
|
|
296
|
+
}
|
|
297
|
+
.radarLegendBox-${i} {
|
|
298
|
+
fill: ${indexColor};
|
|
299
|
+
fill-opacity: ${radarOptions.curveOpacity};
|
|
300
|
+
stroke: ${indexColor};
|
|
301
|
+
}
|
|
302
|
+
`;
|
|
303
|
+
}
|
|
304
|
+
return sections;
|
|
305
|
+
}, "genIndexStyles");
|
|
306
|
+
var buildRadarStyleOptions = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)((radar) => {
|
|
307
|
+
const defaultThemeVariables = (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .getThemeVariables */ .P$)();
|
|
308
|
+
const currentConfig = (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .getConfig */ .zj)();
|
|
309
|
+
const themeVariables = (0,_chunk_O4NI6UNU_mjs__WEBPACK_IMPORTED_MODULE_1__/* .cleanAndMerge */ .$t)(defaultThemeVariables, currentConfig.themeVariables);
|
|
310
|
+
const radarOptions = (0,_chunk_O4NI6UNU_mjs__WEBPACK_IMPORTED_MODULE_1__/* .cleanAndMerge */ .$t)(themeVariables.radar, radar);
|
|
311
|
+
return { themeVariables, radarOptions };
|
|
312
|
+
}, "buildRadarStyleOptions");
|
|
313
|
+
var styles = /* @__PURE__ */ (0,_chunk_YTJNT7DU_mjs__WEBPACK_IMPORTED_MODULE_3__/* .__name */ .K2)(({ radar } = {}) => {
|
|
314
|
+
const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);
|
|
315
|
+
return `
|
|
316
|
+
.radarTitle {
|
|
317
|
+
font-size: ${themeVariables.fontSize};
|
|
318
|
+
color: ${themeVariables.titleColor};
|
|
319
|
+
dominant-baseline: hanging;
|
|
320
|
+
text-anchor: middle;
|
|
321
|
+
}
|
|
322
|
+
.radarAxisLine {
|
|
323
|
+
stroke: ${radarOptions.axisColor};
|
|
324
|
+
stroke-width: ${radarOptions.axisStrokeWidth};
|
|
325
|
+
}
|
|
326
|
+
.radarAxisLabel {
|
|
327
|
+
dominant-baseline: middle;
|
|
328
|
+
text-anchor: middle;
|
|
329
|
+
font-size: ${radarOptions.axisLabelFontSize}px;
|
|
330
|
+
color: ${radarOptions.axisColor};
|
|
331
|
+
}
|
|
332
|
+
.radarGraticule {
|
|
333
|
+
fill: ${radarOptions.graticuleColor};
|
|
334
|
+
fill-opacity: ${radarOptions.graticuleOpacity};
|
|
335
|
+
stroke: ${radarOptions.graticuleColor};
|
|
336
|
+
stroke-width: ${radarOptions.graticuleStrokeWidth};
|
|
337
|
+
}
|
|
338
|
+
.radarLegendText {
|
|
339
|
+
text-anchor: start;
|
|
340
|
+
font-size: ${radarOptions.legendFontSize}px;
|
|
341
|
+
dominant-baseline: hanging;
|
|
342
|
+
}
|
|
343
|
+
${genIndexStyles(themeVariables, radarOptions)}
|
|
344
|
+
`;
|
|
345
|
+
}, "styles");
|
|
346
|
+
|
|
347
|
+
// src/diagrams/radar/diagram.ts
|
|
348
|
+
var diagram = {
|
|
349
|
+
parser,
|
|
350
|
+
db,
|
|
351
|
+
renderer,
|
|
352
|
+
styles
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
/***/ })
|
|
358
|
+
|
|
359
|
+
};
|
|
360
|
+
;
|
|
361
|
+
//# sourceMappingURL=898.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"898.node.js","mappings":";;;;;;;;;;;;AAE8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAM;;AAIJ;;;;;;;;;;;;;;;;AClB4B;AAGA;AAGA;AAcA;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gFAAqB;AAChD,iCAAiC,qEAAM;AACvC,iBAAiB,4EAAa;AAC9B;AACA,OAAO,wEAAS;AAChB,GAAG;AACH;AACA,CAAC;AACD,8BAA8B,qEAAM;AACpC,gCAAgC,qEAAM;AACtC,iCAAiC,qEAAM;AACvC,8BAA8B,qEAAM;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,gCAAgC,qEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,0CAA0C,qEAAM;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,iCAAiC,qEAAM;AACvC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6BAA6B,qEAAM;AACnC,EAAE,oEAAK;AACP;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb,iBAAiB;AACjB,iBAAiB;AACjB,mBAAmB;AACnB,mBAAmB;AACnB;;AAEA;AAC2C;AAC3C,+BAA+B,qEAAM;AACrC,EAAE,8EAAgB;AAClB,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,CAAC;AACD;AACA,yBAAyB,qEAAM;AAC/B,sBAAsB,mEAAK;AAC3B,IAAI,8DAAG;AACP;AACA,GAAG;AACH;;AAEA;AACA,2BAA2B,qEAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gCAAgC,qEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,YAAY,EAAE,YAAY;AACvD,wDAAwD,SAAS,IAAI,SAAS;AAC9E,CAAC;AACD,oCAAoC,qEAAM;AAC1C;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA,IAAI;AACJ;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE,GAAG,EAAE;AACzB,OAAO;AACP;AACA;AACA;AACA,CAAC;AACD,+BAA+B,qEAAM;AACrC;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,KAAK;AACL;AACA,4GAA4G,MAAM;AAClH,MAAM;AACN,8DAA8D,IAAI,GAAG,IAAI,0CAA0C,MAAM;AACzH;AACA,GAAG;AACH;AACA,qEAAM;AACN;AACA;AACA;AACA;AACA,qEAAM;AACN;AACA;AACA,cAAc,YAAY,GAAG,YAAY;AACzC,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,GAAG,KAAK;AAC/D;AACA,YAAY,GAAG;AACf;AACA,qEAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ,IAAI,6BAA6B;AAC5G,kGAAkG,MAAM;AACxG;AACA,GAAG;AACH;AACA,qEAAM;AACN,iBAAiB;;AAEjB;AACA,qCAAqC,qEAAM;AAC3C;AACA,kBAAkB,sCAAsC;AACxD,+CAA+C,EAAE;AACjD;AACA,gBAAgB;AAChB,YAAY;AACZ,WAAW;AACX,mBAAmB;AACnB,aAAa;AACb,mBAAmB;AACnB;AACA,oBAAoB;AACpB,WAAW;AACX,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;AACD,6CAA6C,qEAAM;AACnD,gCAAgC,gFAAiB;AACjD,wBAAwB,wEAAS;AACjC,yBAAyB,4EAAa;AACtC,uBAAuB,4EAAa;AACpC,WAAW;AACX,CAAC;AACD,6BAA6B,qEAAM,IAAI,QAAQ,IAAI;AACnD,UAAU,+BAA+B;AACzC;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA,YAAY;AACZ,kBAAkB;AAClB;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C,WAAW;AACX;AACA;AACA,UAAU;AACV,kBAAkB;AAClB,YAAY;AACZ,kBAAkB;AAClB;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AAGE","sources":["webpack://@readme/markdown/./node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BMEZGHF.mjs","webpack://@readme/markdown/./node_modules/mermaid/dist/chunks/mermaid.core/diagram-SSKATNLV.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-YTJNT7DU.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n","import {\n populateCommonDb\n} from \"./chunk-4BMEZGHF.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-O4NI6UNU.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-7B677QYD.mjs\";\nimport {\n __name,\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-YTJNT7DU.mjs\";\n\n// src/diagrams/radar/db.ts\nvar defaultOptions = {\n showLegend: true,\n ticks: 5,\n max: null,\n min: 0,\n graticule: \"circle\"\n};\nvar defaultRadarData = {\n axes: [],\n curves: [],\n options: defaultOptions\n};\nvar data = structuredClone(defaultRadarData);\nvar DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_RADAR_CONFIG,\n ...getConfig().radar\n });\n return config;\n}, \"getConfig\");\nvar getAxes = /* @__PURE__ */ __name(() => data.axes, \"getAxes\");\nvar getCurves = /* @__PURE__ */ __name(() => data.curves, \"getCurves\");\nvar getOptions = /* @__PURE__ */ __name(() => data.options, \"getOptions\");\nvar setAxes = /* @__PURE__ */ __name((axes) => {\n data.axes = axes.map((axis) => {\n return {\n name: axis.name,\n label: axis.label ?? axis.name\n };\n });\n}, \"setAxes\");\nvar setCurves = /* @__PURE__ */ __name((curves) => {\n data.curves = curves.map((curve) => {\n return {\n name: curve.name,\n label: curve.label ?? curve.name,\n entries: computeCurveEntries(curve.entries)\n };\n });\n}, \"setCurves\");\nvar computeCurveEntries = /* @__PURE__ */ __name((entries) => {\n if (entries[0].axis == void 0) {\n return entries.map((entry) => entry.value);\n }\n const axes = getAxes();\n if (axes.length === 0) {\n throw new Error(\"Axes must be populated before curves for reference entries\");\n }\n return axes.map((axis) => {\n const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);\n if (entry === void 0) {\n throw new Error(\"Missing entry for axis \" + axis.label);\n }\n return entry.value;\n });\n}, \"computeCurveEntries\");\nvar setOptions = /* @__PURE__ */ __name((options) => {\n const optionMap = options.reduce(\n (acc, option) => {\n acc[option.name] = option;\n return acc;\n },\n {}\n );\n data.options = {\n showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,\n ticks: optionMap.ticks?.value ?? defaultOptions.ticks,\n max: optionMap.max?.value ?? defaultOptions.max,\n min: optionMap.min?.value ?? defaultOptions.min,\n graticule: optionMap.graticule?.value ?? defaultOptions.graticule\n };\n}, \"setOptions\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultRadarData);\n}, \"clear\");\nvar db = {\n getAxes,\n getCurves,\n getOptions,\n setAxes,\n setCurves,\n setOptions,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/radar/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n const { axes, curves, options } = ast;\n db.setAxes(axes);\n db.setCurves(curves);\n db.setOptions(options);\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"radar\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/radar/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const axes = db2.getAxes();\n const curves = db2.getCurves();\n const options = db2.getOptions();\n const config = db2.getConfig();\n const title = db2.getDiagramTitle();\n const svg = selectSvgElement(id);\n const g = drawFrame(svg, config);\n const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));\n const minValue = options.min;\n const radius = Math.min(config.width, config.height) / 2;\n drawGraticule(g, axes, radius, options.ticks, options.graticule);\n drawAxes(g, axes, radius, config);\n drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);\n drawLegend(g, curves, options.showLegend, config);\n g.append(\"text\").attr(\"class\", \"radarTitle\").text(title).attr(\"x\", 0).attr(\"y\", -config.height / 2 - config.marginTop);\n}, \"draw\");\nvar drawFrame = /* @__PURE__ */ __name((svg, config) => {\n const totalWidth = config.width + config.marginLeft + config.marginRight;\n const totalHeight = config.height + config.marginTop + config.marginBottom;\n const center = {\n x: config.marginLeft + config.width / 2,\n y: config.marginTop + config.height / 2\n };\n svg.attr(\"viewbox\", `0 0 ${totalWidth} ${totalHeight}`).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n return svg.append(\"g\").attr(\"transform\", `translate(${center.x}, ${center.y})`);\n}, \"drawFrame\");\nvar drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {\n if (graticule === \"circle\") {\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n g.append(\"circle\").attr(\"r\", r).attr(\"class\", \"radarGraticule\");\n }\n } else if (graticule === \"polygon\") {\n const numAxes = axes.length;\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n const points = axes.map((_, j) => {\n const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return `${x},${y}`;\n }).join(\" \");\n g.append(\"polygon\").attr(\"points\", points).attr(\"class\", \"radarGraticule\");\n }\n }\n}, \"drawGraticule\");\nvar drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {\n const numAxes = axes.length;\n for (let i = 0; i < numAxes; i++) {\n const label = axes[i].label;\n const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;\n 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\");\n g.append(\"text\").text(label).attr(\"x\", radius * config.axisLabelFactor * Math.cos(angle)).attr(\"y\", radius * config.axisLabelFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLabel\");\n }\n}, \"drawAxes\");\nfunction drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {\n const numAxes = axes.length;\n const radius = Math.min(config.width, config.height) / 2;\n curves.forEach((curve, index) => {\n if (curve.entries.length !== numAxes) {\n return;\n }\n const points = curve.entries.map((entry, i) => {\n const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;\n const r = relativeRadius(entry, minValue, maxValue, radius);\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return { x, y };\n });\n if (graticule === \"circle\") {\n g.append(\"path\").attr(\"d\", closedRoundCurve(points, config.curveTension)).attr(\"class\", `radarCurve-${index}`);\n } else if (graticule === \"polygon\") {\n g.append(\"polygon\").attr(\"points\", points.map((p) => `${p.x},${p.y}`).join(\" \")).attr(\"class\", `radarCurve-${index}`);\n }\n });\n}\n__name(drawCurves, \"drawCurves\");\nfunction relativeRadius(value, minValue, maxValue, radius) {\n const clippedValue = Math.min(Math.max(value, minValue), maxValue);\n return radius * (clippedValue - minValue) / (maxValue - minValue);\n}\n__name(relativeRadius, \"relativeRadius\");\nfunction closedRoundCurve(points, tension) {\n const numPoints = points.length;\n let d = `M${points[0].x},${points[0].y}`;\n for (let i = 0; i < numPoints; i++) {\n const p0 = points[(i - 1 + numPoints) % numPoints];\n const p1 = points[i];\n const p2 = points[(i + 1) % numPoints];\n const p3 = points[(i + 2) % numPoints];\n const cp1 = {\n x: p1.x + (p2.x - p0.x) * tension,\n y: p1.y + (p2.y - p0.y) * tension\n };\n const cp2 = {\n x: p2.x - (p3.x - p1.x) * tension,\n y: p2.y - (p3.y - p1.y) * tension\n };\n d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;\n }\n return `${d} Z`;\n}\n__name(closedRoundCurve, \"closedRoundCurve\");\nfunction drawLegend(g, curves, showLegend, config) {\n if (!showLegend) {\n return;\n }\n const legendX = (config.width / 2 + config.marginRight) * 3 / 4;\n const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;\n const lineHeight = 20;\n curves.forEach((curve, index) => {\n const itemGroup = g.append(\"g\").attr(\"transform\", `translate(${legendX}, ${legendY + index * lineHeight})`);\n itemGroup.append(\"rect\").attr(\"width\", 12).attr(\"height\", 12).attr(\"class\", `radarLegendBox-${index}`);\n itemGroup.append(\"text\").attr(\"x\", 16).attr(\"y\", 0).attr(\"class\", \"radarLegendText\").text(curve.label);\n });\n}\n__name(drawLegend, \"drawLegend\");\nvar renderer = { draw };\n\n// src/diagrams/radar/styles.ts\nvar genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {\n let sections = \"\";\n for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {\n const indexColor = themeVariables[`cScale${i}`];\n sections += `\n\t\t.radarCurve-${i} {\n\t\t\tcolor: ${indexColor};\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t\tstroke-width: ${radarOptions.curveStrokeWidth};\n\t\t}\n\t\t.radarLegendBox-${i} {\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t}\n\t\t`;\n }\n return sections;\n}, \"genIndexStyles\");\nvar buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const radarOptions = cleanAndMerge(themeVariables.radar, radar);\n return { themeVariables, radarOptions };\n}, \"buildRadarStyleOptions\");\nvar styles = /* @__PURE__ */ __name(({ radar } = {}) => {\n const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);\n return `\n\t.radarTitle {\n\t\tfont-size: ${themeVariables.fontSize};\n\t\tcolor: ${themeVariables.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${radarOptions.axisColor};\n\t\tstroke-width: ${radarOptions.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tdominant-baseline: middle;\n\t\ttext-anchor: middle;\n\t\tfont-size: ${radarOptions.axisLabelFontSize}px;\n\t\tcolor: ${radarOptions.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${radarOptions.graticuleColor};\n\t\tfill-opacity: ${radarOptions.graticuleOpacity};\n\t\tstroke: ${radarOptions.graticuleColor};\n\t\tstroke-width: ${radarOptions.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${radarOptions.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${genIndexStyles(themeVariables, radarOptions)}\n\t`;\n}, \"styles\");\n\n// src/diagrams/radar/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":[],"sourceRoot":""}
|