Compare commits

...

2 Commits

Author SHA1 Message Date
801250ea5f install taiga 2022-10-16 21:53:24 +03:00
df13feeb77 Start loading games list from launcher 2022-10-16 21:52:56 +03:00
19 changed files with 933 additions and 16 deletions

View File

@ -26,9 +26,17 @@
"inlineStyleLanguage": "scss",
"assets": [
"src/favicon.ico",
"src/assets"
"src/assets",
{
"glob": "**/*",
"input": "node_modules/@taiga-ui/icons/src",
"output": "assets/taiga-ui/icons"
}
],
"styles": [
"node_modules/@taiga-ui/core/styles/taiga-ui-theme.less",
"node_modules/@taiga-ui/core/styles/taiga-ui-fonts.less",
"node_modules/@taiga-ui/styles/taiga-ui-global.less",
"src/styles.scss"
],
"scripts": []

702
package-lock.json generated
View File

@ -17,6 +17,13 @@
"@angular/platform-browser": "^14.1.0",
"@angular/platform-browser-dynamic": "^14.1.0",
"@angular/router": "^14.1.0",
"@taiga-ui/cdk": "^3.6.0",
"@taiga-ui/core": "^3.6.0",
"@taiga-ui/icons": "^3.6.0",
"@taiga-ui/kit": "^3.6.0",
"@taiga-ui/styles": "^3.6.0",
"@tinkoff/ng-dompurify": "3.0.0",
"dompurify": "2.2.9",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
"zone.js": "~0.11.4"
@ -25,6 +32,7 @@
"@angular-devkit/build-angular": "^14.1.3",
"@angular/cli": "~14.1.3",
"@angular/compiler-cli": "^14.1.0",
"@types/dompurify": "2.2.3",
"@types/jasmine": "~4.0.0",
"jasmine-core": "~4.2.0",
"karma": "~6.4.0",
@ -304,7 +312,7 @@
"version": "14.1.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.1.3.tgz",
"integrity": "sha512-i1vuuClGvBzmgQi3qAUWTwLdnGJZ/C8xVeFMHXmgVNZhck9/8xGGusi500SYsGcVzEfetGSJt5hOfUHmVrcpbg==",
"dev": true,
"devOptional": true,
"dependencies": {
"@angular-devkit/core": "14.1.3",
"jsonc-parser": "3.1.0",
@ -322,7 +330,7 @@
"version": "14.1.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.3.tgz",
"integrity": "sha512-YBxhRl7hKgirjcKeurfejVrIgmw31GcfKKCyQiIudoLCYjonnSMdDEx2y8BNMANvxe5YmuZsIYJtgVlqp3mMDg==",
"dev": true,
"devOptional": true,
"dependencies": {
"ajv": "8.11.0",
"ajv-formats": "2.1.1",
@ -348,7 +356,7 @@
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dev": true,
"devOptional": true,
"dependencies": {
"tslib": "^1.9.0"
},
@ -360,7 +368,7 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
"devOptional": true
},
"node_modules/@angular/animations": {
"version": "14.2.6",
@ -2610,6 +2618,55 @@
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
},
"node_modules/@ng-web-apis/common": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@ng-web-apis/common/-/common-2.0.1.tgz",
"integrity": "sha512-DqnH+zZFFKeINpbFIzCrBTYksP+7FqrHxWo2+jIXfMLjSngwZ6WYz3F4N9s+tFc8mKe8I1/P7pZtxD7fqSPtlA==",
"dependencies": {
"tslib": "^2.2.0"
},
"peerDependencies": {
"@angular/common": ">=12.0.0",
"@angular/core": ">=12.0.0",
"rxjs": ">=6.4.0"
}
},
"node_modules/@ng-web-apis/intersection-observer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@ng-web-apis/intersection-observer/-/intersection-observer-3.0.0.tgz",
"integrity": "sha512-Y3ts9WgXG/A6atyMlFOoP8ZNczUNxUGHSV4ii4xCepwcKW2gN/kkimsP4oPtb7UsTWzN1tF1n0bgD2civraZiA==",
"dependencies": {
"tslib": "^2.2.0"
},
"peerDependencies": {
"@angular/core": ">=12.0.0",
"@ng-web-apis/common": ">=2.0.0"
}
},
"node_modules/@ng-web-apis/mutation-observer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@ng-web-apis/mutation-observer/-/mutation-observer-2.0.0.tgz",
"integrity": "sha512-f51Cu2DloNze1HaTWdUbtYFnt9VXhzpEnHDd9KFdiKOUNfEDx7wrSXIEQqv810hrq7F2jcIAERCdiqV6ItH7Pg==",
"dependencies": {
"tslib": "^2.2.0"
},
"peerDependencies": {
"@angular/core": ">=12.0.0",
"@ng-web-apis/common": ">=2.0.0"
}
},
"node_modules/@ng-web-apis/resize-observer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@ng-web-apis/resize-observer/-/resize-observer-2.0.0.tgz",
"integrity": "sha512-umuXJepTYBCI3ZcW9873fozO0qt1PeHLBNM+wXA+7Wphy35+RQcPNmkwfgkKqWceIjlYAvyuPTNWa5TM1OEeqg==",
"dependencies": {
"tslib": "^2.2.0"
},
"peerDependencies": {
"@angular/core": ">=12.0.0",
"@ng-web-apis/common": ">=2.0.0"
}
},
"node_modules/@ngtools/webpack": {
"version": "14.2.6",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.6.tgz",
@ -2850,6 +2907,145 @@
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==",
"devOptional": true
},
"node_modules/@taiga-ui/cdk": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-3.6.0.tgz",
"integrity": "sha512-J9FSv2FzNdIW28wS0IsVJmKHOWmsnMAXMDzgApyjqS99C4Mzsu5i/T2lArAZgYTp12/XulFsMuo0BppN5FfYsw==",
"dependencies": {
"@ng-web-apis/common": "2.0.1",
"@ng-web-apis/mutation-observer": "2.0.0",
"@ng-web-apis/resize-observer": "2.0.0",
"@tinkoff/ng-event-plugins": "3.0.0",
"@tinkoff/ng-polymorpheus": "4.0.7",
"tslib": "^2.0.0"
},
"optionalDependencies": {
"ng-morph": "^2.1.0",
"parse5": "^6.0.1"
},
"peerDependencies": {
"@angular/animations": ">=9.0.0",
"@angular/common": ">=9.0.0",
"@angular/core": ">=9.0.0",
"@angular/forms": ">=9.0.0",
"rxjs": ">=6.0.0"
}
},
"node_modules/@taiga-ui/core": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-3.6.0.tgz",
"integrity": "sha512-RK3Q2MCE8JllXgtP7DLTSl0okhDZSyYdg23uVudmhBE57ktRFIrpIo+zrns9jRnRrl2JfY5SxmnhOxSE4F5QJQ==",
"dependencies": {
"@taiga-ui/i18n": "^3.6.0",
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/animations": ">=9.0.0",
"@angular/common": ">=9.0.0",
"@angular/core": ">=9.0.0",
"@angular/forms": ">=9.0.0",
"@angular/platform-browser": ">=9.0.0",
"@angular/router": ">=9.0.0",
"@ng-web-apis/common": ">=2.0.0",
"@ng-web-apis/mutation-observer": ">=2.0.0",
"@taiga-ui/cdk": ">=3.6.0",
"@taiga-ui/i18n": ">=3.6.0",
"@tinkoff/ng-event-plugins": ">=3.0.0",
"@tinkoff/ng-polymorpheus": ">=4.0.0",
"rxjs": ">=6.0.0"
}
},
"node_modules/@taiga-ui/i18n": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-3.6.0.tgz",
"integrity": "sha512-ICWTLPmZuuZkn+RHA8mPG2ee00ImIQn2nMFsK+jsRBGEhFx5Nsqu7+0z7khl8xE3SLntPLNDu/BcswwZPmWHow==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": ">=9.0.0",
"rxjs": ">=6.0.0"
}
},
"node_modules/@taiga-ui/icons": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-3.6.0.tgz",
"integrity": "sha512-SabHVIXYEfQCOTOL+BZP+QyrI8e5jyt3kIYh6rHQJ835okJ4Ali7aFA/68r/ceNrE+0w+YfjCgYrAWfUpXT4kQ==",
"dependencies": {
"tslib": "^2.0.0"
}
},
"node_modules/@taiga-ui/kit": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-3.6.0.tgz",
"integrity": "sha512-ZBZgd9hsrSmYYTRr96EY04Xh39XYdrqBkOPxqNnNGcH8QaOY01+XjLgmfFMaQ65/IjmxF4EpUXdCYz9M0kuP1g==",
"dependencies": {
"@ng-web-apis/intersection-observer": "^3.0.0",
"text-mask-core": "^5.0.0",
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/common": ">=9.0.0",
"@angular/core": ">=9.0.0",
"@angular/forms": ">=9.0.0",
"@angular/router": ">=9.0.0",
"@ng-web-apis/common": ">=2.0.0",
"@ng-web-apis/mutation-observer": ">=2.0.0",
"@taiga-ui/cdk": ">=3.6.0",
"@taiga-ui/core": ">=3.6.0",
"@taiga-ui/i18n": ">=3.6.0",
"@tinkoff/ng-polymorpheus": ">=4.0.0",
"rxjs": ">=6.0.0"
}
},
"node_modules/@taiga-ui/styles": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-3.6.0.tgz",
"integrity": "sha512-iv4vbi7bMJLzqVdOFaX8YCXc4e4h+/vxRhub+QwVnyjOnUDn70KpQkByknPYx7tJlv1McrFUVPOBulUOV4zKJQ=="
},
"node_modules/@tinkoff/ng-dompurify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@tinkoff/ng-dompurify/-/ng-dompurify-3.0.0.tgz",
"integrity": "sha512-Gx153lEakv4nEDZXFd2vW2zK8fI7fJMu8ZaRaPgGcq1wrAe0ps/mCZdg9KXNdyLUvwTu3WFsJXj5CwCG6Zfucg==",
"dependencies": {
"tslib": "^1.9.0"
},
"peerDependencies": {
"@angular/core": ">=4.0.0",
"@angular/platform-browser": ">=4.0.0",
"@types/dompurify": ">=2.0.0",
"dompurify": ">=2.0.0"
}
},
"node_modules/@tinkoff/ng-dompurify/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@tinkoff/ng-event-plugins": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@tinkoff/ng-event-plugins/-/ng-event-plugins-3.0.0.tgz",
"integrity": "sha512-3+5R86ozam9uevQ5N7+B/lPMWYCfQGxUOxuSp6qccpPTWqCjTBGjlhRVdt11r6S+3Gx2r9y4rgZ1Q1/P58MOFA==",
"dependencies": {
"tslib": "^2.2.0"
},
"peerDependencies": {
"@angular/core": ">=12.0.0",
"@angular/platform-browser": ">=12.0.0",
"rxjs": ">=6.0.0"
}
},
"node_modules/@tinkoff/ng-polymorpheus": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/@tinkoff/ng-polymorpheus/-/ng-polymorpheus-4.0.7.tgz",
"integrity": "sha512-+Gbwk9vfJVNbN1qy0L3pV+QW1sBkLfyAC1DsEdgSS3+c2qa2UEzDma5NTsaBbKoGTr3B3Qlryly8cTSz0JMLAQ==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": ">=12.0.0"
}
},
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@ -2859,6 +3055,40 @@
"node": ">= 10"
}
},
"node_modules/@ts-morph/common": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.9.2.tgz",
"integrity": "sha512-IPyg+c3Am0EBoa63W0f/AKeLrJhvzMzQ4BIvD1baxLopmiHOj1HFTXYxC6e8iTZ+UYtN+/WFM9UyGRnoA20b8g==",
"optional": true,
"dependencies": {
"fast-glob": "^3.2.5",
"minimatch": "^3.0.4",
"mkdirp": "^1.0.4",
"path-browserify": "^1.0.1"
}
},
"node_modules/@ts-morph/common/node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/@ts-morph/common/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"optional": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/@tsconfig/node10": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
@ -2925,6 +3155,14 @@
"integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==",
"devOptional": true
},
"node_modules/@types/dompurify": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-2.2.3.tgz",
"integrity": "sha512-CLtc2mZK8+axmrz1JqtpklO/Kvn38arGc8o1l3UVopZaXXuer9ONdZwJ/9f226GrhRLtUmLr9WrvZsRSNpS8og==",
"dependencies": {
"@types/trusted-types": "*"
}
},
"node_modules/@types/eslint": {
"version": "8.4.6",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz",
@ -2998,6 +3236,12 @@
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
"integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
},
"node_modules/@types/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
"optional": true
},
"node_modules/@types/node": {
"version": "18.11.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz",
@ -3048,6 +3292,11 @@
"@types/node": "*"
}
},
"node_modules/@types/trusted-types": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz",
"integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg=="
},
"node_modules/@types/ws": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
@ -3462,11 +3711,38 @@
"sprintf-js": "~1.0.2"
}
},
"node_modules/array-differ": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
"integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
"optional": true,
"engines": {
"node": ">=8"
}
},
"node_modules/array-flatten": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
},
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"optional": true,
"engines": {
"node": ">=8"
}
},
"node_modules/arrify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"optional": true,
"engines": {
"node": ">=8"
}
},
"node_modules/autoprefixer": {
"version": "10.4.12",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
@ -4004,6 +4280,12 @@
"node": ">=6"
}
},
"node_modules/code-block-writer": {
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz",
"integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==",
"optional": true
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@ -4721,6 +5003,11 @@
"url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
"node_modules/dompurify": {
"version": "2.2.9",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.9.tgz",
"integrity": "sha512-+9MqacuigMIZ+1+EwoEltogyWGFTJZWU3258Rupxs+2CGs4H914G9er6pZbsme/bvb5L67o2rade9n21e4RW/w=="
},
"node_modules/domutils": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
@ -7578,6 +7865,47 @@
"multicast-dns": "cli.js"
}
},
"node_modules/multimatch": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
"integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
"optional": true,
"dependencies": {
"@types/minimatch": "^3.0.3",
"array-differ": "^3.0.0",
"array-union": "^2.1.0",
"arrify": "^2.0.1",
"minimatch": "^3.0.4"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/multimatch/node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/multimatch/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"optional": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
@ -7645,6 +7973,50 @@
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"node_modules/ng-morph": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ng-morph/-/ng-morph-2.1.1.tgz",
"integrity": "sha512-mUziQxQm0YnP9WOCy2WRZVq6xNf+WgAvosdPU+hwmGUinoZ6vBrP3GECoRmM7Aor0PDG1KNIarJsDNS7BlxTLQ==",
"optional": true,
"dependencies": {
"jsonc-parser": "3.0.0",
"minimatch": "3.0.4",
"multimatch": "5.0.0",
"ts-morph": "10.0.2"
},
"peerDependencies": {
"@angular-devkit/core": ">=11.0.0",
"@angular-devkit/schematics": ">=11.0.0"
}
},
"node_modules/ng-morph/node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/ng-morph/node_modules/jsonc-parser": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
"integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==",
"optional": true
},
"node_modules/ng-morph/node_modules/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"optional": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/nice-napi": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz",
@ -8346,6 +8718,12 @@
"node": ">= 0.8"
}
},
"node_modules/path-browserify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
"optional": true
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@ -10537,6 +10915,11 @@
"node": "*"
}
},
"node_modules/text-mask-core": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/text-mask-core/-/text-mask-core-5.1.2.tgz",
"integrity": "sha512-VfkCMdmRRZqXgQZFlDMiavm3hzsMzBM23CxHZsaeAYg66ZhXCNJWrFmnJwNy8KF9f74YvAUAuQenxsMCfuvhUw=="
},
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@ -10598,6 +10981,16 @@
"tree-kill": "cli.js"
}
},
"node_modules/ts-morph": {
"version": "10.0.2",
"resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-10.0.2.tgz",
"integrity": "sha512-TVuIfEqtr9dW25K3Jajqpqx7t/zLRFxKu2rXQZSDjTm4MO4lfmuj1hn8WEryjeDDBFcNOCi+yOmYUYR4HucrAg==",
"optional": true,
"dependencies": {
"@ts-morph/common": "~0.9.0",
"code-block-writer": "^10.1.1"
}
},
"node_modules/ts-node": {
"version": "10.9.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
@ -11561,7 +11954,7 @@
"version": "14.1.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.1.3.tgz",
"integrity": "sha512-i1vuuClGvBzmgQi3qAUWTwLdnGJZ/C8xVeFMHXmgVNZhck9/8xGGusi500SYsGcVzEfetGSJt5hOfUHmVrcpbg==",
"dev": true,
"devOptional": true,
"requires": {
"@angular-devkit/core": "14.1.3",
"jsonc-parser": "3.1.0",
@ -11574,7 +11967,7 @@
"version": "14.1.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.3.tgz",
"integrity": "sha512-YBxhRl7hKgirjcKeurfejVrIgmw31GcfKKCyQiIudoLCYjonnSMdDEx2y8BNMANvxe5YmuZsIYJtgVlqp3mMDg==",
"dev": true,
"devOptional": true,
"requires": {
"ajv": "8.11.0",
"ajv-formats": "2.1.1",
@ -11587,7 +11980,7 @@
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dev": true,
"devOptional": true,
"requires": {
"tslib": "^1.9.0"
}
@ -11596,7 +11989,7 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
"devOptional": true
}
}
},
@ -13061,6 +13454,38 @@
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
},
"@ng-web-apis/common": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@ng-web-apis/common/-/common-2.0.1.tgz",
"integrity": "sha512-DqnH+zZFFKeINpbFIzCrBTYksP+7FqrHxWo2+jIXfMLjSngwZ6WYz3F4N9s+tFc8mKe8I1/P7pZtxD7fqSPtlA==",
"requires": {
"tslib": "^2.2.0"
}
},
"@ng-web-apis/intersection-observer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@ng-web-apis/intersection-observer/-/intersection-observer-3.0.0.tgz",
"integrity": "sha512-Y3ts9WgXG/A6atyMlFOoP8ZNczUNxUGHSV4ii4xCepwcKW2gN/kkimsP4oPtb7UsTWzN1tF1n0bgD2civraZiA==",
"requires": {
"tslib": "^2.2.0"
}
},
"@ng-web-apis/mutation-observer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@ng-web-apis/mutation-observer/-/mutation-observer-2.0.0.tgz",
"integrity": "sha512-f51Cu2DloNze1HaTWdUbtYFnt9VXhzpEnHDd9KFdiKOUNfEDx7wrSXIEQqv810hrq7F2jcIAERCdiqV6ItH7Pg==",
"requires": {
"tslib": "^2.2.0"
}
},
"@ng-web-apis/resize-observer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@ng-web-apis/resize-observer/-/resize-observer-2.0.0.tgz",
"integrity": "sha512-umuXJepTYBCI3ZcW9873fozO0qt1PeHLBNM+wXA+7Wphy35+RQcPNmkwfgkKqWceIjlYAvyuPTNWa5TM1OEeqg==",
"requires": {
"tslib": "^2.2.0"
}
},
"@ngtools/webpack": {
"version": "14.2.6",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.6.tgz",
@ -13232,12 +13657,131 @@
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==",
"devOptional": true
},
"@taiga-ui/cdk": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/cdk/-/cdk-3.6.0.tgz",
"integrity": "sha512-J9FSv2FzNdIW28wS0IsVJmKHOWmsnMAXMDzgApyjqS99C4Mzsu5i/T2lArAZgYTp12/XulFsMuo0BppN5FfYsw==",
"requires": {
"@ng-web-apis/common": "2.0.1",
"@ng-web-apis/mutation-observer": "2.0.0",
"@ng-web-apis/resize-observer": "2.0.0",
"@tinkoff/ng-event-plugins": "3.0.0",
"@tinkoff/ng-polymorpheus": "4.0.7",
"ng-morph": "^2.1.0",
"parse5": "^6.0.1",
"tslib": "^2.0.0"
}
},
"@taiga-ui/core": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/core/-/core-3.6.0.tgz",
"integrity": "sha512-RK3Q2MCE8JllXgtP7DLTSl0okhDZSyYdg23uVudmhBE57ktRFIrpIo+zrns9jRnRrl2JfY5SxmnhOxSE4F5QJQ==",
"requires": {
"@taiga-ui/i18n": "^3.6.0",
"tslib": "^2.0.0"
}
},
"@taiga-ui/i18n": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/i18n/-/i18n-3.6.0.tgz",
"integrity": "sha512-ICWTLPmZuuZkn+RHA8mPG2ee00ImIQn2nMFsK+jsRBGEhFx5Nsqu7+0z7khl8xE3SLntPLNDu/BcswwZPmWHow==",
"requires": {
"tslib": "^2.0.0"
}
},
"@taiga-ui/icons": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/icons/-/icons-3.6.0.tgz",
"integrity": "sha512-SabHVIXYEfQCOTOL+BZP+QyrI8e5jyt3kIYh6rHQJ835okJ4Ali7aFA/68r/ceNrE+0w+YfjCgYrAWfUpXT4kQ==",
"requires": {
"tslib": "^2.0.0"
}
},
"@taiga-ui/kit": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/kit/-/kit-3.6.0.tgz",
"integrity": "sha512-ZBZgd9hsrSmYYTRr96EY04Xh39XYdrqBkOPxqNnNGcH8QaOY01+XjLgmfFMaQ65/IjmxF4EpUXdCYz9M0kuP1g==",
"requires": {
"@ng-web-apis/intersection-observer": "^3.0.0",
"text-mask-core": "^5.0.0",
"tslib": "^2.0.0"
}
},
"@taiga-ui/styles": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@taiga-ui/styles/-/styles-3.6.0.tgz",
"integrity": "sha512-iv4vbi7bMJLzqVdOFaX8YCXc4e4h+/vxRhub+QwVnyjOnUDn70KpQkByknPYx7tJlv1McrFUVPOBulUOV4zKJQ=="
},
"@tinkoff/ng-dompurify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@tinkoff/ng-dompurify/-/ng-dompurify-3.0.0.tgz",
"integrity": "sha512-Gx153lEakv4nEDZXFd2vW2zK8fI7fJMu8ZaRaPgGcq1wrAe0ps/mCZdg9KXNdyLUvwTu3WFsJXj5CwCG6Zfucg==",
"requires": {
"tslib": "^1.9.0"
},
"dependencies": {
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}
}
},
"@tinkoff/ng-event-plugins": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@tinkoff/ng-event-plugins/-/ng-event-plugins-3.0.0.tgz",
"integrity": "sha512-3+5R86ozam9uevQ5N7+B/lPMWYCfQGxUOxuSp6qccpPTWqCjTBGjlhRVdt11r6S+3Gx2r9y4rgZ1Q1/P58MOFA==",
"requires": {
"tslib": "^2.2.0"
}
},
"@tinkoff/ng-polymorpheus": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/@tinkoff/ng-polymorpheus/-/ng-polymorpheus-4.0.7.tgz",
"integrity": "sha512-+Gbwk9vfJVNbN1qy0L3pV+QW1sBkLfyAC1DsEdgSS3+c2qa2UEzDma5NTsaBbKoGTr3B3Qlryly8cTSz0JMLAQ==",
"requires": {
"tslib": "^2.0.0"
}
},
"@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
"integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
"dev": true
},
"@ts-morph/common": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.9.2.tgz",
"integrity": "sha512-IPyg+c3Am0EBoa63W0f/AKeLrJhvzMzQ4BIvD1baxLopmiHOj1HFTXYxC6e8iTZ+UYtN+/WFM9UyGRnoA20b8g==",
"optional": true,
"requires": {
"fast-glob": "^3.2.5",
"minimatch": "^3.0.4",
"mkdirp": "^1.0.4",
"path-browserify": "^1.0.1"
},
"dependencies": {
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
}
}
},
"@tsconfig/node10": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
@ -13304,6 +13848,14 @@
"integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==",
"devOptional": true
},
"@types/dompurify": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-2.2.3.tgz",
"integrity": "sha512-CLtc2mZK8+axmrz1JqtpklO/Kvn38arGc8o1l3UVopZaXXuer9ONdZwJ/9f226GrhRLtUmLr9WrvZsRSNpS8og==",
"requires": {
"@types/trusted-types": "*"
}
},
"@types/eslint": {
"version": "8.4.6",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz",
@ -13377,6 +13929,12 @@
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
"integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
},
"@types/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
"optional": true
},
"@types/node": {
"version": "18.11.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.0.tgz",
@ -13427,6 +13985,11 @@
"@types/node": "*"
}
},
"@types/trusted-types": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz",
"integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg=="
},
"@types/ws": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
@ -13771,11 +14334,29 @@
"sprintf-js": "~1.0.2"
}
},
"array-differ": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
"integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
"optional": true
},
"array-flatten": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
},
"array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"optional": true
},
"arrify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"optional": true
},
"autoprefixer": {
"version": "10.4.12",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
@ -14149,6 +14730,12 @@
"shallow-clone": "^3.0.0"
}
},
"code-block-writer": {
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz",
"integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==",
"optional": true
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@ -14671,6 +15258,11 @@
"domelementtype": "^2.2.0"
}
},
"dompurify": {
"version": "2.2.9",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.9.tgz",
"integrity": "sha512-+9MqacuigMIZ+1+EwoEltogyWGFTJZWU3258Rupxs+2CGs4H914G9er6pZbsme/bvb5L67o2rade9n21e4RW/w=="
},
"domutils": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
@ -16692,6 +17284,40 @@
"thunky": "^1.0.2"
}
},
"multimatch": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz",
"integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==",
"optional": true,
"requires": {
"@types/minimatch": "^3.0.3",
"array-differ": "^3.0.0",
"array-union": "^2.1.0",
"arrify": "^2.0.1",
"minimatch": "^3.0.4"
},
"dependencies": {
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
}
}
},
"mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
@ -16743,6 +17369,45 @@
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"ng-morph": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ng-morph/-/ng-morph-2.1.1.tgz",
"integrity": "sha512-mUziQxQm0YnP9WOCy2WRZVq6xNf+WgAvosdPU+hwmGUinoZ6vBrP3GECoRmM7Aor0PDG1KNIarJsDNS7BlxTLQ==",
"optional": true,
"requires": {
"jsonc-parser": "3.0.0",
"minimatch": "3.0.4",
"multimatch": "5.0.0",
"ts-morph": "10.0.2"
},
"dependencies": {
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"jsonc-parser": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
"integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==",
"optional": true
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
}
}
},
"nice-napi": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz",
@ -17263,6 +17928,12 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"path-browserify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
"optional": true
},
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@ -18748,6 +19419,11 @@
}
}
},
"text-mask-core": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/text-mask-core/-/text-mask-core-5.1.2.tgz",
"integrity": "sha512-VfkCMdmRRZqXgQZFlDMiavm3hzsMzBM23CxHZsaeAYg66ZhXCNJWrFmnJwNy8KF9f74YvAUAuQenxsMCfuvhUw=="
},
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@ -18794,6 +19470,16 @@
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
"integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="
},
"ts-morph": {
"version": "10.0.2",
"resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-10.0.2.tgz",
"integrity": "sha512-TVuIfEqtr9dW25K3Jajqpqx7t/zLRFxKu2rXQZSDjTm4MO4lfmuj1hn8WEryjeDDBFcNOCi+yOmYUYR4HucrAg==",
"optional": true,
"requires": {
"@ts-morph/common": "~0.9.0",
"code-block-writer": "^10.1.1"
}
},
"ts-node": {
"version": "10.9.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",

View File

@ -19,6 +19,13 @@
"@angular/platform-browser": "^14.1.0",
"@angular/platform-browser-dynamic": "^14.1.0",
"@angular/router": "^14.1.0",
"@taiga-ui/cdk": "^3.6.0",
"@taiga-ui/core": "^3.6.0",
"@taiga-ui/icons": "^3.6.0",
"@taiga-ui/kit": "^3.6.0",
"@taiga-ui/styles": "^3.6.0",
"@tinkoff/ng-dompurify": "3.0.0",
"dompurify": "2.2.9",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
"zone.js": "~0.11.4"
@ -27,6 +34,7 @@
"@angular-devkit/build-angular": "^14.1.3",
"@angular/cli": "~14.1.3",
"@angular/compiler-cli": "^14.1.0",
"@types/dompurify": "2.2.3",
"@types/jasmine": "~4.0.0",
"jasmine-core": "~4.2.0",
"karma": "~6.4.0",

View File

@ -1,3 +1,9 @@
<tui-root>
Test (version: {{version}})
<button (click)="getVersion()">Get version</button>
<app-games-bar></app-games-bar>
<!-- <button (click)="RunGame()">Launch Open Arena</button> -->
<!-- <button (click)="launchGame2()">Launch Garry's Mod</button> -->
</tui-root>

View File

@ -1,5 +1,5 @@
import { Component } from '@angular/core';
import { GetVersion, GetVersionCallbackDetail } from './services/go';
import { GetVersion, GetVersionCallbackDetail, RunGame } from './services/go';
@Component({
selector: 'app-root',
@ -19,4 +19,8 @@ export class AppComponent {
});
GetVersion();
}
RunGame() {
RunGame();
}
}

View File

@ -1,3 +1,7 @@
import { NgDompurifySanitizer } from "@tinkoff/ng-dompurify";
import { TuiRootModule, TuiDialogModule, TuiAlertModule, TUI_SANITIZER } from "@taiga-ui/core";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import {TuiButtonModule} from '@taiga-ui/core';
import {
APP_BASE_HREF,
LocationStrategy,
@ -8,13 +12,18 @@ import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { GamesBarComponent } from './games-bar/games-bar.component';
import { GameButtonComponent } from './games-bar/game-button/game-button.component';
import { TuiAvatarModule } from "@taiga-ui/kit";
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, AppRoutingModule],
declarations: [AppComponent, GamesBarComponent, GameButtonComponent],
imports: [BrowserModule, AppRoutingModule, BrowserAnimationsModule, TuiRootModule, TuiDialogModule, TuiAlertModule, TuiButtonModule, TuiAvatarModule],
providers: [
{ provide: APP_BASE_HREF, useValue: '/' },
{ provide: LocationStrategy, useClass: HashLocationStrategy },
{provide: TUI_SANITIZER, useClass: NgDompurifySanitizer}
],
bootstrap: [AppComponent],
})

View File

@ -0,0 +1,17 @@
<ng-template #icon>
<tui-avatar
size="xs"
[rounded]="true"
[avatarUrl]="'http://jpg.jpg'"
></tui-avatar>
</ng-template>
<button
tuiButton
type="button"
appearance="primary"
[icon]="icon"
class="tui-space_right-3 tui-space_bottom-3"
>
<ng-content></ng-content>
</button>

View File

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { GameButtonComponent } from './game-button.component';
describe('GameButtonComponent', () => {
let component: GameButtonComponent;
let fixture: ComponentFixture<GameButtonComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ GameButtonComponent ]
})
.compileComponents();
fixture = TestBed.createComponent(GameButtonComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-game-button',
templateUrl: './game-button.component.html',
styleUrls: ['./game-button.component.scss']
})
export class GameButtonComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -0,0 +1,5 @@
<!-- <app-game-button *ngFor="let item of games" (click)="removePlayerZero(item)"> -->
<app-game-button *ngFor="let item of games">
name: {{item.name}}
<div *ngFor="let player of item.icon">{{player}}</div>
</app-game-button>

View File

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { GamesBarComponent } from './games-bar.component';
describe('GamesBarComponent', () => {
let component: GamesBarComponent;
let fixture: ComponentFixture<GamesBarComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ GamesBarComponent ]
})
.compileComponents();
fixture = TestBed.createComponent(GamesBarComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,39 @@
import { Component, OnInit } from '@angular/core';
import { LauncherService } from '../services/launcher.service';
import { Game } from '../services/oxana.service';
@Component({
selector: 'app-games-bar',
templateUrl: './games-bar.component.html',
styleUrls: ['./games-bar.component.scss']
})
export class GamesBarComponent implements OnInit {
constructor(private launcher: LauncherService) { }
games!: Game[]
// games: Game[] = [{
// name: 'str',
// players: ['1', '2']
// },
// {
// name: 'qwe',
// players: ['6', '4']
// }]
ngOnInit(): void {
// let i = 0
// setInterval(() => {
// this.games.push({name: `name-${++i}`, players: []})
// }, 100)
this.games = this.launcher.GetGames()
console.log("asdasd")
console.log(this.games)
}
// removePlayerZero (item: Game) {
// if (item.players.length == 0) return
// item.players.splice(0, 1)
// }
}

View File

@ -1,12 +1,13 @@
export interface Go extends Window {
GetVersion: () => string;
RunGame: () => string;
}
export interface GoCallback extends Window {
SetVersion: (value: string) => void;
}
let { GetVersion } = window as unknown as Go;
let { GetVersion, RunGame} = window as unknown as Go;
let { SetVersion } = window as unknown as GoCallback;
export declare type GetVersionCallbackDetail = string;
@ -17,5 +18,4 @@ export declare type GetVersionCallbackDetail = string;
});
document.dispatchEvent(event);
};
export { GetVersion, SetVersion };
export { GetVersion, SetVersion, RunGame};

View File

@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { LauncherService } from './launcher.service';
describe('LauncherService', () => {
let service: LauncherService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(LauncherService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});

View File

@ -0,0 +1,19 @@
import { Injectable } from '@angular/core';
import { Game } from './oxana.service';
@Injectable({
providedIn: 'root'
})
export class LauncherService {
constructor() { }
public GetGames(): Game[]{
var currentGames :Game[] = [
{ name: "ad", icon: "string", id: "string"},
{ name: "qwet", icon: "string", id: "string"},
{ name: "1233", icon: "string", id: "string"},
{ name: "ghjghj", icon: "string", id: "string"}
]
return currentGames
}
}

View File

@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { OxanaService } from './oxana.service';
describe('OxanaService', () => {
let service: OxanaService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(OxanaService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});

View File

@ -0,0 +1,23 @@
import { Injectable } from '@angular/core';
import { LauncherService } from './launcher.service';
@Injectable({
providedIn: 'root'
})
export class OxanaService {
private games!: Game
constructor(private launcher: LauncherService) { }
// public getGames():Game{
// currentGames = launcher.GetGames()
// return currentGames
// }
}
export interface Game {
name: string
icon: string
id: string
}