dominds 1.26.4 → 1.26.5

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 (101) hide show
  1. package/dist/dialog.d.ts +7 -0
  2. package/dist/dialog.js +43 -21
  3. package/dist/persistence.js +1 -1
  4. package/dist/runtime/driver-messages.js +40 -24
  5. package/dist/server/websocket-handler.js +63 -19
  6. package/package.json +3 -3
  7. package/webapp/dist/assets/{_basePickBy-mFK6EVZU.js → _basePickBy-zyTFuJGa.js} +3 -3
  8. package/webapp/dist/assets/{_basePickBy-mFK6EVZU.js.map → _basePickBy-zyTFuJGa.js.map} +1 -1
  9. package/webapp/dist/assets/{_baseUniq-C8zyOqn7.js → _baseUniq-nq34n_7W.js} +2 -2
  10. package/webapp/dist/assets/{_baseUniq-C8zyOqn7.js.map → _baseUniq-nq34n_7W.js.map} +1 -1
  11. package/webapp/dist/assets/{arc-Vdl3uhV8.js → arc-Bv7_22Od.js} +2 -2
  12. package/webapp/dist/assets/{arc-Vdl3uhV8.js.map → arc-Bv7_22Od.js.map} +1 -1
  13. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-D3Xtb8u_.js → architectureDiagram-2XIMDMQ5-CQe-mbPP.js} +7 -7
  14. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-D3Xtb8u_.js.map → architectureDiagram-2XIMDMQ5-CQe-mbPP.js.map} +1 -1
  15. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-Bozcnodw.js → blockDiagram-WCTKOSBZ-CX4Uu1s4.js} +7 -7
  16. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-Bozcnodw.js.map → blockDiagram-WCTKOSBZ-CX4Uu1s4.js.map} +1 -1
  17. package/webapp/dist/assets/{c4Diagram-IC4MRINW-CLkxlY6N.js → c4Diagram-IC4MRINW-75vPtXd7.js} +3 -3
  18. package/webapp/dist/assets/{c4Diagram-IC4MRINW-CLkxlY6N.js.map → c4Diagram-IC4MRINW-75vPtXd7.js.map} +1 -1
  19. package/webapp/dist/assets/{channel-CqGyLCM_.js → channel-lMsMuju8.js} +2 -2
  20. package/webapp/dist/assets/{channel-CqGyLCM_.js.map → channel-lMsMuju8.js.map} +1 -1
  21. package/webapp/dist/assets/{chunk-4BX2VUAB-BNsJpMh4.js → chunk-4BX2VUAB-I371XlIM.js} +2 -2
  22. package/webapp/dist/assets/{chunk-4BX2VUAB-BNsJpMh4.js.map → chunk-4BX2VUAB-I371XlIM.js.map} +1 -1
  23. package/webapp/dist/assets/{chunk-55IACEB6-B59p6vzX.js → chunk-55IACEB6-GMAfwcRQ.js} +2 -2
  24. package/webapp/dist/assets/{chunk-55IACEB6-B59p6vzX.js.map → chunk-55IACEB6-GMAfwcRQ.js.map} +1 -1
  25. package/webapp/dist/assets/{chunk-FMBD7UC4-CB17a_Ki.js → chunk-FMBD7UC4-X9ms5_sJ.js} +2 -2
  26. package/webapp/dist/assets/{chunk-FMBD7UC4-CB17a_Ki.js.map → chunk-FMBD7UC4-X9ms5_sJ.js.map} +1 -1
  27. package/webapp/dist/assets/{chunk-JSJVCQXG-DVnVflN-.js → chunk-JSJVCQXG-s2a971Od.js} +2 -2
  28. package/webapp/dist/assets/{chunk-JSJVCQXG-DVnVflN-.js.map → chunk-JSJVCQXG-s2a971Od.js.map} +1 -1
  29. package/webapp/dist/assets/{chunk-KX2RTZJC-D9_5LvIO.js → chunk-KX2RTZJC-CSSBs5H9.js} +2 -2
  30. package/webapp/dist/assets/{chunk-KX2RTZJC-D9_5LvIO.js.map → chunk-KX2RTZJC-CSSBs5H9.js.map} +1 -1
  31. package/webapp/dist/assets/{chunk-NQ4KR5QH-CZWI2G2c.js → chunk-NQ4KR5QH-B8-jtfW1.js} +4 -4
  32. package/webapp/dist/assets/{chunk-NQ4KR5QH-CZWI2G2c.js.map → chunk-NQ4KR5QH-B8-jtfW1.js.map} +1 -1
  33. package/webapp/dist/assets/{chunk-QZHKN3VN-WCLg8cNX.js → chunk-QZHKN3VN-3ZZehtFv.js} +2 -2
  34. package/webapp/dist/assets/{chunk-QZHKN3VN-WCLg8cNX.js.map → chunk-QZHKN3VN-3ZZehtFv.js.map} +1 -1
  35. package/webapp/dist/assets/{chunk-WL4C6EOR-BFkz_P__.js → chunk-WL4C6EOR-D_AtipPw.js} +6 -6
  36. package/webapp/dist/assets/{chunk-WL4C6EOR-BFkz_P__.js.map → chunk-WL4C6EOR-D_AtipPw.js.map} +1 -1
  37. package/webapp/dist/assets/{classDiagram-VBA2DB6C-DWQ1VnaI.js → classDiagram-VBA2DB6C-CTxhuDjN.js} +7 -7
  38. package/webapp/dist/assets/{classDiagram-VBA2DB6C-DWQ1VnaI.js.map → classDiagram-VBA2DB6C-CTxhuDjN.js.map} +1 -1
  39. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-DWQ1VnaI.js → classDiagram-v2-RAHNMMFH-CTxhuDjN.js} +7 -7
  40. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-DWQ1VnaI.js.map → classDiagram-v2-RAHNMMFH-CTxhuDjN.js.map} +1 -1
  41. package/webapp/dist/assets/{clone-D3QHqx6z.js → clone-C9MfpI1S.js} +2 -2
  42. package/webapp/dist/assets/{clone-D3QHqx6z.js.map → clone-C9MfpI1S.js.map} +1 -1
  43. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-D2dZHRG3.js → cose-bilkent-S5V4N54A-CCYyTSie.js} +2 -2
  44. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-D2dZHRG3.js.map → cose-bilkent-S5V4N54A-CCYyTSie.js.map} +1 -1
  45. package/webapp/dist/assets/{dagre-KLK3FWXG-Cwz7pFDo.js → dagre-KLK3FWXG-DxM19yfA.js} +7 -7
  46. package/webapp/dist/assets/{dagre-KLK3FWXG-Cwz7pFDo.js.map → dagre-KLK3FWXG-DxM19yfA.js.map} +1 -1
  47. package/webapp/dist/assets/{diagram-E7M64L7V-C6z0VVoW.js → diagram-E7M64L7V-BSc4Txf5.js} +8 -8
  48. package/webapp/dist/assets/{diagram-E7M64L7V-C6z0VVoW.js.map → diagram-E7M64L7V-BSc4Txf5.js.map} +1 -1
  49. package/webapp/dist/assets/{diagram-IFDJBPK2-CZ1KR1hO.js → diagram-IFDJBPK2-Cdj6m54B.js} +7 -7
  50. package/webapp/dist/assets/{diagram-IFDJBPK2-CZ1KR1hO.js.map → diagram-IFDJBPK2-Cdj6m54B.js.map} +1 -1
  51. package/webapp/dist/assets/{diagram-P4PSJMXO-ChwZDZYa.js → diagram-P4PSJMXO-BKd75i65.js} +7 -7
  52. package/webapp/dist/assets/{diagram-P4PSJMXO-ChwZDZYa.js.map → diagram-P4PSJMXO-BKd75i65.js.map} +1 -1
  53. package/webapp/dist/assets/{erDiagram-INFDFZHY-DCnHsk_Z.js → erDiagram-INFDFZHY-eI9rTfbL.js} +5 -5
  54. package/webapp/dist/assets/{erDiagram-INFDFZHY-DCnHsk_Z.js.map → erDiagram-INFDFZHY-eI9rTfbL.js.map} +1 -1
  55. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-C5Hi85ST.js → flowDiagram-PKNHOUZH-BFDDBCeb.js} +7 -7
  56. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-C5Hi85ST.js.map → flowDiagram-PKNHOUZH-BFDDBCeb.js.map} +1 -1
  57. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-vT15RP6A.js → ganttDiagram-A5KZAMGK-ClhbFgCt.js} +3 -3
  58. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-vT15RP6A.js.map → ganttDiagram-A5KZAMGK-ClhbFgCt.js.map} +1 -1
  59. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-Ct5XDpFu.js → gitGraphDiagram-K3NZZRJ6-DOiQN8_s.js} +8 -8
  60. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-Ct5XDpFu.js.map → gitGraphDiagram-K3NZZRJ6-DOiQN8_s.js.map} +1 -1
  61. package/webapp/dist/assets/{graph-CqFTrHii.js → graph-_a0YpojF.js} +3 -3
  62. package/webapp/dist/assets/{graph-CqFTrHii.js.map → graph-_a0YpojF.js.map} +1 -1
  63. package/webapp/dist/assets/{index-C_PzQ5W5.js → index-Dou-k_rC.js} +55 -58
  64. package/webapp/dist/assets/{index-C_PzQ5W5.js.map → index-Dou-k_rC.js.map} +1 -1
  65. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-DlyOw8IT.js → infoDiagram-LFFYTUFH-txkiQJKc.js} +6 -6
  66. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-DlyOw8IT.js.map → infoDiagram-LFFYTUFH-txkiQJKc.js.map} +1 -1
  67. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-iZCVn19K.js → ishikawaDiagram-PHBUUO56-D91OZx5x.js} +2 -2
  68. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-iZCVn19K.js.map → ishikawaDiagram-PHBUUO56-D91OZx5x.js.map} +1 -1
  69. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-B95gnBKj.js → journeyDiagram-4ABVD52K-BdmmINf5.js} +5 -5
  70. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-B95gnBKj.js.map → journeyDiagram-4ABVD52K-BdmmINf5.js.map} +1 -1
  71. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-DQ2gfPUK.js → kanban-definition-K7BYSVSG-C-S70Yrl.js} +3 -3
  72. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-DQ2gfPUK.js.map → kanban-definition-K7BYSVSG-C-S70Yrl.js.map} +1 -1
  73. package/webapp/dist/assets/{layout-VOBFudHV.js → layout-BRJaSqhR.js} +5 -5
  74. package/webapp/dist/assets/{layout-VOBFudHV.js.map → layout-BRJaSqhR.js.map} +1 -1
  75. package/webapp/dist/assets/{linear-BtBp93s2.js → linear-DyNGMbe9.js} +2 -2
  76. package/webapp/dist/assets/{linear-BtBp93s2.js.map → linear-DyNGMbe9.js.map} +1 -1
  77. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-m2w1nBbY.js → mindmap-definition-YRQLILUH-sDQWtZwL.js} +4 -4
  78. package/webapp/dist/assets/{mindmap-definition-YRQLILUH-m2w1nBbY.js.map → mindmap-definition-YRQLILUH-sDQWtZwL.js.map} +1 -1
  79. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-ByoyS2as.js → pieDiagram-SKSYHLDU-CxO-PR0P.js} +8 -8
  80. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-ByoyS2as.js.map → pieDiagram-SKSYHLDU-CxO-PR0P.js.map} +1 -1
  81. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-BnKSsLfA.js → quadrantDiagram-337W2JSQ-2eCl6G-9.js} +3 -3
  82. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-BnKSsLfA.js.map → quadrantDiagram-337W2JSQ-2eCl6G-9.js.map} +1 -1
  83. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-jU2C7qJN.js → requirementDiagram-Z7DCOOCP-BZP0MViS.js} +4 -4
  84. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-jU2C7qJN.js.map → requirementDiagram-Z7DCOOCP-BZP0MViS.js.map} +1 -1
  85. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-R175tX8b.js → sankeyDiagram-WA2Y5GQK-BFByQmrg.js} +2 -2
  86. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-R175tX8b.js.map → sankeyDiagram-WA2Y5GQK-BFByQmrg.js.map} +1 -1
  87. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-CBhN4j2Q.js → sequenceDiagram-2WXFIKYE-vs-caW9J.js} +4 -4
  88. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-CBhN4j2Q.js.map → sequenceDiagram-2WXFIKYE-vs-caW9J.js.map} +1 -1
  89. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DZSAyRfJ.js → stateDiagram-RAJIS63D-B_yOKRoN.js} +9 -9
  90. package/webapp/dist/assets/{stateDiagram-RAJIS63D-DZSAyRfJ.js.map → stateDiagram-RAJIS63D-B_yOKRoN.js.map} +1 -1
  91. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-x29lKJpl.js → stateDiagram-v2-FVOUBMTO-B285fcqL.js} +5 -5
  92. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-x29lKJpl.js.map → stateDiagram-v2-FVOUBMTO-B285fcqL.js.map} +1 -1
  93. package/webapp/dist/assets/{timeline-definition-YZTLITO2-BQR2qEXt.js → timeline-definition-YZTLITO2-B_yCavMb.js} +3 -3
  94. package/webapp/dist/assets/{timeline-definition-YZTLITO2-BQR2qEXt.js.map → timeline-definition-YZTLITO2-B_yCavMb.js.map} +1 -1
  95. package/webapp/dist/assets/{treemap-KZPCXAKY-b823qTE1.js → treemap-KZPCXAKY-cErPVx9g.js} +5 -5
  96. package/webapp/dist/assets/{treemap-KZPCXAKY-b823qTE1.js.map → treemap-KZPCXAKY-cErPVx9g.js.map} +1 -1
  97. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-BrxPNUYz.js → vennDiagram-LZ73GAT5-C9qgK3p0.js} +2 -2
  98. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-BrxPNUYz.js.map → vennDiagram-LZ73GAT5-C9qgK3p0.js.map} +1 -1
  99. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-BgOzlz6Z.js → xychartDiagram-JWTSCODW-B-gCl1Yj.js} +3 -3
  100. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-BgOzlz6Z.js.map → xychartDiagram-JWTSCODW-B-gCl1Yj.js.map} +1 -1
  101. package/webapp/dist/index.html +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"graph-CqFTrHii.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-_a0YpojF.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-Cwz7pFDo.js","assets/graph-CqFTrHii.js","assets/_baseUniq-C8zyOqn7.js","assets/layout-VOBFudHV.js","assets/_basePickBy-mFK6EVZU.js","assets/clone-D3QHqx6z.js","assets/cose-bilkent-S5V4N54A-D2dZHRG3.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-IC4MRINW-CLkxlY6N.js","assets/chunk-JSJVCQXG-DVnVflN-.js","assets/flowDiagram-PKNHOUZH-C5Hi85ST.js","assets/chunk-FMBD7UC4-CB17a_Ki.js","assets/chunk-55IACEB6-B59p6vzX.js","assets/chunk-KX2RTZJC-D9_5LvIO.js","assets/channel-CqGyLCM_.js","assets/erDiagram-INFDFZHY-DCnHsk_Z.js","assets/gitGraphDiagram-K3NZZRJ6-Ct5XDpFu.js","assets/chunk-4BX2VUAB-BNsJpMh4.js","assets/chunk-QZHKN3VN-WCLg8cNX.js","assets/treemap-KZPCXAKY-b823qTE1.js","assets/ganttDiagram-A5KZAMGK-vT15RP6A.js","assets/linear-BtBp93s2.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-LFFYTUFH-DlyOw8IT.js","assets/pieDiagram-SKSYHLDU-ByoyS2as.js","assets/arc-Vdl3uhV8.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-337W2JSQ-BnKSsLfA.js","assets/xychartDiagram-JWTSCODW-BgOzlz6Z.js","assets/requirementDiagram-Z7DCOOCP-jU2C7qJN.js","assets/sequenceDiagram-2WXFIKYE-CBhN4j2Q.js","assets/classDiagram-VBA2DB6C-DWQ1VnaI.js","assets/chunk-WL4C6EOR-BFkz_P__.js","assets/classDiagram-v2-RAHNMMFH-DWQ1VnaI.js","assets/stateDiagram-RAJIS63D-DZSAyRfJ.js","assets/chunk-NQ4KR5QH-CZWI2G2c.js","assets/stateDiagram-v2-FVOUBMTO-x29lKJpl.js","assets/journeyDiagram-4ABVD52K-B95gnBKj.js","assets/timeline-definition-YZTLITO2-BQR2qEXt.js","assets/mindmap-definition-YRQLILUH-m2w1nBbY.js","assets/kanban-definition-K7BYSVSG-DQ2gfPUK.js","assets/sankeyDiagram-WA2Y5GQK-R175tX8b.js","assets/diagram-P4PSJMXO-ChwZDZYa.js","assets/diagram-IFDJBPK2-CZ1KR1hO.js","assets/blockDiagram-WCTKOSBZ-Bozcnodw.js","assets/architectureDiagram-2XIMDMQ5-D3Xtb8u_.js","assets/diagram-E7M64L7V-C6z0VVoW.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KLK3FWXG-DxM19yfA.js","assets/graph-_a0YpojF.js","assets/_baseUniq-nq34n_7W.js","assets/layout-BRJaSqhR.js","assets/_basePickBy-zyTFuJGa.js","assets/clone-C9MfpI1S.js","assets/cose-bilkent-S5V4N54A-CCYyTSie.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-IC4MRINW-75vPtXd7.js","assets/chunk-JSJVCQXG-s2a971Od.js","assets/flowDiagram-PKNHOUZH-BFDDBCeb.js","assets/chunk-FMBD7UC4-X9ms5_sJ.js","assets/chunk-55IACEB6-GMAfwcRQ.js","assets/chunk-KX2RTZJC-CSSBs5H9.js","assets/channel-lMsMuju8.js","assets/erDiagram-INFDFZHY-eI9rTfbL.js","assets/gitGraphDiagram-K3NZZRJ6-DOiQN8_s.js","assets/chunk-4BX2VUAB-I371XlIM.js","assets/chunk-QZHKN3VN-3ZZehtFv.js","assets/treemap-KZPCXAKY-cErPVx9g.js","assets/ganttDiagram-A5KZAMGK-ClhbFgCt.js","assets/linear-DyNGMbe9.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-LFFYTUFH-txkiQJKc.js","assets/pieDiagram-SKSYHLDU-CxO-PR0P.js","assets/arc-Bv7_22Od.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-337W2JSQ-2eCl6G-9.js","assets/xychartDiagram-JWTSCODW-B-gCl1Yj.js","assets/requirementDiagram-Z7DCOOCP-BZP0MViS.js","assets/sequenceDiagram-2WXFIKYE-vs-caW9J.js","assets/classDiagram-VBA2DB6C-CTxhuDjN.js","assets/chunk-WL4C6EOR-D_AtipPw.js","assets/classDiagram-v2-RAHNMMFH-CTxhuDjN.js","assets/stateDiagram-RAJIS63D-B_yOKRoN.js","assets/chunk-NQ4KR5QH-B8-jtfW1.js","assets/stateDiagram-v2-FVOUBMTO-B285fcqL.js","assets/journeyDiagram-4ABVD52K-BdmmINf5.js","assets/timeline-definition-YZTLITO2-B_yCavMb.js","assets/mindmap-definition-YRQLILUH-sDQWtZwL.js","assets/kanban-definition-K7BYSVSG-C-S70Yrl.js","assets/sankeyDiagram-WA2Y5GQK-BFByQmrg.js","assets/diagram-P4PSJMXO-BKd75i65.js","assets/diagram-IFDJBPK2-Cdj6m54B.js","assets/blockDiagram-WCTKOSBZ-CX4Uu1s4.js","assets/architectureDiagram-2XIMDMQ5-CQe-mbPP.js","assets/diagram-E7M64L7V-BSc4Txf5.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);
@@ -99530,12 +99530,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
99530
99530
  registerLayoutLoaders([
99531
99531
  {
99532
99532
  name: "dagre",
99533
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-KLK3FWXG-Cwz7pFDo.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
99533
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-KLK3FWXG-DxM19yfA.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
99534
99534
  },
99535
99535
  ...[
99536
99536
  {
99537
99537
  name: "cose-bilkent",
99538
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-D2dZHRG3.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
99538
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-CCYyTSie.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
99539
99539
  }
99540
99540
  ]
99541
99541
  ]);
@@ -99975,7 +99975,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
99975
99975
  }, "detector");
99976
99976
  var loader = /* @__PURE__ */ __name(async () => {
99977
99977
  const { diagram: diagram2 } = await __vitePreload(async () => {
99978
- const { diagram: diagram22 } = await import("./c4Diagram-IC4MRINW-CLkxlY6N.js");
99978
+ const { diagram: diagram22 } = await import("./c4Diagram-IC4MRINW-75vPtXd7.js");
99979
99979
  return { diagram: diagram22 };
99980
99980
  }, true ? __vite__mapDeps([8,9]) : void 0);
99981
99981
  return { id: id$1, diagram: diagram2 };
@@ -99995,7 +99995,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
99995
99995
  }, "detector");
99996
99996
  var loader2 = /* @__PURE__ */ __name(async () => {
99997
99997
  const { diagram: diagram2 } = await __vitePreload(async () => {
99998
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-C5Hi85ST.js");
99998
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-BFDDBCeb.js");
99999
99999
  return { diagram: diagram22 };
100000
100000
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
100001
100001
  return { id: id2, diagram: diagram2 };
@@ -100021,7 +100021,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
100021
100021
  }, "detector");
100022
100022
  var loader3 = /* @__PURE__ */ __name(async () => {
100023
100023
  const { diagram: diagram2 } = await __vitePreload(async () => {
100024
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-C5Hi85ST.js");
100024
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-BFDDBCeb.js");
100025
100025
  return { diagram: diagram22 };
100026
100026
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
100027
100027
  return { id: id3, diagram: diagram2 };
@@ -100038,7 +100038,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
100038
100038
  }, "detector");
100039
100039
  var loader4 = /* @__PURE__ */ __name(async () => {
100040
100040
  const { diagram: diagram2 } = await __vitePreload(async () => {
100041
- const { diagram: diagram22 } = await import("./erDiagram-INFDFZHY-DCnHsk_Z.js");
100041
+ const { diagram: diagram22 } = await import("./erDiagram-INFDFZHY-eI9rTfbL.js");
100042
100042
  return { diagram: diagram22 };
100043
100043
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
100044
100044
  return { id: id4, diagram: diagram2 };
@@ -100055,7 +100055,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
100055
100055
  }, "detector");
100056
100056
  var loader5 = /* @__PURE__ */ __name(async () => {
100057
100057
  const { diagram: diagram2 } = await __vitePreload(async () => {
100058
- const { diagram: diagram22 } = await import("./gitGraphDiagram-K3NZZRJ6-Ct5XDpFu.js");
100058
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-K3NZZRJ6-DOiQN8_s.js");
100059
100059
  return { diagram: diagram22 };
100060
100060
  }, true ? __vite__mapDeps([16,17,18,19,2,4,5]) : void 0);
100061
100061
  return { id: id5, diagram: diagram2 };
@@ -100072,7 +100072,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
100072
100072
  }, "detector");
100073
100073
  var loader6 = /* @__PURE__ */ __name(async () => {
100074
100074
  const { diagram: diagram2 } = await __vitePreload(async () => {
100075
- const { diagram: diagram22 } = await import("./ganttDiagram-A5KZAMGK-vT15RP6A.js");
100075
+ const { diagram: diagram22 } = await import("./ganttDiagram-A5KZAMGK-ClhbFgCt.js");
100076
100076
  return { diagram: diagram22 };
100077
100077
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
100078
100078
  return { id: id6, diagram: diagram2 };
@@ -100089,7 +100089,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
100089
100089
  }, "detector");
100090
100090
  var loader7 = /* @__PURE__ */ __name(async () => {
100091
100091
  const { diagram: diagram2 } = await __vitePreload(async () => {
100092
- const { diagram: diagram22 } = await import("./infoDiagram-LFFYTUFH-DlyOw8IT.js");
100092
+ const { diagram: diagram22 } = await import("./infoDiagram-LFFYTUFH-txkiQJKc.js");
100093
100093
  return { diagram: diagram22 };
100094
100094
  }, true ? __vite__mapDeps([24,19,2,4,5]) : void 0);
100095
100095
  return { id: id7, diagram: diagram2 };
@@ -100105,7 +100105,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
100105
100105
  }, "detector");
100106
100106
  var loader8 = /* @__PURE__ */ __name(async () => {
100107
100107
  const { diagram: diagram2 } = await __vitePreload(async () => {
100108
- const { diagram: diagram22 } = await import("./pieDiagram-SKSYHLDU-ByoyS2as.js");
100108
+ const { diagram: diagram22 } = await import("./pieDiagram-SKSYHLDU-CxO-PR0P.js");
100109
100109
  return { diagram: diagram22 };
100110
100110
  }, true ? __vite__mapDeps([25,17,19,2,4,5,26,27,22]) : void 0);
100111
100111
  return { id: id8, diagram: diagram2 };
@@ -100121,7 +100121,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
100121
100121
  }, "detector");
100122
100122
  var loader9 = /* @__PURE__ */ __name(async () => {
100123
100123
  const { diagram: diagram2 } = await __vitePreload(async () => {
100124
- const { diagram: diagram22 } = await import("./quadrantDiagram-337W2JSQ-BnKSsLfA.js");
100124
+ const { diagram: diagram22 } = await import("./quadrantDiagram-337W2JSQ-2eCl6G-9.js");
100125
100125
  return { diagram: diagram22 };
100126
100126
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
100127
100127
  return { id: id9, diagram: diagram2 };
@@ -100138,7 +100138,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
100138
100138
  }, "detector");
100139
100139
  var loader10 = /* @__PURE__ */ __name(async () => {
100140
100140
  const { diagram: diagram2 } = await __vitePreload(async () => {
100141
- const { diagram: diagram22 } = await import("./xychartDiagram-JWTSCODW-BgOzlz6Z.js");
100141
+ const { diagram: diagram22 } = await import("./xychartDiagram-JWTSCODW-B-gCl1Yj.js");
100142
100142
  return { diagram: diagram22 };
100143
100143
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
100144
100144
  return { id: id10, diagram: diagram2 };
@@ -100155,7 +100155,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
100155
100155
  }, "detector");
100156
100156
  var loader11 = /* @__PURE__ */ __name(async () => {
100157
100157
  const { diagram: diagram2 } = await __vitePreload(async () => {
100158
- const { diagram: diagram22 } = await import("./requirementDiagram-Z7DCOOCP-jU2C7qJN.js");
100158
+ const { diagram: diagram22 } = await import("./requirementDiagram-Z7DCOOCP-BZP0MViS.js");
100159
100159
  return { diagram: diagram22 };
100160
100160
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
100161
100161
  return { id: id11, diagram: diagram2 };
@@ -100172,7 +100172,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
100172
100172
  }, "detector");
100173
100173
  var loader12 = /* @__PURE__ */ __name(async () => {
100174
100174
  const { diagram: diagram2 } = await __vitePreload(async () => {
100175
- const { diagram: diagram22 } = await import("./sequenceDiagram-2WXFIKYE-CBhN4j2Q.js");
100175
+ const { diagram: diagram22 } = await import("./sequenceDiagram-2WXFIKYE-vs-caW9J.js");
100176
100176
  return { diagram: diagram22 };
100177
100177
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
100178
100178
  return { id: id12, diagram: diagram2 };
@@ -100192,7 +100192,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
100192
100192
  }, "detector");
100193
100193
  var loader13 = /* @__PURE__ */ __name(async () => {
100194
100194
  const { diagram: diagram2 } = await __vitePreload(async () => {
100195
- const { diagram: diagram22 } = await import("./classDiagram-VBA2DB6C-DWQ1VnaI.js");
100195
+ const { diagram: diagram22 } = await import("./classDiagram-VBA2DB6C-CTxhuDjN.js");
100196
100196
  return { diagram: diagram22 };
100197
100197
  }, true ? __vite__mapDeps([32,33,11,9,12,13]) : void 0);
100198
100198
  return { id: id13, diagram: diagram2 };
@@ -100212,7 +100212,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
100212
100212
  }, "detector");
100213
100213
  var loader14 = /* @__PURE__ */ __name(async () => {
100214
100214
  const { diagram: diagram2 } = await __vitePreload(async () => {
100215
- const { diagram: diagram22 } = await import("./classDiagram-v2-RAHNMMFH-DWQ1VnaI.js");
100215
+ const { diagram: diagram22 } = await import("./classDiagram-v2-RAHNMMFH-CTxhuDjN.js");
100216
100216
  return { diagram: diagram22 };
100217
100217
  }, true ? __vite__mapDeps([34,33,11,9,12,13]) : void 0);
100218
100218
  return { id: id14, diagram: diagram2 };
@@ -100232,7 +100232,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
100232
100232
  }, "detector");
100233
100233
  var loader15 = /* @__PURE__ */ __name(async () => {
100234
100234
  const { diagram: diagram2 } = await __vitePreload(async () => {
100235
- const { diagram: diagram22 } = await import("./stateDiagram-RAJIS63D-DZSAyRfJ.js");
100235
+ const { diagram: diagram22 } = await import("./stateDiagram-RAJIS63D-B_yOKRoN.js");
100236
100236
  return { diagram: diagram22 };
100237
100237
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
100238
100238
  return { id: id15, diagram: diagram2 };
@@ -100255,7 +100255,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
100255
100255
  }, "detector");
100256
100256
  var loader16 = /* @__PURE__ */ __name(async () => {
100257
100257
  const { diagram: diagram2 } = await __vitePreload(async () => {
100258
- const { diagram: diagram22 } = await import("./stateDiagram-v2-FVOUBMTO-x29lKJpl.js");
100258
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-FVOUBMTO-B285fcqL.js");
100259
100259
  return { diagram: diagram22 };
100260
100260
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
100261
100261
  return { id: id16, diagram: diagram2 };
@@ -100272,7 +100272,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
100272
100272
  }, "detector");
100273
100273
  var loader17 = /* @__PURE__ */ __name(async () => {
100274
100274
  const { diagram: diagram2 } = await __vitePreload(async () => {
100275
- const { diagram: diagram22 } = await import("./journeyDiagram-4ABVD52K-B95gnBKj.js");
100275
+ const { diagram: diagram22 } = await import("./journeyDiagram-4ABVD52K-BdmmINf5.js");
100276
100276
  return { diagram: diagram22 };
100277
100277
  }, true ? __vite__mapDeps([38,11,9,26]) : void 0);
100278
100278
  return { id: id17, diagram: diagram2 };
@@ -100342,7 +100342,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
100342
100342
  }, "detector");
100343
100343
  var loader18 = /* @__PURE__ */ __name(async () => {
100344
100344
  const { diagram: diagram2 } = await __vitePreload(async () => {
100345
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-C5Hi85ST.js");
100345
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-BFDDBCeb.js");
100346
100346
  return { diagram: diagram22 };
100347
100347
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
100348
100348
  return { id: id18, diagram: diagram2 };
@@ -100359,7 +100359,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
100359
100359
  }, "detector");
100360
100360
  var loader19 = /* @__PURE__ */ __name(async () => {
100361
100361
  const { diagram: diagram2 } = await __vitePreload(async () => {
100362
- const { diagram: diagram22 } = await import("./timeline-definition-YZTLITO2-BQR2qEXt.js");
100362
+ const { diagram: diagram22 } = await import("./timeline-definition-YZTLITO2-B_yCavMb.js");
100363
100363
  return { diagram: diagram22 };
100364
100364
  }, true ? __vite__mapDeps([39,26]) : void 0);
100365
100365
  return { id: id19, diagram: diagram2 };
@@ -100376,7 +100376,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
100376
100376
  }, "detector");
100377
100377
  var loader20 = /* @__PURE__ */ __name(async () => {
100378
100378
  const { diagram: diagram2 } = await __vitePreload(async () => {
100379
- const { diagram: diagram22 } = await import("./mindmap-definition-YRQLILUH-m2w1nBbY.js");
100379
+ const { diagram: diagram22 } = await import("./mindmap-definition-YRQLILUH-sDQWtZwL.js");
100380
100380
  return { diagram: diagram22 };
100381
100381
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
100382
100382
  return { id: id20, diagram: diagram2 };
@@ -100393,7 +100393,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
100393
100393
  }, "detector");
100394
100394
  var loader21 = /* @__PURE__ */ __name(async () => {
100395
100395
  const { diagram: diagram2 } = await __vitePreload(async () => {
100396
- const { diagram: diagram22 } = await import("./kanban-definition-K7BYSVSG-DQ2gfPUK.js");
100396
+ const { diagram: diagram22 } = await import("./kanban-definition-K7BYSVSG-C-S70Yrl.js");
100397
100397
  return { diagram: diagram22 };
100398
100398
  }, true ? __vite__mapDeps([41,11]) : void 0);
100399
100399
  return { id: id21, diagram: diagram2 };
@@ -100410,7 +100410,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
100410
100410
  }, "detector");
100411
100411
  var loader22 = /* @__PURE__ */ __name(async () => {
100412
100412
  const { diagram: diagram2 } = await __vitePreload(async () => {
100413
- const { diagram: diagram22 } = await import("./sankeyDiagram-WA2Y5GQK-R175tX8b.js");
100413
+ const { diagram: diagram22 } = await import("./sankeyDiagram-WA2Y5GQK-BFByQmrg.js");
100414
100414
  return { diagram: diagram22 };
100415
100415
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
100416
100416
  return { id: id22, diagram: diagram2 };
@@ -100427,7 +100427,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
100427
100427
  }, "detector");
100428
100428
  var loader23 = /* @__PURE__ */ __name(async () => {
100429
100429
  const { diagram: diagram2 } = await __vitePreload(async () => {
100430
- const { diagram: diagram22 } = await import("./diagram-P4PSJMXO-ChwZDZYa.js");
100430
+ const { diagram: diagram22 } = await import("./diagram-P4PSJMXO-BKd75i65.js");
100431
100431
  return { diagram: diagram22 };
100432
100432
  }, true ? __vite__mapDeps([43,17,19,2,4,5]) : void 0);
100433
100433
  return { id: id23, diagram: diagram2 };
@@ -100443,7 +100443,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
100443
100443
  }, "detector");
100444
100444
  var loader24 = /* @__PURE__ */ __name(async () => {
100445
100445
  const { diagram: diagram2 } = await __vitePreload(async () => {
100446
- const { diagram: diagram22 } = await import("./diagram-IFDJBPK2-CZ1KR1hO.js");
100446
+ const { diagram: diagram22 } = await import("./diagram-IFDJBPK2-Cdj6m54B.js");
100447
100447
  return { diagram: diagram22 };
100448
100448
  }, true ? __vite__mapDeps([44,17,19,2,4,5]) : void 0);
100449
100449
  return { id: id24, diagram: diagram2 };
@@ -100459,7 +100459,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
100459
100459
  }, "detector");
100460
100460
  var loader25 = /* @__PURE__ */ __name(async () => {
100461
100461
  const { diagram: diagram2 } = await __vitePreload(async () => {
100462
- const { diagram: diagram22 } = await import("./blockDiagram-WCTKOSBZ-Bozcnodw.js");
100462
+ const { diagram: diagram22 } = await import("./blockDiagram-WCTKOSBZ-CX4Uu1s4.js");
100463
100463
  return { diagram: diagram22 };
100464
100464
  }, true ? __vite__mapDeps([45,11,5,2,1,14]) : void 0);
100465
100465
  return { id: id25, diagram: diagram2 };
@@ -100476,7 +100476,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
100476
100476
  }, "detector");
100477
100477
  var loader26 = /* @__PURE__ */ __name(async () => {
100478
100478
  const { diagram: diagram2 } = await __vitePreload(async () => {
100479
- const { diagram: diagram22 } = await import("./architectureDiagram-2XIMDMQ5-D3Xtb8u_.js");
100479
+ const { diagram: diagram22 } = await import("./architectureDiagram-2XIMDMQ5-CQe-mbPP.js");
100480
100480
  return { diagram: diagram22 };
100481
100481
  }, true ? __vite__mapDeps([46,17,19,2,4,5,7]) : void 0);
100482
100482
  return { id: id26, diagram: diagram2 };
@@ -100493,7 +100493,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
100493
100493
  }, "detector");
100494
100494
  var loader27 = /* @__PURE__ */ __name(async () => {
100495
100495
  const { diagram: diagram2 } = await __vitePreload(async () => {
100496
- const { diagram: diagram22 } = await import("./ishikawaDiagram-PHBUUO56-iZCVn19K.js");
100496
+ const { diagram: diagram22 } = await import("./ishikawaDiagram-PHBUUO56-D91OZx5x.js");
100497
100497
  return { diagram: diagram22 };
100498
100498
  }, true ? [] : void 0);
100499
100499
  return { id: id27, diagram: diagram2 };
@@ -100509,7 +100509,7 @@ var detector28 = /* @__PURE__ */ __name((txt) => {
100509
100509
  }, "detector");
100510
100510
  var loader28 = /* @__PURE__ */ __name(async () => {
100511
100511
  const { diagram: diagram2 } = await __vitePreload(async () => {
100512
- const { diagram: diagram22 } = await import("./vennDiagram-LZ73GAT5-BrxPNUYz.js");
100512
+ const { diagram: diagram22 } = await import("./vennDiagram-LZ73GAT5-C9qgK3p0.js");
100513
100513
  return { diagram: diagram22 };
100514
100514
  }, true ? [] : void 0);
100515
100515
  return { id: id28, diagram: diagram2 };
@@ -100526,7 +100526,7 @@ var detector29 = /* @__PURE__ */ __name((txt) => {
100526
100526
  }, "detector");
100527
100527
  var loader29 = /* @__PURE__ */ __name(async () => {
100528
100528
  const { diagram: diagram2 } = await __vitePreload(async () => {
100529
- const { diagram: diagram22 } = await import("./diagram-E7M64L7V-C6z0VVoW.js");
100529
+ const { diagram: diagram22 } = await import("./diagram-E7M64L7V-BSc4Txf5.js");
100530
100530
  return { diagram: diagram22 };
100531
100531
  }, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
100532
100532
  return { id: id29, diagram: diagram2 };
@@ -127047,34 +127047,28 @@ ${content}`;
127047
127047
  if (!normalizedDialog) {
127048
127048
  return;
127049
127049
  }
127050
- let status = this.getCurrentDialogActionStatus();
127051
- if (status === null) {
127052
- const resolved = await this.apiClient.resolveDialogStatus(
127053
- normalizedDialog.rootId,
127054
- normalizedDialog.selfId
127055
- );
127056
- if (!resolved.success || !resolved.data) {
127057
- if (resolved.status === 401 || resolved.status === 403) {
127058
- this.onAuthRejected("api");
127059
- return;
127060
- }
127061
- const t2 = getUiStrings(this.uiLanguage);
127062
- if (resolved.status === 404) {
127063
- this.removeUnavailableDialogLocally(normalizedDialog.rootId, normalizedDialog.selfId);
127064
- this.showToast(
127065
- `${t2.dialogUnavailableRemovedPrefix} ${normalizedDialog.selfId}`,
127066
- "warning"
127067
- );
127068
- return;
127069
- }
127070
- this.showToast(
127071
- `${t2.deepLinkDialogLoadFailedPrefix} ${normalizedDialog.selfId}: ${resolved.error || t2.unknownError}`,
127072
- "error"
127073
- );
127050
+ const resolved = await this.apiClient.resolveDialogStatus(
127051
+ normalizedDialog.rootId,
127052
+ normalizedDialog.selfId
127053
+ );
127054
+ if (!resolved.success || !resolved.data) {
127055
+ if (resolved.status === 401 || resolved.status === 403) {
127056
+ this.onAuthRejected("api");
127057
+ return;
127058
+ }
127059
+ const t2 = getUiStrings(this.uiLanguage);
127060
+ if (resolved.status === 404) {
127061
+ this.removeUnavailableDialogLocally(normalizedDialog.rootId, normalizedDialog.selfId);
127062
+ this.showToast(`${t2.dialogUnavailableRemovedPrefix} ${normalizedDialog.selfId}`, "warning");
127074
127063
  return;
127075
127064
  }
127076
- status = resolved.data.status;
127065
+ this.showToast(
127066
+ `${t2.deepLinkDialogLoadFailedPrefix} ${normalizedDialog.selfId}: ${resolved.error || t2.unknownError}`,
127067
+ "error"
127068
+ );
127069
+ return;
127077
127070
  }
127071
+ const status = resolved.data.status;
127078
127072
  this.currentDialogStatus = status;
127079
127073
  this.wsManager.sendRaw({
127080
127074
  type: "display_dialog",
@@ -127902,6 +127896,8 @@ ${content}`;
127902
127896
  if (!isForCurrentDialog) {
127903
127897
  return true;
127904
127898
  }
127899
+ const readyStatus = this.requirePersistableStatus(readyMsg.dialog.status, "dialog_ready");
127900
+ this.currentDialogStatus = readyStatus;
127905
127901
  const nextDialog = {
127906
127902
  selfId: readyMsg.dialog.selfId,
127907
127903
  rootId: readyMsg.dialog.rootId,
@@ -127914,6 +127910,7 @@ ${content}`;
127914
127910
  assignmentFromAsker: readyMsg.assignmentFromAsker
127915
127911
  };
127916
127912
  this.currentDialog = nextDialog;
127913
+ this.updateInputPanelVisibility();
127917
127914
  this.applyDiligenceState(nextDiligenceState);
127918
127915
  this.diligenceRtwsDirty = false;
127919
127916
  this.updateBottomPanelFooterUi();
@@ -131171,4 +131168,4 @@ export {
131171
131168
  purify as y,
131172
131169
  clear$2 as z
131173
131170
  };
131174
- //# sourceMappingURL=index-C_PzQ5W5.js.map
131171
+ //# sourceMappingURL=index-Dou-k_rC.js.map