diff --git a/package-lock.json b/package-lock.json index 2d78249e..aadf9dea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "@codemirror/lint": "^6.8.5", "@viz-js/viz": "^3.12.0", "codemirror": "^6.0.2", + "mermaid": "^11.14.0", "ngx-json-viewer": "^3.2.1", "ngx-markdown": "^21.0.1", "ngx-vflow": "^1.16.4", @@ -890,7 +891,6 @@ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", "license": "MIT", - "optional": true, "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" @@ -2542,52 +2542,44 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz", "integrity": "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@chevrotain/cst-dts-gen": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.1.2.tgz", - "integrity": "sha512-XTsjvDVB5nDZBQB8o0o/0ozNelQtn2KrUVteIHSlPd2VAV2utEb6JzyCJaJ8tGxACR4RiBNWy5uYUHX2eji88Q==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-12.0.0.tgz", + "integrity": "sha512-fSL4KXjTl7cDgf0B5Rip9Q05BOrYvkJV/RrBTE/bKDN096E4hN/ySpcBK5B24T76dlQ2i32Zc3PAE27jFnFrKg==", "license": "Apache-2.0", - "optional": true, "dependencies": { - "@chevrotain/gast": "11.1.2", - "@chevrotain/types": "11.1.2", - "lodash-es": "4.17.23" + "@chevrotain/gast": "12.0.0", + "@chevrotain/types": "12.0.0" } }, "node_modules/@chevrotain/gast": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.1.2.tgz", - "integrity": "sha512-Z9zfXR5jNZb1Hlsd/p+4XWeUFugrHirq36bKzPWDSIacV+GPSVXdk+ahVWZTwjhNwofAWg/sZg58fyucKSQx5g==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-12.0.0.tgz", + "integrity": "sha512-1ne/m3XsIT8aEdrvT33so0GUC+wkctpUPK6zU9IlOyJLUbR0rg4G7ZiApiJbggpgPir9ERy3FRjT6T7lpgetnQ==", "license": "Apache-2.0", - "optional": true, "dependencies": { - "@chevrotain/types": "11.1.2", - "lodash-es": "4.17.23" + "@chevrotain/types": "12.0.0" } }, "node_modules/@chevrotain/regexp-to-ast": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.1.2.tgz", - "integrity": "sha512-nMU3Uj8naWer7xpZTYJdxbAs6RIv/dxYzkYU8GSwgUtcAAlzjcPfX1w+RKRcYG8POlzMeayOQ/znfwxEGo5ulw==", - "license": "Apache-2.0", - "optional": true + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-12.0.0.tgz", + "integrity": "sha512-p+EW9MaJwgaHguhoqwOtx/FwuGr+DnNn857sXWOi/mClXIkPGl3rn7hGNWvo31HA3vyeQxjqe+H36yZJwYU8cA==", + "license": "Apache-2.0" }, "node_modules/@chevrotain/types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.1.2.tgz", - "integrity": "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==", - "license": "Apache-2.0", - "optional": true + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-12.0.0.tgz", + "integrity": "sha512-S+04vjFQKeuYw0/eW3U52LkAHQsB1ASxsPGsLPUyQgrZ2iNNibQrsidruDzjEX2JYfespXMG0eZmXlhA6z7nWA==", + "license": "Apache-2.0" }, "node_modules/@chevrotain/utils": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.1.2.tgz", - "integrity": "sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA==", - "license": "Apache-2.0", - "optional": true + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-12.0.0.tgz", + "integrity": "sha512-lB59uJoaGIfOOL9knQqQRfhl9g7x8/wqFkp13zTdkRu1huG9kg6IJs1O8hqj9rs6h7orGxHJUKb+mX3rPbWGhA==", + "license": "Apache-2.0" }, "node_modules/@codemirror/autocomplete": { "version": "6.20.1", @@ -3260,15 +3252,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@iconify/utils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", "license": "MIT", - "optional": true, "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/types": "^2.0.0", @@ -4376,11 +4366,10 @@ "license": "MIT" }, "node_modules/@mermaid-js/parser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.0.1.tgz", - "integrity": "sha512-opmV19kN1JsK0T6HhhokHpcVkqKpF+x2pPDKKM2ThHtZAB5F4PROopk0amuVYK5qMrIA4erzpNm8gmPNJgMDxQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.1.0.tgz", + "integrity": "sha512-gxK9ZX2+Fex5zu8LhRQoMeMPEHbc73UKZ0FQ54YrQtUxE1VVhMwzeNtKRPAu5aXks4FasbMe4xB4bWrmq6Jlxw==", "license": "MIT", - "optional": true, "dependencies": { "langium": "^4.0.0" } @@ -6477,7 +6466,6 @@ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", @@ -6515,15 +6503,13 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-axis": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-selection": "*" } @@ -6533,7 +6519,6 @@ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-selection": "*" } @@ -6542,8 +6527,7 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-color": { "version": "3.1.3", @@ -6556,7 +6540,6 @@ "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" @@ -6566,15 +6549,13 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-dispatch": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-drag": { "version": "3.0.7", @@ -6589,22 +6570,19 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-ease": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-fetch": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-dsv": "*" } @@ -6613,22 +6591,19 @@ "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-format": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "license": "MIT", - "optional": true, "dependencies": { "@types/geojson": "*" } @@ -6637,8 +6612,7 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", @@ -6653,36 +6627,31 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-polygon": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-quadtree": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-random": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-scale": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-time": "*" } @@ -6691,8 +6660,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-selection": { "version": "3.0.11", @@ -6705,7 +6673,6 @@ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-path": "*" } @@ -6714,29 +6681,25 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-time-format": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-timer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/d3-transition": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "license": "MIT", - "optional": true, "dependencies": { "@types/d3-selection": "*" } @@ -6809,8 +6772,7 @@ "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.5", @@ -6968,7 +6930,6 @@ "resolved": "https://registry.npmjs.org/@upsetjs/venn.js/-/venn.js-2.0.0.tgz", "integrity": "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==", "license": "MIT", - "optional": true, "optionalDependencies": { "d3-selection": "^3.0.0", "d3-transition": "^3.0.1" @@ -7978,31 +7939,31 @@ "license": "MIT" }, "node_modules/chevrotain": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.1.2.tgz", - "integrity": "sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-12.0.0.tgz", + "integrity": "sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ==", "license": "Apache-2.0", - "optional": true, "dependencies": { - "@chevrotain/cst-dts-gen": "11.1.2", - "@chevrotain/gast": "11.1.2", - "@chevrotain/regexp-to-ast": "11.1.2", - "@chevrotain/types": "11.1.2", - "@chevrotain/utils": "11.1.2", - "lodash-es": "4.17.23" + "@chevrotain/cst-dts-gen": "12.0.0", + "@chevrotain/gast": "12.0.0", + "@chevrotain/regexp-to-ast": "12.0.0", + "@chevrotain/types": "12.0.0", + "@chevrotain/utils": "12.0.0" + }, + "engines": { + "node": ">=22.0.0" } }, "node_modules/chevrotain-allstar": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", - "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.4.3.tgz", + "integrity": "sha512-2X4mkroolSMKqW+H22pyPMUVDqYZzPhephTmg/NODKb1IGYPHfxfhcW0EjS7wcPJNbze2i4vBWT7zT5FKF2lrQ==", "license": "MIT", - "optional": true, "dependencies": { - "lodash-es": "^4.17.21" + "lodash-es": "^4.18.1" }, "peerDependencies": { - "chevrotain": "^11.0.0" + "chevrotain": "^12.0.0" } }, "node_modules/chokidar": { @@ -8261,7 +8222,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "license": "MIT", - "optional": true, "engines": { "node": ">= 12" } @@ -8336,8 +8296,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/connect": { "version": "3.7.0", @@ -8566,7 +8525,6 @@ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", "license": "MIT", - "optional": true, "dependencies": { "layout-base": "^1.0.0" } @@ -8710,7 +8668,6 @@ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", "license": "MIT", - "optional": true, "engines": { "node": ">=0.10" } @@ -8720,7 +8677,6 @@ "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", "license": "MIT", - "optional": true, "dependencies": { "cose-base": "^1.0.0" }, @@ -8733,7 +8689,6 @@ "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", "license": "MIT", - "optional": true, "dependencies": { "cose-base": "^2.2.0" }, @@ -8746,7 +8701,6 @@ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", "license": "MIT", - "optional": true, "dependencies": { "layout-base": "^2.0.0" } @@ -8755,15 +8709,13 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/d3": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", "license": "ISC", - "optional": true, "dependencies": { "d3-array": "3", "d3-axis": "3", @@ -8805,7 +8757,6 @@ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "license": "ISC", - "optional": true, "dependencies": { "internmap": "1 - 2" }, @@ -8818,7 +8769,6 @@ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -8828,7 +8778,6 @@ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", "license": "ISC", - "optional": true, "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -8845,7 +8794,6 @@ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", "license": "ISC", - "optional": true, "dependencies": { "d3-path": "1 - 3" }, @@ -8867,7 +8815,6 @@ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", "license": "ISC", - "optional": true, "dependencies": { "d3-array": "^3.2.0" }, @@ -8880,7 +8827,6 @@ "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", "license": "ISC", - "optional": true, "dependencies": { "delaunator": "5" }, @@ -8915,7 +8861,6 @@ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "license": "ISC", - "optional": true, "dependencies": { "commander": "7", "iconv-lite": "0.6", @@ -8941,7 +8886,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "license": "MIT", - "optional": true, "engines": { "node": ">= 10" } @@ -8951,7 +8895,6 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", - "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -8973,7 +8916,6 @@ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", "license": "ISC", - "optional": true, "dependencies": { "d3-dsv": "1 - 3" }, @@ -8986,7 +8928,6 @@ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "license": "ISC", - "optional": true, "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", @@ -9001,7 +8942,6 @@ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -9011,7 +8951,6 @@ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", "license": "ISC", - "optional": true, "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -9024,7 +8963,6 @@ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -9046,7 +8984,6 @@ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -9056,7 +8993,6 @@ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -9066,7 +9002,6 @@ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -9076,7 +9011,6 @@ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -9086,7 +9020,6 @@ "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", "license": "BSD-3-Clause", - "optional": true, "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" @@ -9097,7 +9030,6 @@ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", "license": "BSD-3-Clause", - "optional": true, "dependencies": { "internmap": "^1.0.0" } @@ -9106,15 +9038,13 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", - "license": "BSD-3-Clause", - "optional": true + "license": "BSD-3-Clause" }, "node_modules/d3-sankey/node_modules/d3-shape": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", "license": "BSD-3-Clause", - "optional": true, "dependencies": { "d3-path": "1" } @@ -9123,15 +9053,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "license": "ISC", - "optional": true + "license": "ISC" }, "node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "license": "ISC", - "optional": true, "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", @@ -9148,7 +9076,6 @@ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", "license": "ISC", - "optional": true, "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" @@ -9171,7 +9098,6 @@ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", "license": "ISC", - "optional": true, "dependencies": { "d3-path": "^3.1.0" }, @@ -9184,7 +9110,6 @@ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", "license": "ISC", - "optional": true, "dependencies": { "d3-array": "2 - 3" }, @@ -9197,7 +9122,6 @@ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "license": "ISC", - "optional": true, "dependencies": { "d3-time": "1 - 3" }, @@ -9254,7 +9178,6 @@ "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz", "integrity": "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==", "license": "MIT", - "optional": true, "dependencies": { "d3": "^7.9.0", "lodash-es": "^4.17.21" @@ -9274,8 +9197,7 @@ "version": "1.11.20", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/debug": { "version": "4.4.3", @@ -9343,7 +9265,6 @@ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", "license": "ISC", - "optional": true, "dependencies": { "robust-predicates": "^3.0.2" } @@ -9491,7 +9412,6 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", "license": "(MPL-2.0 OR Apache-2.0)", - "optional": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -10463,8 +10383,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/handle-thing": { "version": "2.0.1", @@ -10939,7 +10858,6 @@ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "license": "ISC", - "optional": true, "engines": { "node": ">=12" } @@ -12039,7 +11957,6 @@ "https://github.com/sponsors/katex" ], "license": "MIT", - "optional": true, "dependencies": { "commander": "^8.3.0" }, @@ -12050,8 +11967,7 @@ "node_modules/khroma": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", - "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", - "optional": true + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" }, "node_modules/kind-of": { "version": "6.0.3", @@ -12064,14 +11980,14 @@ } }, "node_modules/langium": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/langium/-/langium-4.2.1.tgz", - "integrity": "sha512-zu9QWmjpzJcomzdJQAHgDVhLGq5bLosVak1KVa40NzQHXfqr4eAHupvnPOVXEoLkg6Ocefvf/93d//SB7du4YQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/langium/-/langium-4.2.3.tgz", + "integrity": "sha512-sOPIi4hISFnY7twwV97ca1TsxpBtXq0URu/LL1AvxwccPG/RIBBlKS7a/f/EL6w8lTNaS0EFs/F+IdSOaqYpng==", "license": "MIT", - "optional": true, "dependencies": { - "chevrotain": "~11.1.1", - "chevrotain-allstar": "~0.3.1", + "@chevrotain/regexp-to-ast": "~12.0.0", + "chevrotain": "~12.0.0", + "chevrotain-allstar": "~0.4.3", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.11", "vscode-uri": "~3.1.0" @@ -12096,8 +12012,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/less": { "version": "4.4.2", @@ -12413,9 +12328,9 @@ "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", - "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", "license": "MIT" }, "node_modules/lodash.debounce": { @@ -12721,15 +12636,14 @@ "license": "MIT" }, "node_modules/mermaid": { - "version": "11.13.0", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.13.0.tgz", - "integrity": "sha512-fEnci+Immw6lKMFI8sqzjlATTyjLkRa6axrEgLV2yHTfv8r+h1wjFbV6xeRtd4rUV1cS4EpR9rwp3Rci7TRWDw==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.14.0.tgz", + "integrity": "sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g==", "license": "MIT", - "optional": true, "dependencies": { "@braintree/sanitize-url": "^7.1.1", "@iconify/utils": "^3.0.2", - "@mermaid-js/parser": "^1.0.1", + "@mermaid-js/parser": "^1.1.0", "@types/d3": "^7.4.3", "@upsetjs/venn.js": "^2.0.0", "cytoscape": "^3.33.1", @@ -12755,7 +12669,6 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", "license": "MIT", - "optional": true, "bin": { "marked": "bin/marked.js" }, @@ -13055,7 +12968,6 @@ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.1.tgz", "integrity": "sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==", "license": "MIT", - "optional": true, "dependencies": { "acorn": "^8.16.0", "pathe": "^2.0.3", @@ -13685,8 +13597,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/pacote": { "version": "21.3.1", @@ -13848,8 +13759,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", @@ -13930,8 +13840,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", @@ -13992,7 +13901,6 @@ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", "license": "MIT", - "optional": true, "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", @@ -14021,15 +13929,13 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/points-on-path": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", "license": "MIT", - "optional": true, "dependencies": { "path-data-parser": "0.1.0", "points-on-curve": "0.2.0" @@ -14652,8 +14558,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", - "license": "Unlicense", - "optional": true + "license": "Unlicense" }, "node_modules/rolldown": { "version": "1.0.0-rc.4", @@ -14737,7 +14642,6 @@ "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", "license": "MIT", - "optional": true, "dependencies": { "hachure-fill": "^0.5.2", "path-data-parser": "^0.1.0", @@ -14779,8 +14683,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause", - "optional": true + "license": "BSD-3-Clause" }, "node_modules/rxjs": { "version": "7.8.2", @@ -14834,7 +14737,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true, "license": "MIT" }, "node_modules/safevalues": { @@ -15805,8 +15707,7 @@ "version": "4.3.6", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", @@ -15998,7 +15899,6 @@ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", "license": "MIT", - "optional": true, "engines": { "node": ">=18" } @@ -16085,7 +15985,6 @@ "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", "license": "MIT", - "optional": true, "engines": { "node": ">=6.10" } @@ -16204,8 +16103,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/undici": { "version": "7.22.0", @@ -16371,7 +16269,6 @@ "https://github.com/sponsors/ctavan" ], "license": "MIT", - "optional": true, "bin": { "uuid": "dist/esm/bin/uuid" } @@ -16538,7 +16435,6 @@ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", "license": "MIT", - "optional": true, "engines": { "node": ">=14.0.0" } @@ -16548,7 +16444,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", "license": "MIT", - "optional": true, "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, @@ -16561,7 +16456,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", "license": "MIT", - "optional": true, "dependencies": { "vscode-jsonrpc": "8.2.0", "vscode-languageserver-types": "3.17.5" @@ -16571,22 +16465,19 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/vscode-languageserver-types": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/vscode-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/w3c-keyname": { "version": "2.2.8", @@ -17627,4 +17518,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 21f36f35..4244bf46 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@codemirror/lint": "^6.8.5", "@viz-js/viz": "^3.12.0", "codemirror": "^6.0.2", + "mermaid": "^11.14.0", "ngx-json-viewer": "^3.2.1", "ngx-markdown": "^21.0.1", "ngx-vflow": "^1.16.4", diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index da35510f..88a0b12e 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -38,6 +38,7 @@ import {GRAPH_SERVICE} from './core/services/interfaces/graph'; import {LOCAL_FILE_SERVICE} from './core/services/interfaces/localfile'; import {SAFE_VALUES_SERVICE} from './core/services/interfaces/safevalues'; import {STRING_TO_COLOR_SERVICE} from './core/services/interfaces/string-to-color'; +import {THEME_SERVICE} from './core/services/interfaces/theme'; import {LOCATION_SERVICE} from './core/services/location.service'; import {SESSION_SERVICE} from './core/services/interfaces/session'; import {STREAM_CHAT_SERVICE} from './core/services/interfaces/stream-chat'; @@ -55,6 +56,7 @@ import {MockSafeValuesService} from './core/services/testing/mock-safevalues.ser import {MockSessionService} from './core/services/testing/mock-session.service'; import {MockStreamChatService} from './core/services/testing/mock-stream-chat.service'; import {MockStringToColorService} from './core/services/testing/mock-string-to-color.service'; +import {MockThemeService} from './core/services/testing/mock-theme.service'; import {MockTraceService} from './core/services/testing/mock-trace.service'; import {MockUiStateService} from './core/services/testing/mock-ui-state.service'; import {MockVideoService} from './core/services/testing/mock-video.service'; @@ -193,6 +195,10 @@ describe('AppComponent', () => { provide: AGENT_BUILDER_SERVICE, useValue: mockAgentBuilderService, }, + { + provide: THEME_SERVICE, + useClass: MockThemeService, + }, ], }) .compileComponents(); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 05243a37..490830ac 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -19,7 +19,7 @@ import {ChangeDetectionStrategy, Component} from '@angular/core'; import { ChatComponent } from './components/chat/chat.component'; @Component({ - changeDetection: ChangeDetectionStrategy.Eager, + changeDetection: ChangeDetectionStrategy.Default, selector: 'app-root', templateUrl: './app.component.html', styleUrl: './app.component.scss', diff --git a/src/app/components/add-callback-dialog/add-callback-dialog.component.scss b/src/app/components/add-callback-dialog/add-callback-dialog.component.scss index 0fc5dbef..04b9f39f 100644 --- a/src/app/components/add-callback-dialog/add-callback-dialog.component.scss +++ b/src/app/components/add-callback-dialog/add-callback-dialog.component.scss @@ -42,12 +42,7 @@ mat-form-field { margin-top: 8px !important; } -.mat-mdc-raised-button.mat-secondary:not([disabled]) { - background-color: #8ab4f8; -} - .callback-info-container { - background-color: rgba(138, 180, 248, 0.08); border: 1px solid rgba(138, 180, 248, 0.2); border-radius: 8px; padding: 16px; diff --git a/src/app/components/add-callback-dialog/add-callback-dialog.component.ts b/src/app/components/add-callback-dialog/add-callback-dialog.component.ts index 23786265..7f047ac3 100644 --- a/src/app/components/add-callback-dialog/add-callback-dialog.component.ts +++ b/src/app/components/add-callback-dialog/add-callback-dialog.component.ts @@ -44,7 +44,7 @@ export class ImmediateErrorStateMatcher implements ErrorStateMatcher { } @Component({ - changeDetection: ChangeDetectionStrategy.Eager, + changeDetection: ChangeDetectionStrategy.Default, selector: 'app-add-callback-dialog', templateUrl: './add-callback-dialog.component.html', styleUrl: './add-callback-dialog.component.scss', diff --git a/src/app/components/add-item-dialog/add-item-dialog.component.scss b/src/app/components/add-item-dialog/add-item-dialog.component.scss index 2d0dfb8c..7d1a9c8e 100644 --- a/src/app/components/add-item-dialog/add-item-dialog.component.scss +++ b/src/app/components/add-item-dialog/add-item-dialog.component.scss @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@use '@angular/material' as mat; .new-app-title { color: var(--mdc-dialog-subhead-color) !important; diff --git a/src/app/components/add-item-dialog/add-item-dialog.component.ts b/src/app/components/add-item-dialog/add-item-dialog.component.ts index 45e620ee..b27a9039 100644 --- a/src/app/components/add-item-dialog/add-item-dialog.component.ts +++ b/src/app/components/add-item-dialog/add-item-dialog.component.ts @@ -27,14 +27,14 @@ import { Router } from '@angular/router'; import { AgentNode } from '../../core/models/AgentBuilder'; import { YamlUtils } from '../../../utils/yaml-utils'; import { AGENT_SERVICE } from '../../core/services/interfaces/agent'; -import { MatSnackBar } from '@angular/material/snack-bar'; +import { SnackbarService } from '../../core/services/snackbar.service'; import { MatFormField, MatHint } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; import { FormsModule } from '@angular/forms'; import { MatButton } from '@angular/material/button'; @Component({ - changeDetection: ChangeDetectionStrategy.Eager, + changeDetection: ChangeDetectionStrategy.Default, selector: 'app-add-item-dialog', templateUrl: './add-item-dialog.component.html', styleUrl: './add-item-dialog.component.scss', @@ -54,7 +54,7 @@ export class AddItemDialogComponent { // TODO: Replace the eval dialogs to use this common dialog component protected newAppName = ''; private agentService = inject(AGENT_SERVICE); - private _snackBar = inject(MatSnackBar); + private _snackbarService = inject(SnackbarService); private router = inject(Router); isNameValid(): boolean { @@ -89,7 +89,7 @@ export class AddItemDialogComponent { // Check validation first if (!this.isNameValid()) { - this._snackBar.open( + this._snackbarService.open( 'App name must start with a letter or underscore and can only contain letters, digits, and underscores.', 'OK', ); @@ -97,7 +97,7 @@ export class AddItemDialogComponent { } if (this.data.existingAppNames.includes(trimmedName)) { - this._snackBar.open( + this._snackbarService.open( 'App name already exists. Please choose a different name.', 'OK', ); @@ -127,7 +127,7 @@ export class AddItemDialogComponent { }); this.dialogRef.close(true); } else { - this._snackBar.open('Something went wrong, please try again', 'OK'); + this._snackbarService.open('Something went wrong, please try again', 'OK'); } }); } diff --git a/src/app/components/add-tool-dialog/add-tool-dialog.component.scss b/src/app/components/add-tool-dialog/add-tool-dialog.component.scss index 5021f35b..ffd5212a 100644 --- a/src/app/components/add-tool-dialog/add-tool-dialog.component.scss +++ b/src/app/components/add-tool-dialog/add-tool-dialog.component.scss @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@use '@angular/material' as mat; .dialog-title { color: var(--mdc-dialog-supporting-text-color) !important; @@ -29,7 +28,6 @@ mat-dialog-content { } .tool-info-container { - background-color: rgba(138, 180, 248, 0.08); border: 1px solid rgba(138, 180, 248, 0.2); border-radius: 8px; padding: 16px; diff --git a/src/app/components/add-tool-dialog/add-tool-dialog.component.ts b/src/app/components/add-tool-dialog/add-tool-dialog.component.ts index c4429d62..c02062a8 100644 --- a/src/app/components/add-tool-dialog/add-tool-dialog.component.ts +++ b/src/app/components/add-tool-dialog/add-tool-dialog.component.ts @@ -27,7 +27,7 @@ import { MatIcon } from '@angular/material/icon'; import { TooltipUtil } from '../../../utils/tooltip-util'; @Component({ - changeDetection: ChangeDetectionStrategy.Eager, + changeDetection: ChangeDetectionStrategy.Default, selector: 'app-add-tool-dialog', templateUrl: './add-tool-dialog.component.html', styleUrl: './add-tool-dialog.component.scss', diff --git a/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.html b/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.html new file mode 100644 index 00000000..77fa48ac --- /dev/null +++ b/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.html @@ -0,0 +1,84 @@ + + +
+ diff --git a/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.scss b/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.scss new file mode 100644 index 00000000..620c60ce --- /dev/null +++ b/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.scss @@ -0,0 +1,217 @@ +/** + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:host { + display: block; + position: fixed; + inset: 0; + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; +} + +.overlay-backdrop { + position: absolute; + inset: 0; + background-color: rgba(0, 0, 0, 0.7); +} + +.overlay-panel { + position: relative; + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; + background-color: transparent; + color: var(--mat-sys-on-surface); + border-radius: 0; + overflow: hidden; + box-shadow: none; +} + +.overlay-header { + display: flex; + align-items: center; + height: 48px; + padding: 0 16px; + box-sizing: border-box; + border-bottom: 1px solid var(--mat-sys-outline-variant); + background-color: var(--mat-sys-surface-container); +} + +.overlay-content { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.graph-container { + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; +} + +.agent-info { + margin: 0 0 8px 0; + font-size: 14px; + color: var(--mdc-dialog-supporting-text-color); + + strong { + font-weight: 600; + color: var(--mdc-dialog-supporting-text-color); + } +} + +.svg-container { + flex: 1; + position: relative; + overflow: hidden; + background-color: transparent; + + ::ng-deep svg { + position: absolute; + top: 0; + left: 0; + transform-origin: 0 0; + cursor: grab; + border-radius: 16px; + box-shadow: 0 4px 12px rgba(0,0,0,0.3); + + /* Hide internal graphviz background so the container's background shines through perfectly */ + > g.graph > polygon:first-child { + fill: transparent !important; + stroke: transparent !important; + } + + opacity: 0; + transition: opacity 0.1s ease-in-out; + + &.ready { + opacity: 1; + } + + &:active { + cursor: grabbing; + } + } +} + +:host-context(.dark-theme) .svg-container ::ng-deep svg { + background-color: #0e172a; +} + +:host-context(.light-theme) .svg-container ::ng-deep svg { + background-color: #f9fafc; +} + +.loading-container, +.error-container, +.no-graph-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 400px; + padding: 40px; +} + +.loading-container p, +.error-container p, +.no-graph-container p { + margin-top: 16px; + font-size: 14px; + color: var(--mdc-dialog-supporting-text-color); +} + +.error-icon { + font-size: 48px; + width: 48px; + height: 48px; + color: #f44336; +} + +.error-message { + color: #f44336 !important; +} + +.large-icon { + font-size: 64px; + width: 64px; + height: 64px; + color: var(--mdc-dialog-supporting-text-color); + opacity: 0.6; +} + +.breadcrumb-container { + display: flex; + align-items: center; + gap: 4px; + margin-left: 8px; + padding: 0; + background-color: transparent; + flex-wrap: wrap; +} + +.breadcrumb-item { + background: none; + border: none; + padding: 4px 8px; + cursor: pointer; + color: var(--mat-sys-primary); + font-size: 13px; + border-radius: 4px; + transition: background-color 0.2s; + + &:hover:not(:disabled) { + background-color: var(--mat-sys-surface-container-high); + } + + &:disabled, &.active { + color: var(--mat-sys-on-surface); + cursor: default; + font-weight: 600; + } +} + +.breadcrumb-separator { + font-size: 16px; + width: 16px; + height: 16px; + color: var(--mat-sys-on-surface-variant); +} + +.graph-legend { + display: flex; + align-items: center; + gap: 16px; + margin-right: 16px; + font-size: 13px; + color: var(--mat-sys-on-surface-variant); + border: 1px solid var(--mat-sys-outline-variant); + border-radius: 8px; + padding: 6px 16px; + background-color: var(--mat-sys-surface-container-lowest); + + .legend-item { + display: flex; + align-items: center; + gap: 4px; + font-weight: 500; + } +} \ No newline at end of file diff --git a/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.ts b/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.ts new file mode 100644 index 00000000..f15fe0e1 --- /dev/null +++ b/src/app/components/agent-structure-graph-dialog/agent-structure-graph-dialog.ts @@ -0,0 +1,413 @@ +/** + * @license + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Component, inject, OnInit, signal, Input, Output, EventEmitter } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { CommonModule } from '@angular/common'; +import { SafeHtml } from '@angular/platform-browser'; +import { AGENT_SERVICE } from '../../core/services/interfaces/agent'; +import { GRAPH_SERVICE } from '../../core/services/interfaces/graph'; +import { SAFE_VALUES_SERVICE } from '../../core/services/interfaces/safevalues'; +import { THEME_SERVICE } from '../../core/services/interfaces/theme'; +import { addSvgNodeHoverEffects } from '../../utils/svg-interaction.utils'; +import { NavigationStackItem, hasNestedStructure, findNodeInLevel, getNodesAtLevel } from '../../utils/graph-navigation.utils'; +import { getNodeName } from '../../utils/graph-layout.utils'; + +@Component({ + selector: 'app-agent-structure-graph-dialog', + templateUrl: './agent-structure-graph-dialog.html', + styleUrls: ['./agent-structure-graph-dialog.scss'], + standalone: true, + imports: [ + CommonModule, + MatButtonModule, + MatIconModule, + MatProgressSpinnerModule, + ], +}) +export class AgentStructureGraphDialogComponent implements OnInit { + @Input() appName!: string; + @Input() preloadedAppData?: any; + @Input() preloadedLightGraphSvg?: Record