fix: fix resetting config and other minor issues (#2819)

This commit is contained in:
Alex Inkin
2025-01-24 22:12:57 +04:00
committed by GitHub
parent e6f02bf8f7
commit bb8109f67d
10 changed files with 194 additions and 156 deletions

230
web/package-lock.json generated
View File

@@ -25,18 +25,19 @@
"@noble/hashes": "^1.4.0", "@noble/hashes": "^1.4.0",
"@start9labs/argon2": "^0.2.2", "@start9labs/argon2": "^0.2.2",
"@start9labs/start-sdk": "file:../sdk/baseDist", "@start9labs/start-sdk": "file:../sdk/baseDist",
"@taiga-ui/addon-charts": "4.16.0", "@taiga-ui/addon-charts": "4.21.0",
"@taiga-ui/addon-commerce": "4.16.0", "@taiga-ui/addon-commerce": "4.21.0",
"@taiga-ui/addon-mobile": "4.16.0", "@taiga-ui/addon-mobile": "4.21.0",
"@taiga-ui/cdk": "4.16.0", "@taiga-ui/addon-table": "4.21.0",
"@taiga-ui/core": "4.16.0", "@taiga-ui/cdk": "4.21.0",
"@taiga-ui/core": "4.21.0",
"@taiga-ui/event-plugins": "4.3.1", "@taiga-ui/event-plugins": "4.3.1",
"@taiga-ui/icons": "4.16.0", "@taiga-ui/icons": "4.21.0",
"@taiga-ui/kit": "4.16.0", "@taiga-ui/kit": "4.21.0",
"@taiga-ui/layout": "4.16.0", "@taiga-ui/layout": "4.21.0",
"@taiga-ui/legacy": "4.16.0", "@taiga-ui/legacy": "4.21.0",
"@taiga-ui/polymorpheus": "4.7.4", "@taiga-ui/polymorpheus": "4.8.0",
"@taiga-ui/styles": "4.16.0", "@taiga-ui/styles": "4.21.0",
"@tinkoff/ng-dompurify": "4.0.0", "@tinkoff/ng-dompurify": "4.0.0",
"ansi-to-html": "^0.7.2", "ansi-to-html": "^0.7.2",
"base64-js": "^1.5.1", "base64-js": "^1.5.1",
@@ -3394,53 +3395,46 @@
} }
}, },
"node_modules/@maskito/angular": { "node_modules/@maskito/angular": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/@maskito/angular/-/angular-3.2.0.tgz", "resolved": "https://registry.npmjs.org/@maskito/angular/-/angular-3.2.1.tgz",
"integrity": "sha512-3E3sqZMWauHeHr6uGj/LnpatV+DlQZIPKWLv5pZ2SIJUX0pXUN4ZskP6gO+wiqWbw70zDCMee09KqbSxFkbcEg==", "integrity": "sha512-Qb9qY6AeG23KWuROF2gcHzUxXiaaMIFuoA/ekqI4TAtBDEO2D7ImQ0oTkdsFfbDLZoI3phmy70H4f+gidEnfag==",
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"tslib": "2.8.0" "tslib": "2.8.1"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/core": ">=16.0.0", "@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0", "@angular/forms": ">=16.0.0",
"@maskito/core": "^3.2.0" "@maskito/core": "^3.2.1"
} }
}, },
"node_modules/@maskito/angular/node_modules/tslib": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz",
"integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==",
"license": "0BSD",
"peer": true
},
"node_modules/@maskito/core": { "node_modules/@maskito/core": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/@maskito/core/-/core-3.2.0.tgz", "resolved": "https://registry.npmjs.org/@maskito/core/-/core-3.2.1.tgz",
"integrity": "sha512-c8GNwuz4PQmZqf5CSXIncwIkZSwBeU2FZtpBJtD21DaIe4uBQ541C0BncHMqEbLP2+n+HyFKEnT90m03BBlGrw==", "integrity": "sha512-gpoJbFFsq2CFz9smqEvZfTPVMt/gkRoiL14idL1sLXEDbWZyeKce0SgusHzHXaOkEegly4BIJGazCNG2hsPNYg==",
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true "peer": true
}, },
"node_modules/@maskito/kit": { "node_modules/@maskito/kit": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/@maskito/kit/-/kit-3.2.0.tgz", "resolved": "https://registry.npmjs.org/@maskito/kit/-/kit-3.2.1.tgz",
"integrity": "sha512-fIUBu+RzWQtmDyBCV9cksFqLqCq4ag1Gv1pwn9PgB7m0pkjhJoBMfQAVkded6MKrUk+QLIZUjzbUwgJm0D98Aw==", "integrity": "sha512-p9Tmr4BMZs7geNWMYMQaP4Dc+Sre8OeE6Vynz1RGsJJdjxmocY2mihXKldecS8c9aXfHvLU658F9YtorL3Akjg==",
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true, "peer": true,
"peerDependencies": { "peerDependencies": {
"@maskito/core": "^3.2.0" "@maskito/core": "^3.2.1"
} }
}, },
"node_modules/@maskito/phone": { "node_modules/@maskito/phone": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/@maskito/phone/-/phone-3.2.0.tgz", "resolved": "https://registry.npmjs.org/@maskito/phone/-/phone-3.2.1.tgz",
"integrity": "sha512-g6Tdx53AOk8E7nfp/PVGR3ZzcBW9KFIF2AS8ce0ak/XWm91qIaShg0X5Zh3/zpNCJBO62vTSJzdPQCUT+Td/LA==", "integrity": "sha512-F1hrnpP1UyMhVO0nZAMoA0kkS8rVTc4kVUZ8mcxz98weIAKYo3wiuLOMXb1cg7/ejcpEnqDTRe1rzBxwtRAKeQ==",
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true, "peer": true,
"peerDependencies": { "peerDependencies": {
"@maskito/core": "^3.2.0", "@maskito/core": "^3.2.1",
"@maskito/kit": "^3.2.0", "@maskito/kit": "^3.2.1",
"libphonenumber-js": ">=1.0.0" "libphonenumber-js": ">=1.0.0"
} }
}, },
@@ -4408,9 +4402,9 @@
"link": true "link": true
}, },
"node_modules/@taiga-ui/addon-charts": { "node_modules/@taiga-ui/addon-charts": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-charts/-/addon-charts-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/addon-charts/-/addon-charts-4.21.0.tgz",
"integrity": "sha512-cPgoilabfyCFiV/MwzMYFP7PAI3nOG2pRdTIsE75Ad/jZ7OY/e0JsgAaytXWqHuXwca2fyg0J0e3vE+a2H+Uxg==", "integrity": "sha512-ai213WTf+VG3hYLrusWJiSj7fY+Z5HjeZLmEJIMvFswzV8+Ekiiqb95+BnBUQaie6bwu3yAhcadwgun7u2Rq3w==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
@@ -4419,15 +4413,15 @@
"@angular/common": ">=16.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0", "@angular/core": ">=16.0.0",
"@ng-web-apis/common": "^4.11.1", "@ng-web-apis/common": "^4.11.1",
"@taiga-ui/cdk": "^4.16.0", "@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/core": "^4.16.0", "@taiga-ui/core": "^4.21.0",
"@taiga-ui/polymorpheus": "^4.7.4" "@taiga-ui/polymorpheus": "^4.8.0"
} }
}, },
"node_modules/@taiga-ui/addon-commerce": { "node_modules/@taiga-ui/addon-commerce": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-commerce/-/addon-commerce-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/addon-commerce/-/addon-commerce-4.21.0.tgz",
"integrity": "sha512-1VAseXNNJqmbtXJVAFVsuiA58ZmHgnENozGTGC8w1K0kT1LXJ7HaAjIrnuaJXn5Kabh71gcUbaYc1szWXtmD9Q==", "integrity": "sha512-CmibFfEsSW2h9k6/NcAiverxiMZDk1e15j10Uupfodn7vpZk3u4j4/c8aS4klV4Hk3lC5UCCvpYVLpx/c9u+/A==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
@@ -4436,22 +4430,22 @@
"@angular/common": ">=16.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0", "@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0", "@angular/forms": ">=16.0.0",
"@maskito/angular": "^3.2.0", "@maskito/angular": "^3.2.1",
"@maskito/core": "^3.2.0", "@maskito/core": "^3.2.1",
"@maskito/kit": "^3.2.0", "@maskito/kit": "^3.2.1",
"@ng-web-apis/common": "^4.11.1", "@ng-web-apis/common": "^4.11.1",
"@taiga-ui/cdk": "^4.16.0", "@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/core": "^4.16.0", "@taiga-ui/core": "^4.21.0",
"@taiga-ui/i18n": "^4.16.0", "@taiga-ui/i18n": "^4.21.0",
"@taiga-ui/kit": "^4.16.0", "@taiga-ui/kit": "^4.21.0",
"@taiga-ui/polymorpheus": "^4.7.4", "@taiga-ui/polymorpheus": "^4.8.0",
"rxjs": ">=7.0.0" "rxjs": ">=7.0.0"
} }
}, },
"node_modules/@taiga-ui/addon-mobile": { "node_modules/@taiga-ui/addon-mobile": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/addon-mobile/-/addon-mobile-4.21.0.tgz",
"integrity": "sha512-Wcm3NDo8zqQLGhmBbJ/IhOi2hW9oma73dc0QT32VcPf6TGiGBaLFs+bJKKC0SsXJyLOaGIv4dvx3IlAQqJ9nJA==", "integrity": "sha512-AIklfOfgiTuCFHvGb9Ok1nNtkelrEZmoeOQsLEH0wIA0+Ou/6XeAG03BkwrIJq4yQ1AI+ZCFeVNtl17bg+EzkA==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
@@ -4461,17 +4455,37 @@
"@angular/common": ">=16.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0", "@angular/core": ">=16.0.0",
"@ng-web-apis/common": "^4.11.1", "@ng-web-apis/common": "^4.11.1",
"@taiga-ui/cdk": "^4.16.0", "@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/core": "^4.16.0", "@taiga-ui/core": "^4.21.0",
"@taiga-ui/kit": "^4.16.0", "@taiga-ui/kit": "^4.21.0",
"@taiga-ui/polymorpheus": "^4.7.4", "@taiga-ui/polymorpheus": "^4.8.0",
"rxjs": ">=7.0.0"
}
},
"node_modules/@taiga-ui/addon-table": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/addon-table/-/addon-table-4.21.0.tgz",
"integrity": "sha512-A3j4mfsM/S+IRQOEfZwVTFhy0zTSeeM7/ZHgQwuau7Xn8UN6S8X0HvZ2LCg6ZMJaXU1W79XMm2j1uLa/BDFcog==",
"license": "Apache-2.0",
"dependencies": {
"tslib": ">=2.8.1"
},
"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@ng-web-apis/intersection-observer": "^4.11.1",
"@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/core": "^4.21.0",
"@taiga-ui/i18n": "^4.21.0",
"@taiga-ui/kit": "^4.21.0",
"@taiga-ui/polymorpheus": "^4.8.0",
"rxjs": ">=7.0.0" "rxjs": ">=7.0.0"
} }
}, },
"node_modules/@taiga-ui/cdk": { "node_modules/@taiga-ui/cdk": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-4.21.0.tgz",
"integrity": "sha512-aKxCqqmE+ZGXpundhjiMrp+IYZSDDUsRJ0pJ3OKeR2AXUfJDfqLHiUUJyUtMytGcsbtggKQu+QU7WmDJaX176w==", "integrity": "sha512-PfHMELF2OHO7GNjdyfz1LpyjrsQMEa7oqZoyqz5s4W7W/KWpds3Cm6RP2inFQsZofXrJQNDGtThb1UgNYH5AsQ==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": "2.8.1" "tslib": "2.8.1"
@@ -4495,14 +4509,14 @@
"@ng-web-apis/resize-observer": "^4.11.1", "@ng-web-apis/resize-observer": "^4.11.1",
"@ng-web-apis/screen-orientation": "^4.11.1", "@ng-web-apis/screen-orientation": "^4.11.1",
"@taiga-ui/event-plugins": "^4.3.1", "@taiga-ui/event-plugins": "^4.3.1",
"@taiga-ui/polymorpheus": "^4.7.4", "@taiga-ui/polymorpheus": "^4.8.0",
"rxjs": ">=7.0.0" "rxjs": ">=7.0.0"
} }
}, },
"node_modules/@taiga-ui/core": { "node_modules/@taiga-ui/core": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-4.21.0.tgz",
"integrity": "sha512-2g8K4usXzU+ayXHijqvBrno3ooKufUUBqZxPLgcbmxdrx4zrsV6W7Dkw6P8XfvgvBY0P3Exgea+SfbeP/X2nCA==", "integrity": "sha512-O91kueQldSGCxR+IshcgwAOJukwkV2gEu/MBhw7t5fDEvW6aNbKjFl/RZcDSMguVIzOdRAyTrWm+UyVLYeOphA==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
@@ -4516,10 +4530,10 @@
"@angular/router": ">=16.0.0", "@angular/router": ">=16.0.0",
"@ng-web-apis/common": "^4.11.1", "@ng-web-apis/common": "^4.11.1",
"@ng-web-apis/mutation-observer": "^4.11.1", "@ng-web-apis/mutation-observer": "^4.11.1",
"@taiga-ui/cdk": "^4.16.0", "@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/event-plugins": "^4.3.1", "@taiga-ui/event-plugins": "^4.3.1",
"@taiga-ui/i18n": "^4.16.0", "@taiga-ui/i18n": "^4.21.0",
"@taiga-ui/polymorpheus": "^4.7.4", "@taiga-ui/polymorpheus": "^4.8.0",
"rxjs": ">=7.0.0" "rxjs": ">=7.0.0"
} }
}, },
@@ -4538,9 +4552,9 @@
} }
}, },
"node_modules/@taiga-ui/i18n": { "node_modules/@taiga-ui/i18n": {
"version": "4.17.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-4.17.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-4.21.0.tgz",
"integrity": "sha512-5uV0u6bVKq5Il2xuEQzMtx15LSNRzxVIXhUQOY+Q3dPe3V2IaE9lSEjAaR+vEp1U7uFgo0lPc+S3A1BdkEMMsA==", "integrity": "sha512-T6BQ+qSXh34JpXpNJ9gEzJOjpPM8AchjSuwlZnbZHGo4H7eTRGgt6DdnEBVUIcvGyebVIdBZLSDhpH3lu3c8Yw==",
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
@@ -4553,18 +4567,18 @@
} }
}, },
"node_modules/@taiga-ui/icons": { "node_modules/@taiga-ui/icons": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-4.21.0.tgz",
"integrity": "sha512-Delz1ROmSkexszCg9K8Rfg4S85hWpTXUFzIbTZ+an88kyfq8W7ABQFPbKi/bhd1s2lpQV3tG5DjYEPrhEZHKGQ==", "integrity": "sha512-lzUYj/LOIFVJqdhzl0mgFUMASicQb2b+0MG5YELZik69hU+QAAKjCBzqDAaOqIMA/MVnERXiOxl62yWLjBR9+Q==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
} }
}, },
"node_modules/@taiga-ui/kit": { "node_modules/@taiga-ui/kit": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-4.21.0.tgz",
"integrity": "sha512-GFn5MhT5cbmTwL0r+Tlb/SyqpuFAk5qs5PZ60zFZMug3S6ECJZdyDVzZXPpIIyeHbmGRIytoVYo95NO41Cpakg==", "integrity": "sha512-7/V6laRXsu+CQA+LnVVQJhb0m6hH1/FbElqictaiIyIKguIELpq64XMcspEPpnkVkEMatn47YA4xPH6PCF5Mng==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
@@ -4574,25 +4588,25 @@
"@angular/core": ">=16.0.0", "@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0", "@angular/forms": ">=16.0.0",
"@angular/router": ">=16.0.0", "@angular/router": ">=16.0.0",
"@maskito/angular": "^3.2.0", "@maskito/angular": "^3.2.1",
"@maskito/core": "^3.2.0", "@maskito/core": "^3.2.1",
"@maskito/kit": "^3.2.0", "@maskito/kit": "^3.2.1",
"@maskito/phone": "^3.2.0", "@maskito/phone": "^3.2.1",
"@ng-web-apis/common": "^4.11.1", "@ng-web-apis/common": "^4.11.1",
"@ng-web-apis/intersection-observer": "^4.11.1", "@ng-web-apis/intersection-observer": "^4.11.1",
"@ng-web-apis/mutation-observer": "^4.11.1", "@ng-web-apis/mutation-observer": "^4.11.1",
"@ng-web-apis/resize-observer": "^4.11.1", "@ng-web-apis/resize-observer": "^4.11.1",
"@taiga-ui/cdk": "^4.16.0", "@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/core": "^4.16.0", "@taiga-ui/core": "^4.21.0",
"@taiga-ui/i18n": "^4.16.0", "@taiga-ui/i18n": "^4.21.0",
"@taiga-ui/polymorpheus": "^4.7.4", "@taiga-ui/polymorpheus": "^4.8.0",
"rxjs": ">=7.0.0" "rxjs": ">=7.0.0"
} }
}, },
"node_modules/@taiga-ui/layout": { "node_modules/@taiga-ui/layout": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/layout/-/layout-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/layout/-/layout-4.21.0.tgz",
"integrity": "sha512-DBmCkVnekD+C70KC/lkUP2nvFxnohwsHHetc2nqBPOs4aJKkPXc7ztcjnfa34W86ogIRHelbCelVv3q72TB0ew==", "integrity": "sha512-st8CEVPZSNCC9a/6pEbzMYO0vdHSWvua/nHoNbE4100AkW593DBQD2442LMF7ENRjFrPS+Ffuv8s5GFGasE/nw==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
@@ -4600,17 +4614,17 @@
"peerDependencies": { "peerDependencies": {
"@angular/common": ">=16.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0", "@angular/core": ">=16.0.0",
"@taiga-ui/cdk": "^4.16.0", "@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/core": "^4.16.0", "@taiga-ui/core": "^4.21.0",
"@taiga-ui/kit": "^4.16.0", "@taiga-ui/kit": "^4.21.0",
"@taiga-ui/polymorpheus": "^4.7.4", "@taiga-ui/polymorpheus": "^4.8.0",
"rxjs": ">=7.0.0" "rxjs": ">=7.0.0"
} }
}, },
"node_modules/@taiga-ui/legacy": { "node_modules/@taiga-ui/legacy": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/legacy/-/legacy-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/legacy/-/legacy-4.21.0.tgz",
"integrity": "sha512-Lrom7+K5UN0zhPhJopnazZIfAVifwKG+A4DunVQ4POdXOAq4PFJjG928SZqVPxhrO7NAS2sxQs9o70XecTr9ew==", "integrity": "sha512-B6QeYOyJ5F8WtrL/H3Wa1tiWogH8ruS1aGysASrDSo7wZfS66AzjAdNUuHX3L3HJcqp0xAAVDKL/LNW2S/fckg==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
@@ -4620,12 +4634,12 @@
} }
}, },
"node_modules/@taiga-ui/polymorpheus": { "node_modules/@taiga-ui/polymorpheus": {
"version": "4.7.4", "version": "4.8.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/polymorpheus/-/polymorpheus-4.7.4.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/polymorpheus/-/polymorpheus-4.8.0.tgz",
"integrity": "sha512-2D5xgTe9QC6WVZdpJsN9SntygzfWKGqREhQZMjb6Kvx+RRudqYr8/b0OgquRvXCVN+PztX3NhMO7bCYH0L/jAg==", "integrity": "sha512-gNXk8SVxXf/5wtmm6XeFMQ9RzY0xbM9E4vFxSGwnNegVZtv3T08YX2uoxPgUbgck2/GS9N5B5KvjjbVa0T0L9A==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"tslib": "^2.7.0" "tslib": "^2.8.1"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/core": ">=16.0.0", "@angular/core": ">=16.0.0",
@@ -4633,12 +4647,12 @@
} }
}, },
"node_modules/@taiga-ui/styles": { "node_modules/@taiga-ui/styles": {
"version": "4.16.0", "version": "4.21.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-4.16.0.tgz", "resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-4.21.0.tgz",
"integrity": "sha512-0Gjnw1HiicQz9cx9WgbC7fAJxTpeXje7ARqgUMryK7SIGfTt5VQisnBcTD/aImKLkvQvne6KOJEjEbKp20gvhw==", "integrity": "sha512-ZFbE1nIz0V3R/4ufXGJxxA+cX17dM7efFT38QKmZpsfSyGJBeASg1FQ5ENqIE3lR8kq+GmNNtro4oo+uCjH/7w==",
"peerDependencies": { "peerDependencies": {
"@taiga-ui/cdk": "^4.16.0", "@taiga-ui/cdk": "^4.21.0",
"@taiga-ui/core": "^4.16.0", "@taiga-ui/core": "^4.21.0",
"tslib": ">=2.8.1" "tslib": ">=2.8.1"
} }
}, },
@@ -9432,9 +9446,9 @@
} }
}, },
"node_modules/libphonenumber-js": { "node_modules/libphonenumber-js": {
"version": "1.11.16", "version": "1.11.18",
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.16.tgz", "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.18.tgz",
"integrity": "sha512-Noyazmt0yOvnG0OeRY45Cd1ur8G7Z0HWVkuCuKe+yysGNxPQwBAODBQQ40j0AIagi9ZWurfmmZWNlpg4h4W+XQ==", "integrity": "sha512-okMm/MCoFrm1vByeVFLBdkFIXLSHy/AIK2AEGgY3eoicfWZeOZqv3GfhtQgICkzs/tqorAMm3a4GBg5qNCrqzg==",
"license": "MIT", "license": "MIT",
"peer": true "peer": true
}, },

View File

@@ -47,18 +47,19 @@
"@noble/hashes": "^1.4.0", "@noble/hashes": "^1.4.0",
"@start9labs/argon2": "^0.2.2", "@start9labs/argon2": "^0.2.2",
"@start9labs/start-sdk": "file:../sdk/baseDist", "@start9labs/start-sdk": "file:../sdk/baseDist",
"@taiga-ui/addon-charts": "4.16.0", "@taiga-ui/addon-charts": "4.21.0",
"@taiga-ui/addon-commerce": "4.16.0", "@taiga-ui/addon-commerce": "4.21.0",
"@taiga-ui/addon-mobile": "4.16.0", "@taiga-ui/addon-mobile": "4.21.0",
"@taiga-ui/cdk": "4.16.0", "@taiga-ui/addon-table": "4.21.0",
"@taiga-ui/core": "4.16.0", "@taiga-ui/cdk": "4.21.0",
"@taiga-ui/core": "4.21.0",
"@taiga-ui/event-plugins": "4.3.1", "@taiga-ui/event-plugins": "4.3.1",
"@taiga-ui/icons": "4.16.0", "@taiga-ui/icons": "4.21.0",
"@taiga-ui/kit": "4.16.0", "@taiga-ui/kit": "4.21.0",
"@taiga-ui/layout": "4.16.0", "@taiga-ui/layout": "4.21.0",
"@taiga-ui/legacy": "4.16.0", "@taiga-ui/legacy": "4.21.0",
"@taiga-ui/polymorpheus": "4.7.4", "@taiga-ui/polymorpheus": "4.8.0",
"@taiga-ui/styles": "4.16.0", "@taiga-ui/styles": "4.21.0",
"@tinkoff/ng-dompurify": "4.0.0", "@tinkoff/ng-dompurify": "4.0.0",
"ansi-to-html": "^0.7.2", "ansi-to-html": "^0.7.2",
"base64-js": "^1.5.1", "base64-js": "^1.5.1",

View File

@@ -20,7 +20,7 @@ import {
} from '@taiga-ui/kit' } from '@taiga-ui/kit'
import { tuiTextfieldOptionsProvider } from '@taiga-ui/legacy' import { tuiTextfieldOptionsProvider } from '@taiga-ui/legacy'
import { PatchDB } from 'patch-db-client' import { PatchDB } from 'patch-db-client'
import { filter, pairwise } from 'rxjs' import { filter, of, pairwise } from 'rxjs'
import { import {
PATCH_CACHE, PATCH_CACHE,
PatchDbSource, PatchDbSource,
@@ -52,10 +52,10 @@ export const APP_PROVIDERS: Provider[] = [
tuiDropdownOptionsProvider({ appearance: 'start-os' }), tuiDropdownOptionsProvider({ appearance: 'start-os' }),
{ {
provide: TUI_DATE_FORMAT, provide: TUI_DATE_FORMAT,
useValue: { useValue: of({
mode: 'MDY', mode: 'MDY',
separator: '/', separator: '/',
}, }),
}, },
{ {
provide: TUI_DATE_VALUE_TRANSFORMER, provide: TUI_DATE_VALUE_TRANSFORMER,

View File

@@ -121,10 +121,7 @@ export class FormComponent<T extends Record<string, any>> implements OnInit {
} }
onReset() { onReset() {
const { value } = this.form
this.form = this.formService.createForm(this.spec) this.form = this.formService.createForm(this.spec)
this.process(compare(this.form.value, value))
tuiMarkControlAsTouchedAndValidate(this.form) tuiMarkControlAsTouchedAndValidate(this.form)
this.markAsDirty() this.markAsDirty()
} }

View File

@@ -49,11 +49,24 @@ import { getMenu } from 'src/app/utils/system-utilities'
@import '@taiga-ui/core/styles/taiga-ui-local'; @import '@taiga-ui/core/styles/taiga-ui-local';
:host { :host {
position: relative;
display: flex; display: flex;
backdrop-filter: blur(1rem);
border-radius: inherit; border-radius: inherit;
margin-inline-end: 0.875rem; margin-inline-end: 0.875rem;
isolation: isolate; isolation: isolate;
&::before {
content: '';
position: absolute;
top: 0;
left: -1rem;
right: -0.5rem;
bottom: 0;
transform: skewX(30deg);
border-radius: var(--bumper);
z-index: -1;
backdrop-filter: blur(1rem);
}
} }
.link { .link {

View File

@@ -1,26 +1,36 @@
import { ChangeDetectionStrategy, Component, inject } from '@angular/core' import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
import { toSignal } from '@angular/core/rxjs-interop' import { toSignal } from '@angular/core/rxjs-interop'
import { TuiIcon } from '@taiga-ui/core' import { TuiComparator, TuiTable } from '@taiga-ui/addon-table'
import { ToManifestPipe } from 'src/app/routes/portal/pipes/to-manifest' import { ToManifestPipe } from 'src/app/routes/portal/pipes/to-manifest'
import { DepErrorService } from 'src/app/services/dep-error.service' import { DepErrorService } from 'src/app/services/dep-error.service'
import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
import { getInstalledPrimaryStatus } from 'src/app/services/pkg-status-rendering.service'
import { getManifest } from 'src/app/utils/get-package-data'
import { ServiceComponent } from './service.component' import { ServiceComponent } from './service.component'
import { ServicesService } from './services.service' import { ServicesService } from './services.service'
@Component({ @Component({
standalone: true, standalone: true,
template: ` template: `
<table> <table tuiTable [(sorter)]="sorter">
<thead> <thead>
<tr> <tr>
<th [style.width.rem]="3"></th> <th [style.width.rem]="3"></th>
<th>Name</th> <th tuiTh [requiredSort]="true" [sorter]="name">Name</th>
<th>Version</th> <th tuiTh>Version</th>
<th [style.width.rem]="13">Status</th> <th
tuiTh
[requiredSort]="true"
[sorter]="status"
[style.width.rem]="13"
>
Status
</th>
<th [style.width.rem]="8" [style.text-indent.rem]="1.5">Controls</th> <th [style.width.rem]="8" [style.text-indent.rem]="1.5">Controls</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@for (pkg of services(); track $index) { @for (pkg of services() | tuiTableSort; track $index) {
<tr <tr
appService appService
[pkg]="pkg" [pkg]="pkg"
@@ -39,15 +49,12 @@ import { ServicesService } from './services.service'
styles: ` styles: `
:host { :host {
position: relative; position: relative;
max-width: 64rem;
margin: 0 auto;
font-size: 1rem; font-size: 1rem;
overflow: hidden; overflow: hidden;
} }
table { table {
width: calc(100% - 4rem); width: 100%;
margin: 2rem;
} }
tr:not(:last-child) { tr:not(:last-child) {
@@ -57,6 +64,8 @@ import { ServicesService } from './services.service'
th { th {
text-transform: uppercase; text-transform: uppercase;
color: var(--tui-text-secondary); color: var(--tui-text-secondary);
background: none;
border: none;
font: var(--tui-font-text-s); font: var(--tui-font-text-s);
font-weight: bold; font-weight: bold;
text-align: left; text-align: left;
@@ -69,22 +78,25 @@ import { ServicesService } from './services.service'
} }
:host-context(tui-root._mobile) { :host-context(tui-root._mobile) {
height: calc(100vh - 7.375rem);
table {
width: 100%;
margin: 0;
}
thead { thead {
display: none; display: none;
} }
} }
`, `,
imports: [TuiIcon, ServiceComponent, ToManifestPipe], imports: [ServiceComponent, ToManifestPipe, TuiTable],
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
}) })
export class DashboardComponent { export class DashboardComponent {
readonly services = toSignal(inject(ServicesService)) readonly services = toSignal(inject(ServicesService))
readonly errors = toSignal(inject(DepErrorService).depErrors$) readonly errors = toSignal(inject(DepErrorService).depErrors$)
readonly name: TuiComparator<PackageDataEntry> = (a, b) =>
getManifest(b).title.toLowerCase() > getManifest(a).title.toLowerCase()
? -1
: 1
readonly status: TuiComparator<PackageDataEntry> = (a, b) =>
getInstalledPrimaryStatus(b) > getInstalledPrimaryStatus(a) ? -1 : 1
sorter = this.name
} }

View File

@@ -172,7 +172,8 @@ export class ActionInputModal {
async execute(input: object) { async execute(input: object) {
if (await this.checkConflicts(input)) { if (await this.checkConflicts(input)) {
return this.actionService.execute(this.pkgInfo.id, this.actionId, input) await this.actionService.execute(this.pkgInfo.id, this.actionId, input)
this.context.$implicit.complete()
} }
} }

View File

@@ -81,6 +81,7 @@ import { MarketplaceControlsComponent } from './controls.component'
.preview-wrapper { .preview-wrapper {
overflow-y: auto; overflow-y: auto;
height: 100%;
max-width: 100%; max-width: 100%;
@media (min-width: 768px) { @media (min-width: 768px) {

View File

@@ -27,16 +27,15 @@ export function renderPkgStatus(
return { primary, dependency, health } return { primary, dependency, health }
} }
function getInstalledPrimaryStatus(pkg: T.PackageDataEntry): PrimaryStatus { export function getInstalledPrimaryStatus({
if ( requestedActions,
Object.values(pkg.requestedActions).some( status,
r => r.active && r.request.severity === 'critical', }: T.PackageDataEntry): PrimaryStatus {
) return Object.values(requestedActions).some(
) { r => r.active && r.request.severity === 'critical',
return 'actionRequired' )
} else { ? 'actionRequired'
return pkg.status.main : status.main
}
} }
function getDependencyStatus(depErrors: PkgDependencyErrors): DependencyStatus { function getDependencyStatus(depErrors: PkgDependencyErrors): DependencyStatus {

View File

@@ -8,7 +8,7 @@ export function getDepDetails(
allPkgs: AllPackageData, allPkgs: AllPackageData,
depId: string, depId: string,
) { ) {
const { title, icon, versionRange } = pkg.currentDependencies[depId] const { title, icon, versionRange } = pkg.currentDependencies[depId] || {}
if ( if (
allPkgs[depId] && allPkgs[depId] &&