@readme/markdown 9.3.0 → 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.
Files changed (122) hide show
  1. package/dist/10.node.js +20064 -19229
  2. package/dist/10.node.js.map +1 -1
  3. package/dist/122.node.js +23 -0
  4. package/dist/122.node.js.map +1 -0
  5. package/dist/{17.node.js → 135.node.js} +109 -110
  6. package/dist/135.node.js.map +1 -0
  7. package/dist/136.node.js +23 -0
  8. package/dist/136.node.js.map +1 -0
  9. package/dist/{52.node.js → 188.node.js} +211 -196
  10. package/dist/188.node.js.map +1 -0
  11. package/dist/214.node.js +1280 -0
  12. package/dist/214.node.js.map +1 -0
  13. package/dist/23.node.js +2563 -0
  14. package/dist/23.node.js.map +1 -0
  15. package/dist/{867.node.js → 311.node.js} +95 -95
  16. package/dist/{867.node.js.map → 311.node.js.map} +1 -1
  17. package/dist/{940.node.js → 339.node.js} +3 -75
  18. package/dist/339.node.js.map +1 -0
  19. package/dist/354.node.js +23 -0
  20. package/dist/354.node.js.map +1 -0
  21. package/dist/359.node.js +2001 -0
  22. package/dist/359.node.js.map +1 -0
  23. package/dist/364.node.js +4435 -0
  24. package/dist/364.node.js.map +1 -0
  25. package/dist/{429.node.js → 371.node.js} +196 -139
  26. package/dist/371.node.js.map +1 -0
  27. package/dist/{687.node.js → 38.node.js} +761 -761
  28. package/dist/38.node.js.map +1 -0
  29. package/dist/391.node.js +522 -0
  30. package/dist/391.node.js.map +1 -0
  31. package/dist/462.node.js +23 -0
  32. package/dist/462.node.js.map +1 -0
  33. package/dist/48.node.js +57 -0
  34. package/dist/48.node.js.map +1 -0
  35. package/dist/486.node.js +16267 -14851
  36. package/dist/486.node.js.map +1 -1
  37. package/dist/537.node.js +59 -0
  38. package/dist/537.node.js.map +1 -0
  39. package/dist/550.node.js +201 -1408
  40. package/dist/550.node.js.map +1 -1
  41. package/dist/{403.node.js → 572.node.js} +118 -118
  42. package/dist/572.node.js.map +1 -0
  43. package/dist/580.node.js +1324 -0
  44. package/dist/580.node.js.map +1 -0
  45. package/dist/{952.node.js → 649.node.js} +39 -39
  46. package/dist/{952.node.js.map → 649.node.js.map} +1 -1
  47. package/dist/740.node.js +23 -0
  48. package/dist/740.node.js.map +1 -0
  49. package/dist/741.node.js +23 -0
  50. package/dist/741.node.js.map +1 -0
  51. package/dist/779.node.js +57 -0
  52. package/dist/779.node.js.map +1 -0
  53. package/dist/805.node.js +1355 -0
  54. package/dist/805.node.js.map +1 -0
  55. package/dist/{246.node.js → 855.node.js} +671 -495
  56. package/dist/855.node.js.map +1 -0
  57. package/dist/{11.node.js → 870.node.js} +70 -63
  58. package/dist/870.node.js.map +1 -0
  59. package/dist/874.node.js +57 -0
  60. package/dist/874.node.js.map +1 -0
  61. package/dist/881.node.js +1344 -720
  62. package/dist/881.node.js.map +1 -1
  63. package/dist/{906.node.js → 890.node.js} +147 -147
  64. package/dist/{906.node.js.map → 890.node.js.map} +1 -1
  65. package/dist/898.node.js +361 -0
  66. package/dist/898.node.js.map +1 -0
  67. package/dist/{551.node.js → 912.node.js} +133 -133
  68. package/dist/{551.node.js.map → 912.node.js.map} +1 -1
  69. package/dist/{745.node.js → 915.node.js} +86 -85
  70. package/dist/915.node.js.map +1 -0
  71. package/dist/982.node.js +1132 -0
  72. package/dist/982.node.js.map +1 -0
  73. package/dist/995.node.js +189 -159
  74. package/dist/995.node.js.map +1 -1
  75. package/dist/lib/plain.d.ts +1 -1
  76. package/dist/main.js +1881 -331
  77. package/dist/main.node.js +1872 -332
  78. package/dist/main.node.js.map +1 -1
  79. package/package.json +1 -2
  80. package/dist/11.node.js.map +0 -1
  81. package/dist/120.node.js +0 -23
  82. package/dist/120.node.js.map +0 -1
  83. package/dist/134.node.js +0 -23
  84. package/dist/134.node.js.map +0 -1
  85. package/dist/150.node.js +0 -1892
  86. package/dist/150.node.js.map +0 -1
  87. package/dist/17.node.js.map +0 -1
  88. package/dist/246.node.js.map +0 -1
  89. package/dist/351.node.js +0 -2404
  90. package/dist/351.node.js.map +0 -1
  91. package/dist/366.node.js +0 -1185
  92. package/dist/366.node.js.map +0 -1
  93. package/dist/403.node.js.map +0 -1
  94. package/dist/429.node.js.map +0 -1
  95. package/dist/485.node.js +0 -518
  96. package/dist/485.node.js.map +0 -1
  97. package/dist/488.node.js +0 -59
  98. package/dist/488.node.js.map +0 -1
  99. package/dist/510.node.js +0 -250
  100. package/dist/510.node.js.map +0 -1
  101. package/dist/52.node.js.map +0 -1
  102. package/dist/617.node.js +0 -23
  103. package/dist/617.node.js.map +0 -1
  104. package/dist/687.node.js.map +0 -1
  105. package/dist/745.node.js.map +0 -1
  106. package/dist/775.node.js +0 -1904
  107. package/dist/775.node.js.map +0 -1
  108. package/dist/788.node.js +0 -1025
  109. package/dist/788.node.js.map +0 -1
  110. package/dist/81.node.js +0 -386
  111. package/dist/81.node.js.map +0 -1
  112. package/dist/849.node.js +0 -2590
  113. package/dist/849.node.js.map +0 -1
  114. package/dist/863.node.js +0 -23
  115. package/dist/863.node.js.map +0 -1
  116. package/dist/885.node.js +0 -52
  117. package/dist/885.node.js.map +0 -1
  118. package/dist/896.node.js +0 -1617
  119. package/dist/896.node.js.map +0 -1
  120. package/dist/91.node.js +0 -23
  121. package/dist/91.node.js.map +0 -1
  122. package/dist/940.node.js.map +0 -1
@@ -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":""}