diff --git a/package-lock.json b/package-lock.json index 09b13db..2ad6060 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,13 @@ { - "name": "MikroWizard", - "version": "1.0.7", + "name": "coreui-free-angular-admin-template", + "version": "4.5.27", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "MikroWizard", - "version": "1.0.7", - "license": "AGPL", + "name": "coreui-free-angular-admin-template", + "version": "4.5.27", + "license": "MIT", "dependencies": { "@angular/animations": "^17.3.5", "@angular/cdk": "^16.2.9", @@ -28,7 +28,11 @@ "@coreui/icons-angular": "~4.5.27", "@coreui/utils": "^2.0.2", "@easyfonts/font-awesome-v6": "^6.0.6", - "@fortawesome/angular-fontawesome": "^0.15.0", + "@fortawesome/angular-fontawesome": "^0.13.0", + "@fortawesome/fontawesome-svg-core": "^6.4.2", + "@fortawesome/free-brands-svg-icons": "^6.4.2", + "@fortawesome/free-regular-svg-icons": "^6.4.2", + "@fortawesome/free-solid-svg-icons": "^6.4.2", "@generic-ui/fabric": "^0.19.0", "@generic-ui/hermes": "^0.19.0", "@generic-ui/ngx-grid": "^0.19.0", @@ -36,25 +40,19 @@ "date-fns": "^3.6.0", "date-fns-jalali": "^3.6.0-0", "date-fns-tz": "^3.1.3", - "diff-match-patch-ts": "^0.6.0", "font-awesome": "^4.7.0", "install": "^0.13.0", "lodash-es": "^4.17.21", "mat-progress-buttons": "^9.3.1", "ngx-cron-editor": "^0.8.1", "ngx-date-fns": "^11.0.0", - "ngx-diff": "^9.0.0", - "ngx-highlight-js": "^18.0.0", "ngx-highlightjs": "^12.0.0", - "ngx-infinite-scroll": "^18.0.0", "ngx-mat-select-search": "^7.0.6", "ngx-material-date-fns-adapter": "^18.0.0", "ngx-scrollbar": "^13.0.3", "ngx-super-select": "^3.17.0", "rxjs": "~7.8.1", "tslib": "^2.3.0", - "vis-data": "^7.1.9", - "vis-network": "^9.1.9", "zone.js": "~0.14.4" }, "devDependencies": { @@ -2605,18 +2603,6 @@ "resolved": "https://registry.npmjs.org/@easyfonts/font-awesome-v6/-/font-awesome-v6-6.0.6.tgz", "integrity": "sha512-I3mV9KQuD6jJgfX3bU3mdv/RtYSd+X/Y9Yo2RrAmIfQJeDVCQdTPXBgmodMtGxfAU8lVHKFwr/fh9zexavXdNQ==" }, - "node_modules/@egjs/hammerjs": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", - "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", - "peer": true, - "dependencies": { - "@types/hammerjs": "^2.0.36" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.20.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", @@ -2986,31 +2972,69 @@ } }, "node_modules/@fortawesome/angular-fontawesome": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.15.0.tgz", - "integrity": "sha512-oxmJDYGNSym5ycFR0LX4ZOPAU+wWmMAznYpkm5DNAtWWkhMLcrZl15eZQmVIEE+qruQ7JiVrg3tpo8bEkFlDgw==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.13.0.tgz", + "integrity": "sha512-gzSPRdveOXNO7NIiMgTyB46aiHG0i98KinnAEqHXi8qzraM/kCcHn/0y3f4MhemX6kftwsFli0IU8RyHmtXlSQ==", "dependencies": { - "@fortawesome/fontawesome-svg-core": "^6.5.2", - "tslib": "^2.6.2" + "tslib": "^2.4.1" }, "peerDependencies": { - "@angular/core": "^18.0.0" + "@angular/core": "^16.0.0", + "@fortawesome/fontawesome-svg-core": "~1.2.27 || ~1.3.0-beta2 || ^6.1.0" } }, "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", - "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", + "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==", + "hasInstallScript": true, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", - "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", + "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", + "hasInstallScript": true, "dependencies": { - "@fortawesome/fontawesome-common-types": "6.6.0" + "@fortawesome/fontawesome-common-types": "6.5.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.5.2.tgz", + "integrity": "sha512-zi5FNYdmKLnEc0jc0uuHH17kz/hfYTg4Uei0wMGzcoCL/4d3WM3u1VMc0iGGa31HuhV5i7ZK8ZlTCQrHqRHSGQ==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.5.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.5.2.tgz", + "integrity": "sha512-iabw/f5f8Uy2nTRtJ13XZTS1O5+t+anvlamJ3zJGLEVE2pKsAWhPv2lq01uQlfgCX7VaveT3EVs515cCN9jRbw==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.5.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.5.2.tgz", + "integrity": "sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.5.2" }, "engines": { "node": ">=6" @@ -4848,12 +4872,6 @@ "@types/send": "*" } }, - "node_modules/@types/hammerjs": { - "version": "2.0.46", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", - "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==", - "peer": true - }, "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", @@ -6093,15 +6111,6 @@ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -6726,11 +6735,6 @@ "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "node_modules/diff-match-patch-ts": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/diff-match-patch-ts/-/diff-match-patch-ts-0.6.0.tgz", - "integrity": "sha512-U0uPIJ+wJqgaBoVw2MFSFpGIk7q3mJJ+/sehbxDZFv4Gx6a1GOmrsSLmxVDDrGtRL4Q9de084aa5lVpCHn+eUw==" - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -9017,12 +9021,6 @@ "node": ">=10" } }, - "node_modules/keycharm": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.4.0.tgz", - "integrity": "sha512-TyQTtsabOVv3MeOpR92sIKk/br9wxS+zGj4BG7CR8YbK4jM3tyIBaF0zhzeBUMx36/Q/iQLOKKOT+3jOQtemRQ==", - "peer": true - }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -9848,28 +9846,6 @@ "date-fns": ">=3" } }, - "node_modules/ngx-diff": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ngx-diff/-/ngx-diff-9.0.0.tgz", - "integrity": "sha512-eoF3D/9KjNqdnscIofkS81JWj87Ffq3eI3Gqim0SG/N/m0YWtOjximFxT1JI5bS8Gi1PVgoEQntJIZb/zaNULw==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/common": ">=18.0.0", - "@angular/core": ">=18.0.0", - "diff-match-patch-ts": ">=0.5.0" - } - }, - "node_modules/ngx-highlight-js": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ngx-highlight-js/-/ngx-highlight-js-18.0.0.tgz", - "integrity": "sha512-r/LSijb5Ju95ZGm89+4e905kFWkDt1XdGCg2prR1wleTE77uROscjZMht0D40WSRbxmOg+J2zw9OOZvsWSLeeg==", - "dependencies": { - "highlight.js": "^11.9.0", - "tslib": "^2.3.0" - } - }, "node_modules/ngx-highlightjs": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/ngx-highlightjs/-/ngx-highlightjs-12.0.0.tgz", @@ -9883,18 +9859,6 @@ "@angular/core": ">=17.0.0" } }, - "node_modules/ngx-infinite-scroll": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-18.0.0.tgz", - "integrity": "sha512-D183TDwpsd9Zl56UmItsl3RzHdN25srAISfg6lc3A8mEKkEgOq0s7ZzRAYcx8DHsAkMgtZqjIPEvMifD3DOB/g==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": ">=18.0.0 <19.0.0", - "@angular/core": ">=18.0.0 <19.0.0" - } - }, "node_modules/ngx-mat-select-search": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-7.0.6.tgz", @@ -12782,6 +12746,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, "bin": { "uuid": "dist/bin/uuid" } @@ -12817,53 +12782,6 @@ "node": ">= 0.8" } }, - "node_modules/vis-data": { - "version": "7.1.9", - "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.9.tgz", - "integrity": "sha512-COQsxlVrmcRIbZMMTYwD+C2bxYCFDNQ2EHESklPiInbD/Pk3JZ6qNL84Bp9wWjYjAzXfSlsNaFtRk+hO9yBPWA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - }, - "peerDependencies": { - "uuid": "^3.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "vis-util": "^5.0.1" - } - }, - "node_modules/vis-network": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/vis-network/-/vis-network-9.1.9.tgz", - "integrity": "sha512-Ft+hLBVyiLstVYSb69Q1OIQeh3FeUxHJn0WdFcq+BFPqs+Vq1ibMi2sb//cxgq1CP7PH4yOXnHxEH/B2VzpZYA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - }, - "peerDependencies": { - "@egjs/hammerjs": "^2.0.0", - "component-emitter": "^1.3.0", - "keycharm": "^0.2.0 || ^0.3.0 || ^0.4.0", - "uuid": "^3.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "vis-data": "^6.3.0 || ^7.0.0", - "vis-util": "^5.0.1" - } - }, - "node_modules/vis-util": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.7.tgz", - "integrity": "sha512-E3L03G3+trvc/X4LXvBfih3YIHcKS2WrP0XTdZefr6W6Qi/2nNCqZfe4JFfJU6DcQLm6Gxqj2Pfl+02859oL5A==", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - }, - "peerDependencies": { - "@egjs/hammerjs": "^2.0.0", - "component-emitter": "^1.3.0 || ^2.0.0" - } - }, "node_modules/vite": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", @@ -15579,15 +15497,6 @@ "resolved": "https://registry.npmjs.org/@easyfonts/font-awesome-v6/-/font-awesome-v6-6.0.6.tgz", "integrity": "sha512-I3mV9KQuD6jJgfX3bU3mdv/RtYSd+X/Y9Yo2RrAmIfQJeDVCQdTPXBgmodMtGxfAU8lVHKFwr/fh9zexavXdNQ==" }, - "@egjs/hammerjs": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", - "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", - "peer": true, - "requires": { - "@types/hammerjs": "^2.0.36" - } - }, "@esbuild/aix-ppc64": { "version": "0.20.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", @@ -15750,25 +15659,48 @@ "optional": true }, "@fortawesome/angular-fontawesome": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.15.0.tgz", - "integrity": "sha512-oxmJDYGNSym5ycFR0LX4ZOPAU+wWmMAznYpkm5DNAtWWkhMLcrZl15eZQmVIEE+qruQ7JiVrg3tpo8bEkFlDgw==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.13.0.tgz", + "integrity": "sha512-gzSPRdveOXNO7NIiMgTyB46aiHG0i98KinnAEqHXi8qzraM/kCcHn/0y3f4MhemX6kftwsFli0IU8RyHmtXlSQ==", "requires": { - "@fortawesome/fontawesome-svg-core": "^6.5.2", - "tslib": "^2.6.2" + "tslib": "^2.4.1" } }, "@fortawesome/fontawesome-common-types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", - "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", + "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==" }, "@fortawesome/fontawesome-svg-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", - "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", + "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", "requires": { - "@fortawesome/fontawesome-common-types": "6.6.0" + "@fortawesome/fontawesome-common-types": "6.5.2" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.5.2.tgz", + "integrity": "sha512-zi5FNYdmKLnEc0jc0uuHH17kz/hfYTg4Uei0wMGzcoCL/4d3WM3u1VMc0iGGa31HuhV5i7ZK8ZlTCQrHqRHSGQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.5.2" + } + }, + "@fortawesome/free-regular-svg-icons": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.5.2.tgz", + "integrity": "sha512-iabw/f5f8Uy2nTRtJ13XZTS1O5+t+anvlamJ3zJGLEVE2pKsAWhPv2lq01uQlfgCX7VaveT3EVs515cCN9jRbw==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.5.2" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.5.2.tgz", + "integrity": "sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.5.2" } }, "@generic-ui/fabric": { @@ -17312,12 +17244,6 @@ "@types/send": "*" } }, - "@types/hammerjs": { - "version": "2.0.46", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", - "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==", - "peer": true - }, "@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", @@ -18284,12 +18210,6 @@ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, - "component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "peer": true - }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -18753,11 +18673,6 @@ "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "diff-match-patch-ts": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/diff-match-patch-ts/-/diff-match-patch-ts-0.6.0.tgz", - "integrity": "sha512-U0uPIJ+wJqgaBoVw2MFSFpGIk7q3mJJ+/sehbxDZFv4Gx6a1GOmrsSLmxVDDrGtRL4Q9de084aa5lVpCHn+eUw==" - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -20471,12 +20386,6 @@ "source-map-support": "^0.5.5" } }, - "keycharm": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.4.0.tgz", - "integrity": "sha512-TyQTtsabOVv3MeOpR92sIKk/br9wxS+zGj4BG7CR8YbK4jM3tyIBaF0zhzeBUMx36/Q/iQLOKKOT+3jOQtemRQ==", - "peer": true - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -21083,23 +20992,6 @@ "tslib": "^2.3.0" } }, - "ngx-diff": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ngx-diff/-/ngx-diff-9.0.0.tgz", - "integrity": "sha512-eoF3D/9KjNqdnscIofkS81JWj87Ffq3eI3Gqim0SG/N/m0YWtOjximFxT1JI5bS8Gi1PVgoEQntJIZb/zaNULw==", - "requires": { - "tslib": "^2.0.0" - } - }, - "ngx-highlight-js": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ngx-highlight-js/-/ngx-highlight-js-18.0.0.tgz", - "integrity": "sha512-r/LSijb5Ju95ZGm89+4e905kFWkDt1XdGCg2prR1wleTE77uROscjZMht0D40WSRbxmOg+J2zw9OOZvsWSLeeg==", - "requires": { - "highlight.js": "^11.9.0", - "tslib": "^2.3.0" - } - }, "ngx-highlightjs": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/ngx-highlightjs/-/ngx-highlightjs-12.0.0.tgz", @@ -21109,14 +21001,6 @@ "tslib": "^2.3.0" } }, - "ngx-infinite-scroll": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-18.0.0.tgz", - "integrity": "sha512-D183TDwpsd9Zl56UmItsl3RzHdN25srAISfg6lc3A8mEKkEgOq0s7ZzRAYcx8DHsAkMgtZqjIPEvMifD3DOB/g==", - "requires": { - "tslib": "^2.3.0" - } - }, "ngx-mat-select-search": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-7.0.6.tgz", @@ -23199,7 +23083,8 @@ "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", @@ -23226,25 +23111,6 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, - "vis-data": { - "version": "7.1.9", - "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.9.tgz", - "integrity": "sha512-COQsxlVrmcRIbZMMTYwD+C2bxYCFDNQ2EHESklPiInbD/Pk3JZ6qNL84Bp9wWjYjAzXfSlsNaFtRk+hO9yBPWA==", - "requires": {} - }, - "vis-network": { - "version": "9.1.9", - "resolved": "https://registry.npmjs.org/vis-network/-/vis-network-9.1.9.tgz", - "integrity": "sha512-Ft+hLBVyiLstVYSb69Q1OIQeh3FeUxHJn0WdFcq+BFPqs+Vq1ibMi2sb//cxgq1CP7PH4yOXnHxEH/B2VzpZYA==", - "requires": {} - }, - "vis-util": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.7.tgz", - "integrity": "sha512-E3L03G3+trvc/X4LXvBfih3YIHcKS2WrP0XTdZefr6W6Qi/2nNCqZfe4JFfJU6DcQLm6Gxqj2Pfl+02859oL5A==", - "peer": true, - "requires": {} - }, "vite": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", diff --git a/package.json b/package.json index 8c63917..a390bf6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "MikroWizard", - "version": "1.2.0", + "version": "1.0.1", "copyright": "MikroWizard mikrowizard.com", "license": "AGPL", "author": "MikroWizard Team (https://github.com/MikroWizard)", @@ -63,8 +63,6 @@ "ngx-super-select": "^3.17.0", "rxjs": "~7.8.1", "tslib": "^2.3.0", - "vis-data": "^7.1.9", - "vis-network": "^9.1.9", "zone.js": "~0.14.4" }, "devDependencies": { diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 2b30133..3c4186a 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -49,11 +49,6 @@ const routes: Routes = [ loadChildren: () => import('./views/devices_group/devgroup.module').then((m) => m.DevicesGroupModule) }, - { - path: 'maps', - loadChildren: () => - import('./views/maps/maps.module').then((m) => m.MapsModule) - }, { path: 'authlog', loadChildren: () => diff --git a/src/app/containers/default-layout/_nav.ts b/src/app/containers/default-layout/_nav.ts index 00c76ce..d313617 100644 --- a/src/app/containers/default-layout/_nav.ts +++ b/src/app/containers/default-layout/_nav.ts @@ -28,12 +28,6 @@ export const navItems: INavData[] = [ // linkProps: { fragment: 'someAnchor' }, icon: 'fa-solid fa-layer-group' }, - { - name: 'Network Maps', - url: '/maps', - icon:'fa-solid fa-map', - attributes: { 'pro':true } - }, // { // name: 'Tools', // url: '/login', diff --git a/src/app/providers/mikrowizard/data.ts b/src/app/providers/mikrowizard/data.ts index 6bc40f6..ba6c8a4 100644 --- a/src/app/providers/mikrowizard/data.ts +++ b/src/app/providers/mikrowizard/data.ts @@ -278,14 +278,13 @@ export class dataProvider { return this.MikroWizardRPC.sendJsonRequest("/api/devgroup/update_save_group", data); } - get_snippets(name:string,desc:string,content:string,page:number=0,size:number=1000,limit:any=false){ + get_snippets(name:string,desc:string,content:string,page:number=0,size:number=1000){ var data={ 'name':name, 'description':desc, 'content':content, 'page':page, - 'size':size, - 'limit':limit + 'size':size } return this.MikroWizardRPC.sendJsonRequest("/api/snippet/list", data); } @@ -602,34 +601,6 @@ export class dataProvider { } return this.MikroWizardRPC.sendJsonRequest("/api/dhcp-history/get", data); } - - getNetworkMap(){ - return this.MikroWizardRPC.sendJsonRequest("/api/networkmap/get", {}); - } - - bulk_add_devices(devices: any[]){ - var data = { - 'devices': devices - } - return this.MikroWizardRPC.sendJsonRequest("/api/dev/bulk_add", data); - } - - bulk_add_status(taskId: string){ - var data = { - 'taskId': taskId - } - return this.MikroWizardRPC.sendJsonRequest("/api/dev/bulk_add_status", data); - } - - group_firmware_action(groupId: number, action: string){ - var data = { - 'groupId': groupId, - 'action': action - } - return this.MikroWizardRPC.sendJsonRequest("/api/devgroup/firmware_action", data); - } - - //// //// End api funcs //// diff --git a/src/app/views/backups/backups.component.html b/src/app/views/backups/backups.component.html index cd82daa..2ccdd5e 100644 --- a/src/app/views/backups/backups.component.html +++ b/src/app/views/backups/backups.component.html @@ -2,97 +2,58 @@ - - -
-
Backups
- - Device ID {{devid}} - -
+ + + Backups Filtered Result For Device ID {{devid}} - -
- -
-
- - {{compareitems.length}} Selected - -
- - {{item.devname}} - - + + + + +
+ {{item.id}}:{{item.devname}} {{item.createdC}} X
- - -
-
- - -
+ + + + + + + + + - -
- - - - -
- - - - - - -
-
- -
- - - - - - -
-
- -
- - - - -
-
-
-
-
-
+ +
+ + + Start date + + + + + + End date + + + + + + Config search + + + +
+
@@ -126,29 +87,13 @@ {{value}} - + -
- - - -
+ +
@@ -219,80 +164,31 @@ - - -
Confirm Backup Restore
+ +
Please Confirm Action
- -
- -
Restore Configuration Backup
-
- -
-
Backup Details
-
-
Device: {{currentBackup?.devname}}
-
IP: {{currentBackup?.devip}}
-
Date: {{currentBackup?.createdC}}
-
Size: {{currentBackup?.filesize}}
-
-
- - -
Critical Warning
-

This action will completely reset the device configuration:

-
    -
  • All current device configuration will be overwritten
  • -
  • All state data and history on router will be reset
  • -
  • All other local users on router will be deleted
  • -
  • Device will reboot and apply the restored configuration
  • -
-
+ + restore backup ? + + Are you sure that You want to Restore this configuration on + device?
+
+

+ All Current device configuration will be reset:

+ * All state data/history on router will be reset
+ * All other local users on router will be deleted
+ * After restore the password of the local user will be same as configured in MikroWizard
+

+
- - - - -
- - - - -
CRITICAL: Final Confirmation Required
-
- -
- -
DESTRUCTIVE ACTION
-

You are about to permanently overwrite device configuration

-
- -
-

To proceed with this critical action, type CONFIRM in the box below:

- -
- - - - This confirmation ensures you understand the critical nature of this operation. - - -
- - -
diff --git a/src/app/views/backups/backups.component.scss b/src/app/views/backups/backups.component.scss index 16b7298..ef17e02 100644 --- a/src/app/views/backups/backups.component.scss +++ b/src/app/views/backups/backups.component.scss @@ -1,72 +1,7 @@ @import 'ngx-diff/styles/default-theme'; - ::ng-deep .modal-xl { --cui-modal-width: 90vw!important; } - ::ng-deep pre { display: block!important; -} - -// Enhanced UI Styles -.compare-panel { - background: rgba(13, 110, 253, 0.1); - border: 1px solid rgba(13, 110, 253, 0.2); - border-radius: 0.375rem; - padding: 0.5rem; -} - -.selected-item { - font-size: 0.75rem; - - .fa-times { - font-size: 0.7rem; - opacity: 0.7; - transition: opacity 0.2s; - - &:hover { - opacity: 1; - } - } -} - -.cursor-pointer { - cursor: pointer; -} - -.filter-group { - .form-label { - font-size: 0.875rem; - color: #495057; - } - - ::ng-deep .mat-mdc-form-field { - .mat-mdc-text-field-wrapper { - background-color: white; - } - } -} - -.confirmation-box { - input { - font-size: 1.1rem; - - &:focus { - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); - } - } -} - -// Action buttons spacing -.d-flex.gap-1 { - gap: 0.25rem !important; -} - -// Backup info styling -.backup-info { - .row > div { - margin-bottom: 0.5rem; - font-size: 0.9rem; - } } \ No newline at end of file diff --git a/src/app/views/backups/backups.component.ts b/src/app/views/backups/backups.component.ts index 68a0b62..24409fc 100644 --- a/src/app/views/backups/backups.component.ts +++ b/src/app/views/backups/backups.component.ts @@ -30,13 +30,11 @@ export class BackupsComponent implements OnInit { public codeForHighlightAuto: string = ""; public ispro: boolean = false; public ConfirmModalVisible: boolean = false; - public CriticalConfirmModalVisible: boolean = false; public CompareModalVisible: boolean = false; public compareitems:any=[]; public comparecontents:any=[]; public compare_type="unified"; public copy_msg:boolean=false; - public confirmationText: string = ''; constructor( private data_provider: dataProvider, @@ -188,55 +186,31 @@ export class BackupsComponent implements OnInit { this.filters_visible = !this.filters_visible; } - restore_backup(apply: boolean = false, doubleConfirmed: boolean = false, backup?: any) { - var _self = this; - - // Set current backup if provided - if (backup) { - this.currentBackup = backup; - } - - if (!apply) { - // Step 1: Show initial confirmation + restore_backup(apply:boolean=false){ + var _slef=this; + if (!apply){ this.ConfirmModalVisible = true; return; } - - if (!this.currentBackup) { + if (!this.currentBackup) return; - } - - if (apply && !doubleConfirmed) { - // Step 2: Show critical confirmation - this.ConfirmModalVisible = false; - this.CriticalConfirmModalVisible = true; - this.confirmationText = ''; - return; - } - - if (apply && doubleConfirmed) { - // Step 3: Execute restore - _self.CriticalConfirmModalVisible = false; - _self.BakcupModalVisible = false; - + if(apply){ + _slef.ConfirmModalVisible = false; + _slef.BakcupModalVisible = true; + this.show_toast('Success', 'Backup restored successfully', 'success') + this.show_toast('Info', 'Wait for the router to reboot and apply config', 'info') this.data_provider.restore_backup(this.currentBackup.id).then((res) => { - if ('status' in res) { - if (res['status'] == 'success') { - this.show_toast('Success', 'Backup restored successfully', 'success'); - this.show_toast('Info', 'Wait for the router to reboot and apply config', 'info'); - } else { - this.show_toast('Error', 'Error restoring backup', 'danger'); + if ('status' in res){ + if(res['status']=='success'){ + this.show_toast('Success', 'Backup restored successfully', 'success') + this.show_toast('Info', 'Wait for the router to reboot and apply config', 'info') } + else + this.show_toast('Error', 'Error restoring backup', 'danger') } }); } } - - cancelCriticalRestore() { - this.CriticalConfirmModalVisible = false; - this.confirmationText = ''; - this.currentBackup = null; - } start_compare(){ var _self=this; @@ -269,20 +243,10 @@ export class BackupsComponent implements OnInit { this.compareitems.push(item); } } - delete_compare(i: number) { - // Delete item index i from compareitems - this.compareitems.splice(i, 1); - } - - clearAllCompare() { - // Clear all compare items - this.compareitems = []; - this.comparecontents = []; - } - - isInCompareList(item: any): boolean { - // Check if item is already in compare list - return this.compareitems.some((compareItem: any) => compareItem.id === item.id); + delete_compare(i:number){ + //delete item index i from compareitems + this.compareitems.splice(i,1); + } reinitgrid(field: string, $event: any) { if (field == "start") this.filters["start_time"] = $event.target.value; diff --git a/src/app/views/backups/backups.module.ts b/src/app/views/backups/backups.module.ts index b24187a..9d6d18c 100644 --- a/src/app/views/backups/backups.module.ts +++ b/src/app/views/backups/backups.module.ts @@ -12,7 +12,6 @@ import { ModalModule, FormModule, ToastModule, - AlertModule, } from "@coreui/angular"; import { BackupsRoutingModule } from "./backups-routing.module"; @@ -35,10 +34,10 @@ import { ClipboardModule } from "@angular/cdk/clipboard"; FormModule, FormsModule, ButtonModule, + ButtonModule, GuiGridModule, CollapseModule, BadgeModule, - AlertModule, Highlight, HighlightAuto, HighlightLineNumbers, diff --git a/src/app/views/cloner/cloner-styles.scss b/src/app/views/cloner/cloner-styles.scss deleted file mode 100644 index dd8953e..0000000 --- a/src/app/views/cloner/cloner-styles.scss +++ /dev/null @@ -1,494 +0,0 @@ -/* Modern Cloner Component Styles */ - -/* Form Sections */ -.cloner-form-section { - border-radius: 6px; - background: #f8f9fa; - padding: 0.75rem; - border: 1px solid #e9ecef; -} - -.section-header { - border-bottom: 1px solid #e9ecef; - padding-bottom: 0.5rem; -} - -.section-title { - color: #495057; - font-weight: 600; - font-size: 0.95rem; -} - -.form-input { - border-radius: 6px; - border: 1px solid #ced4da; - padding: 0.5rem 0.75rem; - font-size: 0.9rem; - transition: all 0.2s ease; -} - -.form-input-sm { - border-radius: 4px; - border: 1px solid #ced4da; - padding: 0.375rem 0.5rem; - font-size: 0.85rem; - height: calc(1.5em + 0.75rem + 2px); -} - -.form-input:focus { - border-color: #0d6efd; - box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); -} - -.form-label-sm { - display: block; - font-size: 0.8rem; - color: #6c757d; - margin-bottom: 0.25rem; - font-weight: 500; -} - -.form-label-xs { - display: block; - font-size: 0.75rem; - color: #6c757d; - margin-bottom: 0.125rem; - font-weight: 500; -} - -.form-select-sm { - font-size: 0.85rem; - height: calc(1.8em + 0.75rem + 2px); - padding: 0.375rem 0.75rem; - border-radius: 0.375rem; -} - -.form-select-xs { - font-size: 0.8rem; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.25rem 0.5rem; - border-radius: 0.25rem; -} - -/* Commands Configuration */ -.commands-container { - background: white; - border-radius: 8px; - border: 1px solid #dee2e6; - overflow: hidden; -} - -.commands-container-compact { - background: white; - border-radius: 6px; - border: 1px solid #dee2e6; - overflow: hidden; -} - -.commands-nav { - background: #f8f9fa; - border-bottom: 2px solid #e9ecef; - padding: 0.5rem 1rem; -} - -.commands-nav-compact { - background: #f8f9fa; - border-bottom: 1px solid #e9ecef; - padding: 0.25rem 0.5rem; -} - -.commands-nav .nav-item { - margin-bottom: -2px; - cursor: pointer; -} - -.commands-nav .nav-link { - color: #6c757d; - border-style: none none solid; - border-width: 2px; - position: relative; - bottom: -1px; - cursor: pointer; - padding: 0.5rem 1rem; - font-size: 0.9rem; - font-weight: 500; -} - -.commands-nav .nav-link:hover, -.commands-nav .nav-link:focus { - border-color: #0d6efd; - color: #0d6efd; -} - -.commands-nav .nav-link.active { - color: #0d6efd; - background: transparent; - border-color: #0d6efd; -} - -.command-sections { - padding: 1rem; - min-height: 200px; -} - -.command-sections-compact { - padding: 0.5rem; - min-height: 120px; -} - -.command-category { - margin-bottom: 1.5rem; -} - -.command-category-compact { - margin-bottom: 0.75rem; -} - -.category-title { - color: #0d6efd; - margin-bottom: 0.75rem; - font-size: 0.9rem; - font-weight: 600; - border-bottom: 1px solid #e9ecef; - padding-bottom: 0.25rem; -} - -.category-title-compact { - color: #0d6efd; - margin-bottom: 0.375rem; - font-size: 0.8rem; - font-weight: 600; - border-bottom: 1px solid #e9ecef; - padding-bottom: 0.125rem; -} - -.commands-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 0.5rem; -} - -.commands-grid-compact { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); - gap: 0.25rem; -} - -.command-item { - background: white; - border: 1px solid #e0e0e0; - border-radius: 6px; - transition: all 0.2s ease; -} - -.command-item-compact { - background: white; - border: 1px solid #e0e0e0; - border-radius: 4px; - transition: all 0.2s ease; -} - -.command-item:hover { - border-color: #0d6efd; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); -} - -.command-content { - display: flex; - justify-content: space-between; - align-items: center; - padding: 0.5rem 0.75rem; -} - -.command-content-compact { - display: flex; - justify-content: space-between; - align-items: center; - padding: 0.25rem 0.5rem; -} - -.command-name { - font-size: 0.8rem; - font-weight: 600; - color: #495057; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - flex: 1; - margin-right: 0.5rem; -} - -.command-name-compact { - font-size: 0.7rem; - font-weight: 600; - color: #495057; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - flex: 1; - margin-right: 0.25rem; -} - -/* Custom Switch Styling */ -.custom-switch { - position: relative; - width: 40px; - height: 20px; - flex-shrink: 0; -} - -.custom-switch-compact { - position: relative; - width: 32px; - height: 16px; - flex-shrink: 0; -} - -.custom-switch-compact input { - display: none; -} - -.custom-switch-compact .custom-control-label { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - border-radius: 16px; - background: #ccc; - cursor: pointer; - transition: all 0.3s ease; -} - -.custom-switch-compact .custom-control-label::after { - content: ''; - position: absolute; - left: 2px; - top: 2px; - width: 12px; - height: 12px; - background: #fff; - border-radius: 50%; - transition: all 0.3s ease; -} - -.custom-switch-compact input:checked + .custom-control-label { - background: #0d6efd; -} - -.custom-switch-compact input:checked + .custom-control-label::after { - left: calc(100% - 14px); -} - -.custom-switch input { - display: none; -} - -.custom-control-label { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - border-radius: 20px; - background: #ccc; - cursor: pointer; - transition: all 0.3s ease; -} - -.custom-control-label::after { - content: ''; - position: absolute; - left: 2px; - top: 2px; - width: 16px; - height: 16px; - background: #fff; - border-radius: 50%; - transition: all 0.3s ease; -} - -.custom-switch input:checked + .custom-control-label { - background: #0d6efd; -} - -.custom-switch input:checked + .custom-control-label::after { - left: calc(100% - 18px); -} - -/* Master Device Selection */ -.master-selection { - background: white; - border-radius: 6px; - border: 1px solid #dee2e6; - padding: 0.75rem; -} - -.master-selection-compact { - background: white; - border-radius: 4px; - border: 1px solid #dee2e6; - padding: 0.5rem; -} - -.master-device { - display: flex; - align-items: center; - padding: 0.5rem; - background: #fff3cd; - border: 1px solid #ffeaa7; - border-radius: 6px; -} - -.master-device-compact { - display: flex; - align-items: center; - padding: 0.375rem; - background: #fff3cd; - border: 1px solid #ffeaa7; - border-radius: 4px; -} - -.master-info { - display: flex; - align-items: center; -} - -.no-master { - display: flex; - align-items: center; - padding: 0.5rem; - background: #f8d7da; - border: 1px solid #f5c6cb; - border-radius: 6px; -} - -.no-master-compact { - display: flex; - align-items: center; - padding: 0.375rem; - background: #f8d7da; - border: 1px solid #f5c6cb; - border-radius: 4px; -} - -/* Peers Container */ -.peers-container { - background: white; - border-radius: 8px; - border: 1px solid #dee2e6; - overflow: hidden; -} - -.empty-peers { - display: flex; - flex-direction: column; - align-items: center; - padding: 2rem; - text-align: center; -} - -.empty-icon { - margin-bottom: 1rem; -} - -.empty-text strong { - display: block; - margin-bottom: 0.5rem; - color: #495057; -} - -.add-members-section { - padding: 1rem; - background: #f8f9fa; - border-top: 1px solid #dee2e6; -} - -/* Modal Enhancements */ -.c-modal-header.bg-light { - background: #f8f9fa !important; - border-bottom: 1px solid #dee2e6; -} - -.c-modal-header.bg-success { - background: #198754 !important; - border-bottom: 1px solid #146c43; -} - -.c-modal-footer.bg-light { - background: #f8f9fa !important; - border-top: 1px solid #dee2e6; -} - -.c-modal-body { - max-height: 80vh; - overflow-y: auto; -} - -/* Button Groups */ -.btn-group .btn { - font-size: 0.75rem; - padding: 0.25rem 0.5rem; -} - -.btn-group .btn:disabled { - opacity: 0.6; - cursor: not-allowed; -} - -/* Responsive Design */ -@media (max-width: 768px) { - .cloner-form-section { - padding: 0.75rem; - margin-bottom: 0.75rem; - } - - .commands-grid { - grid-template-columns: 1fr; - } - - .command-content { - padding: 0.5rem; - } - - .command-name { - font-size: 0.75rem; - } - - .c-modal-dialog { - margin: 0.25rem; - } - - .section-title { - font-size: 0.9rem; - } - - .commands-nav .nav-link { - padding: 0.375rem 0.75rem; - font-size: 0.8rem; - } - - .master-device, - .no-master { - flex-direction: column; - align-items: flex-start; - gap: 0.25rem; - } -} - -@media (max-width: 576px) { - .c-modal-footer { - flex-direction: column; - align-items: stretch; - } - - .c-modal-footer > div { - width: 100%; - text-align: center; - margin-bottom: 0.5rem; - } - - .c-modal-footer > div:last-child { - margin-bottom: 0; - } -} \ No newline at end of file diff --git a/src/app/views/cloner/cloner.component.html b/src/app/views/cloner/cloner.component.html index 67fd369..b622ec7 100644 --- a/src/app/views/cloner/cloner.component.html +++ b/src/app/views/cloner/cloner.component.html @@ -15,27 +15,17 @@ - - - {{value}} - - {{value}} - - - {{value == 'twoway' ? 'Two Way' : 'Master Mode'}} + + + {{value}} - - - {{value ? 'Active' : 'Inactive'}} - - - + {{value}} @@ -56,190 +46,109 @@ - - -
Edit Cloner: {{SelectedCloner['name']}}
-
Add New Cloner
+ + +
Editing Cloner {{SelectedCloner['name']}}
+
Adding new task
- - -
-
-
Basic Information
-
- - - - - - - - -
+ + + + + + + + + + + + + + + + + + + + + + + + - -
-
-
Synchronization Settings
-
- - - - - - - - - - - - - - - - - - -
- - - - - -
-
-
Commands Configuration
-
-
-