@kong/markdown 1.3.1 → 1.3.2

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 (82) hide show
  1. package/dist/{arc-CRNu716j.js → arc-8cjaq9av.js} +2 -2
  2. package/dist/{arc-CRNu716j.js.map → arc-8cjaq9av.js.map} +1 -1
  3. package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js → blockDiagram-6b2b5046-CXMFsTaq.js} +6 -6
  4. package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js.map → blockDiagram-6b2b5046-CXMFsTaq.js.map} +1 -1
  5. package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js → c4Diagram-b947cdbb-vwALH1WH.js} +3 -3
  6. package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js.map → c4Diagram-b947cdbb-vwALH1WH.js.map} +1 -1
  7. package/dist/channel-CiebjdPJ.js +6 -0
  8. package/dist/{channel-AStNV-TO.js.map → channel-CiebjdPJ.js.map} +1 -1
  9. package/dist/{classDiagram-35230388-xHVnplkU.js → classDiagram-35230388-CTxUL5uA.js} +6 -6
  10. package/dist/{classDiagram-35230388-xHVnplkU.js.map → classDiagram-35230388-CTxUL5uA.js.map} +1 -1
  11. package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js → classDiagram-v2-412acd34-BQSUu5Vr.js} +6 -6
  12. package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js.map → classDiagram-v2-412acd34-BQSUu5Vr.js.map} +1 -1
  13. package/dist/clone-AVwa-Pmf.js +9 -0
  14. package/dist/{clone-BEwR0ae8.js.map → clone-AVwa-Pmf.js.map} +1 -1
  15. package/dist/{createText-423428c9-CQXqrQGV.js → createText-423428c9-C_xMZUNE.js} +2 -2
  16. package/dist/{createText-423428c9-CQXqrQGV.js.map → createText-423428c9-C_xMZUNE.js.map} +1 -1
  17. package/dist/{edges-d417c7a0-D2l0zXjx.js → edges-d417c7a0-9M_sA3AX.js} +4 -4
  18. package/dist/{edges-d417c7a0-D2l0zXjx.js.map → edges-d417c7a0-9M_sA3AX.js.map} +1 -1
  19. package/dist/{erDiagram-0ea73325-CGortXf-.js → erDiagram-0ea73325-LCVGPMbf.js} +5 -5
  20. package/dist/{erDiagram-0ea73325-CGortXf-.js.map → erDiagram-0ea73325-LCVGPMbf.js.map} +1 -1
  21. package/dist/{flowDb-d35e309a-B37o2qfF.js → flowDb-d35e309a-EwD5UOTn.js} +2 -2
  22. package/dist/{flowDb-d35e309a-B37o2qfF.js.map → flowDb-d35e309a-EwD5UOTn.js.map} +1 -1
  23. package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js → flowDiagram-d949d7c1-B8fV1Bgb.js} +7 -7
  24. package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js.map → flowDiagram-d949d7c1-B8fV1Bgb.js.map} +1 -1
  25. package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js → flowDiagram-v2-49332944-B1NmgnBY.js} +6 -6
  26. package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js.map → flowDiagram-v2-49332944-B1NmgnBY.js.map} +1 -1
  27. package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js → flowchart-elk-definition-27cc417a-uJBgGb6w.js} +5 -5
  28. package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js.map → flowchart-elk-definition-27cc417a-uJBgGb6w.js.map} +1 -1
  29. package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js → ganttDiagram-5c869e3b-CP3jCxVz.js} +3 -3
  30. package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js.map → ganttDiagram-5c869e3b-CP3jCxVz.js.map} +1 -1
  31. package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js → gitGraphDiagram-b9d81de9-C0mDyUJG.js} +2 -2
  32. package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js.map → gitGraphDiagram-b9d81de9-C0mDyUJG.js.map} +1 -1
  33. package/dist/{graph-DnI6iIW-.js → graph-D8osM22K.js} +2 -2
  34. package/dist/{graph-DnI6iIW-.js.map → graph-D8osM22K.js.map} +1 -1
  35. package/dist/{index-8fae9850-BrJpYy1U.js → index-8fae9850-LWne7Y_5.js} +7 -7
  36. package/dist/{index-8fae9850-BrJpYy1U.js.map → index-8fae9850-LWne7Y_5.js.map} +1 -1
  37. package/dist/{index-BdQ-n4gH.js → index-H0_TiiZ2.js} +24 -24
  38. package/dist/{index-BdQ-n4gH.js.map → index-H0_TiiZ2.js.map} +1 -1
  39. package/dist/{infoDiagram-db7b18fc-D02OQKc3.js → infoDiagram-db7b18fc-BUwIw4xq.js} +2 -2
  40. package/dist/{infoDiagram-db7b18fc-D02OQKc3.js.map → infoDiagram-db7b18fc-BUwIw4xq.js.map} +1 -1
  41. package/dist/{journeyDiagram-d5636530-DthrqUFi.js → journeyDiagram-d5636530-BcAzfkwS.js} +4 -4
  42. package/dist/{journeyDiagram-d5636530-DthrqUFi.js.map → journeyDiagram-d5636530-BcAzfkwS.js.map} +1 -1
  43. package/dist/kong-markdown.es.js +1 -1
  44. package/dist/kong-markdown.umd.js +1 -1
  45. package/dist/{layout-OFztbzEY.js → layout-ZVjoo1C9.js} +3 -3
  46. package/dist/{layout-OFztbzEY.js.map → layout-ZVjoo1C9.js.map} +1 -1
  47. package/dist/{line-BSAYYjII.js → line-Cw7WGRye.js} +2 -2
  48. package/dist/{line-BSAYYjII.js.map → line-Cw7WGRye.js.map} +1 -1
  49. package/dist/{linear-D6IIV3ES.js → linear-CM8CQPYx.js} +2 -2
  50. package/dist/{linear-D6IIV3ES.js.map → linear-CM8CQPYx.js.map} +1 -1
  51. package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js → mindmap-definition-377f8f1f-CZ-84IMz.js} +3 -3
  52. package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js.map → mindmap-definition-377f8f1f-CZ-84IMz.js.map} +1 -1
  53. package/dist/{pieDiagram-b0208e96-CEy_a3qY.js → pieDiagram-b0208e96-DWGdunAA.js} +3 -3
  54. package/dist/{pieDiagram-b0208e96-CEy_a3qY.js.map → pieDiagram-b0208e96-DWGdunAA.js.map} +1 -1
  55. package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js → quadrantDiagram-0332be45-CcjioNyx.js} +3 -3
  56. package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js.map → quadrantDiagram-0332be45-CcjioNyx.js.map} +1 -1
  57. package/dist/{requirementDiagram-bf7890df-BXOuPT18.js → requirementDiagram-bf7890df-Bhse_3cX.js} +5 -5
  58. package/dist/{requirementDiagram-bf7890df-BXOuPT18.js.map → requirementDiagram-bf7890df-Bhse_3cX.js.map} +1 -1
  59. package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js → sankeyDiagram-0acdec17-mp2WREQF.js} +2 -2
  60. package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js.map → sankeyDiagram-0acdec17-mp2WREQF.js.map} +1 -1
  61. package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js → sequenceDiagram-c18d009d-C2BOoE0J.js} +3 -3
  62. package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js.map → sequenceDiagram-c18d009d-C2BOoE0J.js.map} +1 -1
  63. package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js → stateDiagram-43596fc0-DcFmBqVD.js} +6 -6
  64. package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js.map → stateDiagram-43596fc0-DcFmBqVD.js.map} +1 -1
  65. package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js → stateDiagram-v2-2ead4f9c-B0kAUaOw.js} +6 -6
  66. package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js.map → stateDiagram-v2-2ead4f9c-B0kAUaOw.js.map} +1 -1
  67. package/dist/style.css +1 -1
  68. package/dist/{styles-6860f46c-g9ltY6y9.js → styles-6860f46c-CCfIsYmF.js} +2 -2
  69. package/dist/{styles-6860f46c-g9ltY6y9.js.map → styles-6860f46c-CCfIsYmF.js.map} +1 -1
  70. package/dist/{styles-7383a064-D9pZsmll.js → styles-7383a064-Z66HBsPQ.js} +5 -5
  71. package/dist/{styles-7383a064-D9pZsmll.js.map → styles-7383a064-Z66HBsPQ.js.map} +1 -1
  72. package/dist/{styles-b2c874b6-2MSTrrjT.js → styles-b2c874b6-vUP-zip8.js} +2 -2
  73. package/dist/{styles-b2c874b6-2MSTrrjT.js.map → styles-b2c874b6-vUP-zip8.js.map} +1 -1
  74. package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js → svgDrawCommon-0ee1b4e9-BN89CkAa.js} +2 -2
  75. package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js.map → svgDrawCommon-0ee1b4e9-BN89CkAa.js.map} +1 -1
  76. package/dist/{timeline-definition-d977decf-J4adcb4f.js → timeline-definition-d977decf-hPFfx-Ol.js} +3 -3
  77. package/dist/{timeline-definition-d977decf-J4adcb4f.js.map → timeline-definition-d977decf-hPFfx-Ol.js.map} +1 -1
  78. package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js → xychartDiagram-e50adddc-rKOcwKj9.js} +5 -5
  79. package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js.map → xychartDiagram-e50adddc-rKOcwKj9.js.map} +1 -1
  80. package/package.json +1 -1
  81. package/dist/channel-AStNV-TO.js +0 -6
  82. package/dist/clone-BEwR0ae8.js +0 -9
@@ -1,7 +1,7 @@
1
- import { B as _t, c as Y, s as Et, g as mt, b as gt, a as kt, C as xt, D as Rt, l as K, E as Ot, h as et, z as bt, i as Nt, F as Tt, G as At } from "./index-BdQ-n4gH.js";
2
- import { G as Mt } from "./graph-DnI6iIW-.js";
3
- import { l as wt } from "./layout-OFztbzEY.js";
4
- import { l as It } from "./line-BSAYYjII.js";
1
+ import { B as _t, c as Y, s as Et, g as mt, b as gt, a as kt, C as xt, D as Rt, l as K, E as Ot, h as et, z as bt, i as Nt, F as Tt, G as At } from "./index-H0_TiiZ2.js";
2
+ import { G as Mt } from "./graph-D8osM22K.js";
3
+ import { l as wt } from "./layout-ZVjoo1C9.js";
4
+ import { l as It } from "./line-Cw7WGRye.js";
5
5
  const St = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
6
6
  function Dt(t) {
7
7
  return typeof t == "string" && St.test(t);
@@ -922,4 +922,4 @@ const oe = {
922
922
  export {
923
923
  ye as diagram
924
924
  };
925
- //# sourceMappingURL=erDiagram-0ea73325-CGortXf-.js.map
925
+ //# sourceMappingURL=erDiagram-0ea73325-LCVGPMbf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"erDiagram-0ea73325-CGortXf-.js","sources":["../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/regex.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/validate.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/parse.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v35.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/sha1.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v5.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/erDiagram-0ea73325.js"],"sourcesContent":["export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;","import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, q as setDiagramTitle, r as getDiagramTitle, l as log, t as clear$1, u as utils, i as configureSvgSize, v as parseGenericTypes } from \"./mermaid-0603ccf8.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport { v5 } from \"uuid\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38];\n var parser2 = {\n trace: function trace() {\n },\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, \":\": 13, \"role\": 14, \"BLOCK_START\": 15, \"attributes\": 16, \"BLOCK_STOP\": 17, \"SQS\": 18, \"SQE\": 19, \"title\": 20, \"title_value\": 21, \"acc_title\": 22, \"acc_title_value\": 23, \"acc_descr\": 24, \"acc_descr_value\": 25, \"acc_descr_multiline_value\": 26, \"ALPHANUM\": 27, \"ENTITY_NAME\": 28, \"attribute\": 29, \"attributeType\": 30, \"attributeName\": 31, \"attributeKeyTypeList\": 32, \"attributeComment\": 33, \"ATTRIBUTE_WORD\": 34, \"attributeKeyType\": 35, \"COMMA\": 36, \"ATTRIBUTE_KEY\": 37, \"COMMENT\": 38, \"cardinality\": 39, \"relType\": 40, \"ZERO_OR_ONE\": 41, \"ZERO_OR_MORE\": 42, \"ONE_OR_MORE\": 43, \"ONLY_ONE\": 44, \"MD_PARENT\": 45, \"NON_IDENTIFYING\": 46, \"IDENTIFYING\": 47, \"WORD\": 48, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"ER_DIAGRAM\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 13: \":\", 15: \"BLOCK_START\", 17: \"BLOCK_STOP\", 18: \"SQS\", 19: \"SQE\", 20: \"title\", 21: \"title_value\", 22: \"acc_title\", 23: \"acc_title_value\", 24: \"acc_descr\", 25: \"acc_descr_value\", 26: \"acc_descr_multiline_value\", 27: \"ALPHANUM\", 28: \"ENTITY_NAME\", 34: \"ATTRIBUTE_WORD\", 36: \"COMMA\", 37: \"ATTRIBUTE_KEY\", 38: \"COMMENT\", 41: \"ZERO_OR_ONE\", 42: \"ZERO_OR_MORE\", 43: \"ONE_OR_MORE\", 44: \"ONLY_ONE\", 45: \"MD_PARENT\", 46: \"NON_IDENTIFYING\", 47: \"IDENTIFYING\", 48: \"WORD\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]],\n performAction: 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 - 3]);\n yy.addAttributes($$[$0 - 3], $$[$0 - 1]);\n break;\n case 10:\n yy.addEntity($$[$0 - 2]);\n break;\n case 11:\n yy.addEntity($$[$0]);\n break;\n case 12:\n yy.addEntity($$[$0 - 6], $$[$0 - 4]);\n yy.addAttributes($$[$0 - 6], $$[$0 - 1]);\n break;\n case 13:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n break;\n case 14:\n yy.addEntity($$[$0 - 3], $$[$0 - 1]);\n break;\n case 15:\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n case 43:\n this.$ = $$[$0];\n break;\n case 20:\n case 41:\n case 42:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 21:\n case 29:\n this.$ = [$$[$0]];\n break;\n case 22:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 23:\n this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };\n break;\n case 24:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };\n break;\n case 25:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 26:\n this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 27:\n case 28:\n case 31:\n this.$ = $$[$0];\n break;\n case 30:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 32:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 33:\n this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };\n break;\n case 34:\n this.$ = yy.Cardinality.ZERO_OR_ONE;\n break;\n case 35:\n this.$ = yy.Cardinality.ZERO_OR_MORE;\n break;\n case 36:\n this.$ = yy.Cardinality.ONE_OR_MORE;\n break;\n case 37:\n this.$ = yy.Cardinality.ONLY_ONE;\n break;\n case 38:\n this.$ = yy.Cardinality.MD_PARENT;\n break;\n case 39:\n this.$ = yy.Identification.NON_IDENTIFYING;\n break;\n case 40:\n this.$ = yy.Identification.IDENTIFYING;\n break;\n }\n },\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, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o($V0, [2, 18]), o($Vc, [2, 19]), o($Vc, [2, 20]), o($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o($Ve, [2, 34]), o($Ve, [2, 35]), o($Ve, [2, 36]), o($Ve, [2, 37]), o($Ve, [2, 38]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o($Vf, [2, 39]), o($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o($V0, [2, 9]), { 17: [2, 22] }, o($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o([17, 34, 37, 38], [2, 28]), o($V0, [2, 14], { 15: [1, 55] }), o([27, 28], [2, 33]), o($V0, [2, 8]), o($V0, [2, 41]), o($V0, [2, 42]), o($V0, [2, 43]), o($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o($Vg, [2, 25]), o($Vj, [2, 29]), o($Vg, [2, 32]), o($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o($V0, [2, 13]), o($Vj, [2, 30]), o($V0, [2, 12])],\n defaultActions: { 34: [2, 27], 41: [2, 22] },\n parseError: 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 },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 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 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 var symbol, state, action, 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 {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\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 }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: 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 },\n // resets the lexer, sets new input\n setInput: 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 },\n // consumes and returns one char from the input\n input: 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 },\n // unshifts one char (or a string) into the input\n unput: 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 },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\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: 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 },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: 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 },\n // displays upcoming input, i.e. for error messages\n upcomingInput: 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 },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: 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 },\n // return next match in input\n next: 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 },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: 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 },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: 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 },\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: 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 },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 22;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 24;\n case 3:\n this.popState();\n return \"acc_descr_value\";\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 case 7:\n return 10;\n case 8:\n break;\n case 9:\n return 8;\n case 10:\n return 28;\n case 11:\n return 48;\n case 12:\n return 4;\n case 13:\n this.begin(\"block\");\n return 15;\n case 14:\n return 36;\n case 15:\n break;\n case 16:\n return 37;\n case 17:\n return 34;\n case 18:\n return 34;\n case 19:\n return 38;\n case 20:\n break;\n case 21:\n this.popState();\n return 17;\n case 22:\n return yy_.yytext[0];\n case 23:\n return 18;\n case 24:\n return 19;\n case 25:\n return 41;\n case 26:\n return 43;\n case 27:\n return 43;\n case 28:\n return 43;\n case 29:\n return 41;\n case 30:\n return 41;\n case 31:\n return 42;\n case 32:\n return 42;\n case 33:\n return 42;\n case 34:\n return 42;\n case 35:\n return 42;\n case 36:\n return 43;\n case 37:\n return 42;\n case 38:\n return 43;\n case 39:\n return 44;\n case 40:\n return 44;\n case 41:\n return 44;\n case 42:\n return 44;\n case 43:\n return 41;\n case 44:\n return 42;\n case 45:\n return 43;\n case 46:\n return 45;\n case 47:\n return 46;\n case 48:\n return 47;\n case 49:\n return 47;\n case 50:\n return 46;\n case 51:\n return 46;\n case 52:\n return 46;\n case 53:\n return 27;\n case 54:\n return yy_.yytext[0];\n case 55:\n return 6;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:[\\s]+)/i, /^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i, /^(?:\"[^\"]*\")/i, /^(?:erDiagram\\b)/i, /^(?:\\{)/i, /^(?:,)/i, /^(?:\\s+)/i, /^(?:\\b((?:PK)|(?:FK)|(?:UK))\\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\\*A-Za-z_][A-Za-z0-9\\-_\\[\\]\\(\\)]*)/i, /^(?:\"[^\"]*\")/i, /^(?:[\\n]+)/i, /^(?:\\})/i, /^(?:.)/i, /^(?:\\[)/i, /^(?:\\])/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, /^(?:1\\b)/i, /^(?:\\|\\|)/i, /^(?:o\\|)/i, /^(?:o\\{)/i, /^(?:\\|\\{)/i, /^(?:\\s*u\\b)/i, /^(?:\\.\\.)/i, /^(?:--)/i, /^(?:to\\b)/i, /^(?:optionally to\\b)/i, /^(?:\\.-)/i, /^(?:-\\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\\-_]*)/i, /^(?:.)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"block\": { \"rules\": [14, 15, 16, 17, 18, 19, 20, 21, 22], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst erParser = parser;\nlet entities = {};\nlet relationships = [];\nconst 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};\nconst Identification = {\n NON_IDENTIFYING: \"NON_IDENTIFYING\",\n IDENTIFYING: \"IDENTIFYING\"\n};\nconst addEntity = function(name, alias = void 0) {\n if (entities[name] === void 0) {\n entities[name] = { attributes: [], alias };\n log.info(\"Added new entity :\", name);\n } else if (entities[name] && !entities[name].alias && alias) {\n entities[name].alias = alias;\n log.info(`Add alias '${alias}' to entity '${name}'`);\n }\n return entities[name];\n};\nconst getEntities = () => entities;\nconst addAttributes = function(entityName, attribs) {\n let entity = addEntity(entityName);\n let i;\n for (i = attribs.length - 1; i >= 0; i--) {\n entity.attributes.push(attribs[i]);\n log.debug(\"Added attribute \", attribs[i].attributeName);\n }\n};\nconst addRelationship = function(entA, rolA, entB, rSpec) {\n let rel = {\n entityA: entA,\n roleA: rolA,\n entityB: entB,\n relSpec: rSpec\n };\n relationships.push(rel);\n log.debug(\"Added new relationship :\", rel);\n};\nconst getRelationships = () => relationships;\nconst clear = function() {\n entities = {};\n relationships = [];\n clear$1();\n};\nconst erDb = {\n Cardinality,\n Identification,\n getConfig: () => getConfig().er,\n addEntity,\n addAttributes,\n getEntities,\n addRelationship,\n getRelationships,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\nconst ERMarkers = {\n ONLY_ONE_START: \"ONLY_ONE_START\",\n ONLY_ONE_END: \"ONLY_ONE_END\",\n ZERO_OR_ONE_START: \"ZERO_OR_ONE_START\",\n ZERO_OR_ONE_END: \"ZERO_OR_ONE_END\",\n ONE_OR_MORE_START: \"ONE_OR_MORE_START\",\n ONE_OR_MORE_END: \"ONE_OR_MORE_END\",\n ZERO_OR_MORE_START: \"ZERO_OR_MORE_START\",\n ZERO_OR_MORE_END: \"ZERO_OR_MORE_END\",\n MD_PARENT_END: \"MD_PARENT_END\",\n MD_PARENT_START: \"MD_PARENT_START\"\n};\nconst insertMarkers = function(elem, conf2) {\n let marker;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_START).attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_END).attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_END).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_END).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,0 L21,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_END).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_END).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n return;\n};\nconst erMarkers = {\n ERMarkers,\n insertMarkers\n};\nconst BAD_ID_CHARS_REGEXP = /[^\\dA-Za-z](\\W)*/g;\nlet conf = {};\nlet entityNameIds = /* @__PURE__ */ new Map();\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst drawAttributes = (groupNode, entityTextNode, attributes) => {\n const heightPadding = conf.entityPadding / 3;\n const widthPadding = conf.entityPadding / 3;\n const attrFontSize = conf.fontSize * 0.85;\n const labelBBox = entityTextNode.node().getBBox();\n const attributeNodes = [];\n let hasKeyType = false;\n let hasComment = false;\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeyWidth = 0;\n let maxCommentWidth = 0;\n let cumulativeHeight = labelBBox.height + heightPadding * 2;\n let attrNum = 1;\n attributes.forEach((item) => {\n if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {\n hasKeyType = true;\n }\n if (item.attributeComment !== void 0) {\n hasComment = true;\n }\n });\n attributes.forEach((item) => {\n const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;\n let nodeHeight = 0;\n const attributeType = parseGenericTypes(item.attributeType);\n const typeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-type`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(attributeType);\n const nameNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-name`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeName);\n const attributeNode = {};\n attributeNode.tn = typeNode;\n attributeNode.nn = nameNode;\n const typeBBox = typeNode.node().getBBox();\n const nameBBox = nameNode.node().getBBox();\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);\n maxNameWidth = Math.max(maxNameWidth, nameBBox.width);\n nodeHeight = Math.max(typeBBox.height, nameBBox.height);\n if (hasKeyType) {\n const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(\",\") : \"\";\n const keyTypeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-key`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(keyTypeNodeText);\n attributeNode.kn = keyTypeNode;\n const keyTypeBBox = keyTypeNode.node().getBBox();\n maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);\n nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);\n }\n if (hasComment) {\n const commentNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-comment`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeComment || \"\");\n attributeNode.cn = commentNode;\n const commentNodeBBox = commentNode.node().getBBox();\n maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);\n nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);\n }\n attributeNode.height = nodeHeight;\n attributeNodes.push(attributeNode);\n cumulativeHeight += nodeHeight + heightPadding * 2;\n attrNum += 1;\n });\n let widthPaddingFactor = 4;\n if (hasKeyType) {\n widthPaddingFactor += 2;\n }\n if (hasComment) {\n widthPaddingFactor += 2;\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;\n const bBox = {\n width: Math.max(\n conf.minEntityWidth,\n Math.max(\n labelBBox.width + conf.entityPadding * 2,\n maxWidth + widthPadding * widthPaddingFactor\n )\n ),\n height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)\n };\n if (attributes.length > 0) {\n const spareColumnWidth = Math.max(\n 0,\n (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)\n );\n entityTextNode.attr(\n \"transform\",\n \"translate(\" + bBox.width / 2 + \",\" + (heightPadding + labelBBox.height / 2) + \")\"\n );\n let heightOffset = labelBBox.height + heightPadding * 2;\n let attribStyle = \"attributeBoxOdd\";\n attributeNodes.forEach((attributeNode) => {\n const alignY = heightOffset + heightPadding + attributeNode.height / 2;\n attributeNode.tn.attr(\"transform\", \"translate(\" + widthPadding + \",\" + alignY + \")\");\n const typeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", 0).attr(\"y\", heightOffset).attr(\"width\", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n const nameXOffset = parseFloat(typeRect.attr(\"x\")) + parseFloat(typeRect.attr(\"width\"));\n attributeNode.nn.attr(\n \"transform\",\n \"translate(\" + (nameXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const nameRect = groupNode.insert(\"rect\", \"#\" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", nameXOffset).attr(\"y\", heightOffset).attr(\"width\", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n let keyTypeAndCommentXOffset = parseFloat(nameRect.attr(\"x\")) + parseFloat(nameRect.attr(\"width\"));\n if (hasKeyType) {\n attributeNode.kn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const keyTypeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr(\"x\")) + parseFloat(keyTypeRect.attr(\"width\"));\n }\n if (hasComment) {\n attributeNode.cn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n groupNode.insert(\"rect\", \"#\" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, \"true\").attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n }\n heightOffset += attributeNode.height + heightPadding * 2;\n attribStyle = attribStyle === \"attributeBoxOdd\" ? \"attributeBoxEven\" : \"attributeBoxOdd\";\n });\n } else {\n bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight);\n entityTextNode.attr(\"transform\", \"translate(\" + bBox.width / 2 + \",\" + bBox.height / 2 + \")\");\n }\n return bBox;\n};\nconst drawEntities = function(svgNode, entities2, graph) {\n const keys = Object.keys(entities2);\n let firstOne;\n keys.forEach(function(entityName) {\n const entityId = generateId(entityName, \"entity\");\n entityNameIds.set(entityName, entityId);\n const groupNode = svgNode.append(\"g\").attr(\"id\", entityId);\n firstOne = firstOne === void 0 ? entityId : firstOne;\n const textId = \"text-\" + entityId;\n const textNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", textId).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(entities2[entityName].alias ?? entityName);\n const { width: entityWidth, height: entityHeight } = drawAttributes(\n groupNode,\n textNode,\n entities2[entityName].attributes\n );\n const rectNode = groupNode.insert(\"rect\", \"#\" + textId).classed(\"er entityBox\", true).attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", entityWidth).attr(\"height\", entityHeight);\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(entityId, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: entityId\n });\n });\n return firstOne;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n};\nconst getEdgeName = function(rel) {\n return (rel.entityA + rel.roleA + rel.entityB).replace(/\\s/g, \"\");\n};\nconst addRelationships = function(relationships2, g) {\n relationships2.forEach(function(r) {\n g.setEdge(\n entityNameIds.get(r.entityA),\n entityNameIds.get(r.entityB),\n { relationship: r },\n getEdgeName(r)\n );\n });\n return relationships2;\n};\nlet relCnt = 0;\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n relCnt++;\n const edge = g.edge(\n entityNameIds.get(rel.entityA),\n entityNameIds.get(rel.entityB),\n getEdgeName(rel)\n );\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = svg.insert(\"path\", \"#\" + insert).classed(\"er relationshipLine\", true).attr(\"d\", lineFunction(edge.points)).style(\"stroke\", conf.stroke).style(\"fill\", \"none\");\n if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {\n svgPath.attr(\"stroke-dasharray\", \"8,8\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n switch (rel.relSpec.cardA) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_END + \")\");\n break;\n }\n switch (rel.relSpec.cardB) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_START + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_START + \")\");\n break;\n }\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n const labelNode = svg.append(\"text\").classed(\"er relationshipLabel\", true).attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).style(\"text-anchor\", \"middle\").style(\"dominant-baseline\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(rel.roleA);\n const labelBBox = labelNode.node().getBBox();\n svg.insert(\"rect\", \"#\" + labelId).classed(\"er relationshipLabelBox\", true).attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height);\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().er;\n log.info(\"Drawing ER diagram\");\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n erMarkers.insertMarkers(svg, conf);\n let g;\n g = new graphlib.Graph({\n multigraph: true,\n directed: true,\n compound: false\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g);\n const relationships2 = addRelationships(diagObj.db.getRelationships(), g);\n layout(g);\n adjustEntities(svg, g);\n relationships2.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);\n });\n const padding = conf.diagramPadding;\n utils.insertTitle(svg, \"entityTitleText\", conf.titleTopMargin, diagObj.db.getDiagramTitle());\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst MERMAID_ERDIAGRAM_UUID = \"28e9f9db-3c8d-5aa5-9faf-44286ae5937c\";\nfunction generateId(str = \"\", prefix = \"\") {\n const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, \"\");\n return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5(\n str,\n MERMAID_ERDIAGRAM_UUID\n )}`;\n}\nfunction strWithHyphen(str = \"\") {\n return str.length > 0 ? `${str}-` : \"\";\n}\nconst erRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .entityBox {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${options.attributeBackgroundColorOdd};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${options.attributeBackgroundColorEven};\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 .relationshipLine {\n stroke: ${options.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n } \n #MD_PARENT_START {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n #MD_PARENT_END {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n \n`;\nconst erStyles = getStyles;\nconst diagram = {\n parser: erParser,\n db: erDb,\n renderer: erRenderer,\n styles: erStyles\n};\nexport {\n diagram\n};\n"],"names":["REGEX","validate","uuid","parse","v","arr","stringToBytes","str","bytes","i","DNS","URL","v35","name","version","hashfunc","generateUUID","value","namespace","buf","offset","_namespace","unsafeStringify","f","s","x","y","z","ROTL","n","sha1","K","H","msg","l","N","M","j","W","t","a","b","c","d","e","T","v5","parser","o","k","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","erParser","entities","relationships","Cardinality","Identification","addEntity","alias","log","getEntities","addAttributes","entityName","attribs","entity","addRelationship","entA","rolA","entB","rSpec","rel","getRelationships","clear","clear$1","erDb","getConfig","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","ERMarkers","insertMarkers","elem","conf2","marker","erMarkers","BAD_ID_CHARS_REGEXP","conf","entityNameIds","setConf","cnf","keys","key","drawAttributes","groupNode","entityTextNode","attributes","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","hasKeyType","hasComment","maxTypeWidth","maxNameWidth","maxKeyWidth","maxCommentWidth","cumulativeHeight","attrNum","item","attrPrefix","nodeHeight","attributeType","parseGenericTypes","typeNode","nameNode","attributeNode","typeBBox","nameBBox","keyTypeNodeText","keyTypeNode","keyTypeBBox","commentNode","commentNodeBBox","widthPaddingFactor","maxWidth","bBox","spareColumnWidth","heightOffset","attribStyle","alignY","typeRect","nameXOffset","nameRect","keyTypeAndCommentXOffset","keyTypeRect","drawEntities","svgNode","entities2","graph","firstOne","entityId","generateId","textId","textNode","entityWidth","entityHeight","rectBBox","adjustEntities","getEdgeName","addRelationships","relationships2","g","relCnt","drawRelationshipFromLayout","svg","insert","diagObj","edge","lineFunction","line","curveBasis","svgPath","url","labelPoint","labelId","draw","text","id","_version","securityLevel","sandboxElement","select","graphlib.Graph","firstEntity","layout","padding","utils","svgBounds","width","height","configureSvgSize","MERMAID_ERDIAGRAM_UUID","prefix","simplifiedStr","strWithHyphen","erRenderer","getStyles","options","erStyles","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
1
+ {"version":3,"file":"erDiagram-0ea73325-LCVGPMbf.js","sources":["../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/regex.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/validate.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/parse.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v35.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/sha1.js","../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v5.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/erDiagram-0ea73325.js"],"sourcesContent":["export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;","import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, q as setDiagramTitle, r as getDiagramTitle, l as log, t as clear$1, u as utils, i as configureSvgSize, v as parseGenericTypes } from \"./mermaid-0603ccf8.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport { v5 } from \"uuid\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38];\n var parser2 = {\n trace: function trace() {\n },\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, \":\": 13, \"role\": 14, \"BLOCK_START\": 15, \"attributes\": 16, \"BLOCK_STOP\": 17, \"SQS\": 18, \"SQE\": 19, \"title\": 20, \"title_value\": 21, \"acc_title\": 22, \"acc_title_value\": 23, \"acc_descr\": 24, \"acc_descr_value\": 25, \"acc_descr_multiline_value\": 26, \"ALPHANUM\": 27, \"ENTITY_NAME\": 28, \"attribute\": 29, \"attributeType\": 30, \"attributeName\": 31, \"attributeKeyTypeList\": 32, \"attributeComment\": 33, \"ATTRIBUTE_WORD\": 34, \"attributeKeyType\": 35, \"COMMA\": 36, \"ATTRIBUTE_KEY\": 37, \"COMMENT\": 38, \"cardinality\": 39, \"relType\": 40, \"ZERO_OR_ONE\": 41, \"ZERO_OR_MORE\": 42, \"ONE_OR_MORE\": 43, \"ONLY_ONE\": 44, \"MD_PARENT\": 45, \"NON_IDENTIFYING\": 46, \"IDENTIFYING\": 47, \"WORD\": 48, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"ER_DIAGRAM\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 13: \":\", 15: \"BLOCK_START\", 17: \"BLOCK_STOP\", 18: \"SQS\", 19: \"SQE\", 20: \"title\", 21: \"title_value\", 22: \"acc_title\", 23: \"acc_title_value\", 24: \"acc_descr\", 25: \"acc_descr_value\", 26: \"acc_descr_multiline_value\", 27: \"ALPHANUM\", 28: \"ENTITY_NAME\", 34: \"ATTRIBUTE_WORD\", 36: \"COMMA\", 37: \"ATTRIBUTE_KEY\", 38: \"COMMENT\", 41: \"ZERO_OR_ONE\", 42: \"ZERO_OR_MORE\", 43: \"ONE_OR_MORE\", 44: \"ONLY_ONE\", 45: \"MD_PARENT\", 46: \"NON_IDENTIFYING\", 47: \"IDENTIFYING\", 48: \"WORD\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]],\n performAction: 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 - 3]);\n yy.addAttributes($$[$0 - 3], $$[$0 - 1]);\n break;\n case 10:\n yy.addEntity($$[$0 - 2]);\n break;\n case 11:\n yy.addEntity($$[$0]);\n break;\n case 12:\n yy.addEntity($$[$0 - 6], $$[$0 - 4]);\n yy.addAttributes($$[$0 - 6], $$[$0 - 1]);\n break;\n case 13:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n break;\n case 14:\n yy.addEntity($$[$0 - 3], $$[$0 - 1]);\n break;\n case 15:\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n case 43:\n this.$ = $$[$0];\n break;\n case 20:\n case 41:\n case 42:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 21:\n case 29:\n this.$ = [$$[$0]];\n break;\n case 22:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 23:\n this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };\n break;\n case 24:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };\n break;\n case 25:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 26:\n this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 27:\n case 28:\n case 31:\n this.$ = $$[$0];\n break;\n case 30:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 32:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 33:\n this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };\n break;\n case 34:\n this.$ = yy.Cardinality.ZERO_OR_ONE;\n break;\n case 35:\n this.$ = yy.Cardinality.ZERO_OR_MORE;\n break;\n case 36:\n this.$ = yy.Cardinality.ONE_OR_MORE;\n break;\n case 37:\n this.$ = yy.Cardinality.ONLY_ONE;\n break;\n case 38:\n this.$ = yy.Cardinality.MD_PARENT;\n break;\n case 39:\n this.$ = yy.Identification.NON_IDENTIFYING;\n break;\n case 40:\n this.$ = yy.Identification.IDENTIFYING;\n break;\n }\n },\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, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o($V0, [2, 18]), o($Vc, [2, 19]), o($Vc, [2, 20]), o($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o($Ve, [2, 34]), o($Ve, [2, 35]), o($Ve, [2, 36]), o($Ve, [2, 37]), o($Ve, [2, 38]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o($Vf, [2, 39]), o($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o($V0, [2, 9]), { 17: [2, 22] }, o($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o([17, 34, 37, 38], [2, 28]), o($V0, [2, 14], { 15: [1, 55] }), o([27, 28], [2, 33]), o($V0, [2, 8]), o($V0, [2, 41]), o($V0, [2, 42]), o($V0, [2, 43]), o($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o($Vg, [2, 25]), o($Vj, [2, 29]), o($Vg, [2, 32]), o($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o($V0, [2, 13]), o($Vj, [2, 30]), o($V0, [2, 12])],\n defaultActions: { 34: [2, 27], 41: [2, 22] },\n parseError: 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 },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 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 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 var symbol, state, action, 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 {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\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 }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: 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 },\n // resets the lexer, sets new input\n setInput: 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 },\n // consumes and returns one char from the input\n input: 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 },\n // unshifts one char (or a string) into the input\n unput: 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 },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\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: 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 },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: 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 },\n // displays upcoming input, i.e. for error messages\n upcomingInput: 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 },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: 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 },\n // return next match in input\n next: 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 },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: 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 },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: 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 },\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: 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 },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 22;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 24;\n case 3:\n this.popState();\n return \"acc_descr_value\";\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 case 7:\n return 10;\n case 8:\n break;\n case 9:\n return 8;\n case 10:\n return 28;\n case 11:\n return 48;\n case 12:\n return 4;\n case 13:\n this.begin(\"block\");\n return 15;\n case 14:\n return 36;\n case 15:\n break;\n case 16:\n return 37;\n case 17:\n return 34;\n case 18:\n return 34;\n case 19:\n return 38;\n case 20:\n break;\n case 21:\n this.popState();\n return 17;\n case 22:\n return yy_.yytext[0];\n case 23:\n return 18;\n case 24:\n return 19;\n case 25:\n return 41;\n case 26:\n return 43;\n case 27:\n return 43;\n case 28:\n return 43;\n case 29:\n return 41;\n case 30:\n return 41;\n case 31:\n return 42;\n case 32:\n return 42;\n case 33:\n return 42;\n case 34:\n return 42;\n case 35:\n return 42;\n case 36:\n return 43;\n case 37:\n return 42;\n case 38:\n return 43;\n case 39:\n return 44;\n case 40:\n return 44;\n case 41:\n return 44;\n case 42:\n return 44;\n case 43:\n return 41;\n case 44:\n return 42;\n case 45:\n return 43;\n case 46:\n return 45;\n case 47:\n return 46;\n case 48:\n return 47;\n case 49:\n return 47;\n case 50:\n return 46;\n case 51:\n return 46;\n case 52:\n return 46;\n case 53:\n return 27;\n case 54:\n return yy_.yytext[0];\n case 55:\n return 6;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:[\\s]+)/i, /^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i, /^(?:\"[^\"]*\")/i, /^(?:erDiagram\\b)/i, /^(?:\\{)/i, /^(?:,)/i, /^(?:\\s+)/i, /^(?:\\b((?:PK)|(?:FK)|(?:UK))\\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\\*A-Za-z_][A-Za-z0-9\\-_\\[\\]\\(\\)]*)/i, /^(?:\"[^\"]*\")/i, /^(?:[\\n]+)/i, /^(?:\\})/i, /^(?:.)/i, /^(?:\\[)/i, /^(?:\\])/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, /^(?:1\\b)/i, /^(?:\\|\\|)/i, /^(?:o\\|)/i, /^(?:o\\{)/i, /^(?:\\|\\{)/i, /^(?:\\s*u\\b)/i, /^(?:\\.\\.)/i, /^(?:--)/i, /^(?:to\\b)/i, /^(?:optionally to\\b)/i, /^(?:\\.-)/i, /^(?:-\\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\\-_]*)/i, /^(?:.)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"block\": { \"rules\": [14, 15, 16, 17, 18, 19, 20, 21, 22], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst erParser = parser;\nlet entities = {};\nlet relationships = [];\nconst 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};\nconst Identification = {\n NON_IDENTIFYING: \"NON_IDENTIFYING\",\n IDENTIFYING: \"IDENTIFYING\"\n};\nconst addEntity = function(name, alias = void 0) {\n if (entities[name] === void 0) {\n entities[name] = { attributes: [], alias };\n log.info(\"Added new entity :\", name);\n } else if (entities[name] && !entities[name].alias && alias) {\n entities[name].alias = alias;\n log.info(`Add alias '${alias}' to entity '${name}'`);\n }\n return entities[name];\n};\nconst getEntities = () => entities;\nconst addAttributes = function(entityName, attribs) {\n let entity = addEntity(entityName);\n let i;\n for (i = attribs.length - 1; i >= 0; i--) {\n entity.attributes.push(attribs[i]);\n log.debug(\"Added attribute \", attribs[i].attributeName);\n }\n};\nconst addRelationship = function(entA, rolA, entB, rSpec) {\n let rel = {\n entityA: entA,\n roleA: rolA,\n entityB: entB,\n relSpec: rSpec\n };\n relationships.push(rel);\n log.debug(\"Added new relationship :\", rel);\n};\nconst getRelationships = () => relationships;\nconst clear = function() {\n entities = {};\n relationships = [];\n clear$1();\n};\nconst erDb = {\n Cardinality,\n Identification,\n getConfig: () => getConfig().er,\n addEntity,\n addAttributes,\n getEntities,\n addRelationship,\n getRelationships,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\nconst ERMarkers = {\n ONLY_ONE_START: \"ONLY_ONE_START\",\n ONLY_ONE_END: \"ONLY_ONE_END\",\n ZERO_OR_ONE_START: \"ZERO_OR_ONE_START\",\n ZERO_OR_ONE_END: \"ZERO_OR_ONE_END\",\n ONE_OR_MORE_START: \"ONE_OR_MORE_START\",\n ONE_OR_MORE_END: \"ONE_OR_MORE_END\",\n ZERO_OR_MORE_START: \"ZERO_OR_MORE_START\",\n ZERO_OR_MORE_END: \"ZERO_OR_MORE_END\",\n MD_PARENT_END: \"MD_PARENT_END\",\n MD_PARENT_START: \"MD_PARENT_START\"\n};\nconst insertMarkers = function(elem, conf2) {\n let marker;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_START).attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_END).attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_END).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_END).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,0 L21,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_END).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_END).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n return;\n};\nconst erMarkers = {\n ERMarkers,\n insertMarkers\n};\nconst BAD_ID_CHARS_REGEXP = /[^\\dA-Za-z](\\W)*/g;\nlet conf = {};\nlet entityNameIds = /* @__PURE__ */ new Map();\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst drawAttributes = (groupNode, entityTextNode, attributes) => {\n const heightPadding = conf.entityPadding / 3;\n const widthPadding = conf.entityPadding / 3;\n const attrFontSize = conf.fontSize * 0.85;\n const labelBBox = entityTextNode.node().getBBox();\n const attributeNodes = [];\n let hasKeyType = false;\n let hasComment = false;\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeyWidth = 0;\n let maxCommentWidth = 0;\n let cumulativeHeight = labelBBox.height + heightPadding * 2;\n let attrNum = 1;\n attributes.forEach((item) => {\n if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {\n hasKeyType = true;\n }\n if (item.attributeComment !== void 0) {\n hasComment = true;\n }\n });\n attributes.forEach((item) => {\n const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;\n let nodeHeight = 0;\n const attributeType = parseGenericTypes(item.attributeType);\n const typeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-type`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(attributeType);\n const nameNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-name`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeName);\n const attributeNode = {};\n attributeNode.tn = typeNode;\n attributeNode.nn = nameNode;\n const typeBBox = typeNode.node().getBBox();\n const nameBBox = nameNode.node().getBBox();\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);\n maxNameWidth = Math.max(maxNameWidth, nameBBox.width);\n nodeHeight = Math.max(typeBBox.height, nameBBox.height);\n if (hasKeyType) {\n const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(\",\") : \"\";\n const keyTypeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-key`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(keyTypeNodeText);\n attributeNode.kn = keyTypeNode;\n const keyTypeBBox = keyTypeNode.node().getBBox();\n maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);\n nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);\n }\n if (hasComment) {\n const commentNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-comment`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeComment || \"\");\n attributeNode.cn = commentNode;\n const commentNodeBBox = commentNode.node().getBBox();\n maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);\n nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);\n }\n attributeNode.height = nodeHeight;\n attributeNodes.push(attributeNode);\n cumulativeHeight += nodeHeight + heightPadding * 2;\n attrNum += 1;\n });\n let widthPaddingFactor = 4;\n if (hasKeyType) {\n widthPaddingFactor += 2;\n }\n if (hasComment) {\n widthPaddingFactor += 2;\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;\n const bBox = {\n width: Math.max(\n conf.minEntityWidth,\n Math.max(\n labelBBox.width + conf.entityPadding * 2,\n maxWidth + widthPadding * widthPaddingFactor\n )\n ),\n height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)\n };\n if (attributes.length > 0) {\n const spareColumnWidth = Math.max(\n 0,\n (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)\n );\n entityTextNode.attr(\n \"transform\",\n \"translate(\" + bBox.width / 2 + \",\" + (heightPadding + labelBBox.height / 2) + \")\"\n );\n let heightOffset = labelBBox.height + heightPadding * 2;\n let attribStyle = \"attributeBoxOdd\";\n attributeNodes.forEach((attributeNode) => {\n const alignY = heightOffset + heightPadding + attributeNode.height / 2;\n attributeNode.tn.attr(\"transform\", \"translate(\" + widthPadding + \",\" + alignY + \")\");\n const typeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", 0).attr(\"y\", heightOffset).attr(\"width\", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n const nameXOffset = parseFloat(typeRect.attr(\"x\")) + parseFloat(typeRect.attr(\"width\"));\n attributeNode.nn.attr(\n \"transform\",\n \"translate(\" + (nameXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const nameRect = groupNode.insert(\"rect\", \"#\" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", nameXOffset).attr(\"y\", heightOffset).attr(\"width\", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n let keyTypeAndCommentXOffset = parseFloat(nameRect.attr(\"x\")) + parseFloat(nameRect.attr(\"width\"));\n if (hasKeyType) {\n attributeNode.kn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const keyTypeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr(\"x\")) + parseFloat(keyTypeRect.attr(\"width\"));\n }\n if (hasComment) {\n attributeNode.cn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n groupNode.insert(\"rect\", \"#\" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, \"true\").attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n }\n heightOffset += attributeNode.height + heightPadding * 2;\n attribStyle = attribStyle === \"attributeBoxOdd\" ? \"attributeBoxEven\" : \"attributeBoxOdd\";\n });\n } else {\n bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight);\n entityTextNode.attr(\"transform\", \"translate(\" + bBox.width / 2 + \",\" + bBox.height / 2 + \")\");\n }\n return bBox;\n};\nconst drawEntities = function(svgNode, entities2, graph) {\n const keys = Object.keys(entities2);\n let firstOne;\n keys.forEach(function(entityName) {\n const entityId = generateId(entityName, \"entity\");\n entityNameIds.set(entityName, entityId);\n const groupNode = svgNode.append(\"g\").attr(\"id\", entityId);\n firstOne = firstOne === void 0 ? entityId : firstOne;\n const textId = \"text-\" + entityId;\n const textNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", textId).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(entities2[entityName].alias ?? entityName);\n const { width: entityWidth, height: entityHeight } = drawAttributes(\n groupNode,\n textNode,\n entities2[entityName].attributes\n );\n const rectNode = groupNode.insert(\"rect\", \"#\" + textId).classed(\"er entityBox\", true).attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", entityWidth).attr(\"height\", entityHeight);\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(entityId, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: entityId\n });\n });\n return firstOne;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n};\nconst getEdgeName = function(rel) {\n return (rel.entityA + rel.roleA + rel.entityB).replace(/\\s/g, \"\");\n};\nconst addRelationships = function(relationships2, g) {\n relationships2.forEach(function(r) {\n g.setEdge(\n entityNameIds.get(r.entityA),\n entityNameIds.get(r.entityB),\n { relationship: r },\n getEdgeName(r)\n );\n });\n return relationships2;\n};\nlet relCnt = 0;\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n relCnt++;\n const edge = g.edge(\n entityNameIds.get(rel.entityA),\n entityNameIds.get(rel.entityB),\n getEdgeName(rel)\n );\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = svg.insert(\"path\", \"#\" + insert).classed(\"er relationshipLine\", true).attr(\"d\", lineFunction(edge.points)).style(\"stroke\", conf.stroke).style(\"fill\", \"none\");\n if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {\n svgPath.attr(\"stroke-dasharray\", \"8,8\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n switch (rel.relSpec.cardA) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_END + \")\");\n break;\n }\n switch (rel.relSpec.cardB) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_START + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_START + \")\");\n break;\n }\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n const labelNode = svg.append(\"text\").classed(\"er relationshipLabel\", true).attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).style(\"text-anchor\", \"middle\").style(\"dominant-baseline\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(rel.roleA);\n const labelBBox = labelNode.node().getBBox();\n svg.insert(\"rect\", \"#\" + labelId).classed(\"er relationshipLabelBox\", true).attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height);\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().er;\n log.info(\"Drawing ER diagram\");\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n erMarkers.insertMarkers(svg, conf);\n let g;\n g = new graphlib.Graph({\n multigraph: true,\n directed: true,\n compound: false\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g);\n const relationships2 = addRelationships(diagObj.db.getRelationships(), g);\n layout(g);\n adjustEntities(svg, g);\n relationships2.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);\n });\n const padding = conf.diagramPadding;\n utils.insertTitle(svg, \"entityTitleText\", conf.titleTopMargin, diagObj.db.getDiagramTitle());\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst MERMAID_ERDIAGRAM_UUID = \"28e9f9db-3c8d-5aa5-9faf-44286ae5937c\";\nfunction generateId(str = \"\", prefix = \"\") {\n const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, \"\");\n return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5(\n str,\n MERMAID_ERDIAGRAM_UUID\n )}`;\n}\nfunction strWithHyphen(str = \"\") {\n return str.length > 0 ? `${str}-` : \"\";\n}\nconst erRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .entityBox {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${options.attributeBackgroundColorOdd};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${options.attributeBackgroundColorEven};\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 .relationshipLine {\n stroke: ${options.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n } \n #MD_PARENT_START {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n #MD_PARENT_END {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n \n`;\nconst erStyles = getStyles;\nconst diagram = {\n parser: erParser,\n db: erDb,\n renderer: erRenderer,\n styles: erStyles\n};\nexport {\n diagram\n};\n"],"names":["REGEX","validate","uuid","parse","v","arr","stringToBytes","str","bytes","i","DNS","URL","v35","name","version","hashfunc","generateUUID","value","namespace","buf","offset","_namespace","unsafeStringify","f","s","x","y","z","ROTL","n","sha1","K","H","msg","l","N","M","j","W","t","a","b","c","d","e","T","v5","parser","o","k","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","erParser","entities","relationships","Cardinality","Identification","addEntity","alias","log","getEntities","addAttributes","entityName","attribs","entity","addRelationship","entA","rolA","entB","rSpec","rel","getRelationships","clear","clear$1","erDb","getConfig","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","ERMarkers","insertMarkers","elem","conf2","marker","erMarkers","BAD_ID_CHARS_REGEXP","conf","entityNameIds","setConf","cnf","keys","key","drawAttributes","groupNode","entityTextNode","attributes","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","hasKeyType","hasComment","maxTypeWidth","maxNameWidth","maxKeyWidth","maxCommentWidth","cumulativeHeight","attrNum","item","attrPrefix","nodeHeight","attributeType","parseGenericTypes","typeNode","nameNode","attributeNode","typeBBox","nameBBox","keyTypeNodeText","keyTypeNode","keyTypeBBox","commentNode","commentNodeBBox","widthPaddingFactor","maxWidth","bBox","spareColumnWidth","heightOffset","attribStyle","alignY","typeRect","nameXOffset","nameRect","keyTypeAndCommentXOffset","keyTypeRect","drawEntities","svgNode","entities2","graph","firstOne","entityId","generateId","textId","textNode","entityWidth","entityHeight","rectBBox","adjustEntities","getEdgeName","addRelationships","relationships2","g","relCnt","drawRelationshipFromLayout","svg","insert","diagObj","edge","lineFunction","line","curveBasis","svgPath","url","labelPoint","labelId","draw","text","id","_version","securityLevel","sandboxElement","select","graphlib.Graph","firstEntity","layout","padding","utils","svgBounds","width","height","configureSvgSize","MERMAID_ERDIAGRAM_UUID","prefix","simplifiedStr","strWithHyphen","erRenderer","getStyles","options","erStyles","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
@@ -1,4 +1,4 @@
1
- import { c as et, aq as me, s as ye, g as ve, a as Ve, b as Le, C as Ie, D as Re, l as J1, z as dt, E as Ne, j as we, h as w1 } from "./index-BdQ-n4gH.js";
1
+ import { c as et, aq as me, s as ye, g as ve, a as Ve, b as Le, C as Ie, D as Re, l as J1, z as dt, E as Ne, j as we, h as w1 } from "./index-H0_TiiZ2.js";
2
2
  var pt = function() {
3
3
  var e = function(f1, a, o, f) {
4
4
  for (o = o || {}, f = f1.length; f--; o[f1[f]] = a)
@@ -1124,4 +1124,4 @@ export {
1124
1124
  je as f,
1125
1125
  Xe as p
1126
1126
  };
1127
- //# sourceMappingURL=flowDb-d35e309a-B37o2qfF.js.map
1127
+ //# sourceMappingURL=flowDb-d35e309a-EwD5UOTn.js.map