dominds 1.23.2 → 1.23.4

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 (138) hide show
  1. package/dist/dialog-display-state.js +112 -9
  2. package/dist/dialog.js +4 -0
  3. package/dist/docs/dialog-system.md +6 -2
  4. package/dist/docs/dialog-system.zh.md +5 -1
  5. package/dist/docs/diligence-push.md +27 -6
  6. package/dist/docs/diligence-push.zh.md +13 -6
  7. package/dist/docs/llm-provider-isolation.md +1 -1
  8. package/dist/docs/llm-provider-isolation.zh.md +1 -1
  9. package/dist/docs/tellask-revive-context-refactor.zh.md +13 -1
  10. package/dist/docs/volcengine-coding-plan-openai-compatible.zh.md +3 -2
  11. package/dist/llm/api-quirks.d.ts +1 -0
  12. package/dist/llm/api-quirks.js +35 -1
  13. package/dist/llm/defaults.yaml +6 -0
  14. package/dist/llm/gen/anthropic.js +6 -2
  15. package/dist/llm/gen/mock.js +44 -11
  16. package/dist/llm/gen/openai-compatible.d.ts +2 -1
  17. package/dist/llm/gen/openai-compatible.js +88 -20
  18. package/dist/llm/gen.d.ts +12 -0
  19. package/dist/llm/kernel-driver/context-health.d.ts +3 -4
  20. package/dist/llm/kernel-driver/context-health.js +5 -2
  21. package/dist/llm/kernel-driver/context.d.ts +4 -8
  22. package/dist/llm/kernel-driver/context.js +5 -25
  23. package/dist/llm/kernel-driver/drive.js +263 -59
  24. package/dist/llm/kernel-driver/engine.d.ts +1 -1
  25. package/dist/llm/kernel-driver/engine.js +5 -3
  26. package/dist/llm/kernel-driver/flow.js +162 -45
  27. package/dist/llm/kernel-driver/runtime.d.ts +12 -11
  28. package/dist/llm/kernel-driver/runtime.js +106 -18
  29. package/dist/llm/kernel-driver/sideDialog.d.ts +3 -0
  30. package/dist/llm/kernel-driver/sideDialog.js +4 -1
  31. package/dist/llm/kernel-driver/tellask-special.d.ts +1 -0
  32. package/dist/llm/kernel-driver/tellask-special.js +30 -30
  33. package/dist/llm/kernel-driver/types.d.ts +7 -3
  34. package/dist/log.js +35 -2
  35. package/dist/persistence.js +12 -1
  36. package/dist/recovery/reply-special.js +1 -1
  37. package/dist/runtime/driver-messages.d.ts +14 -1
  38. package/dist/runtime/driver-messages.js +116 -6
  39. package/dist/runtime/inter-dialog-format.d.ts +1 -0
  40. package/dist/runtime/inter-dialog-format.js +7 -3
  41. package/dist/server/websocket-handler.js +0 -1
  42. package/dist/tools/team_mgmt-manual.js +2 -2
  43. package/package.json +2 -2
  44. package/webapp/dist/assets/{_basePickBy-C3SVVywm.js → _basePickBy-DMD1UhXs.js} +3 -3
  45. package/webapp/dist/assets/{_basePickBy-C3SVVywm.js.map → _basePickBy-DMD1UhXs.js.map} +1 -1
  46. package/webapp/dist/assets/{_baseUniq-egNq6cCa.js → _baseUniq-CsE8Qvwt.js} +2 -2
  47. package/webapp/dist/assets/{_baseUniq-egNq6cCa.js.map → _baseUniq-CsE8Qvwt.js.map} +1 -1
  48. package/webapp/dist/assets/{arc-CASAlRvm.js → arc-0h8sV6e1.js} +2 -2
  49. package/webapp/dist/assets/{arc-CASAlRvm.js.map → arc-0h8sV6e1.js.map} +1 -1
  50. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-B6n5FQmS.js → architectureDiagram-2XIMDMQ5-BbMESECO.js} +7 -7
  51. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-B6n5FQmS.js.map → architectureDiagram-2XIMDMQ5-BbMESECO.js.map} +1 -1
  52. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-D2UGGjic.js → blockDiagram-WCTKOSBZ-DwkN-9a4.js} +7 -7
  53. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-D2UGGjic.js.map → blockDiagram-WCTKOSBZ-DwkN-9a4.js.map} +1 -1
  54. package/webapp/dist/assets/{c4Diagram-IC4MRINW-BOY_bQFP.js → c4Diagram-IC4MRINW-CGYONEh1.js} +3 -3
  55. package/webapp/dist/assets/{c4Diagram-IC4MRINW-BOY_bQFP.js.map → c4Diagram-IC4MRINW-CGYONEh1.js.map} +1 -1
  56. package/webapp/dist/assets/{channel-CZ_X09H1.js → channel-DbSJhm5-.js} +2 -2
  57. package/webapp/dist/assets/{channel-CZ_X09H1.js.map → channel-DbSJhm5-.js.map} +1 -1
  58. package/webapp/dist/assets/{chunk-4BX2VUAB-BIwyAzZQ.js → chunk-4BX2VUAB-D1inRfgf.js} +2 -2
  59. package/webapp/dist/assets/{chunk-4BX2VUAB-BIwyAzZQ.js.map → chunk-4BX2VUAB-D1inRfgf.js.map} +1 -1
  60. package/webapp/dist/assets/{chunk-55IACEB6-zSjTFoCX.js → chunk-55IACEB6-DL1IDg_h.js} +2 -2
  61. package/webapp/dist/assets/{chunk-55IACEB6-zSjTFoCX.js.map → chunk-55IACEB6-DL1IDg_h.js.map} +1 -1
  62. package/webapp/dist/assets/{chunk-FMBD7UC4-CTpuRfdB.js → chunk-FMBD7UC4-CugIlRDV.js} +2 -2
  63. package/webapp/dist/assets/{chunk-FMBD7UC4-CTpuRfdB.js.map → chunk-FMBD7UC4-CugIlRDV.js.map} +1 -1
  64. package/webapp/dist/assets/{chunk-JSJVCQXG-CJ3DM4in.js → chunk-JSJVCQXG-DKHSdeu1.js} +2 -2
  65. package/webapp/dist/assets/{chunk-JSJVCQXG-CJ3DM4in.js.map → chunk-JSJVCQXG-DKHSdeu1.js.map} +1 -1
  66. package/webapp/dist/assets/{chunk-KX2RTZJC-B97EakhO.js → chunk-KX2RTZJC-DCU9tkq6.js} +2 -2
  67. package/webapp/dist/assets/{chunk-KX2RTZJC-B97EakhO.js.map → chunk-KX2RTZJC-DCU9tkq6.js.map} +1 -1
  68. package/webapp/dist/assets/{chunk-NQ4KR5QH-5o1o5x0z.js → chunk-NQ4KR5QH-DN3O2s2M.js} +4 -4
  69. package/webapp/dist/assets/{chunk-NQ4KR5QH-5o1o5x0z.js.map → chunk-NQ4KR5QH-DN3O2s2M.js.map} +1 -1
  70. package/webapp/dist/assets/{chunk-QZHKN3VN-D33FSIEb.js → chunk-QZHKN3VN-e3ztIJg0.js} +2 -2
  71. package/webapp/dist/assets/{chunk-QZHKN3VN-D33FSIEb.js.map → chunk-QZHKN3VN-e3ztIJg0.js.map} +1 -1
  72. package/webapp/dist/assets/{chunk-WL4C6EOR-C2InqFin.js → chunk-WL4C6EOR-Dv907NPM.js} +6 -6
  73. package/webapp/dist/assets/{chunk-WL4C6EOR-C2InqFin.js.map → chunk-WL4C6EOR-Dv907NPM.js.map} +1 -1
  74. package/webapp/dist/assets/{classDiagram-VBA2DB6C-BfLZmK48.js → classDiagram-VBA2DB6C-DOTXtxYZ.js} +7 -7
  75. package/webapp/dist/assets/{classDiagram-VBA2DB6C-BfLZmK48.js.map → classDiagram-VBA2DB6C-DOTXtxYZ.js.map} +1 -1
  76. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-BfLZmK48.js → classDiagram-v2-RAHNMMFH-DOTXtxYZ.js} +7 -7
  77. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-BfLZmK48.js.map → classDiagram-v2-RAHNMMFH-DOTXtxYZ.js.map} +1 -1
  78. package/webapp/dist/assets/{clone-BSCHnHfl.js → clone-6lYQMWpu.js} +2 -2
  79. package/webapp/dist/assets/{clone-BSCHnHfl.js.map → clone-6lYQMWpu.js.map} +1 -1
  80. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-CeQ1jAJJ.js → cose-bilkent-S5V4N54A-DoJeDXV0.js} +2 -2
  81. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-CeQ1jAJJ.js.map → cose-bilkent-S5V4N54A-DoJeDXV0.js.map} +1 -1
  82. package/webapp/dist/assets/{dagre-KLK3FWXG-WUuNYzcK.js → dagre-KLK3FWXG-F_n_vhV9.js} +7 -7
  83. package/webapp/dist/assets/{dagre-KLK3FWXG-WUuNYzcK.js.map → dagre-KLK3FWXG-F_n_vhV9.js.map} +1 -1
  84. package/webapp/dist/assets/{diagram-E7M64L7V-jOVCIExP.js → diagram-E7M64L7V-Crwhgyjv.js} +8 -8
  85. package/webapp/dist/assets/{diagram-E7M64L7V-jOVCIExP.js.map → diagram-E7M64L7V-Crwhgyjv.js.map} +1 -1
  86. package/webapp/dist/assets/{diagram-IFDJBPK2-cCeQqotA.js → diagram-IFDJBPK2-CIt1nnn5.js} +7 -7
  87. package/webapp/dist/assets/{diagram-IFDJBPK2-cCeQqotA.js.map → diagram-IFDJBPK2-CIt1nnn5.js.map} +1 -1
  88. package/webapp/dist/assets/{diagram-P4PSJMXO-DjAYFRLv.js → diagram-P4PSJMXO-qowipEfV.js} +7 -7
  89. package/webapp/dist/assets/{diagram-P4PSJMXO-DjAYFRLv.js.map → diagram-P4PSJMXO-qowipEfV.js.map} +1 -1
  90. package/webapp/dist/assets/{erDiagram-INFDFZHY-Dl_6U5fV.js → erDiagram-INFDFZHY-DV2BcYNa.js} +5 -5
  91. package/webapp/dist/assets/{erDiagram-INFDFZHY-Dl_6U5fV.js.map → erDiagram-INFDFZHY-DV2BcYNa.js.map} +1 -1
  92. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-D80nrZ3S.js → flowDiagram-PKNHOUZH-CAbWV161.js} +7 -7
  93. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-D80nrZ3S.js.map → flowDiagram-PKNHOUZH-CAbWV161.js.map} +1 -1
  94. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-T3WdMrgj.js → ganttDiagram-A5KZAMGK-CfdR7FRr.js} +3 -3
  95. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-T3WdMrgj.js.map → ganttDiagram-A5KZAMGK-CfdR7FRr.js.map} +1 -1
  96. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-ifV-jkKL.js → gitGraphDiagram-K3NZZRJ6-DuJFTELz.js} +8 -8
  97. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-ifV-jkKL.js.map → gitGraphDiagram-K3NZZRJ6-DuJFTELz.js.map} +1 -1
  98. package/webapp/dist/assets/{graph-D5jmnb35.js → graph-cjRyzujT.js} +3 -3
  99. package/webapp/dist/assets/{graph-D5jmnb35.js.map → graph-cjRyzujT.js.map} +1 -1
  100. package/webapp/dist/assets/{index-CGbZlct2.js → index-DgfF56L4.js} +36 -36
  101. package/webapp/dist/assets/{index-CGbZlct2.js.map → index-DgfF56L4.js.map} +1 -1
  102. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-C340CY5x.js → infoDiagram-LFFYTUFH-3wx-7AdD.js} +6 -6
  103. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-C340CY5x.js.map → infoDiagram-LFFYTUFH-3wx-7AdD.js.map} +1 -1
  104. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-Bu4RsELK.js → ishikawaDiagram-PHBUUO56-g6CMb1Qc.js} +2 -2
  105. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-Bu4RsELK.js.map → ishikawaDiagram-PHBUUO56-g6CMb1Qc.js.map} +1 -1
  106. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-Dvv3ypKA.js → journeyDiagram-4ABVD52K-DdCcmOBO.js} +5 -5
  107. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-Dvv3ypKA.js.map → journeyDiagram-4ABVD52K-DdCcmOBO.js.map} +1 -1
  108. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-D_rsetjW.js → kanban-definition-K7BYSVSG-BFw2emGl.js} +3 -3
  109. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-D_rsetjW.js.map → kanban-definition-K7BYSVSG-BFw2emGl.js.map} +1 -1
  110. package/webapp/dist/assets/{layout-CLmOfwnS.js → layout-Clazq06r.js} +5 -5
  111. package/webapp/dist/assets/{layout-CLmOfwnS.js.map → layout-Clazq06r.js.map} +1 -1
  112. package/webapp/dist/assets/{linear-DFAmViqi.js → linear-jdsBGgvD.js} +2 -2
  113. package/webapp/dist/assets/{linear-DFAmViqi.js.map → linear-jdsBGgvD.js.map} +1 -1
  114. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-Ce3_czeS.js → mindmap-definition-YRQLILUH-DLSZrW6l.js} +4 -4
  115. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-Ce3_czeS.js.map → mindmap-definition-YRQLILUH-DLSZrW6l.js.map} +1 -1
  116. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-U6_un5Sc.js → pieDiagram-SKSYHLDU-Uj-Zpci6.js} +8 -8
  117. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-U6_un5Sc.js.map → pieDiagram-SKSYHLDU-Uj-Zpci6.js.map} +1 -1
  118. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-DmVJQItS.js → quadrantDiagram-337W2JSQ-DO7Sl1nV.js} +3 -3
  119. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-DmVJQItS.js.map → quadrantDiagram-337W2JSQ-DO7Sl1nV.js.map} +1 -1
  120. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-BkNhSY-g.js → requirementDiagram-Z7DCOOCP-WrurrDKQ.js} +4 -4
  121. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-BkNhSY-g.js.map → requirementDiagram-Z7DCOOCP-WrurrDKQ.js.map} +1 -1
  122. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-E3UEy5SX.js → sankeyDiagram-WA2Y5GQK-gcxbxuZB.js} +2 -2
  123. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-E3UEy5SX.js.map → sankeyDiagram-WA2Y5GQK-gcxbxuZB.js.map} +1 -1
  124. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-k0w9WKAO.js → sequenceDiagram-2WXFIKYE-B98U2Npa.js} +4 -4
  125. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-k0w9WKAO.js.map → sequenceDiagram-2WXFIKYE-B98U2Npa.js.map} +1 -1
  126. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DRgdJrlx.js → stateDiagram-RAJIS63D-BUgfHMbd.js} +9 -9
  127. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DRgdJrlx.js.map → stateDiagram-RAJIS63D-BUgfHMbd.js.map} +1 -1
  128. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-edtkX9x6.js → stateDiagram-v2-FVOUBMTO-C8gH0rSW.js} +5 -5
  129. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-edtkX9x6.js.map → stateDiagram-v2-FVOUBMTO-C8gH0rSW.js.map} +1 -1
  130. package/webapp/dist/assets/{timeline-definition-YZTLITO2-D0zyXyNL.js → timeline-definition-YZTLITO2-DnVikX3B.js} +3 -3
  131. package/webapp/dist/assets/{timeline-definition-YZTLITO2-D0zyXyNL.js.map → timeline-definition-YZTLITO2-DnVikX3B.js.map} +1 -1
  132. package/webapp/dist/assets/{treemap-KZPCXAKY-CglsYqbQ.js → treemap-KZPCXAKY-BjhjT1IM.js} +5 -5
  133. package/webapp/dist/assets/{treemap-KZPCXAKY-CglsYqbQ.js.map → treemap-KZPCXAKY-BjhjT1IM.js.map} +1 -1
  134. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-DsUizzvt.js → vennDiagram-LZ73GAT5-CXjPMxrl.js} +2 -2
  135. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-DsUizzvt.js.map → vennDiagram-LZ73GAT5-CXjPMxrl.js.map} +1 -1
  136. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-DvYQ4zKY.js → xychartDiagram-JWTSCODW-ByKmk3Cb.js} +3 -3
  137. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-DvYQ4zKY.js.map → xychartDiagram-JWTSCODW-ByKmk3Cb.js.map} +1 -1
  138. package/webapp/dist/index.html +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"graph-D5jmnb35.js","sources":["../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/union.js","../../../../node_modules/.pnpm/dagre-d3-es@7.0.14/node_modules/dagre-d3-es/src/graphlib/graph.js"],"sourcesContent":["import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n/**\n * @typedef {string} NodeID ID of a node.\n */\n\n/**\n * @typedef {`${string}${typeof EDGE_KEY_DELIM}${string}${typeof EDGE_KEY_DELIM}${string}`} EdgeID ID of an edge.\n * @internal - All public APIs use {@link EdgeObj} instead to refer to edges.\n */\n\n/**\n * @typedef {object} EdgeObj\n * @property {NodeID} v the id of the source or tail node of an edge\n * @property {NodeID} w the id of the target or head node of an edge\n * @property {string | number} [name] Name of the edge. Needed to uniquely identify\n * multiple edges between the same pair of nodes in a multigraph.\n */\n\n/**\n * @template {unknown} T\n * @typedef {T[] | Record<any, T>} Collection\n * Lodash object that can be iterated over with `_.each`.\n *\n * Beware, objects with `.length` are treated as arrays, see\n * https://lodash.com/docs/4.17.15#forEach\n */\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n/**\n * @typedef {object} GraphOptions\n * @property {boolean | undefined} [directed] - set to `true` to get a\n * directed graph and `false` to get an undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant.\n * In other words, `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for\n * an undirected graph.\n * Default: `true`\n * @property {boolean | undefined} [multigraph] - set to `true` to allow a\n * graph to have multiple edges between the same pair of nodes.\n * Default: `false`.\n * @property {boolean | undefined} [compound] - set to `true` to allow a\n * graph to have compound nodes - nodes which can be the parent of other\n * nodes.\n * Default: `false`.\n */\n\n/**\n * Graphlib has a single graph type: {@link Graph}. To create a new instance:\n *\n * ```js\n * var g = new Graph();\n * ```\n *\n * By default this will create a directed graph that does not allow multi-edges\n * or compound nodes.\n * The following options can be used when constructing a new graph:\n *\n * * {@link GraphOptions#directed}: set to `true` to get a directed graph and `false` to get an\n * undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant. In other words,\n * `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for an undirected graph.\n * Default: `true`.\n * * {@link GraphOptions#multigraph}: set to `true` to allow a graph to have multiple edges\n * between the same pair of nodes. Default: `false`.\n * * {@link GraphOptions#compound}: set to `true` to allow a graph to have compound nodes -\n * nodes which can be the parent of other nodes. Default: `false`.\n *\n * To set the options, pass in an options object to the `Graph` constructor.\n * For example, to create a directed compound multigraph:\n *\n * ```js\n * var g = new Graph({ directed: true, compound: true, multigraph: true });\n * ```\n *\n * ### Node and Edge Representation\n *\n * In graphlib, a node is represented by a user-supplied String id.\n * All node related functions use this String id as a way to uniquely identify\n * the node. Here is an example of interacting with nodes:\n *\n * ```js\n * var g = new Graph();\n * g.setNode(\"my-id\", \"my-label\");\n * g.node(\"my-id\"); // returns \"my-label\"\n * ```\n *\n * Edges in graphlib are identified by the nodes they connect. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge(\"source\", \"target\"); // returns \"my-label\"\n * ```\n *\n * However, we need a way to uniquely identify an edge in a single object for\n * various edge queries (e.g. {@link Graph#outEdges}).\n * We use {@link EdgeObj}s for this purpose.\n * They consist of the following properties:\n *\n * * {@link EdgeObj#v}: the id of the source or tail node of an edge\n * * {@link EdgeObj#w}: the id of the target or head node of an edge\n * * {@link EdgeObj#name} (optional): the name that uniquely identifies a multiedge.\n *\n * Any edge function that takes an edge id will also work with an {@link EdgeObj}. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge({ v: \"source\", w: \"target\" }); // returns \"my-label\"\n * ```\n *\n * ### Multigraphs\n *\n * A [multigraph](https://en.wikipedia.org/wiki/Multigraph) is a graph that can\n * have more than one edge between the same pair of nodes.\n * By default graphlib graphs are not multigraphs, but a multigraph can be\n * constructed by setting the {@link GraphOptions#multigraph} property to true:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * ```\n *\n * With multiple edges between two nodes we need some way to uniquely identify\n * each edge. We call this the {@link EdgeObj#name} property.\n * Here's an example of creating a couple of edges between the same nodes:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"edge1-label\", \"edge1\");\n * g.setEdge(\"a\", \"b\", \"edge2-label\", \"edge2\");\n * g.edge(\"a\", \"b\", \"edge1\"); // returns \"edge1-label\"\n * g.edge(\"a\", \"b\", \"edge2\"); // returns \"edge2-label\"\n * g.edges(); // returns [{ v: \"a\", w: \"b\", name: \"edge1\" },\n * // { v: \"a\", w: \"b\", name: \"edge2\" }]\n * ```\n *\n * A multigraph still allows an edge with no name to be created:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"my-label\");\n * g.edge({ v: \"a\", w: \"b\" }); // returns \"my-label\"\n * ```\n *\n * ### Compound Graphs\n *\n * A compound graph is one where a node can be the parent of other nodes.\n * The child nodes form a \"subgraph\".\n * Here's an example of constructing and interacting with a compound graph:\n *\n * ```js\n * var g = new Graph({ compound: true });\n * g.setParent(\"a\", \"parent\");\n * g.setParent(\"b\", \"parent\");\n * g.parent(\"a\"); // returns \"parent\"\n * g.parent(\"b\"); // returns \"parent\"\n * g.parent(\"parent\"); // returns undefined\n * ```\n *\n * ### Default Labels\n *\n * When a node or edge is created without a label, a default label can be assigned.\n * See {@link setDefaultNodeLabel} and {@link setDefaultEdgeLabel}.\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * Even though this is a \"label\", this could be any type that the user requires\n * (and may need to be an object for some layout/ranking algorithms in dagre).\n * @template [EdgeLabel=any] - Label of an edge.\n * Even though this is a \"label\", this could be any type that the user requires,\n * (and may need to be a object for ranking in dagre).\n */\nexport class Graph {\n /**\n * @param {GraphOptions} [opts] - Graph options.\n */\n constructor(opts = {}) {\n /**\n * @type {boolean}\n * @private\n */\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n /**\n * @type {boolean}\n * @private\n */\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n /**\n * @type {boolean}\n * @private\n */\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n /**\n * @type {GraphLabel | undefined}\n * Label for the graph itself\n */\n this._label = undefined;\n\n /**\n * Default label to be set when creating a new node.\n *\n * @private\n * @type {(v: NodeID | number) => NodeLabel}\n */\n this._defaultNodeLabelFn = _.constant(undefined);\n\n /**\n * Default label to be set when creating a new edge\n *\n * @private\n * @type {(v: NodeID, w: NodeID, name: string | undefined) => EdgeLabel}\n */\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n /**\n * @type {Record<NodeID, NodeLabel>}\n * @private\n *\n * v -> label\n */\n this._nodes = {};\n\n if (this._isCompound) {\n /**\n * @type {Record<NodeID, NodeID>}\n * @private\n * v -> parent\n */\n this._parent = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, true>>}\n * @private\n * v -> children\n */\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._in = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * u -> v -> Number\n */\n this._preds = {};\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._out = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * v -> w -> Number\n */\n this._sucs = {};\n\n /**\n * @type {Record<EdgeID, EdgeObj>}\n * @private\n * e -> edgeObj\n */\n this._edgeObjs = {};\n\n /**\n * @type {Record<EdgeID, EdgeLabel>}\n * @private\n * e -> label\n */\n this._edgeLabels = {};\n }\n\n /* === Graph functions ========= */\n\n /**\n *\n * @returns {boolean} `true` if the graph is [directed](https://en.wikipedia.org/wiki/Directed_graph).\n * A directed graph treats the order of nodes in an edge as significant whereas an\n * [undirected](https://en.wikipedia.org/wiki/Graph_(mathematics)#Undirected_graph)\n * graph does not.\n * This example demonstrates the difference:\n *\n * @example\n *\n * ```js\n * var directed = new Graph({ directed: true });\n * directed.setEdge(\"a\", \"b\", \"my-label\");\n * directed.edge(\"a\", \"b\"); // returns \"my-label\"\n * directed.edge(\"b\", \"a\"); // returns undefined\n *\n * var undirected = new Graph({ directed: false });\n * undirected.setEdge(\"a\", \"b\", \"my-label\");\n * undirected.edge(\"a\", \"b\"); // returns \"my-label\"\n * undirected.edge(\"b\", \"a\"); // returns \"my-label\"\n * ```\n */\n isDirected() {\n return this._isDirected;\n }\n /**\n * @returns {boolean} `true` if the graph is a multigraph.\n */\n isMultigraph() {\n return this._isMultigraph;\n }\n /**\n * @returns {boolean} `true` if the graph is compound.\n */\n isCompound() {\n return this._isCompound;\n }\n\n /**\n * Sets the label for the graph to `label`.\n *\n * @param {GraphLabel} label - Label for the graph.\n * @returns {this}\n */\n setGraph(label) {\n this._label = label;\n return this;\n }\n\n /**\n * @returns {GraphLabel | undefined} the currently assigned label for the graph.\n * If no label has been assigned, returns `undefined`.\n *\n * @example\n *\n * ```js\n * var g = new Graph();\n * g.graph(); // returns undefined\n * g.setGraph(\"graph-label\");\n * g.graph(); // returns \"graph-label\"\n * ```\n */\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n\n /**\n * Sets a new default value that is assigned to nodes that are created without\n * a label.\n *\n * @param {typeof this._defaultNodeLabelFn | NodeLabel} newDefault - If a function,\n * it is called with the id of the node being created.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of nodes in the graph.\n */\n nodeCount() {\n return this._nodeCount;\n }\n\n /**\n * @returns {NodeID[]} the ids of the nodes in the graph.\n *\n * @remarks\n * Use {@link node()} to get the label for each node.\n * Takes `O(|V|)` time.\n */\n nodes() {\n return _.keys(this._nodes);\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no in-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no out-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n\n /**\n * Invokes setNode method for each node in `vs` list.\n *\n * @param {Collection<NodeID | number>} vs - List of node IDs to create/set.\n * @param {NodeLabel} [value] - If set, update all nodes with this value.\n * @returns {this}\n * @remarks Complexity: O(|names|).\n */\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n\n /**\n * Creates or updates the value for the node `v` in the graph.\n *\n * @param {NodeID | number} v - ID of the node to create/set.\n * @param {NodeLabel} [value] - If supplied, it is set as the value for the node.\n * If not supplied and the node was created by this call then\n * {@link setDefaultNodeLabel} will be used to set the node's value.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n\n /**\n * Gets the label of node with specified name.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeLabel | undefined} the label assigned to the node with the id `v`\n * if it is in the graph.\n * Otherwise returns `undefined`.\n * @remarks Takes `O(1)` time.\n */\n node(v) {\n return this._nodes[v];\n }\n\n /**\n * Detects whether graph has a node with specified name or not.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} Returns `true` the graph has a node with the id.\n * @remarks Takes `O(1)` time.\n */\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n\n /**\n * Remove the node with the id `v` in the graph or do nothing if the node is\n * not in the graph.\n *\n * If the node was removed this function also removes any incident edges.\n *\n * @param {NodeID | number} v - Node ID to remove.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(|E|)` time.\n */\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n\n /**\n * Sets the parent for `v` to `parent` if it is defined or removes the parent\n * for `v` if `parent` is undefined.\n *\n * @param {NodeID | number} v - Node ID to set the parent for.\n * @param {NodeID | number} [parent] - Parent node ID. If not defined, removes the parent.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @throws if the graph is not compound.\n * @throws if setting the parent would create a cycle.\n * @remarks Takes `O(1)` time.\n */\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n // @ts-expect-error -- We coerced parent to a string above\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n\n /**\n * @private\n * @param {NodeID | number} v - Node ID.\n */\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n\n /**\n * Get parent node for node `v`.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID | undefined} the node that is a parent of node `v`\n * or `undefined` if node `v` does not have a parent or is not a member of\n * the graph.\n * Always returns `undefined` for graphs that are not compound.\n * @remarks Takes `O(1)` time.\n */\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n\n /**\n * Gets list of direct children of node v.\n *\n * @param {NodeID | number} [v] - Node ID. If not specified, gets nodes\n * with no parent (top-level nodes).\n * @returns {NodeID[] | undefined} all nodes that are children of node `v` or\n * `undefined` if node `v` is not in the graph.\n * Always returns `[]` for graphs that are not compound.\n * @remarks Takes `O(|V|)` time.\n */\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are successors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors or\n * successors of the specified node\n * or `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|V|)` time.\n */\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} True if the node is a leaf (has no successors), false otherwise.\n */\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n\n /**\n * Creates new graph with nodes filtered via `filter`.\n * Edges incident to rejected node\n * are also removed.\n * \n * In case of compound graph, if parent is rejected by `filter`,\n * than all its children are rejected too.\n\n * @param {(v: NodeID) => boolean} filter - Function that returns `true` for nodes to keep.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} A new graph containing only the nodes for which `filter` returns `true`.\n * @remarks Average-case complexity: O(|E|+|V|).\n */\n filterNodes(filter) {\n /**\n * @type {Graph<GraphLabel, NodeLabel, EdgeLabel>}\n */\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n\n /* === Edge functions ========== */\n\n /**\n * Sets a new default value that is assigned to edges that are created without\n * a label.\n *\n * @param {typeof this._defaultEdgeLabelFn | EdgeLabel} newDefault - If a function,\n * it is called with the parameters `(v, w, name)`.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of edges in the graph.\n * @remarks Complexity: O(1).\n */\n edgeCount() {\n return this._edgeCount;\n }\n\n /**\n * Gets edges of the graph.\n *\n * @returns {EdgeObj[]} the {@link EdgeObj} for each edge in the graph.\n *\n * @remarks\n * In case of compound graph subgraphs are not considered.\n * Use {@link edge()} to get the label for each edge.\n * Takes `O(|E|)` time.\n */\n edges() {\n return _.values(this._edgeObjs);\n }\n\n /**\n * Establish an edges path over the nodes in nodes list.\n *\n * If some edge is already exists, it will update its label, otherwise it will\n * create an edge between pair of nodes with label provided or default label\n * if no label provided.\n *\n * @param {Collection<NodeID>} vs - List of node IDs to create edges between.\n * @param {EdgeLabel} [value] - If set, update all edges with this value.\n * @returns {this}\n * @remarks Complexity: O(|nodes|).\n */\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {EdgeObj} arg0 - Edge object.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID. Number values will be coerced to strings.\n * @param {NodeID | number} w - Target node ID. Number values will be coerced to strings.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [u] - Optionally filters edges down to just those\n * coming from node `u`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [w] - Optionally filters edges down to just those\n * that point to `w`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target Node ID.\n * @param {NodeID | number} [w] - If set, filters those edges down to just\n * those between nodes `v` and `w` regardless of direction\n * @returns {EdgeObj[] | undefined} all edges to or from node `v` regardless\n * of direction. Returns `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|E|)` time.\n */\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeObj}\n */\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj} edgeObj - Edge object.\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"],"names":["_.constant","_.isFunction","_.keys","_.filter","_.isEmpty","_.each","_.isUndefined","_.union","filter","_.values","_.reduce"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"graph-cjRyzujT.js","sources":["../../../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/union.js","../../../../node_modules/.pnpm/dagre-d3-es@7.0.14/node_modules/dagre-d3-es/src/graphlib/graph.js"],"sourcesContent":["import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n","import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n/**\n * @typedef {string} NodeID ID of a node.\n */\n\n/**\n * @typedef {`${string}${typeof EDGE_KEY_DELIM}${string}${typeof EDGE_KEY_DELIM}${string}`} EdgeID ID of an edge.\n * @internal - All public APIs use {@link EdgeObj} instead to refer to edges.\n */\n\n/**\n * @typedef {object} EdgeObj\n * @property {NodeID} v the id of the source or tail node of an edge\n * @property {NodeID} w the id of the target or head node of an edge\n * @property {string | number} [name] Name of the edge. Needed to uniquely identify\n * multiple edges between the same pair of nodes in a multigraph.\n */\n\n/**\n * @template {unknown} T\n * @typedef {T[] | Record<any, T>} Collection\n * Lodash object that can be iterated over with `_.each`.\n *\n * Beware, objects with `.length` are treated as arrays, see\n * https://lodash.com/docs/4.17.15#forEach\n */\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n/**\n * @typedef {object} GraphOptions\n * @property {boolean | undefined} [directed] - set to `true` to get a\n * directed graph and `false` to get an undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant.\n * In other words, `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for\n * an undirected graph.\n * Default: `true`\n * @property {boolean | undefined} [multigraph] - set to `true` to allow a\n * graph to have multiple edges between the same pair of nodes.\n * Default: `false`.\n * @property {boolean | undefined} [compound] - set to `true` to allow a\n * graph to have compound nodes - nodes which can be the parent of other\n * nodes.\n * Default: `false`.\n */\n\n/**\n * Graphlib has a single graph type: {@link Graph}. To create a new instance:\n *\n * ```js\n * var g = new Graph();\n * ```\n *\n * By default this will create a directed graph that does not allow multi-edges\n * or compound nodes.\n * The following options can be used when constructing a new graph:\n *\n * * {@link GraphOptions#directed}: set to `true` to get a directed graph and `false` to get an\n * undirected graph.\n * An undirected graph does not treat the order of nodes in an edge as\n * significant. In other words,\n * `g.edge(\"a\", \"b\") === g.edge(\"b\", \"a\")` for an undirected graph.\n * Default: `true`.\n * * {@link GraphOptions#multigraph}: set to `true` to allow a graph to have multiple edges\n * between the same pair of nodes. Default: `false`.\n * * {@link GraphOptions#compound}: set to `true` to allow a graph to have compound nodes -\n * nodes which can be the parent of other nodes. Default: `false`.\n *\n * To set the options, pass in an options object to the `Graph` constructor.\n * For example, to create a directed compound multigraph:\n *\n * ```js\n * var g = new Graph({ directed: true, compound: true, multigraph: true });\n * ```\n *\n * ### Node and Edge Representation\n *\n * In graphlib, a node is represented by a user-supplied String id.\n * All node related functions use this String id as a way to uniquely identify\n * the node. Here is an example of interacting with nodes:\n *\n * ```js\n * var g = new Graph();\n * g.setNode(\"my-id\", \"my-label\");\n * g.node(\"my-id\"); // returns \"my-label\"\n * ```\n *\n * Edges in graphlib are identified by the nodes they connect. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge(\"source\", \"target\"); // returns \"my-label\"\n * ```\n *\n * However, we need a way to uniquely identify an edge in a single object for\n * various edge queries (e.g. {@link Graph#outEdges}).\n * We use {@link EdgeObj}s for this purpose.\n * They consist of the following properties:\n *\n * * {@link EdgeObj#v}: the id of the source or tail node of an edge\n * * {@link EdgeObj#w}: the id of the target or head node of an edge\n * * {@link EdgeObj#name} (optional): the name that uniquely identifies a multiedge.\n *\n * Any edge function that takes an edge id will also work with an {@link EdgeObj}. For example:\n *\n * ```js\n * var g = new Graph();\n * g.setEdge(\"source\", \"target\", \"my-label\");\n * g.edge({ v: \"source\", w: \"target\" }); // returns \"my-label\"\n * ```\n *\n * ### Multigraphs\n *\n * A [multigraph](https://en.wikipedia.org/wiki/Multigraph) is a graph that can\n * have more than one edge between the same pair of nodes.\n * By default graphlib graphs are not multigraphs, but a multigraph can be\n * constructed by setting the {@link GraphOptions#multigraph} property to true:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * ```\n *\n * With multiple edges between two nodes we need some way to uniquely identify\n * each edge. We call this the {@link EdgeObj#name} property.\n * Here's an example of creating a couple of edges between the same nodes:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"edge1-label\", \"edge1\");\n * g.setEdge(\"a\", \"b\", \"edge2-label\", \"edge2\");\n * g.edge(\"a\", \"b\", \"edge1\"); // returns \"edge1-label\"\n * g.edge(\"a\", \"b\", \"edge2\"); // returns \"edge2-label\"\n * g.edges(); // returns [{ v: \"a\", w: \"b\", name: \"edge1\" },\n * // { v: \"a\", w: \"b\", name: \"edge2\" }]\n * ```\n *\n * A multigraph still allows an edge with no name to be created:\n *\n * ```js\n * var g = new Graph({ multigraph: true });\n * g.setEdge(\"a\", \"b\", \"my-label\");\n * g.edge({ v: \"a\", w: \"b\" }); // returns \"my-label\"\n * ```\n *\n * ### Compound Graphs\n *\n * A compound graph is one where a node can be the parent of other nodes.\n * The child nodes form a \"subgraph\".\n * Here's an example of constructing and interacting with a compound graph:\n *\n * ```js\n * var g = new Graph({ compound: true });\n * g.setParent(\"a\", \"parent\");\n * g.setParent(\"b\", \"parent\");\n * g.parent(\"a\"); // returns \"parent\"\n * g.parent(\"b\"); // returns \"parent\"\n * g.parent(\"parent\"); // returns undefined\n * ```\n *\n * ### Default Labels\n *\n * When a node or edge is created without a label, a default label can be assigned.\n * See {@link setDefaultNodeLabel} and {@link setDefaultEdgeLabel}.\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * Even though this is a \"label\", this could be any type that the user requires\n * (and may need to be an object for some layout/ranking algorithms in dagre).\n * @template [EdgeLabel=any] - Label of an edge.\n * Even though this is a \"label\", this could be any type that the user requires,\n * (and may need to be a object for ranking in dagre).\n */\nexport class Graph {\n /**\n * @param {GraphOptions} [opts] - Graph options.\n */\n constructor(opts = {}) {\n /**\n * @type {boolean}\n * @private\n */\n this._isDirected = Object.prototype.hasOwnProperty.call(opts, 'directed')\n ? opts.directed\n : true;\n /**\n * @type {boolean}\n * @private\n */\n this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, 'multigraph')\n ? opts.multigraph\n : false;\n /**\n * @type {boolean}\n * @private\n */\n this._isCompound = Object.prototype.hasOwnProperty.call(opts, 'compound')\n ? opts.compound\n : false;\n\n /**\n * @type {GraphLabel | undefined}\n * Label for the graph itself\n */\n this._label = undefined;\n\n /**\n * Default label to be set when creating a new node.\n *\n * @private\n * @type {(v: NodeID | number) => NodeLabel}\n */\n this._defaultNodeLabelFn = _.constant(undefined);\n\n /**\n * Default label to be set when creating a new edge\n *\n * @private\n * @type {(v: NodeID, w: NodeID, name: string | undefined) => EdgeLabel}\n */\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n /**\n * @type {Record<NodeID, NodeLabel>}\n * @private\n *\n * v -> label\n */\n this._nodes = {};\n\n if (this._isCompound) {\n /**\n * @type {Record<NodeID, NodeID>}\n * @private\n * v -> parent\n */\n this._parent = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, true>>}\n * @private\n * v -> children\n */\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._in = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * u -> v -> Number\n */\n this._preds = {};\n\n /**\n * @type {Record<NodeID, Record<EdgeID, EdgeObj>>}\n * @private\n * v -> edgeObj\n */\n this._out = {};\n\n /**\n * @type {Record<NodeID, Record<NodeID, number>>}\n * @private\n * v -> w -> Number\n */\n this._sucs = {};\n\n /**\n * @type {Record<EdgeID, EdgeObj>}\n * @private\n * e -> edgeObj\n */\n this._edgeObjs = {};\n\n /**\n * @type {Record<EdgeID, EdgeLabel>}\n * @private\n * e -> label\n */\n this._edgeLabels = {};\n }\n\n /* === Graph functions ========= */\n\n /**\n *\n * @returns {boolean} `true` if the graph is [directed](https://en.wikipedia.org/wiki/Directed_graph).\n * A directed graph treats the order of nodes in an edge as significant whereas an\n * [undirected](https://en.wikipedia.org/wiki/Graph_(mathematics)#Undirected_graph)\n * graph does not.\n * This example demonstrates the difference:\n *\n * @example\n *\n * ```js\n * var directed = new Graph({ directed: true });\n * directed.setEdge(\"a\", \"b\", \"my-label\");\n * directed.edge(\"a\", \"b\"); // returns \"my-label\"\n * directed.edge(\"b\", \"a\"); // returns undefined\n *\n * var undirected = new Graph({ directed: false });\n * undirected.setEdge(\"a\", \"b\", \"my-label\");\n * undirected.edge(\"a\", \"b\"); // returns \"my-label\"\n * undirected.edge(\"b\", \"a\"); // returns \"my-label\"\n * ```\n */\n isDirected() {\n return this._isDirected;\n }\n /**\n * @returns {boolean} `true` if the graph is a multigraph.\n */\n isMultigraph() {\n return this._isMultigraph;\n }\n /**\n * @returns {boolean} `true` if the graph is compound.\n */\n isCompound() {\n return this._isCompound;\n }\n\n /**\n * Sets the label for the graph to `label`.\n *\n * @param {GraphLabel} label - Label for the graph.\n * @returns {this}\n */\n setGraph(label) {\n this._label = label;\n return this;\n }\n\n /**\n * @returns {GraphLabel | undefined} the currently assigned label for the graph.\n * If no label has been assigned, returns `undefined`.\n *\n * @example\n *\n * ```js\n * var g = new Graph();\n * g.graph(); // returns undefined\n * g.setGraph(\"graph-label\");\n * g.graph(); // returns \"graph-label\"\n * ```\n */\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n\n /**\n * Sets a new default value that is assigned to nodes that are created without\n * a label.\n *\n * @param {typeof this._defaultNodeLabelFn | NodeLabel} newDefault - If a function,\n * it is called with the id of the node being created.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of nodes in the graph.\n */\n nodeCount() {\n return this._nodeCount;\n }\n\n /**\n * @returns {NodeID[]} the ids of the nodes in the graph.\n *\n * @remarks\n * Use {@link node()} to get the label for each node.\n * Takes `O(|V|)` time.\n */\n nodes() {\n return _.keys(this._nodes);\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no in-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n /**\n * @returns {NodeID[]} those nodes in the graph that have no out-edges.\n * @remarks Takes `O(|V|)` time.\n */\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n\n /**\n * Invokes setNode method for each node in `vs` list.\n *\n * @param {Collection<NodeID | number>} vs - List of node IDs to create/set.\n * @param {NodeLabel} [value] - If set, update all nodes with this value.\n * @returns {this}\n * @remarks Complexity: O(|names|).\n */\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n\n /**\n * Creates or updates the value for the node `v` in the graph.\n *\n * @param {NodeID | number} v - ID of the node to create/set.\n * @param {NodeLabel} [value] - If supplied, it is set as the value for the node.\n * If not supplied and the node was created by this call then\n * {@link setDefaultNodeLabel} will be used to set the node's value.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setNode(v, value) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n\n /**\n * Gets the label of node with specified name.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeLabel | undefined} the label assigned to the node with the id `v`\n * if it is in the graph.\n * Otherwise returns `undefined`.\n * @remarks Takes `O(1)` time.\n */\n node(v) {\n return this._nodes[v];\n }\n\n /**\n * Detects whether graph has a node with specified name or not.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} Returns `true` the graph has a node with the id.\n * @remarks Takes `O(1)` time.\n */\n hasNode(v) {\n return Object.prototype.hasOwnProperty.call(this._nodes, v);\n }\n\n /**\n * Remove the node with the id `v` in the graph or do nothing if the node is\n * not in the graph.\n *\n * If the node was removed this function also removes any incident edges.\n *\n * @param {NodeID | number} v - Node ID to remove.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(|E|)` time.\n */\n removeNode(v) {\n if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {\n var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), (child) => {\n this.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n\n /**\n * Sets the parent for `v` to `parent` if it is defined or removes the parent\n * for `v` if `parent` is undefined.\n *\n * @param {NodeID | number} v - Node ID to set the parent for.\n * @param {NodeID | number} [parent] - Parent node ID. If not defined, removes the parent.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @throws if the graph is not compound.\n * @throws if setting the parent would create a cycle.\n * @remarks Takes `O(1)` time.\n */\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n // @ts-expect-error -- We coerced parent to a string above\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n\n /**\n * @private\n * @param {NodeID | number} v - Node ID.\n */\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n\n /**\n * Get parent node for node `v`.\n *\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID | undefined} the node that is a parent of node `v`\n * or `undefined` if node `v` does not have a parent or is not a member of\n * the graph.\n * Always returns `undefined` for graphs that are not compound.\n * @remarks Takes `O(1)` time.\n */\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n\n /**\n * Gets list of direct children of node v.\n *\n * @param {NodeID | number} [v] - Node ID. If not specified, gets nodes\n * with no parent (top-level nodes).\n * @returns {NodeID[] | undefined} all nodes that are children of node `v` or\n * `undefined` if node `v` is not in the graph.\n * Always returns `[]` for graphs that are not compound.\n * @remarks Takes `O(|V|)` time.\n */\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are successors of the\n * specified node or `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link neighbors} instead.\n * Takes `O(|V|)` time.\n */\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {NodeID[] | undefined} all nodes that are predecessors or\n * successors of the specified node\n * or `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|V|)` time.\n */\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n\n /**\n * @param {NodeID | number} v - Node ID.\n * @returns {boolean} True if the node is a leaf (has no successors), false otherwise.\n */\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n\n /**\n * Creates new graph with nodes filtered via `filter`.\n * Edges incident to rejected node\n * are also removed.\n * \n * In case of compound graph, if parent is rejected by `filter`,\n * than all its children are rejected too.\n\n * @param {(v: NodeID) => boolean} filter - Function that returns `true` for nodes to keep.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} A new graph containing only the nodes for which `filter` returns `true`.\n * @remarks Average-case complexity: O(|E|+|V|).\n */\n filterNodes(filter) {\n /**\n * @type {Graph<GraphLabel, NodeLabel, EdgeLabel>}\n */\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n\n /* === Edge functions ========== */\n\n /**\n * Sets a new default value that is assigned to edges that are created without\n * a label.\n *\n * @param {typeof this._defaultEdgeLabelFn | EdgeLabel} newDefault - If a function,\n * it is called with the parameters `(v, w, name)`.\n * Otherwise, it is assigned as the label directly.\n * @returns {this}\n */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n\n /**\n * @returns {number} the number of edges in the graph.\n * @remarks Complexity: O(1).\n */\n edgeCount() {\n return this._edgeCount;\n }\n\n /**\n * Gets edges of the graph.\n *\n * @returns {EdgeObj[]} the {@link EdgeObj} for each edge in the graph.\n *\n * @remarks\n * In case of compound graph subgraphs are not considered.\n * Use {@link edge()} to get the label for each edge.\n * Takes `O(|E|)` time.\n */\n edges() {\n return _.values(this._edgeObjs);\n }\n\n /**\n * Establish an edges path over the nodes in nodes list.\n *\n * If some edge is already exists, it will update its label, otherwise it will\n * create an edge between pair of nodes with label provided or default label\n * if no label provided.\n *\n * @param {Collection<NodeID>} vs - List of node IDs to create edges between.\n * @param {EdgeLabel} [value] - If set, update all edges with this value.\n * @returns {this}\n * @remarks Complexity: O(|nodes|).\n */\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {EdgeObj} arg0 - Edge object.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n /**\n * Creates or updates the label for the edge (`v`, `w`) with the optionally\n * supplied `name`.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID. Number values will be coerced to strings.\n * @param {NodeID | number} w - Target node ID. Number values will be coerced to strings.\n * @param {EdgeLabel} [value] - If supplied, it is set as the label for the edge.\n * If not supplied and the edge was created by this call then\n * {@link setDefaultEdgeLabel} will be used to assign the edge's label.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this} the graph, allowing this to be chained with other functions.\n * @remarks Takes `O(1)` time.\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n /**\n * Gets the label for the specified edge.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {EdgeLabel | undefined} the label for the edge (`v`, `w`) if the\n * graph has an edge between `v` and `w` with the optional `name`.\n * Returned `undefined` if there is no such edge in the graph.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Detects whether the graph contains specified edge or not.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {boolean} `true` if the graph has an edge between `v` and `w`\n * with the optional `name`.\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);\n }\n\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {EdgeObj} v - Edge object.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * No subgraphs are considered.\n * Takes `O(1)` time.\n */\n /**\n * Removes the edge (`v`, `w`) if the graph has an edge between `v` and `w`\n * with the optional `name`. If not this function does nothing.\n *\n * @overload\n * @param {NodeID | number} v - Source node ID.\n * @param {NodeID | number} w - Target node ID.\n * @param {string | number} [name] - Edge name. Only useful with multigraphs.\n * @returns {this}\n * @remarks\n * `v` and `w` can be interchanged for undirected graphs.\n * Takes `O(1)` time.\n */\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [u] - Optionally filters edges down to just those\n * coming from node `u`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target node ID.\n * @param {NodeID | number} [w] - Optionally filters edges down to just those\n * that point to `w`.\n * @returns {EdgeObj[] | undefined} all edges that point to the node `v`.\n * Returns `undefined` if node `v` is not in the graph.\n * @remarks\n * Behavior is undefined for undirected graphs - use {@link nodeEdges} instead.\n * Takes `O(|E|)` time.\n */\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n\n /**\n * @param {NodeID | number} v - Target Node ID.\n * @param {NodeID | number} [w] - If set, filters those edges down to just\n * those between nodes `v` and `w` regardless of direction\n * @returns {EdgeObj[] | undefined} all edges to or from node `v` regardless\n * of direction. Returns `undefined` if node `v` is not in the graph.\n * @remarks Takes `O(|E|)` time.\n */\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\n/**\n * @param {Record<NodeID, number>} map - Object mapping node IDs to counts.\n * @param {NodeID | number} k - Node ID.\n */\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj['v'] | number} v_ - Source node ID.\n * @param {EdgeObj['w'] | number} w_ - Target node ID.\n * @param {EdgeObj['name']} [name] - Edge name (for multiple edges between the same nodes).\n * @returns {EdgeObj}\n */\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\n/**\n * @param {boolean} isDirected - If `false`, sorts v and w to ensure a consistent ID.\n * @param {EdgeObj} edgeObj - Edge object.\n * @returns {EdgeID} Unique ID for the edge.\n */\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n"],"names":["_.constant","_.isFunction","_.keys","_.filter","_.isEmpty","_.each","_.isUndefined","_.union","filter","_.values","_.reduce"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KLK3FWXG-WUuNYzcK.js","assets/graph-D5jmnb35.js","assets/_baseUniq-egNq6cCa.js","assets/layout-CLmOfwnS.js","assets/_basePickBy-C3SVVywm.js","assets/clone-BSCHnHfl.js","assets/cose-bilkent-S5V4N54A-CeQ1jAJJ.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-IC4MRINW-BOY_bQFP.js","assets/chunk-JSJVCQXG-CJ3DM4in.js","assets/flowDiagram-PKNHOUZH-D80nrZ3S.js","assets/chunk-FMBD7UC4-CTpuRfdB.js","assets/chunk-55IACEB6-zSjTFoCX.js","assets/chunk-KX2RTZJC-B97EakhO.js","assets/channel-CZ_X09H1.js","assets/erDiagram-INFDFZHY-Dl_6U5fV.js","assets/gitGraphDiagram-K3NZZRJ6-ifV-jkKL.js","assets/chunk-4BX2VUAB-BIwyAzZQ.js","assets/chunk-QZHKN3VN-D33FSIEb.js","assets/treemap-KZPCXAKY-CglsYqbQ.js","assets/ganttDiagram-A5KZAMGK-T3WdMrgj.js","assets/linear-DFAmViqi.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-LFFYTUFH-C340CY5x.js","assets/pieDiagram-SKSYHLDU-U6_un5Sc.js","assets/arc-CASAlRvm.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-337W2JSQ-DmVJQItS.js","assets/xychartDiagram-JWTSCODW-DvYQ4zKY.js","assets/requirementDiagram-Z7DCOOCP-BkNhSY-g.js","assets/sequenceDiagram-2WXFIKYE-k0w9WKAO.js","assets/classDiagram-VBA2DB6C-BfLZmK48.js","assets/chunk-WL4C6EOR-C2InqFin.js","assets/classDiagram-v2-RAHNMMFH-BfLZmK48.js","assets/stateDiagram-RAJIS63D-DRgdJrlx.js","assets/chunk-NQ4KR5QH-5o1o5x0z.js","assets/stateDiagram-v2-FVOUBMTO-edtkX9x6.js","assets/journeyDiagram-4ABVD52K-Dvv3ypKA.js","assets/timeline-definition-YZTLITO2-D0zyXyNL.js","assets/mindmap-definition-YRQLILUH-Ce3_czeS.js","assets/kanban-definition-K7BYSVSG-D_rsetjW.js","assets/sankeyDiagram-WA2Y5GQK-E3UEy5SX.js","assets/diagram-P4PSJMXO-DjAYFRLv.js","assets/diagram-IFDJBPK2-cCeQqotA.js","assets/blockDiagram-WCTKOSBZ-D2UGGjic.js","assets/architectureDiagram-2XIMDMQ5-B6n5FQmS.js","assets/diagram-E7M64L7V-jOVCIExP.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KLK3FWXG-F_n_vhV9.js","assets/graph-cjRyzujT.js","assets/_baseUniq-CsE8Qvwt.js","assets/layout-Clazq06r.js","assets/_basePickBy-DMD1UhXs.js","assets/clone-6lYQMWpu.js","assets/cose-bilkent-S5V4N54A-DoJeDXV0.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-IC4MRINW-CGYONEh1.js","assets/chunk-JSJVCQXG-DKHSdeu1.js","assets/flowDiagram-PKNHOUZH-CAbWV161.js","assets/chunk-FMBD7UC4-CugIlRDV.js","assets/chunk-55IACEB6-DL1IDg_h.js","assets/chunk-KX2RTZJC-DCU9tkq6.js","assets/channel-DbSJhm5-.js","assets/erDiagram-INFDFZHY-DV2BcYNa.js","assets/gitGraphDiagram-K3NZZRJ6-DuJFTELz.js","assets/chunk-4BX2VUAB-D1inRfgf.js","assets/chunk-QZHKN3VN-e3ztIJg0.js","assets/treemap-KZPCXAKY-BjhjT1IM.js","assets/ganttDiagram-A5KZAMGK-CfdR7FRr.js","assets/linear-jdsBGgvD.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-LFFYTUFH-3wx-7AdD.js","assets/pieDiagram-SKSYHLDU-Uj-Zpci6.js","assets/arc-0h8sV6e1.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-337W2JSQ-DO7Sl1nV.js","assets/xychartDiagram-JWTSCODW-ByKmk3Cb.js","assets/requirementDiagram-Z7DCOOCP-WrurrDKQ.js","assets/sequenceDiagram-2WXFIKYE-B98U2Npa.js","assets/classDiagram-VBA2DB6C-DOTXtxYZ.js","assets/chunk-WL4C6EOR-Dv907NPM.js","assets/classDiagram-v2-RAHNMMFH-DOTXtxYZ.js","assets/stateDiagram-RAJIS63D-BUgfHMbd.js","assets/chunk-NQ4KR5QH-DN3O2s2M.js","assets/stateDiagram-v2-FVOUBMTO-C8gH0rSW.js","assets/journeyDiagram-4ABVD52K-DdCcmOBO.js","assets/timeline-definition-YZTLITO2-DnVikX3B.js","assets/mindmap-definition-YRQLILUH-DLSZrW6l.js","assets/kanban-definition-K7BYSVSG-BFw2emGl.js","assets/sankeyDiagram-WA2Y5GQK-gcxbxuZB.js","assets/diagram-P4PSJMXO-qowipEfV.js","assets/diagram-IFDJBPK2-CIt1nnn5.js","assets/blockDiagram-WCTKOSBZ-DwkN-9a4.js","assets/architectureDiagram-2XIMDMQ5-BbMESECO.js","assets/diagram-E7M64L7V-Crwhgyjv.js"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -98730,12 +98730,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
98730
98730
  registerLayoutLoaders([
98731
98731
  {
98732
98732
  name: "dagre",
98733
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-KLK3FWXG-WUuNYzcK.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
98733
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-KLK3FWXG-F_n_vhV9.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
98734
98734
  },
98735
98735
  ...[
98736
98736
  {
98737
98737
  name: "cose-bilkent",
98738
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-CeQ1jAJJ.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
98738
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-DoJeDXV0.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
98739
98739
  }
98740
98740
  ]
98741
98741
  ]);
@@ -99175,7 +99175,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
99175
99175
  }, "detector");
99176
99176
  var loader = /* @__PURE__ */ __name(async () => {
99177
99177
  const { diagram: diagram2 } = await __vitePreload(async () => {
99178
- const { diagram: diagram22 } = await import("./c4Diagram-IC4MRINW-BOY_bQFP.js");
99178
+ const { diagram: diagram22 } = await import("./c4Diagram-IC4MRINW-CGYONEh1.js");
99179
99179
  return { diagram: diagram22 };
99180
99180
  }, true ? __vite__mapDeps([8,9]) : void 0);
99181
99181
  return { id: id$1, diagram: diagram2 };
@@ -99195,7 +99195,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
99195
99195
  }, "detector");
99196
99196
  var loader2 = /* @__PURE__ */ __name(async () => {
99197
99197
  const { diagram: diagram2 } = await __vitePreload(async () => {
99198
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-D80nrZ3S.js");
99198
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-CAbWV161.js");
99199
99199
  return { diagram: diagram22 };
99200
99200
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
99201
99201
  return { id: id2, diagram: diagram2 };
@@ -99221,7 +99221,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
99221
99221
  }, "detector");
99222
99222
  var loader3 = /* @__PURE__ */ __name(async () => {
99223
99223
  const { diagram: diagram2 } = await __vitePreload(async () => {
99224
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-D80nrZ3S.js");
99224
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-CAbWV161.js");
99225
99225
  return { diagram: diagram22 };
99226
99226
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
99227
99227
  return { id: id3, diagram: diagram2 };
@@ -99238,7 +99238,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
99238
99238
  }, "detector");
99239
99239
  var loader4 = /* @__PURE__ */ __name(async () => {
99240
99240
  const { diagram: diagram2 } = await __vitePreload(async () => {
99241
- const { diagram: diagram22 } = await import("./erDiagram-INFDFZHY-Dl_6U5fV.js");
99241
+ const { diagram: diagram22 } = await import("./erDiagram-INFDFZHY-DV2BcYNa.js");
99242
99242
  return { diagram: diagram22 };
99243
99243
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
99244
99244
  return { id: id4, diagram: diagram2 };
@@ -99255,7 +99255,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
99255
99255
  }, "detector");
99256
99256
  var loader5 = /* @__PURE__ */ __name(async () => {
99257
99257
  const { diagram: diagram2 } = await __vitePreload(async () => {
99258
- const { diagram: diagram22 } = await import("./gitGraphDiagram-K3NZZRJ6-ifV-jkKL.js");
99258
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-K3NZZRJ6-DuJFTELz.js");
99259
99259
  return { diagram: diagram22 };
99260
99260
  }, true ? __vite__mapDeps([16,17,18,19,2,4,5]) : void 0);
99261
99261
  return { id: id5, diagram: diagram2 };
@@ -99272,7 +99272,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
99272
99272
  }, "detector");
99273
99273
  var loader6 = /* @__PURE__ */ __name(async () => {
99274
99274
  const { diagram: diagram2 } = await __vitePreload(async () => {
99275
- const { diagram: diagram22 } = await import("./ganttDiagram-A5KZAMGK-T3WdMrgj.js");
99275
+ const { diagram: diagram22 } = await import("./ganttDiagram-A5KZAMGK-CfdR7FRr.js");
99276
99276
  return { diagram: diagram22 };
99277
99277
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
99278
99278
  return { id: id6, diagram: diagram2 };
@@ -99289,7 +99289,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
99289
99289
  }, "detector");
99290
99290
  var loader7 = /* @__PURE__ */ __name(async () => {
99291
99291
  const { diagram: diagram2 } = await __vitePreload(async () => {
99292
- const { diagram: diagram22 } = await import("./infoDiagram-LFFYTUFH-C340CY5x.js");
99292
+ const { diagram: diagram22 } = await import("./infoDiagram-LFFYTUFH-3wx-7AdD.js");
99293
99293
  return { diagram: diagram22 };
99294
99294
  }, true ? __vite__mapDeps([24,19,2,4,5]) : void 0);
99295
99295
  return { id: id7, diagram: diagram2 };
@@ -99305,7 +99305,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
99305
99305
  }, "detector");
99306
99306
  var loader8 = /* @__PURE__ */ __name(async () => {
99307
99307
  const { diagram: diagram2 } = await __vitePreload(async () => {
99308
- const { diagram: diagram22 } = await import("./pieDiagram-SKSYHLDU-U6_un5Sc.js");
99308
+ const { diagram: diagram22 } = await import("./pieDiagram-SKSYHLDU-Uj-Zpci6.js");
99309
99309
  return { diagram: diagram22 };
99310
99310
  }, true ? __vite__mapDeps([25,17,19,2,4,5,26,27,22]) : void 0);
99311
99311
  return { id: id8, diagram: diagram2 };
@@ -99321,7 +99321,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
99321
99321
  }, "detector");
99322
99322
  var loader9 = /* @__PURE__ */ __name(async () => {
99323
99323
  const { diagram: diagram2 } = await __vitePreload(async () => {
99324
- const { diagram: diagram22 } = await import("./quadrantDiagram-337W2JSQ-DmVJQItS.js");
99324
+ const { diagram: diagram22 } = await import("./quadrantDiagram-337W2JSQ-DO7Sl1nV.js");
99325
99325
  return { diagram: diagram22 };
99326
99326
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
99327
99327
  return { id: id9, diagram: diagram2 };
@@ -99338,7 +99338,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
99338
99338
  }, "detector");
99339
99339
  var loader10 = /* @__PURE__ */ __name(async () => {
99340
99340
  const { diagram: diagram2 } = await __vitePreload(async () => {
99341
- const { diagram: diagram22 } = await import("./xychartDiagram-JWTSCODW-DvYQ4zKY.js");
99341
+ const { diagram: diagram22 } = await import("./xychartDiagram-JWTSCODW-ByKmk3Cb.js");
99342
99342
  return { diagram: diagram22 };
99343
99343
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
99344
99344
  return { id: id10, diagram: diagram2 };
@@ -99355,7 +99355,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
99355
99355
  }, "detector");
99356
99356
  var loader11 = /* @__PURE__ */ __name(async () => {
99357
99357
  const { diagram: diagram2 } = await __vitePreload(async () => {
99358
- const { diagram: diagram22 } = await import("./requirementDiagram-Z7DCOOCP-BkNhSY-g.js");
99358
+ const { diagram: diagram22 } = await import("./requirementDiagram-Z7DCOOCP-WrurrDKQ.js");
99359
99359
  return { diagram: diagram22 };
99360
99360
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
99361
99361
  return { id: id11, diagram: diagram2 };
@@ -99372,7 +99372,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
99372
99372
  }, "detector");
99373
99373
  var loader12 = /* @__PURE__ */ __name(async () => {
99374
99374
  const { diagram: diagram2 } = await __vitePreload(async () => {
99375
- const { diagram: diagram22 } = await import("./sequenceDiagram-2WXFIKYE-k0w9WKAO.js");
99375
+ const { diagram: diagram22 } = await import("./sequenceDiagram-2WXFIKYE-B98U2Npa.js");
99376
99376
  return { diagram: diagram22 };
99377
99377
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
99378
99378
  return { id: id12, diagram: diagram2 };
@@ -99392,7 +99392,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
99392
99392
  }, "detector");
99393
99393
  var loader13 = /* @__PURE__ */ __name(async () => {
99394
99394
  const { diagram: diagram2 } = await __vitePreload(async () => {
99395
- const { diagram: diagram22 } = await import("./classDiagram-VBA2DB6C-BfLZmK48.js");
99395
+ const { diagram: diagram22 } = await import("./classDiagram-VBA2DB6C-DOTXtxYZ.js");
99396
99396
  return { diagram: diagram22 };
99397
99397
  }, true ? __vite__mapDeps([32,33,11,9,12,13]) : void 0);
99398
99398
  return { id: id13, diagram: diagram2 };
@@ -99412,7 +99412,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
99412
99412
  }, "detector");
99413
99413
  var loader14 = /* @__PURE__ */ __name(async () => {
99414
99414
  const { diagram: diagram2 } = await __vitePreload(async () => {
99415
- const { diagram: diagram22 } = await import("./classDiagram-v2-RAHNMMFH-BfLZmK48.js");
99415
+ const { diagram: diagram22 } = await import("./classDiagram-v2-RAHNMMFH-DOTXtxYZ.js");
99416
99416
  return { diagram: diagram22 };
99417
99417
  }, true ? __vite__mapDeps([34,33,11,9,12,13]) : void 0);
99418
99418
  return { id: id14, diagram: diagram2 };
@@ -99432,7 +99432,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
99432
99432
  }, "detector");
99433
99433
  var loader15 = /* @__PURE__ */ __name(async () => {
99434
99434
  const { diagram: diagram2 } = await __vitePreload(async () => {
99435
- const { diagram: diagram22 } = await import("./stateDiagram-RAJIS63D-DRgdJrlx.js");
99435
+ const { diagram: diagram22 } = await import("./stateDiagram-RAJIS63D-BUgfHMbd.js");
99436
99436
  return { diagram: diagram22 };
99437
99437
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
99438
99438
  return { id: id15, diagram: diagram2 };
@@ -99455,7 +99455,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
99455
99455
  }, "detector");
99456
99456
  var loader16 = /* @__PURE__ */ __name(async () => {
99457
99457
  const { diagram: diagram2 } = await __vitePreload(async () => {
99458
- const { diagram: diagram22 } = await import("./stateDiagram-v2-FVOUBMTO-edtkX9x6.js");
99458
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-FVOUBMTO-C8gH0rSW.js");
99459
99459
  return { diagram: diagram22 };
99460
99460
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
99461
99461
  return { id: id16, diagram: diagram2 };
@@ -99472,7 +99472,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
99472
99472
  }, "detector");
99473
99473
  var loader17 = /* @__PURE__ */ __name(async () => {
99474
99474
  const { diagram: diagram2 } = await __vitePreload(async () => {
99475
- const { diagram: diagram22 } = await import("./journeyDiagram-4ABVD52K-Dvv3ypKA.js");
99475
+ const { diagram: diagram22 } = await import("./journeyDiagram-4ABVD52K-DdCcmOBO.js");
99476
99476
  return { diagram: diagram22 };
99477
99477
  }, true ? __vite__mapDeps([38,11,9,26]) : void 0);
99478
99478
  return { id: id17, diagram: diagram2 };
@@ -99542,7 +99542,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
99542
99542
  }, "detector");
99543
99543
  var loader18 = /* @__PURE__ */ __name(async () => {
99544
99544
  const { diagram: diagram2 } = await __vitePreload(async () => {
99545
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-D80nrZ3S.js");
99545
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-CAbWV161.js");
99546
99546
  return { diagram: diagram22 };
99547
99547
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
99548
99548
  return { id: id18, diagram: diagram2 };
@@ -99559,7 +99559,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
99559
99559
  }, "detector");
99560
99560
  var loader19 = /* @__PURE__ */ __name(async () => {
99561
99561
  const { diagram: diagram2 } = await __vitePreload(async () => {
99562
- const { diagram: diagram22 } = await import("./timeline-definition-YZTLITO2-D0zyXyNL.js");
99562
+ const { diagram: diagram22 } = await import("./timeline-definition-YZTLITO2-DnVikX3B.js");
99563
99563
  return { diagram: diagram22 };
99564
99564
  }, true ? __vite__mapDeps([39,26]) : void 0);
99565
99565
  return { id: id19, diagram: diagram2 };
@@ -99576,7 +99576,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
99576
99576
  }, "detector");
99577
99577
  var loader20 = /* @__PURE__ */ __name(async () => {
99578
99578
  const { diagram: diagram2 } = await __vitePreload(async () => {
99579
- const { diagram: diagram22 } = await import("./mindmap-definition-YRQLILUH-Ce3_czeS.js");
99579
+ const { diagram: diagram22 } = await import("./mindmap-definition-YRQLILUH-DLSZrW6l.js");
99580
99580
  return { diagram: diagram22 };
99581
99581
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
99582
99582
  return { id: id20, diagram: diagram2 };
@@ -99593,7 +99593,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
99593
99593
  }, "detector");
99594
99594
  var loader21 = /* @__PURE__ */ __name(async () => {
99595
99595
  const { diagram: diagram2 } = await __vitePreload(async () => {
99596
- const { diagram: diagram22 } = await import("./kanban-definition-K7BYSVSG-D_rsetjW.js");
99596
+ const { diagram: diagram22 } = await import("./kanban-definition-K7BYSVSG-BFw2emGl.js");
99597
99597
  return { diagram: diagram22 };
99598
99598
  }, true ? __vite__mapDeps([41,11]) : void 0);
99599
99599
  return { id: id21, diagram: diagram2 };
@@ -99610,7 +99610,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
99610
99610
  }, "detector");
99611
99611
  var loader22 = /* @__PURE__ */ __name(async () => {
99612
99612
  const { diagram: diagram2 } = await __vitePreload(async () => {
99613
- const { diagram: diagram22 } = await import("./sankeyDiagram-WA2Y5GQK-E3UEy5SX.js");
99613
+ const { diagram: diagram22 } = await import("./sankeyDiagram-WA2Y5GQK-gcxbxuZB.js");
99614
99614
  return { diagram: diagram22 };
99615
99615
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
99616
99616
  return { id: id22, diagram: diagram2 };
@@ -99627,7 +99627,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
99627
99627
  }, "detector");
99628
99628
  var loader23 = /* @__PURE__ */ __name(async () => {
99629
99629
  const { diagram: diagram2 } = await __vitePreload(async () => {
99630
- const { diagram: diagram22 } = await import("./diagram-P4PSJMXO-DjAYFRLv.js");
99630
+ const { diagram: diagram22 } = await import("./diagram-P4PSJMXO-qowipEfV.js");
99631
99631
  return { diagram: diagram22 };
99632
99632
  }, true ? __vite__mapDeps([43,17,19,2,4,5]) : void 0);
99633
99633
  return { id: id23, diagram: diagram2 };
@@ -99643,7 +99643,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
99643
99643
  }, "detector");
99644
99644
  var loader24 = /* @__PURE__ */ __name(async () => {
99645
99645
  const { diagram: diagram2 } = await __vitePreload(async () => {
99646
- const { diagram: diagram22 } = await import("./diagram-IFDJBPK2-cCeQqotA.js");
99646
+ const { diagram: diagram22 } = await import("./diagram-IFDJBPK2-CIt1nnn5.js");
99647
99647
  return { diagram: diagram22 };
99648
99648
  }, true ? __vite__mapDeps([44,17,19,2,4,5]) : void 0);
99649
99649
  return { id: id24, diagram: diagram2 };
@@ -99659,7 +99659,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
99659
99659
  }, "detector");
99660
99660
  var loader25 = /* @__PURE__ */ __name(async () => {
99661
99661
  const { diagram: diagram2 } = await __vitePreload(async () => {
99662
- const { diagram: diagram22 } = await import("./blockDiagram-WCTKOSBZ-D2UGGjic.js");
99662
+ const { diagram: diagram22 } = await import("./blockDiagram-WCTKOSBZ-DwkN-9a4.js");
99663
99663
  return { diagram: diagram22 };
99664
99664
  }, true ? __vite__mapDeps([45,11,5,2,1,14]) : void 0);
99665
99665
  return { id: id25, diagram: diagram2 };
@@ -99676,7 +99676,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
99676
99676
  }, "detector");
99677
99677
  var loader26 = /* @__PURE__ */ __name(async () => {
99678
99678
  const { diagram: diagram2 } = await __vitePreload(async () => {
99679
- const { diagram: diagram22 } = await import("./architectureDiagram-2XIMDMQ5-B6n5FQmS.js");
99679
+ const { diagram: diagram22 } = await import("./architectureDiagram-2XIMDMQ5-BbMESECO.js");
99680
99680
  return { diagram: diagram22 };
99681
99681
  }, true ? __vite__mapDeps([46,17,19,2,4,5,7]) : void 0);
99682
99682
  return { id: id26, diagram: diagram2 };
@@ -99693,7 +99693,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
99693
99693
  }, "detector");
99694
99694
  var loader27 = /* @__PURE__ */ __name(async () => {
99695
99695
  const { diagram: diagram2 } = await __vitePreload(async () => {
99696
- const { diagram: diagram22 } = await import("./ishikawaDiagram-PHBUUO56-Bu4RsELK.js");
99696
+ const { diagram: diagram22 } = await import("./ishikawaDiagram-PHBUUO56-g6CMb1Qc.js");
99697
99697
  return { diagram: diagram22 };
99698
99698
  }, true ? [] : void 0);
99699
99699
  return { id: id27, diagram: diagram2 };
@@ -99709,7 +99709,7 @@ var detector28 = /* @__PURE__ */ __name((txt) => {
99709
99709
  }, "detector");
99710
99710
  var loader28 = /* @__PURE__ */ __name(async () => {
99711
99711
  const { diagram: diagram2 } = await __vitePreload(async () => {
99712
- const { diagram: diagram22 } = await import("./vennDiagram-LZ73GAT5-DsUizzvt.js");
99712
+ const { diagram: diagram22 } = await import("./vennDiagram-LZ73GAT5-CXjPMxrl.js");
99713
99713
  return { diagram: diagram22 };
99714
99714
  }, true ? [] : void 0);
99715
99715
  return { id: id28, diagram: diagram2 };
@@ -99726,7 +99726,7 @@ var detector29 = /* @__PURE__ */ __name((txt) => {
99726
99726
  }, "detector");
99727
99727
  var loader29 = /* @__PURE__ */ __name(async () => {
99728
99728
  const { diagram: diagram2 } = await __vitePreload(async () => {
99729
- const { diagram: diagram22 } = await import("./diagram-E7M64L7V-jOVCIExP.js");
99729
+ const { diagram: diagram22 } = await import("./diagram-E7M64L7V-Crwhgyjv.js");
99730
99730
  return { diagram: diagram22 };
99731
99731
  }, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
99732
99732
  return { id: id29, diagram: diagram2 };
@@ -103598,7 +103598,7 @@ itemId: ${itemId}` : ""}` : `itemId: ${itemId}`;
103598
103598
  const finishedAt = endedAtMs ?? Date.now();
103599
103599
  const endText = this.formatAbsoluteTime(finishedAt);
103600
103600
  const total = this.formatDuration(finishedAt - startedAtMs);
103601
- const statusMark = state2 === "failed" ? this.uiLanguage === "zh" ? "失败" : "failed" : state2 === "superseded" ? this.uiLanguage === "zh" ? "已更新" : "superseded" : "";
103601
+ const statusMark = state2 === "failed" ? this.uiLanguage === "zh" ? "失败" : "failed" : state2 === "superseded" ? this.uiLanguage === "zh" ? "已替换" : "superseded" : "";
103602
103602
  const baseText = this.uiLanguage === "zh" ? `${statusMark ? `状态: ${statusMark} · ` : ""}结束: ${endText} · 总用时: ${total}` : `${statusMark ? `Status: ${statusMark} · ` : ""}Ended: ${endText} · Total: ${total}`;
103603
103603
  timingEl.textContent = typeof extraNote === "string" && extraNote.trim() !== "" ? `${baseText} · ${extraNote}` : baseText;
103604
103604
  }
@@ -103687,7 +103687,7 @@ itemId: ${itemId}` : ""}` : `itemId: ${itemId}`;
103687
103687
  section.classList.add("superseded");
103688
103688
  section.removeAttribute("data-carryover-course");
103689
103689
  this.pendingCallTimingById.delete(callId);
103690
- const extraNote = this.uiLanguage === "zh" ? "该轮诉请已被较新的要求替代" : "This tellask round was superseded by a newer request";
103690
+ const extraNote = this.uiLanguage === "zh" ? "该轮诉请已被较新的要求替代;更新已登记" : "This tellask round was superseded; the update is registered";
103691
103691
  this.renderCallTiming(section, "superseded", startedAtMs, endedAtMs, extraNote);
103692
103692
  if (this.pendingCallTimingById.size === 0) {
103693
103693
  this.stopCallTimingTicker();
@@ -104300,7 +104300,7 @@ ${event.content}`;
104300
104300
  const normalizedSessionSlug = typeof sessionSlug === "string" && sessionSlug.trim() !== "" ? sessionSlug.trim() : "";
104301
104301
  const sessionSlugHtml = normalizedSessionSlug === "" ? "" : `<span class="teammate-session-slug">· ${this.escapeHtml(normalizedSessionSlug)}</span>`;
104302
104302
  const titleLeftHtml = visualKind === "superseded_notice" ? `<span class="teammate-kind-label">${this.escapeHtml(
104303
- this.uiLanguage === "zh" ? "诉请已更新" : "Tellask updated"
104303
+ this.uiLanguage === "zh" ? "旧诉请已替换" : "Tellask superseded"
104304
104304
  )}</span>
104305
104305
  <span class="teammate-meta">
104306
104306
  <span class="tellasker-name">${safeTellaskerLabel}</span>
@@ -129061,4 +129061,4 @@ export {
129061
129061
  purify as y,
129062
129062
  clear$2 as z
129063
129063
  };
129064
- //# sourceMappingURL=index-CGbZlct2.js.map
129064
+ //# sourceMappingURL=index-DgfF56L4.js.map