diff --git a/bigtop-manager-ui/.prettierignore b/bigtop-manager-ui/.prettierignore index f4211017..1852c01b 100644 --- a/bigtop-manager-ui/.prettierignore +++ b/bigtop-manager-ui/.prettierignore @@ -15,4 +15,9 @@ node_modules dist -public \ No newline at end of file +public + +package.json +pnpm-lock.yaml + +**/*.md \ No newline at end of file diff --git a/bigtop-manager-ui/.prettierrc.js b/bigtop-manager-ui/.prettierrc.js index 6943d21c..a2007ad6 100644 --- a/bigtop-manager-ui/.prettierrc.js +++ b/bigtop-manager-ui/.prettierrc.js @@ -18,15 +18,16 @@ */ module.exports = { - useTabs: false, - semi: false, - vueIndentScriptAndStyle: true, - singleQuote: true, - quoteProps: 'as-needed', - jsxBracketSameLine: false, - jsxSingleQuote: true, - arrowParens: 'always', - htmlWhitespaceSensitivity: 'strict', - endOfLine: 'lf', - trailingComma: 'none' -} \ No newline at end of file + useTabs: false, + printWidth: 120, + semi: false, + vueIndentScriptAndStyle: true, + singleQuote: true, + quoteProps: 'as-needed', + jsxBracketSameLine: false, + jsxSingleQuote: true, + arrowParens: 'always', + htmlWhitespaceSensitivity: 'strict', + endOfLine: 'lf', + trailingComma: 'none' +} diff --git a/bigtop-manager-ui/index.html b/bigtop-manager-ui/index.html index e8559bfd..24db7b5d 100644 --- a/bigtop-manager-ui/index.html +++ b/bigtop-manager-ui/index.html @@ -19,18 +19,16 @@ + + + + + + Bigtop Manager + - - - - - - Bigtop Manager - - - -
- - - - \ No newline at end of file + +
+ + + diff --git a/bigtop-manager-ui/package.json b/bigtop-manager-ui/package.json index 2c7a53d9..e50625af 100644 --- a/bigtop-manager-ui/package.json +++ b/bigtop-manager-ui/package.json @@ -65,4 +65,4 @@ "iOS 7", "last 3 iOS versions" ] -} \ No newline at end of file +} diff --git a/bigtop-manager-ui/pnpm-lock.yaml b/bigtop-manager-ui/pnpm-lock.yaml index c038a751..8202c1a7 100644 --- a/bigtop-manager-ui/pnpm-lock.yaml +++ b/bigtop-manager-ui/pnpm-lock.yaml @@ -616,56 +616,56 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true - /@rollup/rollup-android-arm-eabi@4.27.3: - resolution: {integrity: sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==} + /@rollup/rollup-android-arm-eabi@4.28.0: + resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.27.3: - resolution: {integrity: sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==} + /@rollup/rollup-android-arm64@4.28.0: + resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.27.3: - resolution: {integrity: sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==} + /@rollup/rollup-darwin-arm64@4.28.0: + resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.27.3: - resolution: {integrity: sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==} + /@rollup/rollup-darwin-x64@4.28.0: + resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-freebsd-arm64@4.27.3: - resolution: {integrity: sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==} + /@rollup/rollup-freebsd-arm64@4.28.0: + resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /@rollup/rollup-freebsd-x64@4.27.3: - resolution: {integrity: sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==} + /@rollup/rollup-freebsd-x64@4.28.0: + resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.27.3: - resolution: {integrity: sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==} + /@rollup/rollup-linux-arm-gnueabihf@4.28.0: + resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} cpu: [arm] os: [linux] libc: [glibc] @@ -673,8 +673,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.27.3: - resolution: {integrity: sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==} + /@rollup/rollup-linux-arm-musleabihf@4.28.0: + resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} cpu: [arm] os: [linux] libc: [musl] @@ -682,8 +682,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.27.3: - resolution: {integrity: sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==} + /@rollup/rollup-linux-arm64-gnu@4.28.0: + resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} cpu: [arm64] os: [linux] libc: [glibc] @@ -691,8 +691,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.27.3: - resolution: {integrity: sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==} + /@rollup/rollup-linux-arm64-musl@4.28.0: + resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} cpu: [arm64] os: [linux] libc: [musl] @@ -700,8 +700,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.27.3: - resolution: {integrity: sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==} + /@rollup/rollup-linux-powerpc64le-gnu@4.28.0: + resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} cpu: [ppc64] os: [linux] libc: [glibc] @@ -709,8 +709,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.27.3: - resolution: {integrity: sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==} + /@rollup/rollup-linux-riscv64-gnu@4.28.0: + resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} cpu: [riscv64] os: [linux] libc: [glibc] @@ -718,8 +718,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.27.3: - resolution: {integrity: sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==} + /@rollup/rollup-linux-s390x-gnu@4.28.0: + resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} cpu: [s390x] os: [linux] libc: [glibc] @@ -727,8 +727,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.27.3: - resolution: {integrity: sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==} + /@rollup/rollup-linux-x64-gnu@4.28.0: + resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} cpu: [x64] os: [linux] libc: [glibc] @@ -736,8 +736,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.27.3: - resolution: {integrity: sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==} + /@rollup/rollup-linux-x64-musl@4.28.0: + resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} cpu: [x64] os: [linux] libc: [musl] @@ -745,24 +745,24 @@ packages: dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.27.3: - resolution: {integrity: sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==} + /@rollup/rollup-win32-arm64-msvc@4.28.0: + resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.27.3: - resolution: {integrity: sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==} + /@rollup/rollup-win32-ia32-msvc@4.28.0: + resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.27.3: - resolution: {integrity: sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==} + /@rollup/rollup-win32-x64-msvc@4.28.0: + resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -845,8 +845,8 @@ packages: resolution: {integrity: sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og==} dev: true - /@types/node@20.17.6: - resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} + /@types/node@20.17.9: + resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} dependencies: undici-types: 6.19.8 dev: true @@ -865,6 +865,12 @@ packages: '@types/node': 20.5.3 dev: true + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + requiresBuild: true + dev: false + optional: true + /@types/web-bluetooth@0.0.18: resolution: {integrity: sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==} dev: false @@ -892,7 +898,7 @@ packages: ignore: 5.3.2 natural-compare: 1.4.0 semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.0.2) + ts-api-utils: 1.4.3(typescript@5.0.2) typescript: 5.0.2 transitivePeerDependencies: - supports-color @@ -941,7 +947,7 @@ packages: '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.0.2) debug: 4.3.7 eslint: 8.47.0 - ts-api-utils: 1.4.0(typescript@5.0.2) + ts-api-utils: 1.4.3(typescript@5.0.2) typescript: 5.0.2 transitivePeerDependencies: - supports-color @@ -967,7 +973,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.0.2) + ts-api-utils: 1.4.3(typescript@5.0.2) typescript: 5.0.2 transitivePeerDependencies: - supports-color @@ -1026,8 +1032,8 @@ packages: tinyrainbow: 1.2.0 dev: true - /@vitest/pretty-format@2.1.5: - resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} + /@vitest/pretty-format@2.1.8: + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} dependencies: tinyrainbow: 1.2.0 dev: true @@ -1043,7 +1049,7 @@ packages: resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} dependencies: '@vitest/pretty-format': 2.0.5 - magic-string: 0.30.13 + magic-string: 0.30.14 pathe: 1.1.2 dev: true @@ -1121,7 +1127,7 @@ packages: '@vue/compiler-ssr': 3.4.37 '@vue/shared': 3.4.37 estree-walker: 2.0.2 - magic-string: 0.30.13 + magic-string: 0.30.14 postcss: 8.4.41 source-map-js: 1.2.1 @@ -1555,7 +1561,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001680 + caniuse-lite: 1.0.30001686 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -1657,8 +1663,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001680 - electron-to-chromium: 1.5.63 + caniuse-lite: 1.0.30001686 + electron-to-chromium: 1.5.68 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) dev: true @@ -1707,13 +1713,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001680 + caniuse-lite: 1.0.30001686 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001680: - resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} + /caniuse-lite@1.0.30001686: + resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==} dev: true /chai@5.1.2: @@ -2111,7 +2117,7 @@ packages: is-arguments: 1.1.1 is-array-buffer: 3.0.4 is-date-object: 1.0.5 - is-regex: 1.1.4 + is-regex: 1.2.0 is-shared-array-buffer: 1.0.3 isarray: 2.0.5 object-is: 1.1.6 @@ -2119,9 +2125,9 @@ packages: object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.0 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 dev: true /deep-is@0.1.4: @@ -2134,7 +2140,7 @@ packages: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.1.0 dev: true /define-properties@1.2.1: @@ -2254,8 +2260,10 @@ packages: domelementtype: 2.3.0 dev: true - /dompurify@3.2.0: - resolution: {integrity: sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==} + /dompurify@3.2.2: + resolution: {integrity: sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw==} + optionalDependencies: + '@types/trusted-types': 2.0.7 dev: false /domutils@1.7.0: @@ -2303,8 +2311,8 @@ packages: semver: 7.6.3 dev: true - /electron-to-chromium@1.5.63: - resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} + /electron-to-chromium@1.5.68: + resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==} dev: true /emoji-regex@8.0.0: @@ -2360,24 +2368,24 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 + es-to-primitive: 1.3.0 function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.1.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.1.0 + has-symbols: 1.1.0 hasown: 2.0.2 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 is-data-view: 1.0.1 is-negative-zero: 2.0.3 - is-regex: 1.1.4 + is-regex: 1.2.0 is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 + is-string: 1.1.0 is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.3 @@ -2391,10 +2399,10 @@ packages: string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.2 typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 + typed-array-byte-offset: 1.0.3 + typed-array-length: 1.0.7 unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 dev: true /es-define-property@1.0.0: @@ -2414,11 +2422,11 @@ packages: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + has-symbols: 1.1.0 is-arguments: 1.1.1 is-map: 2.0.3 is-set: 2.0.3 - is-string: 1.0.7 + is-string: 1.1.0 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 dev: true @@ -2443,13 +2451,13 @@ packages: hasown: 2.0.2 dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + /es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-symbol: 1.1.0 dev: true /esbuild@0.21.5: @@ -2904,8 +2912,8 @@ packages: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.1.0 + has-symbols: 1.1.0 hasown: 2.0.2 dev: true @@ -2987,7 +2995,7 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.1.0 dev: true /globby@11.1.0: @@ -3008,8 +3016,9 @@ packages: delegate: 3.2.0 dev: false - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + /gopd@1.1.0: + resolution: {integrity: sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 dev: true @@ -3058,13 +3067,15 @@ packages: es-define-property: 1.0.0 dev: true - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + /has-proto@1.1.0: + resolution: {integrity: sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==} engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 dev: true - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + /has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} dev: true @@ -3072,7 +3083,7 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 dev: true /has-value@0.3.1: @@ -3215,8 +3226,16 @@ packages: get-intrinsic: 1.2.4 dev: true - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} dependencies: has-bigints: 1.0.2 dev: true @@ -3228,8 +3247,8 @@ packages: binary-extensions: 2.3.0 dev: true - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + /is-boolean-object@1.2.0: + resolution: {integrity: sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -3298,11 +3317,25 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-finalizationregistry@1.1.0: + resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -3320,10 +3353,11 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + /is-number-object@1.1.0: + resolution: {integrity: sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==} engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.7 has-tostringtag: 1.0.2 dev: true @@ -3361,12 +3395,14 @@ packages: engines: {node: '>=0.10.0'} dev: false - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + /is-regex@1.2.0: + resolution: {integrity: sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + gopd: 1.1.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 dev: true /is-set@2.0.3: @@ -3386,25 +3422,28 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + /is-string@1.1.0: + resolution: {integrity: sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==} engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.7 has-tostringtag: 1.0.2 dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + /is-symbol@1.1.0: + resolution: {integrity: sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + call-bind: 1.0.7 + has-symbols: 1.1.0 + safe-regex-test: 1.0.3 dev: true /is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 dev: true /is-weakmap@2.0.2: @@ -3467,7 +3506,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.9 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -3637,8 +3676,8 @@ packages: hasBin: true dev: true - /magic-string@0.30.13: - resolution: {integrity: sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==} + /magic-string@0.30.14: + resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -3797,8 +3836,8 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + /nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -3913,7 +3952,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - has-symbols: 1.0.3 + has-symbols: 1.1.0 object-keys: 1.1.1 dev: true @@ -4387,7 +4426,7 @@ packages: resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -4504,6 +4543,19 @@ packages: picomatch: 2.3.1 dev: true + /reflect.getprototypeof@1.0.7: + resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + gopd: 1.1.0 + which-builtin-type: 1.2.0 + dev: true + /regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -4567,31 +4619,31 @@ packages: glob: 7.2.3 dev: true - /rollup@4.27.3: - resolution: {integrity: sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==} + /rollup@4.28.0: + resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.27.3 - '@rollup/rollup-android-arm64': 4.27.3 - '@rollup/rollup-darwin-arm64': 4.27.3 - '@rollup/rollup-darwin-x64': 4.27.3 - '@rollup/rollup-freebsd-arm64': 4.27.3 - '@rollup/rollup-freebsd-x64': 4.27.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.27.3 - '@rollup/rollup-linux-arm-musleabihf': 4.27.3 - '@rollup/rollup-linux-arm64-gnu': 4.27.3 - '@rollup/rollup-linux-arm64-musl': 4.27.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.27.3 - '@rollup/rollup-linux-riscv64-gnu': 4.27.3 - '@rollup/rollup-linux-s390x-gnu': 4.27.3 - '@rollup/rollup-linux-x64-gnu': 4.27.3 - '@rollup/rollup-linux-x64-musl': 4.27.3 - '@rollup/rollup-win32-arm64-msvc': 4.27.3 - '@rollup/rollup-win32-ia32-msvc': 4.27.3 - '@rollup/rollup-win32-x64-msvc': 4.27.3 + '@rollup/rollup-android-arm-eabi': 4.28.0 + '@rollup/rollup-android-arm64': 4.28.0 + '@rollup/rollup-darwin-arm64': 4.28.0 + '@rollup/rollup-darwin-x64': 4.28.0 + '@rollup/rollup-freebsd-arm64': 4.28.0 + '@rollup/rollup-freebsd-x64': 4.28.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 + '@rollup/rollup-linux-arm-musleabihf': 4.28.0 + '@rollup/rollup-linux-arm64-gnu': 4.28.0 + '@rollup/rollup-linux-arm64-musl': 4.28.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 + '@rollup/rollup-linux-riscv64-gnu': 4.28.0 + '@rollup/rollup-linux-s390x-gnu': 4.28.0 + '@rollup/rollup-linux-x64-gnu': 4.28.0 + '@rollup/rollup-linux-x64-musl': 4.28.0 + '@rollup/rollup-win32-arm64-msvc': 4.28.0 + '@rollup/rollup-win32-ia32-msvc': 4.28.0 + '@rollup/rollup-win32-x64-msvc': 4.28.0 fsevents: 2.3.3 dev: true @@ -4607,7 +4659,7 @@ packages: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + has-symbols: 1.1.0 isarray: 2.0.5 dev: true @@ -4621,7 +4673,7 @@ packages: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 - is-regex: 1.1.4 + is-regex: 1.2.0 dev: true /safe-regex@1.1.0: @@ -4703,7 +4755,7 @@ packages: es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 - gopd: 1.0.1 + gopd: 1.1.0 has-property-descriptors: 1.0.2 dev: true @@ -5162,13 +5214,13 @@ packages: resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==} engines: {node: '>= 0.4'} dependencies: - gopd: 1.0.1 + gopd: 1.1.0 typedarray.prototype.slice: 1.0.3 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 dev: true - /ts-api-utils@1.4.0(typescript@5.0.2): - resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + /ts-api-utils@1.4.3(typescript@5.0.2): + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -5211,33 +5263,34 @@ packages: dependencies: call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 + gopd: 1.1.0 + has-proto: 1.1.0 is-typed-array: 1.1.13 dev: true - /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + /typed-array-byte-offset@1.0.3: + resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 + gopd: 1.1.0 + has-proto: 1.1.0 is-typed-array: 1.1.13 + reflect.getprototypeof: 1.0.7 dev: true - /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + /typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 + gopd: 1.1.0 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.7 dev: true /typedarray.prototype.slice@1.0.3: @@ -5249,7 +5302,7 @@ packages: es-abstract: 1.23.5 es-errors: 1.3.0 typed-array-buffer: 1.0.2 - typed-array-byte-offset: 1.0.2 + typed-array-byte-offset: 1.0.3 dev: true /typescript@5.0.2: @@ -5262,8 +5315,8 @@ packages: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.0 dev: true /undici-types@6.19.8: @@ -5403,7 +5456,7 @@ packages: '@types/node': 20.5.3 esbuild: 0.21.5 postcss: 8.4.41 - rollup: 4.27.3 + rollup: 4.28.0 sass: 1.66.1 optionalDependencies: fsevents: 2.3.3 @@ -5437,7 +5490,7 @@ packages: '@ampproject/remapping': 2.3.0 '@types/node': 20.5.3 '@vitest/expect': 2.0.5 - '@vitest/pretty-format': 2.1.5 + '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.0.5 '@vitest/snapshot': 2.0.5 '@vitest/spy': 2.0.5 @@ -5446,7 +5499,7 @@ packages: debug: 4.3.7 execa: 8.0.1 happy-dom: 15.0.0 - magic-string: 0.30.13 + magic-string: 0.30.14 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 @@ -5490,7 +5543,7 @@ packages: peerDependencies: vue: ^3.0.0 dependencies: - dompurify: 3.2.0 + dompurify: 3.2.2 vue: 3.4.37(typescript@5.0.2) dev: false @@ -5646,14 +5699,34 @@ packages: engines: {node: '>=12'} dev: true - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + /which-boxed-primitive@1.1.0: + resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==} + engines: {node: '>= 0.4'} + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.0 + is-number-object: 1.1.0 + is-string: 1.1.0 + is-symbol: 1.1.0 + dev: true + + /which-builtin-type@1.2.0: + resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} + engines: {node: '>= 0.4'} dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + call-bind: 1.0.7 + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.1.0 + is-generator-function: 1.0.10 + is-regex: 1.2.0 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.1.0 + which-collection: 1.0.2 + which-typed-array: 1.1.16 dev: true /which-collection@1.0.2: @@ -5666,14 +5739,14 @@ packages: is-weakset: 2.0.3 dev: true - /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + /which-typed-array@1.1.16: + resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.1.0 has-tostringtag: 1.0.2 dev: true diff --git a/bigtop-manager-ui/src/api/ai-assistant/index.ts b/bigtop-manager-ui/src/api/ai-assistant/index.ts new file mode 100644 index 00000000..683fcff6 --- /dev/null +++ b/bigtop-manager-ui/src/api/ai-assistant/index.ts @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * https://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 request from '@/api/request.ts' +import type { ChatMessageItem, ChatThread, CreateChatThread, ThreadId, UpdateChatThread } from './types' +import axios, { AxiosProgressEvent, AxiosResponse, CancelTokenSource } from 'axios' + +export const getThreadsFromAuthPlatform = (): Promise => { + return request({ + method: 'get', + url: '/llm/chatbot/threads' + }) +} + +export const getThread = (threadId: ThreadId): Promise => { + return request({ + method: 'get', + url: `/llm/chatbot/threads/${threadId}` + }) +} + +export const getThreadRecords = (threadId: ThreadId): Promise => { + return request({ + method: 'get', + url: `/llm/chatbot/threads/${threadId}/history` + }) +} + +export const updateThread = (threadId: ThreadId, data: UpdateChatThread): Promise => { + return request({ + method: 'put', + url: `/llm/chatbot/threads/${threadId}`, + data + }) +} + +export const deleteThread = (threadId: ThreadId): Promise => { + return request({ + method: 'delete', + url: `/llm/chatbot/threads/${threadId}` + }) +} + +export const createChatThread = (data: CreateChatThread): Promise => { + return request({ + method: 'post', + url: '/llm/chatbot/threads', + data + }) +} + +export interface ChatMessagesRes { + promise: Promise + cancel: () => void +} + +export const talkWithChatbot = ( + threadId: ThreadId, + data: { message: string }, + func: Function +): ChatMessagesRes> => { + const source: CancelTokenSource = axios.CancelToken.source() + + const promise = request({ + method: 'post', + url: `/llm/chatbot/threads/${threadId}/talk`, + responseType: 'stream', + data: { + message: data.message + }, + timeout: 0, + cancelToken: source.token, + onDownloadProgress: (progressEvent: AxiosProgressEvent) => func(progressEvent) + }) + + return { promise, cancel: source.cancel } +} diff --git a/bigtop-manager-ui/src/api/ai-assistant/types.ts b/bigtop-manager-ui/src/api/ai-assistant/types.ts new file mode 100644 index 00000000..602974dd --- /dev/null +++ b/bigtop-manager-ui/src/api/ai-assistant/types.ts @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * https://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. + */ + +export enum Sender { + USER, + AI, + SYSTEM +} + +export type CreateChatThread = { + id?: number | string | null + name?: string | null +} + +export type SenderType = keyof typeof Sender +export type UpdateChatThread = CreateChatThread +export type ThreadId = number | string + +export interface ChatThread { + threadId?: number | string + authId?: number | string + platformId?: number | string + platformName?: string + model?: string + name?: string + createTime?: string + updateTime?: string +} + +export interface ChatMessageItem { + sender: SenderType + message: string + createTime?: string +} + +export interface ReceivedMessageItem { + content?: string + finishReason?: 'completed' | null +} diff --git a/bigtop-manager-ui/src/api/chatbot/index.ts b/bigtop-manager-ui/src/api/chatbot/index.ts deleted file mode 100644 index 0b098576..00000000 --- a/bigtop-manager-ui/src/api/chatbot/index.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 - * - * https://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 request from '@/api/request.ts' -import { - AuthorizedPlatform, - SupportedPlatform, - CredentialFormItem, - AuthCredentialTestParams, - AuthTestResult, - ChatThread, - ChatThreadCondition, - ChatThreadHistoryCondition, - ChatThreadHistoryItem, - ChatThreadDelCondition -} from '@/api/chatbot/types.ts' - -export const getAuthorizedPlatforms = (): Promise => { - return request({ - method: 'get', - url: '/chatbot/auth-platforms' - }) -} -export const getSupportedPlatforms = (): Promise => { - return request({ - method: 'get', - url: '/chatbot/platforms' - }) -} -export const getCredentialFormModelOfPlatform = ( - platformId: string | number -): Promise => { - return request({ - method: 'get', - url: `/chatbot/platforms/${platformId}/auth-credentials` - }) -} - -export const validateAuthCredentials = ( - data: AuthCredentialTestParams -): Promise => { - return request({ - method: 'post', - url: '/chatbot/auth-platforms', - data - }) -} - -export const getChatThreads = ( - params: ChatThreadCondition -): Promise => { - return request({ - method: 'get', - url: `/chatbot/auth-platforms/${params.authId}/threads`, - params: { - model: params.model - } - }) -} -export const createChatThread = ( - data: ChatThreadCondition -): Promise => { - return request({ - method: 'post', - url: `/chatbot/auth-platforms/${data.authId}/threads?model=${data.model}` - }) -} -export const getThreadChatHistory = ( - params: ChatThreadHistoryCondition -): Promise => { - return request({ - method: 'get', - url: `/chatbot/auth-platforms/${params.authId}/threads/${params.threadId}/history` - }) -} - -export const delAuthorizedPlatform = ( - authId: string | number -): Promise => { - return request({ - method: 'delete', - url: `/chatbot/auth-platforms/${authId}` - }) -} -export const delChatThread = ( - params: ChatThreadDelCondition -): Promise => { - return request({ - method: 'delete', - url: `/chatbot/auth-platforms/${params.authId}/threads/${params.threadId}` - }) -} diff --git a/bigtop-manager-ui/src/api/chatbot/types.ts b/bigtop-manager-ui/src/api/chatbot/types.ts deleted file mode 100644 index 37bc7251..00000000 --- a/bigtop-manager-ui/src/api/chatbot/types.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 - * - * https://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. - */ - -export interface ChatbotConfig { - authId?: string | number - platformName?: string - supportModels?: string - model?: string - threadId?: string | number - threadName?: string - createTime?: string - updateTime?: string -} -export interface Platform { - id: string | number - platformId: string | number - platformName: string - supportModels: string - currModel?: string -} - -export type AuthorizedPlatform = Platform - -export interface SupportedPlatform extends Platform { - id: string | number - name: string - supportModels: string -} -export interface CredentialFormItem { - name: string - displayName: string -} -export interface ChatThreadCondition { - authId: string | number - model: string -} - -export interface ChatThread extends ChatThreadCondition { - threadId: string | number - threadName: string - createTime: string - updateTime: string -} - -export interface AuthCredential { - key: string - value: string -} - -export interface AuthCredentialTestParams { - platformId: string | number - authCredentials: AuthCredential[] -} - -export interface AuthTestResult { - id: string | number - platformId: string | number - platformName: string - supportModels: string -} - -export type Sender = 'USER' | 'SYSTEM' | 'AI' -export interface ChatThreadHistoryItem { - sender: Sender - message: string - createTime?: string -} - -export interface ChatThreadHistoryCondition { - authId: string | number - threadId: string | number -} - -export interface SendChatMessageCondition extends ChatThreadHistoryCondition { - message: string -} - -export type ChatThreadDelCondition = ChatThreadHistoryCondition diff --git a/bigtop-manager-ui/src/api/component/index.ts b/bigtop-manager-ui/src/api/component/index.ts index 9655ed4d..8a0d4fba 100644 --- a/bigtop-manager-ui/src/api/component/index.ts +++ b/bigtop-manager-ui/src/api/component/index.ts @@ -20,9 +20,7 @@ import { HostComponentVO } from '@/api/component/types.ts' import request from '@/api/request.ts' -export const getHostComponents = ( - clusterId: number -): Promise => { +export const getHostComponents = (clusterId: number): Promise => { return request({ method: 'get', url: '/clusters/' + clusterId + '/host-components' diff --git a/bigtop-manager-ui/src/api/config/index.ts b/bigtop-manager-ui/src/api/config/index.ts index ce50ca5c..5302a770 100644 --- a/bigtop-manager-ui/src/api/config/index.ts +++ b/bigtop-manager-ui/src/api/config/index.ts @@ -20,18 +20,14 @@ import request from '@/api/request.ts' import { ServiceConfigVO } from '@/api/config/types.ts' -export const getLatestConfigs = ( - clusterId: number -): Promise => { +export const getLatestConfigs = (clusterId: number): Promise => { return request({ method: 'get', url: '/clusters/' + clusterId + '/configurations/latest' }) } -export const getAllConfigs = ( - clusterId: number -): Promise => { +export const getAllConfigs = (clusterId: number): Promise => { return request({ method: 'get', url: '/clusters/' + clusterId + '/configurations' diff --git a/bigtop-manager-ui/src/api/job/index.ts b/bigtop-manager-ui/src/api/job/index.ts index d32ceb37..14f8e2aa 100644 --- a/bigtop-manager-ui/src/api/job/index.ts +++ b/bigtop-manager-ui/src/api/job/index.ts @@ -34,10 +34,7 @@ export const retryJob = (id: number, clusterId: number): Promise => { }) } -export const getJobs = ( - clusterId: number, - pagination: Pagination -): Promise<{ content: JobVO[]; total: number }> => { +export const getJobs = (clusterId: number, pagination: Pagination): Promise<{ content: JobVO[]; total: number }> => { return request({ method: 'get', url: `/clusters/${clusterId}/jobs`, diff --git a/bigtop-manager-ui/src/api/llm-config/index.ts b/bigtop-manager-ui/src/api/llm-config/index.ts index e3a8ce1f..4d0702bb 100644 --- a/bigtop-manager-ui/src/api/llm-config/index.ts +++ b/bigtop-manager-ui/src/api/llm-config/index.ts @@ -18,12 +18,7 @@ */ import request from '@/api/request.ts' -import { - Platform, - PlatformCredential, - AuthorizedPlatform, - UpdateAuthorizedPlatformConfig -} from './types' +import { Platform, PlatformCredential, AuthorizedPlatform, UpdateAuthorizedPlatformConfig } from './types' export const getPlatforms = (): Promise => { return request({ @@ -39,18 +34,14 @@ export const getAuthorizedPlatforms = (): Promise => { }) } -export const getPlatformCredentials = ( - platformId: number -): Promise => { +export const getPlatformCredentials = (platformId: number): Promise => { return request({ method: 'get', url: `/llm/config/platforms/${platformId}/auth-credentials` }) } -export const addAuthorizedPlatform = ( - data: UpdateAuthorizedPlatformConfig -): Promise => { +export const addAuthorizedPlatform = (data: UpdateAuthorizedPlatformConfig): Promise => { return request({ method: 'post', url: '/llm/config/auth-platforms', @@ -58,18 +49,14 @@ export const addAuthorizedPlatform = ( }) } -export const getAuthPlatformDetail = ( - authId: number -): Promise => { +export const getAuthPlatformDetail = (authId: number): Promise => { return request({ method: 'get', url: `/llm/config/auth-platforms/${authId}` }) } -export const updateAuthPlatform = ( - data: UpdateAuthorizedPlatformConfig -): Promise => { +export const updateAuthPlatform = (data: UpdateAuthorizedPlatformConfig): Promise => { return request({ method: 'put', url: `/llm/config/auth-platforms/${data.id}`, @@ -84,27 +71,21 @@ export const deleteAuthPlatform = (authId: number): Promise => { }) } -export const deactivateAuthorizedPlatform = ( - authId: number -): Promise => { +export const deactivateAuthorizedPlatform = (authId: number): Promise => { return request({ method: 'post', url: `/llm/config/auth-platforms/${authId}/deactivate` }) } -export const activateAuthorizedPlatform = ( - authId: number -): Promise => { +export const activateAuthorizedPlatform = (authId: number): Promise => { return request({ method: 'post', url: `/llm/config/auth-platforms/${authId}/activate` }) } -export const testAuthorizedPlatform = ( - data: UpdateAuthorizedPlatformConfig -): Promise => { +export const testAuthorizedPlatform = (data: UpdateAuthorizedPlatformConfig): Promise => { return request({ method: 'post', url: '/llm/config/auth-platforms/test', diff --git a/bigtop-manager-ui/src/api/request.ts b/bigtop-manager-ui/src/api/request.ts index 6b431304..b1c7771b 100644 --- a/bigtop-manager-ui/src/api/request.ts +++ b/bigtop-manager-ui/src/api/request.ts @@ -17,11 +17,7 @@ * under the License. */ -import axios, { - AxiosError, - AxiosResponse, - InternalAxiosRequestConfig -} from 'axios' +import axios, { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios' import { message } from 'ant-design-vue' import { ResponseEntity } from '@/api/types' import router from '@/router' @@ -35,26 +31,19 @@ const request = axios.create({ timeout: API_EXPIRE_TIME }) -request.interceptors.request.use( - ( - config: InternalAxiosRequestConfig - ): InternalAxiosRequestConfig => { - config.headers = config.headers || {} +request.interceptors.request.use((config: InternalAxiosRequestConfig): InternalAxiosRequestConfig => { + config.headers = config.headers || {} - const locale = i18n.global.locale.value as Locale - config.headers['Accept-Language'] = locale.replace('_', '-') + const locale = i18n.global.locale.value as Locale + config.headers['Accept-Language'] = locale.replace('_', '-') - const token = - localStorage.getItem('Token') ?? - sessionStorage.getItem('Token') ?? - undefined - if (token) { - config.headers['Token'] = token - } - - return config + const token = localStorage.getItem('Token') ?? sessionStorage.getItem('Token') ?? undefined + if (token) { + config.headers['Token'] = token } -) + + return config +}) request.interceptors.response.use( async (res: AxiosResponse) => { diff --git a/bigtop-manager-ui/src/api/sse/index.ts b/bigtop-manager-ui/src/api/sse/index.ts index abcd72d8..6b288b3b 100644 --- a/bigtop-manager-ui/src/api/sse/index.ts +++ b/bigtop-manager-ui/src/api/sse/index.ts @@ -19,14 +19,9 @@ import axios, { type AxiosProgressEvent, type CancelTokenSource } from 'axios' import request from '@/api/request.ts' -import type { chatMessagesRes, LogsRes } from './types' -import type { SendChatMessageCondition } from '@/api/chatbot/types' +import type { LogsRes } from './types' -export const getLogs = ( - clusterId: number, - id: number, - func: Function -): LogsRes => { +export const getLogs = (clusterId: number, id: number, func: Function): LogsRes => { const source: CancelTokenSource = axios.CancelToken.source() const promise = request({ @@ -35,29 +30,7 @@ export const getLogs = ( responseType: 'stream', timeout: 0, cancelToken: source.token, - onDownloadProgress: (progressEvent: AxiosProgressEvent) => - func(progressEvent) - }) - - return { promise, cancel: source.cancel } -} -export const sendChatMessage = ( - data: SendChatMessageCondition, - func: Function -): chatMessagesRes => { - const source: CancelTokenSource = axios.CancelToken.source() - - const promise = request({ - method: 'post', - url: `/chatbot/auth-platforms/${data.authId}/threads/${data.threadId}/talk`, - responseType: 'stream', - data: { - message: data.message - }, - timeout: 0, - cancelToken: source.token, - onDownloadProgress: (progressEvent: AxiosProgressEvent) => - func(progressEvent) + onDownloadProgress: (progressEvent: AxiosProgressEvent) => func(progressEvent) }) return { promise, cancel: source.cancel } diff --git a/bigtop-manager-ui/src/api/sse/types.ts b/bigtop-manager-ui/src/api/sse/types.ts index 7bb9a342..8e169f04 100644 --- a/bigtop-manager-ui/src/api/sse/types.ts +++ b/bigtop-manager-ui/src/api/sse/types.ts @@ -21,7 +21,7 @@ export interface LogsRes { promise: Promise cancel: () => void } -export interface chatMessagesRes { +export interface ChatMessagesRes { promise: Promise cancel: () => void } diff --git a/bigtop-manager-ui/src/api/stack/index.ts b/bigtop-manager-ui/src/api/stack/index.ts index 534add90..f7d40042 100644 --- a/bigtop-manager-ui/src/api/stack/index.ts +++ b/bigtop-manager-ui/src/api/stack/index.ts @@ -29,20 +29,14 @@ export const getStacks = (): Promise => { }) } -export const getStackComponents = ( - stackName: string, - stackVersion: string -): Promise => { +export const getStackComponents = (stackName: string, stackVersion: string): Promise => { return request({ method: 'get', url: '/stacks/' + stackName + '/' + stackVersion + '/components' }) } -export const getStackConfigs = ( - stackName: string, - stackVersion: string -): Promise => { +export const getStackConfigs = (stackName: string, stackVersion: string): Promise => { return request({ method: 'get', url: '/stacks/' + stackName + '/' + stackVersion + '/configurations' diff --git a/bigtop-manager-ui/src/assets/images/ai_disabled.png b/bigtop-manager-ui/src/assets/images/ai_disabled.png new file mode 100644 index 00000000..ac50b603 Binary files /dev/null and b/bigtop-manager-ui/src/assets/images/ai_disabled.png differ diff --git a/bigtop-manager-ui/src/assets/images/ai_helper.png b/bigtop-manager-ui/src/assets/images/ai_helper.png new file mode 100644 index 00000000..95c52903 Binary files /dev/null and b/bigtop-manager-ui/src/assets/images/ai_helper.png differ diff --git a/bigtop-manager-ui/src/assets/images/svg/chat_avatar.svg b/bigtop-manager-ui/src/assets/images/svg/chat_avatar.svg new file mode 100644 index 00000000..ef83998d --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/chat_avatar.svg @@ -0,0 +1,26 @@ + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/chatbot.svg b/bigtop-manager-ui/src/assets/images/svg/chatbot.svg new file mode 100644 index 00000000..cdaefe52 --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/chatbot.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/exit_screen.svg b/bigtop-manager-ui/src/assets/images/svg/exit_screen.svg new file mode 100644 index 00000000..58f1168a --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/exit_screen.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/full_screen.svg b/bigtop-manager-ui/src/assets/images/svg/full_screen.svg new file mode 100644 index 00000000..c5bb8c21 --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/full_screen.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/history.svg b/bigtop-manager-ui/src/assets/images/svg/history.svg new file mode 100644 index 00000000..ca067326 --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/history.svg @@ -0,0 +1,31 @@ + + + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/plus_gray.svg b/bigtop-manager-ui/src/assets/images/svg/plus_gray.svg new file mode 100644 index 00000000..29d96ac8 --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/plus_gray.svg @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/send.svg b/bigtop-manager-ui/src/assets/images/svg/send.svg new file mode 100644 index 00000000..4d09ab7d --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/send.svg @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/components/ai-assistant/chat-history.vue b/bigtop-manager-ui/src/components/ai-assistant/chat-history.vue new file mode 100644 index 00000000..ae18febc --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/chat-history.vue @@ -0,0 +1,281 @@ + + + + + + diff --git a/bigtop-manager-ui/src/components/ai-assistant/chat-input.vue b/bigtop-manager-ui/src/components/ai-assistant/chat-input.vue new file mode 100644 index 00000000..1b0b085b --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/chat-input.vue @@ -0,0 +1,73 @@ + + + + + + diff --git a/bigtop-manager-ui/src/components/ai-assistant/chat-message.vue b/bigtop-manager-ui/src/components/ai-assistant/chat-message.vue new file mode 100644 index 00000000..4499b183 --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/chat-message.vue @@ -0,0 +1,71 @@ + + + + + + diff --git a/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue b/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue new file mode 100644 index 00000000..bb63bd66 --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue @@ -0,0 +1,103 @@ + + + + + + diff --git a/bigtop-manager-ui/src/components/ai-assistant/index.vue b/bigtop-manager-ui/src/components/ai-assistant/index.vue new file mode 100644 index 00000000..871d5c13 --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/index.vue @@ -0,0 +1,225 @@ + + + + + + diff --git a/bigtop-manager-ui/src/components/chatbot/chat-msg-item.vue b/bigtop-manager-ui/src/components/chatbot/chat-msg-item.vue deleted file mode 100644 index 2d1ecb5e..00000000 --- a/bigtop-manager-ui/src/components/chatbot/chat-msg-item.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/chat-window.vue b/bigtop-manager-ui/src/components/chatbot/chat-window.vue deleted file mode 100644 index 7a632468..00000000 --- a/bigtop-manager-ui/src/components/chatbot/chat-window.vue +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/chatbot.vue b/bigtop-manager-ui/src/components/chatbot/chatbot.vue deleted file mode 100644 index 38d64603..00000000 --- a/bigtop-manager-ui/src/components/chatbot/chatbot.vue +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/model-selector.vue b/bigtop-manager-ui/src/components/chatbot/model-selector.vue deleted file mode 100644 index a15b8472..00000000 --- a/bigtop-manager-ui/src/components/chatbot/model-selector.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/platform-auth-form.vue b/bigtop-manager-ui/src/components/chatbot/platform-auth-form.vue deleted file mode 100644 index e3c5c19f..00000000 --- a/bigtop-manager-ui/src/components/chatbot/platform-auth-form.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/platform-auth-selector.vue b/bigtop-manager-ui/src/components/chatbot/platform-auth-selector.vue deleted file mode 100644 index b689fd0c..00000000 --- a/bigtop-manager-ui/src/components/chatbot/platform-auth-selector.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/platform-selection.vue b/bigtop-manager-ui/src/components/chatbot/platform-selection.vue deleted file mode 100644 index 58a72083..00000000 --- a/bigtop-manager-ui/src/components/chatbot/platform-selection.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/select-menu.vue b/bigtop-manager-ui/src/components/chatbot/select-menu.vue deleted file mode 100644 index 335c66db..00000000 --- a/bigtop-manager-ui/src/components/chatbot/select-menu.vue +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/chatbot/thread-selector.vue b/bigtop-manager-ui/src/components/chatbot/thread-selector.vue deleted file mode 100644 index 11443fc2..00000000 --- a/bigtop-manager-ui/src/components/chatbot/thread-selector.vue +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - diff --git a/bigtop-manager-ui/src/components/common/auto-form/index.vue b/bigtop-manager-ui/src/components/common/auto-form/index.vue index 79c3046f..9d924006 100644 --- a/bigtop-manager-ui/src/components/common/auto-form/index.vue +++ b/bigtop-manager-ui/src/components/common/auto-form/index.vue @@ -149,20 +149,13 @@ >
- + @@ -171,11 +164,7 @@ v-if="item.type == 'textarea'" v-model:value="formState[item.field]" v-bind="item.controlProps" - :disabled=" - disabledItems - ? disabledItems.includes(item.field) - : item.controlProps.disabled - " + :disabled="disabledItems ? disabledItems.includes(item.field) : item.controlProps.disabled" v-on="formItemEvents[item.field] || {}" /> @@ -184,29 +173,15 @@ v-if="item.type == 'select'" v-model:value="formState[item.field]" v-bind="item.controlProps" - :disabled=" - disabledItems - ? disabledItems.includes(item.field) - : item.controlProps.disabled - " + :disabled="disabledItems ? disabledItems.includes(item.field) : item.controlProps.disabled" v-on="formItemEvents[item.field] || {}" > - {{ - typeof child === 'string' - ? child - : child[(item.fieldMap && item.fieldMap.label) || 'label'] - }} + {{ typeof child === 'string' ? child : child[(item.fieldMap && item.fieldMap.label) || 'label'] }} @@ -215,21 +190,13 @@ v-if="item.type == 'radio'" v-model:value="formState[item.field]" v-bind="item.controlProps" - :disabled=" - disabledItems - ? disabledItems.includes(item.field) - : item.controlProps.disabled - " + :disabled="disabledItems ? disabledItems.includes(item.field) : item.controlProps.disabled" v-on="formItemEvents[item.field] || {}" > {{ child[(item.fieldMap && item.fieldMap.label) || 'label'] }} diff --git a/bigtop-manager-ui/src/components/common/auto-form/template.vue b/bigtop-manager-ui/src/components/common/auto-form/template.vue index b42f7418..08512fbb 100644 --- a/bigtop-manager-ui/src/components/common/auto-form/template.vue +++ b/bigtop-manager-ui/src/components/common/auto-form/template.vue @@ -21,10 +21,7 @@ import { computed, onMounted, onUnmounted, ref, watchPostEffect } from 'vue' import { usePngImage } from '@/utils/tools' import { useI18n } from 'vue-i18n' - import type { - FormItemState, - FormState - } from '@/components/common/auto-form/types' + import type { FormItemState, FormState } from '@/components/common/auto-form/types' const { t } = useI18n() const helper = usePngImage('helper') diff --git a/bigtop-manager-ui/src/components/common/button-group/index.vue b/bigtop-manager-ui/src/components/common/button-group/index.vue new file mode 100644 index 00000000..bc2b6d50 --- /dev/null +++ b/bigtop-manager-ui/src/components/common/button-group/index.vue @@ -0,0 +1,57 @@ + + + + + + + diff --git a/bigtop-manager-ui/src/components/common/button-group/types.ts b/bigtop-manager-ui/src/components/common/button-group/types.ts new file mode 100644 index 00000000..ae481660 --- /dev/null +++ b/bigtop-manager-ui/src/components/common/button-group/types.ts @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * https://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. + */ + +type BtnType = 'primary' | 'ghost' | 'dashed' | 'link' | 'text' | 'default' +type ShapeType = 'default' | 'circle' | 'round' + +export interface GroupItem { + icon?: string + tip?: string + text?: string + action?: T + type?: BtnType + shape?: ShapeType + disabled?: boolean + clickEvent?: (item?: GroupItem, ...args: any[]) => void +} + +export interface Props { + i18n: string + groups: GroupItem[] + groupType?: BtnType + groupShape?: ShapeType +} diff --git a/bigtop-manager-ui/src/components/common/index.ts b/bigtop-manager-ui/src/components/common/index.ts index 61da3360..427e7ed2 100644 --- a/bigtop-manager-ui/src/components/common/index.ts +++ b/bigtop-manager-ui/src/components/common/index.ts @@ -20,9 +20,7 @@ import type { App } from 'vue' const kebabToCamel = (kebab: string): string => { - return kebab - .replace(/-./g, (match) => match.charAt(1).toUpperCase()) - .replace(/^./, (match) => match.toUpperCase()) + return kebab.replace(/-./g, (match) => match.charAt(1).toUpperCase()).replace(/^./, (match) => match.toUpperCase()) } const install = (app: App) => { diff --git a/bigtop-manager-ui/src/components/common/markdown-view/index.vue b/bigtop-manager-ui/src/components/common/markdown-view/index.vue index 573f6b46..15b72209 100644 --- a/bigtop-manager-ui/src/components/common/markdown-view/index.vue +++ b/bigtop-manager-ui/src/components/common/markdown-view/index.vue @@ -57,16 +57,9 @@ const langTag = pre.querySelector('#language') const copyTag = pre.querySelector('#copy') - langTag!.textContent = ( - code?.classList.value.replace('hljs language-', '') as string - ).toLowerCase() - copyTag && - copyTag.removeEventListener('click', () => - copyCode(code?.textContent || '') - ) - copyTag?.addEventListener('click', () => - copyCode(code?.textContent || '') - ) + langTag!.textContent = (code?.classList.value.replace('hljs language-', '') as string).toLowerCase() + copyTag && copyTag.removeEventListener('click', () => copyCode(code?.textContent || '')) + copyTag?.addEventListener('click', () => copyCode(code?.textContent || '')) }) } @@ -99,12 +92,7 @@ diff --git a/bigtop-manager-ui/src/components/user-avatar/index.vue b/bigtop-manager-ui/src/components/user-avatar/index.vue index b8778a0e..8e67e101 100644 --- a/bigtop-manager-ui/src/components/user-avatar/index.vue +++ b/bigtop-manager-ui/src/components/user-avatar/index.vue @@ -18,11 +18,7 @@ --> @@ -86,7 +95,7 @@ } .header { @include flexbox($justify: space-between, $align: center); - padding-inline: 0 16px; + padding-inline: 0 $space-md; height: $layout-header-height; .header-menu { flex: 1; diff --git a/bigtop-manager-ui/src/layouts/index.vue b/bigtop-manager-ui/src/layouts/index.vue index b769b149..7c70c6dc 100644 --- a/bigtop-manager-ui/src/layouts/index.vue +++ b/bigtop-manager-ui/src/layouts/index.vue @@ -30,8 +30,7 @@ const userStore = useUserStore() const menuStore = useMenuStore() const clusterStore = useClusterStore() - const { headerSelectedKey, headerMenus, siderMenuSelectedKey, siderMenus } = - storeToRefs(menuStore) + const { headerSelectedKey, headerMenus, siderMenuSelectedKey, siderMenus } = storeToRefs(menuStore) onMounted(async () => { userStore.getUserInfo() diff --git a/bigtop-manager-ui/src/layouts/sider.vue b/bigtop-manager-ui/src/layouts/sider.vue index ac6ab902..9ace4338 100644 --- a/bigtop-manager-ui/src/layouts/sider.vue +++ b/bigtop-manager-ui/src/layouts/sider.vue @@ -42,9 +42,7 @@ const toggleActivatedIcon = (menuItem: MenuItem) => { const { key, icon } = menuItem if (menuStore.isDynamicRouteMatched) { - return key === RouteExceptions.SPECIAL_ROUTE_PATH - ? `${icon}_activated` - : icon + return key === RouteExceptions.SPECIAL_ROUTE_PATH ? `${icon}_activated` : icon } else { return key === siderMenuSelectedKey.value ? `${icon}_activated` : icon } @@ -61,17 +59,10 @@