@next-bricks/diagram 0.66.2 → 0.67.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +3 -3
- package/dist/chunks/{1045.fc9b1386.js → 1045.9922394f.js} +2 -2
- package/dist/chunks/{1045.fc9b1386.js.map → 1045.9922394f.js.map} +1 -1
- package/dist/chunks/{114.3dc39f03.js → 114.55d15cc4.js} +2 -2
- package/dist/chunks/{114.3dc39f03.js.map → 114.55d15cc4.js.map} +1 -1
- package/dist/chunks/{1370.ff678c2c.js → 1370.1496da04.js} +2 -2
- package/dist/chunks/{1370.ff678c2c.js.map → 1370.1496da04.js.map} +1 -1
- package/dist/chunks/3171.01b43f94.js +2 -0
- package/dist/chunks/{3171.e50a1a47.js.map → 3171.01b43f94.js.map} +1 -1
- package/dist/chunks/{3233.03396716.js → 3233.91b64cbf.js} +3 -3
- package/dist/chunks/{3233.03396716.js.map → 3233.91b64cbf.js.map} +1 -1
- package/dist/chunks/{4306.ace26fca.js → 4306.2443e1cb.js} +2 -2
- package/dist/chunks/4306.2443e1cb.js.map +1 -0
- package/dist/chunks/{8933.588c16c3.js → 4603.1e380ebe.js} +2 -2
- package/dist/chunks/{8933.588c16c3.js.map → 4603.1e380ebe.js.map} +1 -1
- package/dist/chunks/{7146.f0885532.js → 4765.b570abab.js} +2 -2
- package/dist/chunks/4765.b570abab.js.map +1 -0
- package/dist/chunks/{7218.bfec6b00.js → 4837.1533c6b0.js} +2 -2
- package/dist/chunks/{7218.bfec6b00.js.map → 4837.1533c6b0.js.map} +1 -1
- package/dist/chunks/{551.875ebe83.js → 551.531ef360.js} +2 -2
- package/dist/chunks/{551.875ebe83.js.map → 551.531ef360.js.map} +1 -1
- package/dist/chunks/5552.185e1236.js +2 -0
- package/dist/chunks/{5552.2d112e92.js.map → 5552.185e1236.js.map} +1 -1
- package/dist/chunks/{4765.b42efb0d.js → 7146.7d2da15a.js} +2 -2
- package/dist/chunks/7146.7d2da15a.js.map +1 -0
- package/dist/chunks/{4837.55cb98e9.js → 7218.7bdc6392.js} +2 -2
- package/dist/chunks/{4837.55cb98e9.js.map → 7218.7bdc6392.js.map} +1 -1
- package/dist/chunks/{7733.49c9fd7f.js → 7733.037d6b91.js} +2 -2
- package/dist/chunks/{7733.49c9fd7f.js.map → 7733.037d6b91.js.map} +1 -1
- package/dist/chunks/{7920.367555e2.js → 7920.8fd94cae.js} +3 -3
- package/dist/chunks/7920.8fd94cae.js.map +1 -0
- package/dist/chunks/871.271c0109.js +2 -0
- package/dist/chunks/871.271c0109.js.map +1 -0
- package/dist/chunks/{8989.1bb9349d.js → 8989.2b239acc.js} +2 -2
- package/dist/chunks/8989.2b239acc.js.map +1 -0
- package/dist/chunks/9140.dd4f8e2e.js +3 -0
- package/dist/chunks/9140.dd4f8e2e.js.map +1 -0
- package/dist/chunks/9711.3db3a4d9.js +2 -0
- package/dist/chunks/9711.3db3a4d9.js.map +1 -0
- package/dist/chunks/editable-label.aa7a3018.js +3 -0
- package/dist/chunks/editable-label.aa7a3018.js.map +1 -0
- package/dist/chunks/eo-draw-canvas.7b3cecc3.js +2 -0
- package/dist/chunks/eo-draw-canvas.7b3cecc3.js.map +1 -0
- package/dist/chunks/{experimental-node.6f41ffc5.js → experimental-node.533e95c7.js} +2 -2
- package/dist/chunks/experimental-node.533e95c7.js.map +1 -0
- package/dist/chunks/main.039270a0.js +2 -0
- package/dist/chunks/{main.d0702b7d.js.map → main.039270a0.js.map} +1 -1
- package/dist/examples.json +3 -3
- package/dist/index.d02e1663.js +2 -0
- package/dist/index.d02e1663.js.map +1 -0
- package/dist/manifest.json +151 -139
- package/dist/types.json +5262 -5244
- package/dist-types/draw-canvas/index.d.ts +2 -0
- package/package.json +3 -3
- package/dist/chunks/3171.e50a1a47.js +0 -2
- package/dist/chunks/4306.ace26fca.js.map +0 -1
- package/dist/chunks/4765.b42efb0d.js.map +0 -1
- package/dist/chunks/5552.2d112e92.js +0 -2
- package/dist/chunks/7146.f0885532.js.map +0 -1
- package/dist/chunks/7920.367555e2.js.map +0 -1
- package/dist/chunks/871.6fee04f1.js +0 -2
- package/dist/chunks/871.6fee04f1.js.map +0 -1
- package/dist/chunks/8989.1bb9349d.js.map +0 -1
- package/dist/chunks/9140.228d64fb.js +0 -3
- package/dist/chunks/9140.228d64fb.js.map +0 -1
- package/dist/chunks/9711.3e79c214.js +0 -2
- package/dist/chunks/9711.3e79c214.js.map +0 -1
- package/dist/chunks/editable-label.22f352be.js +0 -3
- package/dist/chunks/editable-label.22f352be.js.map +0 -1
- package/dist/chunks/eo-draw-canvas.e818c261.js +0 -2
- package/dist/chunks/eo-draw-canvas.e818c261.js.map +0 -1
- package/dist/chunks/experimental-node.6f41ffc5.js.map +0 -1
- package/dist/chunks/main.d0702b7d.js +0 -2
- package/dist/index.70d4285e.js +0 -2
- package/dist/index.70d4285e.js.map +0 -1
- /package/dist/chunks/{3233.03396716.js.LICENSE.txt → 3233.91b64cbf.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7920.367555e2.js.LICENSE.txt → 7920.8fd94cae.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9140.228d64fb.js.LICENSE.txt → 9140.dd4f8e2e.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{editable-label.22f352be.js.LICENSE.txt → editable-label.aa7a3018.js.LICENSE.txt} +0 -0
package/dist/examples.json
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
"diagram.editable-label": {
|
|
6
6
|
"doc": "构件 `diagram.editable-label`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: diagram.editable-label\nproperties:\n type: line\n label: Relation\nevents:\n label.change:\n action: message.success\n args:\n - \"<% `Label changed to: ${EVENT.detail}` %>\"\n# -- YAML DELIMITER (1nbbm8) --\n# <diagram.editable-label\n# type=\"line\"\n# label=\"Relation\"\n# id=\"brick-1\"\n# ></diagram.editable-label>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"label.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"success\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% `Label changed to: ${EVENT.detail}` %>\",\n# });\n# });\n# </script>\n# \n```\n"
|
|
7
7
|
},
|
|
8
|
-
"eo-display-canvas": {
|
|
9
|
-
"doc": "用于展示查看的画布构件。\n\n## Examples\n\n### Basic\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"decorator\",\n id: \"container-1\",\n decorator: \"container\",\n view: {\n x: 50,\n y: 400,\n width: 280,\n height: 120,\n direction: \"top\",\n text: \" 上层服务\"\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n data: {\n virtual: false,\n showStartArrow: false,\n strokeColor:\"red\",\n strokeWidth: 5,\n }\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"W\",\n data: {\n virtual: false,\n showStartArrow: true,\n strokeColor:\"pink\",\n animate:{\n useAnimate: true,\n duration: 4\n }\n }\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n showStartArrow: true,\n strokeColor:\"blue\",\n animate:{\n useAnimate: true\n }\n }\n },\n {\n type: \"edge\",\n source: \"W\",\n target: \"Z\",\n view: {\n entryPosition: { x: 0, y: 0.5 },\n exitPosition: {x: 0.5, y: 0}\n }\n }\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n containerId: [\"X\",\"Y\",\"Z\"].includes(id)?\"container-1\":undefined,\n data: {\n name: `Node ${id}`,\n },\n view: {\n x: Math.round(\n id === \"X\"\n ? 200 + Math.random() * 200\n : id === \"Y\"\n ? Math.random() * 300\n : 300 + Math.random() * 300\n ),\n y: (id === \"X\" ? 0 : 300) + Math.round((Math.random() * 200)),\n width: 60,\n height: 60,\n }\n }))\n ).concat([\n {\n type: \"decorator\",\n id: \"text-1\",\n decorator: \"text\",\n view: {\n x: 100,\n y: 120,\n width: 100,\n height: 20,\n text: \"Hello!\"\n },\n },\n ])\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: true\n dashed: <% DATA.edge?.data?.virtual %>\n strokeColor: <% DATA.edge?.data?.strokeColor %>\n showStartArrow: <% DATA.edge?.data?.showStartArrow %>\n strokeWidth: <% DATA.edge?.data?.strokeWidth %>\n animate: <% DATA.edge?.data?.animate %>\n showStartArrow: true\n markers:\n - placement: end\n type: circle\n - placement: start\n type: arrow\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# if: true,\n# dashed: \"<% DATA.edge?.data?.virtual %>\",\n# strokeColor: \"<% DATA.edge?.data?.strokeColor %>\",\n# showStartArrow: true,\n# strokeWidth: \"<% DATA.edge?.data?.strokeWidth %>\",\n# animate: \"<% DATA.edge?.data?.animate %>\",\n# markers: [\n# {\n# placement: \"end\",\n# type: \"circle\",\n# },\n# {\n# placement: \"start\",\n# type: \"arrow\",\n# },\n# ],\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n\n### Force layout\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n }\n },\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n data: {\n name: `Node ${id}`,\n },\n view: {\n width: 60,\n height: 60,\n }\n }))\n ).concat([\n {\n type: \"decorator\",\n id: \"text-1\",\n decorator: \"text\",\n view: {\n x: 100,\n y: 120,\n width: 100,\n height: 20,\n text: \"Hello!\"\n },\n },\n ])\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: force\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: <% DATA.edge.data?.virtual %>\n dashed: true\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"force\"\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# if: \"<% DATA.edge.data?.virtual %>\",\n# dashed: true,\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n\n### Dagre layout\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n view: {\n type: \"polyline\"\n }\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n }\n },\n {\n type: \"edge\",\n source: \"Z\",\n target: \"W\",\n },\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n data: {\n name: `Node ${id}`,\n },\n view: {\n width: 60,\n height: 60,\n }\n }))\n )\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: dagre\n layoutOptions:\n ranksep: 80\n nodesep: 80\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - dashed: <% !!DATA.edge.data?.virtual %>\n strokeColor: var(--palette-blue-6)\n overrides:\n active:\n strokeWidth: <% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\n strokeColor: cyan\n activeRelated:\n strokeWidth: <% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\n motion:\n shape: '<% DATA.edge.data?.virtual ? \"dot\" : \"triangle\" %>'\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"dagre\"\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.layoutOptions = {\n# ranksep: 80,\n# nodesep: 80,\n# };\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# dashed: \"<% !!DATA.edge.data?.virtual %>\",\n# strokeColor: \"var(--palette-blue-6)\",\n# overrides: {\n# active: {\n# strokeWidth: \"<% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\",\n# strokeColor: \"cyan\",\n# },\n# activeRelated: {\n# strokeWidth: \"<% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\",\n# motion: {\n# shape: '<% DATA.edge.data?.virtual ? \"dot\" : \"triangle\" %>',\n# },\n# },\n# },\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n\n### Degraded diagram\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n ((...seeds) => seeds.map((seed) => ({\n type: \"node\",\n id: seed,\n data: {\n name: seed,\n },\n })))(\n ...(\n new Array(500).fill(null).map((_, i) => String(i))\n )\n )\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: force\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: true\n dashed: <% DATA.edge?.data?.virtual %>\n strokeColor: <% DATA.edge?.data?.strokeColor %>\n showStartArrow: <% DATA.edge?.data?.showStartArrow %>\n strokeWidth: <% DATA.edge?.data?.strokeWidth %>\n animate: <% DATA.edge?.data?.animate %>\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"force\"\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# if: true,\n# dashed: \"<% DATA.edge?.data?.virtual %>\",\n# strokeColor: \"<% DATA.edge?.data?.strokeColor %>\",\n# showStartArrow: \"<% DATA.edge?.data?.showStartArrow %>\",\n# strokeWidth: \"<% DATA.edge?.data?.strokeWidth %>\",\n# animate: \"<% DATA.edge?.data?.animate %>\",\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n"
|
|
10
|
-
},
|
|
11
8
|
"eo-draw-canvas": {
|
|
12
9
|
"doc": "用于手工绘图的画布。\n\n注意:将配套另外一个用于展示的画布构件。\n\n## Examples\n\n### Basic\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"container-1\",\n decorator: \"container\",\n view: {\n direction: \"left\",\n text: \"上层服务\" ,\n level: 1\n },\n },\n {\n type: \"decorator\",\n id: \"container-2\",\n decorator: \"container\",\n view: {\n direction: \"left\",\n text: \"应用\" ,\n level: 2\n },\n },\n {\n type: \"decorator\",\n id: \"group-1\",\n decorator: \"group\",\n containerId: \"container-2\",\n view: {\n usePlus: true, \n },\n },\n {\n type: \"node\",\n id: \"G\",\n groupId: \"group-1\",\n data: {\n name: `Node G`, \n }, \n view: {\n width: 60,\n height: 60,\n }\n },\n {\n type: \"edge\", \n source: \"X\",\n target: \"Y\",\n },\n {\n type: \"edge\",\n source: \"Z\", \n target: \"W\",\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n }\n },\n ].concat(\n [\"A\",\"B\",\"C\",\"S\",\"D\",\"F\",\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n containerId: [\"W\",\"Z\",\"X\",\"Y\", \"W\"].includes(id)?\"container-1\":([\"A\",\"B\",].includes(id)?\"container-2\":null),\n groupId: [\"C\",\"S\",\"D\",\"F\",].includes(id)?\"group-1\":null,\n data: {\n name: `Node ${id}`,\n }, \n view: {\n x: [\"A\",\"B\",\"C\",\"S\",\"D\",\"F\",\"Z\",\"X\",\"Y\",].includes(id)?null:Math.round(\n id === \"X\"\n ? 200 + Math.random() * 200\n : id === \"Y\"\n ? Math.random() * 300\n : 300 + Math.random() * 300\n ),\n y: [\"A\",\"B\",\"C\",\"S\",\"D\",\"F\",\"Z\",\"X\",\"Y\"].includes(id)?null:(id === \"X\" ? 0 : 300) + Math.round((Math.random() * 200)),\n width: 60,\n height: 60,\n }\n }))\n ).concat([\n {\n type: \"decorator\",\n id: \"text-1\",\n decorator: \"text\", \n view: {\n x: 300,\n y: 120,\n width: 100,\n height: 20,\n text: \"Hello\\nWorld!\",\n style: {\n // 垂直书写(从右到左)\n writingMode: \"vertical-rl\",\n },\n },\n },\n ])\n %>\n - name: dragging\n - name: activeTarget\n - name: contextMenuDetail\n - name: scale\n value: 1\n children:\n - brick: div\n properties:\n style:\n width: 200px\n display: flex\n flexDirection: column\n gap: 1em\n border-right: \"1px solid var(--palette-gray-6)\"\n overflow: scroll\n children:\n - brick: eo-button\n properties:\n textContent: Add random nodes\n events:\n click:\n target: eo-draw-canvas\n method: addNodes\n args:\n - |\n <%\n ((...seeds) => seeds.map((seed) => ({\n id: seed,\n data: {\n name: String(seed),\n },\n })))(\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n )\n %>\n callback:\n success:\n action: console.log\n args:\n - Added nodes\n - <% EVENT.detail %>\n - brick: eo-button\n properties:\n textContent: Add nodes to container-1\n events:\n click:\n target: eo-draw-canvas\n method: addNodes\n args:\n - |\n <%\n ((...seeds) => seeds.map((seed) => ({\n id: seed,\n containerId: \"container-1\",\n data: {\n name: String(seed),\n },\n })))(\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n )\n %>\n callback:\n success:\n action: console.log\n args:\n - Added nodes\n - <% EVENT.detail %>\n - brick: eo-button\n properties:\n textContent: \"Add edge: Y => Z\"\n events:\n click:\n target: eo-draw-canvas\n method: addEdge\n args:\n - source: Y\n target: Z\n data:\n virtual: true\n - brick: :forEach\n dataSource:\n - X\n - Y\n children:\n - brick: eo-button\n properties:\n textContent: <% `Add nodes below ${ITEM}` %>\n events:\n click:\n target: eo-draw-canvas\n method: updateCells\n args:\n - |\n <%\n CTX.initialCells.concat([\n {\n type: \"edge\",\n source: ITEM,\n target: \"U\",\n },\n {\n type: \"edge\",\n source: ITEM,\n target: \"V\",\n },\n {\n type: \"node\",\n id: \"U\",\n data: {\n name: \"U\"\n }\n },\n {\n type: \"node\",\n id: \"V\",\n data: {\n name: \"V\"\n }\n },\n ])\n %>\n - reason: add-related-nodes\n parent: <% ITEM %>\n callback:\n success:\n action: console.log\n - brick: hr\n properties:\n style:\n width: 100%\n - brick: h3\n properties:\n textContent: Drag nodes below\n - brick: :forEach\n dataSource: |\n <%\n [\"A\", \"B\", \"C\"].map((id) => ({\n type: \"node\",\n id,\n data: {\n name: `Node ${id}`,\n },\n }))\n %>\n children:\n - brick: diagram.experimental-node\n properties:\n textContent: <% ITEM.data.name %>\n usage: library\n events:\n drag.move:\n action: context.replace\n args:\n - dragging\n - |\n <% {position: EVENT.detail, ...ITEM} %>\n drag.end:\n - action: context.replace\n args:\n - dragging\n - null\n - target: eo-draw-canvas\n method: dropNode\n args:\n - position: <% EVENT.detail %>\n id: <% ITEM.id %>\n data: <% ITEM.data %>\n callback:\n success:\n if: <% EVENT.detail %>\n then:\n action: message.success\n args:\n - <% JSON.stringify(EVENT.detail) %>\n else:\n action: message.warn\n args:\n - Unexpected drop position\n - brick: hr\n properties:\n style:\n width: 100%\n - brick: h3\n properties:\n textContent: Drag decorators below\n - brick: :forEach\n dataSource:\n - area\n - text\n - line\n - rect\n - container.top\n - container.right\n - container.bottom\n - container.left\n children:\n - brick: diagram.experimental-node\n properties:\n textContent: <% _.upperFirst(ITEM) %>\n usage: library\n events:\n drag.move:\n action: context.replace\n args:\n - dragging\n - |\n <% {position: EVENT.detail, type: \"decorator\", decorator: ITEM.split(\".\")[0]} %>\n drag.end:\n - action: context.replace\n args:\n - dragging\n - null\n - target: eo-draw-canvas\n method: dropDecorator\n args:\n - |\n <%\n ITEM === \"line\"\n ? {\n position: EVENT.detail,\n decorator: ITEM.split(\".\")[0],\n }\n : {\n position: EVENT.detail,\n decorator: ITEM.split(\".\")[0],\n text: _.upperFirst(ITEM),\n direction: ITEM.split(\".\").pop(),\n }\n %>\n callback:\n success:\n if: <% !EVENT.detail %>\n action: message.warn\n args:\n - Unexpected drop position\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-draw-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n allowEdgeToArea: true\n dragBehavior: lasso\n layoutOptions:\n # initialLayout: layered-architecture\n initialLayout: layered-staggered\n snap:\n # grid: true\n object: true\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: '<% `Node ${DATA.node.id}${DATA.node.locked ? \" (locked)\" : \"\"}` %>'\n status: |\n <%=\n (CTX.activeTarget?.type === \"multi\"\n ? CTX.activeTarget.targets\n : CTX.activeTarget\n ? [CTX.activeTarget]\n : []\n ).some((target) => (\n target.type === \"node\" && target.id === DATA.node.id\n ))\n ? \"highlighted\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: <% DATA.edge.data?.virtual %>\n dashed: true\n - if: <% !DATA.edge.data?.virtual %>\n dotted: true\n showStartArrow: true\n markers:\n - placement: start\n type: circle\n - placement: end\n type: arrow\n cells: <% CTX.initialCells %>\n lineConnector: true\n lineSettings:\n type: polyline\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cells.move:\n action: message.info\n args:\n - <% `You just moved ${EVENT.detail.length} cells` %>\n cell.resize:\n action: message.info\n args:\n - <% `You just resized ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.width)}, ${Math.round(EVENT.detail.height)})` %>\n cells.delete:\n action: message.warn\n args:\n - |\n <% `You wanna delete ${EVENT.detail.length} cells?` %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - contextMenuDetail\n - <% EVENT.detail %>\n edge.add:\n action: message.info\n args:\n - |\n <% `Added an nice edge: ${JSON.stringify(EVENT.detail)}` %>\n edge.view.change:\n action: message.info\n args:\n - |\n <% `Edge view changed: ${JSON.stringify(EVENT.detail)}` %>\n decorator.view.change:\n action: message.info\n args:\n - |\n <% `Decorator view changed: ${JSON.stringify(EVENT.detail)}` %>\n decorator.text.change:\n action: message.info\n args:\n - <% JSON.stringify(EVENT.detail) %>\n node.container.change:\n action: message.info\n args:\n - <% JSON.stringify(EVENT.detail) %>\n scale.change:\n action: context.replace\n args:\n - scale\n - <% EVENT.detail %>\n- brick: diagram.experimental-node\n properties:\n usage: dragging\n textContent: |\n <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\" ? \"Text\" : null) : CTX.dragging?.data.name %>\n decorator: |\n <%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n style: |\n <%=\n {\n left: `${CTX.dragging?.position[0]}px`,\n top: `${CTX.dragging?.position[1]}px`,\n transform: `scale(${CTX.scale})`,\n transformOrigin: \"0 0\",\n padding: CTX.dragging?.decorator === \"text\" ? \"0.5em\" : \"0\"\n }\n %>\n hidden: <%= !CTX.dragging %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n !CTX.contextMenuDetail\n ? []\n : CTX.contextMenuDetail.target?.type === \"multi\"\n ? [\n {\n text: \"锁定/取消锁定\",\n event: \"toggle-lock\",\n },\n ]\n : [\n ...(CTX.contextMenuDetail.locked ? [] : [{\n text: \"添加边\",\n event: \"add-edge\",\n },{\n text: \"移除\",\n event: \"remove\"\n }]),\n {\n text: \"锁定/取消锁定\",\n event: \"toggle-lock\",\n },\n ].filter((action) =>\n CTX.contextMenuDetail.cell.type === \"node\" || (\n CTX.contextMenuDetail.cell.type === \"decorator\" &&\n CTX.contextMenuDetail.cell.decorator === \"area\"\n ) || action.event !== \"add-edge\"\n )\n %>\n events:\n remove:\n target: eo-draw-canvas\n method: updateCells\n args:\n - |\n <%\n CTX.initialCells.filter((cell) =>\n !(\n CTX.contextMenuDetail.cell.type === \"edge\"\n ? cell.type === \"edge\" && CTX.contextMenuDetail.cell.source === cell.source && CTX.contextMenuDetail.cell.target === cell.target\n : cell.id === CTX.contextMenuDetail.cell.id ||\n (cell.type === \"edge\" && (\n CTX.contextMenuDetail.cell.id === cell.source ||\n CTX.contextMenuDetail.cell.id === cell.target))\n )\n )\n %>\n add-edge:\n target: eo-draw-canvas\n method: manuallyConnectNodes\n args:\n - <% CTX.contextMenuDetail.cell.id %>\n callback:\n success:\n - target: eo-draw-canvas\n method: addEdge\n args:\n - source: <% EVENT.detail.source.id %>\n target: <% EVENT.detail.target.id %>\n toggle-lock:\n target: eo-draw-canvas\n method: toggleLock\n args:\n - <% CTX.contextMenuDetail.target %>\n callback:\n success:\n action: console.log\n args:\n - \"Updated cells after toggle lock:\"\n - <% EVENT.detail %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div\n# style=\"\n# width: 200px;\n# display: flex;\n# flex-direction: column;\n# gap: 1em;\n# border-right: 1px solid var(--palette-gray-6);\n# overflow: scroll;\n# \"\n# >\n# <eo-button id=\"brick-1\">Add random nodes</eo-button>\n# <eo-button id=\"brick-2\">Add nodes to container-1</eo-button>\n# <eo-button id=\"brick-3\">Add edge: Y => Z</eo-button>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# <hr style=\"width: 100%\" />\n# <h3>Drag nodes below</h3>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# <hr style=\"width: 100%\" />\n# <h3>Drag decorators below</h3>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# </div>\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-draw-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# allow-edge-to-area\n# drag-behavior=\"lasso\"\n# id=\"brick-7\"\n# ></eo-draw-canvas>\n# </div>\n# </div>\n# <diagram.experimental-node\n# usage=\"dragging\"\n# decorator='<%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n# '\n# hidden=\"<%= !CTX.dragging %>\"\n# >\n# <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\"\n# ? \"Text\" : null) : CTX.dragging?.data.name %>\n# </diagram.experimental-node>\n# <eo-context-menu\n# actions='<%=\n# !CTX.contextMenuDetail\n# ? []\n# : CTX.contextMenuDetail.target?.type === \"multi\"\n# ? [\n# {\n# text: \"锁定/取消锁定\",\n# event: \"toggle-lock\",\n# },\n# ]\n# : [\n# ...(CTX.contextMenuDetail.locked ? [] : [{\n# text: \"添加边\",\n# event: \"add-edge\",\n# },{\n# text: \"移除\",\n# event: \"remove\"\n# }]),\n# {\n# text: \"锁定/取消锁定\",\n# event: \"toggle-lock\",\n# },\n# ].filter((action) =>\n# CTX.contextMenuDetail.cell.type === \"node\" || (\n# CTX.contextMenuDetail.cell.type === \"decorator\" &&\n# CTX.contextMenuDetail.cell.decorator === \"area\"\n# ) || action.event !== \"add-edge\"\n# )\n# %>\n# '\n# id=\"brick-8\"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.addNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<%\\n ((...seeds) => seeds.map((seed) => ({\\n id: seed,\\n data: {\\n name: String(seed),\\n },\\n })))(\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n )\\n%>\\n\"\n# );\n# });\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.addNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# '<%\\n ((...seeds) => seeds.map((seed) => ({\\n id: seed,\\n containerId: \"container-1\",\\n data: {\\n name: String(seed),\\n },\\n })))(\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n )\\n%>\\n'\n# );\n# });\n# \n# const brick_3 = document.getElementById(\"brick-3\");\n# brick_3.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.addEdge({ source: \"Y\", target: \"Z\", data: { virtual: true } });\n# });\n# \n# const brick_4 = document.getElementById(\"brick-4\");\n# brick_4.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.updateCells(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# '<%\\n CTX.initialCells.concat([\\n {\\n type: \"edge\",\\n source: ITEM,\\n target: \"U\",\\n },\\n {\\n type: \"edge\",\\n source: ITEM,\\n target: \"V\",\\n },\\n {\\n type: \"node\",\\n id: \"U\",\\n data: {\\n name: \"U\"\\n }\\n },\\n {\\n type: \"node\",\\n id: \"V\",\\n data: {\\n name: \"V\"\\n }\\n },\\n ])\\n%>\\n',\n# { reason: \"add-related-nodes\", parent: \"<% ITEM %>\" }\n# );\n# });\n# \n# const brick_5 = document.getElementById(\"brick-5\");\n# brick_5.addEventListener(\"drag.move\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_5.addEventListener(\"drag.end\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_5.addEventListener(\"drag.end\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.dropNode({\n# position: \"<% EVENT.detail %>\",\n# id: \"<% ITEM.id %>\",\n# data: \"<% ITEM.data %>\",\n# });\n# });\n# \n# const brick_6 = document.getElementById(\"brick-6\");\n# brick_6.addEventListener(\"drag.move\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_6.addEventListener(\"drag.end\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_6.addEventListener(\"drag.end\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.dropDecorator(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# '<%\\n ITEM === \"line\"\\n ? {\\n position: EVENT.detail,\\n decorator: ITEM.split(\".\")[0],\\n }\\n : {\\n position: EVENT.detail,\\n decorator: ITEM.split(\".\")[0],\\n text: _.upperFirst(ITEM),\\n direction: ITEM.split(\".\").pop(),\\n }\\n%>\\n'\n# );\n# });\n# \n# const brick_7 = document.getElementById(\"brick-7\");\n# brick_7.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_7.layoutOptions = {\n# initialLayout: \"layered-staggered\",\n# snap: {\n# object: true,\n# },\n# };\n# brick_7.defaultNodeSize = [60, 60];\n# brick_7.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent:\n# '<% `Node ${DATA.node.id}${DATA.node.locked ? \" (locked)\" : \"\"}` %>',\n# status:\n# '<%=\\n (CTX.activeTarget?.type === \"multi\"\\n ? CTX.activeTarget.targets\\n : CTX.activeTarget\\n ? [CTX.activeTarget]\\n : []\\n ).some((target) => (\\n target.type === \"node\" && target.id === DATA.node.id\\n ))\\n ? \"highlighted\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_7.defaultEdgeLines = [\n# {\n# if: \"<% DATA.edge.data?.virtual %>\",\n# dashed: true,\n# },\n# {\n# if: \"<% !DATA.edge.data?.virtual %>\",\n# dotted: true,\n# showStartArrow: true,\n# markers: [\n# {\n# placement: \"start\",\n# type: \"circle\",\n# },\n# {\n# placement: \"end\",\n# type: \"arrow\",\n# },\n# ],\n# },\n# ];\n# brick_7.cells = \"<% CTX.initialCells %>\";\n# brick_7.lineConnector = true;\n# brick_7.lineSettings = {\n# type: \"polyline\",\n# };\n# brick_7.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_7.addEventListener(\"cells.move\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% `You just moved ${EVENT.detail.length} cells` %>\",\n# });\n# });\n# brick_7.addEventListener(\"cell.resize\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# \"<% `You just resized ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.width)}, ${Math.round(EVENT.detail.height)})` %>\",\n# });\n# });\n# brick_7.addEventListener(\"cells.delete\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"warn\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% `You wanna delete ${EVENT.detail.length} cells?` %>\\n\",\n# });\n# });\n# brick_7.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_7.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_7.addEventListener(\"edge.add\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% `Added an nice edge: ${JSON.stringify(EVENT.detail)}` %>\\n\",\n# });\n# });\n# brick_7.addEventListener(\"edge.view.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% `Edge view changed: ${JSON.stringify(EVENT.detail)}` %>\\n\",\n# });\n# });\n# brick_7.addEventListener(\"decorator.view.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# \"<% `Decorator view changed: ${JSON.stringify(EVENT.detail)}` %>\\n\",\n# });\n# });\n# brick_7.addEventListener(\"decorator.text.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% JSON.stringify(EVENT.detail) %>\",\n# });\n# });\n# brick_7.addEventListener(\"node.container.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% JSON.stringify(EVENT.detail) %>\",\n# });\n# });\n# brick_7.addEventListener(\"scale.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# \n# const brick_8 = document.getElementById(\"brick-8\");\n# brick_8.addEventListener(\"remove\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.updateCells(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# '<%\\n CTX.initialCells.filter((cell) =>\\n !(\\n CTX.contextMenuDetail.cell.type === \"edge\"\\n ? cell.type === \"edge\" && CTX.contextMenuDetail.cell.source === cell.source && CTX.contextMenuDetail.cell.target === cell.target\\n : cell.id === CTX.contextMenuDetail.cell.id ||\\n (cell.type === \"edge\" && (\\n CTX.contextMenuDetail.cell.id === cell.source ||\\n CTX.contextMenuDetail.cell.id === cell.target))\\n )\\n )\\n%>\\n'\n# );\n# });\n# brick_8.addEventListener(\"add-edge\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.manuallyConnectNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<% CTX.contextMenuDetail.cell.id %>\"\n# );\n# });\n# brick_8.addEventListener(\"toggle-lock\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.toggleLock(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<% CTX.contextMenuDetail.target %>\"\n# );\n# });\n# </script>\n# \n```\n\n### Line labels\n\n设置连线文字。\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n flexDirection: column\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n description: \"X->Y\",\n placement: \"end\",\n view: {\n type: \"polyline\"\n }\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\"\n },\n {\n type: \"node\",\n id: \"X\",\n data: {\n name: \"Node X\",\n },\n view: {\n x: 100,\n y: 100,\n width: 60,\n height: 60,\n }\n },\n {\n type: \"node\",\n id: \"Y\",\n data: {\n name: \"Node Y\",\n },\n view: {\n x: 0,\n y: 300,\n width: 60,\n height: 60,\n }\n },\n {\n type: \"node\",\n id: \"Z\",\n data: {\n name: \"Node Z\",\n },\n view: {\n x: 300,\n y: 200,\n width: 60,\n height: 60,\n }\n },\n ]\n %>\n - name: activeTarget\n - name: scale\n value: 1\n children:\n - brick: eo-draw-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n dragBehavior: lasso\n layoutOptions:\n snap:\n object: true\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n (CTX.activeTarget?.type === \"multi\"\n ? CTX.activeTarget.targets\n : CTX.activeTarget\n ? [CTX.activeTarget]\n : []\n ).some((target) => (\n target.type === \"node\" && target.id === DATA.node.id\n ))\n ? \"highlighted\"\n : \"default\"\n %>\n cells: <% CTX.initialCells %>\n lineConnector: true\n defaultEdgeLines:\n - callLabelOnDoubleClick: enableEditing\n label:\n placement: <% DATA.edge.placement %>\n offset: 10\n useBrick:\n brick: diagram.editable-label\n properties:\n label: <% DATA.edge.description %>\n type: line\n # Set `readOnly: true` for eo-display-canvas\n # readOnly: true\n events:\n label.change:\n # Make sure only trigger update if label actually changed\n if: <% (DATA.edge.description || \"\") !== (EVENT.detail || \"\") %>\n action: context.replace\n args:\n - initialCells\n - |-\n <%\n CTX.initialCells.map((edge) =>\n edge.type === \"edge\" &&\n edge.source === DATA.edge.source &&\n edge.target === DATA.edge.target\n ? { ...edge, description: EVENT.detail }\n : edge\n )\n %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.delete:\n action: message.warn\n args:\n - |\n <% `You wanna delete ${EVENT.detail.type} ${EVENT.detail.type === \"edge\" ? `(${EVENT.detail.source} => ${EVENT.detail.target})` : EVENT.detail.id}?` %>\n scale.change:\n action: context.replace\n args:\n - scale\n - <% EVENT.detail %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; flex-direction: column; height: 600px; gap: 1em\">\n# <eo-draw-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# drag-behavior=\"lasso\"\n# id=\"brick-1\"\n# ></eo-draw-canvas>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.layoutOptions = {\n# snap: {\n# object: true,\n# },\n# };\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n (CTX.activeTarget?.type === \"multi\"\\n ? CTX.activeTarget.targets\\n : CTX.activeTarget\\n ? [CTX.activeTarget]\\n : []\\n ).some((target) => (\\n target.type === \"node\" && target.id === DATA.node.id\\n ))\\n ? \"highlighted\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.lineConnector = true;\n# brick_1.defaultEdgeLines = [\n# {\n# callLabelOnDoubleClick: \"enableEditing\",\n# label: {\n# placement: \"<% DATA.edge.placement %>\",\n# offset: 10,\n# useBrick: {\n# brick: \"diagram.editable-label\",\n# properties: {\n# label: \"<% DATA.edge.description %>\",\n# type: \"line\",\n# },\n# events: {\n# \"label.change\": {\n# if: '<% (DATA.edge.description || \"\") !== (EVENT.detail || \"\") %>',\n# action: \"context.replace\",\n# args: [\n# \"initialCells\",\n# '<%\\n CTX.initialCells.map((edge) =>\\n edge.type === \"edge\" &&\\n edge.source === DATA.edge.source &&\\n edge.target === DATA.edge.target\\n ? { ...edge, description: EVENT.detail }\\n : edge\\n )\\n%>',\n# ],\n# },\n# },\n# },\n# },\n# },\n# ];\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.delete\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"warn\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# '<% `You wanna delete ${EVENT.detail.type} ${EVENT.detail.type === \"edge\" ? `(${EVENT.detail.source} => ${EVENT.detail.target})` : EVENT.detail.id}?` %>\\n',\n# });\n# });\n# brick_1.addEventListener(\"scale.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n\n### Line settings\n\n设置属性 `lineSettings` 来调整新的连线的样式,例如使用折线或直线。注意,该设置不影响已有的 edge 的连线样式。\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n flexDirection: column\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n decorator: \"line\",\n id: \"line-1\",\n view: {\n source: {\n x: 200,\n y: 200,\n },\n target: {\n x: 250,\n y: 150,\n },\n // type: \"polyline\",\n vertices: [\n {\n x: 180,\n y: 125,\n },\n ],\n markers: [{\n placement: \"end\",\n type: \"arrow\",\n }],\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n },\n {\n type: \"node\",\n id: \"X\",\n data: {\n name: \"Node X\",\n },\n view: {\n x: 100,\n y: 100,\n width: 60,\n height: 60,\n }\n },\n {\n type: \"node\",\n id: \"Y\",\n data: {\n name: \"Node Y\",\n },\n view: {\n x: 0,\n y: 300,\n width: 60,\n height: 60,\n }\n },\n {\n type: \"node\",\n id: \"Z\",\n data: {\n name: \"Node Z\",\n },\n view: {\n x: 300,\n y: 200,\n width: 60,\n height: 60,\n }\n },\n ]\n %>\n - name: dragging\n - name: activeTarget\n - name: targetCell\n - name: scale\n value: 1\n - name: lineType\n value: polyline\n children:\n - brick: div\n children:\n - brick: eo-radio\n properties:\n type: button\n value: polyline\n options:\n - polyline\n - curve\n - straight\n events:\n change:\n action: context.replace\n args:\n - lineType\n - <% EVENT.detail.value %>\n - brick: div\n properties:\n style:\n flex: 1\n minHeight: 0\n children:\n - brick: eo-draw-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n dragBehavior: lasso\n layoutOptions:\n snap:\n object: true\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n (CTX.activeTarget?.type === \"multi\"\n ? CTX.activeTarget.targets\n : CTX.activeTarget\n ? [CTX.activeTarget]\n : []\n ).some((target) => (\n target.type === \"node\" && target.id === DATA.node.id\n ))\n ? \"highlighted\"\n : \"default\"\n %>\n cells: <% CTX.initialCells %>\n defaultEdgeLines:\n - jumps: true\n lineConnector: true\n lineSettings: |\n <%= { type: CTX.lineType } %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n edge.add:\n action: message.info\n args:\n - |\n <% `Added an nice edge: ${JSON.stringify(EVENT.detail)}` %>\n edge.view.change:\n action: message.info\n args:\n - |\n <% `Edge view changed: ${JSON.stringify(EVENT.detail)}` %>\n scale.change:\n action: context.replace\n args:\n - scale\n - <% EVENT.detail %>\n- brick: diagram.experimental-node\n properties:\n usage: dragging\n textContent: |\n <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\" ? \"Text\" : null) : CTX.dragging?.data.name %>\n decorator: |\n <%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n style: |\n <%=\n {\n left: `${CTX.dragging?.position[0]}px`,\n top: `${CTX.dragging?.position[1]}px`,\n transform: `scale(${CTX.scale})`,\n transformOrigin: \"0 0\",\n padding: CTX.dragging?.decorator === \"text\" ? \"0.5em\" : \"0\"\n }\n %>\n hidden: <%= !CTX.dragging %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n ([\"node\"].includes(CTX.targetCell?.type )||CTX.targetCell?.decorator==\"area\") ? [\n {\n text: \"添加边\",\n event: \"add-edge\",\n }\n ] : [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n events:\n add-edge:\n target: eo-draw-canvas\n method: manuallyConnectNodes\n args:\n - <% CTX.targetCell.id %>\n callback:\n success:\n - target: eo-draw-canvas\n method: addEdge\n args:\n - source: <% EVENT.detail.source.id %>\n target: <% EVENT.detail.target.id %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; flex-direction: column; height: 600px; gap: 1em\">\n# <div>\n# <eo-radio\n# type=\"button\"\n# value=\"polyline\"\n# options=\"polyline,curve,straight\"\n# id=\"brick-1\"\n# ></eo-radio>\n# </div>\n# <div style=\"flex: 1; min-height: 0\">\n# <eo-draw-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# drag-behavior=\"lasso\"\n# id=\"brick-2\"\n# ></eo-draw-canvas>\n# </div>\n# </div>\n# <diagram.experimental-node\n# usage=\"dragging\"\n# decorator='<%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n# '\n# hidden=\"<%= !CTX.dragging %>\"\n# >\n# <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\"\n# ? \"Text\" : null) : CTX.dragging?.data.name %>\n# </diagram.experimental-node>\n# <eo-context-menu\n# actions='<%=\n# ([\"node\"].includes(CTX.targetCell?.type )||CTX.targetCell?.decorator==\"area\") ? [\n# {\n# text: \"添加边\",\n# event: \"add-edge\",\n# }\n# ] : [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# '\n# id=\"brick-3\"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_2.layoutOptions = {\n# snap: {\n# object: true,\n# },\n# };\n# brick_2.defaultNodeSize = [60, 60];\n# brick_2.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n (CTX.activeTarget?.type === \"multi\"\\n ? CTX.activeTarget.targets\\n : CTX.activeTarget\\n ? [CTX.activeTarget]\\n : []\\n ).some((target) => (\\n target.type === \"node\" && target.id === DATA.node.id\\n ))\\n ? \"highlighted\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_2.cells = \"<% CTX.initialCells %>\";\n# brick_2.defaultEdgeLines = [\n# {\n# jumps: true,\n# },\n# ];\n# brick_2.lineConnector = true;\n# brick_2.lineSettings = \"<%= { type: CTX.lineType } %>\\n\";\n# brick_2.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_2.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_2.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_2.addEventListener(\"edge.add\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% `Added an nice edge: ${JSON.stringify(EVENT.detail)}` %>\\n\",\n# });\n# });\n# brick_2.addEventListener(\"edge.view.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% `Edge view changed: ${JSON.stringify(EVENT.detail)}` %>\\n\",\n# });\n# });\n# brick_2.addEventListener(\"scale.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# \n# const brick_3 = document.getElementById(\"brick-3\");\n# brick_3.addEventListener(\"add-edge\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.manuallyConnectNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<% CTX.targetCell.id %>\"\n# );\n# });\n# </script>\n# \n```\n\n### Force layout\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"decorator\",\n id: \"container-1\",\n decorator: \"container\",\n view: {\n x: 50,\n y: 400,\n width: 280,\n height: 120,\n direction: \"top\",\n text: \" 上层服务\"\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n }\n },\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n containerId: [\"X\",\"Y\",\"Z\"].includes(id)?\"container-1\":undefined,\n data: {\n name: `Node ${id}`,\n },\n view: {\n width: 60,\n height: 60,\n }\n }))\n ).concat([\n {\n type: \"decorator\",\n id: \"text-1\",\n decorator: \"text\",\n view: {\n x: 100,\n y: 120,\n width: 100,\n height: 20,\n text: \"Hello!\"\n },\n },\n ])\n %>\n - name: dragging\n - name: activeTarget\n - name: targetCell\n - name: scale\n value: 1\n children:\n - brick: div\n properties:\n style:\n width: 180px\n display: flex\n flexDirection: column\n gap: 1em\n children:\n - brick: eo-button\n properties:\n textContent: Add random nodes\n events:\n click:\n target: eo-draw-canvas\n method: addNodes\n args:\n - |\n <%\n ((...seeds) => seeds.map((seed) => ({\n id: seed,\n data: {\n name: String(seed),\n },\n })))(\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n )\n %>\n callback:\n success:\n action: console.log\n args:\n - Added nodes\n - <% EVENT.detail %>\n - brick: eo-button\n properties:\n textContent: \"Add edge: Y => Z\"\n events:\n click:\n target: eo-draw-canvas\n method: addEdge\n args:\n - source: Y\n target: Z\n data:\n virtual: true\n - brick: :forEach\n dataSource:\n - X\n - Y\n children:\n - brick: eo-button\n properties:\n textContent: <% `Add nodes below ${ITEM}` %>\n events:\n click:\n target: eo-draw-canvas\n method: updateCells\n args:\n - |\n <%\n CTX.initialCells.concat([\n {\n type: \"edge\",\n source: ITEM,\n target: \"U\",\n },\n {\n type: \"edge\",\n source: ITEM,\n target: \"V\",\n },\n {\n type: \"node\",\n id: \"U\",\n data: {\n name: \"U\"\n }\n },\n {\n type: \"node\",\n id: \"V\",\n data: {\n name: \"V\"\n }\n },\n ])\n %>\n - reason: add-related-nodes\n parent: <% ITEM %>\n callback:\n success:\n action: console.log\n - brick: hr\n properties:\n style:\n width: 100%\n - brick: h3\n properties:\n textContent: Drag nodes below\n - brick: :forEach\n dataSource: |\n <%\n [\"A\", \"B\", \"C\"].map((id) => ({\n type: \"node\",\n id,\n data: {\n name: `Node ${id}`,\n },\n }))\n %>\n children:\n - brick: diagram.experimental-node\n properties:\n textContent: <% ITEM.data.name %>\n usage: library\n events:\n drag.move:\n action: context.replace\n args:\n - dragging\n - |\n <% {position: EVENT.detail, ...ITEM} %>\n drag.end:\n - action: context.replace\n args:\n - dragging\n - null\n - target: eo-draw-canvas\n method: dropNode\n args:\n - position: <% EVENT.detail %>\n id: <% ITEM.id %>\n data: <% ITEM.data %>\n callback:\n success:\n if: <% EVENT.detail %>\n then:\n action: message.success\n args:\n - <% JSON.stringify(EVENT.detail) %>\n else:\n action: message.warn\n args:\n - Unexpected drop position\n - brick: hr\n properties:\n style:\n width: 100%\n - brick: h3\n properties:\n textContent: Drag decorators below\n - brick: :forEach\n dataSource:\n - area\n - text\n children:\n - brick: diagram.experimental-node\n properties:\n textContent: <% _.upperFirst(ITEM) %>\n usage: library\n events:\n drag.move:\n action: context.replace\n args:\n - dragging\n - |\n <% {position: EVENT.detail, type: \"decorator\", decorator: ITEM} %>\n drag.end:\n - action: context.replace\n args:\n - dragging\n - null\n - target: eo-draw-canvas\n method: dropDecorator\n args:\n - position: <% EVENT.detail %>\n decorator: <% ITEM %>\n text: '<% ITEM === \"text\" ? \"Text\" : undefined %>'\n callback:\n success:\n if: <% !EVENT.detail %>\n action: message.warn\n args:\n - Unexpected drop position\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-draw-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: force\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: <% DATA.edge.data?.virtual %>\n dashed: true\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.move:\n action: message.info\n args:\n - <% `You just moved ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.x)}, ${Math.round(EVENT.detail.y)})` %>\n cell.resize:\n action: message.info\n args:\n - <% `You just resized ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.width)}, ${Math.round(EVENT.detail.height)})` %>\n cell.delete:\n action: message.warn\n args:\n - |\n <% `You wanna delete ${EVENT.detail.type} ${EVENT.detail.type === \"edge\" ? `(${EVENT.detail.source} => ${EVENT.detail.target})` : EVENT.detail.id}?` %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n decorator.text.change:\n action: message.info\n args:\n - <% JSON.stringify(EVENT.detail) %>\n scale.change:\n action: context.replace\n args:\n - scale\n - <% EVENT.detail %>\n- brick: diagram.experimental-node\n properties:\n usage: dragging\n textContent: |\n <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\" ? \"Text\" : null) : CTX.dragging?.data.name %>\n decorator: |\n <%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n style: |\n <%=\n {\n left: `${CTX.dragging?.position[0]}px`,\n top: `${CTX.dragging?.position[1]}px`,\n transform: `scale(${CTX.scale})`,\n transformOrigin: \"0 0\",\n padding: CTX.dragging?.decorator === \"text\" ? \"0.5em\" : \"0\"\n }\n %>\n hidden: <%= !CTX.dragging %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n CTX.targetCell?.type === \"node\" ? [\n {\n text: \"添加边\",\n event: \"add-edge\",\n }\n ] : [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n events:\n add-edge:\n target: eo-draw-canvas\n method: manuallyConnectNodes\n args:\n - <% CTX.targetCell.id %>\n callback:\n success:\n target: eo-draw-canvas\n method: addEdge\n args:\n - source: <% EVENT.detail.source.id %>\n target: <% EVENT.detail.target.id %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"width: 180px; display: flex; flex-direction: column; gap: 1em\">\n# <eo-button id=\"brick-1\">Add random nodes</eo-button>\n# <eo-button id=\"brick-2\">Add edge: Y => Z</eo-button>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# <hr style=\"width: 100%\" />\n# <h3>Drag nodes below</h3>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# <hr style=\"width: 100%\" />\n# <h3>Drag decorators below</h3>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# </div>\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-draw-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"force\"\n# id=\"brick-6\"\n# ></eo-draw-canvas>\n# </div>\n# </div>\n# <diagram.experimental-node\n# usage=\"dragging\"\n# decorator='<%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n# '\n# hidden=\"<%= !CTX.dragging %>\"\n# >\n# <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\"\n# ? \"Text\" : null) : CTX.dragging?.data.name %>\n# </diagram.experimental-node>\n# <eo-context-menu\n# actions='<%=\n# CTX.targetCell?.type === \"node\" ? [\n# {\n# text: \"添加边\",\n# event: \"add-edge\",\n# }\n# ] : [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# '\n# id=\"brick-7\"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.addNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<%\\n ((...seeds) => seeds.map((seed) => ({\\n id: seed,\\n data: {\\n name: String(seed),\\n },\\n })))(\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n )\\n%>\\n\"\n# );\n# });\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.addEdge({ source: \"Y\", target: \"Z\", data: { virtual: true } });\n# });\n# \n# const brick_3 = document.getElementById(\"brick-3\");\n# brick_3.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.updateCells(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# '<%\\n CTX.initialCells.concat([\\n {\\n type: \"edge\",\\n source: ITEM,\\n target: \"U\",\\n },\\n {\\n type: \"edge\",\\n source: ITEM,\\n target: \"V\",\\n },\\n {\\n type: \"node\",\\n id: \"U\",\\n data: {\\n name: \"U\"\\n }\\n },\\n {\\n type: \"node\",\\n id: \"V\",\\n data: {\\n name: \"V\"\\n }\\n },\\n ])\\n%>\\n',\n# { reason: \"add-related-nodes\", parent: \"<% ITEM %>\" }\n# );\n# });\n# \n# const brick_4 = document.getElementById(\"brick-4\");\n# brick_4.addEventListener(\"drag.move\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_4.addEventListener(\"drag.end\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_4.addEventListener(\"drag.end\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.dropNode({\n# position: \"<% EVENT.detail %>\",\n# id: \"<% ITEM.id %>\",\n# data: \"<% ITEM.data %>\",\n# });\n# });\n# \n# const brick_5 = document.getElementById(\"brick-5\");\n# brick_5.addEventListener(\"drag.move\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_5.addEventListener(\"drag.end\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_5.addEventListener(\"drag.end\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.dropDecorator({\n# position: \"<% EVENT.detail %>\",\n# decorator: \"<% ITEM %>\",\n# text: '<% ITEM === \"text\" ? \"Text\" : undefined %>',\n# });\n# });\n# \n# const brick_6 = document.getElementById(\"brick-6\");\n# brick_6.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_6.defaultNodeSize = [60, 60];\n# brick_6.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_6.defaultEdgeLines = [\n# {\n# if: \"<% DATA.edge.data?.virtual %>\",\n# dashed: true,\n# },\n# ];\n# brick_6.cells = \"<% CTX.initialCells %>\";\n# brick_6.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_6.addEventListener(\"cell.move\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# \"<% `You just moved ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.x)}, ${Math.round(EVENT.detail.y)})` %>\",\n# });\n# });\n# brick_6.addEventListener(\"cell.resize\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# \"<% `You just resized ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.width)}, ${Math.round(EVENT.detail.height)})` %>\",\n# });\n# });\n# brick_6.addEventListener(\"cell.delete\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"warn\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# '<% `You wanna delete ${EVENT.detail.type} ${EVENT.detail.type === \"edge\" ? `(${EVENT.detail.source} => ${EVENT.detail.target})` : EVENT.detail.id}?` %>\\n',\n# });\n# });\n# brick_6.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_6.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_6.addEventListener(\"decorator.text.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% JSON.stringify(EVENT.detail) %>\",\n# });\n# });\n# brick_6.addEventListener(\"scale.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# \n# const brick_7 = document.getElementById(\"brick-7\");\n# brick_7.addEventListener(\"add-edge\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.manuallyConnectNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<% CTX.targetCell.id %>\"\n# );\n# });\n# </script>\n# \n```\n\n### Dagre layout\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"decorator\",\n id: \"container-1\",\n decorator: \"container\",\n view: {\n x: 50,\n y: 400,\n width: 280,\n height: 120,\n direction: \"top\",\n text: \" 上层服务\"\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n }\n },\n {\n type: \"edge\",\n source: \"Z\",\n target: \"W\",\n },\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n containerId: [\"W\",\"Z\"].includes(id)?\"container-1\":undefined,\n data: {\n name: `Node ${id}`,\n },\n view: {\n width: 60,\n height: 60,\n }\n }))\n )\n %>\n - name: dragging\n - name: activeTarget\n - name: targetCell\n - name: scale\n value: 1\n children:\n - brick: div\n properties:\n style:\n width: 180px\n display: flex\n flexDirection: column\n gap: 1em\n children:\n - brick: eo-button\n properties:\n textContent: Add random nodes\n events:\n click:\n target: eo-draw-canvas\n method: addNodes\n args:\n - |\n <%\n ((...seeds) => seeds.map((seed) => ({\n id: seed,\n data: {\n name: String(seed),\n },\n })))(\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n Math.round(Math.random() * 1e6),\n )\n %>\n callback:\n success:\n action: console.log\n args:\n - Added nodes\n - <% EVENT.detail %>\n - brick: eo-button\n properties:\n textContent: \"Add edge: Y => Z\"\n events:\n click:\n target: eo-draw-canvas\n method: addEdge\n args:\n - source: Y\n target: Z\n data:\n virtual: true\n - brick: :forEach\n dataSource:\n - X\n - Y\n children:\n - brick: eo-button\n properties:\n textContent: <% `Add nodes below ${ITEM}` %>\n events:\n click:\n target: eo-draw-canvas\n method: updateCells\n args:\n - |\n <%\n CTX.initialCells.concat([\n {\n type: \"edge\",\n source: ITEM,\n target: \"U\",\n },\n {\n type: \"edge\",\n source: ITEM,\n target: \"V\",\n },\n {\n type: \"node\",\n id: \"U\",\n data: {\n name: \"U\"\n }\n },\n {\n type: \"node\",\n id: \"V\",\n data: {\n name: \"V\"\n }\n },\n ])\n %>\n - reason: add-related-nodes\n parent: <% ITEM %>\n callback:\n success:\n action: console.log\n - brick: hr\n properties:\n style:\n width: 100%\n - brick: h3\n properties:\n textContent: Drag nodes below\n - brick: :forEach\n dataSource: |\n <%\n [\"A\", \"B\", \"C\"].map((id) => ({\n type: \"node\",\n id,\n data: {\n name: `Node ${id}`,\n },\n }))\n %>\n children:\n - brick: diagram.experimental-node\n properties:\n textContent: <% ITEM.data.name %>\n usage: library\n events:\n drag.move:\n action: context.replace\n args:\n - dragging\n - |\n <% {position: EVENT.detail, ...ITEM} %>\n drag.end:\n - action: context.replace\n args:\n - dragging\n - null\n - target: eo-draw-canvas\n method: dropNode\n args:\n - position: <% EVENT.detail %>\n id: <% ITEM.id %>\n data: <% ITEM.data %>\n callback:\n success:\n if: <% EVENT.detail %>\n then:\n action: message.success\n args:\n - <% JSON.stringify(EVENT.detail) %>\n else:\n action: message.warn\n args:\n - Unexpected drop position\n - brick: hr\n properties:\n style:\n width: 100%\n - brick: h3\n properties:\n textContent: Drag decorators below\n - brick: :forEach\n dataSource:\n - area\n - text\n children:\n - brick: diagram.experimental-node\n properties:\n textContent: <% _.upperFirst(ITEM) %>\n usage: library\n events:\n drag.move:\n action: context.replace\n args:\n - dragging\n - |\n <% {position: EVENT.detail, type: \"decorator\", decorator: ITEM} %>\n drag.end:\n - action: context.replace\n args:\n - dragging\n - null\n - target: eo-draw-canvas\n method: dropDecorator\n args:\n - position: <% EVENT.detail %>\n decorator: <% ITEM %>\n text: '<% ITEM === \"text\" ? \"Text\" : undefined %>'\n callback:\n success:\n if: <% !EVENT.detail %>\n action: message.warn\n args:\n - Unexpected drop position\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-draw-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: dagre\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - dashed: <% !!DATA.edge.data?.virtual %>\n strokeColor: var(--palette-blue-6)\n overrides:\n active:\n strokeWidth: <% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\n strokeColor: cyan\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.move:\n action: message.info\n args:\n - <% `You just moved ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.x)}, ${Math.round(EVENT.detail.y)})` %>\n cell.resize:\n action: message.info\n args:\n - <% `You just resized ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.width)}, ${Math.round(EVENT.detail.height)})` %>\n cell.delete:\n action: message.warn\n args:\n - |\n <% `You wanna delete ${EVENT.detail.type} ${EVENT.detail.type === \"edge\" ? `(${EVENT.detail.source} => ${EVENT.detail.target})` : EVENT.detail.id}?` %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n decorator.text.change:\n action: message.info\n args:\n - <% JSON.stringify(EVENT.detail) %>\n scale.change:\n action: context.replace\n args:\n - scale\n - <% EVENT.detail %>\n- brick: diagram.experimental-node\n properties:\n usage: dragging\n textContent: |\n <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\" ? \"Text\" : null) : CTX.dragging?.data.name %>\n decorator: |\n <%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n style: |\n <%=\n {\n left: `${CTX.dragging?.position[0]}px`,\n top: `${CTX.dragging?.position[1]}px`,\n transform: `scale(${CTX.scale})`,\n transformOrigin: \"0 0\",\n padding: CTX.dragging?.decorator === \"text\" ? \"0.5em\" : \"0\"\n }\n %>\n hidden: <%= !CTX.dragging %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n CTX.targetCell?.type === \"node\" ? [\n {\n text: \"添加边\",\n event: \"add-edge\",\n }\n ] : [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n events:\n add-edge:\n target: eo-draw-canvas\n method: manuallyConnectNodes\n args:\n - <% CTX.targetCell.id %>\n callback:\n success:\n target: eo-draw-canvas\n method: addEdge\n args:\n - source: <% EVENT.detail.source.id %>\n target: <% EVENT.detail.target.id %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"width: 180px; display: flex; flex-direction: column; gap: 1em\">\n# <eo-button id=\"brick-1\">Add random nodes</eo-button>\n# <eo-button id=\"brick-2\">Add edge: Y => Z</eo-button>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# <hr style=\"width: 100%\" />\n# <h3>Drag nodes below</h3>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# <hr style=\"width: 100%\" />\n# <h3>Drag decorators below</h3>\n# <!-- WARN: \":forEach\" is not supported in HTML mode, please try YAML. -->\n# </div>\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-draw-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"dagre\"\n# id=\"brick-6\"\n# ></eo-draw-canvas>\n# </div>\n# </div>\n# <diagram.experimental-node\n# usage=\"dragging\"\n# decorator='<%= CTX.dragging?.type === \"decorator\" ? CTX.dragging.decorator : null %>\n# '\n# hidden=\"<%= !CTX.dragging %>\"\n# >\n# <%= CTX.dragging?.type === \"decorator\" ? (CTX.dragging.decorator === \"text\"\n# ? \"Text\" : null) : CTX.dragging?.data.name %>\n# </diagram.experimental-node>\n# <eo-context-menu\n# actions='<%=\n# CTX.targetCell?.type === \"node\" ? [\n# {\n# text: \"添加边\",\n# event: \"add-edge\",\n# }\n# ] : [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# '\n# id=\"brick-7\"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.addNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<%\\n ((...seeds) => seeds.map((seed) => ({\\n id: seed,\\n data: {\\n name: String(seed),\\n },\\n })))(\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n Math.round(Math.random() * 1e6),\\n )\\n%>\\n\"\n# );\n# });\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.addEdge({ source: \"Y\", target: \"Z\", data: { virtual: true } });\n# });\n# \n# const brick_3 = document.getElementById(\"brick-3\");\n# brick_3.addEventListener(\"click\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.updateCells(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# '<%\\n CTX.initialCells.concat([\\n {\\n type: \"edge\",\\n source: ITEM,\\n target: \"U\",\\n },\\n {\\n type: \"edge\",\\n source: ITEM,\\n target: \"V\",\\n },\\n {\\n type: \"node\",\\n id: \"U\",\\n data: {\\n name: \"U\"\\n }\\n },\\n {\\n type: \"node\",\\n id: \"V\",\\n data: {\\n name: \"V\"\\n }\\n },\\n ])\\n%>\\n',\n# { reason: \"add-related-nodes\", parent: \"<% ITEM %>\" }\n# );\n# });\n# \n# const brick_4 = document.getElementById(\"brick-4\");\n# brick_4.addEventListener(\"drag.move\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_4.addEventListener(\"drag.end\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_4.addEventListener(\"drag.end\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.dropNode({\n# position: \"<% EVENT.detail %>\",\n# id: \"<% ITEM.id %>\",\n# data: \"<% ITEM.data %>\",\n# });\n# });\n# \n# const brick_5 = document.getElementById(\"brick-5\");\n# brick_5.addEventListener(\"drag.move\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_5.addEventListener(\"drag.end\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_5.addEventListener(\"drag.end\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.dropDecorator({\n# position: \"<% EVENT.detail %>\",\n# decorator: \"<% ITEM %>\",\n# text: '<% ITEM === \"text\" ? \"Text\" : undefined %>',\n# });\n# });\n# \n# const brick_6 = document.getElementById(\"brick-6\");\n# brick_6.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_6.defaultNodeSize = [60, 60];\n# brick_6.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_6.defaultEdgeLines = [\n# {\n# dashed: \"<% !!DATA.edge.data?.virtual %>\",\n# strokeColor: \"var(--palette-blue-6)\",\n# overrides: {\n# active: {\n# strokeWidth: \"<% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\",\n# strokeColor: \"cyan\",\n# },\n# },\n# },\n# ];\n# brick_6.cells = \"<% CTX.initialCells %>\";\n# brick_6.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_6.addEventListener(\"cell.move\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# \"<% `You just moved ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.x)}, ${Math.round(EVENT.detail.y)})` %>\",\n# });\n# });\n# brick_6.addEventListener(\"cell.resize\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# \"<% `You just resized ${EVENT.detail.type} ${EVENT.detail.id} to (${Math.round(EVENT.detail.width)}, ${Math.round(EVENT.detail.height)})` %>\",\n# });\n# });\n# brick_6.addEventListener(\"cell.delete\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"warn\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message:\n# '<% `You wanna delete ${EVENT.detail.type} ${EVENT.detail.type === \"edge\" ? `(${EVENT.detail.source} => ${EVENT.detail.target})` : EVENT.detail.id}?` %>\\n',\n# });\n# });\n# brick_6.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_6.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_6.addEventListener(\"decorator.text.change\", (e) => {\n# const message = document.createElement(\"basic.show-notification\");\n# message.resolve({\n# type: \"info\",\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# message: \"<% JSON.stringify(EVENT.detail) %>\",\n# });\n# });\n# brick_6.addEventListener(\"scale.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# \n# const brick_7 = document.getElementById(\"brick-7\");\n# brick_7.addEventListener(\"add-edge\", (e) => {\n# const brick = document.querySelector(\"eo-draw-canvas\");\n# brick.manuallyConnectNodes(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<% CTX.targetCell.id %>\"\n# );\n# });\n# </script>\n# \n```\n"
|
|
10
|
+
},
|
|
11
|
+
"eo-display-canvas": {
|
|
12
|
+
"doc": "用于展示查看的画布构件。\n\n## Examples\n\n### Basic\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"decorator\",\n id: \"container-1\",\n decorator: \"container\",\n view: {\n x: 50,\n y: 400,\n width: 280,\n height: 120,\n direction: \"top\",\n text: \" 上层服务\"\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n data: {\n virtual: false,\n showStartArrow: false,\n strokeColor:\"red\",\n strokeWidth: 5,\n }\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"W\",\n data: {\n virtual: false,\n showStartArrow: true,\n strokeColor:\"pink\",\n animate:{\n useAnimate: true,\n duration: 4\n }\n }\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n showStartArrow: true,\n strokeColor:\"blue\",\n animate:{\n useAnimate: true\n }\n }\n },\n {\n type: \"edge\",\n source: \"W\",\n target: \"Z\",\n view: {\n entryPosition: { x: 0, y: 0.5 },\n exitPosition: {x: 0.5, y: 0}\n }\n }\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n containerId: [\"X\",\"Y\",\"Z\"].includes(id)?\"container-1\":undefined,\n data: {\n name: `Node ${id}`,\n },\n view: {\n x: Math.round(\n id === \"X\"\n ? 200 + Math.random() * 200\n : id === \"Y\"\n ? Math.random() * 300\n : 300 + Math.random() * 300\n ),\n y: (id === \"X\" ? 0 : 300) + Math.round((Math.random() * 200)),\n width: 60,\n height: 60,\n }\n }))\n ).concat([\n {\n type: \"decorator\",\n id: \"text-1\",\n decorator: \"text\",\n view: {\n x: 100,\n y: 120,\n width: 100,\n height: 20,\n text: \"Hello!\"\n },\n },\n ])\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: true\n dashed: <% DATA.edge?.data?.virtual %>\n strokeColor: <% DATA.edge?.data?.strokeColor %>\n showStartArrow: <% DATA.edge?.data?.showStartArrow %>\n strokeWidth: <% DATA.edge?.data?.strokeWidth %>\n animate: <% DATA.edge?.data?.animate %>\n showStartArrow: true\n markers:\n - placement: end\n type: circle\n - placement: start\n type: arrow\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# if: true,\n# dashed: \"<% DATA.edge?.data?.virtual %>\",\n# strokeColor: \"<% DATA.edge?.data?.strokeColor %>\",\n# showStartArrow: true,\n# strokeWidth: \"<% DATA.edge?.data?.strokeWidth %>\",\n# animate: \"<% DATA.edge?.data?.animate %>\",\n# markers: [\n# {\n# placement: \"end\",\n# type: \"circle\",\n# },\n# {\n# placement: \"start\",\n# type: \"arrow\",\n# },\n# ],\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n\n### Force layout\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n }\n },\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n data: {\n name: `Node ${id}`,\n },\n view: {\n width: 60,\n height: 60,\n }\n }))\n ).concat([\n {\n type: \"decorator\",\n id: \"text-1\",\n decorator: \"text\",\n view: {\n x: 100,\n y: 120,\n width: 100,\n height: 20,\n text: \"Hello!\"\n },\n },\n ])\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: force\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: <% DATA.edge.data?.virtual %>\n dashed: true\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"force\"\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# if: \"<% DATA.edge.data?.virtual %>\",\n# dashed: true,\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n\n### Dagre layout\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n [\n {\n type: \"decorator\",\n id: \"area-1\",\n decorator: \"area\",\n view: {\n x: 10,\n y: 20,\n width: 400,\n height: 300,\n },\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Y\",\n view: {\n type: \"polyline\"\n }\n },\n {\n type: \"edge\",\n source: \"X\",\n target: \"Z\",\n data: {\n virtual: true,\n }\n },\n {\n type: \"edge\",\n source: \"Z\",\n target: \"W\",\n },\n ].concat(\n [\"X\", \"Y\", \"Z\", \"W\"].map((id) => ({\n type: \"node\",\n id,\n data: {\n name: `Node ${id}`,\n },\n view: {\n width: 60,\n height: 60,\n }\n }))\n )\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: dagre\n layoutOptions:\n ranksep: 80\n nodesep: 80\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - dashed: <% !!DATA.edge.data?.virtual %>\n strokeColor: var(--palette-blue-6)\n overrides:\n active:\n strokeWidth: <% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\n strokeColor: cyan\n activeRelated:\n strokeWidth: <% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\n motion:\n shape: '<% DATA.edge.data?.virtual ? \"dot\" : \"triangle\" %>'\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"dagre\"\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.layoutOptions = {\n# ranksep: 80,\n# nodesep: 80,\n# };\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# dashed: \"<% !!DATA.edge.data?.virtual %>\",\n# strokeColor: \"var(--palette-blue-6)\",\n# overrides: {\n# active: {\n# strokeWidth: \"<% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\",\n# strokeColor: \"cyan\",\n# },\n# activeRelated: {\n# strokeWidth: \"<% 2 * (DATA.edge?.data?.strokeWidth ?? 1) %>\",\n# motion: {\n# shape: '<% DATA.edge.data?.virtual ? \"dot\" : \"triangle\" %>',\n# },\n# },\n# },\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n\n### Degraded diagram\n\n```yaml preview minHeight=\"600px\"\n- brick: div\n properties:\n style:\n display: flex\n height: 600px\n gap: 1em\n context:\n - name: initialCells\n value: |\n <%\n ((...seeds) => seeds.map((seed) => ({\n type: \"node\",\n id: seed,\n data: {\n name: seed,\n },\n })))(\n ...(\n new Array(500).fill(null).map((_, i) => String(i))\n )\n )\n %>\n - name: activeTarget\n - name: targetCell\n children:\n - brick: div\n properties:\n style:\n flex: 1\n minWidth: 0\n children:\n - brick: eo-display-canvas\n properties:\n style:\n width: 100%\n height: 100%\n activeTarget: <%= CTX.activeTarget %>\n fadeUnrelatedCells: true\n layout: force\n # Initial nodes only\n defaultNodeSize: [60, 60]\n defaultNodeBricks:\n - useBrick:\n brick: diagram.experimental-node\n properties:\n textContent: <% `Node ${DATA.node.id}` %>\n status: |\n <%=\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\n ? \"highlighted\"\n // : CTX.unrelated.some(n =>\n // n.type === \"node\" && n.id === DATA.node.id\n // )\n // ? \"faded\"\n : \"default\"\n %>\n defaultEdgeLines:\n - if: true\n dashed: <% DATA.edge?.data?.virtual %>\n strokeColor: <% DATA.edge?.data?.strokeColor %>\n showStartArrow: <% DATA.edge?.data?.showStartArrow %>\n strokeWidth: <% DATA.edge?.data?.strokeWidth %>\n animate: <% DATA.edge?.data?.animate %>\n cells: <% CTX.initialCells %>\n events:\n activeTarget.change:\n action: context.replace\n args:\n - activeTarget\n - <% EVENT.detail %>\n cell.contextmenu:\n - target: eo-context-menu\n method: open\n args:\n - position:\n - <% EVENT.detail.clientX %>\n - <% EVENT.detail.clientY %>\n - action: context.replace\n args:\n - targetCell\n - <% EVENT.detail.cell %>\n- brick: eo-context-menu\n properties:\n actions: |\n <%=\n [\n {\n text: `Test ${CTX.targetCell?.type}`,\n event: `test-${CTX.targetCell?.type}`,\n }\n ]\n %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"display: flex; height: 600px; gap: 1em\">\n# <div style=\"flex: 1; min-width: 0\">\n# <eo-display-canvas\n# style=\"width: 100%; height: 100%\"\n# fade-unrelated-cells\n# layout=\"force\"\n# id=\"brick-1\"\n# ></eo-display-canvas>\n# </div>\n# </div>\n# <eo-context-menu\n# actions=\"<%=\n# [\n# {\n# text: `Test ${CTX.targetCell?.type}`,\n# event: `test-${CTX.targetCell?.type}`,\n# }\n# ]\n# %>\n# \"\n# ></eo-context-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.activeTarget = \"<%= CTX.activeTarget %>\";\n# brick_1.defaultNodeSize = [60, 60];\n# brick_1.defaultNodeBricks = [\n# {\n# useBrick: {\n# brick: \"diagram.experimental-node\",\n# properties: {\n# textContent: \"<% `Node ${DATA.node.id}` %>\",\n# status:\n# '<%=\\n CTX.activeTarget?.type === \"node\" && CTX.activeTarget.id === DATA.node.id\\n ? \"highlighted\"\\n // : CTX.unrelated.some(n =>\\n // n.type === \"node\" && n.id === DATA.node.id\\n // )\\n // ? \"faded\"\\n : \"default\"\\n%>\\n',\n# },\n# },\n# },\n# ];\n# brick_1.defaultEdgeLines = [\n# {\n# if: true,\n# dashed: \"<% DATA.edge?.data?.virtual %>\",\n# strokeColor: \"<% DATA.edge?.data?.strokeColor %>\",\n# showStartArrow: \"<% DATA.edge?.data?.showStartArrow %>\",\n# strokeWidth: \"<% DATA.edge?.data?.strokeWidth %>\",\n# animate: \"<% DATA.edge?.data?.animate %>\",\n# },\n# ];\n# brick_1.cells = \"<% CTX.initialCells %>\";\n# brick_1.addEventListener(\"activeTarget.change\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# const brick = document.querySelector(\"eo-context-menu\");\n# brick.open({\n# position: [\"<% EVENT.detail.clientX %>\", \"<% EVENT.detail.clientY %>\"],\n# });\n# });\n# brick_1.addEventListener(\"cell.contextmenu\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# </script>\n# \n```\n"
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(()=>{"use strict";var e,t,r,n,a,o,l,i,s,c,d,u,f,h,p,m,b,v,g,x,y,P,w,k={9476:(e,t,r)=>{var n={"./eo-diagram":()=>Promise.all([r.e(7920),r.e(1030),r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(9475),r.e(4603),r.e(1361),r.e(3233),r.e(3039)]).then((()=>()=>r(1508))),"./editable-label":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(6006)]).then((()=>()=>r(3328))),"./eo-draw-canvas":()=>Promise.all([r.e(7920),r.e(1265),r.e(1030),r.e(8769),r.e(7921),r.e(4558),r.e(1280),r.e(5168),r.e(9435),r.e(9475),r.e(4603),r.e(551),r.e(8939)]).then((()=>()=>r(9068))),"./experimental-node":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(4422)]).then((()=>()=>r(5568))),"./eo-display-canvas":()=>Promise.all([r.e(7920),r.e(1265),r.e(1030),r.e(8769),r.e(7921),r.e(4558),r.e(1280),r.e(5168),r.e(9435),r.e(9475),r.e(4603),r.e(551),r.e(8939),r.e(9823)]).then((()=>()=>r(6094)))},a=(e,t)=>(r.R=t,t=r.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),r.R=void 0,t),o=(e,t)=>{if(r.S){var n="default",a=r.S[n];if(a&&a!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[n]=e,r.I(n,t)}};r.d(t,{get:()=>a,init:()=>o})}},j={};function S(e){var t=j[e];if(void 0!==t)return t.exports;var r=j[e]={id:e,loaded:!1,exports:{}};return k[e].call(r.exports,r,r.exports,S),r.loaded=!0,r.exports}S.m=k,S.c=j,S.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return S.d(t,{a:t}),t},S.d=(e,t)=>{for(var r in t)S.o(t,r)&&!S.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},S.f={},S.e=e=>Promise.all(Object.keys(S.f).reduce(((t,r)=>(S.f[r](e,t),t)),[])),S.u=e=>"chunks/"+({3039:"eo-diagram",4422:"experimental-node",6006:"editable-label",8939:"eo-draw-canvas",9823:"eo-display-canvas"}[e]||e)+"."+{114:"55d15cc4",551:"531ef360",726:"36afa7a3",871:"271c0109",1045:"9922394f",1122:"1957b96a",1265:"55a02b5a",1370:"1496da04",1889:"4b02d212",1940:"d4e8c5b9",2052:"a8ed8891",2277:"83e80fbf",3039:"b464a596",3144:"b60bf1f3",3171:"01b43f94",3233:"91b64cbf",3426:"fb6ffa15",4041:"d0dafc02",4306:"2443e1cb",4422:"533e95c7",4603:"1e380ebe",4658:"df491375",4765:"b570abab",4837:"1533c6b0",5250:"aa8a219f",5384:"b76b4b24",5399:"b1b4981d",5552:"185e1236",6006:"aa7a3018",6519:"4ddc3bd5",6773:"ef4413a1",7146:"7d2da15a",7218:"7bdc6392",7304:"2ae2d399",7721:"e7aaf5c2",7733:"037d6b91",7920:"8fd94cae",8939:"7b3cecc3",8989:"2b239acc",9140:"dd4f8e2e",9515:"2b74919b",9559:"f28defcc",9823:"331140e5",9844:"4a3a83f7"}[e]+".js",S.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),S.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="@next-bricks/diagram:",S.l=(r,n,a,o)=>{if(e[r])e[r].push(n);else{var l,i;if(void 0!==a)for(var s=document.getElementsByTagName("script"),c=0;c<s.length;c++){var d=s[c];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+a){l=d;break}}l||(i=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,S.nc&&l.setAttribute("nonce",S.nc),l.setAttribute("data-webpack",t+a),l.src=r),e[r]=[n];var u=(t,n)=>{l.onerror=l.onload=null,clearTimeout(f);var a=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),a&&a.forEach((e=>e(n))),t)return t(n)},f=setTimeout(u.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=u.bind(null,l.onerror),l.onload=u.bind(null,l.onload),i&&document.head.appendChild(l)}},S.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},S.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{S.S={};var e={},t={};S.I=(r,n)=>{n||(n=[]);var a=t[r];if(a||(a=t[r]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[r])return e[r];S.o(S.S,r)||(S.S[r]={});var o=S.S[r],l="@next-bricks/diagram",i=(e,t,r,n)=>{var a=o[e]=o[e]||{},i=a[t];(!i||!i.loaded&&(!n!=!i.eager?n:l>i.from))&&(a[t]={get:r,from:l,eager:!!n})},s=[];return"default"===r&&(i("@babel/parser","7.27.2",(()=>S.e(6773).then((()=>()=>S(6773))))),i("@easyops-cn/brick-next-pipes","0.7.3",(()=>Promise.all([S.e(4306),S.e(1030),S.e(1916),S.e(5310)]).then((()=>()=>S(4306))))),i("@next-core/cook","2.5.10",(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(1122))))),i("@next-core/element","1.2.18",(()=>S.e(1045).then((()=>()=>S(1045))))),i("@next-core/http","1.2.13",(()=>S.e(8989).then((()=>()=>S(8989))))),i("@next-core/i18n","1.0.83",(()=>Promise.all([S.e(4558),S.e(7117),S.e(671),S.e(5552)]).then((()=>()=>S(5552))))),i("@next-core/inject","1.0.58",(()=>Promise.all([S.e(1030),S.e(9933),S.e(2277)]).then((()=>()=>S(2277))))),i("@next-core/loader","1.6.16",(()=>S.e(5399).then((()=>()=>S(7780))))),i("@next-core/pipes","2.0.34",(()=>S.e(6519).then((()=>()=>S(6519))))),i("@next-core/react-element","1.0.37",(()=>Promise.all([S.e(8769),S.e(7921),S.e(9435),S.e(114)]).then((()=>()=>S(114))))),i("@next-core/react-runtime","1.7.28",(()=>Promise.all([S.e(1030),S.e(8769),S.e(1280),S.e(9475),S.e(4837)]).then((()=>()=>S(4837))))),i("@next-core/runtime","1.65.6",(()=>Promise.all([S.e(9140),S.e(1030),S.e(4558),S.e(1916),S.e(1361),S.e(7117),S.e(1321),S.e(4210)]).then((()=>()=>S(9140))))),i("@next-core/supply","2.3.7",(()=>Promise.all([S.e(1030),S.e(1916),S.e(9933),S.e(9559)]).then((()=>()=>S(9559))))),i("@next-core/theme","1.6.0",(()=>Promise.all([S.e(1889),S.e(2052)]).then((()=>()=>S(1889))))),i("@next-core/utils/general","1.8.4",(()=>S.e(871).then((()=>()=>S(871))))),i("@next-core/utils/storyboard","1.8.4",(()=>Promise.all([S.e(1030),S.e(4558),S.e(1321),S.e(7146)]).then((()=>()=>S(7146))))),i("history","4.10.1",(()=>S.e(5384).then((()=>()=>S(5384))))),i("i18next-browser-languagedetector","7.2.2",(()=>S.e(726).then((()=>()=>S(726))))),i("i18next","22.5.1",(()=>S.e(7304).then((()=>()=>S(7304))))),i("js-yaml","3.14.1",(()=>S.e(9515).then((()=>()=>S(9515))))),i("lodash","4.17.21",(()=>S.e(5250).then((()=>()=>S(5250))))),i("moment/locale/zh-cn.js","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(1329))))),i("moment","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(9420))))),i("react-dom","0.0.0-experimental-ee8509801-20230117",(()=>Promise.all([S.e(3144),S.e(8769)]).then((()=>()=>S(3144))))),i("react","0.0.0-experimental-ee8509801-20230117",(()=>S.e(4041).then((()=>()=>S(4041)))))),e[r]=s.length?Promise.all(s).then((()=>e[r]=1)):1}}})(),(()=>{var e;S.g.importScripts&&(e=S.g.location+"");var t=S.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),S.p=e})(),r=e=>{var t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=r[1]?t(r[1]):[];return r[2]&&(n.length++,n.push.apply(n,t(r[2]))),r[3]&&(n.push([]),n.push.apply(n,t(r[3]))),n},n=(e,t)=>{e=r(e),t=r(t);for(var n=0;;){if(n>=e.length)return n<t.length&&"u"!=(typeof t[n])[0];var a=e[n],o=(typeof a)[0];if(n>=t.length)return"u"==o;var l=t[n],i=(typeof l)[0];if(o!=i)return"o"==o&&"n"==i||"s"==i||"u"==o;if("o"!=o&&"u"!=o&&a!=l)return a<l;n++}},a=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,r+="u"==(typeof(i=e[o]))[0]?"-":(n>0?".":"")+(n=2,i);return r}var l=[];for(o=1;o<e.length;o++){var i=e[o];l.push(0===i?"not("+s()+")":1===i?"("+s()+" || "+s()+")":2===i?l.pop()+" "+l.pop():a(i))}return s();function s(){return l.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,t)=>{if(0 in e){t=r(t);var n=e[0],a=n<0;a&&(n=-n-1);for(var l=0,i=1,s=!0;;i++,l++){var c,d,u=i<e.length?(typeof e[i])[0]:"";if(l>=t.length||"o"==(d=(typeof(c=t[l]))[0]))return!s||("u"==u?i>n&&!a:""==u!=a);if("u"==d){if(!s||"u"!=u)return!1}else if(s)if(u==d)if(i<=n){if(c!=e[i])return!1}else{if(a?c>e[i]:c<e[i])return!1;c!=e[i]&&(s=!1)}else if("s"!=u&&"n"!=u){if(a||i<=n)return!1;s=!1,i--}else{if(i<=n||d<u!=a)return!1;s=!1}else"s"!=u&&"n"!=u&&(s=!1,i--)}}var f=[],h=f.pop.bind(f);for(l=1;l<e.length;l++){var p=e[l];f.push(1==p?h()|h():2==p?h()&h():p?o(p,t):!h())}return!!h()},l=(e,t)=>e&&S.o(e,t),i=e=>(e.loaded=1,e.get()),s=e=>Object.keys(e).reduce(((t,r)=>(e[r].eager&&(t[r]=e[r]),t)),{}),c=(e,t,r,a)=>{var l=a?s(e[t]):e[t];return(t=Object.keys(l).reduce(((e,t)=>!o(r,t)||e&&!n(e,t)?e:t),0))&&l[t]},d=(e,t,r)=>{var a=r?s(e[t]):e[t];return Object.keys(a).reduce(((e,t)=>!e||!a[e].loaded&&n(e,t)?t:e),0)},u=(e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+a(n)+")",f=(e,t,r,n,o)=>{var l=e[r];return"No satisfying version ("+a(n)+")"+(o?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map((e=>e+" from "+l[e].from)).join(", ")},h=e=>{throw new Error(e)},p=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},b=(e,t,r)=>r?r():((e,t)=>h("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),v=(m=e=>function(t,r,n,a,o){var l=S.I(t);return l&&l.then&&!n?l.then(e.bind(e,t,S.S[t],r,!1,a,o)):e(t,S.S[t],r,n,a,o)})(((e,t,r,n,a,o)=>{if(!l(t,r))return b(e,r,o);var s=c(t,r,a,n);return s?i(s):o?o():void h(f(t,e,r,a,n))})),g=m(((e,t,r,n,a,s)=>{if(!l(t,r))return b(e,r,s);var c=d(t,r,n);return o(a,c)||p(u(t,r,c,a)),i(t[r][c])})),x={},y={1030:()=>g("default","lodash",!1,[1,4,17,21],(()=>S.e(5250).then((()=>()=>S(5250))))),1916:()=>g("default","moment",!1,[0],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(9420))))),5310:()=>g("default","js-yaml",!1,[0],(()=>S.e(9515).then((()=>()=>S(9515))))),580:()=>g("default","@babel/parser",!1,[0],(()=>S.e(6773).then((()=>()=>S(6773))))),4558:()=>g("default","@next-core/utils/general",!1,[1,1,8,4],(()=>S.e(871).then((()=>()=>S(871))))),7117:()=>g("default","@next-core/i18n",!1,[1,1,0,83],(()=>Promise.all([S.e(671),S.e(3171)]).then((()=>()=>S(5552))))),848:()=>g("default","i18next-browser-languagedetector",!1,[0],(()=>S.e(726).then((()=>()=>S(726))))),5630:()=>g("default","i18next",!1,[0],(()=>S.e(7304).then((()=>()=>S(7304))))),9933:()=>g("default","@next-core/pipes",!1,[0],(()=>S.e(6519).then((()=>()=>S(6519))))),8377:()=>g("default","@easyops-cn/brick-next-pipes",!1,[0],(()=>Promise.all([S.e(4306),S.e(1030),S.e(1916),S.e(5310)]).then((()=>()=>S(4306))))),8769:()=>v("default","react",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(4041).then((()=>()=>S(4041))))),7921:()=>v("default","@next-core/element",!1,[1,1,2,18],(()=>S.e(3426).then((()=>()=>S(1045))))),9435:()=>v("default","react-dom",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(3144).then((()=>()=>S(3144))))),1280:()=>v("default","@next-core/react-element",!1,[1,1,0,37],(()=>Promise.all([S.e(7921),S.e(9435),S.e(7733)]).then((()=>()=>S(114))))),9475:()=>g("default","@next-core/runtime",!1,[1,1,65,6],(()=>Promise.all([S.e(9140),S.e(4558),S.e(1916),S.e(1361),S.e(7117),S.e(1321),S.e(4210)]).then((()=>()=>S(9140))))),1361:()=>g("default","@next-core/http",!1,[0],(()=>S.e(1370).then((()=>()=>S(8989))))),1321:()=>g("default","@next-core/cook",!1,[0],(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(1122))))),0:()=>g("default","@next-core/utils/storyboard",!1,[1,1,8,4],(()=>S.e(4765).then((()=>()=>S(7146))))),1732:()=>g("default","history",!1,[0],(()=>S.e(5384).then((()=>()=>S(5384))))),1858:()=>g("default","moment/locale/zh-cn.js",!1,[0],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(1329))))),4167:()=>g("default","@next-core/supply",!1,[0],(()=>Promise.all([S.e(9933),S.e(1940)]).then((()=>()=>S(9559))))),5599:()=>g("default","@next-core/loader",!1,[0],(()=>S.e(5399).then((()=>()=>S(7780))))),9283:()=>g("default","@next-core/inject",!1,[0],(()=>Promise.all([S.e(9933),S.e(4658)]).then((()=>()=>S(2277))))),5168:()=>g("default","@next-core/theme",!1,[1,1,6,0],(()=>S.e(1889).then((()=>()=>S(1889))))),8247:()=>v("default","@next-core/react-runtime",!1,[1,1,7,28],(()=>S.e(7218).then((()=>()=>S(4837)))))},P={580:[580],671:[848,5630],1030:[1030],1280:[1280],1321:[1321],1361:[1361],1916:[1916],4210:[0,1732,1858,4167,5599,9283],4558:[4558],4603:[8247],5168:[5168],5310:[5310],6519:[8377],7117:[7117],7921:[7921],8769:[8769],9435:[9435],9475:[9475],9933:[9933]},w={},S.f.consumes=(e,t)=>{S.o(P,e)&&P[e].forEach((e=>{if(S.o(x,e))return t.push(x[e]);if(!w[e]){var r=t=>{x[e]=0,S.m[e]=r=>{delete S.c[e],r.exports=t()}};w[e]=!0;var n=t=>{delete x[e],S.m[e]=r=>{throw delete S.c[e],t}};try{var a=y[e]();a.then?t.push(x[e]=a.then(r).catch(n)):r(a)}catch(e){n(e)}}}))},(()=>{var e={2691:0};S.f.j=(t,r)=>{var n=S.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else if(/^(1(030|280|321|361|916)|5(168|310|80)|9(435|475|933)|4210|4558|671|7117|7921|8769)$/.test(t))e[t]=0;else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=S.p+S.u(t),l=new Error;S.l(o,(r=>{if(S.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",l.name="ChunkLoadError",l.type=a,l.request=o,n[1](l)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,a,[o,l,i]=r,s=0;if(o.some((t=>0!==e[t]))){for(n in l)S.o(l,n)&&(S.m[n]=l[n]);i&&i(S)}for(t&&t(r);s<o.length;s++)a=o[s],S.o(e,a)&&e[a]&&e[a][0](),e[a]=0},r=globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),S.nc=void 0;var E=S(9476);window["bricks/diagram"]=E})();
|
|
2
|
+
//# sourceMappingURL=index.d02e1663.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d02e1663.js","mappings":"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","sources":["webpack:///webpack/runtime/load script","webpack:///webpack/runtime/consumes","webpack:///webpack/container-entry","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///webpack/runtime/sharing","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce","webpack:///webpack/startup"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"@next-bricks/diagram:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map((p=>{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&\"u\"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e<t;r++}\n}\nvar rangeToString = (range) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a<range.length;a++){e--,n+=\"u\"==(typeof(t=range[a]))[0]?\"-\":(e>0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?\"not(\"+o()+\")\":1===t?\"(\"+o()+\" || \"+o()+\")\":2===t?g.pop()+\" \"+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,\"$1\")}\n}\nvar satisfy = (range, version) => {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:\"\";if(n>=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if(\"s\"!=g&&\"n\"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else\"s\"!=g&&\"n\"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();\n}\nvar exists = (scope, key) => {\n\treturn scope && __webpack_require__.o(scope, key);\n}\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar eagerOnly = (versions) => {\n\treturn Object.keys(versions).reduce((filtered, version) => {\n\t\t\tif (versions[version].eager) {\n\t\t\t\tfiltered[version] = versions[version];\n\t\t\t}\n\t\t\treturn filtered;\n\t}, {});\n};\nvar findLatestVersion = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key];\n};\nvar findSatisfyingVersion = (scope, key, requiredVersion, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion, eager) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \")\" + (eager ? \" for eager consumption\" : \"\") + \" of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar fail = (msg) => {\n\tthrow new Error(msg);\n}\nvar failAsNotExist = (scopeName, key) => {\n\treturn fail(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n}\nvar warn = /*#__PURE__*/ (msg) => {\n\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n};\nvar init = (fn) => (function(scopeName, key, eager, c, d) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then && !eager) {\n\t\treturn promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], key, false, c, d));\n\t}\n\treturn fn(scopeName, __webpack_require__.S[scopeName], key, eager, c, d);\n});\n\nvar useFallback = (scopeName, key, fallback) => {\n\treturn fallback ? fallback() : failAsNotExist(scopeName, key);\n}\nvar load = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\twarn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadStrictVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\tif (fallback) return fallback();\n\tfail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\treturn get(scope[key][version]);\n});\nvar loadSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\twarn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar loadStrictSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\tfail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t1030: () => (loadSingletonVersion(\"default\", \"lodash\", false, [1,4,17,21], () => (__webpack_require__.e(5250).then(() => (() => (__webpack_require__(5250))))))),\n\t1916: () => (loadSingletonVersion(\"default\", \"moment\", false, [0], () => (Promise.all([__webpack_require__.e(7721), __webpack_require__.e(9844)]).then(() => (() => (__webpack_require__(9420))))))),\n\t5310: () => (loadSingletonVersion(\"default\", \"js-yaml\", false, [0], () => (__webpack_require__.e(9515).then(() => (() => (__webpack_require__(9515))))))),\n\t580: () => (loadSingletonVersion(\"default\", \"@babel/parser\", false, [0], () => (__webpack_require__.e(6773).then(() => (() => (__webpack_require__(6773))))))),\n\t4558: () => (loadSingletonVersion(\"default\", \"@next-core/utils/general\", false, [1,1,8,4], () => (__webpack_require__.e(871).then(() => (() => (__webpack_require__(871))))))),\n\t7117: () => (loadSingletonVersion(\"default\", \"@next-core/i18n\", false, [1,1,0,83], () => (Promise.all([__webpack_require__.e(671), __webpack_require__.e(3171)]).then(() => (() => (__webpack_require__(5552))))))),\n\t848: () => (loadSingletonVersion(\"default\", \"i18next-browser-languagedetector\", false, [0], () => (__webpack_require__.e(726).then(() => (() => (__webpack_require__(726))))))),\n\t5630: () => (loadSingletonVersion(\"default\", \"i18next\", false, [0], () => (__webpack_require__.e(7304).then(() => (() => (__webpack_require__(7304))))))),\n\t9933: () => (loadSingletonVersion(\"default\", \"@next-core/pipes\", false, [0], () => (__webpack_require__.e(6519).then(() => (() => (__webpack_require__(6519))))))),\n\t8377: () => (loadSingletonVersion(\"default\", \"@easyops-cn/brick-next-pipes\", false, [0], () => (Promise.all([__webpack_require__.e(4306), __webpack_require__.e(1030), __webpack_require__.e(1916), __webpack_require__.e(5310)]).then(() => (() => (__webpack_require__(4306))))))),\n\t8769: () => (loadStrictVersion(\"default\", \"react\", false, [6,0,0,0,,\"experimental-ee8509801-20230117\"], () => (__webpack_require__.e(4041).then(() => (() => (__webpack_require__(4041))))))),\n\t7921: () => (loadStrictVersion(\"default\", \"@next-core/element\", false, [1,1,2,18], () => (__webpack_require__.e(3426).then(() => (() => (__webpack_require__(1045))))))),\n\t9435: () => (loadStrictVersion(\"default\", \"react-dom\", false, [6,0,0,0,,\"experimental-ee8509801-20230117\"], () => (__webpack_require__.e(3144).then(() => (() => (__webpack_require__(3144))))))),\n\t1280: () => (loadStrictVersion(\"default\", \"@next-core/react-element\", false, [1,1,0,37], () => (Promise.all([__webpack_require__.e(7921), __webpack_require__.e(9435), __webpack_require__.e(7733)]).then(() => (() => (__webpack_require__(114))))))),\n\t9475: () => (loadSingletonVersion(\"default\", \"@next-core/runtime\", false, [1,1,65,6], () => (Promise.all([__webpack_require__.e(9140), __webpack_require__.e(4558), __webpack_require__.e(1916), __webpack_require__.e(1361), __webpack_require__.e(7117), __webpack_require__.e(1321), __webpack_require__.e(4210)]).then(() => (() => (__webpack_require__(9140))))))),\n\t1361: () => (loadSingletonVersion(\"default\", \"@next-core/http\", false, [0], () => (__webpack_require__.e(1370).then(() => (() => (__webpack_require__(8989))))))),\n\t1321: () => (loadSingletonVersion(\"default\", \"@next-core/cook\", false, [0], () => (Promise.all([__webpack_require__.e(1122), __webpack_require__.e(580)]).then(() => (() => (__webpack_require__(1122))))))),\n\t0: () => (loadSingletonVersion(\"default\", \"@next-core/utils/storyboard\", false, [1,1,8,4], () => (__webpack_require__.e(4765).then(() => (() => (__webpack_require__(7146))))))),\n\t1732: () => (loadSingletonVersion(\"default\", \"history\", false, [0], () => (__webpack_require__.e(5384).then(() => (() => (__webpack_require__(5384))))))),\n\t1858: () => (loadSingletonVersion(\"default\", \"moment/locale/zh-cn.js\", false, [0], () => (Promise.all([__webpack_require__.e(7721), __webpack_require__.e(9844)]).then(() => (() => (__webpack_require__(1329))))))),\n\t4167: () => (loadSingletonVersion(\"default\", \"@next-core/supply\", false, [0], () => (Promise.all([__webpack_require__.e(9933), __webpack_require__.e(1940)]).then(() => (() => (__webpack_require__(9559))))))),\n\t5599: () => (loadSingletonVersion(\"default\", \"@next-core/loader\", false, [0], () => (__webpack_require__.e(5399).then(() => (() => (__webpack_require__(7780))))))),\n\t9283: () => (loadSingletonVersion(\"default\", \"@next-core/inject\", false, [0], () => (Promise.all([__webpack_require__.e(9933), __webpack_require__.e(4658)]).then(() => (() => (__webpack_require__(2277))))))),\n\t5168: () => (loadSingletonVersion(\"default\", \"@next-core/theme\", false, [1,1,6,0], () => (__webpack_require__.e(1889).then(() => (() => (__webpack_require__(1889))))))),\n\t8247: () => (loadStrictVersion(\"default\", \"@next-core/react-runtime\", false, [1,1,7,28], () => (__webpack_require__.e(7218).then(() => (() => (__webpack_require__(4837)))))))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"580\": [\n\t\t580\n\t],\n\t\"671\": [\n\t\t848,\n\t\t5630\n\t],\n\t\"1030\": [\n\t\t1030\n\t],\n\t\"1280\": [\n\t\t1280\n\t],\n\t\"1321\": [\n\t\t1321\n\t],\n\t\"1361\": [\n\t\t1361\n\t],\n\t\"1916\": [\n\t\t1916\n\t],\n\t\"4210\": [\n\t\t0,\n\t\t1732,\n\t\t1858,\n\t\t4167,\n\t\t5599,\n\t\t9283\n\t],\n\t\"4558\": [\n\t\t4558\n\t],\n\t\"4603\": [\n\t\t8247\n\t],\n\t\"5168\": [\n\t\t5168\n\t],\n\t\"5310\": [\n\t\t5310\n\t],\n\t\"6519\": [\n\t\t8377\n\t],\n\t\"7117\": [\n\t\t7117\n\t],\n\t\"7921\": [\n\t\t7921\n\t],\n\t\"8769\": [\n\t\t8769\n\t],\n\t\"9435\": [\n\t\t9435\n\t],\n\t\"9475\": [\n\t\t9475\n\t],\n\t\"9933\": [\n\t\t9933\n\t]\n};\nvar startedInstallModules = {};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tif(!startedInstallModules[id]) {\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tstartedInstallModules[id] = true;\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t\t}\n\t\t});\n\t}\n}","var moduleMap = {\n\t\"./eo-diagram\": () => {\n\t\treturn Promise.all(/* eo-diagram */[__webpack_require__.e(7920), __webpack_require__.e(1030), __webpack_require__.e(8769), __webpack_require__.e(7921), __webpack_require__.e(1280), __webpack_require__.e(5168), __webpack_require__.e(9475), __webpack_require__.e(4603), __webpack_require__.e(1361), __webpack_require__.e(3233), __webpack_require__.e(3039)]).then(() => (() => ((__webpack_require__(1508)))));\n\t},\n\t\"./editable-label\": () => {\n\t\treturn Promise.all(/* editable-label */[__webpack_require__.e(8769), __webpack_require__.e(7921), __webpack_require__.e(1280), __webpack_require__.e(5168), __webpack_require__.e(6006)]).then(() => (() => ((__webpack_require__(3328)))));\n\t},\n\t\"./eo-draw-canvas\": () => {\n\t\treturn Promise.all(/* eo-draw-canvas */[__webpack_require__.e(7920), __webpack_require__.e(1265), __webpack_require__.e(1030), __webpack_require__.e(8769), __webpack_require__.e(7921), __webpack_require__.e(4558), __webpack_require__.e(1280), __webpack_require__.e(5168), __webpack_require__.e(9435), __webpack_require__.e(9475), __webpack_require__.e(4603), __webpack_require__.e(551), __webpack_require__.e(8939)]).then(() => (() => ((__webpack_require__(9068)))));\n\t},\n\t\"./experimental-node\": () => {\n\t\treturn Promise.all(/* experimental-node */[__webpack_require__.e(8769), __webpack_require__.e(7921), __webpack_require__.e(1280), __webpack_require__.e(5168), __webpack_require__.e(4422)]).then(() => (() => ((__webpack_require__(5568)))));\n\t},\n\t\"./eo-display-canvas\": () => {\n\t\treturn Promise.all(/* eo-display-canvas */[__webpack_require__.e(7920), __webpack_require__.e(1265), __webpack_require__.e(1030), __webpack_require__.e(8769), __webpack_require__.e(7921), __webpack_require__.e(4558), __webpack_require__.e(1280), __webpack_require__.e(5168), __webpack_require__.e(9435), __webpack_require__.e(9475), __webpack_require__.e(4603), __webpack_require__.e(551), __webpack_require__.e(8939), __webpack_require__.e(9823)]).then(() => (() => ((__webpack_require__(6094)))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"chunks/\" + ({\"3039\":\"eo-diagram\",\"4422\":\"experimental-node\",\"6006\":\"editable-label\",\"8939\":\"eo-draw-canvas\",\"9823\":\"eo-display-canvas\"}[chunkId] || chunkId) + \".\" + {\"114\":\"55d15cc4\",\"551\":\"531ef360\",\"726\":\"36afa7a3\",\"871\":\"271c0109\",\"1045\":\"9922394f\",\"1122\":\"1957b96a\",\"1265\":\"55a02b5a\",\"1370\":\"1496da04\",\"1889\":\"4b02d212\",\"1940\":\"d4e8c5b9\",\"2052\":\"a8ed8891\",\"2277\":\"83e80fbf\",\"3039\":\"b464a596\",\"3144\":\"b60bf1f3\",\"3171\":\"01b43f94\",\"3233\":\"91b64cbf\",\"3426\":\"fb6ffa15\",\"4041\":\"d0dafc02\",\"4306\":\"2443e1cb\",\"4422\":\"533e95c7\",\"4603\":\"1e380ebe\",\"4658\":\"df491375\",\"4765\":\"b570abab\",\"4837\":\"1533c6b0\",\"5250\":\"aa8a219f\",\"5384\":\"b76b4b24\",\"5399\":\"b1b4981d\",\"5552\":\"185e1236\",\"6006\":\"aa7a3018\",\"6519\":\"4ddc3bd5\",\"6773\":\"ef4413a1\",\"7146\":\"7d2da15a\",\"7218\":\"7bdc6392\",\"7304\":\"2ae2d399\",\"7721\":\"e7aaf5c2\",\"7733\":\"037d6b91\",\"7920\":\"8fd94cae\",\"8939\":\"7b3cecc3\",\"8989\":\"2b239acc\",\"9140\":\"dd4f8e2e\",\"9515\":\"2b74919b\",\"9559\":\"f28defcc\",\"9823\":\"331140e5\",\"9844\":\"4a3a83f7\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"@next-bricks/diagram\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"@babel/parser\", \"7.27.2\", () => (__webpack_require__.e(6773).then(() => (() => (__webpack_require__(6773))))));\n\t\t\tregister(\"@easyops-cn/brick-next-pipes\", \"0.7.3\", () => (Promise.all([__webpack_require__.e(4306), __webpack_require__.e(1030), __webpack_require__.e(1916), __webpack_require__.e(5310)]).then(() => (() => (__webpack_require__(4306))))));\n\t\t\tregister(\"@next-core/cook\", \"2.5.10\", () => (Promise.all([__webpack_require__.e(1122), __webpack_require__.e(580)]).then(() => (() => (__webpack_require__(1122))))));\n\t\t\tregister(\"@next-core/element\", \"1.2.18\", () => (__webpack_require__.e(1045).then(() => (() => (__webpack_require__(1045))))));\n\t\t\tregister(\"@next-core/http\", \"1.2.13\", () => (__webpack_require__.e(8989).then(() => (() => (__webpack_require__(8989))))));\n\t\t\tregister(\"@next-core/i18n\", \"1.0.83\", () => (Promise.all([__webpack_require__.e(4558), __webpack_require__.e(7117), __webpack_require__.e(671), __webpack_require__.e(5552)]).then(() => (() => (__webpack_require__(5552))))));\n\t\t\tregister(\"@next-core/inject\", \"1.0.58\", () => (Promise.all([__webpack_require__.e(1030), __webpack_require__.e(9933), __webpack_require__.e(2277)]).then(() => (() => (__webpack_require__(2277))))));\n\t\t\tregister(\"@next-core/loader\", \"1.6.16\", () => (__webpack_require__.e(5399).then(() => (() => (__webpack_require__(7780))))));\n\t\t\tregister(\"@next-core/pipes\", \"2.0.34\", () => (__webpack_require__.e(6519).then(() => (() => (__webpack_require__(6519))))));\n\t\t\tregister(\"@next-core/react-element\", \"1.0.37\", () => (Promise.all([__webpack_require__.e(8769), __webpack_require__.e(7921), __webpack_require__.e(9435), __webpack_require__.e(114)]).then(() => (() => (__webpack_require__(114))))));\n\t\t\tregister(\"@next-core/react-runtime\", \"1.7.28\", () => (Promise.all([__webpack_require__.e(1030), __webpack_require__.e(8769), __webpack_require__.e(1280), __webpack_require__.e(9475), __webpack_require__.e(4837)]).then(() => (() => (__webpack_require__(4837))))));\n\t\t\tregister(\"@next-core/runtime\", \"1.65.6\", () => (Promise.all([__webpack_require__.e(9140), __webpack_require__.e(1030), __webpack_require__.e(4558), __webpack_require__.e(1916), __webpack_require__.e(1361), __webpack_require__.e(7117), __webpack_require__.e(1321), __webpack_require__.e(4210)]).then(() => (() => (__webpack_require__(9140))))));\n\t\t\tregister(\"@next-core/supply\", \"2.3.7\", () => (Promise.all([__webpack_require__.e(1030), __webpack_require__.e(1916), __webpack_require__.e(9933), __webpack_require__.e(9559)]).then(() => (() => (__webpack_require__(9559))))));\n\t\t\tregister(\"@next-core/theme\", \"1.6.0\", () => (Promise.all([__webpack_require__.e(1889), __webpack_require__.e(2052)]).then(() => (() => (__webpack_require__(1889))))));\n\t\t\tregister(\"@next-core/utils/general\", \"1.8.4\", () => (__webpack_require__.e(871).then(() => (() => (__webpack_require__(871))))));\n\t\t\tregister(\"@next-core/utils/storyboard\", \"1.8.4\", () => (Promise.all([__webpack_require__.e(1030), __webpack_require__.e(4558), __webpack_require__.e(1321), __webpack_require__.e(7146)]).then(() => (() => (__webpack_require__(7146))))));\n\t\t\tregister(\"history\", \"4.10.1\", () => (__webpack_require__.e(5384).then(() => (() => (__webpack_require__(5384))))));\n\t\t\tregister(\"i18next-browser-languagedetector\", \"7.2.2\", () => (__webpack_require__.e(726).then(() => (() => (__webpack_require__(726))))));\n\t\t\tregister(\"i18next\", \"22.5.1\", () => (__webpack_require__.e(7304).then(() => (() => (__webpack_require__(7304))))));\n\t\t\tregister(\"js-yaml\", \"3.14.1\", () => (__webpack_require__.e(9515).then(() => (() => (__webpack_require__(9515))))));\n\t\t\tregister(\"lodash\", \"4.17.21\", () => (__webpack_require__.e(5250).then(() => (() => (__webpack_require__(5250))))));\n\t\t\tregister(\"moment/locale/zh-cn.js\", \"2.30.1\", () => (Promise.all([__webpack_require__.e(7721), __webpack_require__.e(9844)]).then(() => (() => (__webpack_require__(1329))))));\n\t\t\tregister(\"moment\", \"2.30.1\", () => (Promise.all([__webpack_require__.e(7721), __webpack_require__.e(9844)]).then(() => (() => (__webpack_require__(9420))))));\n\t\t\tregister(\"react-dom\", \"0.0.0-experimental-ee8509801-20230117\", () => (Promise.all([__webpack_require__.e(3144), __webpack_require__.e(8769)]).then(() => (() => (__webpack_require__(3144))))));\n\t\t\tregister(\"react\", \"0.0.0-experimental-ee8509801-20230117\", () => (__webpack_require__.e(4041).then(() => (() => (__webpack_require__(4041))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2691: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(1(030|280|321|361|916)|5(168|310|80)|9(435|475|933)|4210|4558|671|7117|7921|8769)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunk_next_bricks_diagram\"] = globalThis[\"webpackChunk_next_bricks_diagram\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(9476);\n"],"names":["inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","exists","get","eagerOnly","findSatisfyingVersion","findSingletonVersionKey","getInvalidSingletonVersionMessage","getInvalidVersionMessage","fail","warn","init","useFallback","loadStrictVersion","loadSingletonVersion","installedModules","moduleToHandlerMapping","chunkMapping","startedInstallModules","moduleMap","Promise","all","__webpack_require__","e","then","module","getScope","R","o","resolve","Error","undefined","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","loaded","__webpack_modules__","call","m","c","n","getter","__esModule","a","definition","key","Object","defineProperty","enumerable","f","chunkId","keys","reduce","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","target","head","appendChild","r","Symbol","toStringTag","value","nmd","paths","children","initPromises","initTokens","initToken","indexOf","scope","uniqueName","register","version","factory","eager","versions","activeVersion","from","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","replace","p","str","split","map","exec","apply","b","t","range","pop","entry","filtered","requiredVersion","scopeName","join","msg","console","fallback","failAsNotExist","promise","satisfyingVersion","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
|