@plumile/ui 0.1.99 → 0.1.101
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/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js → BackofficeJsonViewerAsync-niwHe9is.js} +2 -2
- package/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js.map → BackofficeJsonViewerAsync-niwHe9is.js.map} +1 -1
- package/lib/esm/HighlightCode-KpWSo7Zx.js.map +1 -1
- package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js → MarkdownCodeBlock-CLK5KJgU.js} +3 -3
- package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js.map → MarkdownCodeBlock-CLK5KJgU.js.map} +1 -1
- package/lib/esm/{MarkdownRenderer-DBpMvD98.js → MarkdownRenderer-c_Ic29c2.js} +2 -2
- package/lib/esm/{MarkdownRenderer-DBpMvD98.js.map → MarkdownRenderer-c_Ic29c2.js.map} +1 -1
- package/lib/esm/{MarkdownShikiCodeBlock-BhdpnKJo.js → MarkdownShikiCodeBlock-CbaOKfZO.js} +1180 -1175
- package/lib/esm/MarkdownShikiCodeBlock-CbaOKfZO.js.map +1 -0
- package/lib/esm/_baseFor-Z--4BB_X.js.map +1 -1
- package/lib/esm/arc-BUZ4igwO.js.map +1 -1
- package/lib/esm/architectureDiagram-Q4EWVU46-DpoNV55s.js.map +1 -1
- package/lib/esm/array-CTFiDRBi.js.map +1 -1
- package/lib/esm/blockDiagram-DXYQGD6D-DJxDffAk.js.map +1 -1
- package/lib/esm/c4Diagram-AHTNJAMY-DxAt6CyF.js.map +1 -1
- package/lib/esm/chunk-2KRD3SAO-C5ZUgIak.js.map +1 -1
- package/lib/esm/{chunk-336JU56O-24m8cXIL.js → chunk-336JU56O-BsMYboJR.js} +3 -3
- package/lib/esm/{chunk-336JU56O-24m8cXIL.js.map → chunk-336JU56O-BsMYboJR.js.map} +1 -1
- package/lib/esm/chunk-426QAEUC-b2PRuT9o.js.map +1 -1
- package/lib/esm/chunk-4BX2VUAB-BkyyJ41z.js.map +1 -1
- package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js → chunk-4TB4RGXK-LzOZn6e3.js} +2 -2
- package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js.map → chunk-4TB4RGXK-LzOZn6e3.js.map} +1 -1
- package/lib/esm/chunk-55IACEB6-CZ1WMXNv.js.map +1 -1
- package/lib/esm/chunk-5FUZZQ4R-Hp5ZXYAE.js.map +1 -1
- package/lib/esm/chunk-5PVQY5BW-CQdr0IGy.js.map +1 -1
- package/lib/esm/chunk-67CJDMHE-DQCJ08Vv.js.map +1 -1
- package/lib/esm/chunk-7N4EOEYR-CTdQRezU.js.map +1 -1
- package/lib/esm/chunk-AA7GKIK3-x61iJxkf.js.map +1 -1
- package/lib/esm/chunk-BSJP7CBP-BRqWaFD3.js.map +1 -1
- package/lib/esm/chunk-CIAEETIT-Dm4nDheA.js.map +1 -1
- package/lib/esm/chunk-EDXVE4YY-CyZVAPxl.js.map +1 -1
- package/lib/esm/chunk-ENJZ2VHE-D1RBdOy4.js.map +1 -1
- package/lib/esm/chunk-FOC6F5B3-DTxKWzfh.js.map +1 -1
- package/lib/esm/chunk-ICPOFSXX-BQ7-Poft.js.map +1 -1
- package/lib/esm/chunk-K5T4RW27-BZbwqbnj.js.map +1 -1
- package/lib/esm/chunk-KGLVRYIC-DGO8PqNS.js.map +1 -1
- package/lib/esm/chunk-LIHQZDEY-DRQpYuDY.js.map +1 -1
- package/lib/esm/chunk-ORNJ4GCN-BWnkQx42.js.map +1 -1
- package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js → chunk-OYMX7WX6-C3p3qx9s.js} +2 -2
- package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js.map → chunk-OYMX7WX6-C3p3qx9s.js.map} +1 -1
- package/lib/esm/chunk-QZHKN3VN-BIoC_CBh.js.map +1 -1
- package/lib/esm/chunk-U2HBQHQK-CNpf2t7b.js.map +1 -1
- package/lib/esm/chunk-X2U36JSP-Dh9T66Fy.js.map +1 -1
- package/lib/esm/chunk-XPW4576I-CdsuZylH.js.map +1 -1
- package/lib/esm/chunk-YZCP3GAM-D-LQWFJc.js.map +1 -1
- package/lib/esm/chunk-ZZ45TVLE-CP_4OsJR.js.map +1 -1
- package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js → classDiagram-6PBFFD2Q-CfucyocV.js} +3 -3
- package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js.map → classDiagram-6PBFFD2Q-CfucyocV.js.map} +1 -1
- package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js → classDiagram-v2-HSJHXN6E-BcU6iB1L.js} +3 -3
- package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js.map → classDiagram-v2-HSJHXN6E-BcU6iB1L.js.map} +1 -1
- package/lib/esm/clone-DhB5s2T9.js.map +1 -1
- package/lib/esm/cose-bilkent-S5V4N54A-BdVqhM8C.js.map +1 -1
- package/lib/esm/cytoscape.esm-CT-fsRss.js.map +1 -1
- package/lib/esm/dagre-BQULeUjQ.js.map +1 -1
- package/lib/esm/dagre-KV5264BT-DTy5YJ5_.js.map +1 -1
- package/lib/esm/diagram-5BDNPKRD-w19gCTBw.js.map +1 -1
- package/lib/esm/diagram-G4DWMVQ6-EfJtDPEB.js.map +1 -1
- package/lib/esm/diagram-MMDJMWI5-DsPB2uYP.js.map +1 -1
- package/lib/esm/diagram-TYMM5635-D3ecq7oF.js.map +1 -1
- package/lib/esm/dist-CZs_brJz.js.map +1 -1
- package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js → erDiagram-SMLLAGMA-DsYSva8K.js} +2 -2
- package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js.map → erDiagram-SMLLAGMA-DsYSva8K.js.map} +1 -1
- package/lib/esm/flatten-CRDGWjhS.js.map +1 -1
- package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js → flowDiagram-DWJPFMVM-BkxIhdyA.js} +2 -2
- package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js.map → flowDiagram-DWJPFMVM-BkxIhdyA.js.map} +1 -1
- package/lib/esm/ganttDiagram-T4ZO3ILL-BGrn6yEi.js.map +1 -1
- package/lib/esm/gitGraphDiagram-UUTBAWPF-BV73nor5.js.map +1 -1
- package/lib/esm/graphlib-B76sPwTV.js.map +1 -1
- package/lib/esm/infoDiagram-42DDH7IO-CYONnQuR.js.map +1 -1
- package/lib/esm/init-DcYXQL-k.js.map +1 -1
- package/lib/esm/isEmpty-DLTQgX7m.js.map +1 -1
- package/lib/esm/ishikawaDiagram-UXIWVN3A-B2ISni0r.js.map +1 -1
- package/lib/esm/journeyDiagram-VCZTEJTY-CjNMX7wx.js.map +1 -1
- package/lib/esm/kanban-definition-6JOO6SKY-BNsv25Cl.js.map +1 -1
- package/lib/esm/katex-DpumU0Fc.js.map +1 -1
- package/lib/esm/line-Dyv5of1r.js.map +1 -1
- package/lib/esm/linear-LpGdIFrk.js.map +1 -1
- package/lib/esm/mermaid-parser.core-D5sUsnWF.js.map +1 -1
- package/lib/esm/{mermaid.core-o6lwF-Gt.js → mermaid.core-i12yADTp.js} +12 -12
- package/lib/esm/{mermaid.core-o6lwF-Gt.js.map → mermaid.core-i12yADTp.js.map} +1 -1
- package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js → mindmap-definition-QFDTVHPH-BfrBPDUJ.js} +2 -2
- package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js.map → mindmap-definition-QFDTVHPH-BfrBPDUJ.js.map} +1 -1
- package/lib/esm/ordinal-B2RGggQH.js.map +1 -1
- package/lib/esm/path-Bg_3NlDP.js.map +1 -1
- package/lib/esm/pieDiagram-DEJITSTG-YByZ__0R.js.map +1 -1
- package/lib/esm/quadrantDiagram-34T5L4WZ-DLFKZc02.js.map +1 -1
- package/lib/esm/reduce-0ekdtexD.js.map +1 -1
- package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js → requirementDiagram-MS252O5E-CulfPmse.js} +2 -2
- package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js.map → requirementDiagram-MS252O5E-CulfPmse.js.map} +1 -1
- package/lib/esm/rough.esm-IQz7gRXZ.js.map +1 -1
- package/lib/esm/sankeyDiagram-XADWPNL6-DMByY6gK.js.map +1 -1
- package/lib/esm/sequenceDiagram-FGHM5R23-vJC9cjdX.js.map +1 -1
- package/lib/esm/src-BZm6Awwh.js.map +1 -1
- package/lib/esm/{src-C5doNKmD.js → src-DT2iBPF8.js} +629 -541
- package/lib/esm/src-DT2iBPF8.js.map +1 -0
- package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js → stateDiagram-FHFEXIEX-CofVLBPX.js} +3 -3
- package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js.map → stateDiagram-FHFEXIEX-CofVLBPX.js.map} +1 -1
- package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js} +3 -3
- package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js.map → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js.map} +1 -1
- package/lib/esm/style.css +1 -1
- package/lib/esm/timeline-definition-GMOUNBTQ-DeWjV_e-.js.map +1 -1
- package/lib/esm/ui.js +4 -4
- package/lib/esm/vennDiagram-DHZGUBPP-CKdXCzw7.js.map +1 -1
- package/lib/esm/wardleyDiagram-NUSXRM2D-BzD8LDJv.js.map +1 -1
- package/lib/esm/xychartDiagram-5P7HB3ND-C2ITEA5J.js.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts +2 -1
- package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts +1 -0
- package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts +1 -1
- package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts.map +1 -1
- package/lib/types/components/data-table/DataTable.d.ts +2 -0
- package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
- package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts +21 -0
- package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts.map +1 -0
- package/lib/types/components/data-table/ResponsiveRecordList.d.ts +17 -0
- package/lib/types/components/data-table/ResponsiveRecordList.d.ts.map +1 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +12 -12
- package/lib/esm/MarkdownShikiCodeBlock-BhdpnKJo.js.map +0 -1
- package/lib/esm/src-C5doNKmD.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-G4DWMVQ6-EfJtDPEB.js","names":["formatDecimal","formatRounded","formatPrefixAuto","identity","formatGroup","formatNumerals","formatTypes","formatTrim","exponent","formatLocale","node_count","node_each","node_eachAfter","node_eachBefore","node_find","node_sum","node_sort","node_path","node_ancestors","node_descendants","node_leaves","node_links","node_iterator","squarify","roundNode","constant","parseFunc","scaleOrdinal","treemap","select","getThemeVariables"],"sources":["../../../../node_modules/d3/node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/d3/node_modules/d3-format/src/exponent.js","../../../../node_modules/d3/node_modules/d3-format/src/formatGroup.js","../../../../node_modules/d3/node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/d3/node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/d3/node_modules/d3-format/src/formatTrim.js","../../../../node_modules/d3/node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/d3/node_modules/d3-format/src/formatRounded.js","../../../../node_modules/d3/node_modules/d3-format/src/formatTypes.js","../../../../node_modules/d3/node_modules/d3-format/src/identity.js","../../../../node_modules/d3/node_modules/d3-format/src/locale.js","../../../../node_modules/d3/node_modules/d3-format/src/defaultLocale.js","../../../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/d3-hierarchy/src/hierarchy/find.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/d3-hierarchy/src/constant.js","../../../../node_modules/d3-hierarchy/src/treemap/round.js","../../../../node_modules/d3-hierarchy/src/treemap/dice.js","../../../../node_modules/d3-hierarchy/src/treemap/slice.js","../../../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../../../node_modules/d3-hierarchy/src/treemap/index.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-G4DWMVQ6.mjs"],"sourcesContent":["export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-EDXVE4YY.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-X2U36JSP.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = item.cssCompiledStyles;\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n const titleColor = options.titleColor ?? themeVariables.titleColor;\n const labelColor = options.labelColor ?? themeVariables.textColor;\n const valueColor = options.valueColor ?? themeVariables.textColor;\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagram-G4DWMVQ6-EfJtDPEB.js","names":["formatDecimal","formatRounded","formatPrefixAuto","identity","formatGroup","formatNumerals","formatTypes","formatTrim","exponent","formatLocale","node_count","node_each","node_eachAfter","node_eachBefore","node_find","node_sum","node_sort","node_path","node_ancestors","node_descendants","node_leaves","node_links","node_iterator","squarify","roundNode","constant","parseFunc","scaleOrdinal","treemap","select","getThemeVariables"],"sources":["../../../../node_modules/d3/node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/d3/node_modules/d3-format/src/exponent.js","../../../../node_modules/d3/node_modules/d3-format/src/formatGroup.js","../../../../node_modules/d3/node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/d3/node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/d3/node_modules/d3-format/src/formatTrim.js","../../../../node_modules/d3/node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/d3/node_modules/d3-format/src/formatRounded.js","../../../../node_modules/d3/node_modules/d3-format/src/formatTypes.js","../../../../node_modules/d3/node_modules/d3-format/src/identity.js","../../../../node_modules/d3/node_modules/d3-format/src/locale.js","../../../../node_modules/d3/node_modules/d3-format/src/defaultLocale.js","../../../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/d3-hierarchy/src/hierarchy/find.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/d3-hierarchy/src/constant.js","../../../../node_modules/d3-hierarchy/src/treemap/round.js","../../../../node_modules/d3-hierarchy/src/treemap/dice.js","../../../../node_modules/d3-hierarchy/src/treemap/slice.js","../../../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../../../node_modules/d3-hierarchy/src/treemap/index.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-G4DWMVQ6.mjs"],"sourcesContent":["export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-EDXVE4YY.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-X2U36JSP.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = item.cssCompiledStyles;\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n const titleColor = options.titleColor ?? themeVariables.titleColor;\n const labelColor = options.labelColor ?? themeVariables.textColor;\n const valueColor = options.valueColor ?? themeVariables.textColor;\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-MMDJMWI5-DsPB2uYP.js","names":["getThemeVariables"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-MMDJMWI5.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.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 configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth ?? true);\n svg.attr(\"viewBox\", `0 0 ${totalWidth} ${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"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagram-MMDJMWI5-DsPB2uYP.js","names":["getThemeVariables"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-MMDJMWI5.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.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 configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth ?? true);\n svg.attr(\"viewBox\", `0 0 ${totalWidth} ${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"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-TYMM5635-D3ecq7oF.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-TYMM5635.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n 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\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n 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);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n 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);\n if (!isSingleBlock) {\n 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);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagram-TYMM5635-D3ecq7oF.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-TYMM5635.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n 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\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n 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);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n 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);\n if (!isSingleBlock) {\n 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);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-CZs_brJz.js","names":[],"sources":["../../../../node_modules/d3-shape/src/math.js","../../../../node_modules/@braintree/sanitize-url/dist/constants.js","../../../../node_modules/@braintree/sanitize-url/dist/index.js"],"sourcesContent":["export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;\nexports.invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nexports.htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nexports.htmlCtrlEntityRegex = /&(newline|tab);/gi;\nexports.ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexports.urlSchemeRegex = /^.+(:|:)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = sanitizeUrl;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":";;AAAA,IAAa,IAAM,KAAK,KACX,IAAQ,KAAK,OACb,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAO,KAAK,MAEZ,IAAU,OACV,IAAK,KAAK,IACV,IAAS,IAAK,GACd,IAAM,IAAI;AAEvB,SAAgB,EAAK,GAAG;
|
|
1
|
+
{"version":3,"file":"dist-CZs_brJz.js","names":[],"sources":["../../../../node_modules/d3-shape/src/math.js","../../../../node_modules/@braintree/sanitize-url/dist/constants.js","../../../../node_modules/@braintree/sanitize-url/dist/index.js"],"sourcesContent":["export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;\nexports.invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nexports.htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nexports.htmlCtrlEntityRegex = /&(newline|tab);/gi;\nexports.ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexports.urlSchemeRegex = /^.+(:|:)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = sanitizeUrl;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":";;AAAA,IAAa,IAAM,KAAK,KACX,IAAQ,KAAK,OACb,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAO,KAAK,MAEZ,IAAU,OACV,IAAK,KAAK,IACV,IAAS,IAAK,GACd,IAAM,IAAI;AAEvB,SAAgB,EAAK,GAAG;CACtB,OAAO,IAAI,IAAI,IAAI,IAAI,KAAK,IAAK,KAAK,KAAK,EAAE;;AAG/C,SAAgB,EAAK,GAAG;CACtB,OAAO,KAAK,IAAI,IAAS,KAAK,KAAK,CAAC,IAAS,KAAK,KAAK,EAAE;;;;;CCR3D,AATA,OAAO,eAAe,GAAS,cAAc,EAAE,OAAO,IAAM,CAAC,EAC7D,EAAQ,YAAY,EAAQ,0BAA0B,EAAQ,6BAA6B,EAAQ,iBAAiB,EAAQ,sBAAsB,EAAQ,sBAAsB,EAAQ,oBAAoB,EAAQ,uBAAuB,KAAK,GAChP,EAAQ,uBAAuB,yCAC/B,EAAQ,oBAAoB,oBAC5B,EAAQ,sBAAsB,qBAC9B,EAAQ,sBAAsB,sDAC9B,EAAQ,iBAAiB,qBACzB,EAAQ,6BAA6B,wCACrC,EAAQ,0BAA0B,CAAC,KAAK,IAAI,EAC5C,EAAQ,YAAY;;CCRpB,AADA,OAAO,eAAe,GAAS,cAAc,EAAE,OAAO,IAAM,CAAC,EAC7D,EAAQ,cAAc;CACtB,IAAI,IAAA,GAAA;CACJ,SAAS,EAA6B,GAAK;EACvC,OAAO,EAAY,wBAAwB,QAAQ,EAAI,GAAG,GAAG;;CAEjE,SAAS,EAAqB,GAAK;EAE/B,OADsB,EAAI,QAAQ,EAAY,qBAAqB,GAC7C,CAAC,QAAQ,EAAY,mBAAmB,SAAU,GAAO,GAAK;GAChF,OAAO,OAAO,aAAa,EAAI;IACjC;;CAEN,SAAS,EAAW,GAAK;EACrB,OAAO,IAAI,SAAS,EAAI;;CAE5B,SAAS,EAAU,GAAK;EACpB,IAAI;GACA,OAAO,mBAAmB,EAAI;UAExB;GAIN,OAAO;;;CAGf,SAAS,EAAY,GAAK;EACtB,IAAI,CAAC,GACD,OAAO,EAAY;EAEvB,IAAI,GACA,IAAa,EAAU,EAAI,MAAM,CAAC;EACtC;GAOI,AANA,IAAa,EAAqB,EAAW,CACxC,QAAQ,EAAY,qBAAqB,GAAG,CAC5C,QAAQ,EAAY,qBAAqB,GAAG,CAC5C,QAAQ,EAAY,4BAA4B,GAAG,CACnD,MAAM,EACX,IAAa,EAAU,EAAW,EAClC,IACI,EAAW,MAAM,EAAY,oBAAoB,IAC7C,EAAW,MAAM,EAAY,kBAAkB,IAC/C,EAAW,MAAM,EAAY,oBAAoB,IACjD,EAAW,MAAM,EAAY,2BAA2B;SAC3D,KAAiB,EAAc,SAAS;EACjD,IAAI,IAAe;EACnB,IAAI,CAAC,GACD,OAAO,EAAY;EAEvB,IAAI,EAA6B,EAAa,EAC1C,OAAO;EAGX,IAAI,IAAa,EAAa,WAAW,EACrC,IAAwB,EAAW,MAAM,EAAY,eAAe;EACxE,IAAI,CAAC,GACD,OAAO;EAEX,IAAI,IAAY,EAAsB,GAAG,aAAa,CAAC,MAAM;EAC7D,IAAI,EAAY,qBAAqB,KAAK,EAAU,EAChD,OAAO,EAAY;EAEvB,IAAI,IAAgB,EAAW,QAAQ,OAAO,IAAI;EAElD,IAAI,MAAc,aAAa,EAAU,SAAS,MAAM,EACpD,OAAO;EAGX,IAAI,MAAc,WAAW,MAAc,UAAU;GACjD,IAAI,CAAC,EAAW,EAAc,EAC1B,OAAO,EAAY;GAEvB,IAAI,IAAQ,IAAI,IAAI,EAAc;GAGlC,OAFA,EAAM,WAAW,EAAM,SAAS,aAAa,EAC7C,EAAM,WAAW,EAAM,SAAS,aAAa,EACtC,EAAM,UAAU;;EAE3B,OAAO"}
|