hookehuyr

feat: 新增release页面和自定义多边形节点

新增release.vue页面,用于展示拖拽面板。在node-model中新增自定义多边形节点,并更新相关路由和依赖配置。
...@@ -41,6 +41,9 @@ importers: ...@@ -41,6 +41,9 @@ importers:
41 tailwindcss: 41 tailwindcss:
42 specifier: ^4.0.12 42 specifier: ^4.0.12
43 version: 4.0.14 43 version: 4.0.14
44 + uuid:
45 + specifier: ^11.1.0
46 + version: 11.1.0
44 vue: 47 vue:
45 specifier: ^3.5.13 48 specifier: ^3.5.13
46 version: 3.5.13 49 version: 3.5.13
...@@ -50,19 +53,19 @@ importers: ...@@ -50,19 +53,19 @@ importers:
50 devDependencies: 53 devDependencies:
51 '@vitejs/plugin-vue': 54 '@vitejs/plugin-vue':
52 specifier: ^4.5.2 55 specifier: ^4.5.2
53 - version: 4.6.2(vite@5.4.14(less@4.2.2)(sass-embedded@1.85.1))(vue@3.5.13) 56 + version: 4.6.2(vite@5.4.14(less@4.2.2)(sass-embedded@1.86.0))(vue@3.5.13)
54 less: 57 less:
55 specifier: ^4.2.2 58 specifier: ^4.2.2
56 version: 4.2.2 59 version: 4.2.2
57 sass-embedded: 60 sass-embedded:
58 specifier: ^1.85.1 61 specifier: ^1.85.1
59 - version: 1.85.1 62 + version: 1.86.0
60 unplugin-auto-import: 63 unplugin-auto-import:
61 specifier: ^19.1.1 64 specifier: ^19.1.1
62 version: 19.1.1(@vueuse/core@9.13.0(vue@3.5.13)) 65 version: 19.1.1(@vueuse/core@9.13.0(vue@3.5.13))
63 vite: 66 vite:
64 specifier: ^5.1.4 67 specifier: ^5.1.4
65 - version: 5.4.14(less@4.2.2)(sass-embedded@1.85.1) 68 + version: 5.4.14(less@4.2.2)(sass-embedded@1.86.0)
66 vite-plugin-dynamic-import: 69 vite-plugin-dynamic-import:
67 specifier: ^1.6.0 70 specifier: ^1.6.0
68 version: 1.6.0 71 version: 1.6.0
...@@ -89,8 +92,8 @@ packages: ...@@ -89,8 +92,8 @@ packages:
89 resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} 92 resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==}
90 engines: {node: '>=6.9.0'} 93 engines: {node: '>=6.9.0'}
91 94
92 - '@bufbuild/protobuf@2.2.3': 95 + '@bufbuild/protobuf@2.2.4':
93 - resolution: {integrity: sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==} 96 + resolution: {integrity: sha512-P9xQgtMh71TA7tHTnbDe68zcI+TPnkyyfBIhGaUr4iUEIXN7yI01DyjmmdEwXTk5OlISBJYkoxCVj2dwmHqIkA==}
94 97
95 '@ctrl/tinycolor@3.6.1': 98 '@ctrl/tinycolor@3.6.1':
96 resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} 99 resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
...@@ -287,98 +290,98 @@ packages: ...@@ -287,98 +290,98 @@ packages:
287 '@nyariv/sandboxjs@0.8.23': 290 '@nyariv/sandboxjs@0.8.23':
288 resolution: {integrity: sha512-OaD3i0czFTZzQFQdwgFVEqNyZVK19N6Jzmx/LjmDc+kiV751FQ2h3xscYkAeY4jfau2vZTZau+xR8fpkKrv/Ng==} 291 resolution: {integrity: sha512-OaD3i0czFTZzQFQdwgFVEqNyZVK19N6Jzmx/LjmDc+kiV751FQ2h3xscYkAeY4jfau2vZTZau+xR8fpkKrv/Ng==}
289 292
290 - '@rollup/rollup-android-arm-eabi@4.35.0': 293 + '@rollup/rollup-android-arm-eabi@4.36.0':
291 - resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} 294 + resolution: {integrity: sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==}
292 cpu: [arm] 295 cpu: [arm]
293 os: [android] 296 os: [android]
294 297
295 - '@rollup/rollup-android-arm64@4.35.0': 298 + '@rollup/rollup-android-arm64@4.36.0':
296 - resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} 299 + resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==}
297 cpu: [arm64] 300 cpu: [arm64]
298 os: [android] 301 os: [android]
299 302
300 - '@rollup/rollup-darwin-arm64@4.35.0': 303 + '@rollup/rollup-darwin-arm64@4.36.0':
301 - resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} 304 + resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==}
302 cpu: [arm64] 305 cpu: [arm64]
303 os: [darwin] 306 os: [darwin]
304 307
305 - '@rollup/rollup-darwin-x64@4.35.0': 308 + '@rollup/rollup-darwin-x64@4.36.0':
306 - resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} 309 + resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==}
307 cpu: [x64] 310 cpu: [x64]
308 os: [darwin] 311 os: [darwin]
309 312
310 - '@rollup/rollup-freebsd-arm64@4.35.0': 313 + '@rollup/rollup-freebsd-arm64@4.36.0':
311 - resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} 314 + resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==}
312 cpu: [arm64] 315 cpu: [arm64]
313 os: [freebsd] 316 os: [freebsd]
314 317
315 - '@rollup/rollup-freebsd-x64@4.35.0': 318 + '@rollup/rollup-freebsd-x64@4.36.0':
316 - resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} 319 + resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==}
317 cpu: [x64] 320 cpu: [x64]
318 os: [freebsd] 321 os: [freebsd]
319 322
320 - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': 323 + '@rollup/rollup-linux-arm-gnueabihf@4.36.0':
321 - resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} 324 + resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==}
322 cpu: [arm] 325 cpu: [arm]
323 os: [linux] 326 os: [linux]
324 327
325 - '@rollup/rollup-linux-arm-musleabihf@4.35.0': 328 + '@rollup/rollup-linux-arm-musleabihf@4.36.0':
326 - resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} 329 + resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==}
327 cpu: [arm] 330 cpu: [arm]
328 os: [linux] 331 os: [linux]
329 332
330 - '@rollup/rollup-linux-arm64-gnu@4.35.0': 333 + '@rollup/rollup-linux-arm64-gnu@4.36.0':
331 - resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} 334 + resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==}
332 cpu: [arm64] 335 cpu: [arm64]
333 os: [linux] 336 os: [linux]
334 337
335 - '@rollup/rollup-linux-arm64-musl@4.35.0': 338 + '@rollup/rollup-linux-arm64-musl@4.36.0':
336 - resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} 339 + resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==}
337 cpu: [arm64] 340 cpu: [arm64]
338 os: [linux] 341 os: [linux]
339 342
340 - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': 343 + '@rollup/rollup-linux-loongarch64-gnu@4.36.0':
341 - resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} 344 + resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==}
342 cpu: [loong64] 345 cpu: [loong64]
343 os: [linux] 346 os: [linux]
344 347
345 - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': 348 + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0':
346 - resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} 349 + resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==}
347 cpu: [ppc64] 350 cpu: [ppc64]
348 os: [linux] 351 os: [linux]
349 352
350 - '@rollup/rollup-linux-riscv64-gnu@4.35.0': 353 + '@rollup/rollup-linux-riscv64-gnu@4.36.0':
351 - resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} 354 + resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==}
352 cpu: [riscv64] 355 cpu: [riscv64]
353 os: [linux] 356 os: [linux]
354 357
355 - '@rollup/rollup-linux-s390x-gnu@4.35.0': 358 + '@rollup/rollup-linux-s390x-gnu@4.36.0':
356 - resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} 359 + resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==}
357 cpu: [s390x] 360 cpu: [s390x]
358 os: [linux] 361 os: [linux]
359 362
360 - '@rollup/rollup-linux-x64-gnu@4.35.0': 363 + '@rollup/rollup-linux-x64-gnu@4.36.0':
361 - resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} 364 + resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==}
362 cpu: [x64] 365 cpu: [x64]
363 os: [linux] 366 os: [linux]
364 367
365 - '@rollup/rollup-linux-x64-musl@4.35.0': 368 + '@rollup/rollup-linux-x64-musl@4.36.0':
366 - resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} 369 + resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==}
367 cpu: [x64] 370 cpu: [x64]
368 os: [linux] 371 os: [linux]
369 372
370 - '@rollup/rollup-win32-arm64-msvc@4.35.0': 373 + '@rollup/rollup-win32-arm64-msvc@4.36.0':
371 - resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} 374 + resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==}
372 cpu: [arm64] 375 cpu: [arm64]
373 os: [win32] 376 os: [win32]
374 377
375 - '@rollup/rollup-win32-ia32-msvc@4.35.0': 378 + '@rollup/rollup-win32-ia32-msvc@4.36.0':
376 - resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} 379 + resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==}
377 cpu: [ia32] 380 cpu: [ia32]
378 os: [win32] 381 os: [win32]
379 382
380 - '@rollup/rollup-win32-x64-msvc@4.35.0': 383 + '@rollup/rollup-win32-x64-msvc@4.36.0':
381 - resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} 384 + resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==}
382 cpu: [x64] 385 cpu: [x64]
383 os: [win32] 386 os: [win32]
384 387
...@@ -475,8 +478,8 @@ packages: ...@@ -475,8 +478,8 @@ packages:
475 buffer-builder@0.2.0: 478 buffer-builder@0.2.0:
476 resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} 479 resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==}
477 480
478 - caniuse-lite@1.0.30001704: 481 + caniuse-lite@1.0.30001706:
479 - resolution: {integrity: sha512-+L2IgBbV6gXB4ETf0keSvLr7JUrRVbIaB/lrQ1+z8mRcQiisG5k+lG6O4n6Y5q6f5EuNfaYXKgymucphlEXQew==} 482 + resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==}
480 483
481 classnames@2.5.1: 484 classnames@2.5.1:
482 resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} 485 resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
...@@ -502,8 +505,8 @@ packages: ...@@ -502,8 +505,8 @@ packages:
502 echarts@5.6.0: 505 echarts@5.6.0:
503 resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} 506 resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==}
504 507
505 - electron-to-chromium@1.5.118: 508 + electron-to-chromium@1.5.120:
506 - resolution: {integrity: sha512-yNDUus0iultYyVoEFLnQeei7LOQkL8wg8GQpkPCRrOlJXlcCwa6eGKZkxQ9ciHsqZyYbj8Jd94X1CTPzGm+uIA==} 509 + resolution: {integrity: sha512-oTUp3gfX1gZI+xfD2djr2rzQdHCwHzPQrrK0CD7WpTdF0nPdQ/INcRVjWgLdCT4a9W3jFObR9DAfsuyFQnI8CQ==}
507 510
508 element-plus@2.9.6: 511 element-plus@2.9.6:
509 resolution: {integrity: sha512-D9zU28Ce0s/9O/Vp3ewemikxzFVA6gdZyMwmWijHijo+t5/9H3sHRTIm1WlfeNpFW2Yq0y8nHXD0fU5YxU6qlQ==} 512 resolution: {integrity: sha512-D9zU28Ce0s/9O/Vp3ewemikxzFVA6gdZyMwmWijHijo+t5/9H3sHRTIm1WlfeNpFW2Yq0y8nHXD0fU5YxU6qlQ==}
...@@ -531,7 +534,7 @@ packages: ...@@ -531,7 +534,7 @@ packages:
531 engines: {node: '>=6'} 534 engines: {node: '>=6'}
532 535
533 escape-html@1.0.3: 536 escape-html@1.0.3:
534 - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 537 + resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=}
535 538
536 escape-string-regexp@5.0.0: 539 escape-string-regexp@5.0.0:
537 resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 540 resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
...@@ -685,8 +688,8 @@ packages: ...@@ -685,8 +688,8 @@ packages:
685 mousetrap@1.6.5: 688 mousetrap@1.6.5:
686 resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} 689 resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==}
687 690
688 - nanoid@3.3.9: 691 + nanoid@3.3.11:
689 - resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==} 692 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
690 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 693 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
691 hasBin: true 694 hasBin: true
692 695
...@@ -759,8 +762,8 @@ packages: ...@@ -759,8 +762,8 @@ packages:
759 resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 762 resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
760 engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 763 engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
761 764
762 - rollup@4.35.0: 765 + rollup@4.36.0:
763 - resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} 766 + resolution: {integrity: sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==}
764 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 767 engines: {node: '>=18.0.0', npm: '>=8.0.0'}
765 hasBin: true 768 hasBin: true
766 769
...@@ -773,128 +776,128 @@ packages: ...@@ -773,128 +776,128 @@ packages:
773 safer-buffer@2.1.2: 776 safer-buffer@2.1.2:
774 resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 777 resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
775 778
776 - sass-embedded-android-arm64@1.85.1: 779 + sass-embedded-android-arm64@1.86.0:
777 - resolution: {integrity: sha512-27oRheqNA3SJM2hAxpVbs7mCKUwKPWmEEhyiNFpBINb5ELVLg+Ck5RsGg+SJmo130ul5YX0vinmVB5uPWc8X5w==} 780 + resolution: {integrity: sha512-r7MZtlAI2VFUnKE8B5UOrpoE6OGpdf1dIB6ndoxb3oiURgMyfTVU7yvJcL12GGvtVwQ2boCj6dq//Lqq9CXPlQ==}
778 engines: {node: '>=14.0.0'} 781 engines: {node: '>=14.0.0'}
779 cpu: [arm64] 782 cpu: [arm64]
780 os: [android] 783 os: [android]
781 784
782 - sass-embedded-android-arm@1.85.1: 785 + sass-embedded-android-arm@1.86.0:
783 - resolution: {integrity: sha512-GkcgUGMZtEF9gheuE1dxCU0ZSAifuaFXi/aX7ZXvjtdwmTl9Zc/OHR9oiUJkc8IW9UI7H8TuwlTAA8+SwgwIeQ==} 786 + resolution: {integrity: sha512-NS8v6BCbzskXUMBtzfuB+j2yQMgiwg5edKHTYfQU7gAWai2hkRhS06YNEMff3aRxV0IFInxPRHOobd8xWPHqeA==}
784 engines: {node: '>=14.0.0'} 787 engines: {node: '>=14.0.0'}
785 cpu: [arm] 788 cpu: [arm]
786 os: [android] 789 os: [android]
787 790
788 - sass-embedded-android-ia32@1.85.1: 791 + sass-embedded-android-ia32@1.86.0:
789 - resolution: {integrity: sha512-f3x16NyRgtXFksIaO/xXKrUhttUBv8V0XsAR2Dhdb/yz4yrDrhzw9Wh8fmw7PlQqECcQvFaoDr3XIIM6lKzasw==} 792 + resolution: {integrity: sha512-UjfElrGaOTNOnxLZLxf6MFndFIe7zyK+81f83BioZ7/jcoAd6iCHZT8yQMvu8wINyVodPcaXZl8KxlKcl62VAA==}
790 engines: {node: '>=14.0.0'} 793 engines: {node: '>=14.0.0'}
791 cpu: [ia32] 794 cpu: [ia32]
792 os: [android] 795 os: [android]
793 796
794 - sass-embedded-android-riscv64@1.85.1: 797 + sass-embedded-android-riscv64@1.86.0:
795 - resolution: {integrity: sha512-IP6OijpJ8Mqo7XqCe0LsuZVbAxEFVboa0kXqqR5K55LebEplsTIA2GnmRyMay3Yr/2FVGsZbCb6Wlgkw23eCiA==} 798 + resolution: {integrity: sha512-TsqCLxHWLFS2mbpUkL/nge3jSkaPK2VmLkkoi5iO/EQT4SFvm1lNUgPwlLXu9DplZ+aqGVzRS9Y6Psjv+qW7kw==}
796 engines: {node: '>=14.0.0'} 799 engines: {node: '>=14.0.0'}
797 cpu: [riscv64] 800 cpu: [riscv64]
798 os: [android] 801 os: [android]
799 802
800 - sass-embedded-android-x64@1.85.1: 803 + sass-embedded-android-x64@1.86.0:
801 - resolution: {integrity: sha512-Mh7CA53wR3ADvXAYipFc/R3vV4PVOzoKwWzPxmq+7i8UZrtsVjKONxGtqWe9JG1mna0C9CRZAx0sv/BzbOJxWg==} 804 + resolution: {integrity: sha512-8Q263GgwGjz7Jkf7Eghp7NrwqskDL95WO9sKrNm9iOd2re/M48W7RN/lpdcZwrUnEOhueks0RRyYyZYBNRz8Tg==}
802 engines: {node: '>=14.0.0'} 805 engines: {node: '>=14.0.0'}
803 cpu: [x64] 806 cpu: [x64]
804 os: [android] 807 os: [android]
805 808
806 - sass-embedded-darwin-arm64@1.85.1: 809 + sass-embedded-darwin-arm64@1.86.0:
807 - resolution: {integrity: sha512-msWxzhvcP9hqGVegxVePVEfv9mVNTlUgGr6k7O7Ihji702mbtrH/lKwF4aRkkt4g1j7tv10+JtQXmTNi/pi9kA==} 810 + resolution: {integrity: sha512-d8oMEaIweq1tjrb/BT43igDviOMS1TeDpc51QF7vAHkt9drSjPmqEmbqStdFYPAGZj1j0RA4WCRoVl6jVixi/w==}
808 engines: {node: '>=14.0.0'} 811 engines: {node: '>=14.0.0'}
809 cpu: [arm64] 812 cpu: [arm64]
810 os: [darwin] 813 os: [darwin]
811 814
812 - sass-embedded-darwin-x64@1.85.1: 815 + sass-embedded-darwin-x64@1.86.0:
813 - resolution: {integrity: sha512-J4UFHUiyI9Z+mwYMwz11Ky9TYr3hY1fCxeQddjNGL/+ovldtb0yAIHvoVM0BGprQDm5JqhtUk8KyJ3RMJqpaAA==} 816 + resolution: {integrity: sha512-5NLRtn0ZUDBkfpKOsgLGl9B34po4Qui8Nff/lXTO+YkxBQFX4GoMkYNk9EJqHwoLLzICsxIhNDMMDiPGz7Fdrw==}
814 engines: {node: '>=14.0.0'} 817 engines: {node: '>=14.0.0'}
815 cpu: [x64] 818 cpu: [x64]
816 os: [darwin] 819 os: [darwin]
817 820
818 - sass-embedded-linux-arm64@1.85.1: 821 + sass-embedded-linux-arm64@1.86.0:
819 - resolution: {integrity: sha512-jGadetB03BMFG2rq3OXub/uvC/lGpbQOiLGEz3NLb2nRZWyauRhzDtvZqkr6BEhxgIWtMtz2020yD8ZJSw/r2w==} 822 + resolution: {integrity: sha512-50A+0rhahRDRkKkv+qS7GDAAkW1VPm2RCX4zY4JWydhV4NwMXr6HbkLnsJ2MGixCyibPh59iflMpNBhe7SEMNg==}
820 engines: {node: '>=14.0.0'} 823 engines: {node: '>=14.0.0'}
821 cpu: [arm64] 824 cpu: [arm64]
822 os: [linux] 825 os: [linux]
823 826
824 - sass-embedded-linux-arm@1.85.1: 827 + sass-embedded-linux-arm@1.86.0:
825 - resolution: {integrity: sha512-X0fDh95nNSw1wfRlnkE4oscoEA5Au4nnk785s9jghPFkTBg+A+5uB6trCjf0fM22+Iw6kiP4YYmDdw3BqxAKLQ==} 828 + resolution: {integrity: sha512-b6wm0+Il+blJDleRXAqA6JISGMjRb0/thTEg4NWgmiJwUoZjDycj5FTbfYPnLXjCEIMGaYmW3patrJ3JMJcT3Q==}
826 engines: {node: '>=14.0.0'} 829 engines: {node: '>=14.0.0'}
827 cpu: [arm] 830 cpu: [arm]
828 os: [linux] 831 os: [linux]
829 832
830 - sass-embedded-linux-ia32@1.85.1: 833 + sass-embedded-linux-ia32@1.86.0:
831 - resolution: {integrity: sha512-7HlYY90d9mitDtNi5s+S+5wYZrTVbkBH2/kf7ixrzh2BFfT0YM81UHLJRnGX93y9aOMBL6DSZAIfkt1RsV9bkQ==} 834 + resolution: {integrity: sha512-h0mr9w71TV3BRPk9JHr0flnRCznhkraY14gaj5T+t78vUFByOUMxp4hTr+JpZAR5mv0mIeoMwrQYwWJoqKI0mw==}
832 engines: {node: '>=14.0.0'} 835 engines: {node: '>=14.0.0'}
833 cpu: [ia32] 836 cpu: [ia32]
834 os: [linux] 837 os: [linux]
835 838
836 - sass-embedded-linux-musl-arm64@1.85.1: 839 + sass-embedded-linux-musl-arm64@1.86.0:
837 - resolution: {integrity: sha512-FLkIT0p18XOkR6wryJ13LqGBDsrYev2dRk9dtiU18NCpNXruKsdBQ1ZnWHVKB3h1dA9lFyEEisC0sooKdNfeOQ==} 840 + resolution: {integrity: sha512-5OZjiJIUyhvKJIGNDEjyRUWDe+W91hq4Bji27sy8gdEuDzPWLx4NzwpKwsBUALUfyW/J5dxgi0ZAQnI3HieyQg==}
838 engines: {node: '>=14.0.0'} 841 engines: {node: '>=14.0.0'}
839 cpu: [arm64] 842 cpu: [arm64]
840 os: [linux] 843 os: [linux]
841 844
842 - sass-embedded-linux-musl-arm@1.85.1: 845 + sass-embedded-linux-musl-arm@1.86.0:
843 - resolution: {integrity: sha512-5vcdEqE8QZnu6i6shZo7x2N36V7YUoFotWj2rGekII5ty7Nkaj+VtZhUEOp9tAzEOlaFuDp5CyO1kUCvweT64A==} 846 + resolution: {integrity: sha512-KZU70jBMVykC9HzS+o2FhrJaprFLDk3LWXVPtBFxgLlkcQ/apCkUCh2WVNViLhI2U4NrMSnTvd4kDnC/0m8qIw==}
844 engines: {node: '>=14.0.0'} 847 engines: {node: '>=14.0.0'}
845 cpu: [arm] 848 cpu: [arm]
846 os: [linux] 849 os: [linux]
847 850
848 - sass-embedded-linux-musl-ia32@1.85.1: 851 + sass-embedded-linux-musl-ia32@1.86.0:
849 - resolution: {integrity: sha512-N1093T84zQJor1yyIAdYScB5eAuQarGK1tKgZ4uTnxVlgA7Xi1lXV8Eh7ox9sDqKCaWkVQ3MjqU26vYRBeRWyw==} 852 + resolution: {integrity: sha512-vq9wJ7kaELrsNU6Ld6kvrIHxoIUWaD+5T6TQVj4SJP/iw1NjonyCDMQGGs6UgsIEzvaIwtlSlDbRewAq+4PchA==}
850 engines: {node: '>=14.0.0'} 853 engines: {node: '>=14.0.0'}
851 cpu: [ia32] 854 cpu: [ia32]
852 os: [linux] 855 os: [linux]
853 856
854 - sass-embedded-linux-musl-riscv64@1.85.1: 857 + sass-embedded-linux-musl-riscv64@1.86.0:
855 - resolution: {integrity: sha512-WRsZS/7qlfYXsa93FBpSruieuURIu7ySfFhzYfF1IbKrNAGwmbduutkHZh2ddm5/vQMvQ0Rdosgv+CslaQHMcw==} 858 + resolution: {integrity: sha512-UZJPu4zKe3phEzoSVRh5jcSicBBPe+jEbVNALHSSz881iOAYnDQXHITGeQ4mM1/7e/LTyryHk6EPBoaLOv6JrA==}
856 engines: {node: '>=14.0.0'} 859 engines: {node: '>=14.0.0'}
857 cpu: [riscv64] 860 cpu: [riscv64]
858 os: [linux] 861 os: [linux]
859 862
860 - sass-embedded-linux-musl-x64@1.85.1: 863 + sass-embedded-linux-musl-x64@1.86.0:
861 - resolution: {integrity: sha512-+OlLIilA5TnP0YEqTQ8yZtkW+bJIQYvzoGoNLUEskeyeGuOiIyn2CwL6G4JQB4xZQFaxPHb7JD3EueFkQbH0Pw==} 864 + resolution: {integrity: sha512-8taAgbWMk4QHneJcouWmWZJlmKa2O03g4I/CFo4bfMPL87bibY90pAsSDd+C+t81g0+2aK0/lY/BoB0r3qXLiA==}
862 engines: {node: '>=14.0.0'} 865 engines: {node: '>=14.0.0'}
863 cpu: [x64] 866 cpu: [x64]
864 os: [linux] 867 os: [linux]
865 868
866 - sass-embedded-linux-riscv64@1.85.1: 869 + sass-embedded-linux-riscv64@1.86.0:
867 - resolution: {integrity: sha512-mKKlOwMGLN7yP1p0gB5yG/HX4fYLnpWaqstNuOOXH+fOzTaNg0+1hALg0H0CDIqypPO74M5MS9T6FAJZGdT6dQ==} 870 + resolution: {integrity: sha512-yREY6o2sLwiiA03MWHVpnUliLscz0flEmFW/wzxYZJDqg9eZteB3hUWgZD63eLm2PTZsYxDQpjAHpa48nnIEmA==}
868 engines: {node: '>=14.0.0'} 871 engines: {node: '>=14.0.0'}
869 cpu: [riscv64] 872 cpu: [riscv64]
870 os: [linux] 873 os: [linux]
871 874
872 - sass-embedded-linux-x64@1.85.1: 875 + sass-embedded-linux-x64@1.86.0:
873 - resolution: {integrity: sha512-uKRTv0z8NgtHV7xSren78+yoWB79sNi7TMqI7Bxd8fcRNIgHQSA8QBdF8led2ETC004hr8h71BrY60RPO+SSvA==} 876 + resolution: {integrity: sha512-sH0F8np9PTgTbFcJWxfr1NzPkL5ID2NcpMtZyKPTdnn9NkE/L2UwXSo6xOvY0Duc4Hg+58wSrDnj6KbvdeHCPg==}
874 engines: {node: '>=14.0.0'} 877 engines: {node: '>=14.0.0'}
875 cpu: [x64] 878 cpu: [x64]
876 os: [linux] 879 os: [linux]
877 880
878 - sass-embedded-win32-arm64@1.85.1: 881 + sass-embedded-win32-arm64@1.86.0:
879 - resolution: {integrity: sha512-/GMiZXBOc6AEMBC3g25Rp+x8fq9Z6Ql7037l5rajBPhZ+DdFwtdHY0Ou3oIU6XuWUwD06U3ii4XufXVFhsP6PA==} 882 + resolution: {integrity: sha512-4O1XVUxLTIjMOvrziYwEZgvFqC5sF6t0hTAPJ+h2uiAUZg9Joo0PvuEedXurjISgDBsb5W5DTL9hH9q1BbP4cQ==}
880 engines: {node: '>=14.0.0'} 883 engines: {node: '>=14.0.0'}
881 cpu: [arm64] 884 cpu: [arm64]
882 os: [win32] 885 os: [win32]
883 886
884 - sass-embedded-win32-ia32@1.85.1: 887 + sass-embedded-win32-ia32@1.86.0:
885 - resolution: {integrity: sha512-L+4BWkKKBGFOKVQ2PQ5HwFfkM5FvTf1Xx2VSRvEWt9HxPXp6SPDho6zC8fqNQ3hSjoaoASEIJcSvgfdQYO0gdg==} 888 + resolution: {integrity: sha512-zuSP2axkGm4VaJWt38P464H+4424Swr9bzFNfbbznxe3Ue4RuqSBqwiLiYdg9Q1cecTQ2WGH7G7WO56KK7WLwg==}
886 engines: {node: '>=14.0.0'} 889 engines: {node: '>=14.0.0'}
887 cpu: [ia32] 890 cpu: [ia32]
888 os: [win32] 891 os: [win32]
889 892
890 - sass-embedded-win32-x64@1.85.1: 893 + sass-embedded-win32-x64@1.86.0:
891 - resolution: {integrity: sha512-/FO0AGKWxVfCk4GKsC0yXWBpUZdySe3YAAbQQL0lL6xUd1OiUY8Kow6g4Kc1TB/+z0iuQKKTqI/acJMEYl4iTQ==} 894 + resolution: {integrity: sha512-GVX0CHtukr3kjqfqretSlPiJzV7V4JxUjpRZV+yC9gUMTiDErilJh2Chw1r0+MYiYvumCDUSDlticmvJs7v0tA==}
892 engines: {node: '>=14.0.0'} 895 engines: {node: '>=14.0.0'}
893 cpu: [x64] 896 cpu: [x64]
894 os: [win32] 897 os: [win32]
895 898
896 - sass-embedded@1.85.1: 899 + sass-embedded@1.86.0:
897 - resolution: {integrity: sha512-0i+3h2Df/c71afluxC1SXqyyMmJlnKWfu9ZGdzwuKRM1OftEa2XM2myt5tR36CF3PanYrMjFKtRIj8PfSf838w==} 900 + resolution: {integrity: sha512-Ibq5DzxjSf9f/IJmKeHVeXlVqiZWdRJF+RXy6v6UupvMYVMU5Ei+teSFBvvpPD5bB2QhhnU/OJlSM0EBCtfr9g==}
898 engines: {node: '>=16.0.0'} 901 engines: {node: '>=16.0.0'}
899 hasBin: true 902 hasBin: true
900 903
...@@ -981,6 +984,10 @@ packages: ...@@ -981,6 +984,10 @@ packages:
981 peerDependencies: 984 peerDependencies:
982 browserslist: '>= 4.21.0' 985 browserslist: '>= 4.21.0'
983 986
987 + uuid@11.1.0:
988 + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
989 + hasBin: true
990 +
984 uuid@8.3.2: 991 uuid@8.3.2:
985 resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 992 resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
986 hasBin: true 993 hasBin: true
...@@ -1076,7 +1083,7 @@ snapshots: ...@@ -1076,7 +1083,7 @@ snapshots:
1076 '@babel/helper-string-parser': 7.25.9 1083 '@babel/helper-string-parser': 7.25.9
1077 '@babel/helper-validator-identifier': 7.25.9 1084 '@babel/helper-validator-identifier': 7.25.9
1078 1085
1079 - '@bufbuild/protobuf@2.2.3': {} 1086 + '@bufbuild/protobuf@2.2.4': {}
1080 1087
1081 '@ctrl/tinycolor@3.6.1': {} 1088 '@ctrl/tinycolor@3.6.1': {}
1082 1089
...@@ -1215,61 +1222,61 @@ snapshots: ...@@ -1215,61 +1222,61 @@ snapshots:
1215 1222
1216 '@nyariv/sandboxjs@0.8.23': {} 1223 '@nyariv/sandboxjs@0.8.23': {}
1217 1224
1218 - '@rollup/rollup-android-arm-eabi@4.35.0': 1225 + '@rollup/rollup-android-arm-eabi@4.36.0':
1219 optional: true 1226 optional: true
1220 1227
1221 - '@rollup/rollup-android-arm64@4.35.0': 1228 + '@rollup/rollup-android-arm64@4.36.0':
1222 optional: true 1229 optional: true
1223 1230
1224 - '@rollup/rollup-darwin-arm64@4.35.0': 1231 + '@rollup/rollup-darwin-arm64@4.36.0':
1225 optional: true 1232 optional: true
1226 1233
1227 - '@rollup/rollup-darwin-x64@4.35.0': 1234 + '@rollup/rollup-darwin-x64@4.36.0':
1228 optional: true 1235 optional: true
1229 1236
1230 - '@rollup/rollup-freebsd-arm64@4.35.0': 1237 + '@rollup/rollup-freebsd-arm64@4.36.0':
1231 optional: true 1238 optional: true
1232 1239
1233 - '@rollup/rollup-freebsd-x64@4.35.0': 1240 + '@rollup/rollup-freebsd-x64@4.36.0':
1234 optional: true 1241 optional: true
1235 1242
1236 - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': 1243 + '@rollup/rollup-linux-arm-gnueabihf@4.36.0':
1237 optional: true 1244 optional: true
1238 1245
1239 - '@rollup/rollup-linux-arm-musleabihf@4.35.0': 1246 + '@rollup/rollup-linux-arm-musleabihf@4.36.0':
1240 optional: true 1247 optional: true
1241 1248
1242 - '@rollup/rollup-linux-arm64-gnu@4.35.0': 1249 + '@rollup/rollup-linux-arm64-gnu@4.36.0':
1243 optional: true 1250 optional: true
1244 1251
1245 - '@rollup/rollup-linux-arm64-musl@4.35.0': 1252 + '@rollup/rollup-linux-arm64-musl@4.36.0':
1246 optional: true 1253 optional: true
1247 1254
1248 - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': 1255 + '@rollup/rollup-linux-loongarch64-gnu@4.36.0':
1249 optional: true 1256 optional: true
1250 1257
1251 - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': 1258 + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0':
1252 optional: true 1259 optional: true
1253 1260
1254 - '@rollup/rollup-linux-riscv64-gnu@4.35.0': 1261 + '@rollup/rollup-linux-riscv64-gnu@4.36.0':
1255 optional: true 1262 optional: true
1256 1263
1257 - '@rollup/rollup-linux-s390x-gnu@4.35.0': 1264 + '@rollup/rollup-linux-s390x-gnu@4.36.0':
1258 optional: true 1265 optional: true
1259 1266
1260 - '@rollup/rollup-linux-x64-gnu@4.35.0': 1267 + '@rollup/rollup-linux-x64-gnu@4.36.0':
1261 optional: true 1268 optional: true
1262 1269
1263 - '@rollup/rollup-linux-x64-musl@4.35.0': 1270 + '@rollup/rollup-linux-x64-musl@4.36.0':
1264 optional: true 1271 optional: true
1265 1272
1266 - '@rollup/rollup-win32-arm64-msvc@4.35.0': 1273 + '@rollup/rollup-win32-arm64-msvc@4.36.0':
1267 optional: true 1274 optional: true
1268 1275
1269 - '@rollup/rollup-win32-ia32-msvc@4.35.0': 1276 + '@rollup/rollup-win32-ia32-msvc@4.36.0':
1270 optional: true 1277 optional: true
1271 1278
1272 - '@rollup/rollup-win32-x64-msvc@4.35.0': 1279 + '@rollup/rollup-win32-x64-msvc@4.36.0':
1273 optional: true 1280 optional: true
1274 1281
1275 '@sphinxxxx/color-conversion@2.2.2': {} 1282 '@sphinxxxx/color-conversion@2.2.2': {}
...@@ -1286,9 +1293,9 @@ snapshots: ...@@ -1286,9 +1293,9 @@ snapshots:
1286 1293
1287 '@types/web-bluetooth@0.0.16': {} 1294 '@types/web-bluetooth@0.0.16': {}
1288 1295
1289 - '@vitejs/plugin-vue@4.6.2(vite@5.4.14(less@4.2.2)(sass-embedded@1.85.1))(vue@3.5.13)': 1296 + '@vitejs/plugin-vue@4.6.2(vite@5.4.14(less@4.2.2)(sass-embedded@1.86.0))(vue@3.5.13)':
1290 dependencies: 1297 dependencies:
1291 - vite: 5.4.14(less@4.2.2)(sass-embedded@1.85.1) 1298 + vite: 5.4.14(less@4.2.2)(sass-embedded@1.86.0)
1292 vue: 3.5.13 1299 vue: 3.5.13
1293 1300
1294 '@vue/compiler-core@3.5.13': 1301 '@vue/compiler-core@3.5.13':
...@@ -1373,7 +1380,7 @@ snapshots: ...@@ -1373,7 +1380,7 @@ snapshots:
1373 autoprefixer@10.4.21(postcss@8.5.3): 1380 autoprefixer@10.4.21(postcss@8.5.3):
1374 dependencies: 1381 dependencies:
1375 browserslist: 4.24.4 1382 browserslist: 4.24.4
1376 - caniuse-lite: 1.0.30001704 1383 + caniuse-lite: 1.0.30001706
1377 fraction.js: 4.3.7 1384 fraction.js: 4.3.7
1378 normalize-range: 0.1.2 1385 normalize-range: 0.1.2
1379 picocolors: 1.1.1 1386 picocolors: 1.1.1
...@@ -1386,14 +1393,14 @@ snapshots: ...@@ -1386,14 +1393,14 @@ snapshots:
1386 1393
1387 browserslist@4.24.4: 1394 browserslist@4.24.4:
1388 dependencies: 1395 dependencies:
1389 - caniuse-lite: 1.0.30001704 1396 + caniuse-lite: 1.0.30001706
1390 - electron-to-chromium: 1.5.118 1397 + electron-to-chromium: 1.5.120
1391 node-releases: 2.0.19 1398 node-releases: 2.0.19
1392 update-browserslist-db: 1.1.3(browserslist@4.24.4) 1399 update-browserslist-db: 1.1.3(browserslist@4.24.4)
1393 1400
1394 buffer-builder@0.2.0: {} 1401 buffer-builder@0.2.0: {}
1395 1402
1396 - caniuse-lite@1.0.30001704: {} 1403 + caniuse-lite@1.0.30001706: {}
1397 1404
1398 classnames@2.5.1: {} 1405 classnames@2.5.1: {}
1399 1406
...@@ -1416,7 +1423,7 @@ snapshots: ...@@ -1416,7 +1423,7 @@ snapshots:
1416 tslib: 2.3.0 1423 tslib: 2.3.0
1417 zrender: 5.6.1 1424 zrender: 5.6.1
1418 1425
1419 - electron-to-chromium@1.5.118: {} 1426 + electron-to-chromium@1.5.120: {}
1420 1427
1421 element-plus@2.9.6(vue@3.5.13): 1428 element-plus@2.9.6(vue@3.5.13):
1422 dependencies: 1429 dependencies:
...@@ -1621,7 +1628,7 @@ snapshots: ...@@ -1621,7 +1628,7 @@ snapshots:
1621 1628
1622 mousetrap@1.6.5: {} 1629 mousetrap@1.6.5: {}
1623 1630
1624 - nanoid@3.3.9: {} 1631 + nanoid@3.3.11: {}
1625 1632
1626 needle@3.3.1: 1633 needle@3.3.1:
1627 dependencies: 1634 dependencies:
...@@ -1664,7 +1671,7 @@ snapshots: ...@@ -1664,7 +1671,7 @@ snapshots:
1664 1671
1665 postcss@8.5.3: 1672 postcss@8.5.3:
1666 dependencies: 1673 dependencies:
1667 - nanoid: 3.3.9 1674 + nanoid: 3.3.11
1668 picocolors: 1.1.1 1675 picocolors: 1.1.1
1669 source-map-js: 1.2.1 1676 source-map-js: 1.2.1
1670 1677
...@@ -1681,29 +1688,29 @@ snapshots: ...@@ -1681,29 +1688,29 @@ snapshots:
1681 1688
1682 reusify@1.1.0: {} 1689 reusify@1.1.0: {}
1683 1690
1684 - rollup@4.35.0: 1691 + rollup@4.36.0:
1685 dependencies: 1692 dependencies:
1686 '@types/estree': 1.0.6 1693 '@types/estree': 1.0.6
1687 optionalDependencies: 1694 optionalDependencies:
1688 - '@rollup/rollup-android-arm-eabi': 4.35.0 1695 + '@rollup/rollup-android-arm-eabi': 4.36.0
1689 - '@rollup/rollup-android-arm64': 4.35.0 1696 + '@rollup/rollup-android-arm64': 4.36.0
1690 - '@rollup/rollup-darwin-arm64': 4.35.0 1697 + '@rollup/rollup-darwin-arm64': 4.36.0
1691 - '@rollup/rollup-darwin-x64': 4.35.0 1698 + '@rollup/rollup-darwin-x64': 4.36.0
1692 - '@rollup/rollup-freebsd-arm64': 4.35.0 1699 + '@rollup/rollup-freebsd-arm64': 4.36.0
1693 - '@rollup/rollup-freebsd-x64': 4.35.0 1700 + '@rollup/rollup-freebsd-x64': 4.36.0
1694 - '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 1701 + '@rollup/rollup-linux-arm-gnueabihf': 4.36.0
1695 - '@rollup/rollup-linux-arm-musleabihf': 4.35.0 1702 + '@rollup/rollup-linux-arm-musleabihf': 4.36.0
1696 - '@rollup/rollup-linux-arm64-gnu': 4.35.0 1703 + '@rollup/rollup-linux-arm64-gnu': 4.36.0
1697 - '@rollup/rollup-linux-arm64-musl': 4.35.0 1704 + '@rollup/rollup-linux-arm64-musl': 4.36.0
1698 - '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 1705 + '@rollup/rollup-linux-loongarch64-gnu': 4.36.0
1699 - '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 1706 + '@rollup/rollup-linux-powerpc64le-gnu': 4.36.0
1700 - '@rollup/rollup-linux-riscv64-gnu': 4.35.0 1707 + '@rollup/rollup-linux-riscv64-gnu': 4.36.0
1701 - '@rollup/rollup-linux-s390x-gnu': 4.35.0 1708 + '@rollup/rollup-linux-s390x-gnu': 4.36.0
1702 - '@rollup/rollup-linux-x64-gnu': 4.35.0 1709 + '@rollup/rollup-linux-x64-gnu': 4.36.0
1703 - '@rollup/rollup-linux-x64-musl': 4.35.0 1710 + '@rollup/rollup-linux-x64-musl': 4.36.0
1704 - '@rollup/rollup-win32-arm64-msvc': 4.35.0 1711 + '@rollup/rollup-win32-arm64-msvc': 4.36.0
1705 - '@rollup/rollup-win32-ia32-msvc': 4.35.0 1712 + '@rollup/rollup-win32-ia32-msvc': 4.36.0
1706 - '@rollup/rollup-win32-x64-msvc': 4.35.0 1713 + '@rollup/rollup-win32-x64-msvc': 4.36.0
1707 fsevents: 2.3.3 1714 fsevents: 2.3.3
1708 1715
1709 run-parallel@1.2.0: 1716 run-parallel@1.2.0:
...@@ -1717,69 +1724,69 @@ snapshots: ...@@ -1717,69 +1724,69 @@ snapshots:
1717 safer-buffer@2.1.2: 1724 safer-buffer@2.1.2:
1718 optional: true 1725 optional: true
1719 1726
1720 - sass-embedded-android-arm64@1.85.1: 1727 + sass-embedded-android-arm64@1.86.0:
1721 optional: true 1728 optional: true
1722 1729
1723 - sass-embedded-android-arm@1.85.1: 1730 + sass-embedded-android-arm@1.86.0:
1724 optional: true 1731 optional: true
1725 1732
1726 - sass-embedded-android-ia32@1.85.1: 1733 + sass-embedded-android-ia32@1.86.0:
1727 optional: true 1734 optional: true
1728 1735
1729 - sass-embedded-android-riscv64@1.85.1: 1736 + sass-embedded-android-riscv64@1.86.0:
1730 optional: true 1737 optional: true
1731 1738
1732 - sass-embedded-android-x64@1.85.1: 1739 + sass-embedded-android-x64@1.86.0:
1733 optional: true 1740 optional: true
1734 1741
1735 - sass-embedded-darwin-arm64@1.85.1: 1742 + sass-embedded-darwin-arm64@1.86.0:
1736 optional: true 1743 optional: true
1737 1744
1738 - sass-embedded-darwin-x64@1.85.1: 1745 + sass-embedded-darwin-x64@1.86.0:
1739 optional: true 1746 optional: true
1740 1747
1741 - sass-embedded-linux-arm64@1.85.1: 1748 + sass-embedded-linux-arm64@1.86.0:
1742 optional: true 1749 optional: true
1743 1750
1744 - sass-embedded-linux-arm@1.85.1: 1751 + sass-embedded-linux-arm@1.86.0:
1745 optional: true 1752 optional: true
1746 1753
1747 - sass-embedded-linux-ia32@1.85.1: 1754 + sass-embedded-linux-ia32@1.86.0:
1748 optional: true 1755 optional: true
1749 1756
1750 - sass-embedded-linux-musl-arm64@1.85.1: 1757 + sass-embedded-linux-musl-arm64@1.86.0:
1751 optional: true 1758 optional: true
1752 1759
1753 - sass-embedded-linux-musl-arm@1.85.1: 1760 + sass-embedded-linux-musl-arm@1.86.0:
1754 optional: true 1761 optional: true
1755 1762
1756 - sass-embedded-linux-musl-ia32@1.85.1: 1763 + sass-embedded-linux-musl-ia32@1.86.0:
1757 optional: true 1764 optional: true
1758 1765
1759 - sass-embedded-linux-musl-riscv64@1.85.1: 1766 + sass-embedded-linux-musl-riscv64@1.86.0:
1760 optional: true 1767 optional: true
1761 1768
1762 - sass-embedded-linux-musl-x64@1.85.1: 1769 + sass-embedded-linux-musl-x64@1.86.0:
1763 optional: true 1770 optional: true
1764 1771
1765 - sass-embedded-linux-riscv64@1.85.1: 1772 + sass-embedded-linux-riscv64@1.86.0:
1766 optional: true 1773 optional: true
1767 1774
1768 - sass-embedded-linux-x64@1.85.1: 1775 + sass-embedded-linux-x64@1.86.0:
1769 optional: true 1776 optional: true
1770 1777
1771 - sass-embedded-win32-arm64@1.85.1: 1778 + sass-embedded-win32-arm64@1.86.0:
1772 optional: true 1779 optional: true
1773 1780
1774 - sass-embedded-win32-ia32@1.85.1: 1781 + sass-embedded-win32-ia32@1.86.0:
1775 optional: true 1782 optional: true
1776 1783
1777 - sass-embedded-win32-x64@1.85.1: 1784 + sass-embedded-win32-x64@1.86.0:
1778 optional: true 1785 optional: true
1779 1786
1780 - sass-embedded@1.85.1: 1787 + sass-embedded@1.86.0:
1781 dependencies: 1788 dependencies:
1782 - '@bufbuild/protobuf': 2.2.3 1789 + '@bufbuild/protobuf': 2.2.4
1783 buffer-builder: 0.2.0 1790 buffer-builder: 0.2.0
1784 colorjs.io: 0.5.2 1791 colorjs.io: 0.5.2
1785 immutable: 5.0.3 1792 immutable: 5.0.3
...@@ -1788,26 +1795,26 @@ snapshots: ...@@ -1788,26 +1795,26 @@ snapshots:
1788 sync-child-process: 1.0.2 1795 sync-child-process: 1.0.2
1789 varint: 6.0.0 1796 varint: 6.0.0
1790 optionalDependencies: 1797 optionalDependencies:
1791 - sass-embedded-android-arm: 1.85.1 1798 + sass-embedded-android-arm: 1.86.0
1792 - sass-embedded-android-arm64: 1.85.1 1799 + sass-embedded-android-arm64: 1.86.0
1793 - sass-embedded-android-ia32: 1.85.1 1800 + sass-embedded-android-ia32: 1.86.0
1794 - sass-embedded-android-riscv64: 1.85.1 1801 + sass-embedded-android-riscv64: 1.86.0
1795 - sass-embedded-android-x64: 1.85.1 1802 + sass-embedded-android-x64: 1.86.0
1796 - sass-embedded-darwin-arm64: 1.85.1 1803 + sass-embedded-darwin-arm64: 1.86.0
1797 - sass-embedded-darwin-x64: 1.85.1 1804 + sass-embedded-darwin-x64: 1.86.0
1798 - sass-embedded-linux-arm: 1.85.1 1805 + sass-embedded-linux-arm: 1.86.0
1799 - sass-embedded-linux-arm64: 1.85.1 1806 + sass-embedded-linux-arm64: 1.86.0
1800 - sass-embedded-linux-ia32: 1.85.1 1807 + sass-embedded-linux-ia32: 1.86.0
1801 - sass-embedded-linux-musl-arm: 1.85.1 1808 + sass-embedded-linux-musl-arm: 1.86.0
1802 - sass-embedded-linux-musl-arm64: 1.85.1 1809 + sass-embedded-linux-musl-arm64: 1.86.0
1803 - sass-embedded-linux-musl-ia32: 1.85.1 1810 + sass-embedded-linux-musl-ia32: 1.86.0
1804 - sass-embedded-linux-musl-riscv64: 1.85.1 1811 + sass-embedded-linux-musl-riscv64: 1.86.0
1805 - sass-embedded-linux-musl-x64: 1.85.1 1812 + sass-embedded-linux-musl-x64: 1.86.0
1806 - sass-embedded-linux-riscv64: 1.85.1 1813 + sass-embedded-linux-riscv64: 1.86.0
1807 - sass-embedded-linux-x64: 1.85.1 1814 + sass-embedded-linux-x64: 1.86.0
1808 - sass-embedded-win32-arm64: 1.85.1 1815 + sass-embedded-win32-arm64: 1.86.0
1809 - sass-embedded-win32-ia32: 1.85.1 1816 + sass-embedded-win32-ia32: 1.86.0
1810 - sass-embedded-win32-x64: 1.85.1 1817 + sass-embedded-win32-x64: 1.86.0
1811 1818
1812 sax@1.4.1: 1819 sax@1.4.1:
1813 optional: true 1820 optional: true
...@@ -1897,6 +1904,8 @@ snapshots: ...@@ -1897,6 +1904,8 @@ snapshots:
1897 escalade: 3.2.0 1904 escalade: 3.2.0
1898 picocolors: 1.1.1 1905 picocolors: 1.1.1
1899 1906
1907 + uuid@11.1.0: {}
1908 +
1900 uuid@8.3.2: {} 1909 uuid@8.3.2: {}
1901 1910
1902 uuid@9.0.1: {} 1911 uuid@9.0.1: {}
...@@ -1914,15 +1923,15 @@ snapshots: ...@@ -1914,15 +1923,15 @@ snapshots:
1914 fast-glob: 3.3.3 1923 fast-glob: 3.3.3
1915 magic-string: 0.30.17 1924 magic-string: 0.30.17
1916 1925
1917 - vite@5.4.14(less@4.2.2)(sass-embedded@1.85.1): 1926 + vite@5.4.14(less@4.2.2)(sass-embedded@1.86.0):
1918 dependencies: 1927 dependencies:
1919 esbuild: 0.21.5 1928 esbuild: 0.21.5
1920 postcss: 8.5.3 1929 postcss: 8.5.3
1921 - rollup: 4.35.0 1930 + rollup: 4.36.0
1922 optionalDependencies: 1931 optionalDependencies:
1923 fsevents: 2.3.3 1932 fsevents: 2.3.3
1924 less: 4.2.2 1933 less: 4.2.2
1925 - sass-embedded: 1.85.1 1934 + sass-embedded: 1.86.0
1926 1935
1927 vue-demi@0.14.10(vue@3.5.13): 1936 vue-demi@0.14.10(vue@3.5.13):
1928 dependencies: 1937 dependencies:
......
...@@ -145,6 +145,11 @@ const router = createRouter({ ...@@ -145,6 +145,11 @@ const router = createRouter({
145 name: 'api-transform-model', 145 name: 'api-transform-model',
146 component: () => import('../views/api/transformModel.vue') 146 component: () => import('../views/api/transformModel.vue')
147 }, 147 },
148 + {
149 + path: '/release',
150 + name: 'release',
151 + component: () => import('../views/release.vue')
152 + },
148 ] 153 ]
149 }) 154 })
150 155
......
1 <!-- 1 <!--
2 * @Date: 2025-03-10 16:52:35 2 * @Date: 2025-03-10 16:52:35
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2025-03-19 00:57:55 4 + * @LastEditTime: 2025-03-19 10:46:41
5 * @FilePath: /logic-flow2/src/views/api/transformModel.vue 5 * @FilePath: /logic-flow2/src/views/api/transformModel.vue
6 * @Description: 拖拽面板 6 * @Description: 拖拽面板
7 --> 7 -->
...@@ -59,14 +59,17 @@ const centerView = () => { ...@@ -59,14 +59,17 @@ const centerView = () => {
59 if (nodes.length === 0) return; 59 if (nodes.length === 0) return;
60 60
61 // 计算所有节点的边界框 61 // 计算所有节点的边界框
62 - const bounds = nodes.reduce((acc, node) => { 62 + const bounds = nodes.reduce(
63 - const { x, y } = node; 63 + (acc, node) => {
64 - acc.minX = Math.min(acc.minX, x); 64 + const { x, y } = node;
65 - acc.maxX = Math.max(acc.maxX, x); 65 + acc.minX = Math.min(acc.minX, x);
66 - acc.minY = Math.min(acc.minY, y); 66 + acc.maxX = Math.max(acc.maxX, x);
67 - acc.maxY = Math.max(acc.maxY, y); 67 + acc.minY = Math.min(acc.minY, y);
68 - return acc; 68 + acc.maxY = Math.max(acc.maxY, y);
69 - }, { minX: Infinity, maxX: -Infinity, minY: Infinity, maxY: -Infinity }); 69 + return acc;
70 + },
71 + { minX: Infinity, maxX: -Infinity, minY: Infinity, maxY: -Infinity }
72 + );
70 73
71 // 计算中心点和范围 74 // 计算中心点和范围
72 const centerX = (bounds.minX + bounds.maxX) / 2; 75 const centerX = (bounds.minX + bounds.maxX) / 2;
...@@ -82,6 +85,7 @@ onMounted(() => { ...@@ -82,6 +85,7 @@ onMounted(() => {
82 lf = new LogicFlow({ 85 lf = new LogicFlow({
83 container: container.value, 86 container: container.value,
84 grid: true, 87 grid: true,
88 + nodeTextDraggable: true,
85 }); 89 });
86 90
87 // 监听点击画布功能 91 // 监听点击画布功能
...@@ -89,12 +93,11 @@ onMounted(() => { ...@@ -89,12 +93,11 @@ onMounted(() => {
89 console.log("Canvas clicked at:", e.x, e.y); 93 console.log("Canvas clicked at:", e.x, e.y);
90 }); 94 });
91 95
92 - lf.on('node:click', (e) => { 96 + lf.on("node:click", (e) => {
93 console.log(e); 97 console.log(e);
94 // 示例:HTML坐标转换为画布坐标 98 // 示例:HTML坐标转换为画布坐标
95 console.warn(e); 99 console.warn(e);
96 100
97 -
98 const htmlPoint = { x: 100, y: 100 }; 101 const htmlPoint = { x: 100, y: 100 };
99 const { transformModel } = lf.graphModel; 102 const { transformModel } = lf.graphModel;
100 const canvasPoint = transformModel.HtmlPointToCanvasPoint(htmlPoint); 103 const canvasPoint = transformModel.HtmlPointToCanvasPoint(htmlPoint);
...@@ -116,14 +119,17 @@ onMounted(() => { ...@@ -116,14 +119,17 @@ onMounted(() => {
116 const nodes = lf.graphModel.nodes; 119 const nodes = lf.graphModel.nodes;
117 if (nodes.length === 0) return; 120 if (nodes.length === 0) return;
118 121
119 - const bounds = nodes.reduce((acc, node) => { 122 + const bounds = nodes.reduce(
120 - const { x, y } = node; 123 + (acc, node) => {
121 - acc.minX = Math.min(acc.minX, x); 124 + const { x, y } = node;
122 - acc.maxX = Math.max(acc.maxX, x); 125 + acc.minX = Math.min(acc.minX, x);
123 - acc.minY = Math.min(acc.minY, y); 126 + acc.maxX = Math.max(acc.maxX, x);
124 - acc.maxY = Math.max(acc.maxY, y); 127 + acc.minY = Math.min(acc.minY, y);
125 - return acc; 128 + acc.maxY = Math.max(acc.maxY, y);
126 - }, { minX: Infinity, maxX: -Infinity, minY: Infinity, maxY: -Infinity }); 129 + return acc;
130 + },
131 + { minX: Infinity, maxX: -Infinity, minY: Infinity, maxY: -Infinity }
132 + );
127 133
128 const centerX = (bounds.minX + bounds.maxX) / 2; 134 const centerX = (bounds.minX + bounds.maxX) / 2;
129 const centerY = (bounds.minY + bounds.maxY) / 2; 135 const centerY = (bounds.minY + bounds.maxY) / 2;
...@@ -133,7 +139,10 @@ onMounted(() => { ...@@ -133,7 +139,10 @@ onMounted(() => {
133 // transformModel.focusOn(centerX, centerY, width, height); 139 // transformModel.focusOn(centerX, centerY, width, height);
134 }, 0); 140 }, 0);
135 141
136 - 142 + const { editConfigModel } = lf.graphModel;
143 + editConfigModel.updateEditConfig({
144 + stopZoomGraph: true,
145 + });
137 }); 146 });
138 </script> 147 </script>
139 148
......
1 +/*
2 + * @Date: 2025-03-19 17:24:14
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2025-03-19 17:24:38
5 + * @FilePath: /logic-flow2/src/views/node-model/customPolygon.js
6 + * @Description: 文件描述
7 + */
8 +import { PolygonNode, PolygonNodeModel } from '@logicflow/core';
9 +
10 +class CustomPolygonModel extends PolygonNodeModel {
11 + // 默认四边形 => 八边形
12 + setAttributes() {
13 + const width = 100;
14 + const height = 100;
15 + const x = 50;
16 + const y = 50;
17 + // 计算多边形的八个顶点, 中心点为[50, 50], 宽高均为100
18 + const pointList = [
19 + [x - 0.205 * width, y - 0.5 * height],
20 + [x + 0.205 * width, y - 0.5 * height],
21 + [x + 0.5 * width, y - 0.205 * height],
22 + [x + 0.5 * width, y + 0.205 * height],
23 + [x + 0.205 * width, y + 0.5 * height],
24 + [x - 0.205 * width, y + 0.5 * height],
25 + [x - 0.5 * width, y + 0.205 * height],
26 + [x - 0.5 * width, y - 0.205 * height],
27 + ];
28 + this.points = pointList;
29 + }
30 +
31 + getTextStyle() {
32 + const { refX = 0, refY = 0 } = this.properties;
33 + const style = super.getTextStyle();
34 +
35 + // 通过 transform 重新设置 text 的位置:向下移动70px
36 + return {
37 + ...style,
38 + transform: `matrix(1 0 0 1 ${refX} ${refY + 70})`,
39 + };
40 + }
41 +}
42 +
43 +export default {
44 + type: 'custom-polygon',
45 + view: PolygonNode,
46 + model: CustomPolygonModel,
47 +};
1 /* 1 /*
2 * @Date: 2025-03-11 15:09:49 2 * @Date: 2025-03-11 15:09:49
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2025-03-11 15:45:06 4 + * @LastEditTime: 2025-03-19 17:26:16
5 - * @FilePath: /logic-flow2/src/views/node/data.js 5 + * @FilePath: /logic-flow2/src/views/node-model/data.js
6 * @Description: 文件描述 6 * @Description: 文件描述
7 */ 7 */
8 export default { 8 export default {
...@@ -47,5 +47,12 @@ export default { ...@@ -47,5 +47,12 @@ export default {
47 height: 130, 47 height: 130,
48 }, 48 },
49 }, 49 },
50 + {
51 + id: '4',
52 + type: 'custom-polygon',
53 + x: 100,
54 + y: 300,
55 + text: 'custom-polygon',
56 + }
50 ], 57 ],
51 }; 58 };
......
1 <!-- 1 <!--
2 * @Date: 2025-03-11 15:07:29 2 * @Date: 2025-03-11 15:07:29
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2025-03-11 16:18:37 4 + * @LastEditTime: 2025-03-19 17:31:46
5 - * @FilePath: /logic-flow2/src/views/node/index.vue 5 + * @FilePath: /logic-flow2/src/views/node-model/index.vue
6 * @Description: 自定义节点model 6 * @Description: 自定义节点model
7 --> 7 -->
8 <template> 8 <template>
...@@ -12,9 +12,10 @@ ...@@ -12,9 +12,10 @@
12 </template> 12 </template>
13 13
14 <script setup> 14 <script setup>
15 -import LogicFlow from '@logicflow/core'; 15 +import LogicFlow from "@logicflow/core";
16 -import UserTask from './customRect'; 16 +import UserTask from "./customRect";
17 -import data from './data'; 17 +import customPolygon from "./customPolygon";
18 +import data from "./data";
18 19
19 const SilentConfig = { 20 const SilentConfig = {
20 isSilentMode: true, 21 isSilentMode: true,
...@@ -35,6 +36,15 @@ onMounted(() => { ...@@ -35,6 +36,15 @@ onMounted(() => {
35 }); 36 });
36 37
37 lf.register(UserTask); 38 lf.register(UserTask);
39 + lf.register(customPolygon);
40 +
41 + lf.on("node:click", ({ data }) => {
42 + if (data.type === "custom-polygon") {
43 + const node = lf.getNodeModelById(data.id);
44 + console.log("节点顶点坐标:", node.points);
45 + }
46 + });
47 +
38 lf.render(data); 48 lf.render(data);
39 lf.translateCenter(); 49 lf.translateCenter();
40 }); 50 });
......
1 +<!--
2 + * @Date: 2025-03-10 16:52:35
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2025-03-19 11:32:33
5 + * @FilePath: /logic-flow2/src/views/release.vue
6 + * @Description: 拖拽面板
7 +-->
8 +<template>
9 + <div class="container">
10 + <div ref="container" class="flow-container"></div>
11 + </div>
12 +</template>
13 +
14 +<script setup>
15 +import LogicFlow from "@logicflow/core";
16 +
17 +const container = ref(null);
18 +let lf = null;
19 +
20 +onMounted(() => {
21 + lf = new LogicFlow({
22 + container: container.value,
23 + grid: true,
24 + nodeTextDraggable: true,
25 + nodeTextEdit: true,
26 + edgeTextEdit: true,
27 + stopScrollGraph: true,
28 + stopZoomGraph: false,
29 + style: {
30 + rect: {
31 + width: 100,
32 + height: 50,
33 + radius: 8,
34 + },
35 + circle: {
36 + r: 30,
37 + },
38 + },
39 + });
40 +
41 + lf.render({
42 + nodes: [
43 + {
44 + id: "start",
45 + type: "rect",
46 + x: 200,
47 + y: 100,
48 + text: "开始",
49 + properties: {
50 + nodeType: "start",
51 + style: {
52 + fill: "#e8f7ff",
53 + stroke: "#1890ff",
54 + strokeWidth: 2,
55 + },
56 + textStyle: {
57 + color: "#1890ff",
58 + fontSize: 16,
59 + fontWeight: "bold",
60 + },
61 + },
62 + },
63 + {
64 + id: "process",
65 + type: "circle",
66 + x: 400,
67 + y: 100,
68 + text: "处理",
69 + properties: {
70 + nodeType: "process",
71 + style: {
72 + fill: "#fff7e6",
73 + stroke: "#ffa940",
74 + strokeWidth: 2,
75 + },
76 + },
77 + },
78 + ],
79 + edges: [
80 + {
81 + id: "edge1",
82 + sourceNodeId: "start",
83 + targetNodeId: "process",
84 + type: "polyline",
85 + text: "流转",
86 + properties: {
87 + style: {
88 + stroke: "#1890ff",
89 + strokeWidth: 2,
90 + },
91 + },
92 + },
93 + ],
94 + });
95 +
96 + // 监听节点点击
97 + lf.on("node:click", ({ data }) => {
98 + console.log("点击节点:", data);
99 + });
100 +
101 + // 监听连线完成
102 + lf.on("edge:connect", ({ data }) => {
103 + console.log("连线完成:", data);
104 + });
105 +
106 + // 监听画布缩放
107 + lf.on("graph:transform", (transform) => {
108 + console.log("画布变换:", transform);
109 + });
110 +
111 + // 居中显示
112 + lf.translateCenter();
113 +});
114 +</script>
115 +
116 +<style scoped>
117 +.container {
118 + width: 100vw;
119 + height: 100vh;
120 + display: flex;
121 + flex-direction: column;
122 +}
123 +
124 +.flow-container {
125 + flex: 1;
126 + width: 100%;
127 + height: 100%;
128 +}
129 +</style>