@tecture/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cli.js +329 -0
  2. package/dist/cli.js.map +1 -0
  3. package/dist/public/assets/_baseUniq-okA3yjMF.js +2 -0
  4. package/dist/public/assets/_baseUniq-okA3yjMF.js.map +1 -0
  5. package/dist/public/assets/arc-DuPQU9II.js +2 -0
  6. package/dist/public/assets/arc-DuPQU9II.js.map +1 -0
  7. package/dist/public/assets/architectureDiagram-Q4EWVU46-DaPqXmCT.js +37 -0
  8. package/dist/public/assets/architectureDiagram-Q4EWVU46-DaPqXmCT.js.map +1 -0
  9. package/dist/public/assets/blockDiagram-DXYQGD6D-md6nhFCg.js +133 -0
  10. package/dist/public/assets/blockDiagram-DXYQGD6D-md6nhFCg.js.map +1 -0
  11. package/dist/public/assets/c4Diagram-AHTNJAMY-BqpvwUhA.js +11 -0
  12. package/dist/public/assets/c4Diagram-AHTNJAMY-BqpvwUhA.js.map +1 -0
  13. package/dist/public/assets/channel-D36ns3ja.js +2 -0
  14. package/dist/public/assets/channel-D36ns3ja.js.map +1 -0
  15. package/dist/public/assets/chunk-4BX2VUAB-DdNxSoa7.js +2 -0
  16. package/dist/public/assets/chunk-4BX2VUAB-DdNxSoa7.js.map +1 -0
  17. package/dist/public/assets/chunk-4TB4RGXK-DJXPYtFh.js +207 -0
  18. package/dist/public/assets/chunk-4TB4RGXK-DJXPYtFh.js.map +1 -0
  19. package/dist/public/assets/chunk-55IACEB6-vKKCu02H.js +2 -0
  20. package/dist/public/assets/chunk-55IACEB6-vKKCu02H.js.map +1 -0
  21. package/dist/public/assets/chunk-EDXVE4YY-DSO0zPbn.js +2 -0
  22. package/dist/public/assets/chunk-EDXVE4YY-DSO0zPbn.js.map +1 -0
  23. package/dist/public/assets/chunk-FMBD7UC4-3jd6riTs.js +16 -0
  24. package/dist/public/assets/chunk-FMBD7UC4-3jd6riTs.js.map +1 -0
  25. package/dist/public/assets/chunk-OYMX7WX6-D_NOPBJM.js +232 -0
  26. package/dist/public/assets/chunk-OYMX7WX6-D_NOPBJM.js.map +1 -0
  27. package/dist/public/assets/chunk-QZHKN3VN-B1tO29hV.js +2 -0
  28. package/dist/public/assets/chunk-QZHKN3VN-B1tO29hV.js.map +1 -0
  29. package/dist/public/assets/chunk-YZCP3GAM-BG_8HFWq.js +2 -0
  30. package/dist/public/assets/chunk-YZCP3GAM-BG_8HFWq.js.map +1 -0
  31. package/dist/public/assets/classDiagram-6PBFFD2Q-D7ww4X1Q.js +2 -0
  32. package/dist/public/assets/classDiagram-6PBFFD2Q-D7ww4X1Q.js.map +1 -0
  33. package/dist/public/assets/classDiagram-v2-HSJHXN6E-D7ww4X1Q.js +2 -0
  34. package/dist/public/assets/classDiagram-v2-HSJHXN6E-D7ww4X1Q.js.map +1 -0
  35. package/dist/public/assets/clone-D2M0kYAb.js +2 -0
  36. package/dist/public/assets/clone-D2M0kYAb.js.map +1 -0
  37. package/dist/public/assets/cose-bilkent-S5V4N54A-Bh32q_Jn.js +2 -0
  38. package/dist/public/assets/cose-bilkent-S5V4N54A-Bh32q_Jn.js.map +1 -0
  39. package/dist/public/assets/cytoscape.esm-BiciSPf8.js +332 -0
  40. package/dist/public/assets/cytoscape.esm-BiciSPf8.js.map +1 -0
  41. package/dist/public/assets/dagre-KV5264BT-BQsA27kt.js +5 -0
  42. package/dist/public/assets/dagre-KV5264BT-BQsA27kt.js.map +1 -0
  43. package/dist/public/assets/defaultLocale-DX6XiGOO.js +2 -0
  44. package/dist/public/assets/defaultLocale-DX6XiGOO.js.map +1 -0
  45. package/dist/public/assets/diagram-5BDNPKRD-CXlbxFux.js +11 -0
  46. package/dist/public/assets/diagram-5BDNPKRD-CXlbxFux.js.map +1 -0
  47. package/dist/public/assets/diagram-G4DWMVQ6-v97zdUjT.js +25 -0
  48. package/dist/public/assets/diagram-G4DWMVQ6-v97zdUjT.js.map +1 -0
  49. package/dist/public/assets/diagram-MMDJMWI5-BpSFjs5q.js +44 -0
  50. package/dist/public/assets/diagram-MMDJMWI5-BpSFjs5q.js.map +1 -0
  51. package/dist/public/assets/diagram-TYMM5635-BJ1CmEhn.js +25 -0
  52. package/dist/public/assets/diagram-TYMM5635-BJ1CmEhn.js.map +1 -0
  53. package/dist/public/assets/erDiagram-SMLLAGMA-jo1OteBB.js +86 -0
  54. package/dist/public/assets/erDiagram-SMLLAGMA-jo1OteBB.js.map +1 -0
  55. package/dist/public/assets/flowDiagram-DWJPFMVM-CpWw31-x.js +163 -0
  56. package/dist/public/assets/flowDiagram-DWJPFMVM-CpWw31-x.js.map +1 -0
  57. package/dist/public/assets/ganttDiagram-T4ZO3ILL-BAQG-3w7.js +293 -0
  58. package/dist/public/assets/ganttDiagram-T4ZO3ILL-BAQG-3w7.js.map +1 -0
  59. package/dist/public/assets/gitGraphDiagram-UUTBAWPF-Cjvo4QRA.js +107 -0
  60. package/dist/public/assets/gitGraphDiagram-UUTBAWPF-Cjvo4QRA.js.map +1 -0
  61. package/dist/public/assets/graph-BdcxLlxf.js +2 -0
  62. package/dist/public/assets/graph-BdcxLlxf.js.map +1 -0
  63. package/dist/public/assets/index-C0IOfytS.css +1 -0
  64. package/dist/public/assets/index-Dmx3s87Z.js +131 -0
  65. package/dist/public/assets/index-Dmx3s87Z.js.map +1 -0
  66. package/dist/public/assets/infoDiagram-42DDH7IO-DA1DcHeu.js +3 -0
  67. package/dist/public/assets/infoDiagram-42DDH7IO-DA1DcHeu.js.map +1 -0
  68. package/dist/public/assets/init-Gi6I4Gst.js +2 -0
  69. package/dist/public/assets/init-Gi6I4Gst.js.map +1 -0
  70. package/dist/public/assets/ishikawaDiagram-UXIWVN3A-D1YXovdG.js +71 -0
  71. package/dist/public/assets/ishikawaDiagram-UXIWVN3A-D1YXovdG.js.map +1 -0
  72. package/dist/public/assets/journeyDiagram-VCZTEJTY-D7RwfkbB.js +140 -0
  73. package/dist/public/assets/journeyDiagram-VCZTEJTY-D7RwfkbB.js.map +1 -0
  74. package/dist/public/assets/kanban-definition-6JOO6SKY-oWRrVjFf.js +90 -0
  75. package/dist/public/assets/kanban-definition-6JOO6SKY-oWRrVjFf.js.map +1 -0
  76. package/dist/public/assets/katex-DkKDou_j.js +258 -0
  77. package/dist/public/assets/katex-DkKDou_j.js.map +1 -0
  78. package/dist/public/assets/layout-VSNdPB38.js +2 -0
  79. package/dist/public/assets/layout-VSNdPB38.js.map +1 -0
  80. package/dist/public/assets/linear-WEgy7Pbe.js +2 -0
  81. package/dist/public/assets/linear-WEgy7Pbe.js.map +1 -0
  82. package/dist/public/assets/mermaid.core-CFxQTXeR.js +310 -0
  83. package/dist/public/assets/mermaid.core-CFxQTXeR.js.map +1 -0
  84. package/dist/public/assets/min-Dl-Y_8tu.js +2 -0
  85. package/dist/public/assets/min-Dl-Y_8tu.js.map +1 -0
  86. package/dist/public/assets/mindmap-definition-QFDTVHPH-kZ-3Ardl.js +97 -0
  87. package/dist/public/assets/mindmap-definition-QFDTVHPH-kZ-3Ardl.js.map +1 -0
  88. package/dist/public/assets/ordinal-Cboi1Yqb.js +2 -0
  89. package/dist/public/assets/ordinal-Cboi1Yqb.js.map +1 -0
  90. package/dist/public/assets/pieDiagram-DEJITSTG-7o5Wm586.js +31 -0
  91. package/dist/public/assets/pieDiagram-DEJITSTG-7o5Wm586.js.map +1 -0
  92. package/dist/public/assets/quadrantDiagram-34T5L4WZ-Bo9bPFVq.js +8 -0
  93. package/dist/public/assets/quadrantDiagram-34T5L4WZ-Bo9bPFVq.js.map +1 -0
  94. package/dist/public/assets/requirementDiagram-MS252O5E-BrZ5IGrG.js +85 -0
  95. package/dist/public/assets/requirementDiagram-MS252O5E-BrZ5IGrG.js.map +1 -0
  96. package/dist/public/assets/sankeyDiagram-XADWPNL6-wkL-5GAq.js +11 -0
  97. package/dist/public/assets/sankeyDiagram-XADWPNL6-wkL-5GAq.js.map +1 -0
  98. package/dist/public/assets/sequenceDiagram-FGHM5R23-CYkyZnbF.js +158 -0
  99. package/dist/public/assets/sequenceDiagram-FGHM5R23-CYkyZnbF.js.map +1 -0
  100. package/dist/public/assets/stateDiagram-FHFEXIEX-DPHqUNS7.js +2 -0
  101. package/dist/public/assets/stateDiagram-FHFEXIEX-DPHqUNS7.js.map +1 -0
  102. package/dist/public/assets/stateDiagram-v2-QKLJ7IA2-BnjLJswt.js +2 -0
  103. package/dist/public/assets/stateDiagram-v2-QKLJ7IA2-BnjLJswt.js.map +1 -0
  104. package/dist/public/assets/timeline-definition-GMOUNBTQ-BwBJGy1k.js +121 -0
  105. package/dist/public/assets/timeline-definition-GMOUNBTQ-BwBJGy1k.js.map +1 -0
  106. package/dist/public/assets/vennDiagram-DHZGUBPP-BbljBoFJ.js +35 -0
  107. package/dist/public/assets/vennDiagram-DHZGUBPP-BbljBoFJ.js.map +1 -0
  108. package/dist/public/assets/wardley-RL74JXVD-CJqH0Jne.js +163 -0
  109. package/dist/public/assets/wardley-RL74JXVD-CJqH0Jne.js.map +1 -0
  110. package/dist/public/assets/wardleyDiagram-NUSXRM2D-2g2IHOZ1.js +21 -0
  111. package/dist/public/assets/wardleyDiagram-NUSXRM2D-2g2IHOZ1.js.map +1 -0
  112. package/dist/public/assets/xychartDiagram-5P7HB3ND-BBfP02_-.js +8 -0
  113. package/dist/public/assets/xychartDiagram-5P7HB3ND-BBfP02_-.js.map +1 -0
  114. package/dist/public/index.html +13 -0
  115. package/package.json +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-MMDJMWI5-BpSFjs5q.js","sources":["../../../../node_modules/.pnpm/mermaid@11.14.0/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"],"names":["defaultOptions","defaultRadarData","data","DEFAULT_RADAR_CONFIG","defaultConfig_default","getConfig2","__name","cleanAndMerge","getConfig","getAxes","getCurves","getOptions","setAxes","axes","axis","setCurves","curves","curve","computeCurveEntries","entries","entry","entry2","_a","setOptions","options","optionMap","acc","option","_b","_c","_d","_e","clear2","clear","db","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","populate","ast","populateCommonDb","parser","input","parse","log","draw","_text","id","_version","diagram2","db2","config","title","svg","selectSvgElement","g","drawFrame","maxValue","minValue","radius","drawGraticule","drawAxes","drawCurves","drawLegend","totalWidth","totalHeight","center","configureSvgSize","ticks","graticule","i","r","numAxes","points","_","j","angle","x","y","label","index","relativeRadius","closedRoundCurve","p","value","clippedValue","tension","numPoints","d","p0","p1","p2","p3","cp1","cp2","showLegend","legendX","legendY","lineHeight","itemGroup","renderer","genIndexStyles","themeVariables","radarOptions","sections","indexColor","buildRadarStyleOptions","radar","defaultThemeVariables","getThemeVariables","currentConfig","styles","diagram"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,25 @@
1
+ import{_ as b,E as m,H as B,d as C,l as w,b as S,a as D,o as T,p as E,g as F,s as P,F as z,C as A,y as W}from"./mermaid.core-CFxQTXeR.js";import{p as _}from"./chunk-4BX2VUAB-DdNxSoa7.js";import{p as N}from"./wardley-RL74JXVD-CJqH0Jne.js";import"./index-Dmx3s87Z.js";import"./min-Dl-Y_8tu.js";import"./_baseUniq-okA3yjMF.js";var L=z.packet,u,v=(u=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=D,this.setDiagramTitle=T,this.getDiagramTitle=E,this.getAccDescription=F,this.setAccDescription=P}getConfig(){const t=m({...L,...A().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){W(),this.packet=[]}},b(u,"PacketDB"),u),M=1e4,Y=b((e,t)=>{_(e,t);let o=-1,r=[],n=1;const{bitsPerRow:l}=t.getConfig();for(let{start:a,end:i,bits:d,label:c}of e.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??(a=o+1),a!==o+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${o+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??(i=a+(d??1)-1),d??(d=i-a+1),o=i,w.debug(`Packet block ${a} - ${o} with label ${c}`);r.length<=l+1&&t.getPacket().length<M;){const[p,s]=H({start:a,end:i,bits:d,label:c},n,l);if(r.push(p),p.end+1===n*l&&(t.pushWord(r),r=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}t.pushWord(r)},"populate"),H=b((e,t,o)=>{if(e.start===void 0)throw new Error("start should have been set during first phase");if(e.end===void 0)throw new Error("end should have been set during first phase");if(e.start>e.end)throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*o)return[e,void 0];const r=t*o-1,n=t*o;return[{start:e.start,end:r,label:e.label,bits:r-e.start},{start:n,end:e.end,label:e.label,bits:e.end-n}]},"getNextFittingBlock"),x={parser:{yy:void 0},parse:b(async e=>{var r;const t=await N("packet",e),o=(r=x.parser)==null?void 0:r.yy;if(!(o instanceof v))throw new Error("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.");w.debug(t),Y(t,o)},"parse")},I=b((e,t,o,r)=>{const n=r.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=B(t);f.attr("viewBox",`0 0 ${k} ${g}`),C(f,g,k,l.useMaxWidth);for(const[y,$]of p.entries())O(f,$,y,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=b((e,t,o,{rowHeight:r,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=e.append("g"),p=o*(r+l)+l;for(const s of t){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",r).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+r/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),j={draw:I},G={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},K=b(({packet:e}={})=>{const t=m(G,e);return`
2
+ .packetByte {
3
+ font-size: ${t.byteFontSize};
4
+ }
5
+ .packetByte.start {
6
+ fill: ${t.startByteColor};
7
+ }
8
+ .packetByte.end {
9
+ fill: ${t.endByteColor};
10
+ }
11
+ .packetLabel {
12
+ fill: ${t.labelColor};
13
+ font-size: ${t.labelFontSize};
14
+ }
15
+ .packetTitle {
16
+ fill: ${t.titleColor};
17
+ font-size: ${t.titleFontSize};
18
+ }
19
+ .packetBlock {
20
+ stroke: ${t.blockStrokeColor};
21
+ stroke-width: ${t.blockStrokeWidth};
22
+ fill: ${t.blockFillColor};
23
+ }
24
+ `},"styles"),V={parser:x,get db(){return new v},renderer:j,styles:K};export{V as diagram};
25
+ //# sourceMappingURL=diagram-TYMM5635-BJ1CmEhn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-TYMM5635-BJ1CmEhn.js","sources":["../../../../node_modules/.pnpm/mermaid@11.14.0/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"],"names":["DEFAULT_PACKET_CONFIG","defaultConfig_default","PacketDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","config","cleanAndMerge","getConfig","word","clear","__name","maxPacketSize","populate","ast","db","populateCommonDb","lastBit","row","bitsPerRow","start","end","bits","label","log","block","nextBlock","getNextFittingBlock","rowEnd","rowStart","parser","input","parse","draw","_text","id","_version","diagram2","rowHeight","paddingY","bitWidth","words","title","totalRowHeight","svgHeight","svgWidth","svg","selectSvgElement","configureSvgSize","packet","drawWord","rowNumber","paddingX","showBits","group","wordY","blockX","width","isSingleBlock","bitNumberY","renderer","defaultPacketStyleOptions","styles","options","diagram"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,86 @@
1
+ import{g as Bt}from"./chunk-55IACEB6-vKKCu02H.js";import{s as Ft}from"./chunk-EDXVE4YY-DSO0zPbn.js";import{_ as p,b as Yt,a as Pt,s as zt,g as Gt,o as Kt,p as Ut,c as rt,l as V,y as Zt,v as jt,A as Wt,B as Qt,n as Xt,r as Ht,u as qt}from"./mermaid.core-CFxQTXeR.js";import{s as Jt}from"./index-Dmx3s87Z.js";import{c as $t}from"./channel-D36ns3ja.js";var gt=function(){var s=p(function(I,n,a,l){for(a=a||{},l=I.length;l--;a[I[l]]=n);return a},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],o=[1,10],h=[1,11],c=[1,12],u=[1,13],f=[1,23],d=[1,24],k=[1,25],W=[1,26],Q=[1,27],T=[1,19],X=[1,28],B=[1,29],D=[1,20],R=[1,18],S=[1,21],x=[1,22],at=[1,36],ct=[1,37],ot=[1,38],lt=[1,39],ht=[1,40],F=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,65,66,67,68,69],O=[1,45],N=[1,46],Y=[1,55],P=[40,48,50,51,52,70,71],z=[1,66],G=[1,64],A=[1,61],K=[1,65],U=[1,67],H=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,65,66,67,68,69],bt=[65,66,67,68,69],mt=[1,84],kt=[1,83],Et=[1,81],Tt=[1,82],St=[6,10,42,47],L=[6,10,13,41,42,47,48,49],q=[1,92],J=[1,91],$=[1,90],Z=[19,58],Ot=[1,101],Nt=[1,100],ut=[19,58,60,62],dt={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,DECIMAL_NUM:51,ENTITY_ONE:52,attribute:53,attributeType:54,attributeName:55,attributeKeyTypeList:56,attributeComment:57,ATTRIBUTE_WORD:58,attributeKeyType:59,",":60,ATTRIBUTE_KEY:61,COMMENT:62,cardinality:63,relType:64,ZERO_OR_ONE:65,ZERO_OR_MORE:66,ONE_OR_MORE:67,ONLY_ONE:68,MD_PARENT:69,NON_IDENTIFYING:70,IDENTIFYING:71,WORD:72,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",51:"DECIMAL_NUM",52:"ENTITY_ONE",58:"ATTRIBUTE_WORD",60:",",61:"ATTRIBUTE_KEY",62:"COMMENT",65:"ZERO_OR_ONE",66:"ZERO_OR_MORE",67:"ONE_OR_MORE",68:"ONLY_ONE",69:"MD_PARENT",70:"NON_IDENTIFYING",71:"IDENTIFYING",72:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[11,1],[11,1],[11,1],[18,1],[18,2],[53,2],[53,3],[53,3],[53,4],[54,1],[55,1],[56,1],[56,3],[59,1],[57,1],[12,3],[63,1],[63,1],[63,1],[63,1],[63,1],[64,1],[64,1],[14,1],[14,1],[14,1]],performAction:p(function(n,a,l,r,y,t,j){var e=t.length-1;switch(y){case 1:break;case 2:this.$=[];break;case 3:t[e-1].push(t[e]),this.$=t[e-1];break;case 4:case 5:this.$=t[e];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[e-4]),r.addEntity(t[e-2]),r.addRelationship(t[e-4],t[e],t[e-2],t[e-3]);break;case 9:r.addEntity(t[e-8]),r.addEntity(t[e-4]),r.addRelationship(t[e-8],t[e],t[e-4],t[e-5]),r.setClass([t[e-8]],t[e-6]),r.setClass([t[e-4]],t[e-2]);break;case 10:r.addEntity(t[e-6]),r.addEntity(t[e-2]),r.addRelationship(t[e-6],t[e],t[e-2],t[e-3]),r.setClass([t[e-6]],t[e-4]);break;case 11:r.addEntity(t[e-6]),r.addEntity(t[e-4]),r.addRelationship(t[e-6],t[e],t[e-4],t[e-5]),r.setClass([t[e-4]],t[e-2]);break;case 12:r.addEntity(t[e-3]),r.addAttributes(t[e-3],t[e-1]);break;case 13:r.addEntity(t[e-5]),r.addAttributes(t[e-5],t[e-1]),r.setClass([t[e-5]],t[e-3]);break;case 14:r.addEntity(t[e-2]);break;case 15:r.addEntity(t[e-4]),r.setClass([t[e-4]],t[e-2]);break;case 16:r.addEntity(t[e]);break;case 17:r.addEntity(t[e-2]),r.setClass([t[e-2]],t[e]);break;case 18:r.addEntity(t[e-6],t[e-4]),r.addAttributes(t[e-6],t[e-1]);break;case 19:r.addEntity(t[e-8],t[e-6]),r.addAttributes(t[e-8],t[e-1]),r.setClass([t[e-8]],t[e-3]);break;case 20:r.addEntity(t[e-5],t[e-3]);break;case 21:r.addEntity(t[e-7],t[e-5]),r.setClass([t[e-7]],t[e-2]);break;case 22:r.addEntity(t[e-3],t[e-1]);break;case 23:r.addEntity(t[e-5],t[e-3]),r.setClass([t[e-5]],t[e]);break;case 24:case 25:this.$=t[e].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[e].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[e-3],r.addClass(t[e-2],t[e-1]);break;case 37:case 38:case 59:case 67:this.$=[t[e]];break;case 39:case 40:this.$=t[e-2].concat([t[e]]);break;case 41:this.$=t[e-2],r.setClass(t[e-1],t[e]);break;case 42:this.$=t[e-3],r.addCssStyles(t[e-2],t[e-1]);break;case 43:this.$=[t[e]];break;case 44:t[e-2].push(t[e]),this.$=t[e-2];break;case 46:this.$=t[e-1]+t[e];break;case 54:case 79:case 80:this.$=t[e].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 81:this.$=t[e];break;case 60:t[e].push(t[e-1]),this.$=t[e];break;case 61:this.$={type:t[e-1],name:t[e]};break;case 62:this.$={type:t[e-2],name:t[e-1],keys:t[e]};break;case 63:this.$={type:t[e-2],name:t[e-1],comment:t[e]};break;case 64:this.$={type:t[e-3],name:t[e-2],keys:t[e-1],comment:t[e]};break;case 65:case 66:case 69:this.$=t[e];break;case 68:t[e-2].push(t[e]),this.$=t[e-2];break;case 70:this.$=t[e].replace(/"/g,"");break;case 71:this.$={cardA:t[e],relType:t[e-1],cardB:t[e-2]};break;case 72:this.$=r.Cardinality.ZERO_OR_ONE;break;case 73:this.$=r.Cardinality.ZERO_OR_MORE;break;case 74:this.$=r.Cardinality.ONE_OR_MORE;break;case 75:this.$=r.Cardinality.ONLY_ONE;break;case 76:this.$=r.Cardinality.MD_PARENT;break;case 77:this.$=r.Identification.NON_IDENTIFYING;break;case 78:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},s(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:o,24:h,26:c,28:u,29:14,30:15,31:16,32:17,33:f,34:d,35:k,36:W,37:Q,40:T,43:X,44:B,48:D,50:R,51:S,52:x},s(i,[2,7],{1:[2,1]}),s(i,[2,3]),{9:30,11:9,22:o,24:h,26:c,28:u,29:14,30:15,31:16,32:17,33:f,34:d,35:k,36:W,37:Q,40:T,43:X,44:B,48:D,50:R,51:S,52:x},s(i,[2,5]),s(i,[2,6]),s(i,[2,16],{12:31,63:35,15:[1,32],17:[1,33],20:[1,34],65:at,66:ct,67:ot,68:lt,69:ht}),{23:[1,41]},{25:[1,42]},{27:[1,43]},s(i,[2,27]),s(i,[2,28]),s(i,[2,29]),s(i,[2,30]),s(i,[2,31]),s(F,[2,54]),s(F,[2,55]),s(F,[2,56]),s(F,[2,57]),s(F,[2,58]),s(i,[2,32]),s(i,[2,33]),s(i,[2,34]),s(i,[2,35]),{16:44,40:O,41:N},{16:47,40:O,41:N},{16:48,40:O,41:N},s(i,[2,4]),{11:49,40:T,48:D,50:R,51:S,52:x},{16:50,40:O,41:N},{18:51,19:[1,52],53:53,54:54,58:Y},{11:56,40:T,48:D,50:R,51:S,52:x},{64:57,70:[1,58],71:[1,59]},s(P,[2,72]),s(P,[2,73]),s(P,[2,74]),s(P,[2,75]),s(P,[2,76]),s(i,[2,24]),s(i,[2,25]),s(i,[2,26]),{13:z,38:60,41:G,42:A,45:62,46:63,48:K,49:U},s(H,[2,37]),s(H,[2,38]),{16:68,40:O,41:N,42:A},{13:z,38:69,41:G,42:A,45:62,46:63,48:K,49:U},{13:[1,70],15:[1,71]},s(i,[2,17],{63:35,12:72,17:[1,73],42:A,65:at,66:ct,67:ot,68:lt,69:ht}),{19:[1,74]},s(i,[2,14]),{18:75,19:[2,59],53:53,54:54,58:Y},{55:76,58:[1,77]},{58:[2,65]},{21:[1,78]},{63:79,65:at,66:ct,67:ot,68:lt,69:ht},s(bt,[2,77]),s(bt,[2,78]),{6:mt,10:kt,39:80,42:Et,47:Tt},{40:[1,85],41:[1,86]},s(St,[2,43],{46:87,13:z,41:G,48:K,49:U}),s(L,[2,45]),s(L,[2,50]),s(L,[2,51]),s(L,[2,52]),s(L,[2,53]),s(i,[2,41],{42:A}),{6:mt,10:kt,39:88,42:Et,47:Tt},{14:89,40:q,50:J,72:$},{16:93,40:O,41:N},{11:94,40:T,48:D,50:R,51:S,52:x},{18:95,19:[1,96],53:53,54:54,58:Y},s(i,[2,12]),{19:[2,60]},s(Z,[2,61],{56:97,57:98,59:99,61:Ot,62:Nt}),s([19,58,61,62],[2,66]),s(i,[2,22],{15:[1,103],17:[1,102]}),s([40,48,50,51,52],[2,71]),s(i,[2,36]),{13:z,41:G,45:104,46:63,48:K,49:U},s(i,[2,47]),s(i,[2,48]),s(i,[2,49]),s(H,[2,39]),s(H,[2,40]),s(L,[2,46]),s(i,[2,42]),s(i,[2,8]),s(i,[2,79]),s(i,[2,80]),s(i,[2,81]),{13:[1,105],42:A},{13:[1,107],15:[1,106]},{19:[1,108]},s(i,[2,15]),s(Z,[2,62],{57:109,60:[1,110],62:Nt}),s(Z,[2,63]),s(ut,[2,67]),s(Z,[2,70]),s(ut,[2,69]),{18:111,19:[1,112],53:53,54:54,58:Y},{16:113,40:O,41:N},s(St,[2,44],{46:87,13:z,41:G,48:K,49:U}),{14:114,40:q,50:J,72:$},{16:115,40:O,41:N},{14:116,40:q,50:J,72:$},s(i,[2,13]),s(Z,[2,64]),{59:117,61:Ot},{19:[1,118]},s(i,[2,20]),s(i,[2,23],{17:[1,119],42:A}),s(i,[2,11]),{13:[1,120],42:A},s(i,[2,10]),s(ut,[2,68]),s(i,[2,18]),{18:121,19:[1,122],53:53,54:54,58:Y},{14:123,40:q,50:J,72:$},{19:[1,124]},s(i,[2,21]),s(i,[2,9]),s(i,[2,19])],defaultActions:{55:[2,65],75:[2,60]},parseError:p(function(n,a){if(a.recoverable)this.trace(n);else{var l=new Error(n);throw l.hash=a,l}},"parseError"),parse:p(function(n){var a=this,l=[0],r=[],y=[null],t=[],j=this.table,e="",et=0,At=0,Lt=2,It=1,wt=t.slice.call(arguments,1),_=Object.create(this.lexer),C={yy:{}};for(var pt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,pt)&&(C.yy[pt]=this.yy[pt]);_.setInput(n,C.yy),C.yy.lexer=_,C.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var yt=_.yylloc;t.push(yt);var Vt=_.options&&_.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(b){l.length=l.length-2*b,y.length=y.length-b,t.length=t.length-b}p(Mt,"popStack");function Rt(){var b;return b=r.pop()||_.lex()||It,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=a.symbols_[b]||b),b}p(Rt,"lex");for(var g,v,m,ft,w={},st,E,xt,it;;){if(v=l[l.length-1],this.defaultActions[v]?m=this.defaultActions[v]:((g===null||typeof g>"u")&&(g=Rt()),m=j[v]&&j[v][g]),typeof m>"u"||!m.length||!m[0]){var _t="";it=[];for(st in j[v])this.terminals_[st]&&st>Lt&&it.push("'"+this.terminals_[st]+"'");_.showPosition?_t="Parse error on line "+(et+1)+`:
2
+ `+_.showPosition()+`
3
+ Expecting `+it.join(", ")+", got '"+(this.terminals_[g]||g)+"'":_t="Parse error on line "+(et+1)+": Unexpected "+(g==It?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(_t,{text:_.match,token:this.terminals_[g]||g,line:_.yylineno,loc:yt,expected:it})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+g);switch(m[0]){case 1:l.push(g),y.push(_.yytext),t.push(_.yylloc),l.push(m[1]),g=null,At=_.yyleng,e=_.yytext,et=_.yylineno,yt=_.yylloc;break;case 2:if(E=this.productions_[m[1]][1],w.$=y[y.length-E],w._$={first_line:t[t.length-(E||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(E||1)].first_column,last_column:t[t.length-1].last_column},Vt&&(w._$.range=[t[t.length-(E||1)].range[0],t[t.length-1].range[1]]),ft=this.performAction.apply(w,[e,At,et,C.yy,m[1],y,t].concat(wt)),typeof ft<"u")return ft;E&&(l=l.slice(0,-1*E*2),y=y.slice(0,-1*E),t=t.slice(0,-1*E)),l.push(this.productions_[m[1]][0]),y.push(w.$),t.push(w._$),xt=j[l[l.length-2]][l[l.length-1]],l.push(xt);break;case 3:return!0}}return!0},"parse")},Dt=function(){var I={EOF:1,parseError:p(function(a,l){if(this.yy.parser)this.yy.parser.parseError(a,l);else throw new Error(a)},"parseError"),setInput:p(function(n,a){return this.yy=a||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:p(function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var a=n.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},"input"),unput:p(function(n){var a=n.length,l=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===r.length?this.yylloc.first_column:0)+r[r.length-l.length].length-l[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:p(function(){return this._more=!0,this},"more"),reject:p(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:p(function(n){this.unput(this.match.slice(n))},"less"),pastInput:p(function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:p(function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:p(function(){var n=this.pastInput(),a=new Array(n.length+1).join("-");return n+this.upcomingInput()+`
5
+ `+a+"^"},"showPosition"),test_match:p(function(n,a){var l,r,y;if(this.options.backtrack_lexer&&(y={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(y.yylloc.range=this.yylloc.range.slice(0))),r=n[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],l=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var t in y)this[t]=y[t];return!1}return!1},"test_match"),next:p(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,a,l,r;this._more||(this.yytext="",this.match="");for(var y=this._currentRules(),t=0;t<y.length;t++)if(l=this._input.match(this.rules[y[t]]),l&&(!a||l[0].length>a[0].length)){if(a=l,r=t,this.options.backtrack_lexer){if(n=this.test_match(l,y[t]),n!==!1)return n;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(n=this.test_match(a,y[r]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:p(function(){var a=this.next();return a||this.lex()},"lex"),begin:p(function(a){this.conditionStack.push(a)},"begin"),popState:p(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:p(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:p(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:p(function(a){this.begin(a)},"pushState"),stateStackSize:p(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:p(function(a,l,r,y){switch(r){case 0:return this.begin("acc_title"),24;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),26;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 72;case 16:return 4;case 17:return this.begin("block"),17;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 61;case 25:return 58;case 26:return 58;case 27:return 62;case 28:break;case 29:return this.popState(),19;case 30:return l.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;case 34:return this.popState(),10;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;case 40:return 43;case 41:return 65;case 42:return 67;case 43:return 67;case 44:return 67;case 45:return 65;case 46:return 65;case 47:return 66;case 48:return 66;case 49:return 66;case 50:return 66;case 51:return 66;case 52:return 67;case 53:return 66;case 54:return 67;case 55:return 68;case 56:return 68;case 57:return 51;case 58:return 68;case 59:return 68;case 60:return 68;case 61:return 52;case 62:return 48;case 63:return 68;case 64:return 65;case 65:return 66;case 66:return 67;case 67:return 69;case 68:return 70;case 69:return 71;case 70:return 71;case 71:return 70;case 72:return 70;case 73:return 70;case 74:return 41;case 75:return 47;case 76:return 40;case 77:return l.yytext[0];case 78:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=\s+[0-9]))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,74,75],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,76,77,78],inclusive:!0}}};return I}();dt.lexer=Dt;function tt(){this.yy={}}return p(tt,"Parser"),tt.prototype=dt,dt.Parser=tt,new tt}();gt.parser=gt;var te=gt,M,ee=(M=class{constructor(){this.entities=new Map,this.relationships=[],this.classes=new Map,this.direction="TB",this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},this.setAccTitle=Yt,this.getAccTitle=Pt,this.setAccDescription=zt,this.getAccDescription=Gt,this.setDiagramTitle=Kt,this.getDiagramTitle=Ut,this.getConfig=p(()=>rt().er,"getConfig"),this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}addEntity(i,o=""){var h;return this.entities.has(i)?!((h=this.entities.get(i))!=null&&h.alias)&&o&&(this.entities.get(i).alias=o,V.info(`Add alias '${o}' to entity '${i}'`)):(this.entities.set(i,{id:`entity-${i}-${this.entities.size}`,label:i,attributes:[],alias:o,shape:"erBox",look:rt().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),V.info("Added new entity :",i)),this.entities.get(i)}getEntity(i){return this.entities.get(i)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(i,o){const h=this.addEntity(i);let c;for(c=o.length-1;c>=0;c--)o[c].keys||(o[c].keys=[]),o[c].comment||(o[c].comment=""),h.attributes.push(o[c]),V.debug("Added attribute ",o[c].name)}addRelationship(i,o,h,c){const u=this.entities.get(i),f=this.entities.get(h);if(!u||!f)return;const d={entityA:u.id,roleA:o,entityB:f.id,relSpec:c};this.relationships.push(d),V.debug("Added new relationship :",d)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(i){this.direction=i}getCompiledStyles(i){let o=[];for(const h of i){const c=this.classes.get(h);c!=null&&c.styles&&(o=[...o,...c.styles??[]].map(u=>u.trim())),c!=null&&c.textStyles&&(o=[...o,...c.textStyles??[]].map(u=>u.trim()))}return o}addCssStyles(i,o){for(const h of i){const c=this.entities.get(h);if(!o||!c)return;for(const u of o)c.cssStyles.push(u)}}addClass(i,o){i.forEach(h=>{let c=this.classes.get(h);c===void 0&&(c={id:h,styles:[],textStyles:[]},this.classes.set(h,c)),o&&o.forEach(function(u){if(/color/.exec(u)){const f=u.replace("fill","bgFill");c.textStyles.push(f)}c.styles.push(u)})})}setClass(i,o){for(const h of i){const c=this.entities.get(h);if(c)for(const u of o)c.cssClasses+=" "+u}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],Zt()}getData(){const i=[],o=[],h=rt();let c=0;for(const f of this.entities.keys()){const d=this.entities.get(f);d&&(d.cssCompiledStyles=this.getCompiledStyles(d.cssClasses.split(" ")),d.colorIndex=c++,i.push(d))}let u=0;for(const f of this.relationships){const d={id:jt(f.entityA,f.entityB,{prefix:"id",counter:u++}),type:"normal",curve:"basis",start:f.entityA,end:f.entityB,label:f.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:f.relSpec.cardB.toLowerCase(),arrowTypeEnd:f.relSpec.cardA.toLowerCase(),pattern:f.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:h.look,labelType:"markdown"};o.push(d)}return{nodes:i,edges:o,other:{},config:h,direction:"TB"}}},p(M,"ErDB"),M),vt={};Qt(vt,{draw:()=>se});var se=p(async function(s,i,o,h){V.info("REF0:"),V.info("Drawing er diagram (unified)",i);const{securityLevel:c,er:u,layout:f}=rt(),d=h.db.getData(),k=Bt(i,c);d.type=h.type,d.layoutAlgorithm=Xt(f),d.config.flowchart.nodeSpacing=(u==null?void 0:u.nodeSpacing)||140,d.config.flowchart.rankSpacing=(u==null?void 0:u.rankSpacing)||80,d.direction=h.db.getDirection();const{config:W}=d,{look:Q}=W;Q==="neo"?d.markers=["only_one_neo","zero_or_one_neo","one_or_more_neo","zero_or_more_neo"]:d.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],d.diagramId=i,await Ht(d,k),d.layoutAlgorithm==="elk"&&k.select(".edges").lower();const T=k.selectAll('[id*="-background"]');Array.from(T).length>0&&T.each(function(){const B=Jt(this),R=B.attr("id").replace("-background",""),S=k.select(`#${CSS.escape(R)}`);if(!S.empty()){const x=S.attr("transform");B.attr("transform",x)}});const X=8;qt.insertTitle(k,"erDiagramTitleText",(u==null?void 0:u.titleTopMargin)??25,h.db.getDiagramTitle()),Ft(k,X,"erDiagram",(u==null?void 0:u.useMaxWidth)??!0)},"draw"),Ct=p((s,i)=>{const o=$t,h=o(s,"r"),c=o(s,"g"),u=o(s,"b");return Wt(h,c,u,i)},"fade"),nt=new Set(["redux-color","redux-dark-color"]),ie=p(s=>{const{theme:i,look:o,bkgColorArray:h,borderColorArray:c}=s;if(!nt.has(i))return"";const u=(h==null?void 0:h.length)>0;let f="";for(let d=0;d<s.THEME_COLOR_LIMIT;d++)f+=`
7
+
8
+ [data-look="${o}"][data-color-id="color-${d}"].node path {
9
+ stroke: ${c[d]};
10
+ ${u?`fill: ${h[d]};`:""}
11
+ }
12
+
13
+ [data-look="${o}"][data-color-id="color-${d}"].node rect {
14
+ stroke: ${c[d]};
15
+ ${u?`fill: ${h[d]};`:""}
16
+ }
17
+ `;return f},"genColor"),re=p(s=>{const{look:i,theme:o,erEdgeLabelBackground:h,strokeWidth:c}=s;return`
18
+ ${ie(s)}
19
+ .entityBox {
20
+ fill: ${s.mainBkg};
21
+ stroke: ${s.nodeBorder};
22
+ }
23
+
24
+ .relationshipLabelBox {
25
+ fill: ${s.tertiaryColor};
26
+ opacity: 0.7;
27
+ background-color: ${s.tertiaryColor};
28
+ rect {
29
+ opacity: 0.5;
30
+ }
31
+ }
32
+
33
+ .labelBkg {
34
+ background-color: ${nt.has(o)&&h?h:Ct(s.tertiaryColor,.5)};
35
+ }
36
+
37
+ .edgeLabel {
38
+ background-color: ${nt.has(o)&&h?h:s.edgeLabelBackground};
39
+ }
40
+ .edgeLabel .label rect {
41
+ fill: ${nt.has(o)&&h?h:s.edgeLabelBackground};
42
+ }
43
+ .edgeLabel .label text {
44
+ fill: ${s.textColor};
45
+ }
46
+
47
+ .edgeLabel .label {
48
+ fill: ${s.nodeBorder};
49
+ font-size: 14px;
50
+ }
51
+
52
+ .label {
53
+ font-family: ${s.fontFamily};
54
+ color: ${s.nodeTextColor||s.textColor};
55
+ }
56
+
57
+ .edge-pattern-dashed {
58
+ stroke-dasharray: 8,8;
59
+ }
60
+
61
+ .node rect,
62
+ .node circle,
63
+ .node ellipse,
64
+ .node polygon
65
+ {
66
+ fill: ${s.mainBkg};
67
+ stroke: ${s.nodeBorder};
68
+ stroke-width: ${i==="neo"?c:"1px"};
69
+ }
70
+
71
+ .relationshipLine {
72
+ stroke: ${s.lineColor};
73
+ stroke-width: ${i==="neo"?c:"1px"};
74
+ fill: none;
75
+ }
76
+
77
+ .marker {
78
+ fill: none !important;
79
+ stroke: ${s.lineColor} !important;
80
+ stroke-width: 1;
81
+ }
82
+ [data-look=neo].labelBkg {
83
+ background-color: ${Ct(s.tertiaryColor,.5)};
84
+ }
85
+ `},"getStyles"),ne=re,ue={parser:te,get db(){return new ee},renderer:vt,styles:ne};export{ue as diagram};
86
+ //# sourceMappingURL=erDiagram-SMLLAGMA-jo1OteBB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erDiagram-SMLLAGMA-jo1OteBB.js","sources":["../../../../node_modules/.pnpm/mermaid@11.14.0/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-SMLLAGMA.mjs"],"sourcesContent":["import {\n getDiagramElement\n} from \"./chunk-55IACEB6.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-EDXVE4YY.mjs\";\nimport {\n getRegisteredLayoutAlgorithm,\n render\n} from \"./chunk-336JU56O.mjs\";\nimport \"./chunk-ENJZ2VHE.mjs\";\nimport \"./chunk-BSJP7CBP.mjs\";\nimport \"./chunk-5FUZZQ4R.mjs\";\nimport \"./chunk-ZZ45TVLE.mjs\";\nimport \"./chunk-X2U36JSP.mjs\";\nimport \"./chunk-U2HBQHQK.mjs\";\nimport {\n getEdgeId,\n utils_default\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __export,\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/er/parser/erDiagram.jison\nvar parser = (function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [6, 8, 10, 22, 24, 26, 28, 33, 34, 35, 36, 37, 40, 43, 44, 48, 50, 51, 52], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 23], $V6 = [1, 24], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 27], $Va = [1, 19], $Vb = [1, 28], $Vc = [1, 29], $Vd = [1, 20], $Ve = [1, 18], $Vf = [1, 21], $Vg = [1, 22], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 38], $Vk = [1, 39], $Vl = [1, 40], $Vm = [6, 8, 10, 13, 15, 17, 20, 21, 22, 24, 26, 28, 33, 34, 35, 36, 37, 40, 43, 44, 48, 50, 51, 52, 65, 66, 67, 68, 69], $Vn = [1, 45], $Vo = [1, 46], $Vp = [1, 55], $Vq = [40, 48, 50, 51, 52, 70, 71], $Vr = [1, 66], $Vs = [1, 64], $Vt = [1, 61], $Vu = [1, 65], $Vv = [1, 67], $Vw = [6, 8, 10, 13, 17, 22, 24, 26, 28, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 48, 49, 50, 51, 52, 65, 66, 67, 68, 69], $Vx = [65, 66, 67, 68, 69], $Vy = [1, 84], $Vz = [1, 83], $VA = [1, 81], $VB = [1, 82], $VC = [6, 10, 42, 47], $VD = [6, 10, 13, 41, 42, 47, 48, 49], $VE = [1, 92], $VF = [1, 91], $VG = [1, 90], $VH = [19, 58], $VI = [1, 101], $VJ = [1, 100], $VK = [19, 58, 60, 62];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"ER_DIAGRAM\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NEWLINE\": 10, \"entityName\": 11, \"relSpec\": 12, \"COLON\": 13, \"role\": 14, \"STYLE_SEPARATOR\": 15, \"idList\": 16, \"BLOCK_START\": 17, \"attributes\": 18, \"BLOCK_STOP\": 19, \"SQS\": 20, \"SQE\": 21, \"title\": 22, \"title_value\": 23, \"acc_title\": 24, \"acc_title_value\": 25, \"acc_descr\": 26, \"acc_descr_value\": 27, \"acc_descr_multiline_value\": 28, \"direction\": 29, \"classDefStatement\": 30, \"classStatement\": 31, \"styleStatement\": 32, \"direction_tb\": 33, \"direction_bt\": 34, \"direction_rl\": 35, \"direction_lr\": 36, \"CLASSDEF\": 37, \"stylesOpt\": 38, \"separator\": 39, \"UNICODE_TEXT\": 40, \"STYLE_TEXT\": 41, \"COMMA\": 42, \"CLASS\": 43, \"STYLE\": 44, \"style\": 45, \"styleComponent\": 46, \"SEMI\": 47, \"NUM\": 48, \"BRKT\": 49, \"ENTITY_NAME\": 50, \"DECIMAL_NUM\": 51, \"ENTITY_ONE\": 52, \"attribute\": 53, \"attributeType\": 54, \"attributeName\": 55, \"attributeKeyTypeList\": 56, \"attributeComment\": 57, \"ATTRIBUTE_WORD\": 58, \"attributeKeyType\": 59, \",\": 60, \"ATTRIBUTE_KEY\": 61, \"COMMENT\": 62, \"cardinality\": 63, \"relType\": 64, \"ZERO_OR_ONE\": 65, \"ZERO_OR_MORE\": 66, \"ONE_OR_MORE\": 67, \"ONLY_ONE\": 68, \"MD_PARENT\": 69, \"NON_IDENTIFYING\": 70, \"IDENTIFYING\": 71, \"WORD\": 72, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"ER_DIAGRAM\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 13: \"COLON\", 15: \"STYLE_SEPARATOR\", 17: \"BLOCK_START\", 19: \"BLOCK_STOP\", 20: \"SQS\", 21: \"SQE\", 22: \"title\", 23: \"title_value\", 24: \"acc_title\", 25: \"acc_title_value\", 26: \"acc_descr\", 27: \"acc_descr_value\", 28: \"acc_descr_multiline_value\", 33: \"direction_tb\", 34: \"direction_bt\", 35: \"direction_rl\", 36: \"direction_lr\", 37: \"CLASSDEF\", 40: \"UNICODE_TEXT\", 41: \"STYLE_TEXT\", 42: \"COMMA\", 43: \"CLASS\", 44: \"STYLE\", 47: \"SEMI\", 48: \"NUM\", 49: \"BRKT\", 50: \"ENTITY_NAME\", 51: \"DECIMAL_NUM\", 52: \"ENTITY_ONE\", 58: \"ATTRIBUTE_WORD\", 60: \",\", 61: \"ATTRIBUTE_KEY\", 62: \"COMMENT\", 65: \"ZERO_OR_ONE\", 66: \"ZERO_OR_MORE\", 67: \"ONE_OR_MORE\", 68: \"ONLY_ONE\", 69: \"MD_PARENT\", 70: \"NON_IDENTIFYING\", 71: \"IDENTIFYING\", 72: \"WORD\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 9], [9, 7], [9, 7], [9, 4], [9, 6], [9, 3], [9, 5], [9, 1], [9, 3], [9, 7], [9, 9], [9, 6], [9, 8], [9, 4], [9, 6], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [29, 1], [29, 1], [29, 1], [29, 1], [30, 4], [16, 1], [16, 1], [16, 3], [16, 3], [31, 3], [32, 4], [38, 1], [38, 3], [45, 1], [45, 2], [39, 1], [39, 1], [39, 1], [46, 1], [46, 1], [46, 1], [46, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [18, 1], [18, 2], [53, 2], [53, 3], [53, 3], [53, 4], [54, 1], [55, 1], [56, 1], [56, 3], [59, 1], [57, 1], [12, 3], [63, 1], [63, 1], [63, 1], [63, 1], [63, 1], [64, 1], [64, 1], [14, 1], [14, 1], [14, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n break;\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.addEntity($$[$0 - 4]);\n yy.addEntity($$[$0 - 2]);\n yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);\n break;\n case 9:\n yy.addEntity($$[$0 - 8]);\n yy.addEntity($$[$0 - 4]);\n yy.addRelationship($$[$0 - 8], $$[$0], $$[$0 - 4], $$[$0 - 5]);\n yy.setClass([$$[$0 - 8]], $$[$0 - 6]);\n yy.setClass([$$[$0 - 4]], $$[$0 - 2]);\n break;\n case 10:\n yy.addEntity($$[$0 - 6]);\n yy.addEntity($$[$0 - 2]);\n yy.addRelationship($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 3]);\n yy.setClass([$$[$0 - 6]], $$[$0 - 4]);\n break;\n case 11:\n yy.addEntity($$[$0 - 6]);\n yy.addEntity($$[$0 - 4]);\n yy.addRelationship($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 5]);\n yy.setClass([$$[$0 - 4]], $$[$0 - 2]);\n break;\n case 12:\n yy.addEntity($$[$0 - 3]);\n yy.addAttributes($$[$0 - 3], $$[$0 - 1]);\n break;\n case 13:\n yy.addEntity($$[$0 - 5]);\n yy.addAttributes($$[$0 - 5], $$[$0 - 1]);\n yy.setClass([$$[$0 - 5]], $$[$0 - 3]);\n break;\n case 14:\n yy.addEntity($$[$0 - 2]);\n break;\n case 15:\n yy.addEntity($$[$0 - 4]);\n yy.setClass([$$[$0 - 4]], $$[$0 - 2]);\n break;\n case 16:\n yy.addEntity($$[$0]);\n break;\n case 17:\n yy.addEntity($$[$0 - 2]);\n yy.setClass([$$[$0 - 2]], $$[$0]);\n break;\n case 18:\n yy.addEntity($$[$0 - 6], $$[$0 - 4]);\n yy.addAttributes($$[$0 - 6], $$[$0 - 1]);\n break;\n case 19:\n yy.addEntity($$[$0 - 8], $$[$0 - 6]);\n yy.addAttributes($$[$0 - 8], $$[$0 - 1]);\n yy.setClass([$$[$0 - 8]], $$[$0 - 3]);\n break;\n case 20:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n break;\n case 21:\n yy.addEntity($$[$0 - 7], $$[$0 - 5]);\n yy.setClass([$$[$0 - 7]], $$[$0 - 2]);\n break;\n case 22:\n yy.addEntity($$[$0 - 3], $$[$0 - 1]);\n break;\n case 23:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n yy.setClass([$$[$0 - 5]], $$[$0]);\n break;\n case 24:\n case 25:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 26:\n case 27:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 32:\n yy.setDirection(\"TB\");\n break;\n case 33:\n yy.setDirection(\"BT\");\n break;\n case 34:\n yy.setDirection(\"RL\");\n break;\n case 35:\n yy.setDirection(\"LR\");\n break;\n case 36:\n this.$ = $$[$0 - 3];\n yy.addClass($$[$0 - 2], $$[$0 - 1]);\n break;\n case 37:\n case 38:\n case 59:\n case 67:\n this.$ = [$$[$0]];\n break;\n case 39:\n case 40:\n this.$ = $$[$0 - 2].concat([$$[$0]]);\n break;\n case 41:\n this.$ = $$[$0 - 2];\n yy.setClass($$[$0 - 1], $$[$0]);\n break;\n case 42:\n ;\n this.$ = $$[$0 - 3];\n yy.addCssStyles($$[$0 - 2], $$[$0 - 1]);\n break;\n case 43:\n this.$ = [$$[$0]];\n break;\n case 44:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 46:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 54:\n case 79:\n case 80:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 55:\n case 56:\n case 57:\n case 58:\n case 81:\n this.$ = $$[$0];\n break;\n case 60:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 61:\n this.$ = { type: $$[$0 - 1], name: $$[$0] };\n break;\n case 62:\n this.$ = { type: $$[$0 - 2], name: $$[$0 - 1], keys: $$[$0] };\n break;\n case 63:\n this.$ = { type: $$[$0 - 2], name: $$[$0 - 1], comment: $$[$0] };\n break;\n case 64:\n this.$ = { type: $$[$0 - 3], name: $$[$0 - 2], keys: $$[$0 - 1], comment: $$[$0] };\n break;\n case 65:\n case 66:\n case 69:\n this.$ = $$[$0];\n break;\n case 68:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 70:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 71:\n this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };\n break;\n case 72:\n this.$ = yy.Cardinality.ZERO_OR_ONE;\n break;\n case 73:\n this.$ = yy.Cardinality.ZERO_OR_MORE;\n break;\n case 74:\n this.$ = yy.Cardinality.ONE_OR_MORE;\n break;\n case 75:\n this.$ = yy.Cardinality.ONLY_ONE;\n break;\n case 76:\n this.$ = yy.Cardinality.MD_PARENT;\n break;\n case 77:\n this.$ = yy.Identification.NON_IDENTIFYING;\n break;\n case 78:\n this.$ = yy.Identification.IDENTIFYING;\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 22: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V5, 34: $V6, 35: $V7, 36: $V8, 37: $V9, 40: $Va, 43: $Vb, 44: $Vc, 48: $Vd, 50: $Ve, 51: $Vf, 52: $Vg }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 30, 11: 9, 22: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V5, 34: $V6, 35: $V7, 36: $V8, 37: $V9, 40: $Va, 43: $Vb, 44: $Vc, 48: $Vd, 50: $Ve, 51: $Vf, 52: $Vg }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 16], { 12: 31, 63: 35, 15: [1, 32], 17: [1, 33], 20: [1, 34], 65: $Vh, 66: $Vi, 67: $Vj, 68: $Vk, 69: $Vl }), { 23: [1, 41] }, { 25: [1, 42] }, { 27: [1, 43] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), o($V0, [2, 30]), o($V0, [2, 31]), o($Vm, [2, 54]), o($Vm, [2, 55]), o($Vm, [2, 56]), o($Vm, [2, 57]), o($Vm, [2, 58]), o($V0, [2, 32]), o($V0, [2, 33]), o($V0, [2, 34]), o($V0, [2, 35]), { 16: 44, 40: $Vn, 41: $Vo }, { 16: 47, 40: $Vn, 41: $Vo }, { 16: 48, 40: $Vn, 41: $Vo }, o($V0, [2, 4]), { 11: 49, 40: $Va, 48: $Vd, 50: $Ve, 51: $Vf, 52: $Vg }, { 16: 50, 40: $Vn, 41: $Vo }, { 18: 51, 19: [1, 52], 53: 53, 54: 54, 58: $Vp }, { 11: 56, 40: $Va, 48: $Vd, 50: $Ve, 51: $Vf, 52: $Vg }, { 64: 57, 70: [1, 58], 71: [1, 59] }, o($Vq, [2, 72]), o($Vq, [2, 73]), o($Vq, [2, 74]), o($Vq, [2, 75]), o($Vq, [2, 76]), o($V0, [2, 24]), o($V0, [2, 25]), o($V0, [2, 26]), { 13: $Vr, 38: 60, 41: $Vs, 42: $Vt, 45: 62, 46: 63, 48: $Vu, 49: $Vv }, o($Vw, [2, 37]), o($Vw, [2, 38]), { 16: 68, 40: $Vn, 41: $Vo, 42: $Vt }, { 13: $Vr, 38: 69, 41: $Vs, 42: $Vt, 45: 62, 46: 63, 48: $Vu, 49: $Vv }, { 13: [1, 70], 15: [1, 71] }, o($V0, [2, 17], { 63: 35, 12: 72, 17: [1, 73], 42: $Vt, 65: $Vh, 66: $Vi, 67: $Vj, 68: $Vk, 69: $Vl }), { 19: [1, 74] }, o($V0, [2, 14]), { 18: 75, 19: [2, 59], 53: 53, 54: 54, 58: $Vp }, { 55: 76, 58: [1, 77] }, { 58: [2, 65] }, { 21: [1, 78] }, { 63: 79, 65: $Vh, 66: $Vi, 67: $Vj, 68: $Vk, 69: $Vl }, o($Vx, [2, 77]), o($Vx, [2, 78]), { 6: $Vy, 10: $Vz, 39: 80, 42: $VA, 47: $VB }, { 40: [1, 85], 41: [1, 86] }, o($VC, [2, 43], { 46: 87, 13: $Vr, 41: $Vs, 48: $Vu, 49: $Vv }), o($VD, [2, 45]), o($VD, [2, 50]), o($VD, [2, 51]), o($VD, [2, 52]), o($VD, [2, 53]), o($V0, [2, 41], { 42: $Vt }), { 6: $Vy, 10: $Vz, 39: 88, 42: $VA, 47: $VB }, { 14: 89, 40: $VE, 50: $VF, 72: $VG }, { 16: 93, 40: $Vn, 41: $Vo }, { 11: 94, 40: $Va, 48: $Vd, 50: $Ve, 51: $Vf, 52: $Vg }, { 18: 95, 19: [1, 96], 53: 53, 54: 54, 58: $Vp }, o($V0, [2, 12]), { 19: [2, 60] }, o($VH, [2, 61], { 56: 97, 57: 98, 59: 99, 61: $VI, 62: $VJ }), o([19, 58, 61, 62], [2, 66]), o($V0, [2, 22], { 15: [1, 103], 17: [1, 102] }), o([40, 48, 50, 51, 52], [2, 71]), o($V0, [2, 36]), { 13: $Vr, 41: $Vs, 45: 104, 46: 63, 48: $Vu, 49: $Vv }, o($V0, [2, 47]), o($V0, [2, 48]), o($V0, [2, 49]), o($Vw, [2, 39]), o($Vw, [2, 40]), o($VD, [2, 46]), o($V0, [2, 42]), o($V0, [2, 8]), o($V0, [2, 79]), o($V0, [2, 80]), o($V0, [2, 81]), { 13: [1, 105], 42: $Vt }, { 13: [1, 107], 15: [1, 106] }, { 19: [1, 108] }, o($V0, [2, 15]), o($VH, [2, 62], { 57: 109, 60: [1, 110], 62: $VJ }), o($VH, [2, 63]), o($VK, [2, 67]), o($VH, [2, 70]), o($VK, [2, 69]), { 18: 111, 19: [1, 112], 53: 53, 54: 54, 58: $Vp }, { 16: 113, 40: $Vn, 41: $Vo }, o($VC, [2, 44], { 46: 87, 13: $Vr, 41: $Vs, 48: $Vu, 49: $Vv }), { 14: 114, 40: $VE, 50: $VF, 72: $VG }, { 16: 115, 40: $Vn, 41: $Vo }, { 14: 116, 40: $VE, 50: $VF, 72: $VG }, o($V0, [2, 13]), o($VH, [2, 64]), { 59: 117, 61: $VI }, { 19: [1, 118] }, o($V0, [2, 20]), o($V0, [2, 23], { 17: [1, 119], 42: $Vt }), o($V0, [2, 11]), { 13: [1, 120], 42: $Vt }, o($V0, [2, 10]), o($VK, [2, 68]), o($V0, [2, 18]), { 18: 121, 19: [1, 122], 53: 53, 54: 54, 58: $Vp }, { 14: 123, 40: $VE, 50: $VF, 72: $VG }, { 19: [1, 124] }, o($V0, [2, 21]), o($V0, [2, 9]), o($V0, [2, 19])],\n defaultActions: { 55: [2, 65], 75: [2, 60] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ (function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 24;\n break;\n case 1:\n this.popState();\n return \"acc_title_value\";\n break;\n case 2:\n this.begin(\"acc_descr\");\n return 26;\n break;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n break;\n case 7:\n return 33;\n break;\n case 8:\n return 34;\n break;\n case 9:\n return 35;\n break;\n case 10:\n return 36;\n break;\n case 11:\n return 10;\n break;\n case 12:\n break;\n case 13:\n return 8;\n break;\n case 14:\n return 50;\n break;\n case 15:\n return 72;\n break;\n case 16:\n return 4;\n break;\n case 17:\n this.begin(\"block\");\n return 17;\n break;\n case 18:\n return 49;\n break;\n case 19:\n return 49;\n break;\n case 20:\n return 42;\n break;\n case 21:\n return 15;\n break;\n case 22:\n return 13;\n break;\n case 23:\n break;\n case 24:\n return 61;\n break;\n case 25:\n return 58;\n break;\n case 26:\n return 58;\n break;\n case 27:\n return 62;\n break;\n case 28:\n break;\n case 29:\n this.popState();\n return 19;\n break;\n case 30:\n return yy_.yytext[0];\n break;\n case 31:\n return 20;\n break;\n case 32:\n return 21;\n break;\n case 33:\n this.begin(\"style\");\n return 44;\n break;\n case 34:\n this.popState();\n return 10;\n break;\n case 35:\n break;\n case 36:\n return 13;\n break;\n case 37:\n return 42;\n break;\n case 38:\n return 49;\n break;\n case 39:\n this.begin(\"style\");\n return 37;\n break;\n case 40:\n return 43;\n break;\n case 41:\n return 65;\n break;\n case 42:\n return 67;\n break;\n case 43:\n return 67;\n break;\n case 44:\n return 67;\n break;\n case 45:\n return 65;\n break;\n case 46:\n return 65;\n break;\n case 47:\n return 66;\n break;\n case 48:\n return 66;\n break;\n case 49:\n return 66;\n break;\n case 50:\n return 66;\n break;\n case 51:\n return 66;\n break;\n case 52:\n return 67;\n break;\n case 53:\n return 66;\n break;\n case 54:\n return 67;\n break;\n case 55:\n return 68;\n break;\n case 56:\n return 68;\n break;\n case 57:\n return 51;\n break;\n case 58:\n return 68;\n break;\n case 59:\n return 68;\n break;\n case 60:\n return 68;\n break;\n case 61:\n return 52;\n break;\n case 62:\n return 48;\n break;\n case 63:\n return 68;\n break;\n case 64:\n return 65;\n break;\n case 65:\n return 66;\n break;\n case 66:\n return 67;\n break;\n case 67:\n return 69;\n break;\n case 68:\n return 70;\n break;\n case 69:\n return 71;\n break;\n case 70:\n return 71;\n break;\n case 71:\n return 70;\n break;\n case 72:\n return 70;\n break;\n case 73:\n return 70;\n break;\n case 74:\n return 41;\n break;\n case 75:\n return 47;\n break;\n case 76:\n return 40;\n break;\n case 77:\n return yy_.yytext[0];\n break;\n case 78:\n return 6;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:[\\s]+)/i, /^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i, /^(?:\"[^\"]*\")/i, /^(?:erDiagram\\b)/i, /^(?:\\{)/i, /^(?:#)/i, /^(?:#)/i, /^(?:,)/i, /^(?::::)/i, /^(?::)/i, /^(?:\\s+)/i, /^(?:\\b((?:PK)|(?:FK)|(?:UK))\\b)/i, /^(?:([^\\s]*)[~].*[~]([^\\s]*))/i, /^(?:([\\*A-Za-z_\\u00C0-\\uFFFF][A-Za-z0-9\\-\\_\\[\\]\\(\\)\\u00C0-\\uFFFF\\*]*))/i, /^(?:\"[^\"]*\")/i, /^(?:[\\n]+)/i, /^(?:\\})/i, /^(?:.)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:style\\b)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?::)/i, /^(?:,)/i, /^(?:#)/i, /^(?:classDef\\b)/i, /^(?:class\\b)/i, /^(?:one or zero\\b)/i, /^(?:one or more\\b)/i, /^(?:one or many\\b)/i, /^(?:1\\+)/i, /^(?:\\|o\\b)/i, /^(?:zero or one\\b)/i, /^(?:zero or more\\b)/i, /^(?:zero or many\\b)/i, /^(?:0\\+)/i, /^(?:\\}o\\b)/i, /^(?:many\\(0\\))/i, /^(?:many\\(1\\))/i, /^(?:many\\b)/i, /^(?:\\}\\|)/i, /^(?:one\\b)/i, /^(?:only one\\b)/i, /^(?:[0-9]+\\.[0-9]+)/i, /^(?:1(?=\\s+[A-Za-z_\"']))/i, /^(?:1(?=\\s+[0-9]))/i, /^(?:1(?=(--|\\.\\.|\\.-|-\\.)))/i, /^(?:1\\b)/i, /^(?:[0-9]+)/i, /^(?:\\|\\|)/i, /^(?:o\\|)/i, /^(?:o\\{)/i, /^(?:\\|\\{)/i, /^(?:u(?=[\\.\\-\\|]))/i, /^(?:\\.\\.)/i, /^(?:--)/i, /^(?:to\\b)/i, /^(?:optionally to\\b)/i, /^(?:\\.-)/i, /^(?:-\\.)/i, /^(?:([^\\x00-\\x7F]|\\w|-|\\*)+)/i, /^(?:;)/i, /^(?:([^\\x00-\\x7F]|\\w|-|\\*|\\.)+)/i, /^(?:.)/i, /^(?:$)/i],\n conditions: { \"style\": { \"rules\": [34, 35, 36, 37, 38, 74, 75], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"block\": { \"rules\": [23, 24, 25, 26, 27, 28, 29, 30], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 31, 32, 33, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 76, 77, 78], \"inclusive\": true } }\n };\n return lexer2;\n })();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n})();\nparser.parser = parser;\nvar erDiagram_default = parser;\n\n// src/diagrams/er/erDb.ts\nvar ErDB = class {\n constructor() {\n this.entities = /* @__PURE__ */ new Map();\n this.relationships = [];\n this.classes = /* @__PURE__ */ new Map();\n this.direction = \"TB\";\n this.Cardinality = {\n ZERO_OR_ONE: \"ZERO_OR_ONE\",\n ZERO_OR_MORE: \"ZERO_OR_MORE\",\n ONE_OR_MORE: \"ONE_OR_MORE\",\n ONLY_ONE: \"ONLY_ONE\",\n MD_PARENT: \"MD_PARENT\"\n };\n this.Identification = {\n NON_IDENTIFYING: \"NON_IDENTIFYING\",\n IDENTIFYING: \"IDENTIFYING\"\n };\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setAccDescription = setAccDescription;\n this.getAccDescription = getAccDescription;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getConfig = /* @__PURE__ */ __name(() => getConfig().er, \"getConfig\");\n this.clear();\n this.addEntity = this.addEntity.bind(this);\n this.addAttributes = this.addAttributes.bind(this);\n this.addRelationship = this.addRelationship.bind(this);\n this.setDirection = this.setDirection.bind(this);\n this.addCssStyles = this.addCssStyles.bind(this);\n this.addClass = this.addClass.bind(this);\n this.setClass = this.setClass.bind(this);\n this.setAccTitle = this.setAccTitle.bind(this);\n this.setAccDescription = this.setAccDescription.bind(this);\n }\n static {\n __name(this, \"ErDB\");\n }\n /**\n * Add entity\n * @param name - The name of the entity\n * @param alias - The alias of the entity\n */\n addEntity(name, alias = \"\") {\n if (!this.entities.has(name)) {\n this.entities.set(name, {\n id: `entity-${name}-${this.entities.size}`,\n label: name,\n attributes: [],\n alias,\n shape: \"erBox\",\n look: getConfig().look ?? \"default\",\n cssClasses: \"default\",\n cssStyles: [],\n labelType: \"markdown\"\n });\n log.info(\"Added new entity :\", name);\n } else if (!this.entities.get(name)?.alias && alias) {\n this.entities.get(name).alias = alias;\n log.info(`Add alias '${alias}' to entity '${name}'`);\n }\n return this.entities.get(name);\n }\n getEntity(name) {\n return this.entities.get(name);\n }\n getEntities() {\n return this.entities;\n }\n getClasses() {\n return this.classes;\n }\n addAttributes(entityName, attribs) {\n const entity = this.addEntity(entityName);\n let i;\n for (i = attribs.length - 1; i >= 0; i--) {\n if (!attribs[i].keys) {\n attribs[i].keys = [];\n }\n if (!attribs[i].comment) {\n attribs[i].comment = \"\";\n }\n entity.attributes.push(attribs[i]);\n log.debug(\"Added attribute \", attribs[i].name);\n }\n }\n /**\n * Add a relationship\n *\n * @param entA - The first entity in the relationship\n * @param rolA - The role played by the first entity in relation to the second\n * @param entB - The second entity in the relationship\n * @param rSpec - The details of the relationship between the two entities\n */\n addRelationship(entA, rolA, entB, rSpec) {\n const entityA = this.entities.get(entA);\n const entityB = this.entities.get(entB);\n if (!entityA || !entityB) {\n return;\n }\n const rel = {\n entityA: entityA.id,\n roleA: rolA,\n entityB: entityB.id,\n relSpec: rSpec\n };\n this.relationships.push(rel);\n log.debug(\"Added new relationship :\", rel);\n }\n getRelationships() {\n return this.relationships;\n }\n getDirection() {\n return this.direction;\n }\n setDirection(dir) {\n this.direction = dir;\n }\n getCompiledStyles(classDefs) {\n let compiledStyles = [];\n for (const customClass of classDefs) {\n const cssClass = this.classes.get(customClass);\n if (cssClass?.styles) {\n compiledStyles = [...compiledStyles, ...cssClass.styles ?? []].map((s) => s.trim());\n }\n if (cssClass?.textStyles) {\n compiledStyles = [...compiledStyles, ...cssClass.textStyles ?? []].map((s) => s.trim());\n }\n }\n return compiledStyles;\n }\n addCssStyles(ids, styles) {\n for (const id of ids) {\n const entity = this.entities.get(id);\n if (!styles || !entity) {\n return;\n }\n for (const style of styles) {\n entity.cssStyles.push(style);\n }\n }\n }\n addClass(ids, style) {\n ids.forEach((id) => {\n let classNode = this.classes.get(id);\n if (classNode === void 0) {\n classNode = { id, styles: [], textStyles: [] };\n this.classes.set(id, classNode);\n }\n if (style) {\n style.forEach(function(s) {\n if (/color/.exec(s)) {\n const newStyle = s.replace(\"fill\", \"bgFill\");\n classNode.textStyles.push(newStyle);\n }\n classNode.styles.push(s);\n });\n }\n });\n }\n setClass(ids, classNames) {\n for (const id of ids) {\n const entity = this.entities.get(id);\n if (entity) {\n for (const className of classNames) {\n entity.cssClasses += \" \" + className;\n }\n }\n }\n }\n clear() {\n this.entities = /* @__PURE__ */ new Map();\n this.classes = /* @__PURE__ */ new Map();\n this.relationships = [];\n clear();\n }\n getData() {\n const nodes = [];\n const edges = [];\n const config = getConfig();\n let colorIndex = 0;\n for (const entityKey of this.entities.keys()) {\n const entityNode = this.entities.get(entityKey);\n if (entityNode) {\n entityNode.cssCompiledStyles = this.getCompiledStyles(entityNode.cssClasses.split(\" \"));\n entityNode.colorIndex = colorIndex++;\n nodes.push(entityNode);\n }\n }\n let count = 0;\n for (const relationship of this.relationships) {\n const edge = {\n id: getEdgeId(relationship.entityA, relationship.entityB, {\n prefix: \"id\",\n counter: count++\n }),\n type: \"normal\",\n curve: \"basis\",\n start: relationship.entityA,\n end: relationship.entityB,\n label: relationship.roleA,\n labelpos: \"c\",\n thickness: \"normal\",\n classes: \"relationshipLine\",\n arrowTypeStart: relationship.relSpec.cardB.toLowerCase(),\n arrowTypeEnd: relationship.relSpec.cardA.toLowerCase(),\n pattern: relationship.relSpec.relType == \"IDENTIFYING\" ? \"solid\" : \"dashed\",\n look: config.look,\n labelType: \"markdown\"\n };\n edges.push(edge);\n }\n return { nodes, edges, other: {}, config, direction: \"TB\" };\n }\n};\n\n// src/diagrams/er/erRenderer-unified.ts\nvar erRenderer_unified_exports = {};\n__export(erRenderer_unified_exports, {\n draw: () => draw\n});\nimport { select } from \"d3\";\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing er diagram (unified)\", id);\n const { securityLevel, er: conf, layout } = getConfig();\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(layout);\n data4Layout.config.flowchart.nodeSpacing = conf?.nodeSpacing || 140;\n data4Layout.config.flowchart.rankSpacing = conf?.rankSpacing || 80;\n data4Layout.direction = diag.db.getDirection();\n const { config } = data4Layout;\n const { look } = config;\n if (look === \"neo\") {\n data4Layout.markers = [\n \"only_one_neo\",\n \"zero_or_one_neo\",\n \"one_or_more_neo\",\n \"zero_or_more_neo\"\n ];\n } else {\n data4Layout.markers = [\"only_one\", \"zero_or_one\", \"one_or_more\", \"zero_or_more\"];\n }\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n if (data4Layout.layoutAlgorithm === \"elk\") {\n svg.select(\".edges\").lower();\n }\n const backgroundNodes = svg.selectAll('[id*=\"-background\"]');\n if (Array.from(backgroundNodes).length > 0) {\n backgroundNodes.each(function() {\n const backgroundNode = select(this);\n const backgroundId = backgroundNode.attr(\"id\");\n const nonBackgroundId = backgroundId.replace(\"-background\", \"\");\n const nonBackgroundNode = svg.select(`#${CSS.escape(nonBackgroundId)}`);\n if (!nonBackgroundNode.empty()) {\n const transform = nonBackgroundNode.attr(\"transform\");\n backgroundNode.attr(\"transform\", transform);\n }\n });\n }\n const padding = 8;\n utils_default.insertTitle(\n svg,\n \"erDiagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, \"erDiagram\", conf?.useMaxWidth ?? true);\n}, \"draw\");\n\n// src/diagrams/er/styles.ts\nimport * as khroma from \"khroma\";\nvar fade = /* @__PURE__ */ __name((color, opacity) => {\n const channel2 = khroma.channel;\n const r = channel2(color, \"r\");\n const g = channel2(color, \"g\");\n const b = channel2(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n}, \"fade\");\nvar COLOR_THEMES = /* @__PURE__ */ new Set([\"redux-color\", \"redux-dark-color\"]);\nvar genColor = /* @__PURE__ */ __name((options) => {\n const { theme, look, bkgColorArray, borderColorArray } = options;\n if (!COLOR_THEMES.has(theme)) {\n return \"\";\n }\n const hasBkgColors = bkgColorArray?.length > 0;\n let sections = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n sections += `\n\n [data-look=\"${look}\"][data-color-id=\"color-${i}\"].node path {\n stroke: ${borderColorArray[i]};\n ${hasBkgColors ? `fill: ${bkgColorArray[i]};` : \"\"}\n }\n\n [data-look=\"${look}\"][data-color-id=\"color-${i}\"].node rect {\n stroke: ${borderColorArray[i]};\n ${hasBkgColors ? `fill: ${bkgColorArray[i]};` : \"\"}\n }\n `;\n }\n return sections;\n}, \"genColor\");\nvar getStyles = /* @__PURE__ */ __name((options) => {\n const { look, theme, erEdgeLabelBackground, strokeWidth } = options;\n return `\n ${genColor(options)}\n .entityBox {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${options.tertiaryColor};\n opacity: 0.7;\n background-color: ${options.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .labelBkg {\n background-color: ${COLOR_THEMES.has(theme) && erEdgeLabelBackground ? erEdgeLabelBackground : fade(options.tertiaryColor, 0.5)};\n }\n\n .edgeLabel {\n background-color: ${COLOR_THEMES.has(theme) && erEdgeLabelBackground ? erEdgeLabelBackground : options.edgeLabelBackground};\n }\n .edgeLabel .label rect {\n fill: ${COLOR_THEMES.has(theme) && erEdgeLabelBackground ? erEdgeLabelBackground : options.edgeLabelBackground};\n }\n .edgeLabel .label text {\n fill: ${options.textColor};\n }\n\n .edgeLabel .label {\n fill: ${options.nodeBorder};\n font-size: 14px;\n }\n\n .label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .edge-pattern-dashed {\n stroke-dasharray: 8,8;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon\n {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: ${look === \"neo\" ? strokeWidth : \"1px\"};\n }\n\n .relationshipLine {\n stroke: ${options.lineColor};\n stroke-width: ${look === \"neo\" ? strokeWidth : \"1px\"};\n fill: none;\n }\n\n .marker {\n fill: none !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n [data-look=neo].labelBkg {\n background-color: ${fade(options.tertiaryColor, 0.5)};\n }\n`;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/er/erDiagram.ts\nvar diagram = {\n parser: erDiagram_default,\n get db() {\n return new ErDB();\n },\n renderer: erRenderer_unified_exports,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","erDiagram_default","ErDB","_a","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","getConfig","name","alias","log","entityName","attribs","entity","entA","rolA","entB","rSpec","entityA","entityB","rel","dir","classDefs","compiledStyles","customClass","cssClass","s","ids","styles","id","style","classNode","newStyle","classNames","className","clear","nodes","edges","config","colorIndex","entityKey","entityNode","count","relationship","edge","getEdgeId","erRenderer_unified_exports","__export","draw","text","_version","diag","securityLevel","conf","layout","data4Layout","svg","getDiagramElement","getRegisteredLayoutAlgorithm","look","render","backgroundNodes","backgroundNode","select","nonBackgroundId","nonBackgroundNode","transform","padding","utils_default","setupViewPortForSVG","fade","color","opacity","channel2","khroma.channel","g","b","khroma.rgba","COLOR_THEMES","genColor","options","theme","bkgColorArray","borderColorArray","hasBkgColors","sections","getStyles","erEdgeLabelBackground","strokeWidth","styles_default","diagram"],"mappings":"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AAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,G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","x_google_ignoreList":[0]}