diff --git a/.eslintrc.json b/.eslintrc.json index 7a76e6e8923..19dd8d1343a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -10,17 +10,25 @@ ], "parserOptions": { "project": [ - "tsconfig.json", - "e2e/tsconfig.json" + "tsconfig.json" ], "createDefaultProgram": true }, "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", "plugin:@angular-eslint/recommended", "plugin:@angular-eslint/template/process-inline-templates" ], "rules": { "no-shadow": "off", + "no-prototype-builtins": "off", + "no-case-declarations": "warn", + "prefer-spread": "warn", + "no-async-promise-executor": "warn", + "prefer-const": "warn", + "no-useless-escape": "warn", + "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-shadow": [ "error" ], @@ -58,7 +66,10 @@ ], "id-blacklist": "off", "id-match": "off", - "no-underscore-dangle": "off" + "no-underscore-dangle": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/ban-types": "warn" } }, { diff --git a/CHANGELOG.md b/CHANGELOG.md index b135b56379b..f106d66977a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,54 @@ All notable changes for each version of this project will be documented in this ## 16.0.0 +### General +- All Ignite UI for Angular components are now exported as `standalone` components. The library still exports `NgModules`, which have been preserved for backward compatibility, but they no longer declare any of the Ignite UI for Angular components, instead they just import and export the `standalone` components. The `standalone` components are still in a preview stage. Some utility directive exports may change in the future and may be missing from the documentation in the initial release, hence the `preview` state of the feature. + +Now you can do: + +```typescript +// IGX_GRID_DIRECTIVES exports all grid related components and directives +import { IGX_GRID_DIRECTIVES } from 'igniteui-angular'; + +@Component({ + selector: 'app-grid-sample', + styleUrls: ['grid.sample.scss'], + templateUrl: 'grid.sample.html', + standalone: true, + imports: [IGX_GRID_DIRECTIVES, AsyncPipe] +}) +``` + +or + +```typescript +// Single import of only the component. +import { IgxGridComponent } from 'igniteui-angular'; + +@Component({ + selector: 'app-grid-sample', + styleUrls: ['grid.sample.scss'], + templateUrl: 'grid.sample.html', + standalone: true, + imports: [IgxGridComponent, AsyncPipe] +}) +``` + +or still + +```typescript +// `NgModule` import of the `IgxGridModule` module, which is equivalent to IGX_GRID_DIRECTIVES in terms of exported components and directives. +import { IgxGridModule } from 'igniteui-angular'; + +@Component({ + selector: 'app-grid-sample', + styleUrls: ['grid.sample.scss'], + templateUrl: 'grid.sample.html', + standalone: true, + imports: [IgxGridModule, AsyncPipe] +}) +``` + ### New Features - `IgxExpansionPanel`: - `IgxExpansionPanelTitleDirective` and `IgxExpansionPanelDescriptionDirective` show tooltip of the provided text content. diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js deleted file mode 100644 index 86776a391a5..00000000000 --- a/e2e/protractor.conf.js +++ /dev/null @@ -1,28 +0,0 @@ -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/lib/config.ts - -const { SpecReporter } = require('jasmine-spec-reporter'); - -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './src/**/*.e2e-spec.ts' - ], - capabilities: { - 'browserName': 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - onPrepare() { - require('ts-node').register({ - project: require('path').join(__dirname, './tsconfig.e2e.json') - }); - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } -}; \ No newline at end of file diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts deleted file mode 100644 index e42d1f965ff..00000000000 --- a/e2e/src/app.e2e-spec.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { AppPage } from './app.po'; - -describe('workspace-project App', () => { - let page: AppPage; - - beforeEach(() => { - page = new AppPage(); - }); - - it('should display welcome message', () => { - page.navigateTo(); - expect(page.getParagraphText()).toEqual('Welcome to app!'); - }); -}); diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts deleted file mode 100644 index 4e5af4cd47a..00000000000 --- a/e2e/src/app.po.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { browser, by, element } from 'protractor'; - -export class AppPage { - public navigateTo() { - return browser.get('/'); - } - - public getParagraphText() { - return element(by.css('app-root h1')).getText(); - } -} diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json deleted file mode 100644 index a6dd6220282..00000000000 --- a/e2e/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../out-tsc/app", - "module": "commonjs", - "target": "es5", - "types": [ - "jasmine", - "jasminewd2", - "node" - ] - } -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0247ec57d0a..29885ab9137 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "igniteui-dev-demos", "version": "0.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -9,15 +9,15 @@ "version": "0.0.0", "hasInstallScript": true, "dependencies": { - "@angular/animations": "^15.2.0", - "@angular/common": "^15.2.0", - "@angular/compiler": "^15.2.0", - "@angular/core": "^15.2.0", - "@angular/forms": "^15.2.0", - "@angular/platform-browser": "^15.2.0", - "@angular/platform-browser-dynamic": "^15.2.0", - "@angular/router": "^15.2.0", - "@igniteui/material-icons-extended": "^2.10.0", + "@angular/animations": "^16.0.0", + "@angular/common": "^16.0.0", + "@angular/compiler": "^16.0.0", + "@angular/core": "^16.0.0", + "@angular/forms": "^16.0.0", + "@angular/platform-browser": "^16.0.0", + "@angular/platform-browser-dynamic": "^16.0.0", + "@angular/router": "^16.0.0", + "@igniteui/material-icons-extended": "^3.0.0", "@types/hammerjs": "^2.0.40", "@types/source-map": "0.5.2", "fflate": "^0.7.3", @@ -28,33 +28,31 @@ "rxjs": "^6.6.7", "tslib": "^2.3.0", "uuid": "^9.0.0", - "zone.js": "~0.12.0" + "zone.js": "~0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.2.0", - "@angular-devkit/schematics": "^15.2.0", - "@angular-eslint/builder": "^15.2.0", - "@angular-eslint/eslint-plugin": "^15.2.0", - "@angular-eslint/eslint-plugin-template": "^15.2.0", - "@angular-eslint/schematics": "^15.2.0", - "@angular-eslint/template-parser": "^15.2.0", - "@angular/cli": "^15.2.0", - "@angular/compiler-cli": "^15.2.0", - "@angular/language-service": "^15.2.0", + "@angular-devkit/build-angular": "^16.0.0", + "@angular-devkit/schematics": "^16.0.0", + "@angular-eslint/builder": "^16.0.1", + "@angular-eslint/eslint-plugin": "^16.0.1", + "@angular-eslint/eslint-plugin-template": "^16.0.1", + "@angular-eslint/schematics": "^16.0.1", + "@angular-eslint/template-parser": "^16.0.1", + "@angular/cli": "^16.0.0", + "@angular/compiler-cli": "^16.0.0", + "@angular/language-service": "^16.0.0", "@angularclass/hmr": "^3.0.0", - "@cypress/schematic": "^2.4.0", "@types/estree": "^1.0.0", "@types/jasmine": "^4.3.1", "@types/jasminewd2": "^2.0.10", "@types/node": "^18.11.19", "@types/sass-true": "^6.0.2", "@types/webpack-env": "^1.16.3", - "@typescript-eslint/eslint-plugin": "^5.48.1", - "@typescript-eslint/parser": "^5.48.1", + "@typescript-eslint/eslint-plugin": "^5.59.2", + "@typescript-eslint/parser": "^5.59.2", "browser-sync": "^2.27.11", - "cypress": "^12.6.0", "del": "^6.0.0", - "eslint": "^8.32.0", + "eslint": "^8.39.0", "gulp": "^4.0.2", "gulp-cached": "^1.1.1", "gulp-concat": "^2.6.1", @@ -67,17 +65,17 @@ "hammer-simulator": "0.0.1", "ig-typedoc-theme": "^4.2.0", "igniteui-sassdoc-theme": "^1.1.6", - "igniteui-webcomponents": "^4.2.1", - "jasmine": "^4.5.0", - "jasmine-core": "~4.5.0", - "karma": "^6.3.11", - "karma-chrome-launcher": "~3.1.0", + "igniteui-webcomponents": "^4.2.3", + "jasmine": "^4.6.0", + "jasmine-core": "~4.6.0", + "karma": "^6.4.2", + "karma-chrome-launcher": "~3.2.0", "karma-coverage": "^2.0.3", "karma-jasmine": "~5.1.0", "karma-junit-reporter": "^2.0.1", "karma-parallel": "^0.3.1", "karma-spec-reporter": "^0.0.36", - "ng-packagr": "^15.1.1", + "ng-packagr": "^16.0.0", "postcss-scss": "^4.0.6", "sass": "^1.58.1", "sass-true": "^6.0.1", @@ -92,12 +90,12 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -105,53 +103,63 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1502.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.0.tgz", - "integrity": "sha512-/HmyAQhb4BNbcVRL2uaLwrJAAeYVUD42Bipoq8+kUNzoRv9QqJTIOx+2fSsmwBk8C+Jx3184UD3SfUmEnFPt4g==", + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.0.tgz", + "integrity": "sha512-nYRcqAxZnndhAEpSpJ1U2TScs2huu674OKrsEyJTqLEANEyCPBnusAmS9HcGzMBgePAwNElqOKrr5/f1DbYq1A==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.0", - "rxjs": "6.6.7" + "@angular-devkit/core": "16.0.0", + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/@angular-devkit/build-angular": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.0.tgz", - "integrity": "sha512-scEZSBlVPWk7cFEoIVjW3T84it6ZPB4AU/U+dLuIvBT1P0V7R4Kctp8J219eAKsxrjTdD6hvYKXSP2uBFoqgng==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.0.tgz", + "integrity": "sha512-OvDQAbrV3cUMfHws30MnDURsXselZ0GWhSxZjOdcD3cF64Nsq5ywftHOT+QC3YdDghwI8gMADN9et+aVDscBzQ==", "dev": true, "dependencies": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1502.0", - "@angular-devkit/build-webpack": "0.1502.0", - "@angular-devkit/core": "15.2.0", - "@babel/core": "7.20.12", - "@babel/generator": "7.20.14", + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/build-webpack": "0.1600.0", + "@angular-devkit/core": "16.0.0", + "@babel/core": "7.21.4", + "@babel/generator": "7.21.4", "@babel/helper-annotate-as-pure": "7.18.6", "@babel/helper-split-export-declaration": "7.18.6", "@babel/plugin-proposal-async-generator-functions": "7.20.7", "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.19.6", - "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.13", + "@babel/plugin-transform-runtime": "7.21.4", + "@babel/preset-env": "7.21.4", + "@babel/runtime": "7.21.0", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.2.0", + "@ngtools/webpack": "16.0.0", + "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.13", + "autoprefixer": "10.4.14", "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", "browserslist": "4.21.5", - "cacache": "17.0.4", + "cacache": "17.0.6", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.3", - "esbuild-wasm": "0.17.8", + "esbuild-wasm": "0.17.18", "glob": "8.1.0", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -161,49 +169,53 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.29.0", - "mini-css-extract-plugin": "2.7.2", - "open": "8.4.1", + "magic-string": "0.30.0", + "mini-css-extract-plugin": "2.7.5", + "mrmime": "1.0.1", + "open": "8.4.2", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", "piscina": "3.2.0", - "postcss": "8.4.21", - "postcss-loader": "7.0.2", + "postcss": "8.4.23", + "postcss-loader": "7.2.4", "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.58.1", - "sass-loader": "13.2.0", - "semver": "7.3.8", + "rxjs": "7.8.1", + "sass": "1.62.1", + "sass-loader": "13.2.2", + "semver": "7.4.0", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.16.3", + "terser": "5.17.1", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.5.0", - "webpack": "5.75.0", - "webpack-dev-middleware": "6.0.1", - "webpack-dev-server": "4.11.1", + "vite": "4.3.1", + "webpack": "5.80.0", + "webpack-dev-middleware": "6.0.2", + "webpack-dev-server": "4.13.2", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.17.8" + "esbuild": "0.17.18" }, "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "@angular/localize": "^15.0.0", - "@angular/platform-server": "^15.0.0", - "@angular/service-worker": "^15.0.0", + "@angular/compiler-cli": "^16.0.0", + "@angular/localize": "^16.0.0", + "@angular/platform-server": "^16.0.0", + "@angular/service-worker": "^16.0.0", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^15.0.0", + "ng-packagr": "^16.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.8.2 <5.0" + "typescript": ">=4.9.3 <5.1" }, "peerDependenciesMeta": { "@angular/localize": { @@ -215,6 +227,12 @@ "@angular/service-worker": { "optional": true }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, "karma": { "optional": true }, @@ -229,29 +247,26 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/magic-string": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", - "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" + "tslib": "^2.1.0" } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1502.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1502.0.tgz", - "integrity": "sha512-5xlHsuTZUaSvX+5/wfhbhr+CFVUSsLVNhiu3E4i9Qkyyb9Imj+KFZEuiy17p4fkYSUV7IXiQ34G5Axi5UCcnxQ==", + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.0.tgz", + "integrity": "sha512-ZlNNMtAzgMCsaN5crkqtgeYxWEyZ78/ePfrJTB3+Hb6LS+hsRf4WAYubHWRWReSx87ppluRrgNZLy0K9ooWy1w==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1502.0", - "rxjs": "6.6.7" + "@angular-devkit/architect": "0.1600.0", + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -260,20 +275,29 @@ "webpack-dev-server": "^4.0.0" } }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/@angular-devkit/core": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.0.tgz", - "integrity": "sha512-kUE5XvQzn+fiEvFqIk8x0q4hvRD+dKfAMM7p0uPQ69O9cj2b8c01oDvLOskvwhIJOnKTxnK/1d2gFQLupPci4A==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.0.tgz", + "integrity": "sha512-YJKvAJlg4/lfP93pQNawlOTQalynWGpoatZU+1aXBgRh5YCTKu2S/A3gtQ71DBuhac76gJe1RpxDoq41kB2KlQ==", "dev": true, "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", + "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -286,60 +310,70 @@ } } }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/@angular-devkit/schematics": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.0.tgz", - "integrity": "sha512-LrsbQWaMRrLPBCgTOw7F+BvA4mjCljC+42NmiId/GXdU9FljEw/Ly1+u7LJREnE1yYqGQeR8zd8xjgIS0mTc3A==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.0.tgz", + "integrity": "sha512-9uFOqjOQdhnpxU5mku2LvBkV5Ave2ihHBFaQCH7vQ7DD+p4NpLHu93bMSh+f7k9W7F0lY18g9qrihRgK/7wfuA==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.0", + "@angular-devkit/core": "16.0.0", "jsonc-parser": "3.2.0", - "magic-string": "0.29.0", + "magic-string": "0.30.0", "ora": "5.4.1", - "rxjs": "6.6.7" + "rxjs": "7.8.1" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/magic-string": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", - "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" + "tslib": "^2.1.0" } }, "node_modules/@angular-eslint/builder": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-15.2.1.tgz", - "integrity": "sha512-7x2DANebLRl997Mj4DhZrnz5+vnSjavGGveJ0mBuU7CEsL0ZYLftdRqL0e0HtU3ksseS7xpchD6OM08nkNgySw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-16.0.1.tgz", + "integrity": "sha512-yjFltV+r3YjisVjASMPmWB/ASz39wdh0q5g0l6/4G+8yaxl6hEYs5o0ZOGeGdTFstCql8FGY+QKwKgsq9Ec4QQ==", "dev": true, + "dependencies": { + "@nx/devkit": "16.0.2", + "nx": "16.0.2" + }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-15.2.1.tgz", - "integrity": "sha512-LO7Am8eVCr7oh6a0VmKSL7K03CnQEQhFO7Wt/YtbfYOxVjrbwmYLwJn+wZPOT7A02t/BttOD/WXuDrOWtSMQ/Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-16.0.1.tgz", + "integrity": "sha512-amvTgKHtZoygivW3LAYZ9qjLWsXM7/7eaRvaHdmAEdjyFnYQZ7UbWMPSQNz1mlW/AzTFvk9lGGQORglNOSDnww==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-15.2.1.tgz", - "integrity": "sha512-OM7b1kS4E4CkXjkaWN+lEzawh4VxY6l7FO1Cuk4s7iv3/YpZG3rJxIZBqnFLTixwrBuqw8y4FNBzF3eDgmFAUw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-16.0.1.tgz", + "integrity": "sha512-CM9keS9cH1QAfSVfsvhw/oGCZcP/D8gfekWwVNjN/uEMEAak0czn1KOG7JQkE36NXOGtwCpTspMi1aa9CVKo9g==", "dev": true, "dependencies": { - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/utils": "5.48.2" + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/utils": "5.59.2" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -347,15 +381,15 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-15.2.1.tgz", - "integrity": "sha512-IeiSLk6YxapFdH2z5o/O3R7VwtBd2T6fWmhLFPwDYMDknrwegnOjwswCdBplOccpUp0wqlCeGUx7LTsuzwaz7w==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-16.0.1.tgz", + "integrity": "sha512-1hyfs+Iq7K2x3mDDE4985d8vDcMyknbE9HKHKUtRLfLKC9gnV3N5d4+UeySQ7Rrjvgzkc1g9qHADyuhwRWpDSA==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/type-utils": "5.59.2", + "@typescript-eslint/utils": "5.59.2", "aria-query": "5.1.3", "axobject-query": "3.1.1" }, @@ -365,28 +399,30 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-15.2.1.tgz", - "integrity": "sha512-0ZfBCejHWIcgy3J5kFs9sS/jqi8i5AptxggOwFySOlCLJ+CzNrktjD4jff1Zy8K/VLzY0Ci0BSZXvgWfP0k9Rg==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-16.0.1.tgz", + "integrity": "sha512-1oJJEWVbgPkNK1E8rAJfrgxzNWWzJKv3frTHeAm8gvZ7GftYhHjDcrcnxLWrYNxb9+q8Awi0hvGta/4HROmmnA==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "15.2.1", - "@angular-eslint/eslint-plugin-template": "15.2.1", + "@angular-eslint/eslint-plugin": "16.0.1", + "@angular-eslint/eslint-plugin-template": "16.0.1", + "@nx/devkit": "16.0.2", "ignore": "5.2.4", + "nx": "16.0.2", "strip-json-comments": "3.1.1", "tmp": "0.2.1" }, "peerDependencies": { - "@angular/cli": ">= 15.0.0 < 16.0.0" + "@angular/cli": ">= 16.0.0 < 17.0.0" } }, "node_modules/@angular-eslint/template-parser": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-15.2.1.tgz", - "integrity": "sha512-ViCi79gC2aKJecmYLkOT+QlT5WMRNXeYz0Dr9Pr8qXzIbY0oAWE7nOT5jkXwQ9oUk+ybtGCWHma5JVJWVJsIog==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-16.0.1.tgz", + "integrity": "sha512-x0+SwSeqa3TiVZan6fE5grHsCkjGqU+zAS2DB6wAw5pyvgNAIjrI4cZEQ8pkgHfXe5tuumTKztlkpisah5s/hg==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", + "@angular-eslint/bundled-angular-compiler": "16.0.1", "eslint-scope": "^7.0.0" }, "peerDependencies": { @@ -395,13 +431,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-15.2.1.tgz", - "integrity": "sha512-++FneAJHxJqcSu0igVN6uOkSoHxlzgLoMBswuovYJy3UKwm33/T6WFku8++753Ca/JucIoR1gdUfO7SoSspMDg==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-16.0.1.tgz", + "integrity": "sha512-2xnJuhIrMZEYK6UyBym6FaFXZgopIIbqfQ4sAtMWY6zYkCEsVUvx5qKIrsnXAwvpDQrv0WiMXteqi/5ICpVMZQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@typescript-eslint/utils": "5.48.2" + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@typescript-eslint/utils": "5.59.2" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -409,80 +445,80 @@ } }, "node_modules/@angular/animations": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.2.0.tgz", - "integrity": "sha512-Hh/ijBlHsFlr6vR7e9KZgFpdQf+ebr3uIDDRsVHjRkt8utsv3CpUcJkb75UyTv+Ok5gYmfsI1Lj1CDYujyA0Fg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.0.tgz", + "integrity": "sha512-Xx4Ffdo3sweg24MDVAXbDfxqkNPEuRgqOC1+f9171kf+w7cBEr4Bmy37DP7YkJceaU0xJH9imcx4708KeIjqkQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.2.0" + "@angular/core": "16.0.0" } }, "node_modules/@angular/cli": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.0.tgz", - "integrity": "sha512-Zy1kmcvqoQf316eirfxkS5vb8/3B9btZf0YvZH/hDHmAyzAs8cwfirU+ClhwLLb/T9i7HnB0YS+Pdz0XaQa/jQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.0.tgz", + "integrity": "sha512-vsveaSJ5kj0MeJCg1nir5iJJEsdrRRnyNeL1awMcyrEjAhBPX3d0gfOP2fe0HR5KJtntX8zvihGus3i48Quo7A==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1502.0", - "@angular-devkit/core": "15.2.0", - "@angular-devkit/schematics": "15.2.0", - "@schematics/angular": "15.2.0", + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", + "@schematics/angular": "16.0.0", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", - "ini": "3.0.1", + "ini": "4.0.0", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", "npm-package-arg": "10.1.0", "npm-pick-manifest": "8.0.1", - "open": "8.4.1", + "open": "8.4.2", "ora": "5.4.1", - "pacote": "15.1.0", - "resolve": "1.22.1", - "semver": "7.3.8", + "pacote": "15.1.3", + "resolve": "1.22.2", + "semver": "7.4.0", "symbol-observable": "4.0.0", - "yargs": "17.6.2" + "yargs": "17.7.2" }, "bin": { "ng": "bin/ng.js" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/common": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.0.tgz", - "integrity": "sha512-B+e5pbkvlwlSwlQjtDrYQq+Xs62mScWm1plEZRHQm3cjBhA0RFT3MiUa/YNaHv8VoGjlrOm1rdJVEVQQxroZTg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.0.tgz", + "integrity": "sha512-at3/xCevf2t9swX2P7K7gaSBuQPy7ZJsf37qQkYIuczzfij69r7s9NjYeA74/q3EWG9Yl2DCrhYoCW7ViXQINQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.2.0", + "@angular/core": "16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.2.0.tgz", - "integrity": "sha512-bGMc8xBs/3l5Ab2PmGGifuWVLxCzmYQPXeBYrwpmy+aYCwGzuVKxQp6L1UjA0OZNra7Am8bu4mOsLSR9ENdX6w==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.0.tgz", + "integrity": "sha512-xtg+KRvSeB9DUzMDtvlaRGKv+Y0MERsz+JOoqV9H4606ThNz5h8ih6fEhVKYqG100o7GhdJaVFO+vlr2/edUHA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.2.0" + "@angular/core": "16.0.0" }, "peerDependenciesMeta": { "@angular/core": { @@ -491,17 +527,15 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.2.0.tgz", - "integrity": "sha512-ETnRBdY/LGcmDRQ9GQc9KyCd1kuRnj+Y9luq2dCTMysP+NgylmYoGDsJOsDKm6SzPo+B4PSAyHX2J4CVQFHpPg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.0.tgz", + "integrity": "sha512-oyJzxiTHxziv7mD0QuA7K6tpDoL6YNGPkquKjeJjNVZvUrodGsvJ8xHO4ydmjK3nMu2ET1YarsdI8bRp4vp/7w==", "dev": true, "dependencies": { "@babel/core": "7.19.3", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", - "dependency-graph": "^0.11.0", - "magic-string": "^0.27.0", "reflect-metadata": "^0.1.2", "semver": "^7.0.0", "tslib": "^2.3.0", @@ -510,14 +544,14 @@ "bin": { "ng-xi18n": "bundles/src/bin/ng_xi18n.js", "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/main-ngcc.js" + "ngcc": "bundles/ngcc/index.js" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "15.2.0", - "typescript": ">=4.8.2 <5.0" + "@angular/compiler": "16.0.0", + "typescript": ">=4.9.3 <5.1" } }, "node_modules/@angular/compiler-cli/node_modules/@babel/core": { @@ -560,60 +594,60 @@ } }, "node_modules/@angular/core": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.0.tgz", - "integrity": "sha512-UNHNcW3NqzMbG5gMjzXhb4xHrJcZq8rFdLwTLntB0oo2I/WxQFVlxz28nrW+Y09DbJf02MCASBLxD9If/6eT3g==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.0.tgz", + "integrity": "sha512-scppDxtXubum6ZiGu3ogmReBtMuA5XXk5FL3YKLb3c9O7q9Z5PC8KNQ6SsaOwEb6oW+0BWXMV698p/zmd0J4tA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4 || ~0.12.0" + "zone.js": "~0.13.0" } }, "node_modules/@angular/forms": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.2.0.tgz", - "integrity": "sha512-a93ysagAhbbyNbWM1yjWcPZaZBNrNjZ6SNIQYyelqySeShStXlKrDxYY5q7G/qqGpQzg2YF5qCIOOQxJJA9//g==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.0.tgz", + "integrity": "sha512-avpreXyDYWf44RNM5hfi5cTXXiNwcajBURP5rLap8RPMSUi2ePlJsmi0O+3+GduNZFbtnRXIpKTj3W+GeNa0PA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.2.0", - "@angular/core": "15.2.0", - "@angular/platform-browser": "15.2.0", + "@angular/common": "16.0.0", + "@angular/core": "16.0.0", + "@angular/platform-browser": "16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-15.2.0.tgz", - "integrity": "sha512-Gwg/IWPiBZ+LE0hHxtQGvQuJ+A7YehL6p0k26ClP0HS7Wy0ERRD9+ITGh5SnhKTKVMRwOb4HYcLp0N5W3yTajw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.0.0.tgz", + "integrity": "sha512-jySin8NdZIfcvwyemh2kRVveOvL1SPvywmIrv/6+MbKebG9Oc+casxruoRai8gh8bhahdpUAOG0t8wbedUWcxw==", "dev": true, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" } }, "node_modules/@angular/platform-browser": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.2.0.tgz", - "integrity": "sha512-+FB+KMoRHktF/MR7hn8ofubVLpu3+KZpudupKlxthPSL2KPMJn6h00ewrJDv3W+MtpqphqCjQSLmKpzw2UKKug==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.0.tgz", + "integrity": "sha512-6LpgLfEnumKMKM/S9joWrVSm4MdFuIjddFmlSG7zGcRqwM0N8doH/YkuwTK8/t9q8wI/yztp6qM2pg25Pgv1XA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "15.2.0", - "@angular/common": "15.2.0", - "@angular/core": "15.2.0" + "@angular/animations": "16.0.0", + "@angular/common": "16.0.0", + "@angular/core": "16.0.0" }, "peerDependenciesMeta": { "@angular/animations": { @@ -622,36 +656,36 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.0.tgz", - "integrity": "sha512-OErEz/AX9S6I+RJUrFS/r9mF0rJGF1bhAvPjNvyc4mL+ai9JWZB6JgrZPzEz3v0nXG8SsAvnB1wJdKCp90Ed2g==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.0.tgz", + "integrity": "sha512-xUR36r+7hFQjAb0RA0VFfWrCLj2VnWg0xJgPe4FQmwaEWjKMc011tkJXs0PApaiTxvE0W08nadSDTu5jfsBrFw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.2.0", - "@angular/compiler": "15.2.0", - "@angular/core": "15.2.0", - "@angular/platform-browser": "15.2.0" + "@angular/common": "16.0.0", + "@angular/compiler": "16.0.0", + "@angular/core": "16.0.0", + "@angular/platform-browser": "16.0.0" } }, "node_modules/@angular/router": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.2.0.tgz", - "integrity": "sha512-FPmGP7DmJtzqgmM7FMs8bfe3vX0r6cdI4zbHMEVv7Zbn/yApgAzAsX7MXJYy7Oi45S6ZTH7SIVHVYVAqay1NVQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.0.tgz", + "integrity": "sha512-+5gjJwFx3AFGv7OnY53pfUzaPbWe5gOVQWXAnlUuk6tsQmWJBMehuCQ5ZO5cxViQDZkyvNALzoUeU6aKWmNqmg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.2.0", - "@angular/core": "15.2.0", - "@angular/platform-browser": "15.2.0", + "@angular/common": "16.0.0", + "@angular/core": "16.0.0", + "@angular/platform-browser": "16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -668,9 +702,9 @@ "dev": true }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "dependencies": { "@babel/highlight": "^7.18.6" @@ -680,30 +714,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", - "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -728,33 +762,20 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", @@ -768,26 +789,25 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", + "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -809,19 +829,20 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", - "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", + "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-replace-supers": "^7.21.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -830,14 +851,24 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", + "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -846,6 +877,15 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", @@ -873,34 +913,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -919,43 +947,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", + "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", "dev": true, "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.21.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -974,9 +1002,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1001,29 +1029,29 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", + "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.21.5", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1054,9 +1082,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1072,9 +1100,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1096,14 +1124,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", "dev": true, "dependencies": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1124,9 +1152,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1202,12 +1230,12 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", - "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -1350,9 +1378,9 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", - "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", @@ -1383,13 +1411,13 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1609,12 +1637,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1656,9 +1684,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz", - "integrity": "sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1671,15 +1699,15 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-replace-supers": "^7.20.7", @@ -1694,12 +1722,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-plugin-utils": "^7.21.5", "@babel/template": "^7.20.7" }, "engines": { @@ -1710,9 +1738,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1772,12 +1800,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1850,14 +1878,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -1948,9 +1976,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1978,12 +2006,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-plugin-utils": "^7.21.5", "regenerator-transform": "^0.15.1" }, "engines": { @@ -2009,13 +2037,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -2114,12 +2142,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" @@ -2145,31 +2173,31 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", + "@babel/helper-validator-option": "^7.21.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", "@babel/plugin-proposal-dynamic-import": "^7.18.6", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -2186,40 +2214,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-for-of": "^7.21.0", "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-parameters": "^7.21.3", "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-spread": "^7.20.7", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", + "@babel/types": "^7.21.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -2265,9 +2293,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -2291,19 +2319,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2311,13 +2339,28 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-string-parser": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, @@ -2357,9 +2400,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.0.1.tgz", - "integrity": "sha512-B9/8PmOtU6nBiibJg0glnNktQDZ3rZnGn/7UmDfrm2vMtrdlXO3p7ErE95N0up80IRk9YEtB5jyj/TmQ1WH3dw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.1.tgz", + "integrity": "sha512-viRnRh02AgO4mwIQb2xQNJju0i+Fh9roNgmbR5xEuG7J3TGgxjnE95HnBLgsFJOJOksvcfxOUCgODcft6Y07cA==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -2369,13 +2412,13 @@ "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.0.0" + "@csstools/css-tokenizer": "^2.1.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.0.2.tgz", - "integrity": "sha512-prUTipz0NZH7Lc5wyBUy93NFy3QYDMVEQgSeZzNdpMbKRd6V2bgRFyJ+O0S0Dw0MXWuE/H9WXlJk3kzMZRHZ/g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", + "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -2386,9 +2429,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.1.tgz", - "integrity": "sha512-X2/OuzEbjaxhzm97UJ+95GrMeT29d1Ib+Pu+paGLuRWZnWRK9sI9r3ikmKXPWGA1C4y4JEdBEFpp9jEqCvLeRA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.4.tgz", + "integrity": "sha512-GyYot6jHgcSDZZ+tLSnrzkR7aJhF2ZW6d+CXH66mjy5WpAQhZD4HDke2OQ36SivGRWlZJpAz7TzbW6OKlEpxAA==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -2398,14 +2441,14 @@ "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.0.0", - "@csstools/css-tokenizer": "^2.0.0" + "@csstools/css-parser-algorithms": "^2.1.1", + "@csstools/css-tokenizer": "^2.1.1" } }, "node_modules/@csstools/selector-specificity": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz", - "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -2415,96 +2458,9 @@ "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.4", "postcss-selector-parser": "^6.0.10" } }, - "node_modules/@cypress/request": { - "version": "2.88.11", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.11.tgz", - "integrity": "sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "~6.10.3", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@cypress/request/node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@cypress/request/node_modules/uuid": { - "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" - } - }, - "node_modules/@cypress/schematic": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.5.0.tgz", - "integrity": "sha512-Yt/fQxYIHl9lU8LSoJL92nIwTVyYG5uP4VqW4taTn3viVWvssjK7sRtTI/LRxOoeMYX2RRlXQyUbFEikByn0cQ==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.0.0", - "rxjs": "~6.6.0" - }, - "peerDependencies": { - "@angular/cli": ">=14", - "@angular/core": ">=14" - } - }, - "node_modules/@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" - } - }, - "node_modules/@cypress/xvfb/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -2515,9 +2471,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", - "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", "cpu": [ "arm" ], @@ -2531,9 +2487,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", - "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", "cpu": [ "arm64" ], @@ -2547,9 +2503,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", - "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", "cpu": [ "x64" ], @@ -2563,9 +2519,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", - "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", "cpu": [ "arm64" ], @@ -2579,9 +2535,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", - "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", "cpu": [ "x64" ], @@ -2595,9 +2551,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", - "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", "cpu": [ "arm64" ], @@ -2611,9 +2567,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", - "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", "cpu": [ "x64" ], @@ -2627,9 +2583,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", - "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", "cpu": [ "arm" ], @@ -2643,9 +2599,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", - "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", "cpu": [ "arm64" ], @@ -2659,9 +2615,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", - "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", "cpu": [ "ia32" ], @@ -2675,9 +2631,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", - "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", "cpu": [ "loong64" ], @@ -2691,9 +2647,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", - "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", "cpu": [ "mips64el" ], @@ -2707,9 +2663,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", - "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", "cpu": [ "ppc64" ], @@ -2723,9 +2679,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", - "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", "cpu": [ "riscv64" ], @@ -2739,9 +2695,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", - "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", "cpu": [ "s390x" ], @@ -2755,9 +2711,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", - "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", "cpu": [ "x64" ], @@ -2771,9 +2727,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", - "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", "cpu": [ "x64" ], @@ -2787,9 +2743,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", - "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", "cpu": [ "x64" ], @@ -2803,9 +2759,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", - "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", "cpu": [ "x64" ], @@ -2819,9 +2775,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", - "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", "cpu": [ "arm64" ], @@ -2835,9 +2791,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", - "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", "cpu": [ "ia32" ], @@ -2851,9 +2807,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", - "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", "cpu": [ "x64" ], @@ -2866,15 +2822,39 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -2956,19 +2936,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@floating-ui/core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.1.tgz", - "integrity": "sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==", "dev": true }, "node_modules/@floating-ui/dom": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.1.tgz", - "integrity": "sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.7.tgz", + "integrity": "sha512-DyqylONj1ZaBnzj+uBnVfzdjjCkFCL2aA9ESHLyUOGSqb03RpbLMImP1ekIQXYs4KLk9jAjJfZAU8hXfWSahEg==", "dev": true, "dependencies": { - "@floating-ui/core": "^1.2.1" + "@floating-ui/core": "^1.2.6" } }, "node_modules/@gar/promisify": { @@ -3106,80 +3095,135 @@ "dev": true }, "node_modules/@igniteui/material-icons-extended": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@igniteui/material-icons-extended/-/material-icons-extended-2.11.0.tgz", - "integrity": "sha512-lhNBCsFqYWowhrfuhqFx/gfX8G6hGOLNSaDZju7OaDuGyIc9Nsu8/qmZrkoVe1IVKet3Hr09k92Vq4zo3iSxHA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@igniteui/material-icons-extended/-/material-icons-extended-3.0.0.tgz", + "integrity": "sha512-FvbNeEOYtqNKF+MecDlxKS3sSX9ab1kqE3tkUrOZxmKJ/NJ2wPpX/1B+Qdk2rcJMSNjDDfevm2hB6wmv/fMQhw==" }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -3190,22 +3234,56 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -3213,9 +3291,9 @@ "dev": true }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz", - "integrity": "sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", + "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==", "dev": true }, "node_modules/@lit-labs/virtualizer": { @@ -3239,18 +3317,18 @@ } }, "node_modules/@ngtools/webpack": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.2.0.tgz", - "integrity": "sha512-jrpIOsEQxkWf5RnKn1izAixO+/hh6GkKmMl+hCv4rnn98XlKDmNRhG2KEIHJZF/3IEcAv9HVlIETRnLoVyJeeQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.0.tgz", + "integrity": "sha512-I5zjGtJu2wwIdM+OFUHXezmwTJ0wpParVJgCxR0cLd0CIbpRYSjOSZQN/nR9ZnTKAI5uFZ3MM2p/VRQGUUHUcw==", "dev": true, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", + "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "typescript": ">=4.8.2 <5.0", + "@angular/compiler-cli": "^16.0.0", + "typescript": ">=4.9.3 <5.1", "webpack": "^5.54.0" } }, @@ -3302,14 +3380,13 @@ } }, "node_modules/@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", + "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -3322,30 +3399,18 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, - "node_modules/@npmcli/git/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -3358,9 +3423,9 @@ } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.1.tgz", - "integrity": "sha512-GIykAFdOVK31Q1/zAtT5MbxqQL2vyl9mvFJv+OGu01zxbhL3p0xc8gJjdNGX1mWmUT43aEKVO2L6V/2j4TOsAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", @@ -3421,9 +3486,9 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -3436,9 +3501,9 @@ } }, "node_modules/@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.1.tgz", + "integrity": "sha512-Yi04ZSold8jcbBJD/ahKMJSQCQifH8DAbMwkBvoLaTpGFxzHC3B/5ZyoVR69q/4xedz84tvi9DJOJjNe17h+LA==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", @@ -3452,9 +3517,9 @@ } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -3466,308 +3531,607 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@rollup/plugin-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", - "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", + "node_modules/@nrwl/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-SAEcImeQHdSTauO05FUn2vVl9/y5Kx1LNCZ4YE+SdY5/QRq18fuo/DCWmjOGG9M8r06vYGsAgMzkiB4soimcyA==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "@nx/devkit": "16.0.2" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", - "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", + "node_modules/@nrwl/tao": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-16.0.2.tgz", + "integrity": "sha512-wimEe4OTpI7/nDK67RnpZpEXCU+fzA0sDgpIhMgbpPd0vPmKgaZv4nbs8zrm0goFlacmmnLaGRhhGYMOxE+1Lg==", "dev": true, "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.0", - "is-module": "^1.0.0", - "resolve": "^1.22.1" + "nx": "16.0.2" }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "bin": { + "tao": "index.js" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "node_modules/@nx/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-BY1Bj0BbAl6XJL0O+QGTWPs/3WMJTEQ+Y4Lfoq4dZM7RllE6rAylr54NA2wa4lsgordZhq1+0g5PVhKKvSVRRw==", "dev": true, "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" + "@nrwl/devkit": "16.0.2", + "ejs": "^3.1.7", + "ignore": "^5.0.4", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "nx": ">= 15 <= 17" } }, - "node_modules/@schematics/angular": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.0.tgz", - "integrity": "sha512-KnsG7xyEbjg+6zflANkdynXdS3wi9rSCg+8Y7erKdygD90O/JcT68PcanvTU2GfawDkBtvAR5VMURw2TIfCTnw==", + "node_modules/@nx/devkit/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.0", - "@angular-devkit/schematics": "15.2.0", - "jsonc-parser": "3.2.0" + "yallist": "^4.0.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">=10" } }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "node_modules/@nx/devkit/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "node_modules/@nx/devkit/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "node_modules/@nx/nx-darwin-arm64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.0.2.tgz", + "integrity": "sha512-nAT8WJ/qKGEvUcoFLHHye1dbwCd7b8CTZJlDF+ZkyCD/UZRHt4eJxy8gvKmxgkZTFb2+PPMQt4UORCUGpZzuoA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" + "node": ">= 10" } }, - "node_modules/@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==", + "node_modules/@nx/nx-darwin-x64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.0.2.tgz", + "integrity": "sha512-r0rfOrZaOyrwFR5a0UT05xkYRumfkP65cRSZM1TjCA027AG9llYtkLT1hlz8uMKt+P12zrWVzXSqGLDi022ZZg==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { "node": ">= 10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.0.2.tgz", + "integrity": "sha512-TfDQaGvCIDjn9sPg5U1Fr2rsSul/4PIQB59qrLBJRPiCWgpzwO71Il1qwSX68En+JH3lwXr+g5EjcDIEQ8fGYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.0.2.tgz", + "integrity": "sha512-MICaUp7uz8WVQFXWPrmQaX1o4bdL7f3C7b3MDDf6+Zau6RcyQuw97UEKaYi9OqrV3w8yuPplqoLosFblAgb8uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.0.2.tgz", + "integrity": "sha512-wcBURG+6A2srm+6ujj8SShjwmYWs0eHI5D8vgZr8Bni+lXbKP/IosE9JGXKtRoh27/owyR8PGHhDVzjv46tlFg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.0.2.tgz", + "integrity": "sha512-Xyml2gFdVDHUj2g67DKz2aD78x1BciN1ZaaBTCxXL4MHfwR78SZa7mtRtE+1kj5OgVIwupZP50jq7C8GuSn3Hw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@types/node": "*" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "node_modules/@nx/nx-linux-x64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.0.2.tgz", + "integrity": "sha512-j3xdN8I5DlTgW5N5eCquyBZswrrYf6EazUCvnEpeejygwh3N6XN7DlD68Bs0CB4Zmd0tWLfTjNVAtUJSP6g2mA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@types/node": "*" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.0.2.tgz", + "integrity": "sha512-R2pzoW3SUFBbe9C1vifJnXuysPl6kmutQHN2yQ9lwJptzPvMxfDU1FuXmKCGRUGmEwFxk/XPhwDL/ZcbABTrzw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.0.2.tgz", + "integrity": "sha512-r4H/SsqfpIJa8QLSpnscgkMnLsnkRYXj8TcILDrf+nJazfEdJZLUvVhN9O85OB7pskv86NuGfnJmJHHXy6QVQg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "node_modules/@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", "dev": true, + "hasInstallScript": true, "dependencies": { - "@types/node": "*" + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@types/css": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/css/-/css-0.0.33.tgz", - "integrity": "sha512-qjeDgh86R0LIeEM588q65yatc8Yyo/VvSIYFqq8JOIHDolhGNX0rz7k/OuxqDpnpqlefoHj8X4Ai/6hT9IWtKQ==", - "dev": true + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } }, - "node_modules/@types/eslint": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", - "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", + "node_modules/@rollup/plugin-json": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", + "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", "dev": true, "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.2.tgz", + "integrity": "sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==", "dev": true, "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", "dev": true, "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "node_modules/@schematics/angular": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.0.tgz", + "integrity": "sha512-Ao1Y0hEDa30JjWDLnUfOsD+9nnfdBFclfKFzR+7pvvFYCpSUhH1u+8e+7noruIxlP26+SpqPn3AF5+IRTGza8w==", "dev": true, "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" } }, - "node_modules/@types/hammerjs": { - "version": "2.0.41", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", - "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==" + "node_modules/@sigstore/protobuf-specs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", + "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/@types/http-proxy": { - "version": "1.17.10", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", - "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true, - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=6" } }, - "node_modules/@types/jasmine": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", - "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, - "node_modules/@types/jasminewd2": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", - "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "dev": true, "dependencies": { - "@types/jasmine": "*" + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true + "node_modules/@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, + "engines": { + "node": ">= 10" + } }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, - "node_modules/@types/minimist": { - "version": "1.2.2", + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/css": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/css/-/css-0.0.33.tgz", + "integrity": "sha512-qjeDgh86R0LIeEM588q65yatc8Yyo/VvSIYFqq8JOIHDolhGNX0rz7k/OuxqDpnpqlefoHj8X4Ai/6hT9IWtKQ==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.34", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", + "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/hammerjs": { + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", + "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", + "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", + "dev": true + }, + "node_modules/@types/jasminewd2": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", + "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", + "dev": true, + "dependencies": { + "@types/jasmine": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, "node_modules/@types/node": { - "version": "18.13.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", - "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==", + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -3776,12 +4140,6 @@ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -3806,22 +4164,14 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "node_modules/@types/sass": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", - "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/sass-true": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/sass-true/-/sass-true-6.0.2.tgz", - "integrity": "sha512-4/skvbVC+OmbyJAwdNALKEdHAyU45hcDT0KnBxIZ6FFYWJYVqXzIMgtbbAZIsdAxv2yHl/yabTB1I6+KTf/BOg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/sass-true/-/sass-true-6.0.3.tgz", + "integrity": "sha512-zTt0uxBnu4ulwoYYfatZaWdoHWxpdqXr5bQ4wa7PNx4+cqxWn8aczK+UwEIHyhpbtvm4H4oiuIT+61EPvHKq0Q==", "dev": true, "dependencies": { - "@types/sass": "*" + "@types/node": "*", + "sass": "^1.45.0" } }, "node_modules/@types/semver": { @@ -3830,6 +4180,16 @@ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -3849,18 +4209,6 @@ "@types/node": "*" } }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true - }, - "node_modules/@types/sizzle": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", - "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", - "dev": true - }, "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -3896,30 +4244,20 @@ "@types/node": "*" } }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz", - "integrity": "sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz", + "integrity": "sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/type-utils": "5.52.0", - "@typescript-eslint/utils": "5.52.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/type-utils": "5.59.2", + "@typescript-eslint/utils": "5.59.2", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -3940,16 +4278,16 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz", - "integrity": "sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==", + "node_modules/@typescript-eslint/parser": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz", + "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.52.0", - "@typescript-eslint/utils": "5.52.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", + "debug": "^4.3.4" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3959,7 +4297,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3967,20 +4305,14 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.52.0.tgz", - "integrity": "sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", + "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3988,43 +4320,18 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz", - "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", + "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.52.0", - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/typescript-estree": "5.52.0", - "debug": "^4.3.4" + "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/utils": "5.59.2", + "debug": "^4.3.4", + "tsutils": "^3.21.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4034,7 +4341,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "*" }, "peerDependenciesMeta": { "typescript": { @@ -4042,111 +4349,10 @@ } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz", - "integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/visitor-keys": "5.52.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz", - "integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", + "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4157,13 +4363,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz", - "integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", + "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.52.0", - "@typescript-eslint/visitor-keys": "5.52.0", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4184,18 +4390,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", + "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "engines": { @@ -4209,80 +4415,6 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -4306,12 +4438,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz", - "integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.52.0", + "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4322,149 +4454,161 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.5", "@xtuc/long": "4.2.2" } }, @@ -4486,6 +4630,37 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, + "node_modules/@yarnpkg/parsers": { + "version": "3.0.0-rc.43", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.43.tgz", + "integrity": "sha512-AhFF3mIDfA+jEwQv2WMHmiYhOvmdbh2qhUkDVQfiqzQtUwS4BgoWwom5NpSPg4Ix5vOul+w1690Bt21CkVLpgg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@zkochan/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/a-sync-waterfall": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", @@ -4596,28 +4771,19 @@ } }, "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, "dependencies": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" }, "engines": { "node": ">= 8.0.0" } }, - "node_modules/agentkeepalive/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -4839,26 +5005,6 @@ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", @@ -4879,9 +5025,9 @@ } }, "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -4967,6 +5113,19 @@ "node": ">=0.10.0" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -5081,24 +5240,6 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -5118,10 +5259,13 @@ } }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } }, "node_modules/async-done": { "version": "1.3.2", @@ -5177,15 +5321,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -5199,9 +5334,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", "dev": true, "funding": [ { @@ -5214,8 +5349,8 @@ } ], "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -5243,21 +5378,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, "node_modules/axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -5464,15 +5584,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -5512,9 +5623,9 @@ } }, "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -5525,26 +5636,20 @@ "node": ">= 6" } }, - "node_modules/blob-util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true - }, "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", "dev": true }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -5552,7 +5657,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -5588,19 +5693,34 @@ "node": ">= 0.8" } }, - "node_modules/bonjour-service": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", - "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", @@ -5726,21 +5846,22 @@ } }, "node_modules/browser-sync": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.11.tgz", - "integrity": "sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", + "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", "dev": true, "dependencies": { - "browser-sync-client": "^2.27.11", - "browser-sync-ui": "^2.27.11", + "browser-sync-client": "^2.29.1", + "browser-sync-ui": "^2.29.1", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", "chokidar": "^3.5.1", "connect": "3.6.6", "connect-history-api-fallback": "^1", "dev-ip": "^1.0.1", "easy-extender": "^2.3.4", - "eazy-logger": "3.1.0", + "eazy-logger": "^4.0.1", "etag": "^1.8.1", "fresh": "^0.5.2", "fs-extra": "3.0.1", @@ -5759,7 +5880,7 @@ "serve-static": "1.13.2", "server-destroy": "1.0.1", "socket.io": "^4.4.1", - "ua-parser-js": "1.0.2", + "ua-parser-js": "^1.0.33", "yargs": "^17.3.1" }, "bin": { @@ -5770,54 +5891,172 @@ } }, "node_modules/browser-sync-client": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.11.tgz", - "integrity": "sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", + "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", "dev": true, "dependencies": { "etag": "1.8.1", "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6", - "typescript": "^4.6.2" + "mitt": "^1.1.3" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/browser-sync-client/node_modules/rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "node_modules/browser-sync-ui": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", + "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browser-sync-ui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "symbol-observable": "1.0.1" + "color-convert": "^2.0.1" }, "engines": { - "npm": ">=2.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/browser-sync-client/node_modules/symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==", + "node_modules/browser-sync-ui/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/browser-sync-ui": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz", - "integrity": "sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA==", + "node_modules/browser-sync-ui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "async-each-series": "0.1.1", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^4.4.1", - "stream-throttle": "^0.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync-ui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync-ui/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync-ui/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/browser-sync/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/browserslist": { @@ -5884,15 +6123,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/buffer-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", @@ -5942,16 +6172,16 @@ } }, "node_modules/cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.6.tgz", + "integrity": "sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -5965,15 +6195,61 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -6012,22 +6288,28 @@ "node": ">=8" } }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/call-bind": { @@ -6089,9 +6371,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001452", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001452.tgz", - "integrity": "sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==", + "version": "1.0.30001482", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", + "integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==", "dev": true, "funding": [ { @@ -6101,15 +6383,13 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, "node_modules/cdocparser": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/cdocparser/-/cdocparser-0.13.0.tgz", @@ -6156,15 +6436,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -6216,19 +6487,10 @@ } }, "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "node_modules/class-utils": { "version": "0.3.6", @@ -6374,9 +6636,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true, "engines": { "node": ">=6" @@ -6385,37 +6647,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -6426,17 +6657,14 @@ } }, "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", + "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" } }, "node_modules/clone": { @@ -6588,9 +6816,9 @@ "dev": true }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/colors": { @@ -6615,21 +6843,12 @@ } }, "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=14" } }, "node_modules/commondir": { @@ -6826,12 +7045,6 @@ "bluebird": "^2.9.26" } }, - "node_modules/consolidate/node_modules/bluebird": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", - "dev": true - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -6942,9 +7155,9 @@ } }, "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "dependencies": { "dir-glob": "^3.0.1", @@ -6981,9 +7194,9 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.28.0.tgz", - "integrity": "sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", "dev": true, "dependencies": { "browserslist": "^4.21.5" @@ -7013,19 +7226,55 @@ } }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", + "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=3" + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/create-require": { @@ -7261,190 +7510,6 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "node_modules/cypress": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.6.0.tgz", - "integrity": "sha512-WdHSVaS1lumSd5XpVTslZd8ui9GIGphrzvXq9+3DtVhqjRZC5M70gu5SW/Y/SLPq3D1wiXGZoHC6HJ7ESVE2lw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@cypress/request": "^2.88.10", - "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "8.1.1", - "@types/sizzle": "^2.3.2", - "arch": "^2.2.0", - "blob-util": "^2.0.2", - "bluebird": "^3.7.2", - "buffer": "^5.6.0", - "cachedir": "^2.3.0", - "chalk": "^4.1.0", - "check-more-types": "^2.24.0", - "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.1", - "commander": "^5.1.0", - "common-tags": "^1.8.0", - "dayjs": "^1.10.4", - "debug": "^4.3.4", - "enquirer": "^2.3.6", - "eventemitter2": "6.4.7", - "execa": "4.1.0", - "executable": "^4.1.1", - "extract-zip": "2.0.1", - "figures": "^3.2.0", - "fs-extra": "^9.1.0", - "getos": "^3.2.1", - "is-ci": "^3.0.0", - "is-installed-globally": "~0.4.0", - "lazy-ass": "^1.6.0", - "listr2": "^3.8.3", - "lodash": "^4.17.21", - "log-symbols": "^4.0.0", - "minimist": "^1.2.6", - "ospath": "^1.2.2", - "pretty-bytes": "^5.6.0", - "proxy-from-env": "1.0.0", - "request-progress": "^3.0.0", - "semver": "^7.3.2", - "supports-color": "^8.1.1", - "tmp": "~0.2.1", - "untildify": "^4.0.0", - "yauzl": "^2.10.0" - }, - "bin": { - "cypress": "bin/cypress" - }, - "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" - } - }, - "node_modules/cypress/node_modules/@types/node": { - "version": "14.18.36", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", - "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", - "dev": true - }, - "node_modules/cypress/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cypress/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cypress/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cypress/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cypress/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/cypress/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cypress/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cypress/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/cypress/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/cypress/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -7467,18 +7532,6 @@ "node": ">=0.10.0" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", @@ -7488,12 +7541,6 @@ "node": ">=4.0" } }, - "node_modules/dayjs": { - "version": "1.11.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", - "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", - "dev": true - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -7587,16 +7634,17 @@ } }, "node_modules/deep-equal": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", - "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", + "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -7604,7 +7652,7 @@ "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.0", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", @@ -7630,9 +7678,9 @@ "dev": true }, "node_modules/deepmerge": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", - "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7662,50 +7710,6 @@ "node": ">= 10" } }, - "node_modules/default-gateway/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/default-resolution": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", @@ -7917,12 +7921,6 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -7930,9 +7928,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -8041,6 +8039,21 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -8090,6 +8103,12 @@ "node": ">=0.10.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/easy-extender": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", @@ -8103,25 +8122,85 @@ } }, "node_modules/eazy-logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", - "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, "dependencies": { - "tfunk": "^4.0.0" + "chalk": "4.1.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "node_modules/eazy-logger/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eazy-logger/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eazy-logger/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eazy-logger/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eazy-logger/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/ee-first": { @@ -8130,10 +8209,25 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { - "version": "1.4.296", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.296.tgz", - "integrity": "sha512-i/6Q+Y9bluDa2a0NbMvdtG5TuS/1Fr3TKK8L+7UUL9QjRS5iFJzCC3r70xjyOnLiYG8qGV4/mMpe6HuAbdJW4w==", + "version": "1.4.380", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.380.tgz", + "integrity": "sha512-XKGdI4pWM78eLH2cbXJHiBnWUwFSzZM7XujsB6stDiGu9AeSqziedP6amNLpJzE3i0rLTcfAwdCTs5ecP5yeSg==", "dev": true }, "node_modules/emoji-regex": { @@ -8202,9 +8296,9 @@ } }, "node_modules/engine.io": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.0.tgz", - "integrity": "sha512-OgxY1c/RuCSeO/rTr8DIFXx76IzUUft86R7/P7MMbbkuzeqJoTNw2lmeD91IyGz41QYleIIjWeMJGgug043sfQ==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -8245,9 +8339,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -8342,9 +8436,9 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, "node_modules/es5-ext": { @@ -8408,12 +8502,11 @@ } }, "node_modules/esbuild": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", - "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", "dev": true, "hasInstallScript": true, - "optional": true, "bin": { "esbuild": "bin/esbuild" }, @@ -8421,34 +8514,34 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.8", - "@esbuild/android-arm64": "0.17.8", - "@esbuild/android-x64": "0.17.8", - "@esbuild/darwin-arm64": "0.17.8", - "@esbuild/darwin-x64": "0.17.8", - "@esbuild/freebsd-arm64": "0.17.8", - "@esbuild/freebsd-x64": "0.17.8", - "@esbuild/linux-arm": "0.17.8", - "@esbuild/linux-arm64": "0.17.8", - "@esbuild/linux-ia32": "0.17.8", - "@esbuild/linux-loong64": "0.17.8", - "@esbuild/linux-mips64el": "0.17.8", - "@esbuild/linux-ppc64": "0.17.8", - "@esbuild/linux-riscv64": "0.17.8", - "@esbuild/linux-s390x": "0.17.8", - "@esbuild/linux-x64": "0.17.8", - "@esbuild/netbsd-x64": "0.17.8", - "@esbuild/openbsd-x64": "0.17.8", - "@esbuild/sunos-x64": "0.17.8", - "@esbuild/win32-arm64": "0.17.8", - "@esbuild/win32-ia32": "0.17.8", - "@esbuild/win32-x64": "0.17.8" + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" } }, "node_modules/esbuild-wasm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.8.tgz", - "integrity": "sha512-zCmpxv95E0FuCmvdw1K836UHnj4EdiQnFfjTby35y3LAjRPtXMj3sbHDRHjbD8Mqg5lTwq3knacr/1qIFU51CQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.18.tgz", + "integrity": "sha512-h4m5zVa+KaDuRFIbH9dokMwovvkIjTQJS7/Ry+0Z1paVuS9aIkso2vdA2GmwH9GSvGX6w71WveJ3PfkoLuWaRw==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -8599,12 +8692,15 @@ } }, "node_modules/eslint": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", - "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -8614,11 +8710,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -8639,7 +8734,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -8655,9 +8749,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -8665,42 +8759,21 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ajv": { @@ -8926,14 +8999,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8956,9 +9029,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -9040,12 +9113,6 @@ "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, - "node_modules/eventemitter2": { - "version": "6.4.7", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", - "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", - "dev": true - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -9062,19 +9129,19 @@ } }, "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { @@ -9084,16 +9151,16 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "pify": "^2.2.0" - }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/expand-brackets": { @@ -9284,6 +9351,30 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/express/node_modules/cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", @@ -9350,6 +9441,36 @@ "node": ">= 0.8" } }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -9516,35 +9637,6 @@ "node": ">=0.10.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fancy-log": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", @@ -9624,15 +9716,6 @@ "node": ">=0.8.0" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/fflate": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", @@ -9672,6 +9755,36 @@ "dev": true, "optional": true }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -9943,6 +10056,15 @@ "node": ">= 0.10" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -10022,27 +10144,46 @@ "node": ">=0.10.0" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { - "node": "*" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/forwarded": { @@ -10088,6 +10229,12 @@ "node": ">= 0.6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-extra": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", @@ -10100,12 +10247,12 @@ } }, "node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -10234,18 +10381,15 @@ } }, "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "dependencies": { "pump": "^3.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/get-value": { @@ -10257,24 +10401,6 @@ "node": ">=0.10.0" } }, - "node_modules/getos": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", - "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", - "dev": true, - "dependencies": { - "async": "^3.2.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -10510,7 +10636,7 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", "dev": true, "hasInstallScript": true, "optional": true, @@ -10686,28 +10812,25 @@ } }, "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dev": true, "dependencies": { - "ini": "2.0.0" + "ini": "1.3.7" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true }, "node_modules/global-modules": { "version": "1.0.0", @@ -10838,22 +10961,10 @@ "node": ">=8.6" } }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/grapheme-splitter": { @@ -11251,15 +11362,6 @@ "node": ">=0.10.0" } }, - "node_modules/gulp-shell/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, "node_modules/gulp-shell/node_modules/extend-shallow": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", @@ -11480,27 +11582,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -11699,9 +11780,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" @@ -11790,9 +11871,9 @@ "dev": true }, "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, "engines": { "node": ">=8" @@ -11908,20 +11989,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^2.0.2", - "sshpk": "^1.14.1" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -11936,12 +12003,12 @@ } }, "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { - "node": ">=8.12.0" + "node": ">=10.17.0" } }, "node_modules/humanize-ms": { @@ -12032,12 +12099,12 @@ "integrity": "sha512-q6thtu+7R6MOB+i9GorFPCcWeOImW43BzCAtKnDAYWwaoueb8Lg1EhBkIhAyfEIH+yZ/9c5lnZdU61/GRPoP+g==" }, "node_modules/igniteui-webcomponents": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-4.2.1.tgz", - "integrity": "sha512-B0E2/cdyDWEKNwj47Jz+Tl64BiHUMg/3x+8wm5F7aJA2PsgpTnDj+cxE3AGmn1Or7zMJaguPnbnQP6JH9LMAyQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-4.2.3.tgz", + "integrity": "sha512-2SDxdmfTa1a9i8HaO7sXY6KvIwWH/aJyp4cUItpRn3X/7CfhcQjEZfrsPT8i3+Vy2iadwj2sI9THNdpxQeGduw==", "dev": true, "dependencies": { - "@floating-ui/dom": "^1.1.0", + "@floating-ui/dom": "^1.2.0", "@lit-labs/virtualizer": "^1.0.1", "lit": "^2.6.1" } @@ -12052,12 +12119,12 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "dependencies": { - "minimatch": "^6.1.6" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -12073,15 +12140,15 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12184,12 +12251,12 @@ "dev": true }, "node_modules/ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.0.0.tgz", + "integrity": "sha512-t0ikzf5qkSFqRl1e6ejKBe+Tk2bsQd8ivEkcisyGXsku2t8NvXZ1Y3RRz5vxrDgOrTBOi13CvGsVoI5wVpd7xg==", "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/injection-js": { @@ -12286,9 +12353,9 @@ } }, "node_modules/inquirer/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { "tslib": "^2.1.0" @@ -12404,13 +12471,13 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-typed-array": "^1.1.10" }, "funding": { @@ -12496,21 +12563,21 @@ } }, "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "dependencies": { - "ci-info": "^3.2.0" + "ci-info": "^2.0.0" }, "bin": { "is-ci": "bin.js" } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -12646,16 +12713,16 @@ } }, "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13035,12 +13102,6 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, "node_modules/istanbul": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", @@ -13246,23 +13307,135 @@ "which": "bin/which" } }, + "node_modules/jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jasmine": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.5.0.tgz", - "integrity": "sha512-9olGRvNZyADIwYL9XBNBst5BTU/YaePzuddK+YRslc7rI9MdTIE4r3xaBKbv2GEmzYYUfMOdTR8/i6JfLZaxSQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.6.0.tgz", + "integrity": "sha512-iq7HQ5M8ydNUspjd9vbFW9Lu+6lQ1QLDIqjl0WysEllF5EJZy8XaUyNlhCJVwOx2YFzqTtARWbS56F/f0PzRFw==", "dev": true, "dependencies": { "glob": "^7.1.6", - "jasmine-core": "^4.5.0" + "jasmine-core": "^4.6.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", - "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", "dev": true }, "node_modules/jasmine/node_modules/glob": { @@ -13418,9 +13591,9 @@ } }, "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", "dev": true, "funding": { "type": "opencollective", @@ -13446,12 +13619,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -13476,12 +13643,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -13494,12 +13655,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -13536,21 +13691,6 @@ "node >= 0.2.0" ] }, - "node_modules/jsprim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", - "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, "node_modules/just-debounce": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", @@ -13558,9 +13698,9 @@ "dev": true }, "node_modules/karma": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", - "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, "dependencies": { "@colors/colors": "1.5.0", @@ -13596,9 +13736,9 @@ } }, "node_modules/karma-chrome-launcher": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", - "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, "dependencies": { "which": "^1.2.1" @@ -13701,17 +13841,6 @@ "karma": ">=0.9" } }, - "node_modules/karma/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "node_modules/karma/node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -13799,9 +13928,9 @@ } }, "node_modules/karma/node_modules/ua-parser-js": { - "version": "0.7.33", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", - "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==", + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", "dev": true, "funding": [ { @@ -13835,6 +13964,15 @@ "node": ">=10" } }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -13863,9 +14001,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", - "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", "dev": true }, "node_modules/last-run": { @@ -13893,13 +14031,14 @@ "node": ">=8" } }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", "dev": true, - "engines": { - "node": "> 0.8" + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" } }, "node_modules/lazystream": { @@ -14103,9 +14242,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" @@ -14118,72 +14257,40 @@ "dev": true }, "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/listr2": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", - "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/lit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", - "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.3.tgz", + "integrity": "sha512-0a+u+vVbmgSfPu+fyvqjMPBX0Kwbyj9QOv9MbQFZhWGlV2cyk3lEwgfUQgYN+i/lx++1Z3wZknSIp3QCKxHLyg==", "dev": true, "dependencies": { "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.2.0", - "lit-html": "^2.6.0" + "lit-element": "^3.3.0", + "lit-html": "^2.7.0" } }, "node_modules/lit-element": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", - "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", + "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", "dev": true, "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.0", "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.2.0" + "lit-html": "^2.7.0" } }, "node_modules/lit-html": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.6.1.tgz", - "integrity": "sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.3.tgz", + "integrity": "sha512-9DyLzcn/kbRGowz2vFmSANFbRZTxYUgYYFqzie89w6GLpPUiBCDHfcdeRUV/k3Q2ueYxNjfv46yPCtKAEAPOVw==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2" @@ -14217,6 +14324,18 @@ "node": ">=0.10.0" } }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -14253,17 +14372,6 @@ "node": ">=8.3.0" } }, - "node_modules/localtunnel/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "node_modules/localtunnel/node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -14299,6 +14407,15 @@ "node": ">=12" } }, + "node_modules/localtunnel/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -14519,12 +14636,6 @@ "integrity": "sha512-uNcV98/blRhInPUGQEnj9ekXXfG+q+rfoNSFZgl/eBfog9yBDW9gfUv2AHX/rAF7zZRlzWhbslGhbGQFZlCkZA==", "dev": true }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, "node_modules/lodash.support": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.support/-/lodash.support-2.4.1.tgz", @@ -14651,99 +14762,17 @@ "node": ">=8" } }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/log4js": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.1.tgz", - "integrity": "sha512-lzbd0Eq1HRdWM2abSD7mk6YIVY0AogGJzb/z+lqzRk+8+XJP+M6L1MS5FUSc3jjGru4dbKjEMJmqlsoYYpuivQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.1.3" + "streamroller": "^3.1.5" }, "engines": { "node": ">=8.0" @@ -14789,9 +14818,9 @@ "dev": true }, "node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.13" @@ -14921,9 +14950,9 @@ } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" @@ -15268,9 +15297,9 @@ } }, "node_modules/memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", + "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -15384,6 +15413,15 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/merge": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", @@ -15494,9 +15532,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", - "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", + "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" @@ -15563,9 +15601,9 @@ } }, "node_modules/minipass": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", - "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -15816,6 +15854,15 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -15868,10 +15915,16 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -15994,9 +16047,9 @@ "dev": true }, "node_modules/ng-packagr": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-15.1.2.tgz", - "integrity": "sha512-GpVySff7Wwx+eAW+HXkFD8et05UK0/usHnFEKznXhxmhML7XOGYaK74tAsgUwA06GUQofQH/VjdsBGi6XlVNjA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-16.0.0.tgz", + "integrity": "sha512-PSgzS9WMypXyZbI5G54mNiarT54a3j5vf5pj84BOWJaSh6MbX3q49fR1ql41A+qtkPkG+e7xQ3IhMOnOMilobg==", "dev": true, "dependencies": { "@rollup/plugin-json": "^6.0.0", @@ -16011,8 +16064,8 @@ "convert-source-map": "^2.0.0", "dependency-graph": "^0.11.0", "esbuild-wasm": "^0.17.0", + "fast-glob": "^3.2.12", "find-cache-dir": "^3.3.2", - "glob": "^8.0.3", "injection-js": "^2.4.0", "jsonc-parser": "^3.2.0", "less": "^4.1.3", @@ -16028,16 +16081,16 @@ "ng-packagr": "cli/main.js" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "optionalDependencies": { "esbuild": "^0.17.0" }, "peerDependencies": { - "@angular/compiler-cli": "^15.0.0 || ^15.1.0-next.0 || ^15.2.0-next.0", + "@angular/compiler-cli": "^16.0.0-next.0", "tailwindcss": "^2.0.0 || ^3.0.0", "tslib": "^2.3.0", - "typescript": ">=4.8.2 <5.0" + "typescript": ">=4.9.3 <5.1" }, "peerDependenciesMeta": { "tailwindcss": { @@ -16045,15 +16098,6 @@ } } }, - "node_modules/ng-packagr/node_modules/commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/ng-packagr/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -16061,9 +16105,9 @@ "dev": true }, "node_modules/ng-packagr/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { "tslib": "^2.1.0" @@ -16097,8 +16141,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true + "dev": true }, "node_modules/node-forge": { "version": "1.3.1", @@ -16138,7 +16181,6 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "dev": true, - "optional": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -16264,9 +16306,9 @@ } }, "node_modules/npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "dependencies": { "semver": "^7.1.1" @@ -16276,9 +16318,9 @@ } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -16327,13 +16369,13 @@ } }, "node_modules/npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -16345,18 +16387,18 @@ } }, "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -16366,7 +16408,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -16380,12 +16422,12 @@ } }, "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -16469,66 +16511,356 @@ } } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "node_modules/nx": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/nx/-/nx-16.0.2.tgz", + "integrity": "sha512-8Z9Bo1D2VbYjyC/F2ONensKjm10snz1UfkzURZiFA+oXikBPldiH1u67TOTpoCYZfyYQg4l6h6EpOaAvHF6Abg==", "dev": true, + "hasInstallScript": true, "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "@nrwl/tao": "16.0.2", + "@parcel/watcher": "2.0.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "^3.0.0-rc.18", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.0.0", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^11.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "nx": "bin/nx.js" + }, + "optionalDependencies": { + "@nx/nx-darwin-arm64": "16.0.2", + "@nx/nx-darwin-x64": "16.0.2", + "@nx/nx-linux-arm-gnueabihf": "16.0.2", + "@nx/nx-linux-arm64-gnu": "16.0.2", + "@nx/nx-linux-arm64-musl": "16.0.2", + "@nx/nx-linux-x64-gnu": "16.0.2", + "@nx/nx-linux-x64-musl": "16.0.2", + "@nx/nx-win32-arm64-msvc": "16.0.2", + "@nx/nx-win32-x64-msvc": "16.0.2" + }, + "peerDependencies": { + "@swc-node/register": "^1.4.2", + "@swc/core": "^1.2.173" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true + }, + "@swc/core": { + "optional": true + } } }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "node_modules/nx/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "node_modules/nx/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/nx/node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "node_modules/nx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/nx/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nx/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/nx/node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/nx/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/nx/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/nx/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/nx/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", @@ -16732,9 +17064,9 @@ } }, "node_modules/open": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", - "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", @@ -16915,12 +17247,6 @@ "node": ">=0.10.0" } }, - "node_modules/ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "dev": true - }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -17028,9 +17354,9 @@ } }, "node_modules/pacote": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.0.tgz", - "integrity": "sha512-FFcjtIl+BQNfeliSm7MZz5cpdohvUV1yjGnqgVM4UnVF7JslRY0ImXAygdaCDV0jjUADEWu4y5xsDV8brtrTLg==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.3.tgz", + "integrity": "sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==", "dev": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -17039,7 +17365,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -17048,7 +17374,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -17118,6 +17444,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-json/node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", @@ -17157,9 +17489,9 @@ } }, "node_modules/parse5-html-rewriting-stream/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -17202,9 +17534,9 @@ } }, "node_modules/parse5-sax-parser/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -17303,6 +17635,31 @@ "node": ">=0.10.0" } }, + "node_modules/path-scurry": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", + "dev": true, + "dependencies": { + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -17318,18 +17675,6 @@ "node": ">=8" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -17444,15 +17789,6 @@ "npm": ">=1.0.0" } }, - "node_modules/portscanner/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -17463,9 +17799,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "dev": true, "funding": [ { @@ -17475,10 +17811,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -17516,13 +17856,14 @@ } }, "node_modules/postcss-loader": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", - "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.2.4.tgz", + "integrity": "sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==", "dev": true, "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", + "cosmiconfig": "^8.1.3", + "cosmiconfig-typescript-loader": "^4.3.0", + "klona": "^2.0.6", "semver": "^7.3.8" }, "engines": { @@ -17534,7 +17875,17 @@ }, "peerDependencies": { "postcss": "^7.0.0 || ^8.0.1", + "ts-node": ">=10", + "typescript": ">=4", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } } }, "node_modules/postcss-media-query-parser": { @@ -17647,9 +17998,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -17829,9 +18180,9 @@ } }, "node_modules/proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, "node_modules/prr": { @@ -17841,12 +18192,6 @@ "dev": true, "optional": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -17919,9 +18264,9 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", + "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", "dev": true, "dependencies": { "side-channel": "^1.0.4" @@ -17981,9 +18326,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -18032,12 +18377,12 @@ "dev": true }, "node_modules/read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", "dev": true, "dependencies": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -18068,6 +18413,37 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", @@ -18077,6 +18453,21 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -18155,9 +18546,9 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -18276,14 +18667,14 @@ "dev": true }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -18292,22 +18683,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.0.tgz", - "integrity": "sha512-ZdhUQlng0RoscyW7jADnUZ25F5eVtHdMyXSb2PiwafvteRAOJUjFoUPEYZSIfP99fBIs3maLIRfpEddT78wAAQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { "@babel/regjsgen": "^0.8.0", @@ -18449,15 +18828,6 @@ "node": ">= 0.10" } }, - "node_modules/request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", - "dev": true, - "dependencies": { - "throttleit": "^1.0.0" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -18489,12 +18859,12 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -18705,9 +19075,9 @@ } }, "node_modules/rollup": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.15.0.tgz", - "integrity": "sha512-F9hrCAhnp5/zx/7HYmftvsNBkMfLfk/dXUh73hPSM2E3CRgap65orDNJbLetoiUFwSAk6iHPLvBrZ5iHYvzqsg==", + "version": "3.21.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.3.tgz", + "integrity": "sha512-VnPfEG51nIv2xPLnZaekkuN06q9ZbnyDcLkaBdJa/W7UddyhOfMP2yOPziYQfeY7k++fZM8FdQIummFN5y14kA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -18853,9 +19223,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.1.tgz", - "integrity": "sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -18865,7 +19235,7 @@ "sass": "sass.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/sass-convert": { @@ -18922,12 +19292,12 @@ } }, "node_modules/sass-loader": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", - "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.2.tgz", + "integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==", "dev": true, "dependencies": { - "klona": "^2.0.4", + "klona": "^2.0.6", "neo-async": "^2.6.2" }, "engines": { @@ -18975,9 +19345,9 @@ } }, "node_modules/sass/node_modules/immutable": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", - "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" }, "node_modules/sassdoc": { "version": "2.7.4", @@ -19207,9 +19577,9 @@ } }, "node_modules/sassdoc/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -19256,15 +19626,15 @@ "optional": true }, "node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -19302,9 +19672,9 @@ } }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -19685,10 +20055,19 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/shiki": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.1.tgz", - "integrity": "sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", + "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -19718,13 +20097,14 @@ "dev": true }, "node_modules/sigstore": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.0.0.tgz", - "integrity": "sha512-e+qfbn/zf1+rCza/BhIA//Awmf0v1pa5HQS8Xk8iXrn9bgytytVLqYD0P7NSqZ6IELTgq+tcDvLPkQjNHyWLNg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.4.0.tgz", + "integrity": "sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==", "dev": true, "dependencies": { + "@sigstore/protobuf-specs": "^0.1.0", "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "tuf-js": "^1.1.3" }, "bin": { "sigstore": "bin/sigstore.js" @@ -19734,18 +20114,18 @@ } }, "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -19755,7 +20135,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -19769,12 +20149,12 @@ } }, "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -19795,9 +20175,9 @@ } }, "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -19805,7 +20185,10 @@ "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/slice-ansi/node_modules/ansi-styles": { @@ -20054,15 +20437,15 @@ } }, "node_modules/socket.io": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.0.tgz", - "integrity": "sha512-b65bp6INPk/BMMrIgVvX12x3Q+NqlGqSlTuvKQWt0BUJ3Hyy3JangBl7fEoWZTXbOKlCqNPbQ6MbWgok/km28w==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", + "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", "dev": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", - "engine.io": "~6.4.0", + "engine.io": "~6.4.1", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.1" }, @@ -20080,9 +20463,9 @@ } }, "node_modules/socket.io-client": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.0.tgz", - "integrity": "sha512-2XOp18xnGghUICSd5ziUIS4rB0dhr6S8OvAps8y+HhOjFQlqGcf+FIh6fCIsKKZyWFxJeFPrZRNPGsHDTsz1Ug==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", + "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -20252,9 +20635,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -20278,9 +20661,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, "node_modules/spdy": { @@ -20314,9 +20697,9 @@ } }, "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -20345,38 +20728,13 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -20534,9 +20892,9 @@ "dev": true }, "node_modules/streamroller": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.4.tgz", - "integrity": "sha512-Ha1Ccw2/N5C/IF8Do6zgNe8F3jQo8MPBnMBGvX0QjNv/I97BcNRzK6/mzOpZHHK7DjMLTI3c7Xw7Y1KvdChkvw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, "dependencies": { "date-format": "^4.0.14", @@ -20599,6 +20957,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -20611,16 +20984,26 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "is-utf8": "^0.2.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/strip-bom-string": { @@ -20665,6 +21048,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", @@ -20672,18 +21072,18 @@ "dev": true }, "node_modules/stylelint": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.1.0.tgz", - "integrity": "sha512-Tw8OyIiYhxnIHUzgoLlCyWgCUKsPYiP3TDgs7M1VbayS+q5qZly2yxABg+YPe/hFRWiu0cOtptCtpyrn1CrnYw==", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz", + "integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.0.1", - "@csstools/css-tokenizer": "^2.0.1", - "@csstools/media-query-list-parser": "^2.0.1", - "@csstools/selector-specificity": "^2.1.1", + "@csstools/css-parser-algorithms": "^2.1.1", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.0.4", + "@csstools/selector-specificity": "^2.2.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^8.0.0", + "cosmiconfig": "^8.1.3", "css-functions-list": "^3.1.0", "css-tree": "^2.3.1", "debug": "^4.3.4", @@ -20693,32 +21093,32 @@ "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.2.0", + "html-tags": "^3.3.1", "ignore": "^5.2.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.27.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.21", + "postcss": "^8.4.23", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.12", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^5.0.0" + "write-file-atomic": "^5.0.1" }, "bin": { "stylelint": "bin/stylelint.js" @@ -20732,48 +21132,26 @@ } }, "node_modules/stylelint-scss": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.4.0.tgz", - "integrity": "sha512-Qy66a+/30aylFhPmUArHhVsHOun1qrO93LGT15uzLuLjWS7hKDfpFm34mYo1ndR4MCo8W4bEZM1+AlJRJORaaw==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", "dev": true, "dependencies": { - "lodash": "^4.17.21", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "stylelint": "^14.5.1 || ^15.0.0" } }, - "node_modules/stylelint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "node_modules/stylelint/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/stylelint/node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -20806,18 +21184,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "node_modules/stylelint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/stylelint/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -20852,16 +21218,16 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/supports-hyperlinks/node_modules/has-flag": { @@ -20938,80 +21304,60 @@ "node": ">=10.0.0" } }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/tar": { + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" } }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "engines": { "node": ">=6" } }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, "node_modules/tar/node_modules/fs-minipass": { @@ -21069,9 +21415,9 @@ } }, "node_modules/terser": { - "version": "5.16.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", - "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -21087,16 +21433,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" }, "engines": { "node": ">= 10.13.0" @@ -21152,9 +21498,9 @@ "dev": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -21215,75 +21561,10 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/tfunk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", - "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "dlv": "^1.1.3" - } - }, - "node_modules/tfunk/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tfunk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/themeleon": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/themeleon/-/themeleon-3.0.2.tgz", - "integrity": "sha512-QRN/beYfINibeg9U20vETTmXDq56AXyNJCbLp7uvqX5m/uoVvMwc/aUzxU4mlMyzN3Dl2inH8o4fMjEl2qEzJw==", + "node_modules/themeleon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/themeleon/-/themeleon-3.0.2.tgz", + "integrity": "sha512-QRN/beYfINibeg9U20vETTmXDq56AXyNJCbLp7uvqX5m/uoVvMwc/aUzxU4mlMyzN3Dl2inH8o4fMjEl2qEzJw==", "dev": true, "dependencies": { "ap": "^0.2.0", @@ -21386,12 +21667,6 @@ "node": "*" } }, - "node_modules/throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==", - "dev": true - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -21557,19 +21832,6 @@ "node": ">=0.6" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -21631,6 +21893,20 @@ } } }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -21658,40 +21934,31 @@ "dev": true }, "node_modules/tuf-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.0.0.tgz", - "integrity": "sha512-1dxsQwESDzACJjTdYHQ4wJ1f/of7jALWKfJEHSBWUQB/5UTJUx9SW6GHXp4mZ1KvdBRJCpGjssoPFGi4hvw8/A==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.5.tgz", + "integrity": "sha512-inqodgxdsmuxrtQVbu6tPNgRKWD1Boy3VB6GO7KczJZpAHiTukwhSzXUSzvDcw5pE2Jo8ua+e1ykpHv7VdPVlQ==", "dev": true, "dependencies": { - "make-fetch-happen": "^11.0.1", - "minimatch": "^6.1.0" + "@tufjs/models": "1.0.4", + "make-fetch-happen": "^11.1.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -21701,7 +21968,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -21714,28 +21981,13 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -21746,24 +21998,6 @@ "encoding": "^0.1.13" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -21829,14 +22063,14 @@ } }, "node_modules/typedoc": { - "version": "0.23.25", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.25.tgz", - "integrity": "sha512-O1he153qVyoCgJYSvIyY3bPP1wAJTegZfa6tL3APinSZhJOf8CSd8F/21M6ex8pUY/fuY6n0jAsT4fIuMGA6sA==", + "version": "0.23.28", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.28.tgz", + "integrity": "sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w==", "dev": true, "dependencies": { "lunr": "^2.3.9", "marked": "^4.2.12", - "minimatch": "^6.1.6", + "minimatch": "^7.1.3", "shiki": "^0.14.1" }, "bin": { @@ -21846,7 +22080,7 @@ "node": ">= 14.14" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x" } }, "node_modules/typedoc-plugin-localization": { @@ -21903,9 +22137,9 @@ } }, "node_modules/typedoc/node_modules/marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -21915,9 +22149,9 @@ } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -21943,9 +22177,9 @@ } }, "node_modules/ua-parser-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", - "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", "dev": true, "funding": [ { @@ -22200,15 +22434,6 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", @@ -22220,9 +22445,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -22232,6 +22457,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -22239,7 +22468,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -22300,12 +22529,6 @@ "node": ">=8" } }, - "node_modules/update-notifier/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, "node_modules/update-notifier/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -22324,241 +22547,18387 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/update-notifier/node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "node_modules/update-notifier/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-source-stream": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz", + "integrity": "sha512-X+1Jq+M6ufv/ky480hndPBsNb0ieqTQkvpakxMTxb7oUlyuNaJKL2HddYUrbTec0Lb0J53JlDiCetcgJ3b3Wmg==", + "dev": true, + "dependencies": { + "through2": "^2.0.3", + "vinyl": "^0.4.3" + } + }, + "node_modules/vinyl-source-stream/node_modules/clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/vinyl-source-stream/node_modules/clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true + }, + "node_modules/vinyl-source-stream/node_modules/vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", + "dev": true, + "dependencies": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", + "dev": true, + "dependencies": { + "source-map": "^0.5.1" + } + }, + "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vinyl-string/-/vinyl-string-1.0.2.tgz", + "integrity": "sha512-mDkPUvCM7K9r0WYZKIWc/dfPH8wkJBbe/3wZUU9EJyw3g6VSACg6FLlcZ/QbP1lTSdtBsVjQoYG1a9K0cfoKeQ==", + "dev": true, + "dependencies": { + "vinyl": "^1.1.1" + } + }, + "node_modules/vinyl-string/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/vinyl-string/node_modules/clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true + }, + "node_modules/vinyl-string/node_modules/replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/vinyl-string/node_modules/vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==", + "dev": true, + "dependencies": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/vinyl/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vite": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.1.tgz", + "integrity": "sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==", + "dev": true, + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.21", + "rollup": "^3.20.2" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.13.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.2.tgz", + "integrity": "sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz", + "integrity": "sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xmlbuilder": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz", + "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dev": true, + "dependencies": { + "cuint": "^0.2.2" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", + "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", + "dependencies": { + "tslib": "^2.3.0" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@angular-devkit/architect": { + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.0.tgz", + "integrity": "sha512-nYRcqAxZnndhAEpSpJ1U2TScs2huu674OKrsEyJTqLEANEyCPBnusAmS9HcGzMBgePAwNElqOKrr5/f1DbYq1A==", + "dev": true, + "requires": { + "@angular-devkit/core": "16.0.0", + "rxjs": "7.8.1" + }, + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "@angular-devkit/build-angular": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.0.tgz", + "integrity": "sha512-OvDQAbrV3cUMfHws30MnDURsXselZ0GWhSxZjOdcD3cF64Nsq5ywftHOT+QC3YdDghwI8gMADN9et+aVDscBzQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/build-webpack": "0.1600.0", + "@angular-devkit/core": "16.0.0", + "@babel/core": "7.21.4", + "@babel/generator": "7.21.4", + "@babel/helper-annotate-as-pure": "7.18.6", + "@babel/helper-split-export-declaration": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.20.7", + "@babel/plugin-transform-async-to-generator": "7.20.7", + "@babel/plugin-transform-runtime": "7.21.4", + "@babel/preset-env": "7.21.4", + "@babel/runtime": "7.21.0", + "@babel/template": "7.20.7", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "16.0.0", + "@vitejs/plugin-basic-ssl": "1.0.1", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.14", + "babel-loader": "9.1.2", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "4.21.5", + "cacache": "17.0.6", + "chokidar": "3.5.3", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.16", + "css-loader": "6.7.3", + "esbuild": "0.17.18", + "esbuild-wasm": "0.17.18", + "glob": "8.1.0", + "https-proxy-agent": "5.0.1", + "inquirer": "8.2.4", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.3", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.0", + "mini-css-extract-plugin": "2.7.5", + "mrmime": "1.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "piscina": "3.2.0", + "postcss": "8.4.23", + "postcss-loader": "7.2.4", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.62.1", + "sass-loader": "13.2.2", + "semver": "7.4.0", + "source-map-loader": "4.0.1", + "source-map-support": "0.5.21", + "terser": "5.17.1", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.5.0", + "vite": "4.3.1", + "webpack": "5.80.0", + "webpack-dev-middleware": "6.0.2", + "webpack-dev-server": "4.13.2", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.1.0" + }, + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.0.tgz", + "integrity": "sha512-ZlNNMtAzgMCsaN5crkqtgeYxWEyZ78/ePfrJTB3+Hb6LS+hsRf4WAYubHWRWReSx87ppluRrgNZLy0K9ooWy1w==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1600.0", + "rxjs": "7.8.1" + }, + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "@angular-devkit/core": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.0.tgz", + "integrity": "sha512-YJKvAJlg4/lfP93pQNawlOTQalynWGpoatZU+1aXBgRh5YCTKu2S/A3gtQ71DBuhac76gJe1RpxDoq41kB2KlQ==", + "dev": true, + "requires": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "@angular-devkit/schematics": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.0.tgz", + "integrity": "sha512-9uFOqjOQdhnpxU5mku2LvBkV5Ave2ihHBFaQCH7vQ7DD+p4NpLHu93bMSh+f7k9W7F0lY18g9qrihRgK/7wfuA==", + "dev": true, + "requires": { + "@angular-devkit/core": "16.0.0", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.0", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "dependencies": { + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "@angular-eslint/builder": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-16.0.1.tgz", + "integrity": "sha512-yjFltV+r3YjisVjASMPmWB/ASz39wdh0q5g0l6/4G+8yaxl6hEYs5o0ZOGeGdTFstCql8FGY+QKwKgsq9Ec4QQ==", + "dev": true, + "requires": { + "@nx/devkit": "16.0.2", + "nx": "16.0.2" + } + }, + "@angular-eslint/bundled-angular-compiler": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-16.0.1.tgz", + "integrity": "sha512-amvTgKHtZoygivW3LAYZ9qjLWsXM7/7eaRvaHdmAEdjyFnYQZ7UbWMPSQNz1mlW/AzTFvk9lGGQORglNOSDnww==", + "dev": true + }, + "@angular-eslint/eslint-plugin": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-16.0.1.tgz", + "integrity": "sha512-CM9keS9cH1QAfSVfsvhw/oGCZcP/D8gfekWwVNjN/uEMEAak0czn1KOG7JQkE36NXOGtwCpTspMi1aa9CVKo9g==", + "dev": true, + "requires": { + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/utils": "5.59.2" + } + }, + "@angular-eslint/eslint-plugin-template": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-16.0.1.tgz", + "integrity": "sha512-1hyfs+Iq7K2x3mDDE4985d8vDcMyknbE9HKHKUtRLfLKC9gnV3N5d4+UeySQ7Rrjvgzkc1g9qHADyuhwRWpDSA==", + "dev": true, + "requires": { + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/type-utils": "5.59.2", + "@typescript-eslint/utils": "5.59.2", + "aria-query": "5.1.3", + "axobject-query": "3.1.1" + } + }, + "@angular-eslint/schematics": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-16.0.1.tgz", + "integrity": "sha512-1oJJEWVbgPkNK1E8rAJfrgxzNWWzJKv3frTHeAm8gvZ7GftYhHjDcrcnxLWrYNxb9+q8Awi0hvGta/4HROmmnA==", + "dev": true, + "requires": { + "@angular-eslint/eslint-plugin": "16.0.1", + "@angular-eslint/eslint-plugin-template": "16.0.1", + "@nx/devkit": "16.0.2", + "ignore": "5.2.4", + "nx": "16.0.2", + "strip-json-comments": "3.1.1", + "tmp": "0.2.1" + } + }, + "@angular-eslint/template-parser": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-16.0.1.tgz", + "integrity": "sha512-x0+SwSeqa3TiVZan6fE5grHsCkjGqU+zAS2DB6wAw5pyvgNAIjrI4cZEQ8pkgHfXe5tuumTKztlkpisah5s/hg==", + "dev": true, + "requires": { + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "eslint-scope": "^7.0.0" + } + }, + "@angular-eslint/utils": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-16.0.1.tgz", + "integrity": "sha512-2xnJuhIrMZEYK6UyBym6FaFXZgopIIbqfQ4sAtMWY6zYkCEsVUvx5qKIrsnXAwvpDQrv0WiMXteqi/5ICpVMZQ==", + "dev": true, + "requires": { + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@typescript-eslint/utils": "5.59.2" + } + }, + "@angular/animations": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.0.tgz", + "integrity": "sha512-Xx4Ffdo3sweg24MDVAXbDfxqkNPEuRgqOC1+f9171kf+w7cBEr4Bmy37DP7YkJceaU0xJH9imcx4708KeIjqkQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/cli": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.0.tgz", + "integrity": "sha512-vsveaSJ5kj0MeJCg1nir5iJJEsdrRRnyNeL1awMcyrEjAhBPX3d0gfOP2fe0HR5KJtntX8zvihGus3i48Quo7A==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", + "@schematics/angular": "16.0.0", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.0.0", + "inquirer": "8.2.4", + "jsonc-parser": "3.2.0", + "npm-package-arg": "10.1.0", + "npm-pick-manifest": "8.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "15.1.3", + "resolve": "1.22.2", + "semver": "7.4.0", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + } + }, + "@angular/common": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.0.tgz", + "integrity": "sha512-at3/xCevf2t9swX2P7K7gaSBuQPy7ZJsf37qQkYIuczzfij69r7s9NjYeA74/q3EWG9Yl2DCrhYoCW7ViXQINQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/compiler": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.0.tgz", + "integrity": "sha512-xtg+KRvSeB9DUzMDtvlaRGKv+Y0MERsz+JOoqV9H4606ThNz5h8ih6fEhVKYqG100o7GhdJaVFO+vlr2/edUHA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/compiler-cli": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.0.tgz", + "integrity": "sha512-oyJzxiTHxziv7mD0QuA7K6tpDoL6YNGPkquKjeJjNVZvUrodGsvJ8xHO4ydmjK3nMu2ET1YarsdI8bRp4vp/7w==", + "dev": true, + "requires": { + "@babel/core": "7.19.3", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "dependencies": { + "@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + } + } + }, + "@angular/core": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.0.tgz", + "integrity": "sha512-scppDxtXubum6ZiGu3ogmReBtMuA5XXk5FL3YKLb3c9O7q9Z5PC8KNQ6SsaOwEb6oW+0BWXMV698p/zmd0J4tA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/forms": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.0.tgz", + "integrity": "sha512-avpreXyDYWf44RNM5hfi5cTXXiNwcajBURP5rLap8RPMSUi2ePlJsmi0O+3+GduNZFbtnRXIpKTj3W+GeNa0PA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/language-service": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.0.0.tgz", + "integrity": "sha512-jySin8NdZIfcvwyemh2kRVveOvL1SPvywmIrv/6+MbKebG9Oc+casxruoRai8gh8bhahdpUAOG0t8wbedUWcxw==", + "dev": true + }, + "@angular/platform-browser": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.0.tgz", + "integrity": "sha512-6LpgLfEnumKMKM/S9joWrVSm4MdFuIjddFmlSG7zGcRqwM0N8doH/YkuwTK8/t9q8wI/yztp6qM2pg25Pgv1XA==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.0.tgz", + "integrity": "sha512-xUR36r+7hFQjAb0RA0VFfWrCLj2VnWg0xJgPe4FQmwaEWjKMc011tkJXs0PApaiTxvE0W08nadSDTu5jfsBrFw==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angular/router": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.0.tgz", + "integrity": "sha512-+5gjJwFx3AFGv7OnY53pfUzaPbWe5gOVQWXAnlUuk6tsQmWJBMehuCQ5ZO5cxViQDZkyvNALzoUeU6aKWmNqmg==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@angularclass/hmr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@angularclass/hmr/-/hmr-3.0.0.tgz", + "integrity": "sha512-4A/DKmSafWUcffv7f536oY6RbpXEAD7f0NCGVLlRj9Gna8dkGc9JOHSr3NCWHd/NRc4ey8x+V0itsBqlPxEJ/A==", + "dev": true + }, + "@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "dev": true + }, + "@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz", + "integrity": "sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz", + "integrity": "sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz", + "integrity": "sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz", + "integrity": "sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz", + "integrity": "sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-member-expression-to-functions": "^7.21.5", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.0", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + } + } + }, + "@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@csstools/css-parser-algorithms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.1.tgz", + "integrity": "sha512-viRnRh02AgO4mwIQb2xQNJju0i+Fh9roNgmbR5xEuG7J3TGgxjnE95HnBLgsFJOJOksvcfxOUCgODcft6Y07cA==", + "dev": true, + "requires": {} + }, + "@csstools/css-tokenizer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", + "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", + "dev": true + }, + "@csstools/media-query-list-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.4.tgz", + "integrity": "sha512-GyYot6jHgcSDZZ+tLSnrzkR7aJhF2ZW6d+CXH66mjy5WpAQhZD4HDke2OQ36SivGRWlZJpAz7TzbW6OKlEpxAA==", + "dev": true, + "requires": {} + }, + "@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "dev": true, + "requires": {} + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@esbuild/android-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true + }, + "@floating-ui/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==", + "dev": true + }, + "@floating-ui/dom": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.7.tgz", + "integrity": "sha512-DyqylONj1ZaBnzj+uBnVfzdjjCkFCL2aA9ESHLyUOGSqb03RpbLMImP1ekIQXYs4KLk9jAjJfZAU8hXfWSahEg==", + "dev": true, + "requires": { + "@floating-ui/core": "^1.2.6" + } + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "requires": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==", + "dev": true, + "requires": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@igniteui/material-icons-extended": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@igniteui/material-icons-extended/-/material-icons-extended-3.0.0.tgz", + "integrity": "sha512-FvbNeEOYtqNKF+MecDlxKS3sSX9ab1kqE3tkUrOZxmKJ/NJ2wPpX/1B+Qdk2rcJMSNjDDfevm2hB6wmv/fMQhw==" + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "@lit-labs/ssr-dom-shim": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", + "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==", + "dev": true + }, + "@lit-labs/virtualizer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-1.0.1.tgz", + "integrity": "sha512-olFX5cVVj0HeVpiEMjylX+sOXFsDpE/SCDrgw63/lBMrrnyP9PIFH0zcZrG0DvuAmCCPaanPybK59Iu7cOe/VA==", + "dev": true, + "requires": { + "event-target-shim": "^6.0.2", + "lit": "^2.5.0", + "tslib": "^2.0.3" + } + }, + "@lit/reactive-element": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", + "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "dev": true, + "requires": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "@ngtools/webpack": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.0.tgz", + "integrity": "sha512-I5zjGtJu2wwIdM+OFUHXezmwTJ0wpParVJgCxR0cLd0CIbpRYSjOSZQN/nR9ZnTKAI5uFZ3MM2p/VRQGUUHUcw==", + "dev": true, + "requires": {} + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "requires": { + "semver": "^7.3.5" + } + }, + "@npmcli/git": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", + "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^6.0.0", + "lru-cache": "^7.4.4", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^3.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "requires": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + } + }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "dev": true, + "requires": { + "which": "^3.0.0" + }, + "dependencies": { + "which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@npmcli/run-script": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.1.tgz", + "integrity": "sha512-Yi04ZSold8jcbBJD/ahKMJSQCQifH8DAbMwkBvoLaTpGFxzHC3B/5ZyoVR69q/4xedz84tvi9DJOJjNe17h+LA==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^3.0.0" + }, + "dependencies": { + "which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@nrwl/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-SAEcImeQHdSTauO05FUn2vVl9/y5Kx1LNCZ4YE+SdY5/QRq18fuo/DCWmjOGG9M8r06vYGsAgMzkiB4soimcyA==", + "dev": true, + "requires": { + "@nx/devkit": "16.0.2" + } + }, + "@nrwl/tao": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-16.0.2.tgz", + "integrity": "sha512-wimEe4OTpI7/nDK67RnpZpEXCU+fzA0sDgpIhMgbpPd0vPmKgaZv4nbs8zrm0goFlacmmnLaGRhhGYMOxE+1Lg==", + "dev": true, + "requires": { + "nx": "16.0.2" + } + }, + "@nx/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-BY1Bj0BbAl6XJL0O+QGTWPs/3WMJTEQ+Y4Lfoq4dZM7RllE6rAylr54NA2wa4lsgordZhq1+0g5PVhKKvSVRRw==", + "dev": true, + "requires": { + "@nrwl/devkit": "16.0.2", + "ejs": "^3.1.7", + "ignore": "^5.0.4", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@nx/nx-darwin-arm64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.0.2.tgz", + "integrity": "sha512-nAT8WJ/qKGEvUcoFLHHye1dbwCd7b8CTZJlDF+ZkyCD/UZRHt4eJxy8gvKmxgkZTFb2+PPMQt4UORCUGpZzuoA==", + "dev": true, + "optional": true + }, + "@nx/nx-darwin-x64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.0.2.tgz", + "integrity": "sha512-r0rfOrZaOyrwFR5a0UT05xkYRumfkP65cRSZM1TjCA027AG9llYtkLT1hlz8uMKt+P12zrWVzXSqGLDi022ZZg==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm-gnueabihf": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.0.2.tgz", + "integrity": "sha512-TfDQaGvCIDjn9sPg5U1Fr2rsSul/4PIQB59qrLBJRPiCWgpzwO71Il1qwSX68En+JH3lwXr+g5EjcDIEQ8fGYA==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.0.2.tgz", + "integrity": "sha512-MICaUp7uz8WVQFXWPrmQaX1o4bdL7f3C7b3MDDf6+Zau6RcyQuw97UEKaYi9OqrV3w8yuPplqoLosFblAgb8uw==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.0.2.tgz", + "integrity": "sha512-wcBURG+6A2srm+6ujj8SShjwmYWs0eHI5D8vgZr8Bni+lXbKP/IosE9JGXKtRoh27/owyR8PGHhDVzjv46tlFg==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-x64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.0.2.tgz", + "integrity": "sha512-Xyml2gFdVDHUj2g67DKz2aD78x1BciN1ZaaBTCxXL4MHfwR78SZa7mtRtE+1kj5OgVIwupZP50jq7C8GuSn3Hw==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-x64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.0.2.tgz", + "integrity": "sha512-j3xdN8I5DlTgW5N5eCquyBZswrrYf6EazUCvnEpeejygwh3N6XN7DlD68Bs0CB4Zmd0tWLfTjNVAtUJSP6g2mA==", + "dev": true, + "optional": true + }, + "@nx/nx-win32-arm64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.0.2.tgz", + "integrity": "sha512-R2pzoW3SUFBbe9C1vifJnXuysPl6kmutQHN2yQ9lwJptzPvMxfDU1FuXmKCGRUGmEwFxk/XPhwDL/ZcbABTrzw==", + "dev": true, + "optional": true + }, + "@nx/nx-win32-x64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.0.2.tgz", + "integrity": "sha512-r4H/SsqfpIJa8QLSpnscgkMnLsnkRYXj8TcILDrf+nJazfEdJZLUvVhN9O85OB7pskv86NuGfnJmJHHXy6QVQg==", + "dev": true, + "optional": true + }, + "@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "dev": true, + "requires": { + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, + "@rollup/plugin-json": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", + "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1" + } + }, + "@rollup/plugin-node-resolve": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.2.tgz", + "integrity": "sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@schematics/angular": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.0.tgz", + "integrity": "sha512-Ao1Y0hEDa30JjWDLnUfOsD+9nnfdBFclfKFzR+7pvvFYCpSUhH1u+8e+7noruIxlP26+SpqPn3AF5+IRTGza8w==", + "dev": true, + "requires": { + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", + "jsonc-parser": "3.2.0" + } + }, + "@sigstore/protobuf-specs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", + "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "dev": true + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@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 + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@tufjs/canonical-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true + }, + "@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "dev": true, + "requires": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/css": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/css/-/css-0.0.33.tgz", + "integrity": "sha512-qjeDgh86R0LIeEM588q65yatc8Yyo/VvSIYFqq8JOIHDolhGNX0rz7k/OuxqDpnpqlefoHj8X4Ai/6hT9IWtKQ==", + "dev": true + }, + "@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.34", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz", + "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/hammerjs": { + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", + "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==" + }, + "@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", + "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", + "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "@types/sass-true": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/sass-true/-/sass-true-6.0.3.tgz", + "integrity": "sha512-zTt0uxBnu4ulwoYYfatZaWdoHWxpdqXr5bQ4wa7PNx4+cqxWn8aczK+UwEIHyhpbtvm4H4oiuIT+61EPvHKq0Q==", + "dev": true, + "requires": { + "@types/node": "*", + "sass": "^1.45.0" + } + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/source-map": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.5.2.tgz", + "integrity": "sha512-++w4WmMbk3dS3UeHGzAG+xJOSz5Xqtjys/TBkqG3qp3SeWE7Wwezqe5eB7B51cxUyh4PW7bwVotpsLdBK0D8cw==" + }, + "@types/trusted-types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", + "dev": true + }, + "@types/webpack-env": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.0.tgz", + "integrity": "sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==", + "dev": true + }, + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz", + "integrity": "sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/type-utils": "5.59.2", + "@typescript-eslint/utils": "5.59.2", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz", + "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", + "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", + "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/utils": "5.59.2", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", + "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", + "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", + "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "requires": {} + }, + "@webassemblyjs/ast": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "@yarnpkg/parsers": { + "version": "3.0.0-rc.43", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.43.tgz", + "integrity": "sha512-AhFF3mIDfA+jEwQv2WMHmiYhOvmdbh2qhUkDVQfiqzQtUwS4BgoWwom5NpSPg4Ix5vOul+w1690Bt21CkVLpgg==", + "dev": true, + "requires": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + } + }, + "@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + } + } + }, + "a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "optional": true + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "ap": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ap/-/ap-0.2.0.tgz", + "integrity": "sha512-ImdvquIuBSVpWRWhB441UjvTcZqic1RL+lTQaUKGdGEp1aiTvt/phAvY8Vvs32qya5FJBI8U+tzNBYzFDQY/lQ==", + "dev": true + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + } + }, + "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==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "requires": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } + }, + "babel-loader": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", + "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", + "dev": true + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-sync": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.1.tgz", + "integrity": "sha512-WXy9HMJVQaNUTPjmai330E2fnDA6W84l/vBILGkYu9yHXIpWw1gJYjdQWDfEhLFljYUHNTN9jM3GCej2T55m+g==", + "dev": true, + "requires": { + "browser-sync-client": "^2.29.1", + "browser-sync-ui": "^2.29.1", + "bs-recipes": "1.3.4", + "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "qs": "^6.11.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "browser-sync-client": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.1.tgz", + "integrity": "sha512-aESnjt3rU7CZpzjyqzhIC2UJ3MVhzRis7cPKkGbyYWDf/wnbxyRa3fFenF3Qx9061/guY3HHhD67uiTVV26DVg==", + "dev": true, + "requires": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + } + }, + "browser-sync-ui": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.1.tgz", + "integrity": "sha512-MB7SAiUgVUrhipO2xyO1sheC9H0+LKXPQ3L1tQWcZ3AgizBnUNKAqDZPSwe4grNSa8o8ImSAwJp7lMS6XYy1Dw==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", + "dev": true + }, + "bs-snippet-injector": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cacache": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.6.tgz", + "integrity": "sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==", + "dev": true, + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001482", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", + "integrity": "sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==", + "dev": true + }, + "cdocparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/cdocparser/-/cdocparser-0.13.0.tgz", + "integrity": "sha512-bMi4t0qjeT0xQ8ECBmWcilMYcUNYsERQoatXveMIbItgqliZDCNyv2xfkBoKrs5H08ApeRMoysJLwgPiHtv7HQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2", + "lodash.assign": "^2.4.1", + "strip-indent": "^1.0.0" + }, + "dependencies": { + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chroma-js": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-1.4.1.tgz", + "integrity": "sha512-jTwQiT859RTFN/vIf7s+Vl/Z2LcMrvMv3WUFmd/4u76AdlFC0NTNgqEEFPcRiHmAswPsMiQEDZLM8vX8qXpZNQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + } + } + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "consolidate": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.13.1.tgz", + "integrity": "sha512-027d1hT0huixz578MzXlB30ipJaF0131zmQJhiL49fwjDj+I45MwgL3/TQHEgeuZfcJus69vBlHcIPd+h2UNCw==", + "dev": true, + "requires": { + "bluebird": "^2.9.26" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "requires": { + "is-what": "^3.14.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "requires": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "requires": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "core-js-compat": { + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.1.tgz", + "integrity": "sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw==", + "dev": true, + "requires": { + "browserslist": "^4.21.5" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "cosmiconfig-typescript-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", + "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "dev": true, + "requires": {} + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "critters": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "css-select": "^4.2.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true + }, + "css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + } + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", + "dev": true + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "requires": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + } + } + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + } + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + } + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "docopt": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", + "integrity": "sha512-NqTbaYeE4gA/wU1hdKFdU+AFahpDOpgGLzHP42k6H6DKExJd0A55KEVWYhL9FEmHmgeLvEU2vuKXDuU+4yToOw==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "requires": { + "chalk": "4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, + "electron-to-chromium": { + "version": "1.4.380", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.380.tgz", + "integrity": "sha512-XKGdI4pWM78eLH2cbXJHiBnWUwFSzZM7XujsB6stDiGu9AeSqziedP6amNLpJzE3i0rLTcfAwdCTs5ecP5yeSg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "ends-with": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ends-with/-/ends-with-0.2.0.tgz", + "integrity": "sha512-lRppY4dK3VkqBdR242sKcAJeYc8Gf/DhoX9AWvWI2RzccmLnqBQfwm2k4oSDv5MPDjUqawCauXhZkyWxkVhRsg==", + "dev": true + }, + "engine.io": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0" + } + }, + "engine.io-client": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "engine.io-parser": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + } + }, + "es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", + "dev": true + }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "dev": true, + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-denodeify": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-denodeify/-/es6-denodeify-0.1.5.tgz", + "integrity": "sha512-731Rf4NqlPvhkT1pIF7r8vZxESJlWocNpXLuyPlVnfEGXlwuJaMvU5WpyyDjpudDC2cgXVX849xljzvQqBg1QQ==", + "dev": true + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "esbuild": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" + } + }, + "esbuild-wasm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.18.tgz", + "integrity": "sha512-h4m5zVa+KaDuRFIbH9dokMwovvkIjTQJS7/Ry+0Z1paVuS9aIkso2vdA2GmwH9GSvGX6w71WveJ3PfkoLuWaRw==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dev": true, + "requires": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + }, + "espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "event-target-shim": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", + "dev": true + }, + "eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true + } + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", + "dev": true, + "requires": { + "minipass": "^5.0.0" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA==", + "dev": true, + "requires": { + "find-index": "^0.1.1" + } + }, + "global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "requires": { + "ini": "1.3.7" + }, + "dependencies": { + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + } + }, + "gulp-cached": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gulp-cached/-/gulp-cached-1.1.1.tgz", + "integrity": "sha512-OEGsICR6Vmx0VK3nhpy5MGPzAjeDYC3+NKxNtJAu4DW8L15oy8tCe2WuD6HDEj9BsbSopnOBiXPK95YHvO0DpA==", + "dev": true, + "requires": { + "lodash.defaults": "^4.2.0", + "through2": "^2.0.1" + } + }, + "gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha512-a2scActrQrDBpBbR3WUZGyGS1JEPLg5PZJdIa7/Bi3GuKAmPYDK6SFhy/NZq5R8KsKKFvtfR0fakbUCcKGCCjg==", + "dev": true, + "requires": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + } + }, + "gulp-postcss": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz", + "integrity": "sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==", + "dev": true, + "requires": { + "fancy-log": "^1.3.3", + "plugin-error": "^1.0.1", + "postcss-load-config": "^3.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + } + }, + "gulp-sass": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz", + "integrity": "sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ==", + "dev": true, + "requires": { + "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.0.0", + "plugin-error": "^1.0.1", + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.1", + "vinyl-sourcemaps-apply": "^0.2.1" + } + }, + "gulp-shell": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.6.5.tgz", + "integrity": "sha512-f3m1WcS0o2B72/PGj1Jbv9zYR9rynBh/EQJv64n01xQUo7j7anols0eww9GG/WtDTzGVQLrupVDYkifRFnj5Zg==", + "dev": true, + "requires": { + "async": "^2.1.5", + "chalk": "^2.3.0", + "fancy-log": "^1.3.2", + "lodash": "^4.17.4", + "lodash.template": "^4.4.0", + "plugin-error": "^0.1.2", + "through2": "^2.0.3" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", + "dev": true, + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", + "dev": true + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", + "dev": true, + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + } + } + } + }, + "gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "gulp-typescript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz", + "integrity": "sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.5", + "plugin-error": "^1.0.1", + "source-map": "^0.7.3", + "through2": "^3.0.0", + "vinyl": "^2.1.0", + "vinyl-fs": "^3.0.3" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "gulp-uglify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", + "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "extend-shallow": "^3.0.2", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "isobject": "^3.0.1", + "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "hammer-simulator": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/hammer-simulator/-/hammer-simulator-0.0.1.tgz", + "integrity": "sha512-WbyZImCJlHOs2HtkPJSCksq1i/V/MIbpk44/ALOCTF03FvOKhWcwAl3x4W9dQm8cW0VCM57HpxaCjslDEYPIJg==", + "dev": true + }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==" + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "requires": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "dev": true, + "requires": { + "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + } + } + }, + "html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + } + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ig-typedoc-theme": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ig-typedoc-theme/-/ig-typedoc-theme-4.2.0.tgz", + "integrity": "sha512-GSrGW/wdXLNi4O1CovqmrlpxRJaLhu+jfVWS99337deN2PR2PQbNJ2IWGjKbFI4mARJjW+Anr3iQj95gHmuPzw==", + "dev": true + }, + "igniteui-sassdoc-theme": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/igniteui-sassdoc-theme/-/igniteui-sassdoc-theme-1.1.6.tgz", + "integrity": "sha512-BR+4Q7NdSHeGU6tiw1eVz3cJWHJdaComKjX5SyQIkaQv030q4pOK2QiDt3JPfcVc5qB4Swl8SwyEEo2dZG3EEg==", + "dev": true, + "requires": { + "extend": ">=2.0.2", + "handlebars": "^4.7.2", + "sassdoc-extras": "^2.5.1", + "themeleon": "^3.0.0" + } + }, + "igniteui-theming": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/igniteui-theming/-/igniteui-theming-1.4.2.tgz", + "integrity": "sha512-XuKQFLl4aoRj74fXRVWfznLyVrRfAHb0pft4NyCAF+x58+5C0SXlOz8asbjtPEMw6jAPK4P3tq4mWtjHJrTCww==", + "requires": {} + }, + "igniteui-trial-watermark": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/igniteui-trial-watermark/-/igniteui-trial-watermark-1.0.3.tgz", + "integrity": "sha512-q6thtu+7R6MOB+i9GorFPCcWeOImW43BzCAtKnDAYWwaoueb8Lg1EhBkIhAyfEIH+yZ/9c5lnZdU61/GRPoP+g==" + }, + "igniteui-webcomponents": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-4.2.3.tgz", + "integrity": "sha512-2SDxdmfTa1a9i8HaO7sXY6KvIwWH/aJyp4cUItpRn3X/7CfhcQjEZfrsPT8i3+Vy2iadwj2sI9THNdpxQeGduw==", + "dev": true, + "requires": { + "@floating-ui/dom": "^1.2.0", + "@lit-labs/virtualizer": "^1.0.1", + "lit": "^2.6.1" + } + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "ignore-walk": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", + "dev": true, + "requires": { + "minimatch": "^9.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.0.0.tgz", + "integrity": "sha512-t0ikzf5qkSFqRl1e6ejKBe+Tk2bsQd8ivEkcisyGXsku2t8NvXZ1Y3RRz5vxrDgOrTBOi13CvGsVoI5wVpd7xg==", + "dev": true + }, + "injection-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/injection-js/-/injection-js-2.4.0.tgz", + "integrity": "sha512-6jiJt0tCAo9zjHbcwLiPL+IuNe9SQ6a9g0PEzafThW3fOQi0mrmiJGBJvDD6tmhPh8cQHIQtCOrJuBfQME4kPA==", + "dev": true, + "requires": { + "tslib": "^2.0.0" + } + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.2" + } + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==", + "dev": true, + "requires": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jasmine": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.6.0.tgz", + "integrity": "sha512-iq7HQ5M8ydNUspjd9vbFW9Lu+6lQ1QLDIqjl0WysEllF5EJZy8XaUyNlhCJVwOx2YFzqTtARWbS56F/f0PzRFw==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "jasmine-core": "^4.6.0" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true + }, + "just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, + "karma": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "dependencies": { + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "requires": { + "which": "^1.2.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "karma-coverage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "requires": { + "jasmine-core": "^4.1.0" + } + }, + "karma-junit-reporter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz", + "integrity": "sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==", + "dev": true, + "requires": { + "path-is-absolute": "^1.0.0", + "xmlbuilder": "12.0.0" + } + }, + "karma-parallel": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/karma-parallel/-/karma-parallel-0.3.1.tgz", + "integrity": "sha512-64jxNYamYi/9Y67h4+FfViSYhwDgod3rLuq+ZdZ0c3XeZFp/3q3v3HVkd8b5Czp3hCB+LLF8DIv4zlR4xFqbRw==", + "dev": true, + "requires": { + "istanbul": "^0.4.5", + "lodash": "^4.17.11" + } + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "karma-spec-reporter": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.36.tgz", + "integrity": "sha512-11bvOl1x6ryKZph7kmbmMpbi8vsngEGxGOoeTlIcDaH3ab3j8aPJnZ+r+K/SS0sBSGy5VGkGYO2+hLct7hw/6w==", + "dev": true, + "requires": { + "colors": "1.4.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true + }, + "known-css-properties": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", + "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", + "dev": true + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "less": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "requires": { + "klona": "^2.0.4" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "requires": { + "webpack-sources": "^3.0.0" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true + }, + "limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true + }, + "lit": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.3.tgz", + "integrity": "sha512-0a+u+vVbmgSfPu+fyvqjMPBX0Kwbyj9QOv9MbQFZhWGlV2cyk3lEwgfUQgYN+i/lx++1Z3wZknSIp3QCKxHLyg==", + "dev": true, + "requires": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.7.0" + } + }, + "lit-element": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", + "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", + "dev": true, + "requires": { + "@lit-labs/ssr-dom-shim": "^1.1.0", + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.7.0" + } + }, + "lit-html": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.3.tgz", + "integrity": "sha512-9DyLzcn/kbRGowz2vFmSANFbRZTxYUgYYFqzie89w6GLpPUiBCDHfcdeRUV/k3Q2ueYxNjfv46yPCtKAEAPOVw==", + "dev": true, + "requires": { + "@types/trusted-types": "^2.0.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true + }, + "localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "requires": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash._basebind": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._basebind/-/lodash._basebind-2.4.1.tgz", + "integrity": "sha512-VGHm6DH+1UiuafQdE/DNMqxOcSyhRu0xO9+jPDq7xITRn5YOorGrHVQmavMVXCYmTm80YRTZZCn/jTW7MokwLg==", + "dev": true, + "requires": { + "lodash._basecreate": "~2.4.1", + "lodash._setbinddata": "~2.4.1", + "lodash._slice": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, + "lodash._basecreate": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-2.4.1.tgz", + "integrity": "sha512-8JJ3FnMPm54t3BwPLk8q8mPyQKQXm/rt9df+awr4NGtyJrtcCXM3Of1I86S6jVy1b4yAyFBb8wbKPEauuqzRmQ==", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1", + "lodash.isobject": "~2.4.1", + "lodash.noop": "~2.4.1" + } + }, + "lodash._basecreatecallback": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._basecreatecallback/-/lodash._basecreatecallback-2.4.1.tgz", + "integrity": "sha512-SLczhg860fGW7AKlYcuOFstDtJuQhaANlJ4Y/jrOoRxhmVtK41vbJDH3OefVRSRkSCQo4HI82QVkAVsoGa5gSw==", + "dev": true, + "requires": { + "lodash._setbinddata": "~2.4.1", + "lodash.bind": "~2.4.1", + "lodash.identity": "~2.4.1", + "lodash.support": "~2.4.1" + } + }, + "lodash._basecreatewrapper": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.4.1.tgz", + "integrity": "sha512-x2ja1fa/qmzbizuXgVM4QAP9svtMbdxjG8Anl9bCeDAwLOVQ1vLrA0hLb/NkpbGi9evjtkl0aWLTEoOlUdBPQA==", + "dev": true, + "requires": { + "lodash._basecreate": "~2.4.1", + "lodash._setbinddata": "~2.4.1", + "lodash._slice": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, + "lodash._createwrapper": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._createwrapper/-/lodash._createwrapper-2.4.1.tgz", + "integrity": "sha512-5TCfLt1haQpsa7bgLYRKNNE4yqhO4ZxIayN1btQmazMchO6Q8JYFRMqbJ3W+uNmMm4R0Jw7KGkZX5YfDDnywuw==", + "dev": true, + "requires": { + "lodash._basebind": "~2.4.1", + "lodash._basecreatewrapper": "~2.4.1", + "lodash._slice": "~2.4.1", + "lodash.isfunction": "~2.4.1" + } + }, + "lodash._isnative": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", + "integrity": "sha512-BOlKGKNHhCHswGOWtmVb5zBygyxN7EmTuzVOSQI6QSoGhG+kvv71gICFS1TBpnqvT1n53txK8CDK3u5D2/GZxQ==", + "dev": true + }, + "lodash._objecttypes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", + "integrity": "sha512-XpqGh1e7hhkOzftBfWE7zt+Yn9mVHFkDhicVttvKLsoCMLVVL+xTQjfjB4X4vtznauxv0QZ5ZAeqjvat0dh62Q==", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true + }, + "lodash._setbinddata": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._setbinddata/-/lodash._setbinddata-2.4.1.tgz", + "integrity": "sha512-Vx0XKzpg2DFbQw4wrp1xSWd2sfl3W/BG6bucSRZmftS1AzbWRemCmBQDxyQTNhlLNec428PXkuuja+VNBZgu2A==", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1", + "lodash.noop": "~2.4.1" + } + }, + "lodash._shimkeys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", + "integrity": "sha512-lBrglYxLD/6KAJ8IEa5Lg+YHgNAL7FyKqXg4XOUI+Du/vtniLs1ZqS+yHNKPkK54waAgkdUnDOYaWf+rv4B+AA==", + "dev": true, + "requires": { + "lodash._objecttypes": "~2.4.1" + } + }, + "lodash._slice": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._slice/-/lodash._slice-2.4.1.tgz", + "integrity": "sha512-+odPJa4PE2UgYnQgJgkLs0UD03QU78R2ivhrFnG9GdtYOZdE6ObxOj7KiUEUlqOOgatFT+ZqSypFjDSduTigKg==", + "dev": true + }, + "lodash.assign": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-2.4.1.tgz", + "integrity": "sha512-AqQ4AJz5buSx9ELXWt5dONwJyVPd4NTADMKhoVYWCugjoVf172/LpvVhwmSJn4g8/Dc0S8hxTe8rt5Dob3X9KQ==", + "dev": true, + "requires": { + "lodash._basecreatecallback": "~2.4.1", + "lodash._objecttypes": "~2.4.1", + "lodash.keys": "~2.4.1" + } + }, + "lodash.bind": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-2.4.1.tgz", + "integrity": "sha512-hn2VWYZ+N9aYncRad4jORvlGgpFrn+axnPIWRvFxjk6CWcZH5b5alI8EymYsHITI23Z9wrW/+ORq+azrVFpOfw==", + "dev": true, + "requires": { + "lodash._createwrapper": "~2.4.1", + "lodash._slice": "~2.4.1" + } + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "lodash.identity": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.identity/-/lodash.identity-2.4.1.tgz", + "integrity": "sha512-VRYX+8XipeLjorag5bz3YBBRJ+5kj8hVBzfnaHgXPZAVTYowBdY5l0M5ZnOmlAMCOXBFabQtm7f5VqjMKEji0w==", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "lodash.isfunction": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-2.4.1.tgz", + "integrity": "sha512-6XcAB3izeQxPOQQNAJbbdjXbvWEt2Pn9ezPrjr4CwoLwmqsLVbsiEXD19cmmt4mbzOCOCdHzOQiUivUOJLra7w==", + "dev": true + }, + "lodash.isobject": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", + "integrity": "sha512-sTebg2a1PoicYEZXD5PBdQcTlIJ6hUslrlWr7iV0O7n+i4596s2NQ9I5CaZ5FbXSfya/9WQsrYLANUJv9paYVA==", + "dev": true, + "requires": { + "lodash._objecttypes": "~2.4.1" + } + }, + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha512-ZpJhwvUXHSNL5wYd1RM6CUa2ZuqorG9ngoJ9Ix5Cce+uX7I5O/E06FCJdhSZ33b5dVyeQDnIlWH7B2s5uByZ7g==", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1", + "lodash._shimkeys": "~2.4.1", + "lodash.isobject": "~2.4.1" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.noop": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.noop/-/lodash.noop-2.4.1.tgz", + "integrity": "sha512-uNcV98/blRhInPUGQEnj9ekXXfG+q+rfoNSFZgl/eBfog9yBDW9gfUv2AHX/rAF7zZRlzWhbslGhbGQFZlCkZA==", + "dev": true + }, + "lodash.support": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.support/-/lodash.support-2.4.1.tgz", + "integrity": "sha512-6SwqWwGFHhTXEiqB/yQgu8FYd//tm786d49y7kizHVCJH7zdzs191UQn3ES3tkkDbUddNRfkCRYqJFHtbLnbCw==", + "dev": true, + "requires": { + "lodash._isnative": "~2.4.1" + } + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "requires": { + "es5-ext": "~0.10.2" + } + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha512-4TO2Y3HkBnis4c0dxhAgD/jprySYLACf7nwN6V0HAHDx59g12WlRpUmFy1bRHamjGUEEBrEvCq6SUpsEE2lhUg==", + "dev": true, + "requires": { + "make-error": "^1.2.0" + } + }, + "make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "dependencies": { + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + } + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz", + "integrity": "sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==", + "dev": true + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memfs": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz", + "integrity": "sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "memoize-decorator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/memoize-decorator/-/memoize-decorator-1.0.2.tgz", + "integrity": "sha512-G2vHcq4c+EwnBAOeWCH1mNz99QPCgm4ECjhHOd3SFZm66jVlwhBLdqhCvnHxptaRyZfm8ap3igoeDfrO92+uHQ==", + "dev": true + }, + "memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", + "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", + "dev": true, + "requires": { + "schema-utils": "^4.0.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "multipipe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-1.0.2.tgz", + "integrity": "sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==", + "dev": true, + "requires": { + "duplexer2": "^0.1.2", + "object-assign": "^4.1.0" + } + }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "ncp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", + "integrity": "sha512-akBX7I5X9KQDDWmYYgQlLbVbjkveTje2mioZjhLLrVt09akSZcoqXWE5LEn1E2fu8T7th1PZYGfewQsTkTLTmQ==", + "dev": true + }, + "needle": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "ng-packagr": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-16.0.0.tgz", + "integrity": "sha512-PSgzS9WMypXyZbI5G54mNiarT54a3j5vf5pj84BOWJaSh6MbX3q49fR1ql41A+qtkPkG+e7xQ3IhMOnOMilobg==", + "dev": true, + "requires": { + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.0.0", + "ajv": "^8.11.0", + "ansi-colors": "^4.1.3", + "autoprefixer": "^10.4.12", + "browserslist": "^4.21.4", + "cacache": "^17.0.0", + "chokidar": "^3.5.3", + "commander": "^10.0.0", + "convert-source-map": "^2.0.0", + "dependency-graph": "^0.11.0", + "esbuild": "^0.17.0", + "esbuild-wasm": "^0.17.0", + "fast-glob": "^3.2.12", + "find-cache-dir": "^3.3.2", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.2.0", + "less": "^4.1.3", + "ora": "^5.1.0", + "piscina": "^3.2.0", + "postcss": "^8.4.16", + "postcss-url": "^10.1.3", + "rollup": "^3.0.0", + "rxjs": "^7.5.6", + "sass": "^1.55.0" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "optional": true, + "requires": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "node-gyp": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", + "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "requires": { + "abbrev": "^1.0.0" + } + } + } + }, + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "dev": true + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "requires": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, + "npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^3.0.0" + } + }, + "npm-install-checks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true + }, + "npm-package-arg": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "dev": true, + "requires": { + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + } + }, + "npm-packlist": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", + "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", + "dev": true, + "requires": { + "ignore-walk": "^6.0.0" + } + }, + "npm-pick-manifest": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", + "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "dev": true, + "requires": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", + "semver": "^7.3.5" + } + }, + "npm-registry-fetch": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", + "dev": true, + "requires": { + "make-fetch-happen": "^11.0.0", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + } + }, + "minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + } + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "requires": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "dev": true, + "requires": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } + }, + "nx": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/nx/-/nx-16.0.2.tgz", + "integrity": "sha512-8Z9Bo1D2VbYjyC/F2ONensKjm10snz1UfkzURZiFA+oXikBPldiH1u67TOTpoCYZfyYQg4l6h6EpOaAvHF6Abg==", + "dev": true, + "requires": { + "@nrwl/tao": "16.0.2", + "@nx/nx-darwin-arm64": "16.0.2", + "@nx/nx-darwin-x64": "16.0.2", + "@nx/nx-linux-arm-gnueabihf": "16.0.2", + "@nx/nx-linux-arm64-gnu": "16.0.2", + "@nx/nx-linux-arm64-musl": "16.0.2", + "@nx/nx-linux-x64-gnu": "16.0.2", + "@nx/nx-linux-x64-musl": "16.0.2", + "@nx/nx-win32-arm64-msvc": "16.0.2", + "@nx/nx-win32-x64-msvc": "16.0.2", + "@parcel/watcher": "2.0.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "^3.0.0-rc.18", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.0.0", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^11.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "dependencies": { + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "pacote": { + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.3.tgz", + "integrity": "sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==", + "dev": true, + "requires": { + "@npmcli/git": "^4.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^6.0.1", + "@npmcli/run-script": "^6.0.0", + "cacache": "^17.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^5.0.0", + "npm-package-arg": "^10.0.0", + "npm-packlist": "^7.0.0", + "npm-pick-manifest": "^8.0.0", + "npm-registry-fetch": "^14.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^6.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^1.3.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "dependencies": { + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + } + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "requires": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "dependencies": { + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + }, + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } + } + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "requires": { + "parse5": "^7.0.0" + }, + "dependencies": { + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + }, + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true + }, + "path-scurry": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", + "dev": true, + "requires": { + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "dev": true + } + } + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "piscina": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", + "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", + "dev": true, + "requires": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0", + "nice-napi": "^1.0.2" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + } + } + }, + "portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "requires": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-loader": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.2.4.tgz", + "integrity": "sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==", + "dev": true, + "requires": { + "cosmiconfig": "^8.1.3", + "cosmiconfig-typescript-loader": "^4.3.0", + "klona": "^2.0.6", + "semver": "^7.3.8" + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "requires": {} + }, + "postcss-scss": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", + "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "dev": true, + "requires": {} + }, + "postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-url": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz", + "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==", + "dev": true, + "requires": { + "make-dir": "~3.1.0", + "mime": "~2.5.2", + "minimatch": "~3.0.4", + "xxhashjs": "~0.2.2" + }, + "dependencies": { + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true + }, + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true + }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", + "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "read-package-json": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", + "dev": true, + "requires": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + } + }, + "json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true + }, + "minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "dependencies": { + "json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "rollup": { + "version": "3.21.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.3.tgz", + "integrity": "sha512-VnPfEG51nIv2xPLnZaekkuN06q9ZbnyDcLkaBdJa/W7UddyhOfMP2yOPziYQfeY7k++fZM8FdQIummFN5y14kA==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "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==" + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safe-wipe": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/safe-wipe/-/safe-wipe-0.2.5.tgz", + "integrity": "sha512-MwTNf4YrRqCHsB5jUzOVdXoRbW4jkhgTvhlyfiaxox8EP7cOCiD4ydMOQCxDPR9KpvwdBSM2dQHScV1m85k8wQ==", + "dev": true, + "requires": { + "extend": "^3.0.2", + "q": "1.*", + "rimraf": "2.*" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "dependencies": { + "immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" + } + } + }, + "sass-convert": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/sass-convert/-/sass-convert-0.5.2.tgz", + "integrity": "sha512-eV9wXZg7MrHmnKLD6WojC/WX7lhLm+PSSLrOukzRIECa04fGbkmFDO9Ot9/82KjzSe+VEClYe9WDKzCuBz30Dg==", + "dev": true, + "requires": { + "concat-stream": "^1.4.7", + "dargs": "^4.0.0", + "ends-with": "^0.2.0", + "es6-denodeify": "^0.1.0", + "es6-promise": "^3.0.2", + "memoize-decorator": "^1.0.2", + "object-assign": "^3.0.0", + "semver": "^5.0.1", + "semver-regex": "^1.0.0", + "through2": "^2.0.0", + "which": "^1.0.5" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "sass-loader": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.2.tgz", + "integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==", + "dev": true, + "requires": { + "klona": "^2.0.6", + "neo-async": "^2.6.2" + } + }, + "sass-true": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sass-true/-/sass-true-6.1.0.tgz", + "integrity": "sha512-Qt6TpPe8Ogr8g9FvBSwXvzfrkbtHD7rej0X3lzyoiZ+I0kKV9NFeefcF560uMn5NFCA7g5rcVKxc9UHrrMcDrw==", + "dev": true, + "requires": { + "@types/css": "^0.0.33", + "css": "^3.0.0", + "jest-diff": "^27.5.1", + "lodash": "^4.17.21" + } + }, + "sassdoc": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/sassdoc/-/sassdoc-2.7.4.tgz", + "integrity": "sha512-/HEjX9pMILkePyC4ZKGhkLqZHJZpsTxFwQIQNsLhV4XHiPKoWHrSmam1pMntM79tcdtBII3JX7ShfyZjHnrkyw==", + "dev": true, + "requires": { + "ansi-styles": "^4.2.1", + "babel-runtime": "^6.26.0", + "chalk": "^2.4.2", + "concat-stream": "^2.0.0", + "docopt": "^0.6.1", + "glob": "^7.1.6", + "glob2base": "0.0.12", + "js-yaml": "^3.14.0", + "lodash.difference": "^4.5.0", + "lodash.uniq": "^4.5.0", + "minimatch": "^3.0.4", + "mkdirp": "^1.0.4", + "multipipe": "1.0.2", + "rimraf": "^3.0.2", + "safe-wipe": "0.2.5", + "sass-convert": "^0.5.0", + "sassdoc-theme-default": "^2.8.3", + "scss-comment-parser": "^0.8.4", + "strip-indent": "^3.0.0", + "through2": "1.1.1", + "update-notifier": "^4.1.0", + "vinyl-fs": "^3.0.3", + "vinyl-source-stream": "1.1.2", + "vinyl-string": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "through2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-1.1.1.tgz", + "integrity": "sha512-zEbpaeSMHxczpTzO1KkMHjBC1enTA68ojeaZGG4toqdASpb9t4xUZaYFBq2/9OHo5nTGFVSYd4c910OR+6wxbQ==", + "dev": true, + "requires": { + "readable-stream": ">=1.1.13-1 <1.2.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + } + } + } + } + }, + "sassdoc-extras": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/sassdoc-extras/-/sassdoc-extras-2.5.1.tgz", + "integrity": "sha512-/+ilEnk1H1hG9nympL1GIFWhAczzoclyDzgzfphIg46nsT/dWJuzWYHyzIpduc/nTVwKeQfmTz0ZVvy12QMkrQ==", + "dev": true, + "requires": { + "marked": "^0.6.2" + } + }, + "sassdoc-plugin-localization": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sassdoc-plugin-localization/-/sassdoc-plugin-localization-1.4.3.tgz", + "integrity": "sha512-AcN4E987Lc+8xCF8Oy78D8zfZ/OPCGsYwY4g2P+wywcuxj9MCR+60qn7u0qGU0je8mDcIW40ImFG59k/Evu8Vg==", + "dev": true, + "requires": { + "@types/node": "^7.10.14", + "fs-extra": "^7.0.1", + "sassdoc": "^2.5.1", + "sassdoc-extras": "^2.5.1", + "typescript": "^3.9.9" + }, + "dependencies": { + "@types/node": { + "version": "7.10.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.14.tgz", + "integrity": "sha512-29GS75BE8asnTno3yB6ubOJOO0FboExEqNJy4bpz0GSmW/8wPTNL4h9h63c6s1uTrOopCmJYe/4yJLh5r92ZUA==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true + } + } + }, + "sassdoc-theme-default": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/sassdoc-theme-default/-/sassdoc-theme-default-2.8.5.tgz", + "integrity": "sha512-9lGpeCONCKVOkljh0C8CCo9jArKbLi1YKKJ4t6w8gsp8O8zFf2ES/l8rKVI4oMnfaJxa7bOmFKoGvrVHcmVERg==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "chroma-js": "^1.2.2", + "es6-denodeify": "^0.1.0", + "es6-promise": "^4.2.6", + "extend": "^3.0.2", + "fs-extra": "^2.0.0", + "html-minifier": "^3.5.21", + "nunjucks": "^3.1.7", + "sassdoc-extras": "^2.5.0" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha512-9ztMtDZtSKC78V8mev+k31qaTabbmuH5jatdvPBMikrFHvw5BqlYnQIn/WGK3WHeRooSTkRvLa2IPlaHjPq5Sg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "scss-comment-parser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/scss-comment-parser/-/scss-comment-parser-0.8.4.tgz", + "integrity": "sha512-ERw4BODvM22n8Ke8hJxuH3fKXLm0Q4chfUNHwDSOAExCths2ZXq8PT32vms4R9Om6dffRSXzzGZS1p38UU4EAg==", + "dev": true, + "requires": { + "cdocparser": "^0.13.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } + }, + "semver-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", + "integrity": "sha512-1vZcoRC+LPtHFkLUPyrabsATDSHerxW+hJBN8h04HZOZBuewbXaNROtUVdEPrTdZsWNq6sfsXDhd48GB2xTG4g==", + "dev": true + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true + }, + "shiki": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", + "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", + "dev": true, + "requires": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sigstore": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.4.0.tgz", + "integrity": "sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==", + "dev": true, + "requires": { + "@sigstore/protobuf-specs": "^0.1.0", + "make-fetch-happen": "^11.0.1", + "tuf-js": "^1.1.3" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + } + }, + "minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", + "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.4.1", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.1" + } + }, + "socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "requires": { + "ws": "~8.11.0" + } + }, + "socket.io-client": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", + "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.4.0", + "socket.io-parser": "~4.2.1" + } + }, + "socket.io-parser": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", + "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "ssri": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", + "dev": true, + "requires": { + "minipass": "^5.0.0" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", + "dev": true + }, + "stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "requires": { + "internal-slot": "^1.0.4" + } + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "requires": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + } + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "stylelint": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz", + "integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==", + "dev": true, + "requires": { + "@csstools/css-parser-algorithms": "^2.1.1", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.0.4", + "@csstools/selector-specificity": "^2.2.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^8.1.3", + "css-functions-list": "^3.1.0", + "css-tree": "^2.3.1", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.27.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.12", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^3.0.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^5.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", + "dev": true, + "requires": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "tar": { + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true + }, + "terser": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "themeleon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/themeleon/-/themeleon-3.0.2.tgz", + "integrity": "sha512-QRN/beYfINibeg9U20vETTmXDq56AXyNJCbLp7uvqX5m/uoVvMwc/aUzxU4mlMyzN3Dl2inH8o4fMjEl2qEzJw==", + "dev": true, + "requires": { + "ap": "^0.2.0", + "consolidate": "^0.13.0", + "fs-extra": "^0.13.0", + "glob": "^4.3.1", + "merge": "^1.2.0", + "q": "^1.1.2" + }, + "dependencies": { + "fs-extra": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.13.0.tgz", + "integrity": "sha512-JiEPAzy0hZ0EN25pkXkgmzxn/ThqTbDrTqGnEO9eFMR33mfG72A2YFjQ23+zTsnDtcOesBKUtRXWTh6V4bQUVg==", + "dev": true, + "requires": { + "jsonfile": "^2.0.0", + "ncp": "^1.0.1", + "rimraf": "^2.2.8" + } + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha512-I0rTWUKSZKxPSIAIaqhSXTM/DiII6wame+rEC3cFA5Lqmr9YmdL7z6Hj9+bdWtTvoY1Su4/OiMLmb37Y7JzvJQ==", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha512-jQo6o1qSVLEWaw3l+bwYA2X0uLuK2KjNh2wjgO7Q/9UJnXr1Q3yQKR8BI0/Bt/rPg75e6SMW4hW/6cBHVTZUjA==", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "requires": { + "through2": "^2.0.3" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tuf-js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.5.tgz", + "integrity": "sha512-inqodgxdsmuxrtQVbu6tPNgRKWD1Boy3VB6GO7KczJZpAHiTukwhSzXUSzvDcw5pE2Jo8ua+e1ykpHv7VdPVlQ==", + "dev": true, + "requires": { + "@tufjs/models": "1.0.4", + "make-fetch-happen": "^11.1.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + } + }, + "minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + } + } + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typedoc": { + "version": "0.23.28", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.28.tgz", + "integrity": "sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w==", + "dev": true, + "requires": { + "lunr": "^2.3.9", + "marked": "^4.2.12", + "minimatch": "^7.1.3", + "shiki": "^0.14.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "typedoc-plugin-localization": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/typedoc-plugin-localization/-/typedoc-plugin-localization-3.0.0.tgz", + "integrity": "sha512-Pnp06S+G/3VrC2TP0LpnjJWx2HQn/c5yzdAQHVFf7KxcoEWrp2etzyS4YefRdgXhd6F+THx51gaK7EO7/bCO4Q==", + "dev": true, + "requires": { + "fs-extra": "^10.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "ua-parser-js": { + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", + "dev": true + }, + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true + }, + "undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "dependencies": { + "fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true + } + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, - "dependencies": { - "ini": "1.3.7" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "unique-slug": "^4.0.0" } }, - "node_modules/update-notifier/node_modules/has-flag": { + "unique-slug": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, - "engines": { - "node": ">=8" + "requires": { + "imurmurhash": "^0.1.4" } }, - "node_modules/update-notifier/node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", "dev": true, - "engines": { - "node": ">=4" + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" } }, - "node_modules/update-notifier/node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, - "node_modules/update-notifier/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, - "dependencies": { - "ci-info": "^2.0.0" + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, - "bin": { - "is-ci": "bin.js" + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } } }, - "node_modules/update-notifier/node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" } }, - "node_modules/update-notifier/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" }, - "engines": { - "node": ">=8" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/upper-case": { + "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", "dev": true }, - "node_modules/uri-js": { + "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "dependencies": { + "requires": { "punycode": "^2.1.0" } }, - "node_modules/urix": { + "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, - "node_modules/url-parse-lax": { + "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "dev": true, - "dependencies": { + "requires": { "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" } }, - "node_modules/use": { + "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/util-deprecate": { + "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/utils-merge": { + "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } + "dev": true }, - "node_modules/uuid": { + "uuid": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, - "node_modules/v8-compile-cache": { + "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "node_modules/v8-compile-cache-lib": { + "v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "node_modules/v8flags": { + "v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "dev": true, - "dependencies": { + "requires": { "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" } }, - "node_modules/validate-npm-package-license": { + "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "dependencies": { + "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "node_modules/validate-npm-package-name": { + "validate-npm-package-name": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "dev": true, - "dependencies": { + "requires": { "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/value-or-function": { + "value-or-function": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", - "dev": true, - "engines": { - "node": ">= 0.10" - } + "dev": true }, - "node_modules/vary": { + "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, - "node_modules/vinyl": { + "vinyl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, - "dependencies": { + "requires": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", "clone-stats": "^1.0.0", @@ -22566,16 +40935,21 @@ "remove-trailing-separator": "^1.0.1", "replace-ext": "^1.0.0" }, - "engines": { - "node": ">= 0.10" + "dependencies": { + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + } } }, - "node_modules/vinyl-fs": { + "vinyl-fs": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", "dev": true, - "dependencies": { + "requires": { "fs-mkdirp-stream": "^1.0.0", "glob-stream": "^6.1.0", "graceful-fs": "^4.0.0", @@ -22593,55 +40967,48 @@ "value-or-function": "^3.0.0", "vinyl": "^2.0.0", "vinyl-sourcemap": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" } }, - "node_modules/vinyl-source-stream": { + "vinyl-source-stream": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz", "integrity": "sha512-X+1Jq+M6ufv/ky480hndPBsNb0ieqTQkvpakxMTxb7oUlyuNaJKL2HddYUrbTec0Lb0J53JlDiCetcgJ3b3Wmg==", "dev": true, - "dependencies": { + "requires": { "through2": "^2.0.3", "vinyl": "^0.4.3" - } - }, - "node_modules/vinyl-source-stream/node_modules/clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/vinyl-source-stream/node_modules/clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", - "dev": true - }, - "node_modules/vinyl-source-stream/node_modules/vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", - "dev": true, - "dependencies": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" }, - "engines": { - "node": ">= 0.9" + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha512-g62n3Kb9cszeZvmvBUqP/dsEJD/+80pDA8u8KqHnAPrVnQ2Je9rVV6opxkhuWCd1kCn2gOibzDKxCtBvD3q5kA==", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha512-pmza4M5VA15HOImIQYWhoXGlGNafCm0QK5BpBUXkzzEwrRxKqBsbAhTfkT2zMcJhUX1G1Gkid0xaV8WjOl7DsA==", + "dev": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } } }, - "node_modules/vinyl-sourcemap": { + "vinyl-sourcemap": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", "dev": true, - "dependencies": { + "requires": { "append-buffer": "^1.0.2", "convert-source-map": "^1.5.0", "graceful-fs": "^4.1.6", @@ -22650,165 +41017,150 @@ "remove-bom-buffer": "^3.0.0", "vinyl": "^2.0.0" }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", - "dev": true, "dependencies": { - "source-map": "^0.5.1" - } - }, - "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "source-map": "^0.5.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } } }, - "node_modules/vinyl-string": { + "vinyl-string": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vinyl-string/-/vinyl-string-1.0.2.tgz", "integrity": "sha512-mDkPUvCM7K9r0WYZKIWc/dfPH8wkJBbe/3wZUU9EJyw3g6VSACg6FLlcZ/QbP1lTSdtBsVjQoYG1a9K0cfoKeQ==", "dev": true, - "dependencies": { + "requires": { "vinyl": "^1.1.1" - } - }, - "node_modules/vinyl-string/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/vinyl-string/node_modules/clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", - "dev": true - }, - "node_modules/vinyl-string/node_modules/replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/vinyl-string/node_modules/vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==", - "dev": true, - "dependencies": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" }, - "engines": { - "node": ">= 0.9" + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } } }, - "node_modules/vinyl/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "vite": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.1.tgz", + "integrity": "sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==", "dev": true, - "engines": { - "node": ">= 0.10" + "requires": { + "esbuild": "^0.17.5", + "fsevents": "~2.3.2", + "postcss": "^8.4.21", + "rollup": "^3.20.2" } }, - "node_modules/void-elements": { + "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/vscode-oniguruma": { + "vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, - "node_modules/vscode-textmate": { + "vscode-textmate": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", "dev": true }, - "node_modules/watchpack": { + "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, - "dependencies": { + "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" } }, - "node_modules/wbuf": { + "wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "dependencies": { + "requires": { "minimalistic-assert": "^1.0.0" } }, - "node_modules/wcwidth": { + "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, - "dependencies": { + "requires": { "defaults": "^1.0.3" } }, - "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "webpack": { + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", "dev": true, - "dependencies": { + "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.13.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -22817,57 +41169,86 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.1.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } } } }, - "node_modules/webpack-dev-middleware": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz", - "integrity": "sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw==", + "webpack-dev-middleware": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.2.tgz", + "integrity": "sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==", "dev": true, - "dependencies": { + "requires": { "colorette": "^2.0.10", "memfs": "^3.4.12", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" } }, - "node_modules/webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "webpack-dev-server": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz", + "integrity": "sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==", "dev": true, - "dependencies": { + "requires": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", @@ -22887,490 +41268,341 @@ "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", - "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", - "dev": true, - "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" }, - "engines": { - "node": ">=8.0.0" + "dependencies": { + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + } + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "requires": {} + } } }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, - "engines": { - "node": ">=4.0" + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" } }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "requires": { + "typed-assert": "^1.0.8" } }, - "node_modules/websocket-driver": { + "websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "dependencies": { + "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" } }, - "node_modules/websocket-extensions": { + "websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } + "dev": true }, - "node_modules/which": { + "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "dependencies": { + "requires": { "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { + "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "dependencies": { + "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-collection": { + "which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "dev": true, - "dependencies": { + "requires": { "is-map": "^2.0.1", "is-set": "^2.0.1", "is-weakmap": "^2.0.1", "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { + "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", "dev": true }, - "node_modules/which-typed-array": { + "which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, - "dependencies": { + "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { + "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, - "dependencies": { + "requires": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/widest-line": { + "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, - "dependencies": { + "requires": { "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, - "node_modules/word-wrap": { + "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/wordwrap": { + "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, - "node_modules/wrap-ansi": { + "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "dependencies": { + "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, - "engines": { - "node": ">=7.0.0" + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { + "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/write-file-atomic": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", - "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", + "write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, - "dependencies": { + "requires": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "dependencies": { + "signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true + } } }, - "node_modules/ws": { + "ws": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } + "requires": {} }, - "node_modules/xdg-basedir": { + "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/xmlbuilder": { + "xmlbuilder": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz", "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==", - "dev": true, - "engines": { - "node": ">=6.0" - } + "dev": true }, - "node_modules/xmlhttprequest-ssl": { + "xmlhttprequest-ssl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } + "dev": true }, - "node_modules/xtend": { + "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } + "dev": true }, - "node_modules/xxhashjs": { + "xxhashjs": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", "dev": true, - "dependencies": { + "requires": { "cuint": "^0.2.2" } }, - "node_modules/y18n": { + "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } + "dev": true }, - "node_modules/yallist": { + "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yaml": { + "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } + "dev": true }, - "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "dependencies": { + "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -23379,64 +41611,43 @@ "y18n": "^5.0.5", "yargs-parser": "^21.1.1" }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + } } }, - "node_modules/yargs/node_modules/yargs-parser": { + "yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } + "dev": true }, - "node_modules/yn": { + "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/yocto-queue": { + "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true }, - "node_modules/zone.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", - "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", - "dependencies": { + "zone.js": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", + "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", + "requires": { "tslib": "^2.3.0" } } diff --git a/package.json b/package.json index 368d78fae38..a5b42e415b8 100644 --- a/package.json +++ b/package.json @@ -53,15 +53,15 @@ }, "private": true, "dependencies": { - "@angular/animations": "^15.2.0", - "@angular/common": "^15.2.0", - "@angular/compiler": "^15.2.0", - "@angular/core": "^15.2.0", - "@angular/forms": "^15.2.0", - "@angular/platform-browser": "^15.2.0", - "@angular/platform-browser-dynamic": "^15.2.0", - "@angular/router": "^15.2.0", - "@igniteui/material-icons-extended": "^2.10.0", + "@angular/animations": "^16.0.0", + "@angular/common": "^16.0.0", + "@angular/compiler": "^16.0.0", + "@angular/core": "^16.0.0", + "@angular/forms": "^16.0.0", + "@angular/platform-browser": "^16.0.0", + "@angular/platform-browser-dynamic": "^16.0.0", + "@angular/router": "^16.0.0", + "@igniteui/material-icons-extended": "^3.0.0", "@types/hammerjs": "^2.0.40", "@types/source-map": "0.5.2", "fflate": "^0.7.3", @@ -72,33 +72,31 @@ "rxjs": "^6.6.7", "tslib": "^2.3.0", "uuid": "^9.0.0", - "zone.js": "~0.12.0" + "zone.js": "~0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.2.0", - "@angular-devkit/schematics": "^15.2.0", - "@angular-eslint/builder": "^15.2.0", - "@angular-eslint/eslint-plugin": "^15.2.0", - "@angular-eslint/eslint-plugin-template": "^15.2.0", - "@angular-eslint/schematics": "^15.2.0", - "@angular-eslint/template-parser": "^15.2.0", - "@angular/cli": "^15.2.0", - "@angular/compiler-cli": "^15.2.0", - "@angular/language-service": "^15.2.0", + "@angular-devkit/build-angular": "^16.0.0", + "@angular-devkit/schematics": "^16.0.0", + "@angular-eslint/builder": "^16.0.1", + "@angular-eslint/eslint-plugin": "^16.0.1", + "@angular-eslint/eslint-plugin-template": "^16.0.1", + "@angular-eslint/schematics": "^16.0.1", + "@angular-eslint/template-parser": "^16.0.1", + "@angular/cli": "^16.0.0", + "@angular/compiler-cli": "^16.0.0", + "@angular/language-service": "^16.0.0", "@angularclass/hmr": "^3.0.0", - "@cypress/schematic": "^2.4.0", "@types/estree": "^1.0.0", "@types/jasmine": "^4.3.1", "@types/jasminewd2": "^2.0.10", "@types/node": "^18.11.19", "@types/sass-true": "^6.0.2", "@types/webpack-env": "^1.16.3", - "@typescript-eslint/eslint-plugin": "^5.48.1", - "@typescript-eslint/parser": "^5.48.1", + "@typescript-eslint/eslint-plugin": "^5.59.2", + "@typescript-eslint/parser": "^5.59.2", "browser-sync": "^2.27.11", - "cypress": "^12.6.0", "del": "^6.0.0", - "eslint": "^8.32.0", + "eslint": "^8.39.0", "gulp": "^4.0.2", "gulp-cached": "^1.1.1", "gulp-concat": "^2.6.1", @@ -111,17 +109,17 @@ "hammer-simulator": "0.0.1", "ig-typedoc-theme": "^4.2.0", "igniteui-sassdoc-theme": "^1.1.6", - "igniteui-webcomponents": "^4.2.1", - "jasmine": "^4.5.0", - "jasmine-core": "~4.5.0", - "karma": "^6.3.11", - "karma-chrome-launcher": "~3.1.0", + "igniteui-webcomponents": "^4.2.3", + "jasmine": "^4.6.0", + "jasmine-core": "~4.6.0", + "karma": "^6.4.2", + "karma-chrome-launcher": "~3.2.0", "karma-coverage": "^2.0.3", "karma-jasmine": "~5.1.0", "karma-junit-reporter": "^2.0.1", "karma-parallel": "^0.3.1", "karma-spec-reporter": "^0.0.36", - "ng-packagr": "^15.1.1", + "ng-packagr": "^16.0.0", "postcss-scss": "^4.0.6", "sass": "^1.58.1", "sass-true": "^6.0.1", diff --git a/projects/igniteui-angular-i18n/.eslintrc.json b/projects/igniteui-angular-i18n/.eslintrc.json index 9aa69bb804d..34002a658d7 100644 --- a/projects/igniteui-angular-i18n/.eslintrc.json +++ b/projects/igniteui-angular-i18n/.eslintrc.json @@ -1,42 +1,42 @@ { - "extends": "../../.eslintrc.json", - "ignorePatterns": [ - "!**/*" - ], - "parserOptions": { - "project": [ - "projects/igniteui-angular-i18n/tsconfig.build.json" + "extends": "../../.eslintrc.json", + "ignorePatterns": [ + "!**/*" + ], + "parserOptions": { + "project": [ + "projects/igniteui-angular-i18n/tsconfig.build.json" + ] + }, + "plugins": [ + "@typescript-eslint" + ], + "rules": { + "@typescript-eslint/indent": "error", + "@typescript-eslint/naming-convention": [ + "error", + { + "trailingUnderscore": "allow", + "selector": "variable", + "modifiers": [ + "const" + ], + "format": [ + "PascalCase" ] - }, - "plugins": [ - "@typescript-eslint" + } ], - "rules": { - "@typescript-eslint/indent": "error", - "@typescript-eslint/naming-convention": [ - "error", - { - "trailingUnderscore" : "allow", - "selector": "variable", - "modifiers": [ - "const" - ], - "format": [ - "PascalCase" - ] - } - ], - "indent": "error", - "no-empty-function": "off", - "semi": "error", - "spaced-comment": [ - "error", - "always", - { - "markers": [ - "/" - ] - } + "indent": "error", + "no-empty-function": "off", + "semi": "error", + "spaced-comment": [ + "error", + "always", + { + "markers": [ + "/" ] - } + } + ] + } } diff --git a/projects/igniteui-angular-i18n/src/i18n/FR/grid-resources.ts b/projects/igniteui-angular-i18n/src/i18n/FR/grid-resources.ts index 3c962d6abc7..e25375fdb7d 100644 --- a/projects/igniteui-angular-i18n/src/i18n/FR/grid-resources.ts +++ b/projects/igniteui-angular-i18n/src/i18n/FR/grid-resources.ts @@ -165,7 +165,7 @@ const GridResourceStringsFR_: ExpandRequire = { igx_grid_max_length_validation_error: 'Veuillez sélectionner au maximum {0} caractères', igx_grid_email_validation_error: 'Une adresse e-mail valide doit être saisie', igx_grid_pattern_validation_error: 'La valeur entrée ne correspond pas au schéma requis', - igx_grid_pivot_no_aggregator: 'Aucun agrégateur valide trouvé pour {0}. Veuillez définir un « aggregatorName » ou un « aggregator » valide.' + igx_grid_pivot_no_aggregator: 'Aucun agrégateur valide trouvé pour {0}. Veuillez définir un « aggregatorName » ou un « aggregator » valide.' }; /** diff --git a/projects/igniteui-angular/.eslintrc.json b/projects/igniteui-angular/.eslintrc.json index b0c6e4e1cc6..69a5570767c 100644 --- a/projects/igniteui-angular/.eslintrc.json +++ b/projects/igniteui-angular/.eslintrc.json @@ -20,16 +20,24 @@ "error", { "type": "element", - "prefix": "igx", + "prefix": [ + "igx", + "igc" + ], "style": "kebab-case" } ], "@angular-eslint/directive-selector": [ "error", { - "type": "attribute", - "prefix": "igx", - "style": "camelCase" + "type": [ + "attribute", + "element" + ], + "prefix": [ + "igx", + "igc" + ] } ], "@angular-eslint/no-input-rename": "off", diff --git a/projects/igniteui-angular/migrations/common/UpdateChanges.ts b/projects/igniteui-angular/migrations/common/UpdateChanges.ts index 111402e9be3..1ad6fa66526 100644 --- a/projects/igniteui-angular/migrations/common/UpdateChanges.ts +++ b/projects/igniteui-angular/migrations/common/UpdateChanges.ts @@ -473,6 +473,7 @@ export class UpdateChanges { let fileContent = this.host.read(entryPath).toString(); let overwrite = false; const allowedStartCharacters = new RegExp('(\:|\,)\s?', 'g'); + // eslint-disable-next-line no-control-regex const allowedEndCharacters = new RegExp('[;),: \r\n]', 'g'); for (const change of this.themeChanges.changes) { if (change.type !== ThemeType.Variable) { @@ -532,7 +533,7 @@ export class UpdateChanges { /@use(\s+)('|")igniteui-angular\/lib\/core\/styles\/themes\/index\2\1as\1(\w+)/g ]; - var aliases = []; + const aliases = []; matchers.forEach(m => { const match = m.exec(fileContent); if (match) { @@ -667,7 +668,7 @@ export class UpdateChanges { this._initialTsConfig = originalContent; } } - }; + } private ensureTsConfigPath(): void { if (this.host.exists(this.tsconfigPath)) { @@ -675,7 +676,7 @@ export class UpdateChanges { } // attempt to find a main tsconfig from workspace: - const wsProject = this.workspace.projects[this.workspace.defaultProject] || this.workspace.projects[0]; + const wsProject = this.workspace.projects[0]; // technically could be per-project, but assuming there's at least one main tsconfig for IDE support const projectConfig = wsProject.architect?.build?.options['tsConfig']; @@ -693,7 +694,7 @@ export class UpdateChanges { if (!result.error && result.config.extends) { this.tsconfigPath = path.posix.join(path.posix.dirname(projectConfig), result.config.extends); } - }; + } private loadConfig(configJson: string) { const filePath = path.join(this.rootPath, 'changes', configJson); @@ -829,7 +830,7 @@ export class UpdateChanges { } private resolveWorkspaceProject(): WorkspaceProject | null { - let wsProject = this.workspace.projects[this.workspace.defaultProject] || this.workspace.projects[0]; + let wsProject = this.workspace.projects[0]; if (!wsProject) { const projectKeys = Object.keys(this.workspace.projects); if (!projectKeys.length) { diff --git a/projects/igniteui-angular/migrations/common/util.ts b/projects/igniteui-angular/migrations/common/util.ts index ffcfb5b444d..887ada36732 100644 --- a/projects/igniteui-angular/migrations/common/util.ts +++ b/projects/igniteui-angular/migrations/common/util.ts @@ -90,7 +90,9 @@ export const getPackageVersion = (pkg: string): string => { let version = null; try { version = require(path.posix.join(pkg, 'package.json'))?.version; - } catch { } + } catch { + return version; + } return version; }; @@ -269,7 +271,7 @@ class SerializerVisitor implements Visitor { return ` ${expansionCase.value} {${this._visitAll(expansionCase.expression)}}`; } - private _visitAll(nodes: Node[], join: string = ''): string { + private _visitAll(nodes: Node[], join = ''): string { if (nodes.length === 0) { return ''; } diff --git a/projects/igniteui-angular/migrations/migration-collection.json b/projects/igniteui-angular/migrations/migration-collection.json index 7b835db2020..107b1a52269 100644 --- a/projects/igniteui-angular/migrations/migration-collection.json +++ b/projects/igniteui-angular/migrations/migration-collection.json @@ -145,6 +145,11 @@ "version": "15.1.0", "description": "Updates Ignite UI for Angular from v15.0.x to v15.1.0", "factory": "./update-15_1_0" + }, + "migration-30": { + "version": "16.0.0", + "description": "Updates Ignite UI for Angular from v15.1.x to v16.0.0", + "factory": "./update-16_0_0" } } } diff --git a/projects/igniteui-angular/migrations/update-13_0_0/index.ts b/projects/igniteui-angular/migrations/update-13_0_0/index.ts index 9dbc57c92e5..89f487a9d96 100644 --- a/projects/igniteui-angular/migrations/update-13_0_0/index.ts +++ b/projects/igniteui-angular/migrations/update-13_0_0/index.ts @@ -80,7 +80,7 @@ export default (options: Options): Rule => } result += '>' - const toolbarTitle = !!toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-title'])[0] : null; + const toolbarTitle = toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-title'])[0] : null; const title = !toolbarTitle || attributes['toolbarTitle']?.value ? attributes['toolbarTitle'] : (((toolbarTitle as Element).children)[0] as Text); if (title && title.value) { result += `\n${title.value}` @@ -96,7 +96,7 @@ export default (options: Options): Rule => result += '\n'; } - const hiding = !!toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-hiding'])[0] : null; + const hiding = toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-hiding'])[0] : null; const showHiding = !hiding || attributes['columnHiding']?.value ? attributes['columnHiding'] : getAttribute(hiding as Element, ['*ngIf', '[*ngIf]'])[0]; if (hasHiding) { @@ -117,7 +117,7 @@ export default (options: Options): Rule => result += '>'; } - const pinning = !!toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-pinning'])[0] : null; + const pinning = toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-pinning'])[0] : null; const showPinning = !pinning || attributes['columnPinning']?.value ? attributes['columnPinning'] : getAttribute(pinning as Element, ['*ngIf', '[*ngIf]'])[0]; if (hasPinning) { result += `\n result += '>'; } - const exporting = !!toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-exporter'])[0] : null; + const exporting = toolbar ? findElementNodes([toolbar], ['igx-grid-toolbar-exporter'])[0] : null; const showExcelExporter = !exporting || attributes['exportExcel']?.value ? attributes['exportExcel'] : getAttribute(exporting as Element, ['exportExcel', '[exportExcel]'])[0]; const showCsvExporter = !exporting || attributes['exportCsv']?.value ? attributes['exportCsv'] : getAttribute(exporting as Element, ['exportCSV', '[exportCSV]'])[0]; diff --git a/projects/igniteui-angular/migrations/update-15_1_0/index.spec.ts b/projects/igniteui-angular/migrations/update-15_1_0/index.spec.ts index 45a7eac4916..2b347c09bb6 100644 --- a/projects/igniteui-angular/migrations/update-15_1_0/index.spec.ts +++ b/projects/igniteui-angular/migrations/update-15_1_0/index.spec.ts @@ -70,6 +70,56 @@ describe(`Update to ${version}`, () => { `); }); + it('should replace on-prefixed typescript outputs in carousel', async () => { + pending('set up tests for migrations through lang service'); + appTree.create( + '/testSrc/appPrefix/component/test.component.ts', + `import { Component, ViewChild } from '@angular/core'; + import { IgxCarouselComponent } from 'igniteui-angular'; + + @Component({ + selector: 'appPrefix-component', + template: '' + }) + export class TestComponent { + @ViewChild(IgxCarouselComponent) + public carousel: IgxCarouselComponent; + + contructor() { + this.carousel.onSlideChanged.subscribe((e) => {}); + this.carousel.onSlideAdded.subscribe((e) => {}); + this.carousel.onSlideRemoved.subscribe((e) => {}); + this.carousel.onCarouselPaused.subscribe((e) => {}); + this.carousel.onCarouselPlaying.subscribe((e) => {}); + } + } + `); + const tree = await schematicRunner.runSchematic(migrationName, { shouldInvokeLS: true }, appTree); + + const expectedContent = `import { Component, ViewChild } from '@angular/core'; + import { IgxCarouselComponent } from 'igniteui-angular'; + + @Component({ + selector: 'appPrefix-component', + templateUrl: './test.component.html', + styleUrls: ['./test.component.scss'] + }) + export class TestComponent { + @ViewChild(IgxCarouselComponent) + public carousel: IgxCarouselComponent; + + contructor() { + this.carousel.slideChanged.subscribe((e) => {}); + this.carousel.slideAdded.subscribe((e) => {}); + this.carousel.slideRemoved.subscribe((e) => {}); + this.carousel.carouselPaused.subscribe((e) => {}); + this.carousel.carouselPlaying.subscribe((e) => {}); + } + } + `; + expect(tree.readContent('/testSrc/appPrefix/component/test.component.ts')).toEqual(expectedContent); + }); + it('should replace on-prefixed outputs for displayDensity and onGroupingDone to groupingDone', async () => { appTree.create( `/testSrc/appPrefix/component/carousel.component.html`, diff --git a/projects/igniteui-angular/migrations/update-16_0_0/changes/classes.json b/projects/igniteui-angular/migrations/update-16_0_0/changes/classes.json new file mode 100644 index 00000000000..44cef9f1371 --- /dev/null +++ b/projects/igniteui-angular/migrations/update-16_0_0/changes/classes.json @@ -0,0 +1,13 @@ +{ + "$schema": "../../common/schema/class.schema.json", + "changes": [ + { + "name": "IgxProcessBarTextTemplateDirective", + "replaceWith": "IgxProgressBarTextTemplateDirective" + }, + { + "name": "IgxColumMaxLengthValidatorDirective", + "replaceWith": "IgxColumnMaxLengthValidatorDirective" + } + ] +} diff --git a/projects/igniteui-angular/migrations/update-16_0_0/index.spec.ts b/projects/igniteui-angular/migrations/update-16_0_0/index.spec.ts new file mode 100644 index 00000000000..e431fe6e46c --- /dev/null +++ b/projects/igniteui-angular/migrations/update-16_0_0/index.spec.ts @@ -0,0 +1,69 @@ +import * as path from 'path'; + +import { EmptyTree } from '@angular-devkit/schematics'; +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; + +const version = '16.0.0'; + +describe(`Update to ${version}`, () => { + let appTree: UnitTestTree; + const schematicRunner = new SchematicTestRunner('ig-migrate', path.join(__dirname, '../migration-collection.json')); + + const configJson = { + defaultProject: 'testProj', + projects: { + testProj: { + root: '/', + sourceRoot: '/testSrc' + } + }, + schematics: { + '@schematics/angular:component': { + prefix: 'appPrefix' + } + } + }; + + beforeEach(() => { + appTree = new UnitTestTree(new EmptyTree()); + appTree.create('/angular.json', JSON.stringify(configJson)); + }); + + const migrationName = 'migration-30'; + + it('Should replace IgxProcessBarTextTemplateDirective with IgxProgressBarTextTemplateDirective', async () => { + appTree.create( + '/testSrc/appPrefix/component/test.component.ts', + `import { Component, ViewChild } from '@angular/core'; + import { IgxProcessBarTextTemplateDirective } from 'igniteui-angular'; + + @Component({ + selector: 'test-component', + templateUrl: './test.component.html', + styleUrls: ['./test.component.scss'] + }) + export class TestComponent { + toolbar: IgxGridToolbarComponent; + @ViewChild(IgxProcessBarTextTemplateDirective) + public title: IgxProcessBarTextTemplateDirective; + } + `); + const tree = await schematicRunner.runSchematic(migrationName, { shouldInvokeLS: false }, appTree); + + const expectedContent = `import { Component, ViewChild } from '@angular/core'; + import { IgxProgressBarTextTemplateDirective } from 'igniteui-angular'; + + @Component({ + selector: 'test-component', + templateUrl: './test.component.html', + styleUrls: ['./test.component.scss'] + }) + export class TestComponent { + toolbar: IgxGridToolbarComponent; + @ViewChild(IgxProgressBarTextTemplateDirective) + public title: IgxProgressBarTextTemplateDirective; + } + `; + expect(tree.readContent('/testSrc/appPrefix/component/test.component.ts')).toEqual(expectedContent); + }); +}); diff --git a/projects/igniteui-angular/migrations/update-16_0_0/index.ts b/projects/igniteui-angular/migrations/update-16_0_0/index.ts new file mode 100644 index 00000000000..52cdbbcc724 --- /dev/null +++ b/projects/igniteui-angular/migrations/update-16_0_0/index.ts @@ -0,0 +1,14 @@ +import { + Rule, + SchematicContext, + Tree +} from '@angular-devkit/schematics'; +import { UpdateChanges } from '../common/UpdateChanges'; + +const version = '16.0.0'; + +export default (): Rule => async (host: Tree, context: SchematicContext) => { + context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`); + const update = new UpdateChanges(__dirname, host, context); + update.applyChanges(); +}; diff --git a/projects/igniteui-angular/package.json b/projects/igniteui-angular/package.json index f2b0b7e6445..5592b7e9b92 100644 --- a/projects/igniteui-angular/package.json +++ b/projects/igniteui-angular/package.json @@ -75,18 +75,18 @@ "tslib": "^2.3.0", "igniteui-trial-watermark": "^1.0.3", "lodash-es": "^4.17.21", - "uuid": "^8.3.0", - "igniteui-theming": "^1.4.1", + "uuid": "^9.0.0", + "igniteui-theming": "^1.4.2", "@igniteui/material-icons-extended": "^2.10.0" }, "peerDependencies": { - "@angular/common": "^15.0.0", - "@angular/core": "^15.0.0", - "@angular/animations": "^15.0.0", - "@angular/forms": "^15.0.0" + "@angular/common": "^16.0.0", + "@angular/core": "^16.0.0", + "@angular/animations": "^16.0.0", + "@angular/forms": "^16.0.0" }, "igxDevDependencies": { - "@igniteui/angular-schematics": "~15.1.1110" + "@igniteui/angular-schematics": "~16.0.1200-beta.0" }, "ng-update": { "migrations": "./migrations/migration-collection.json" diff --git a/projects/igniteui-angular/schematics/utils/dependency-handler.ts b/projects/igniteui-angular/schematics/utils/dependency-handler.ts index f94252df805..d31bdd5da8f 100644 --- a/projects/igniteui-angular/schematics/utils/dependency-handler.ts +++ b/projects/igniteui-angular/schematics/utils/dependency-handler.ts @@ -64,7 +64,7 @@ const getTargetedProjectOptions = (project: workspaces.ProjectDefinition, target }; export const getConfigFile = - (project: workspaces.ProjectDefinition, option: string, context: SchematicContext, configSection: string = 'build'): string => { + (project: workspaces.ProjectDefinition, option: string, context: SchematicContext, configSection = 'build'): string => { const options = getTargetedProjectOptions(project, configSection, context); if (!options) { context.logger.warn(`Could not find matching ${configSection} options in Angular workspace. ` + diff --git a/projects/igniteui-angular/src/lib/accordion/accordion.component.spec.ts b/projects/igniteui-angular/src/lib/accordion/accordion.component.spec.ts index 5fb6a915de1..62325238ec6 100644 --- a/projects/igniteui-angular/src/lib/accordion/accordion.component.spec.ts +++ b/projects/igniteui-angular/src/lib/accordion/accordion.component.spec.ts @@ -1,14 +1,14 @@ import { useAnimation } from '@angular/animations'; +import { NgIf } from '@angular/common'; import { Component, ViewChild } from '@angular/core'; import { waitForAsync, TestBed, fakeAsync, ComponentFixture, tick } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { slideInLeft, slideOutRight } from '../animations/slide'; -import { IgxExpansionPanelModule } from '../expansion-panel/expansion-panel.module'; +import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from '../expansion-panel/public_api'; import { configureTestSuite } from '../test-utils/configure-suite'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; import { IAccordionCancelableEventArgs, IAccordionEventArgs, IgxAccordionComponent } from './accordion.component'; -import { IgxAccordionModule } from './accordion.module'; const ACCORDION_CLASS = 'igx-accordion'; const PANEL_TAG = 'IGX-EXPANSION-PANEL'; @@ -21,12 +21,9 @@ describe('Rendering Tests', () => { beforeAll( waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxAccordionSampleTestComponent,], imports: [ NoopAnimationsModule, - IgxAccordionModule, - IgxExpansionPanelModule + IgxAccordionSampleTestComponent ] }).compileComponents(); }) @@ -340,74 +337,75 @@ describe('Rendering Tests', () => { @Component({ template: ` - - - - HTML5 - - - - - - First - - -
- Content1 -
-
-
- - - Second - - -
- Content2 -
-
-
-
-
-
- - - CSS3 - - -
- Cascading Style Sheets (CSS) is a style sheet language used for - describing the presentation of a document written in a markup language - like HTML -
-
-
- - - SASS/SCSS - - -
- Sass is a preprocessor scripting language that is interpreted or - compiled into Cascading Style Sheets (CSS). -
-
-
- - - Javascript - - -
- JavaScript is the world's most popular programming language. - JavaScript is the programming language of the Web. -
-
-
-
-
- -` + + + + HTML5 + + + + + + First + + +
+ Content1 +
+
+
+ + + Second + + +
+ Content2 +
+
+
+
+
+
+ + + CSS3 + + +
+ Cascading Style Sheets (CSS) is a style sheet language used for + describing the presentation of a document written in a markup language + like HTML +
+
+
+ + + SASS/SCSS + + +
+ Sass is a preprocessor scripting language that is interpreted or + compiled into Cascading Style Sheets (CSS). +
+
+
+ + + Javascript + + +
+ JavaScript is the world's most popular programming language. + JavaScript is the programming language of the Web. +
+
+
+
+
+ `, + standalone: true, + imports: [IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelBodyComponent, IgxExpansionPanelTitleDirective, NgIf] }) export class IgxAccordionSampleTestComponent { @ViewChild(IgxAccordionComponent) public accordion: IgxAccordionComponent; diff --git a/projects/igniteui-angular/src/lib/accordion/accordion.component.ts b/projects/igniteui-angular/src/lib/accordion/accordion.component.ts index a423e23ea1c..00c2d4ef3e6 100644 --- a/projects/igniteui-angular/src/lib/accordion/accordion.component.ts +++ b/projects/igniteui-angular/src/lib/accordion/accordion.component.ts @@ -47,7 +47,8 @@ let NEXT_ID = 0; */ @Component({ selector: 'igx-accordion', - templateUrl: 'accordion.component.html' + templateUrl: 'accordion.component.html', + standalone: true }) export class IgxAccordionComponent implements AfterContentInit, AfterViewInit, OnDestroy { /** diff --git a/projects/igniteui-angular/src/lib/accordion/accordion.module.ts b/projects/igniteui-angular/src/lib/accordion/accordion.module.ts index 4fc7cdf3105..75031c4c5d3 100644 --- a/projects/igniteui-angular/src/lib/accordion/accordion.module.ts +++ b/projects/igniteui-angular/src/lib/accordion/accordion.module.ts @@ -1,22 +1,16 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { IgxExpansionPanelModule } from '../expansion-panel/expansion-panel.module'; -import { IgxAccordionComponent } from './accordion.component'; +import { IGX_ACCORDION_DIRECTIVES } from './public_api'; /** * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ @NgModule({ - declarations: [ - IgxAccordionComponent - ], imports: [ - IgxExpansionPanelModule, - CommonModule, + ...IGX_ACCORDION_DIRECTIVES ], exports: [ - IgxAccordionComponent, - IgxExpansionPanelModule + ...IGX_ACCORDION_DIRECTIVES ] }) export class IgxAccordionModule { diff --git a/projects/igniteui-angular/src/lib/accordion/public_api.ts b/projects/igniteui-angular/src/lib/accordion/public_api.ts index f5dd0314407..43c76a82317 100644 --- a/projects/igniteui-angular/src/lib/accordion/public_api.ts +++ b/projects/igniteui-angular/src/lib/accordion/public_api.ts @@ -1,2 +1,10 @@ -export * from './accordion.module'; +import { IGX_EXPANSION_PANEL_DIRECTIVES } from '../expansion-panel/public_api'; +import { IgxAccordionComponent } from './accordion.component'; + export * from './accordion.component'; + +/* Accordion directives collection for ease-of-use import in standalone components scenario */ +export const IGX_ACCORDION_DIRECTIVES = [ + IgxAccordionComponent, + ...IGX_EXPANSION_PANEL_DIRECTIVES +] as const; diff --git a/projects/igniteui-angular/src/lib/action-strip/action-strip.component.spec.ts b/projects/igniteui-angular/src/lib/action-strip/action-strip.component.spec.ts index 5792814d441..a706db9663f 100644 --- a/projects/igniteui-angular/src/lib/action-strip/action-strip.component.spec.ts +++ b/projects/igniteui-angular/src/lib/action-strip/action-strip.component.spec.ts @@ -1,13 +1,11 @@ -import { IgxActionStripComponent } from './action-strip.component'; +import { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component'; import { Component, ViewChild, ElementRef, ViewContainerRef } from '@angular/core'; import { configureTestSuite } from '../test-utils/configure-suite'; -import { IgxIconModule } from '../icon/public_api'; import { TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { wait } from '../test-utils/ui-interactions.spec'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxActionStripModule } from './action-strip.module'; +import { IgxIconComponent } from '../icon/icon.component'; const ACTION_STRIP_CONTAINER_CSS = 'igx-action-strip__actions'; const DROP_DOWN_LIST = 'igx-drop-down__list'; @@ -21,17 +19,12 @@ describe('igxActionStrip', () => { configureTestSuite(() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxActionStripComponent, IgxActionStripTestingComponent, IgxActionStripMenuTestingComponent, IgxActionStripCombinedMenuTestingComponent - ], - imports: [ - NoopAnimationsModule, - IgxActionStripModule, - IgxIconModule, - IgxToggleModule ] }); }); @@ -184,17 +177,19 @@ describe('igxActionStrip', () => { @Component({ template: ` -
-
-

- Lorem ipsum dolor sit -

+
+
+

+ Lorem ipsum dolor sit +

+
+ + alarm +
- - alarm - -
-` + `, + standalone: true, + imports: [IgxActionStripComponent, IgxIconComponent] }) class IgxActionStripTestingComponent { @ViewChild('actionStrip', { read: IgxActionStripComponent, static: true }) @@ -230,7 +225,9 @@ class IgxActionStripTestingComponent { Download
- ` + `, + standalone: true, + imports: [IgxActionStripComponent, IgxActionStripMenuItemDirective] }) class IgxActionStripMenuTestingComponent { @ViewChild('actionStrip', { read: IgxActionStripComponent, static: true }) @@ -251,7 +248,9 @@ class IgxActionStripMenuTestingComponent { Download - ` + `, + standalone: true, + imports: [IgxActionStripComponent, IgxActionStripMenuItemDirective] }) class IgxActionStripCombinedMenuTestingComponent { @ViewChild('actionStrip', { read: IgxActionStripComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/action-strip/action-strip.component.ts b/projects/igniteui-angular/src/lib/action-strip/action-strip.component.ts index 155cdf3139e..f683726ebfa 100644 --- a/projects/igniteui-angular/src/lib/action-strip/action-strip.component.ts +++ b/projects/igniteui-angular/src/lib/action-strip/action-strip.component.ts @@ -18,12 +18,20 @@ import { import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { IActionStripResourceStrings } from '../core/i18n/action-strip-resources'; import { CurrentResourceStrings } from '../core/i18n/resources'; -import { IgxDropDownComponent } from '../drop-down/public_api'; +import { IgxDropDownComponent } from '../drop-down/drop-down.component'; import { CloseScrollStrategy, OverlaySettings } from '../services/public_api'; import { IgxGridActionsBaseDirective } from './grid-actions/grid-actions-base.directive'; +import { IgxDropDownItemComponent } from '../drop-down/drop-down-item.component'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxDropDownItemNavigationDirective } from '../drop-down/drop-down-navigation.directive'; +import { IgxToggleActionDirective } from '../directives/toggle/toggle.directive'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { NgIf, NgFor, NgTemplateOutlet } from '@angular/common'; @Directive({ - selector: '[igxActionStripMenuItem]' + selector: '[igxActionStripMenuItem]', + standalone: true }) export class IgxActionStripMenuItemDirective { constructor( @@ -54,7 +62,20 @@ export class IgxActionStripMenuItemDirective { */ @Component({ selector: 'igx-action-strip', - templateUrl: 'action-strip.component.html' + templateUrl: 'action-strip.component.html', + standalone: true, + imports: [ + NgIf, + NgFor, + NgTemplateOutlet, + IgxButtonDirective, + IgxRippleDirective, + IgxToggleActionDirective, + IgxDropDownItemNavigationDirective, + IgxIconComponent, + IgxDropDownComponent, + IgxDropDownItemComponent + ] }) export class IgxActionStripComponent extends DisplayDensityBase implements AfterContentInit, AfterViewInit { diff --git a/projects/igniteui-angular/src/lib/action-strip/action-strip.module.ts b/projects/igniteui-angular/src/lib/action-strip/action-strip.module.ts index 6755b3dd7d8..b9c71f752c3 100644 --- a/projects/igniteui-angular/src/lib/action-strip/action-strip.module.ts +++ b/projects/igniteui-angular/src/lib/action-strip/action-strip.module.ts @@ -1,36 +1,16 @@ import { NgModule } from '@angular/core'; -import { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component'; -import { IgxGridPinningActionsComponent } from './grid-actions/grid-pinning-actions.component'; -import { IgxGridEditingActionsComponent } from './grid-actions/grid-editing-actions.component'; -import { IgxGridActionsBaseDirective } from './grid-actions/grid-actions-base.directive'; -import { CommonModule } from '@angular/common'; -import { IgxDropDownModule } from '../drop-down/public_api'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxGridActionButtonComponent } from './grid-actions/grid-action-button.component'; +import { IGX_GRID_ACTION_STRIP_DIRECTIVES } from './public_api'; /** * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ @NgModule({ - declarations: [ - IgxActionStripComponent, - IgxActionStripMenuItemDirective, - IgxGridPinningActionsComponent, - IgxGridEditingActionsComponent, - IgxGridActionsBaseDirective, - IgxGridActionButtonComponent + imports: [ + ...IGX_GRID_ACTION_STRIP_DIRECTIVES ], exports: [ - IgxActionStripComponent, - IgxActionStripMenuItemDirective, - IgxGridPinningActionsComponent, - IgxGridEditingActionsComponent, - IgxGridActionsBaseDirective, - IgxGridActionButtonComponent + ...IGX_GRID_ACTION_STRIP_DIRECTIVES ], - imports: [CommonModule, IgxDropDownModule, IgxToggleModule, IgxButtonModule, IgxIconModule, IgxRippleModule] }) export class IgxActionStripModule { } diff --git a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-action-button.component.ts b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-action-button.component.ts index e64ceb686ae..498e8079818 100644 --- a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-action-button.component.ts +++ b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-action-button.component.ts @@ -1,7 +1,13 @@ import { Component, Input, TemplateRef, ViewChild, Output, EventEmitter, ElementRef } from '@angular/core'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxRippleDirective } from '../../directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../directives/button/button.directive'; +import { NgIf } from '@angular/common'; @Component({ selector: 'igx-grid-action-button', - templateUrl: 'grid-action-button.component.html' + templateUrl: 'grid-action-button.component.html', + standalone: true, + imports: [NgIf, IgxButtonDirective, IgxRippleDirective, IgxIconComponent] }) export class IgxGridActionButtonComponent { diff --git a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-actions-base.directive.ts b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-actions-base.directive.ts index 2f8b0f48e07..4558b98fac5 100644 --- a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-actions-base.directive.ts +++ b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-actions-base.directive.ts @@ -5,7 +5,8 @@ import { IgxRowDirective } from '../../grids/row.directive'; import { IgxIconService } from '../../icon/icon.service'; @Directive({ - selector: '[igxGridActionsBase]' + selector: '[igxGridActionsBase]', + standalone: true }) export class IgxGridActionsBaseDirective implements AfterViewInit { @ViewChildren(IgxGridActionButtonComponent) diff --git a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.spec.ts b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.spec.ts index 36d18c785ac..c301a42f5ad 100644 --- a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.spec.ts +++ b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.spec.ts @@ -1,21 +1,21 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { IgxActionStripComponent } from '../action-strip.component'; -import { configureTestSuite } from '../../test-utils/configure-suite'; import { TestBed, waitForAsync } from '@angular/core/testing'; -import { IgxIconModule } from '../../icon/public_api'; -import { IgxGridModule, IgxGridComponent } from '../../grids/grid/public_api'; -import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { By } from '@angular/platform-browser'; -import { IgxActionStripModule } from '../action-strip.module'; +import { NgFor } from '@angular/common'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { configureTestSuite } from '../../test-utils/configure-suite'; +import { IgxGridComponent } from '../../grids/grid/public_api'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { IgxHierarchicalGridActionStripComponent } from '../../test-utils/hierarchical-grid-components.spec'; -import { - IgxHierarchicalGridComponent, - IgxHierarchicalGridModule -} from '../../grids/hierarchical-grid/public_api'; +import { IgxHierarchicalGridComponent } from '../../grids/hierarchical-grid/public_api'; import { IgxHierarchicalRowComponent } from '../../grids/hierarchical-grid/hierarchical-row.component'; -import { IgxTreeGridComponent, IgxTreeGridModule } from '../../grids/tree-grid/public_api'; +import { IgxTreeGridComponent } from '../../grids/tree-grid/public_api'; import { IgxTreeGridEditActionsComponent } from '../../test-utils/tree-grid-components.spec'; +import { IgxGridEditingActionsComponent } from './grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from './grid-pinning-actions.component'; +import { IgxActionStripComponent } from '../action-strip.component'; +import { IgxColumnComponent } from '../../grids/public_api'; describe('igxGridEditingActions #grid ', () => { let fixture; @@ -24,22 +24,15 @@ describe('igxGridEditingActions #grid ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, + IgxHierarchicalGridActionStripComponent, + IgxTreeGridEditActionsComponent, IgxActionStripTestingComponent, IgxActionStripPinEditComponent, IgxActionStripEditMenuComponent, - IgxHierarchicalGridActionStripComponent, - IgxTreeGridEditActionsComponent, IgxActionStripOneRowComponent, IgxActionStripMenuOneRowComponent - ], - imports: [ - NoopAnimationsModule, - IgxActionStripModule, - IgxGridModule, - IgxHierarchicalGridModule, - IgxIconModule, - IgxTreeGridModule ] }).compileComponents(); })); @@ -169,10 +162,10 @@ describe('igxGridEditingActions #grid ', () => { actionStrip.menu.open(); fixture.detectChanges(); - + UIInteractions.simulateMouseEvent('mouseleave', rowElem.element.nativeElement, 0, 200); fixture.detectChanges(); - + expect(actionStrip.hidden).toBeFalse(); }); }); @@ -256,11 +249,11 @@ describe('igxGridEditingActions #grid ', () => { fixture.detectChanges(); actionStrip = fixture.componentInstance.actionStrip; grid = fixture.componentInstance.grid; - + const row = grid.getRowByIndex(0); row.pin(); const rowElem = grid.pinnedRows[0]; - + actionStrip.show(row); fixture.detectChanges(); @@ -390,17 +383,19 @@ describe('igxGridEditingActions #grid ', () => { @Component({ template: ` - - - - - - - - -` + + + + + + + + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent, NgFor] }) class IgxActionStripTestingComponent implements OnInit { @ViewChild('actionStrip', { read: IgxActionStripComponent, static: true }) @@ -409,9 +404,9 @@ class IgxActionStripTestingComponent implements OnInit { @ViewChild('grid', { read: IgxGridComponent, static: true }) public grid: IgxGridComponent; - private data: any[]; - private dataOneRow: any[]; - private columns: any[]; + public data: any[]; + public dataOneRow: any[]; + public columns: any[]; public ngOnInit() { @@ -468,70 +463,78 @@ class IgxActionStripTestingComponent implements OnInit { @Component({ template: ` - - - - - - - - - -` + + + + + + + + + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, IgxGridEditingActionsComponent, NgFor] }) class IgxActionStripPinEditComponent extends IgxActionStripTestingComponent { } @Component({ template: ` - - - - - - - - -` + + + + + + + + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent, NgFor] }) class IgxActionStripEditMenuComponent extends IgxActionStripTestingComponent { } @Component({ template: ` - - - - - - - - - -` + + + + + + + + + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent, IgxGridPinningActionsComponent, NgFor] }) class IgxActionStripOneRowComponent extends IgxActionStripTestingComponent { } @Component({ template: ` - - - - - - - - -` + + + + + + + + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent, NgFor] }) class IgxActionStripMenuOneRowComponent extends IgxActionStripTestingComponent { } diff --git a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.ts b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.ts index 70a8575b623..e2b185a476e 100644 --- a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.ts +++ b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component.ts @@ -2,11 +2,15 @@ import { Component, HostBinding, Input } from '@angular/core'; import { IgxGridActionsBaseDirective } from './grid-actions-base.directive'; import { showMessage } from '../../core/utils'; import { addRow, addChild } from '@igniteui/material-icons-extended'; +import { IgxGridActionButtonComponent } from './grid-action-button.component'; +import { NgIf } from '@angular/common'; @Component({ selector: 'igx-grid-editing-actions', templateUrl: 'grid-editing-actions.component.html', - providers: [{ provide: IgxGridActionsBaseDirective, useExisting: IgxGridEditingActionsComponent }] + providers: [{ provide: IgxGridActionsBaseDirective, useExisting: IgxGridEditingActionsComponent }], + standalone: true, + imports: [NgIf, IgxGridActionButtonComponent] }) export class IgxGridEditingActionsComponent extends IgxGridActionsBaseDirective { diff --git a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.spec.ts b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.spec.ts index b3544ce7125..4b6405520a2 100644 --- a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.spec.ts +++ b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.spec.ts @@ -2,12 +2,13 @@ import { Component, ViewChild, OnInit } from '@angular/core'; import { IgxActionStripComponent } from '../action-strip.component'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { TestBed, waitForAsync } from '@angular/core/testing'; -import { IgxIconModule } from '../../icon/public_api'; -import { IgxGridModule, IgxGridComponent } from '../../grids/grid/public_api'; +import { IgxGridComponent } from '../../grids/grid/public_api'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { By } from '@angular/platform-browser'; -import { IgxActionStripModule } from '../action-strip.module'; import { wait } from '../../test-utils/ui-interactions.spec'; +import { IgxGridPinningActionsComponent } from './grid-pinning-actions.component'; +import { NgFor } from '@angular/common'; +import { IgxColumnComponent } from '../../grids/public_api'; describe('igxGridPinningActions #grid ', () => { @@ -17,15 +18,10 @@ describe('igxGridPinningActions #grid ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxActionStripTestingComponent, - IgxActionStripPinMenuComponent - ], imports: [ NoopAnimationsModule, - IgxActionStripModule, - IgxGridModule, - IgxIconModule + IgxActionStripTestingComponent, + IgxActionStripPinMenuComponent ] }).compileComponents(); })); @@ -105,17 +101,19 @@ describe('igxGridPinningActions #grid ', () => { @Component({ template: ` - - - - - - - - -` + + + + + + + + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, NgFor] }) class IgxActionStripTestingComponent implements OnInit { @ViewChild('actionStrip', { read: IgxActionStripComponent, static: true }) @@ -179,16 +177,18 @@ class IgxActionStripTestingComponent implements OnInit { @Component({ template: ` - - - - - - - - ` + [rowEditable]="true" [primaryKey]="'ID'"> + + + + + + +
+ `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, NgFor] }) class IgxActionStripPinMenuComponent extends IgxActionStripTestingComponent { } diff --git a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.ts b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.ts index b0fac019b2d..2da0261f8fa 100644 --- a/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.ts +++ b/projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component.ts @@ -1,10 +1,14 @@ import { Component, HostBinding } from '@angular/core'; import { IgxGridActionsBaseDirective } from './grid-actions-base.directive'; import { pinLeft, unpinLeft, jumpDown, jumpUp } from '@igniteui/material-icons-extended'; +import { IgxGridActionButtonComponent } from './grid-action-button.component'; +import { NgIf } from '@angular/common'; @Component({ selector: 'igx-grid-pinning-actions', templateUrl: 'grid-pinning-actions.component.html', - providers: [{ provide: IgxGridActionsBaseDirective, useExisting: IgxGridPinningActionsComponent }] + providers: [{ provide: IgxGridActionsBaseDirective, useExisting: IgxGridPinningActionsComponent }], + standalone: true, + imports: [NgIf, IgxGridActionButtonComponent] }) export class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective { diff --git a/projects/igniteui-angular/src/lib/action-strip/public_api.ts b/projects/igniteui-angular/src/lib/action-strip/public_api.ts index db72123d9be..38e194967d7 100644 --- a/projects/igniteui-angular/src/lib/action-strip/public_api.ts +++ b/projects/igniteui-angular/src/lib/action-strip/public_api.ts @@ -1,6 +1,26 @@ +import { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component'; +import { IgxGridActionButtonComponent } from './grid-actions/grid-action-button.component'; +import { IgxGridActionsBaseDirective } from './grid-actions/grid-actions-base.directive'; +import { IgxGridEditingActionsComponent } from './grid-actions/grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from './grid-actions/grid-pinning-actions.component'; + export { IgxGridActionsBaseDirective } from './grid-actions/grid-actions-base.directive'; export { IgxGridEditingActionsComponent } from './grid-actions/grid-editing-actions.component'; export { IgxGridPinningActionsComponent } from './grid-actions/grid-pinning-actions.component'; export { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component'; export { IgxGridActionButtonComponent } from './grid-actions/grid-action-button.component'; -export * from './action-strip.module'; + +/* Action-strip outside of grid directives collection for ease-of-use import in standalone components scenario */ +export const IGX_ACTION_STRIP_DIRECTIVES = [ + IgxActionStripComponent, + IgxActionStripMenuItemDirective +] as const; + +/* Action-strip in grid directives collection for ease-of-use import in standalone components scenario */ +export const IGX_GRID_ACTION_STRIP_DIRECTIVES = [ + ...IGX_ACTION_STRIP_DIRECTIVES, + IgxGridPinningActionsComponent, + IgxGridEditingActionsComponent, + IgxGridActionsBaseDirective, + IgxGridActionButtonComponent +] as const; diff --git a/projects/igniteui-angular/src/lib/animations/easings.js b/projects/igniteui-angular/src/lib/animations/easings.js deleted file mode 100644 index 3fb3112d49c..00000000000 --- a/projects/igniteui-angular/src/lib/animations/easings.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var EaseIn; -(function (EaseIn) { - EaseIn[EaseIn["quad"] = "cubic-bezier(0.550, 0.085, 0.680, 0.530)"] = "quad"; - EaseIn[EaseIn["cubic"] = "cubic-bezier(0.550, 0.055, 0.675, 0.190)"] = "cubic"; - EaseIn[EaseIn["quart"] = "cubic-bezier(0.895, 0.030, 0.685, 0.220)"] = "quart"; - EaseIn[EaseIn["quint"] = "cubic-bezier(0.755, 0.050, 0.855, 0.060)"] = "quint"; - EaseIn[EaseIn["sine"] = "cubic-bezier(0.470, 0.000, 0.745, 0.715)"] = "sine"; - EaseIn[EaseIn["expo"] = "cubic-bezier(0.950, 0.050, 0.795, 0.035)"] = "expo"; - EaseIn[EaseIn["circ"] = "cubic-bezier(0.600, 0.040, 0.980, 0.335)"] = "circ"; - EaseIn[EaseIn["back"] = "cubic-bezier(0.600, -0.280, 0.735, 0.045)"] = "back"; -})(EaseIn || (EaseIn = {})); -exports.EaseIn = EaseIn; -var EaseOut; -(function (EaseOut) { - EaseOut[EaseOut["quad"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)"] = "quad"; - EaseOut[EaseOut["cubic"] = "cubic-bezier(0.215, 0.610, 0.355, 1.000)"] = "cubic"; - EaseOut[EaseOut["quart"] = "cubic-bezier(0.165, 0.840, 0.440, 1.000)"] = "quart"; - EaseOut[EaseOut["quint"] = "cubic-bezier(0.230, 1.000, 0.320, 1.000)"] = "quint"; - EaseOut[EaseOut["sine"] = "cubic-bezier(0.390, 0.575, 0.565, 1.000)"] = "sine"; - EaseOut[EaseOut["expo"] = "cubic-bezier(0.190, 1.000, 0.220, 1.000)"] = "expo"; - EaseOut[EaseOut["circ"] = "cubic-bezier(0.075, 0.820, 0.165, 1.000)"] = "circ"; - EaseOut[EaseOut["back"] = "cubic-bezier(0.175, 0.885, 0.320, 1.275)"] = "back"; -})(EaseOut || (EaseOut = {})); -exports.EaseOut = EaseOut; -var EaseInOut; -(function (EaseInOut) { - EaseInOut[EaseInOut["quad"] = "cubic-bezier(0.455, 0.030, 0.515, 0.955)"] = "quad"; - EaseInOut[EaseInOut["cubic"] = "cubic-bezier(0.645, 0.045, 0.355, 1.000)"] = "cubic"; - EaseInOut[EaseInOut["quart"] = "cubic-bezier(0.770, 0.000, 0.175, 1.000)"] = "quart"; - EaseInOut[EaseInOut["quint"] = "cubic-bezier(0.860, 0.000, 0.070, 1.000)"] = "quint"; - EaseInOut[EaseInOut["sine"] = "cubic-bezier(0.445, 0.050, 0.550, 0.950)"] = "sine"; - EaseInOut[EaseInOut["expo"] = "cubic-bezier(1.000, 0.000, 0.000, 1.000)"] = "expo"; - EaseInOut[EaseInOut["circ"] = "cubic-bezier(0.785, 0.135, 0.150, 0.860)"] = "circ"; - EaseInOut[EaseInOut["back"] = "cubic-bezier(0.680, -0.550, 0.265, 1.550)"] = "back"; -})(EaseInOut || (EaseInOut = {})); -exports.EaseInOut = EaseInOut; - -//# sourceMappingURL=easings.js.map diff --git a/projects/igniteui-angular/src/lib/animations/fade/index.js b/projects/igniteui-angular/src/lib/animations/fade/index.js deleted file mode 100644 index 302e735181a..00000000000 --- a/projects/igniteui-angular/src/lib/animations/fade/index.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var easings_1 = require("../easings"); -var base = [ - animations_1.style({ - opacity: "{{startOpacity}}" - }), - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.style({ - opacity: "{{endOpacity}}" - })) -]; -var baseParams = { - delay: "0s", - duration: "350ms", - easing: easings_1.EaseOut.sine, - endOpacity: 1, - startOpacity: 0 -}; -var fadeIn = animations_1.animation(base, { - params: __assign({}, baseParams) -}); -exports.fadeIn = fadeIn; -var fadeOut = animations_1.animation(base, { - params: __assign({}, baseParams, { endOpacity: 0, startOpacity: 1 }) -}); -exports.fadeOut = fadeOut; - -//# sourceMappingURL=index.js.map diff --git a/projects/igniteui-angular/src/lib/animations/flip/index.js b/projects/igniteui-angular/src/lib/animations/flip/index.js deleted file mode 100644 index e120f7f0b64..00000000000 --- a/projects/igniteui-angular/src/lib/animations/flip/index.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var easings_1 = require("../easings"); -var baseRecipe = [ - animations_1.style({ - backfaceVisibility: "hidden", - transformStyle: "preserve-3d" - }), - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.keyframes([ - animations_1.style({ - offset: 0, - transform: "translateZ({{startDistance}})\n rotate3d({{rotateX}}, {{rotateY}}, {{rotateZ}}, {{startAngle}}deg)" - }), - animations_1.style({ - offset: 1, - transform: "translateZ({{endDistance}})\n rotate3d({{rotateX}}, {{rotateY}}, {{rotateZ}}, {{endAngle}}deg)" - }) - ])) -]; -var baseParams = { - delay: "0s", - duration: "600ms", - easing: easings_1.EaseOut.quad, - endAngle: 180, - endDistance: "0px", - rotateX: 1, - rotateY: 0, - rotateZ: 0, - startAngle: 0, - startDistance: "0px" -}; -var flipTop = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams) -}); -exports.flipTop = flipTop; -var flipBottom = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { endAngle: -180 }) -}); -exports.flipBottom = flipBottom; -var flipLeft = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { rotateX: 0, rotateY: 1 }) -}); -exports.flipLeft = flipLeft; -var flipRight = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { endAngle: -180, rotateX: 0, rotateY: 1 }) -}); -exports.flipRight = flipRight; -var flipHorFwd = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { endDistance: "170px" }) -}); -exports.flipHorFwd = flipHorFwd; -var flipHorBck = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { endDistance: "-170px" }) -}); -exports.flipHorBck = flipHorBck; -var flipVerFwd = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { endDistance: "170px", rotateX: 0, rotateY: 1 }) -}); -exports.flipVerFwd = flipVerFwd; -var flipVerBck = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { endDistance: "-170px", rotateX: 0, rotateY: 1 }) -}); -exports.flipVerBck = flipVerBck; - -//# sourceMappingURL=index.js.map diff --git a/projects/igniteui-angular/src/lib/animations/main.js b/projects/igniteui-angular/src/lib/animations/main.js deleted file mode 100644 index adae36f0b64..00000000000 --- a/projects/igniteui-angular/src/lib/animations/main.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(require("./fade/index")); -__export(require("./flip/index")); -__export(require("./rotate/index")); -__export(require("./misc/index")); -__export(require("./scale/index")); -__export(require("./slide/index")); -__export(require("./swing/index")); - -//# sourceMappingURL=main.js.map diff --git a/projects/igniteui-angular/src/lib/animations/misc/index.js b/projects/igniteui-angular/src/lib/animations/misc/index.js deleted file mode 100644 index 0c9305c3bb9..00000000000 --- a/projects/igniteui-angular/src/lib/animations/misc/index.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(require("./shake")); -__export(require("./pulsate")); - -//# sourceMappingURL=index.js.map diff --git a/projects/igniteui-angular/src/lib/animations/misc/pulsate.js b/projects/igniteui-angular/src/lib/animations/misc/pulsate.js deleted file mode 100644 index a36a2120d1b..00000000000 --- a/projects/igniteui-angular/src/lib/animations/misc/pulsate.js +++ /dev/null @@ -1,113 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var heartbeatBase = [ - animations_1.style({ - animationTimingFunction: "ease-out", - transform: "scale(1)", - transformOrigin: "center center" - }), - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.keyframes([ - animations_1.style({ - animationTimingFunction: "ease-in", - offset: 0.1, - transform: "scale(0.91)" - }), - animations_1.style({ - animationTimingFunction: "ease-out", - offset: 0.17, - transform: "scale(0.98)" - }), - animations_1.style({ - animationTimingFunction: "ease-in", - offset: 0.33, - transform: "scale(0.87)" - }), - animations_1.style({ - animationTimingFunction: "ease-out", - offset: 0.45, - transform: "scale(1)" - }) - ])) -]; -var heartbeatParams = { - delay: "0s", - duration: "1.5s", - easing: "ease-in-out" -}; -var pulsateBase = [ - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.keyframes([ - animations_1.style({ - offset: 0, - transform: "scale({{fromScale}})" - }), - animations_1.style({ - offset: 0.5, - transform: "scale({{toScale}})" - }), - animations_1.style({ - offset: 1, - transform: "scale({{fromScale}})" - }) - ])) -]; -var pulsateParams = { - delay: "0s", - duration: ".5s", - easing: "ease-in-out", - fromScale: 1, - toScale: 1.1 -}; -var blinkBase = [ - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.keyframes([ - animations_1.style({ - offset: 0, - opacity: .8, - transform: "scale({{fromScale}})" - }), - animations_1.style({ - offset: 0.8, - opacity: 0, - transform: "scale({{midScale}})" - }), - animations_1.style({ - offset: 1, - opacity: 0, - transform: "scale({{toScale}})" - }) - ])) -]; -var blinkParams = { - delay: "0s", - duration: ".8s", - easing: "ease-in-out", - fromScale: .2, - midScale: 1.2, - toScale: 2.2 -}; -var pulsateFwd = animations_1.animation(pulsateBase, { - params: __assign({}, pulsateParams) -}); -exports.pulsateFwd = pulsateFwd; -var pulsateBck = animations_1.animation(pulsateBase, { - params: __assign({}, pulsateParams, { toScale: .9 }) -}); -exports.pulsateBck = pulsateBck; -var heartbeat = animations_1.animation(heartbeatBase, { - params: __assign({}, heartbeatParams) -}); -exports.heartbeat = heartbeat; -var blink = animations_1.animation(blinkBase, { - params: __assign({}, blinkParams) -}); -exports.blink = blink; - -//# sourceMappingURL=pulsate.js.map diff --git a/projects/igniteui-angular/src/lib/animations/misc/shake.js b/projects/igniteui-angular/src/lib/animations/misc/shake.js deleted file mode 100644 index 20de80d7617..00000000000 --- a/projects/igniteui-angular/src/lib/animations/misc/shake.js +++ /dev/null @@ -1,120 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var easings_1 = require("../easings"); -var baseRecipe = [ - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.keyframes([ - animations_1.style({ - offset: 0, - transform: "rotate(0deg) translate{{direction}}(0)", - transformOrigin: "{{xPos}} {{yPos}}" - }), - animations_1.style({ - offset: 0.1, - transform: "rotate({{endAngle}}deg) translate{{direction}}(-{{startDistance}})" - }), - animations_1.style({ - offset: 0.2, - transform: "rotate(-{{startAngle}}deg) translate{{direction}}({{startDistance}})" - }), - animations_1.style({ - offset: 0.3, - transform: "rotate({{startAngle}}deg) translate{{direction}}(-{{startDistance}})" - }), - animations_1.style({ - offset: 0.4, - transform: "rotate(-{{startAngle}}deg) translate{{direction}}({{startDistance}})" - }), - animations_1.style({ - offset: 0.5, - transform: "rotate({{startAngle}}deg) translate{{direction}}(-{{startDistance}})" - }), - animations_1.style({ - offset: 0.6, - transform: "rotate(-{{startAngle}}deg) translate{{direction}}({{startDistance}})" - }), - animations_1.style({ - offset: 0.7, - transform: "rotate({{startAngle}}deg) translate{{direction}}(-{{startDistance}})" - }), - animations_1.style({ - offset: 0.8, - transform: "rotate(-{{endAngle}}deg) translate{{direction}}({{endDistance}})" - }), - animations_1.style({ - offset: 0.9, - transform: "rotate({{endAngle}}deg) translate{{direction}}(-{{endDistance}})" - }), - animations_1.style({ - offset: 1, - transform: "rotate(0deg) translate{{direction}}(0)", - transformOrigin: "{{xPos}} {{yPos}}" - }) - ])) -]; -var baseParams = { - delay: "0s", - direction: "X", - duration: "800ms", - easing: easings_1.EaseInOut.quad, - endAngle: 0, - endDistance: "8px", - startAngle: 0, - startDistance: "10px", - xPos: "center", - yPos: "center" -}; -var shakeHor = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "X" }) -}); -exports.shakeHor = shakeHor; -var shakeVer = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y" }) -}); -exports.shakeVer = shakeVer; -var shakeTop = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", yPos: "top" }) -}); -exports.shakeTop = shakeTop; -var shakeBottom = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", yPos: "bottom" }) -}); -exports.shakeBottom = shakeBottom; -var shakeRight = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", xPos: "right", yPos: "center" }) -}); -exports.shakeRight = shakeRight; -var shakeLeft = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", xPos: "left", yPos: "center" }) -}); -exports.shakeLeft = shakeLeft; -var shakeCenter = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 8, endDistance: "0", startAngle: 10, startDistance: "0", xPos: "center", yPos: "center" }) -}); -exports.shakeCenter = shakeCenter; -var shakeTr = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", xPos: "right", yPos: "top" }) -}); -exports.shakeTr = shakeTr; -var shakeBr = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", xPos: "right", yPos: "bottom" }) -}); -exports.shakeBr = shakeBr; -var shakeBl = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", xPos: "left", yPos: "bottom" }) -}); -exports.shakeBl = shakeBl; -var shakeTl = animations_1.animation(baseRecipe, { - params: __assign({}, baseParams, { direction: "Y", endAngle: 2, endDistance: "0", startAngle: 4, startDistance: "0", xPos: "left", yPos: "top" }) -}); -exports.shakeTl = shakeTl; - -//# sourceMappingURL=shake.js.map diff --git a/projects/igniteui-angular/src/lib/animations/rotate/index.js b/projects/igniteui-angular/src/lib/animations/rotate/index.js deleted file mode 100644 index d89ee8e38ea..00000000000 --- a/projects/igniteui-angular/src/lib/animations/rotate/index.js +++ /dev/null @@ -1,146 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var easings_1 = require("../easings"); -var baseRecipe = [ - animations_1.style({ - opacity: "{{startOpacity}}", - transform: "rotate3d({{rotateX}},{{rotateY}},{{rotateZ}},{{startAngle}}deg)", - transformOrigin: "{{xPos}} {{yPos}}" - }), - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.style({ - offset: 0, - opacity: "{{endOpacity}}", - transform: "rotate3d({{rotateX}},{{rotateY}},{{rotateZ}},{{endAngle}}deg)", - transformOrigin: "{{xPos}} {{yPos}}" - })) -]; -var baseInParams = { - delay: "0s", - duration: "600ms", - easing: easings_1.EaseOut.quad, - endAngle: 0, - endOpacity: 1, - rotateX: 0, - rotateY: 0, - rotateZ: 1, - startAngle: -360, - startOpacity: 0, - xPos: "center", - yPos: "center" -}; -var baseOutParams = __assign({}, baseInParams, { easing: easings_1.EaseIn.quad, endOpacity: 0, startOpacity: 1 }); -var rotateInCenter = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams) -}); -exports.rotateInCenter = rotateInCenter; -var rotateOutCenter = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams) -}); -exports.rotateOutCenter = rotateOutCenter; -var rotateInTop = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "top" }) -}); -exports.rotateInTop = rotateInTop; -var rotateOutTop = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "top" }) -}); -exports.rotateOutTop = rotateOutTop; -var rotateInRight = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "right" }) -}); -exports.rotateInRight = rotateInRight; -var rotateOutRight = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "right" }) -}); -exports.rotateOutRight = rotateOutRight; -var rotateInBottom = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "bottom" }) -}); -exports.rotateInBottom = rotateInBottom; -var rotateOutBottom = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "bottom" }) -}); -exports.rotateOutBottom = rotateOutBottom; -var rotateInLeft = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "left" }) -}); -exports.rotateInLeft = rotateInLeft; -var rotateOutLeft = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "left" }) -}); -exports.rotateOutLeft = rotateOutLeft; -var rotateInTr = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "right", yPos: "top" }) -}); -exports.rotateInTr = rotateInTr; -var rotateOutTr = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "right", yPos: "top" }) -}); -exports.rotateOutTr = rotateOutTr; -var rotateInBr = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "right", yPos: "bottom" }) -}); -exports.rotateInBr = rotateInBr; -var rotateOutBr = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "right", yPos: "bottom" }) -}); -exports.rotateOutBr = rotateOutBr; -var rotateInBl = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "left", yPos: "bottom" }) -}); -exports.rotateInBl = rotateInBl; -var rotateOutBl = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "left", yPos: "bottom" }) -}); -exports.rotateOutBl = rotateOutBl; -var rotateInTl = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { xPos: "left", yPos: "top" }) -}); -exports.rotateInTl = rotateInTl; -var rotateOutTl = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { xPos: "left", yPos: "top" }) -}); -exports.rotateOutTl = rotateOutTl; -var rotateInDiagonal1 = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { rotateX: 1, rotateY: 1, rotateZ: 0 }) -}); -exports.rotateInDiagonal1 = rotateInDiagonal1; -var rotateOutDiagonal1 = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { rotateX: 1, rotateY: 1, rotateZ: 0 }) -}); -exports.rotateOutDiagonal1 = rotateOutDiagonal1; -var rotateInDiagonal2 = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { rotateX: -1, rotateY: 1, rotateZ: 0 }) -}); -exports.rotateInDiagonal2 = rotateInDiagonal2; -var rotateOutDiagonal2 = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { rotateX: -1, rotateY: 1, rotateZ: 0 }) -}); -exports.rotateOutDiagonal2 = rotateOutDiagonal2; -var rotateInHor = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { rotateX: 0, rotateY: 1, rotateZ: 0 }) -}); -exports.rotateInHor = rotateInHor; -var rotateOutHor = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { rotateX: 0, rotateY: 1, rotateZ: 0 }) -}); -exports.rotateOutHor = rotateOutHor; -var rotateInVer = animations_1.animation(baseRecipe, { - params: __assign({}, baseInParams, { rotateX: 1, rotateY: 0, rotateZ: 0 }) -}); -exports.rotateInVer = rotateInVer; -var rotateOutVer = animations_1.animation(baseRecipe, { - params: __assign({}, baseOutParams, { rotateX: 1, rotateY: 0, rotateZ: 0 }) -}); -exports.rotateOutVer = rotateOutVer; - -//# sourceMappingURL=index.js.map diff --git a/projects/igniteui-angular/src/lib/animations/scale/index.js b/projects/igniteui-angular/src/lib/animations/scale/index.js deleted file mode 100644 index 718ba0e7f59..00000000000 --- a/projects/igniteui-angular/src/lib/animations/scale/index.js +++ /dev/null @@ -1,155 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var easings_1 = require("../easings"); -var base = [ - animations_1.style({ - opacity: "{{startOpacity}}", - transform: "scale{{direction}}({{fromScale}})", - transformOrigin: "{{xPos}} {{yPos}}" - }), - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.style({ - opacity: "{{endOpacity}}", - transform: "scale{{direction}}({{toScale}})", - transformOrigin: "{{xPos}} {{yPos}}" - })) -]; -var baseInParams = { - delay: "0s", - direction: "", - duration: "350ms", - easing: easings_1.EaseOut.quad, - endOpacity: 1, - fromScale: .5, - startOpacity: 0, - toScale: 1, - xPos: "50%", - yPos: "50%" -}; -var baseOutParams = __assign({}, baseInParams, { easing: easings_1.EaseOut.sine, endOpacity: 0, fromScale: 1, startOpacity: 1, toScale: .5 }); -var scaleInCenter = animations_1.animation(base, { params: baseInParams }); -exports.scaleInCenter = scaleInCenter; -var scaleInBl = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "0", yPos: "100%" }) -}); -exports.scaleInBl = scaleInBl; -var scaleInVerCenter = animations_1.animation(base, { - params: __assign({}, baseInParams, { direction: "Y", fromScale: .4 }) -}); -exports.scaleInVerCenter = scaleInVerCenter; -var scaleInTop = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "50%", yPos: "0" }) -}); -exports.scaleInTop = scaleInTop; -var scaleInLeft = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "0", yPos: "50%" }) -}); -exports.scaleInLeft = scaleInLeft; -var scaleInVerTop = animations_1.animation(base, { - params: __assign({}, baseInParams, { direction: "Y", fromScale: .4, xPos: "100%", yPos: "0" }) -}); -exports.scaleInVerTop = scaleInVerTop; -var scaleInTr = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "100%", yPos: "0" }) -}); -exports.scaleInTr = scaleInTr; -var scaleInTl = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "0", yPos: "0" }) -}); -exports.scaleInTl = scaleInTl; -var scaleInVerBottom = animations_1.animation(base, { - params: __assign({}, baseInParams, { direction: "Y", fromScale: .4, xPos: "0", yPos: "100%" }) -}); -exports.scaleInVerBottom = scaleInVerBottom; -var scaleInRight = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "100%", yPos: "50%" }) -}); -exports.scaleInRight = scaleInRight; -var scaleInHorCenter = animations_1.animation(base, { - params: __assign({}, baseInParams, { direction: "X", fromScale: .4 }) -}); -exports.scaleInHorCenter = scaleInHorCenter; -var scaleInBr = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "100%", yPos: "100%" }) -}); -exports.scaleInBr = scaleInBr; -var scaleInHorLeft = animations_1.animation(base, { - params: __assign({}, baseInParams, { direction: "X", fromScale: .4, xPos: "0", yPos: "0" }) -}); -exports.scaleInHorLeft = scaleInHorLeft; -var scaleInBottom = animations_1.animation(base, { - params: __assign({}, baseInParams, { xPos: "50%", yPos: "100%" }) -}); -exports.scaleInBottom = scaleInBottom; -var scaleInHorRight = animations_1.animation(base, { - params: __assign({}, baseInParams, { direction: "X", fromScale: .4, xPos: "100%", yPos: "100%" }) -}); -exports.scaleInHorRight = scaleInHorRight; -var scaleOutCenter = animations_1.animation(base, { params: baseOutParams }); -exports.scaleOutCenter = scaleOutCenter; -var scaleOutBl = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "0", yPos: "100%" }) -}); -exports.scaleOutBl = scaleOutBl; -var scaleOutBr = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "100%", yPos: "100%" }) -}); -exports.scaleOutBr = scaleOutBr; -var scaleOutVerCenter = animations_1.animation(base, { - params: __assign({}, baseOutParams, { direction: "Y", toScale: .3 }) -}); -exports.scaleOutVerCenter = scaleOutVerCenter; -var scaleOutVerTop = animations_1.animation(base, { - params: __assign({}, baseOutParams, { direction: "Y", toScale: .3, xPos: "100%", yPos: "0" }) -}); -exports.scaleOutVerTop = scaleOutVerTop; -var scaleOutVerBottom = animations_1.animation(base, { - params: __assign({}, baseOutParams, { direction: "Y", toScale: .3, xPos: "0", yPos: "100%" }) -}); -exports.scaleOutVerBottom = scaleOutVerBottom; -var scaleOutTop = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "50%", yPos: "0" }) -}); -exports.scaleOutTop = scaleOutTop; -var scaleOutLeft = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "0", yPos: "50%" }) -}); -exports.scaleOutLeft = scaleOutLeft; -var scaleOutTr = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "100%", yPos: "0" }) -}); -exports.scaleOutTr = scaleOutTr; -var scaleOutTl = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "0", yPos: "0" }) -}); -exports.scaleOutTl = scaleOutTl; -var scaleOutRight = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "100%", yPos: "50%" }) -}); -exports.scaleOutRight = scaleOutRight; -var scaleOutBottom = animations_1.animation(base, { - params: __assign({}, baseOutParams, { xPos: "50%", yPos: "100%" }) -}); -exports.scaleOutBottom = scaleOutBottom; -var scaleOutHorCenter = animations_1.animation(base, { - params: __assign({}, baseOutParams, { direction: "X", toScale: .3 }) -}); -exports.scaleOutHorCenter = scaleOutHorCenter; -var scaleOutHorLeft = animations_1.animation(base, { - params: __assign({}, baseOutParams, { direction: "X", toScale: .3, xPos: "0", yPos: "0" }) -}); -exports.scaleOutHorLeft = scaleOutHorLeft; -var scaleOutHorRight = animations_1.animation(base, { - params: __assign({}, baseOutParams, { direction: "X", toScale: .3, xPos: "100%", yPos: "100%" }) -}); -exports.scaleOutHorRight = scaleOutHorRight; - -//# sourceMappingURL=index.js.map diff --git a/projects/igniteui-angular/src/lib/animations/slide/index.js b/projects/igniteui-angular/src/lib/animations/slide/index.js deleted file mode 100644 index ce8c0733c33..00000000000 --- a/projects/igniteui-angular/src/lib/animations/slide/index.js +++ /dev/null @@ -1,94 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var easings_1 = require("../easings"); -var base = [ - animations_1.style({ - opacity: "{{startOpacity}}", - transform: "{{fromPosition}}" - }), - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.style({ - opacity: "{{endOpacity}}", - transform: "{{toPosition}}" - })) -]; -var baseInParams = { - delay: "0s", - duration: "350ms", - easing: easings_1.EaseOut.quad, - endOpacity: 1, - fromPosition: "translateY(-500px)", - startOpacity: 0, - toPosition: "translateY(0)" -}; -var baseOutParams = __assign({}, baseInParams, { easing: easings_1.EaseIn.quad, endOpacity: 0, fromPosition: "translateY(0)", startOpacity: 1, toPosition: "translateY(-500px)" }); -var slideInTop = animations_1.animation(base, { params: baseInParams }); -exports.slideInTop = slideInTop; -var slideInLeft = animations_1.animation(base, { - params: __assign({}, baseInParams, { fromPosition: "translateX(-500px)" }) -}); -exports.slideInLeft = slideInLeft; -var slideInRight = animations_1.animation(base, { - params: __assign({}, baseInParams, { fromPosition: "translateX(500px)" }) -}); -exports.slideInRight = slideInRight; -var slideInBottom = animations_1.animation(base, { - params: __assign({}, baseInParams, { fromPosition: "translateY(500px)" }) -}); -exports.slideInBottom = slideInBottom; -var slideInTr = animations_1.animation(base, { - params: __assign({}, baseInParams, { fromPosition: "translateY(-500px) translateX(500px)", toPosition: "translateY(0) translateX(0)" }) -}); -exports.slideInTr = slideInTr; -var slideInTl = animations_1.animation(base, { - params: __assign({}, baseInParams, { fromPosition: "translateY(-500px) translateX(-500px)", toPosition: "translateY(0) translateX(0)" }) -}); -exports.slideInTl = slideInTl; -var slideInBr = animations_1.animation(base, { - params: __assign({}, baseInParams, { fromPosition: "translateY(500px) translateX(500px)", toPosition: "translateY(0) translateX(0)" }) -}); -exports.slideInBr = slideInBr; -var slideInBl = animations_1.animation(base, { - params: __assign({}, baseInParams, { fromPosition: "translateY(500px) translateX(-500px)", toPosition: "translateY(0) translateX(0)" }) -}); -exports.slideInBl = slideInBl; -var slideOutTop = animations_1.animation(base, { params: baseOutParams }); -exports.slideOutTop = slideOutTop; -var slideOutRight = animations_1.animation(base, { - params: __assign({}, baseOutParams, { toPosition: "translateX(500px)" }) -}); -exports.slideOutRight = slideOutRight; -var slideOutBottom = animations_1.animation(base, { - params: __assign({}, baseOutParams, { toPosition: "translateY(500px)" }) -}); -exports.slideOutBottom = slideOutBottom; -var slideOutLeft = animations_1.animation(base, { - params: __assign({}, baseOutParams, { toPosition: "translateX(-500px)" }) -}); -exports.slideOutLeft = slideOutLeft; -var slideOutTr = animations_1.animation(base, { - params: __assign({}, baseOutParams, { fromPosition: "translateY(0) translateX(0)", toPosition: "translateY(-500px) translateX(500px)" }) -}); -exports.slideOutTr = slideOutTr; -var slideOutBr = animations_1.animation(base, { - params: __assign({}, baseOutParams, { fromPosition: "translateY(0) translateX(0)", toPosition: "translateY(500px) translateX(500px)" }) -}); -exports.slideOutBr = slideOutBr; -var slideOutBl = animations_1.animation(base, { - params: __assign({}, baseOutParams, { fromPosition: "translateY(0) translateX(0)", toPosition: "translateY(500px) translateX(-500px)" }) -}); -exports.slideOutBl = slideOutBl; -var slideOutTl = animations_1.animation(base, { - params: __assign({}, baseOutParams, { fromPosition: "translateY(0) translateX(0)", toPosition: "translateY(-500px) translateX(-500px)" }) -}); -exports.slideOutTl = slideOutTl; - -//# sourceMappingURL=index.js.map diff --git a/projects/igniteui-angular/src/lib/animations/swing/index.js b/projects/igniteui-angular/src/lib/animations/swing/index.js deleted file mode 100644 index 6e18f97bf03..00000000000 --- a/projects/igniteui-angular/src/lib/animations/swing/index.js +++ /dev/null @@ -1,103 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var animations_1 = require("@angular/animations"); -var easings_1 = require("../easings"); -var swingBase = [ - animations_1.style({ - opacity: "{{startOpacity}}", - transform: "rotate{{direction}}({{startAngle}}deg)", - transformOrigin: "{{xPos}} {{yPos}}" - }), - animations_1.animate("{{duration}} {{delay}} {{easing}}", animations_1.style({ - opacity: "{{endOpacity}}", - transform: "rotate{{direction}}({{endAngle}}deg)", - transformOrigin: "{{xPos}} {{yPos}}" - })) -]; -var swingParams = { - delay: "0s", - direction: "X", - duration: ".5s", - easing: easings_1.EaseOut.back, - endAngle: 0, - endOpacity: 1, - startAngle: -100, - startOpacity: 0, - xPos: "top", - yPos: "center" -}; -var swingOutParams = __assign({}, swingParams, { duration: ".55s", easing: easings_1.EaseIn.back, endAngle: 70, endOpacity: 0, startAngle: 0, startOpacity: 1 }); -var swingInTopFwd = animations_1.animation(swingBase, { - params: __assign({}, swingParams) -}); -exports.swingInTopFwd = swingInTopFwd; -var swingInRightFwd = animations_1.animation(swingBase, { - params: __assign({}, swingParams, { direction: "Y", xPos: "center", yPos: "right" }) -}); -exports.swingInRightFwd = swingInRightFwd; -var swingInBottomFwd = animations_1.animation(swingBase, { - params: __assign({}, swingParams, { startAngle: 100, xPos: "bottom" }) -}); -exports.swingInBottomFwd = swingInBottomFwd; -var swingInLeftFwd = animations_1.animation(swingBase, { - params: __assign({}, swingParams, { direction: "Y", startAngle: 100, xPos: "center", yPos: "left" }) -}); -exports.swingInLeftFwd = swingInLeftFwd; -var swingInTopBck = animations_1.animation(swingBase, { - params: __assign({}, swingParams, { duration: ".6s", startAngle: 70 }) -}); -exports.swingInTopBck = swingInTopBck; -var swingInRightBck = animations_1.animation(swingBase, { - params: __assign({}, swingParams, { direction: "Y", duration: ".6s", startAngle: 70, xPos: "center", yPos: "right" }) -}); -exports.swingInRightBck = swingInRightBck; -var swingInBottomBck = animations_1.animation(swingBase, { - params: __assign({}, swingParams, { duration: ".6s", startAngle: -70, xPos: "bottom" }) -}); -exports.swingInBottomBck = swingInBottomBck; -var swingInLeftBck = animations_1.animation(swingBase, { - params: __assign({}, swingParams, { direction: "Y", duration: ".6s", startAngle: -70, xPos: "center", yPos: "left" }) -}); -exports.swingInLeftBck = swingInLeftBck; -var swingOutTopFwd = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams) -}); -exports.swingOutTopFwd = swingOutTopFwd; -var swingOutRightFwd = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams, { direction: "Y", xPos: "center", yPos: "right" }) -}); -exports.swingOutRightFwd = swingOutRightFwd; -var swingOutBottomFwd = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams, { endAngle: -70, xPos: "bottom" }) -}); -exports.swingOutBottomFwd = swingOutBottomFwd; -var swingOutLefttFwd = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams, { direction: "Y", endAngle: -70, xPos: "center", yPos: "left" }) -}); -exports.swingOutLefttFwd = swingOutLefttFwd; -var swingOutTopBck = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams, { duration: ".45s", endAngle: -100 }) -}); -exports.swingOutTopBck = swingOutTopBck; -var swingOutRightBck = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams, { direction: "Y", duration: ".45s", endAngle: -100, xPos: "center", yPos: "right" }) -}); -exports.swingOutRightBck = swingOutRightBck; -var swingOutBottomBck = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams, { duration: ".45s", endAngle: 100, xPos: "bottom" }) -}); -exports.swingOutBottomBck = swingOutBottomBck; -var swingOutLeftBck = animations_1.animation(swingBase, { - params: __assign({}, swingOutParams, { direction: "Y", duration: ".45s", endAngle: 100, xPos: "center", yPos: "left" }) -}); -exports.swingOutLeftBck = swingOutLeftBck; - -//# sourceMappingURL=index.js.map diff --git a/projects/igniteui-angular/src/lib/avatar/avatar.component.spec.ts b/projects/igniteui-angular/src/lib/avatar/avatar.component.spec.ts index 4d77697cf4c..04e9fb80e69 100644 --- a/projects/igniteui-angular/src/lib/avatar/avatar.component.spec.ts +++ b/projects/igniteui-angular/src/lib/avatar/avatar.component.spec.ts @@ -1,7 +1,6 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxIconModule } from '../icon/public_api'; import { IgxAvatarComponent, IgxAvatarType, IgxAvatarSize } from './avatar.component'; import { configureTestSuite } from '../test-utils/configure-suite'; @@ -23,16 +22,14 @@ describe('Avatar', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ InitAvatarComponent, AvatarWithAttribsComponent, IgxAvatarComponent, InitIconAvatarComponent, InitImageAvatarComponent - ], - imports: [IgxIconModule] - }) - .compileComponents(); + ] + }).compileComponents(); })); it('Initializes avatar with auto-incremented id', () => { @@ -190,20 +187,25 @@ describe('Avatar', () => { }); @Component({ - template: `TEST` + template: `TEST`, + standalone: true, + imports: [IgxAvatarComponent] }) class InitAvatarComponent { @ViewChild(IgxAvatarComponent, { static: true }) public avatar: IgxAvatarComponent; } @Component({ - template: ` - ` + `, + standalone: true, + imports: [IgxAvatarComponent] }) class AvatarWithAttribsComponent { @ViewChild(IgxAvatarComponent, { static: true }) public avatar: IgxAvatarComponent; @@ -214,14 +216,18 @@ class AvatarWithAttribsComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxAvatarComponent] }) class InitIconAvatarComponent { @ViewChild(IgxAvatarComponent, { static: true }) public avatar: IgxAvatarComponent; } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxAvatarComponent] }) class InitImageAvatarComponent { @ViewChild(IgxAvatarComponent, { static: true }) public avatar: IgxAvatarComponent; diff --git a/projects/igniteui-angular/src/lib/avatar/avatar.component.ts b/projects/igniteui-angular/src/lib/avatar/avatar.component.ts index 3400fe9580d..3abefab0371 100644 --- a/projects/igniteui-angular/src/lib/avatar/avatar.component.ts +++ b/projects/igniteui-angular/src/lib/avatar/avatar.component.ts @@ -1,16 +1,16 @@ -import { CommonModule } from '@angular/common'; +import { NgTemplateOutlet } from '@angular/common'; import { Component, ElementRef, HostBinding, Input, - NgModule, OnInit, TemplateRef, ViewChild } from '@angular/core'; -import { IgxIconModule } from '../icon/public_api'; + import { mkenum } from '../core/utils'; +import { IgxIconComponent } from '../icon/icon.component'; let NEXT_ID = 0; export const IgxAvatarSize = mkenum({ @@ -52,7 +52,9 @@ export type IgxAvatarType = (typeof IgxAvatarType)[keyof typeof IgxAvatarType]; */ @Component({ selector: 'igx-avatar', - templateUrl: 'avatar.component.html' + templateUrl: 'avatar.component.html', + standalone: true, + imports: [IgxIconComponent, NgTemplateOutlet] }) export class IgxAvatarComponent implements OnInit { /** @@ -377,12 +379,3 @@ export class IgxAvatarComponent implements OnInit { } } -/** - * @hidden - */ -@NgModule({ - declarations: [IgxAvatarComponent], - exports: [IgxAvatarComponent], - imports: [CommonModule, IgxIconModule] -}) -export class IgxAvatarModule { } diff --git a/projects/igniteui-angular/src/lib/avatar/avatar.module.ts b/projects/igniteui-angular/src/lib/avatar/avatar.module.ts new file mode 100644 index 00000000000..d2742d06293 --- /dev/null +++ b/projects/igniteui-angular/src/lib/avatar/avatar.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxAvatarComponent } from './avatar.component'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxAvatarComponent], + exports: [IgxAvatarComponent] +}) +export class IgxAvatarModule { } diff --git a/projects/igniteui-angular/src/lib/badge/badge.component.spec.ts b/projects/igniteui-angular/src/lib/badge/badge.component.spec.ts index 858755c8e22..50afe888b5e 100644 --- a/projects/igniteui-angular/src/lib/badge/badge.component.spec.ts +++ b/projects/igniteui-angular/src/lib/badge/badge.component.spec.ts @@ -1,7 +1,6 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxIconModule } from '../icon/public_api'; import { IgxBadgeComponent, IgxBadgeType } from './badge.component'; import { configureTestSuite } from '../test-utils/configure-suite'; @@ -10,14 +9,13 @@ describe('Badge', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ InitBadgeComponent, InitBadgeWithDefaultsComponent, InitBadgeWithIconComponent, IgxBadgeComponent, InitBadgeWithIconARIAComponent - ], - imports: [IgxIconModule] + ] }).compileComponents(); })); @@ -90,22 +88,38 @@ describe('Badge', () => { }); }); -@Component({ template: `` }) +@Component({ + template: ``, + standalone: true, + imports: [IgxBadgeComponent] +}) class InitBadgeComponent { @ViewChild(IgxBadgeComponent, { static: true }) public badge: IgxBadgeComponent; } -@Component({ template: `` }) +@Component({ + template: ``, + standalone: true, + imports: [IgxBadgeComponent] +}) class InitBadgeWithDefaultsComponent { @ViewChild(IgxBadgeComponent, { static: true }) public badge: IgxBadgeComponent; } -@Component({ template: `` }) +@Component({ + template: ``, + standalone: true, + imports: [IgxBadgeComponent] +}) class InitBadgeWithIconComponent { @ViewChild(IgxBadgeComponent, { static: true }) public badge: IgxBadgeComponent; } -@Component({ template: `` }) +@Component({ + template: ``, + standalone: true, + imports: [IgxBadgeComponent] +}) class InitBadgeWithIconARIAComponent { @ViewChild(IgxBadgeComponent, { static: true }) public badge: IgxBadgeComponent; } diff --git a/projects/igniteui-angular/src/lib/badge/badge.component.ts b/projects/igniteui-angular/src/lib/badge/badge.component.ts index 83690c77477..a72f338c256 100644 --- a/projects/igniteui-angular/src/lib/badge/badge.component.ts +++ b/projects/igniteui-angular/src/lib/badge/badge.component.ts @@ -1,7 +1,8 @@ -import { CommonModule } from '@angular/common'; -import { Component, HostBinding, Input, NgModule } from '@angular/core'; -import { IgxIconModule } from '../icon/public_api'; +import { NgIf } from '@angular/common'; +import { Component, HostBinding, Input } from '@angular/core'; + import { mkenum } from '../core/utils'; +import { IgxIconComponent } from '../icon/icon.component'; let NEXT_ID = 0; @@ -40,7 +41,9 @@ export type IgxBadgeType = (typeof IgxBadgeType)[keyof typeof IgxBadgeType]; */ @Component({ selector: 'igx-badge', - templateUrl: 'badge.component.html' + templateUrl: 'badge.component.html', + standalone: true, + imports: [NgIf, IgxIconComponent] }) export class IgxBadgeComponent { @@ -202,13 +205,3 @@ export class IgxBadgeComponent { return this.type === IgxBadgeType.ERROR; } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxBadgeComponent], - exports: [IgxBadgeComponent], - imports: [CommonModule, IgxIconModule] -}) -export class IgxBadgeModule { } diff --git a/projects/igniteui-angular/src/lib/badge/badge.module.ts b/projects/igniteui-angular/src/lib/badge/badge.module.ts new file mode 100644 index 00000000000..c114ff7d4a3 --- /dev/null +++ b/projects/igniteui-angular/src/lib/badge/badge.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxBadgeComponent } from './badge.component'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + exports: [IgxBadgeComponent], + imports: [IgxBadgeComponent] +}) +export class IgxBadgeModule { } diff --git a/projects/igniteui-angular/src/lib/banner/banner.component.html b/projects/igniteui-angular/src/lib/banner/banner.component.html index a6ce66edc55..f7e292c5b62 100644 --- a/projects/igniteui-angular/src/lib/banner/banner.component.html +++ b/projects/igniteui-angular/src/lib/banner/banner.component.html @@ -11,14 +11,14 @@
- - - - - - + + + + + +
diff --git a/projects/igniteui-angular/src/lib/banner/banner.component.spec.ts b/projects/igniteui-angular/src/lib/banner/banner.component.spec.ts index 01256c06653..54633b0a2e8 100644 --- a/projects/igniteui-angular/src/lib/banner/banner.component.spec.ts +++ b/projects/igniteui-angular/src/lib/banner/banner.component.spec.ts @@ -1,15 +1,13 @@ import { Component, ViewChild, DebugElement } from '@angular/core'; import { TestBed, ComponentFixture, tick, fakeAsync, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxAvatarModule } from '../avatar/avatar.component'; -import { IgxBannerComponent, IgxBannerModule } from './banner.component'; -import { IgxCardModule } from '../card/card.component'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxExpansionPanelModule } from '../expansion-panel/public_api'; +import { IgxBannerComponent } from './banner.component'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxButtonModule } from '../directives/button/button.directive'; import { configureTestSuite } from '../test-utils/configure-suite'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxBannerActionsDirective } from './banner.directives'; +import { IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent } from '../card/card.component'; +import { IgxAvatarComponent } from '../avatar/avatar.component'; const CSS_CLASS_EXPANSION_PANEL = 'igx-expansion-panel'; const CSS_CLASS_EXPANSION_PANEL_BODY = 'igx-expansion-panel__body'; @@ -18,7 +16,6 @@ const CSS_CLASS_BANNER_MESSAGE = 'igx-banner__message'; const CSS_CLASS_BANNER_ILLUSTRATION = 'igx-banner__illustration'; const CSS_CLASS_BANNER_TEXT = 'igx-banner__text'; const CSS_CLASS_BANNER_ACTIONS = 'igx-banner__actions'; -const CSS_CLASS_BANNER_ROW = 'igx-banner__row'; describe('igxBanner', () => { let bannerElement: DebugElement = null; @@ -30,22 +27,13 @@ describe('igxBanner', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxBannerEmptyComponent, IgxBannerOneButtonComponent, IgxBannerSampleComponent, IgxBannerCustomTemplateComponent, SimpleBannerEventsComponent - ], - imports: [ - IgxBannerModule, - IgxExpansionPanelModule, - NoopAnimationsModule, - IgxRippleModule, - IgxButtonModule, - IgxAvatarModule, - IgxCardModule, - IgxIconModule ] }).compileComponents(); })); @@ -503,7 +491,9 @@ describe('igxBanner', () => {
-
SOME PAGE CONTENT
` +
SOME PAGE CONTENT
`, + standalone: true, + imports: [ IgxBannerComponent ] }) export class IgxBannerEmptyComponent { @ViewChild(IgxBannerComponent, { read: IgxBannerComponent, static: true }) @@ -521,7 +511,9 @@ export class IgxBannerEmptyComponent {
SOME PAGE CONTENT
- ` + `, + standalone: true, + imports: [ IgxBannerComponent, IgxBannerActionsDirective ] }) export class IgxBannerOneButtonComponent { @ViewChild(IgxBannerComponent, { read: IgxBannerComponent, static: true }) @@ -541,7 +533,9 @@ export class IgxBannerOneButtonComponent {
SOME PAGE CONTENT
- ` + `, + standalone: true, + imports: [ IgxBannerComponent, IgxBannerActionsDirective, IgxIconComponent ] }) export class IgxBannerSampleComponent { @ViewChild(IgxBannerComponent, { read: IgxBannerComponent, static: true }) @@ -566,13 +560,15 @@ export class IgxBannerSampleComponent {

Brad Stanley has requested to follow you.

- + -
SOME PAGE CONTENT
` +
SOME PAGE CONTENT
`, + standalone: true, + imports: [ IgxBannerComponent, IgxCardComponent, IgxCardHeaderComponent, IgxCardContentDirective, IgxBannerActionsDirective, IgxAvatarComponent ] }) export class IgxBannerCustomTemplateComponent { @ViewChild(IgxBannerComponent, { read: IgxBannerComponent, static: true }) @@ -584,7 +580,9 @@ export class IgxBannerCustomTemplateComponent {
Simple message
-
SOME PAGE CONTENT
` +
SOME PAGE CONTENT
`, + standalone: true, + imports: [ IgxBannerComponent ] }) export class SimpleBannerEventsComponent { @ViewChild(IgxBannerComponent, { read: IgxBannerComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/banner/banner.component.ts b/projects/igniteui-angular/src/lib/banner/banner.component.ts index eeb47c722d5..c3f30fa8fe6 100644 --- a/projects/igniteui-angular/src/lib/banner/banner.component.ts +++ b/projects/igniteui-angular/src/lib/banner/banner.component.ts @@ -5,20 +5,20 @@ import { EventEmitter, HostBinding, Input, - NgModule, Output, ViewChild } from '@angular/core'; -import { IgxExpansionPanelModule } from '../expansion-panel/expansion-panel.module'; -import { IgxExpansionPanelComponent } from '../expansion-panel/public_api'; -import { IgxIconModule, IgxIconComponent } from '../icon/public_api'; + +import { IgxIconComponent } from '../icon/icon.component'; import { IToggleView } from '../core/navigation'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; import { IgxBannerActionsDirective } from './banner.directives'; -import { CommonModule } from '@angular/common'; +import { NgIf } from '@angular/common'; import { CancelableEventArgs, IBaseEventArgs } from '../core/utils'; import { ToggleAnimationSettings } from '../expansion-panel/toggle-animation-component'; +import { IgxExpansionPanelBodyComponent } from '../expansion-panel/expansion-panel-body.component'; +import { IgxExpansionPanelComponent } from '../expansion-panel/expansion-panel.component'; import { IBannerResourceStrings } from '../core/i18n/banner-resources'; import { CurrentResourceStrings } from '../core/i18n/resources'; @@ -52,7 +52,9 @@ export interface BannerCancelEventArgs extends BannerEventArgs, CancelableEventA */ @Component({ selector: 'igx-banner', - templateUrl: 'banner.component.html' + templateUrl: 'banner.component.html', + standalone: true, + imports: [ IgxExpansionPanelComponent, IgxExpansionPanelBodyComponent, NgIf, IgxButtonDirective, IgxRippleDirective ] }) export class IgxBannerComponent implements IToggleView { /** @@ -122,6 +124,18 @@ export class IgxBannerComponent implements IToggleView { return !this._bannerActionTemplate; } + /** + * Set the animation settings used by the banner open/close methods + * ```typescript + * import { slideInLeft, slideOutRight } from 'igniteui-angular'; + * ... + * banner.animationSettings: ToggleAnimationSettings = { openAnimation: slideInLeft, closeAnimation: slideOutRight }; + * ``` + */ + public set animationSettings(settings: ToggleAnimationSettings) { + this._animationSettings = settings; + } + /** * Get the animation settings used by the banner open/close methods * ```typescript @@ -151,18 +165,6 @@ export class IgxBannerComponent implements IToggleView { } return this._resourceStrings; } - - /** - * Set the animation settings used by the banner open/close methods - * ```typescript - * import { slideInLeft, slideOutRight } from 'igniteui-angular'; - * ... - * banner.animationSettings: ToggleAnimationSettings = { openAnimation: slideInLeft, closeAnimation: slideOutRight }; - * ``` - */ - public set animationSettings(settings: ToggleAnimationSettings) { - this._animationSettings = settings; - } /** * Gets whether banner is collapsed * @@ -301,9 +303,4 @@ export class IgxBannerComponent implements IToggleView { /** * @hidden */ -@NgModule({ - declarations: [IgxBannerComponent, IgxBannerActionsDirective], - exports: [IgxBannerComponent, IgxBannerActionsDirective], - imports: [CommonModule, IgxExpansionPanelModule, IgxIconModule, IgxButtonModule, IgxRippleModule] -}) -export class IgxBannerModule { } + diff --git a/projects/igniteui-angular/src/lib/banner/banner.directives.ts b/projects/igniteui-angular/src/lib/banner/banner.directives.ts index bc9ded96409..84e437b2970 100644 --- a/projects/igniteui-angular/src/lib/banner/banner.directives.ts +++ b/projects/igniteui-angular/src/lib/banner/banner.directives.ts @@ -1,5 +1,7 @@ import { Directive } from '@angular/core'; -/* eslint-disable @angular-eslint/directive-selector */ -@Directive({ selector: 'igx-banner-actions' }) +@Directive({ + selector: 'igx-banner-actions', + standalone: true +}) export class IgxBannerActionsDirective { } diff --git a/projects/igniteui-angular/src/lib/banner/banner.module.ts b/projects/igniteui-angular/src/lib/banner/banner.module.ts new file mode 100644 index 00000000000..6473a7f1814 --- /dev/null +++ b/projects/igniteui-angular/src/lib/banner/banner.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IGX_BANNER_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [...IGX_BANNER_DIRECTIVES], + exports: [...IGX_BANNER_DIRECTIVES] +}) +export class IgxBannerModule { } diff --git a/projects/igniteui-angular/src/lib/banner/public_api.ts b/projects/igniteui-angular/src/lib/banner/public_api.ts index 5b503ca6eee..0433362fde6 100644 --- a/projects/igniteui-angular/src/lib/banner/public_api.ts +++ b/projects/igniteui-angular/src/lib/banner/public_api.ts @@ -1,2 +1,11 @@ +import { IgxBannerComponent } from './banner.component'; +import { IgxBannerActionsDirective } from './banner.directives'; + export * from './banner.component'; export * from './banner.directives'; + +/* Banner directives collection for ease-of-use import in standalone components scenario */ +export const IGX_BANNER_DIRECTIVES = [ + IgxBannerComponent, + IgxBannerActionsDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component.ts b/projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component.ts index 997b8ef5a50..42cd8c63eef 100644 --- a/projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component.ts +++ b/projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component.ts @@ -1,4 +1,4 @@ -import { CommonModule } from '@angular/common'; +import { NgFor, NgIf } from '@angular/common'; import { AfterContentInit, AfterViewInit, @@ -9,7 +9,6 @@ import { HostBinding, Inject, Input, - NgModule, Output, Optional, QueryList, @@ -18,13 +17,14 @@ import { OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; -import { IgxButtonDirective, IgxButtonModule } from '../directives/button/button.directive'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxIconModule } from '../icon/public_api'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; + import { takeUntil } from 'rxjs/operators'; import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { IBaseEventArgs } from '../core/utils'; import { mkenum } from '../core/utils'; +import { IgxIconComponent } from '../icon/icon.component'; /** * Determines the Button Group alignment @@ -59,7 +59,9 @@ let NEXT_ID = 0; */ @Component({ selector: 'igx-buttongroup', - templateUrl: 'buttongroup-content.component.html' + templateUrl: 'buttongroup-content.component.html', + standalone: true, + imports: [NgFor, IgxButtonDirective, IgxRippleDirective, NgIf, IgxIconComponent] }) export class IgxButtonGroupComponent extends DisplayDensityBase implements AfterContentInit, AfterViewInit, OnDestroy { /** @@ -460,9 +462,4 @@ export interface IButtonGroupEventArgs extends IBaseEventArgs { /** * @hidden */ -@NgModule({ - declarations: [IgxButtonGroupComponent], - exports: [IgxButtonGroupComponent], - imports: [IgxButtonModule, CommonModule, IgxRippleModule, IgxIconModule] -}) -export class IgxButtonGroupModule {} + diff --git a/projects/igniteui-angular/src/lib/buttonGroup/buttongroup.component.spec.ts b/projects/igniteui-angular/src/lib/buttonGroup/buttongroup.component.spec.ts index d8bfff948c1..b8c433e711a 100644 --- a/projects/igniteui-angular/src/lib/buttonGroup/buttongroup.component.spec.ts +++ b/projects/igniteui-angular/src/lib/buttonGroup/buttongroup.component.spec.ts @@ -1,10 +1,10 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; -import { ButtonGroupAlignment, IgxButtonGroupComponent, IgxButtonGroupModule } from './buttonGroup.component'; -import { IgxButtonModule } from '../directives/button/button.directive'; +import { ButtonGroupAlignment, IgxButtonGroupComponent } from './buttonGroup.component'; import { configureTestSuite } from '../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; +import { IgxButtonDirective } from '../directives/button/button.directive'; interface IButton { type?: string; @@ -47,19 +47,14 @@ describe('IgxButtonGroup', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, InitButtonGroupComponent, InitButtonGroupWithValuesComponent, TemplatedButtonGroupComponent, TemplatedButtonGroupDesplayDensityComponent - ], - imports: [ - IgxButtonGroupModule, - IgxButtonModule, - NoopAnimationsModule ] - }) - .compileComponents(); + }).compileComponents(); })); it('should initialize buttonGroup with default values', () => { @@ -273,7 +268,11 @@ describe('IgxButtonGroup', () => { }); -@Component({ template: `` }) +@Component({ + template: ``, + standalone: true, + imports: [ IgxButtonGroupComponent ] +}) class InitButtonGroupComponent implements OnInit { @ViewChild(IgxButtonGroupComponent, { static: true }) public buttonGroup: IgxButtonGroupComponent; @@ -300,9 +299,15 @@ class InitButtonGroupComponent implements OnInit { } } -@Component({ template: ` - ` }) +@Component({ + template: ` + + + `, + standalone: true, + imports: [ IgxButtonGroupComponent ] +}) class InitButtonGroupWithValuesComponent implements OnInit { @ViewChild(IgxButtonGroupComponent, { static: true }) public buttonGroup: IgxButtonGroupComponent; @@ -341,12 +346,18 @@ class InitButtonGroupWithValuesComponent implements OnInit { } -@Component({ template: ` - - - - - ` }) +@Component({ + template: ` + + + + + + + `, + standalone: true, + imports: [ IgxButtonGroupComponent, IgxButtonDirective ] +}) class TemplatedButtonGroupComponent { @ViewChild(IgxButtonGroupComponent, { static: true }) public buttonGroup: IgxButtonGroupComponent; @@ -354,10 +365,16 @@ class TemplatedButtonGroupComponent { public multiselection = true; } -@Component({ template: ` - - - ` }) +@Component({ + template: ` + + + + + `, + standalone: true, + imports: [ IgxButtonGroupComponent, IgxButtonDirective ] +}) class TemplatedButtonGroupDesplayDensityComponent { @ViewChild(IgxButtonGroupComponent, { static: true }) public buttonGroup: IgxButtonGroupComponent; } diff --git a/projects/igniteui-angular/src/lib/buttonGroup/buttongroup.module.ts b/projects/igniteui-angular/src/lib/buttonGroup/buttongroup.module.ts new file mode 100644 index 00000000000..fcc0f6a5e5f --- /dev/null +++ b/projects/igniteui-angular/src/lib/buttonGroup/buttongroup.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IGX_BUTTON_GROUP_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [...IGX_BUTTON_GROUP_DIRECTIVES], + exports: [...IGX_BUTTON_GROUP_DIRECTIVES] +}) +export class IgxButtonGroupModule {} diff --git a/projects/igniteui-angular/src/lib/buttonGroup/public_api.ts b/projects/igniteui-angular/src/lib/buttonGroup/public_api.ts new file mode 100644 index 00000000000..23477806aa0 --- /dev/null +++ b/projects/igniteui-angular/src/lib/buttonGroup/public_api.ts @@ -0,0 +1,10 @@ +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxButtonGroupComponent } from './buttonGroup.component'; + +export * from './buttonGroup.component'; + +/* Button group directives collection for ease-of-use import in standalone components scenario */ +export const IGX_BUTTON_GROUP_DIRECTIVES = [ + IgxButtonGroupComponent, + IgxButtonDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/calendar/calendar-base.ts b/projects/igniteui-angular/src/lib/calendar/calendar-base.ts index 8181fb0c613..29472edeb76 100644 --- a/projects/igniteui-angular/src/lib/calendar/calendar-base.ts +++ b/projects/igniteui-angular/src/lib/calendar/calendar-base.ts @@ -1,39 +1,18 @@ import { Input, Output, EventEmitter, Directive, Inject, LOCALE_ID, HostListener } from '@angular/core'; -import { WEEKDAYS, Calendar, isDateInRanges, IFormattingOptions, IFormattingViews } from './calendar'; +import { WEEKDAYS, Calendar, isDateInRanges, IFormattingOptions, IFormattingViews, IViewDateChangeEventArgs, ScrollMonth, IgxCalendarView, CalendarSelection } from './calendar'; import { ControlValueAccessor } from '@angular/forms'; import { DateRangeDescriptor } from '../core/dates'; import { noop, Subject } from 'rxjs'; -import { isDate, mkenum, PlatformUtil } from '../core/utils'; -import { IgxCalendarView } from './month-picker-base'; +import { isDate, PlatformUtil } from '../core/utils'; import { CurrentResourceStrings } from '../core/i18n/resources'; import { ICalendarResourceStrings } from '../core/i18n/calendar-resources'; import { DateTimeUtil } from '../date-common/util/date-time.util'; import { getLocaleFirstDayOfWeek } from "@angular/common"; -/** - * Sets the selection type - single, multi or range. - */ -export const CalendarSelection = mkenum({ - SINGLE: 'single', - MULTI: 'multi', - RANGE: 'range' -}); -export type CalendarSelection = (typeof CalendarSelection)[keyof typeof CalendarSelection]; - -export enum ScrollMonth { - PREV = 'prev', - NEXT = 'next', - NONE = 'none' -} - -export interface IViewDateChangeEventArgs { - previousValue: Date; - currentValue: Date; -} - /** @hidden @internal */ @Directive({ selector: '[igxCalendarBase]', + standalone: true }) export class IgxCalendarBaseDirective implements ControlValueAccessor { /** @@ -118,7 +97,7 @@ export class IgxCalendarBaseDirective implements ControlValueAccessor { /** * @hidden */ - public shiftKey: boolean = false; + public shiftKey = false; /** * @hidden @@ -752,7 +731,7 @@ export class IgxCalendarBaseDirective implements ControlValueAccessor { /** * @hidden */ - private selectRange(value: Date | Date[], excludeDisabledDates: boolean = false) { + private selectRange(value: Date | Date[], excludeDisabledDates = false) { if (Array.isArray(value)) { value.sort((a: Date, b: Date) => a.valueOf() - b.valueOf()); this._startDate = this.getDateOnly(value[0]); diff --git a/projects/igniteui-angular/src/lib/calendar/calendar-multi-view.component.spec.ts b/projects/igniteui-angular/src/lib/calendar/calendar-multi-view.component.spec.ts index 812d47c9d53..47736aa5d68 100644 --- a/projects/igniteui-angular/src/lib/calendar/calendar-multi-view.component.spec.ts +++ b/projects/igniteui-angular/src/lib/calendar/calendar-multi-view.component.spec.ts @@ -4,10 +4,10 @@ import { FormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { configureTestSuite } from '../test-utils/configure-suite'; import { UIInteractions, wait } from '../test-utils/ui-interactions.spec'; -import { IgxCalendarComponent, IgxCalendarModule } from './public_api'; -import { IgxDatePickerComponent, IgxDatePickerModule } from '../date-picker/public_api'; +import { IgxCalendarComponent } from './public_api'; +import { IgxDatePickerComponent } from '../date-picker/public_api'; import { DateRangeType } from '../core/dates'; -import { HelperTestFunctions } from './calendar-helper-utils'; +import { HelperTestFunctions } from '../test-utils/calendar-helper-utils'; describe('Multi-View Calendar - ', () => { let fixture; let calendar; @@ -15,8 +15,12 @@ describe('Multi-View Calendar - ', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [MultiViewCalendarSampleComponent, MultiViewDatePickerSampleComponent, MultiViewNgModelSampleComponent], - imports: [IgxCalendarModule, IgxDatePickerModule, FormsModule, NoopAnimationsModule] + imports: [ + NoopAnimationsModule, + MultiViewCalendarSampleComponent, + MultiViewDatePickerSampleComponent, + MultiViewNgModelSampleComponent + ] }).compileComponents(); })); @@ -1362,7 +1366,9 @@ describe('Multi-View Calendar - ', () => { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxCalendarComponent] }) export class MultiViewCalendarSampleComponent { @ViewChild(IgxCalendarComponent, { static: true }) public calendar: IgxCalendarComponent; @@ -1372,7 +1378,9 @@ export class MultiViewCalendarSampleComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxDatePickerComponent] }) export class MultiViewDatePickerSampleComponent { @ViewChild(IgxDatePickerComponent, { static: true }) public datePicker: IgxDatePickerComponent; @@ -1383,7 +1391,9 @@ export class MultiViewDatePickerSampleComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxCalendarComponent, FormsModule] }) export class MultiViewNgModelSampleComponent { @ViewChild(IgxCalendarComponent, { static: true }) public calendar: IgxCalendarComponent; diff --git a/projects/igniteui-angular/src/lib/calendar/calendar.component.spec.ts b/projects/igniteui-angular/src/lib/calendar/calendar.component.spec.ts index bd86b61718c..97c86c85258 100644 --- a/projects/igniteui-angular/src/lib/calendar/calendar.component.spec.ts +++ b/projects/igniteui-angular/src/lib/calendar/calendar.component.spec.ts @@ -4,7 +4,8 @@ import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { - Calendar, IgxCalendarComponent, IgxCalendarModule, isLeap, + Calendar, IgxCalendarComponent, IgxCalendarView, isLeap, + IViewDateChangeEventArgs, monthRange, weekDay, WEEKDAYS } from './public_api'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; @@ -12,9 +13,7 @@ import { DateRangeDescriptor, DateRangeType } from '../core/dates/dateRange'; import { configureTestSuite } from '../test-utils/configure-suite'; import { IgxDayItemComponent } from './days-view/day-item.component'; -import { HelperTestFunctions } from './calendar-helper-utils'; -import { IgxCalendarView } from './month-picker-base'; -import { IViewDateChangeEventArgs } from './calendar-base'; +import { HelperTestFunctions } from '../test-utils/calendar-helper-utils'; describe('IgxCalendar - ', () => { @@ -174,9 +173,13 @@ describe('IgxCalendar - ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [IgxCalendarSampleComponent, IgxCalendarRangeComponent, IgxCalendarDisabledSpecialDatesComponent, - IgxCalendarValueComponent], - imports: [IgxCalendarModule, FormsModule, NoopAnimationsModule] + imports: [ + NoopAnimationsModule, + IgxCalendarSampleComponent, + IgxCalendarRangeComponent, + IgxCalendarDisabledSpecialDatesComponent, + IgxCalendarValueComponent + ] }).compileComponents(); })); @@ -2255,7 +2258,9 @@ describe('IgxCalendar - ', () => { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxCalendarComponent, FormsModule] }) export class IgxCalendarSampleComponent { @ViewChild(IgxCalendarComponent, { static: true }) public calendar: IgxCalendarComponent; @@ -2266,7 +2271,9 @@ export class IgxCalendarSampleComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxCalendarComponent] }) export class IgxCalendarRangeComponent { @ViewChild(IgxCalendarComponent, { static: true }) public calendar: IgxCalendarComponent; @@ -2277,7 +2284,9 @@ export class IgxCalendarRangeComponent { template: ` - ` + `, + standalone: true, + imports: [IgxCalendarComponent, FormsModule] }) export class IgxCalendarDisabledSpecialDatesComponent { @ViewChild(IgxCalendarComponent, { static: true }) public calendar: IgxCalendarComponent; @@ -2290,7 +2299,9 @@ export class IgxCalendarDisabledSpecialDatesComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxCalendarComponent] }) export class IgxCalendarValueComponent { @ViewChild(IgxCalendarComponent, { static: true }) public calendar: IgxCalendarComponent; diff --git a/projects/igniteui-angular/src/lib/calendar/calendar.component.ts b/projects/igniteui-angular/src/lib/calendar/calendar.component.ts index 905149b421e..0ef3a8b89d0 100644 --- a/projects/igniteui-angular/src/lib/calendar/calendar.component.ts +++ b/projects/igniteui-angular/src/lib/calendar/calendar.component.ts @@ -15,19 +15,18 @@ import { } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { fadeIn, scaleInCenter, slideInLeft, slideInRight } from '../animations/main'; -import { - IgxCalendarHeaderTemplateDirective, - IgxCalendarSubheaderTemplateDirective -} from './calendar.directives'; -import { ICalendarDate, monthRange } from './calendar'; -import { CalendarView, IgxCalendarView, IgxMonthPickerBaseDirective } from './month-picker-base'; +import { IgxCalendarHeaderTemplateDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarScrollMonthDirective } from './calendar.directives'; +import { ICalendarDate, IgxCalendarView, ScrollMonth, monthRange } from './calendar'; +import { IgxMonthPickerBaseDirective } from './month-picker/month-picker-base'; import { IgxMonthsViewComponent } from './months-view/months-view.component'; import { IgxYearsViewComponent } from './years-view/years-view.component'; import { IgxDaysViewComponent } from './days-view/days-view.component'; import { interval, Subscription } from 'rxjs'; import { takeUntil, debounce, skipLast, switchMap } from 'rxjs/operators'; -import { ScrollMonth } from './calendar-base'; import { IViewChangingEventArgs } from './days-view/days-view.interface'; +import { IgxMonthViewSlotsCalendar, IgxGetViewDateCalendar } from './months-view.pipe'; +import { IgxIconComponent } from '../icon/icon.component'; +import { NgIf, NgTemplateOutlet, NgStyle, NgFor, DatePipe } from '@angular/common'; let NEXT_ID = 0; @@ -83,7 +82,9 @@ let NEXT_ID = 0; ]) ], selector: 'igx-calendar', - templateUrl: 'calendar.component.html' + templateUrl: 'calendar.component.html', + standalone: true, + imports: [NgIf, NgTemplateOutlet, IgxCalendarScrollMonthDirective, NgStyle, IgxIconComponent, NgFor, IgxDaysViewComponent, IgxMonthsViewComponent, IgxYearsViewComponent, DatePipe, IgxMonthViewSlotsCalendar, IgxGetViewDateCalendar] }) export class IgxCalendarComponent extends IgxMonthPickerBaseDirective implements AfterViewInit, OnDestroy { /** @@ -258,7 +259,7 @@ export class IgxCalendarComponent extends IgxMonthPickerBaseDirective implements * @internal */ public get isYearView(): boolean { - return this.activeView === CalendarView.YEAR || this.activeView === IgxCalendarView.Year; + return this.activeView === IgxCalendarView.Year; } /** @@ -919,9 +920,9 @@ export class IgxCalendarComponent extends IgxMonthPickerBaseDirective implements } let monthView = this.daysView as IgxDaysViewComponent; - let date = monthView.dates.find((d) => d.selected); + let date = monthView?.dates.find((d) => d.selected); - while (!date && monthView.nextMonthView) { + while (!date && monthView?.nextMonthView) { monthView = monthView.nextMonthView; date = monthView.dates.find((d) => d.selected); } diff --git a/projects/igniteui-angular/src/lib/calendar/calendar.directives.ts b/projects/igniteui-angular/src/lib/calendar/calendar.directives.ts index 5748eb69813..e9a4dc8b736 100644 --- a/projects/igniteui-angular/src/lib/calendar/calendar.directives.ts +++ b/projects/igniteui-angular/src/lib/calendar/calendar.directives.ts @@ -26,7 +26,8 @@ import { PlatformUtil } from '../core/utils'; * @hidden */ @Directive({ - selector: '[igxCalendarYear]' + selector: '[igxCalendarYear]', + standalone: true }) export class IgxCalendarYearDirective { @@ -77,7 +78,8 @@ export class IgxCalendarYearDirective { } @Directive({ - selector: '[igxCalendarMonth]' + selector: '[igxCalendarMonth]', + standalone: true }) export class IgxCalendarMonthDirective { @@ -119,7 +121,8 @@ export class IgxCalendarMonthDirective { * @hidden */ @Directive({ - selector: '[igxCalendarHeader]' + selector: '[igxCalendarHeader]', + standalone: true }) export class IgxCalendarHeaderTemplateDirective { @@ -130,7 +133,8 @@ export class IgxCalendarHeaderTemplateDirective { * @hidden */ @Directive({ - selector: '[igxCalendarSubheader]' + selector: '[igxCalendarSubheader]', + standalone: true }) export class IgxCalendarSubheaderTemplateDirective { constructor(public template: TemplateRef) { } @@ -140,7 +144,8 @@ export class IgxCalendarSubheaderTemplateDirective { * @hidden */ @Directive({ - selector: '[igxCalendarScrollMonth]' + selector: '[igxCalendarScrollMonth]', + standalone: true }) export class IgxCalendarScrollMonthDirective implements AfterViewInit, OnDestroy { diff --git a/projects/igniteui-angular/src/lib/calendar/calendar.module.ts b/projects/igniteui-angular/src/lib/calendar/calendar.module.ts index d2936769d14..88df25cfaf9 100644 --- a/projects/igniteui-angular/src/lib/calendar/calendar.module.ts +++ b/projects/igniteui-angular/src/lib/calendar/calendar.module.ts @@ -1,56 +1,16 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxCalendarComponent } from './calendar.component'; -import { - IgxCalendarHeaderTemplateDirective, - IgxCalendarMonthDirective, - IgxCalendarSubheaderTemplateDirective, - IgxCalendarYearDirective, - IgxCalendarScrollMonthDirective -} from './calendar.directives'; -import { IgxMonthsViewComponent } from './months-view/months-view.component'; -import { IgxYearsViewComponent } from './years-view/years-view.component'; -import { IgxDaysViewComponent } from './days-view/days-view.component'; -import { IgxDayItemComponent } from './days-view/day-item.component'; -import { IgxMonthPickerComponent } from './month-picker/month-picker.component'; -import { IgxCalendarBaseDirective } from './calendar-base'; -import { IgxMonthPickerBaseDirective } from './month-picker-base'; -import { IgxMonthViewSlotsCalendar, IgxGetViewDateCalendar } from './months-view.pipe'; +import { IGX_CALENDAR_DIRECTIVES } from './public_api'; /** * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ @NgModule({ - declarations: [ - IgxCalendarBaseDirective, - IgxMonthPickerBaseDirective, - IgxDayItemComponent, - IgxDaysViewComponent, - IgxCalendarComponent, - IgxCalendarHeaderTemplateDirective, - IgxCalendarMonthDirective, - IgxCalendarYearDirective, - IgxCalendarSubheaderTemplateDirective, - IgxCalendarScrollMonthDirective, - IgxMonthsViewComponent, - IgxYearsViewComponent, - IgxMonthPickerComponent, - IgxMonthViewSlotsCalendar, - IgxGetViewDateCalendar + imports: [ + ...IGX_CALENDAR_DIRECTIVES ], exports: [ - IgxCalendarComponent, - IgxDaysViewComponent, - IgxMonthsViewComponent, - IgxYearsViewComponent, - IgxMonthPickerComponent, - IgxCalendarHeaderTemplateDirective, - IgxCalendarMonthDirective, - IgxCalendarYearDirective, - IgxCalendarSubheaderTemplateDirective - ], - imports: [CommonModule, FormsModule, IgxIconModule] + ...IGX_CALENDAR_DIRECTIVES + ] }) export class IgxCalendarModule { } diff --git a/projects/igniteui-angular/src/lib/calendar/calendar.ts b/projects/igniteui-angular/src/lib/calendar/calendar.ts index af6d414dcf7..6715e413a3b 100644 --- a/projects/igniteui-angular/src/lib/calendar/calendar.ts +++ b/projects/igniteui-angular/src/lib/calendar/calendar.ts @@ -1,4 +1,37 @@ import { DateRangeDescriptor, DateRangeType } from '../core/dates'; +import { mkenum } from '../core/utils'; + +/** + * Sets the selection type - single, multi or range. + */ +export const CalendarSelection = mkenum({ + SINGLE: 'single', + MULTI: 'multi', + RANGE: 'range' +}); +export type CalendarSelection = (typeof CalendarSelection)[keyof typeof CalendarSelection]; + +export enum ScrollMonth { + PREV = 'prev', + NEXT = 'next', + NONE = 'none' +} + +export interface IViewDateChangeEventArgs { + previousValue: Date; + currentValue: Date; +} + +export const IgxCalendarView = mkenum({ + Month: 'month', + Year: 'year', + Decade: 'decade' +}); + +/** + * Determines the Calendar active view - days, months or years. + */ +export type IgxCalendarView = (typeof IgxCalendarView)[keyof typeof IgxCalendarView]; /** * @hidden @@ -199,7 +232,7 @@ export class Calendar { * * @memberof Calendar */ - public monthdates(year: number, month: number, extraWeek: boolean = false): ICalendarDate[] { + public monthdates(year: number, month: number, extraWeek = false): ICalendarDate[] { let date = new Date(year, month, 1); let days = (date.getDay() - this.firstWeekDay) % 7; if (days < 0) { @@ -209,6 +242,7 @@ export class Calendar { const res = []; let value: ICalendarDate; + // eslint-disable-next-line no-constant-condition while (true) { value = this.generateICalendarDate(date, year, month); @@ -240,7 +274,7 @@ export class Calendar { * * @memberof Calendar */ - public monthdatescalendar(year: number, month: number, extraWeek: boolean = false): ICalendarDate[][] { + public monthdatescalendar(year: number, month: number, extraWeek = false): ICalendarDate[][] { const dates = this.monthdates(year, month, extraWeek); const res = []; for (const i of range(0, dates.length, 7)) { diff --git a/projects/igniteui-angular/src/lib/calendar/days-view/day-item.component.ts b/projects/igniteui-angular/src/lib/calendar/days-view/day-item.component.ts index db056c253bf..752e4b11be2 100644 --- a/projects/igniteui-angular/src/lib/calendar/days-view/day-item.component.ts +++ b/projects/igniteui-angular/src/lib/calendar/days-view/day-item.component.ts @@ -1,14 +1,14 @@ import { Component, Input, Output, EventEmitter, HostBinding, ElementRef, HostListener } from '@angular/core'; -import { ICalendarDate, isDateInRanges } from '../calendar'; +import { CalendarSelection, ICalendarDate, isDateInRanges } from '../calendar'; import { DateRangeDescriptor } from '../../core/dates'; -import { CalendarSelection } from '../calendar-base'; /** * @hidden */ @Component({ selector: 'igx-day-item', - templateUrl: 'day-item.component.html' + templateUrl: 'day-item.component.html', + standalone: true }) export class IgxDayItemComponent { @Input() diff --git a/projects/igniteui-angular/src/lib/calendar/days-view/days-view.component.ts b/projects/igniteui-angular/src/lib/calendar/days-view/days-view.component.ts index b8792a8860d..4effb108582 100644 --- a/projects/igniteui-angular/src/lib/calendar/days-view/days-view.component.ts +++ b/projects/igniteui-angular/src/lib/calendar/days-view/days-view.component.ts @@ -11,14 +11,15 @@ import { OnInit, Inject, LOCALE_ID } from '@angular/core'; -import { ICalendarDate, isDateInRanges } from '../../calendar/calendar'; +import { CalendarSelection, ICalendarDate, isDateInRanges } from '../../calendar/calendar'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { IgxDayItemComponent } from './day-item.component'; import { DateRangeDescriptor, DateRangeType } from '../../core/dates'; -import { IgxCalendarBaseDirective, CalendarSelection } from '../calendar-base'; +import { IgxCalendarBaseDirective } from '../calendar-base'; import { isEqual, PlatformUtil } from '../../core/utils'; import { IViewChangingEventArgs } from './days-view.interface'; import { IgxDaysViewNavigationService } from '../days-view/daysview-navigation.service'; +import { NgIf, NgFor, TitleCasePipe } from '@angular/common'; let NEXT_ID = 0; @@ -32,7 +33,9 @@ let NEXT_ID = 0; { provide: IgxDaysViewNavigationService, useClass: IgxDaysViewNavigationService } ], selector: 'igx-days-view', - templateUrl: 'days-view.component.html' + templateUrl: 'days-view.component.html', + standalone: true, + imports: [NgIf, NgFor, IgxDayItemComponent, TitleCasePipe] }) export class IgxDaysViewComponent extends IgxCalendarBaseDirective implements DoCheck, OnInit { /** diff --git a/projects/igniteui-angular/src/lib/calendar/days-view/daysview-navigation.service.ts b/projects/igniteui-angular/src/lib/calendar/days-view/daysview-navigation.service.ts index d080dd9a71f..032f25a5aca 100644 --- a/projects/igniteui-angular/src/lib/calendar/days-view/daysview-navigation.service.ts +++ b/projects/igniteui-angular/src/lib/calendar/days-view/daysview-navigation.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { IgxDayItemComponent } from './day-item.component'; import { IgxDaysViewComponent } from './days-view.component'; -import { ScrollMonth } from '../calendar-base'; +import { ScrollMonth } from '../calendar'; enum Direction { Up = 'ArrowUp', diff --git a/projects/igniteui-angular/src/lib/calendar/month-picker-base.ts b/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker-base.ts similarity index 78% rename from projects/igniteui-angular/src/lib/calendar/month-picker-base.ts rename to projects/igniteui-angular/src/lib/calendar/month-picker/month-picker-base.ts index dc9c8c1a34f..38b1f7772a1 100644 --- a/projects/igniteui-angular/src/lib/calendar/month-picker-base.ts +++ b/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker-base.ts @@ -1,30 +1,10 @@ -import { IgxCalendarBaseDirective } from './calendar-base'; +import { IgxCalendarView } from '../calendar'; +import { IgxCalendarBaseDirective } from '../calendar-base'; import { Directive, ViewChildren, ElementRef, QueryList, Input } from '@angular/core'; -import { mkenum } from '../core/utils'; - -export const IgxCalendarView = mkenum({ - Month: 'month', - Year: 'year', - Decade: 'decade' -}); - - -/** - * @hidden - */ -export enum CalendarView { - DEFAULT, - YEAR, - DECADE -} - -/** - * Determines the Calendar active view - days, months or years. - */ -export type IgxCalendarView = (typeof IgxCalendarView)[keyof typeof IgxCalendarView] | CalendarView; @Directive({ - selector: '[igxMonthPickerBase]' + selector: '[igxMonthPickerBase]', + standalone: true }) export class IgxMonthPickerBaseDirective extends IgxCalendarBaseDirective { /** @@ -77,14 +57,14 @@ export class IgxMonthPickerBaseDirective extends IgxCalendarBaseDirective { * @hidden */ public get isDefaultView(): boolean { - return this._activeView === CalendarView.DEFAULT || this._activeView === IgxCalendarView.Month; + return this._activeView === IgxCalendarView.Month; } /** * @hidden */ public get isDecadeView(): boolean { - return this._activeView === CalendarView.DECADE || this._activeView === IgxCalendarView.Decade; + return this._activeView === IgxCalendarView.Decade; } /** diff --git a/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.spec.ts b/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.spec.ts index 50c2d43d1bc..f6dc0c74f24 100644 --- a/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.spec.ts +++ b/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.spec.ts @@ -6,15 +6,14 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { IgxMonthPickerComponent } from './month-picker.component'; -import { IgxCalendarModule } from '../calendar.module'; +import { IFormattingOptions } from '../calendar'; describe('IgxMonthPicker', () => { configureTestSuite(); beforeEach(() => { TestBed.configureTestingModule({ - declarations: [IgxMonthPickerSampleComponent], - imports: [FormsModule, NoopAnimationsModule, IgxCalendarModule] + imports: [NoopAnimationsModule, IgxMonthPickerSampleComponent] }).compileComponents(); }); @@ -90,7 +89,7 @@ describe('IgxMonthPicker', () => { const instance = fixture.componentInstance; const monthPicker = fixture.componentInstance.monthPicker; - const format = { + const format: IFormattingOptions = { day: '2-digit', month: 'long', weekday: 'long', @@ -463,7 +462,9 @@ describe('IgxMonthPicker', () => { [viewDate]="viewDate" [formatOptions]="formatOptions" [locale]="locale"> - ` + `, + standalone: true, + imports: [FormsModule, IgxMonthPickerComponent] }) export class IgxMonthPickerSampleComponent { @ViewChild(IgxMonthPickerComponent, { static: true }) public monthPicker: IgxMonthPickerComponent; @@ -472,7 +473,7 @@ export class IgxMonthPickerSampleComponent { public viewDate = new Date(2019, 1, 7); public locale = 'en'; - public formatOptions = { + public formatOptions: IFormattingOptions = { day: 'numeric', month: 'short', weekday: 'short', diff --git a/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.ts b/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.ts index 2e3db498dfd..e714a338f13 100644 --- a/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.ts +++ b/projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.ts @@ -6,14 +6,17 @@ import { Input, ElementRef } from '@angular/core'; +import { NgIf, NgStyle } from '@angular/common'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { trigger, transition, useAnimation } from '@angular/animations'; + import { fadeIn, scaleInCenter, slideInLeft, slideInRight } from '../../animations/main'; import { IgxMonthsViewComponent } from '../months-view/months-view.component'; -import { IgxMonthPickerBaseDirective, IgxCalendarView } from '../month-picker-base'; +import { IgxMonthPickerBaseDirective } from './month-picker-base'; import { IgxYearsViewComponent } from '../years-view/years-view.component'; import { IgxDaysViewComponent } from '../days-view/days-view.component'; -import { ScrollMonth } from '../calendar-base'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxCalendarView, ScrollMonth } from '../calendar'; let NEXT_ID = 0; @Component({ @@ -48,7 +51,9 @@ let NEXT_ID = 0; ]) ], selector: 'igx-month-picker', - templateUrl: 'month-picker.component.html' + templateUrl: 'month-picker.component.html', + standalone: true, + imports: [NgIf, NgStyle, IgxIconComponent, IgxMonthsViewComponent, IgxYearsViewComponent] }) export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective { /** diff --git a/projects/igniteui-angular/src/lib/calendar/months-view.pipe.ts b/projects/igniteui-angular/src/lib/calendar/months-view.pipe.ts index 9ce51f46f69..447edf0d7d3 100644 --- a/projects/igniteui-angular/src/lib/calendar/months-view.pipe.ts +++ b/projects/igniteui-angular/src/lib/calendar/months-view.pipe.ts @@ -1,8 +1,12 @@ import { Pipe, PipeTransform } from '@angular/core'; import { Calendar } from './calendar'; +/** + * @hidden + */ @Pipe({ - name: 'IgxMonthViewSlots' + name: 'IgxMonthViewSlots', + standalone: true }) export class IgxMonthViewSlotsCalendar implements PipeTransform { public transform(monthViews: number) { @@ -10,8 +14,12 @@ export class IgxMonthViewSlotsCalendar implements PipeTransform { } } +/** + * @hidden + */ @Pipe({ - name: 'IgxGetViewDate' + name: 'IgxGetViewDate', + standalone: true }) export class IgxGetViewDateCalendar implements PipeTransform { private calendar: Calendar; diff --git a/projects/igniteui-angular/src/lib/calendar/months-view/months-view.component.ts b/projects/igniteui-angular/src/lib/calendar/months-view/months-view.component.ts index 0ce616701cc..32d943cd9b4 100644 --- a/projects/igniteui-angular/src/lib/calendar/months-view/months-view.component.ts +++ b/projects/igniteui-angular/src/lib/calendar/months-view/months-view.component.ts @@ -13,13 +13,16 @@ import { Calendar } from '../calendar'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { IgxCalendarMonthDirective } from '../calendar.directives'; import { noop } from 'rxjs'; +import { NgFor, TitleCasePipe, DatePipe } from '@angular/common'; let NEXT_ID = 0; @Component({ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMonthsViewComponent, multi: true }], selector: 'igx-months-view', - templateUrl: 'months-view.component.html' + templateUrl: 'months-view.component.html', + standalone: true, + imports: [NgFor, IgxCalendarMonthDirective, TitleCasePipe, DatePipe] }) export class IgxMonthsViewComponent implements ControlValueAccessor { /** diff --git a/projects/igniteui-angular/src/lib/calendar/public_api.ts b/projects/igniteui-angular/src/lib/calendar/public_api.ts index c1573a08cc9..08ceffccb57 100644 --- a/projects/igniteui-angular/src/lib/calendar/public_api.ts +++ b/projects/igniteui-angular/src/lib/calendar/public_api.ts @@ -1,10 +1,28 @@ +import { IgxCalendarComponent } from './calendar.component'; +import { IgxCalendarHeaderTemplateDirective, IgxCalendarMonthDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarYearDirective } from './calendar.directives'; +import { IgxDaysViewComponent } from './days-view/days-view.component'; +import { IgxMonthPickerComponent } from './month-picker/month-picker.component'; +import { IgxMonthsViewComponent } from './months-view/months-view.component'; +import { IgxYearsViewComponent } from './years-view/years-view.component'; + export * from './calendar'; -export * from './calendar-base'; export * from './calendar.component'; +export * from './calendar.directives'; export * from './days-view/days-view.component'; export * from './months-view/months-view.component'; export * from './years-view/years-view.component'; export * from './month-picker/month-picker.component'; -export * from './month-picker-base'; -export * from './calendar.directives'; -export * from './calendar.module'; + +/* NOTE: Calendar directives collection for ease-of-use import in standalone components scenario */ +export const IGX_CALENDAR_DIRECTIVES = [ + IgxCalendarComponent, + IgxDaysViewComponent, + IgxMonthsViewComponent, + IgxYearsViewComponent, + IgxMonthPickerComponent, + IgxCalendarHeaderTemplateDirective, + IgxCalendarMonthDirective, + IgxCalendarYearDirective, + IgxCalendarSubheaderTemplateDirective +] as const; + diff --git a/projects/igniteui-angular/src/lib/calendar/years-view/years-view.component.ts b/projects/igniteui-angular/src/lib/calendar/years-view/years-view.component.ts index ee34740b765..617b2362493 100644 --- a/projects/igniteui-angular/src/lib/calendar/years-view/years-view.component.ts +++ b/projects/igniteui-angular/src/lib/calendar/years-view/years-view.component.ts @@ -15,6 +15,7 @@ import { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'; import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser'; import { IgxCalendarYearDirective } from '../calendar.directives'; import { noop } from 'rxjs'; +import { NgFor } from '@angular/common'; @Injectable() export class CalendarHammerConfig extends HammerGestureConfig { @@ -36,7 +37,9 @@ export class CalendarHammerConfig extends HammerGestureConfig { } ], selector: 'igx-years-view', - templateUrl: 'years-view.component.html' + templateUrl: 'years-view.component.html', + standalone: true, + imports: [NgFor, IgxCalendarYearDirective] }) export class IgxYearsViewComponent implements ControlValueAccessor { /** diff --git a/projects/igniteui-angular/src/lib/card/card.component.ts b/projects/igniteui-angular/src/lib/card/card.component.ts index d91d28cc401..119e5f9fa22 100644 --- a/projects/igniteui-angular/src/lib/card/card.component.ts +++ b/projects/igniteui-angular/src/lib/card/card.component.ts @@ -1,4 +1,3 @@ -import { CommonModule } from '@angular/common'; import { Component, Directive, @@ -6,12 +5,11 @@ import { Optional, Inject, Input, - NgModule, OnInit, OnChanges, SimpleChanges } from '@angular/core'; -import { IgxButtonModule } from '../directives/button/button.directive'; + import { mkenum } from '../core/utils'; let NEXT_ID = 0; @@ -22,7 +20,8 @@ let NEXT_ID = 0; */ @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector - selector: 'igx-card-media' + selector: 'igx-card-media', + standalone: true }) export class IgxCardMediaDirective { /** @hidden @internal */ @@ -69,7 +68,8 @@ export class IgxCardMediaDirective { */ @Component({ selector: 'igx-card-header', - templateUrl: 'card-header.component.html' + templateUrl: 'card-header.component.html', + standalone: true }) export class IgxCardHeaderComponent { /** @hidden @internal */ @@ -95,7 +95,8 @@ export class IgxCardHeaderComponent { * Use it to wrap anything you want to be used as a thumbnail. */ @Directive({ - selector: '[igxCardThumbnail]' + selector: '[igxCardThumbnail]', + standalone: true }) export class IgxCardThumbnailDirective { } @@ -104,7 +105,8 @@ export class IgxCardThumbnailDirective { } * Use it to tag text nodes. */ @Directive({ - selector: '[igxCardHeaderTitle]' + selector: '[igxCardHeaderTitle]', + standalone: true }) export class IgxCardHeaderTitleDirective { /** @hidden @internal */ @@ -117,7 +119,8 @@ export class IgxCardHeaderTitleDirective { * Use it to tag text nodes. */ @Directive({ - selector: '[igxCardHeaderSubtitle]' + selector: '[igxCardHeaderSubtitle]', + standalone: true }) export class IgxCardHeaderSubtitleDirective { /** @hidden @internal */ @@ -129,7 +132,8 @@ export class IgxCardHeaderSubtitleDirective { */ @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector - selector: 'igx-card-content' + selector: 'igx-card-content', + standalone: true }) export class IgxCardContentDirective { /** @hidden @internal */ @@ -142,7 +146,8 @@ export class IgxCardContentDirective { */ @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector - selector: 'igx-card-footer' + selector: 'igx-card-footer', + standalone: true }) export class IgxCardFooterDirective { /** @@ -197,7 +202,8 @@ export type IgxCardType = (typeof IgxCardType)[keyof typeof IgxCardType]; @Component({ selector: 'igx-card', - templateUrl: 'card.component.html' + templateUrl: 'card.component.html', + standalone: true }) export class IgxCardComponent { /** @@ -278,7 +284,8 @@ export type IgxCardActionsLayout = (typeof IgxCardActionsLayout)[keyof typeof Ig @Component({ // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-card-actions', - templateUrl: 'card-actions.component.html' + templateUrl: 'card-actions.component.html', + standalone: true }) export class IgxCardActionsComponent implements OnInit, OnChanges { /** @@ -315,7 +322,7 @@ export class IgxCardActionsComponent implements OnInit, OnChanges { /** * @deprecated in version 15.1.0. - * + * * An @Input property that reverses the order of the buttons in the actions area. * * @example @@ -350,36 +357,7 @@ export class IgxCardActionsComponent implements OnInit, OnChanges { public ngOnInit() { if (!this.isVerticalSet && this.card.horizontal) { this.vertical = true; - }; + } } } -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxCardComponent, - IgxCardHeaderComponent, - IgxCardMediaDirective, - IgxCardContentDirective, - IgxCardActionsComponent, - IgxCardFooterDirective, - IgxCardHeaderTitleDirective, - IgxCardHeaderSubtitleDirective, - IgxCardThumbnailDirective, - ], - exports: [ - IgxCardComponent, - IgxCardHeaderComponent, - IgxCardMediaDirective, - IgxCardContentDirective, - IgxCardActionsComponent, - IgxCardFooterDirective, - IgxCardHeaderTitleDirective, - IgxCardHeaderSubtitleDirective, - IgxCardThumbnailDirective, - ], - imports: [CommonModule, IgxButtonModule] -}) -export class IgxCardModule { } diff --git a/projects/igniteui-angular/src/lib/card/card.module.ts b/projects/igniteui-angular/src/lib/card/card.module.ts new file mode 100644 index 00000000000..19d252da76f --- /dev/null +++ b/projects/igniteui-angular/src/lib/card/card.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_CARD_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_CARD_DIRECTIVES + ], + exports: [ + ...IGX_CARD_DIRECTIVES + ] +}) +export class IgxCardModule { } diff --git a/projects/igniteui-angular/src/lib/card/card.spec.ts b/projects/igniteui-angular/src/lib/card/card.spec.ts index f933a0d1ccc..041ebe3ef9b 100644 --- a/projects/igniteui-angular/src/lib/card/card.spec.ts +++ b/projects/igniteui-angular/src/lib/card/card.spec.ts @@ -2,7 +2,6 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { - IgxCardModule, IgxCardComponent, IgxCardType, IgxCardThumbnailDirective, @@ -10,14 +9,17 @@ import { IgxCardHeaderSubtitleDirective, IgxCardActionsComponent, IgxCardMediaDirective, + IgxCardHeaderComponent, + IgxCardContentDirective, } from './card.component'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxIconModule } from '../icon/public_api'; import { configureTestSuite } from '../test-utils/configure-suite'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxIconComponent } from '../icon/icon.component'; describe('Card', () => { configureTestSuite(); + // TODO: Refactor card tests to reuse components const baseClass = 'igx-card'; const classes = { @@ -64,17 +66,12 @@ describe('Card', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ InitCardComponent, InitOutlinedCardComponent, CardWithHeaderComponent, VerticalCardComponent, HorizontalCardComponent - ], - imports: [ - IgxCardModule, - IgxIconModule, - IgxButtonModule ] }).compileComponents(); })); @@ -262,12 +259,16 @@ describe('Card', () => { }); @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxCardComponent] }) class InitCardComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxCardComponent] }) class InitOutlinedCardComponent { @ViewChild(IgxCardComponent, { static: true }) @@ -277,7 +278,9 @@ class InitOutlinedCardComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxCardComponent, IgxCardHeaderComponent] }) class CardWithHeaderComponent { } @@ -301,21 +304,37 @@ class CardWithHeaderComponent { } home - ` + `, + standalone: true, + imports: [ + IgxCardComponent, + IgxCardMediaDirective, + IgxCardHeaderComponent, + IgxCardThumbnailDirective, + IgxCardHeaderTitleDirective, + IgxCardHeaderSubtitleDirective, + IgxCardContentDirective, + IgxCardActionsComponent, + IgxButtonDirective, + IgxIconComponent + ] }) class VerticalCardComponent { @ViewChild(IgxCardMediaDirective, { static: true }) public media: IgxCardMediaDirective; } @Component({ - template: ` + template: ` + - ` + `, + standalone: true, + imports: [IgxCardComponent, IgxCardActionsComponent, IgxButtonDirective, IgxIconComponent] }) class HorizontalCardComponent { @ViewChild(IgxCardComponent, { static: true }) public card: IgxCardComponent; diff --git a/projects/igniteui-angular/src/lib/card/public_api.ts b/projects/igniteui-angular/src/lib/card/public_api.ts new file mode 100644 index 00000000000..c243c9588c2 --- /dev/null +++ b/projects/igniteui-angular/src/lib/card/public_api.ts @@ -0,0 +1,26 @@ +import { + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardFooterDirective, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxCardThumbnailDirective +} from './card.component'; + +export * from './card.component'; + +/* NOTE: Card directives collection for ease-of-use import in standalone components scenario */ +export const IGX_CARD_DIRECTIVES = [ + IgxCardComponent, + IgxCardHeaderComponent, + IgxCardMediaDirective, + IgxCardContentDirective, + IgxCardActionsComponent, + IgxCardFooterDirective, + IgxCardHeaderTitleDirective, + IgxCardHeaderSubtitleDirective, + IgxCardThumbnailDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/carousel/carousel.component.spec.ts b/projects/igniteui-angular/src/lib/carousel/carousel.component.spec.ts index 612fba3d567..dc7926d28f3 100644 --- a/projects/igniteui-angular/src/lib/carousel/carousel.component.spec.ts +++ b/projects/igniteui-angular/src/lib/carousel/carousel.component.spec.ts @@ -3,7 +3,6 @@ import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { IgxCarouselComponent, - IgxCarouselModule, ISlideEventArgs, CarouselIndicatorsOrientation } from './carousel.component'; @@ -12,6 +11,8 @@ import { configureTestSuite } from '../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxSlideComponent } from './slide.component'; import { HorizontalAnimationType } from './carousel-base'; +import { IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective } from './carousel.directives'; +import { NgFor, NgIf } from '@angular/common'; describe('Carousel', () => { configureTestSuite(); @@ -20,16 +21,15 @@ describe('Carousel', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, CarouselTestComponent, CarouselTemplateSetInMarkupTestComponent, CarouselTemplateSetInTypescriptTestComponent, CarouselAnimationsComponent, CarouselDynamicSlidesComponent - ], - imports: [IgxCarouselModule, NoopAnimationsModule] - }) - .compileComponents(); + ] + }).compileComponents(); })); describe('Base Tests: ', () => { @@ -939,7 +939,9 @@ class HelperTestFunctions {

Slide3

Slide4

- ` + `, + standalone: true, + imports: [IgxCarouselComponent, IgxSlideComponent] }) class CarouselTestComponent { @ViewChild('carousel', { static: true }) public carousel: IgxCarouselComponent; @@ -957,7 +959,9 @@ class CarouselTestComponent {

Slide3

Slide4

- ` + `, + standalone: true, + imports: [IgxCarouselComponent, IgxSlideComponent] }) class CarouselAnimationsComponent { @ViewChild('carousel', { static: true }) public carousel: IgxCarouselComponent; @@ -984,7 +988,9 @@ class CarouselAnimationsComponent { prev - ` + `, + standalone: true, + imports: [IgxCarouselComponent, IgxSlideComponent, IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective] }) class CarouselTemplateSetInMarkupTestComponent { @ViewChild('carousel', { static: true }) public carousel: IgxCarouselComponent; @@ -1015,7 +1021,9 @@ class CarouselTemplateSetInMarkupTestComponent {

Slide3

Slide4

- ` + `, + standalone: true, + imports: [IgxCarouselComponent, IgxSlideComponent, NgIf] }) class CarouselTemplateSetInTypescriptTestComponent { @ViewChild('carousel', { static: true }) public carousel: IgxCarouselComponent; @@ -1032,11 +1040,13 @@ class CarouselTemplateSetInTypescriptTestComponent { @Component({ template: ` - +

{{slide.text}}

- ` + `, + standalone: true, + imports: [IgxCarouselComponent, IgxSlideComponent, NgFor] }) class CarouselDynamicSlidesComponent { @ViewChild('carousel', { static: true }) public carousel: IgxCarouselComponent; diff --git a/projects/igniteui-angular/src/lib/carousel/carousel.component.ts b/projects/igniteui-angular/src/lib/carousel/carousel.component.ts index 7d50fffa13d..2cccb2422e8 100644 --- a/projects/igniteui-angular/src/lib/carousel/carousel.component.ts +++ b/projects/igniteui-angular/src/lib/carousel/carousel.component.ts @@ -1,4 +1,4 @@ -import { CommonModule } from '@angular/common'; +import { NgIf, NgClass, NgFor, NgTemplateOutlet } from '@angular/common'; import { AfterContentInit, ChangeDetectorRef, @@ -15,7 +15,6 @@ import { IterableChangeRecord, IterableDiffer, IterableDiffers, - NgModule, OnDestroy, Output, QueryList, @@ -28,12 +27,13 @@ import { takeUntil } from 'rxjs/operators'; import { ICarouselResourceStrings } from '../core/i18n/carousel-resources'; import { CurrentResourceStrings } from '../core/i18n/resources'; import { IBaseEventArgs, mkenum, PlatformUtil } from '../core/utils'; -import { IgxIconModule } from '../icon/public_api'; + import { IgxAngularAnimationService } from '../services/animation/angular-animation-service'; import { AnimationService } from '../services/animation/animation'; import { Direction, HorizontalAnimationType, IgxCarouselComponentBase } from './carousel-base'; import { IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective } from './carousel.directives'; import { IgxSlideComponent } from './slide.component'; +import { IgxIconComponent } from '../icon/icon.component'; let NEXT_ID = 0; @@ -83,7 +83,9 @@ export class CarouselHammerConfig extends HammerGestureConfig { :host { display: block; outline-style: none; - }`] + }`], + standalone: true, + imports: [IgxIconComponent, NgIf, NgClass, NgFor, NgTemplateOutlet] }) export class IgxCarouselComponent extends IgxCarouselComponentBase implements OnDestroy, AfterContentInit { @@ -1026,26 +1028,3 @@ export interface ISlideEventArgs extends IBaseEventArgs { carousel: IgxCarouselComponent; slide: IgxSlideComponent; } - -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxCarouselComponent, - IgxSlideComponent, - IgxCarouselIndicatorDirective, - IgxCarouselNextButtonDirective, - IgxCarouselPrevButtonDirective - ], - exports: [ - IgxCarouselComponent, - IgxSlideComponent, - IgxCarouselIndicatorDirective, - IgxCarouselNextButtonDirective, - IgxCarouselPrevButtonDirective - ], - imports: [CommonModule, IgxIconModule] -}) -export class IgxCarouselModule { -} diff --git a/projects/igniteui-angular/src/lib/carousel/carousel.directives.ts b/projects/igniteui-angular/src/lib/carousel/carousel.directives.ts index 366d6fcc03e..3803cd6cc75 100644 --- a/projects/igniteui-angular/src/lib/carousel/carousel.directives.ts +++ b/projects/igniteui-angular/src/lib/carousel/carousel.directives.ts @@ -1,19 +1,22 @@ import { Directive } from '@angular/core'; @Directive({ - selector: '[igxCarouselIndicator]' + selector: '[igxCarouselIndicator]', + standalone: true }) export class IgxCarouselIndicatorDirective { } @Directive({ - selector: '[igxCarouselNextButton]' + selector: '[igxCarouselNextButton]', + standalone: true }) export class IgxCarouselNextButtonDirective { } @Directive({ - selector: '[igxCarouselPrevButton]' + selector: '[igxCarouselPrevButton]', + standalone: true }) export class IgxCarouselPrevButtonDirective { } diff --git a/projects/igniteui-angular/src/lib/carousel/carousel.module.ts b/projects/igniteui-angular/src/lib/carousel/carousel.module.ts new file mode 100644 index 00000000000..a12ed7eb531 --- /dev/null +++ b/projects/igniteui-angular/src/lib/carousel/carousel.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { IGX_CAROUSEL_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_CAROUSEL_DIRECTIVES + ], + exports: [ + ...IGX_CAROUSEL_DIRECTIVES + ] +}) +export class IgxCarouselModule { +} diff --git a/projects/igniteui-angular/src/lib/carousel/public_api.ts b/projects/igniteui-angular/src/lib/carousel/public_api.ts index 619ce8843f6..e9d09055084 100644 --- a/projects/igniteui-angular/src/lib/carousel/public_api.ts +++ b/projects/igniteui-angular/src/lib/carousel/public_api.ts @@ -1,4 +1,17 @@ -export * from './carousel-base'; +import { IgxCarouselComponent } from './carousel.component'; +import { IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective } from './carousel.directives'; +import { IgxSlideComponent } from './slide.component'; + +export { Direction, HorizontalAnimationType, CarouselAnimationSettings } from './carousel-base'; export * from './carousel.component'; export * from './slide.component'; export * from './carousel.directives'; + +/* NOTE: Carousel directives collection for ease-of-use import in standalone components scenario */ +export const IGX_CAROUSEL_DIRECTIVES = [ + IgxCarouselComponent, + IgxSlideComponent, + IgxCarouselIndicatorDirective, + IgxCarouselNextButtonDirective, + IgxCarouselPrevButtonDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/carousel/slide.component.ts b/projects/igniteui-angular/src/lib/carousel/slide.component.ts index da25be022f6..ea7c4769863 100644 --- a/projects/igniteui-angular/src/lib/carousel/slide.component.ts +++ b/projects/igniteui-angular/src/lib/carousel/slide.component.ts @@ -16,7 +16,8 @@ import { Direction, IgxSlideComponentBase } from './carousel-base'; */ @Component({ selector: 'igx-slide', - templateUrl: 'slide.component.html' + templateUrl: 'slide.component.html', + standalone: true }) export class IgxSlideComponent implements AfterContentChecked, OnDestroy, IgxSlideComponentBase { diff --git a/projects/igniteui-angular/src/lib/checkbox/checkbox.component.spec.ts b/projects/igniteui-angular/src/lib/checkbox/checkbox.component.spec.ts index c9f0fb9e9e0..e24e574d27b 100644 --- a/projects/igniteui-angular/src/lib/checkbox/checkbox.component.spec.ts +++ b/projects/igniteui-angular/src/lib/checkbox/checkbox.component.spec.ts @@ -2,7 +2,6 @@ import { Component, ViewChild } from '@angular/core'; import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { UntypedFormBuilder, FormsModule, ReactiveFormsModule, Validators, NgForm } from '@angular/forms'; import { By } from '@angular/platform-browser'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; import { IgxCheckboxComponent } from './checkbox.component'; import { configureTestSuite } from '../test-utils/configure-suite'; @@ -12,7 +11,8 @@ describe('IgxCheckbox', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, InitCheckboxComponent, CheckboxSimpleComponent, CheckboxReadonlyComponent, @@ -24,8 +24,7 @@ describe('IgxCheckbox', () => { CheckboxFormComponent, CheckboxFormGroupComponent, IgxCheckboxComponent - ], - imports: [FormsModule, ReactiveFormsModule, IgxRippleModule, NoopAnimationsModule] + ] }).compileComponents(); })); @@ -413,14 +412,20 @@ describe('IgxCheckbox', () => { }); }); -@Component({ template: `Init` }) +@Component({ + template: `Init`, + standalone: true, + imports: [IgxCheckboxComponent] +}) class InitCheckboxComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; } @Component({ template: `Simple` + [(ngModel)]="subscribed">Simple`, + standalone: true, + imports: [IgxCheckboxComponent, FormsModule] }) class CheckboxSimpleComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; @@ -438,7 +443,10 @@ class CheckboxSimpleComponent { template: `Indeterminate`}) + >Indeterminate`, + standalone: true, + imports: [IgxCheckboxComponent, FormsModule] +}) class CheckboxIndeterminateComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; @@ -446,7 +454,9 @@ class CheckboxIndeterminateComponent { } @Component({ - template: `Required` + template: `Required`, + standalone: true, + imports: [IgxCheckboxComponent] }) class CheckboxRequiredComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; @@ -457,7 +467,10 @@ class CheckboxRequiredComponent { [(ngModel)]="subscribed" [checked]="subscribed" [indeterminate]="true" - [readonly]="true">Readonly`}) + [readonly]="true">Readonly`, + standalone: true, + imports: [IgxCheckboxComponent, FormsModule] +}) class CheckboxReadonlyComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; @@ -466,7 +479,9 @@ class CheckboxReadonlyComponent { @Component({ template: `

{{label}}

- ` + `, + standalone: true, + imports: [IgxCheckboxComponent] }) class CheckboxExternalLabelComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; @@ -474,7 +489,9 @@ class CheckboxExternalLabelComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxCheckboxComponent] }) class CheckboxInvisibleLabelComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; @@ -482,14 +499,18 @@ class CheckboxInvisibleLabelComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxCheckboxComponent] }) class CheckboxDisabledTransitionsComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; } @Component({ - template: `
Form Group
` + template: `
Form Group
`, + standalone: true, + imports: [IgxCheckboxComponent, ReactiveFormsModule] }) class CheckboxFormGroupComponent { @ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent; @@ -503,7 +524,9 @@ class CheckboxFormGroupComponent {
Checkbox
-` + `, + standalone: true, + imports: [IgxCheckboxComponent, FormsModule] }) class CheckboxFormComponent { @ViewChild('checkbox', { read: IgxCheckboxComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/checkbox/checkbox.component.ts b/projects/igniteui-angular/src/lib/checkbox/checkbox.component.ts index d3d11d854e4..f7eda5d15ce 100644 --- a/projects/igniteui-angular/src/lib/checkbox/checkbox.component.ts +++ b/projects/igniteui-angular/src/lib/checkbox/checkbox.component.ts @@ -4,7 +4,6 @@ import { HostListener, HostBinding, Input, - NgModule, Output, ViewChild, ElementRef, @@ -12,10 +11,10 @@ import { ChangeDetectorRef, Renderer2, Optional, - Self, + Self } from '@angular/core'; import { ControlValueAccessor, NgControl, Validators } from '@angular/forms'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; import { IBaseEventArgs, mkenum } from '../core/utils'; import { EditorProvider, EDITOR_PROVIDER } from '../core/edit-provider'; import { noop, Subject } from 'rxjs'; @@ -58,12 +57,14 @@ let nextId = 0; @Component({ selector: 'igx-checkbox', providers: [{ - provide: EDITOR_PROVIDER, - useExisting: IgxCheckboxComponent, + provide: EDITOR_PROVIDER, + useExisting: IgxCheckboxComponent, multi: true }], preserveWhitespaces: false, - templateUrl: 'checkbox.component.html' + templateUrl: 'checkbox.component.html', + standalone: true, + imports: [IgxRippleDirective] }) export class IgxCheckboxComponent implements EditorProvider, AfterViewInit, ControlValueAccessor { private static ngAcceptInputType_required: boolean | ''; @@ -607,13 +608,3 @@ export class IgxCheckboxComponent implements EditorProvider, AfterViewInit, Cont } } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxCheckboxComponent], - exports: [IgxCheckboxComponent], - imports: [IgxRippleModule] -}) -export class IgxCheckboxModule {} diff --git a/projects/igniteui-angular/src/lib/checkbox/checkbox.module.ts b/projects/igniteui-angular/src/lib/checkbox/checkbox.module.ts new file mode 100644 index 00000000000..5ad2cd5dbe9 --- /dev/null +++ b/projects/igniteui-angular/src/lib/checkbox/checkbox.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxCheckboxComponent } from './checkbox.component'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxCheckboxComponent], + exports: [IgxCheckboxComponent] +}) +export class IgxCheckboxModule {} diff --git a/projects/igniteui-angular/src/lib/chips/chip.component.ts b/projects/igniteui-angular/src/lib/chips/chip.component.ts index 10e8ebc2ee7..e1a19a1e049 100644 --- a/projects/igniteui-angular/src/lib/chips/chip.component.ts +++ b/projects/igniteui-angular/src/lib/chips/chip.component.ts @@ -14,19 +14,15 @@ Optional, OnDestroy } from '@angular/core'; -import { IDisplayDensityOptions, DisplayDensityToken, DisplayDensityBase } from '../core/displayDensity'; -import { - IgxDragDirective, - IDragBaseEventArgs, - IDragStartEventArgs, - IDropBaseEventArgs, - IDropDroppedEventArgs -} from '../directives/drag-drop/drag-drop.directive'; +import { IDisplayDensityOptions, DisplayDensityToken, DisplayDensityBase } from '../core/density'; +import { IgxDragDirective, IDragBaseEventArgs, IDragStartEventArgs, IDropBaseEventArgs, IDropDroppedEventArgs, IgxDropDirective } from '../directives/drag-drop/drag-drop.directive'; import { IBaseEventArgs } from '../core/utils'; import { IChipResourceStrings } from '../core/i18n/chip-resources'; import { CurrentResourceStrings } from '../core/i18n/resources'; import { fromEvent, Subject } from 'rxjs'; import { take, filter } from 'rxjs/operators'; +import { IgxIconComponent } from '../icon/icon.component'; +import { NgClass, NgTemplateOutlet, NgIf } from '@angular/common'; export interface IBaseChipEventArgs extends IBaseEventArgs { originalEvent: IDragBaseEventArgs | IDropBaseEventArgs | KeyboardEvent | MouseEvent | TouchEvent; @@ -78,7 +74,9 @@ let CHIP_ID = 0; */ @Component({ selector: 'igx-chip', - templateUrl: 'chip.component.html' + templateUrl: 'chip.component.html', + standalone: true, + imports: [IgxDropDirective, IgxDragDirective, NgClass, NgTemplateOutlet, NgIf, IgxIconComponent] }) export class IgxChipComponent extends DisplayDensityBase implements OnDestroy { /** @@ -591,7 +589,7 @@ export class IgxChipComponent extends DisplayDensityBase implements OnDestroy { } public onSelectTransitionDone(event) { - if (!!event.target.tagName) { + if (event.target.tagName) { // Trigger onSelectionDone on when `width` property is changed and the target is valid element(not comment). this.selectedChanged.emit({ owner: this, diff --git a/projects/igniteui-angular/src/lib/chips/chip.spec.ts b/projects/igniteui-angular/src/lib/chips/chip.spec.ts index 173a433c088..1fef7aad5ef 100644 --- a/projects/igniteui-angular/src/lib/chips/chip.spec.ts +++ b/projects/igniteui-angular/src/lib/chips/chip.spec.ts @@ -1,18 +1,17 @@ import { Component, ViewChild, ViewChildren, QueryList, ChangeDetectorRef } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxChipsModule } from './chips.module'; import { IgxChipComponent } from './chip.component'; import { IgxChipsAreaComponent } from './chips-area.component'; import { IgxPrefixDirective } from './../directives/prefix/prefix.directive'; import { IgxLabelDirective } from './../directives/label/label.directive'; import { IgxSuffixDirective } from './../directives/suffix/suffix.directive'; -import { DisplayDensity } from '../core/displayDensity'; +import { DisplayDensity } from '../core/density'; import { UIInteractions, wait } from '../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../test-utils/configure-suite'; import { ControlsFunction } from '../test-utils/controls-functions.spec'; +import { IgxIconComponent } from '../icon/icon.component'; +import { NgFor } from '@angular/common'; @Component({ template: ` @@ -40,7 +39,9 @@ import { ControlsFunction } from '../test-utils/controls-functions.spec'; Tab Chip - ` + `, + standalone: true, + imports: [IgxChipComponent, IgxChipsAreaComponent, IgxIconComponent, IgxPrefixDirective, NgFor] }) class TestChipComponent { @@ -73,7 +74,9 @@ class TestChipComponent { suf - ` + `, + standalone: true, + imports: [IgxChipsAreaComponent, IgxChipComponent, IgxLabelDirective, IgxSuffixDirective, NgFor] }) class TestChipsLabelAndSuffixComponent { @@ -107,12 +110,7 @@ describe('IgxChip', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestChipComponent, - TestChipsLabelAndSuffixComponent, - IgxLabelDirective - ], - imports: [FormsModule, IgxIconModule, IgxChipsModule] + imports: [TestChipComponent, TestChipsLabelAndSuffixComponent] }).compileComponents(); })); diff --git a/projects/igniteui-angular/src/lib/chips/chips-area.component.ts b/projects/igniteui-angular/src/lib/chips/chips-area.component.ts index f302f556da5..5f6fc37899c 100644 --- a/projects/igniteui-angular/src/lib/chips/chips-area.component.ts +++ b/projects/igniteui-angular/src/lib/chips/chips-area.component.ts @@ -63,6 +63,7 @@ export interface IChipsAreaSelectEventArgs extends IBaseChipsAreaEventArgs { @Component({ selector: 'igx-chips-area', templateUrl: 'chips-area.component.html', + standalone: true }) export class IgxChipsAreaComponent implements DoCheck, AfterViewInit, OnDestroy { diff --git a/projects/igniteui-angular/src/lib/chips/chips-area.spec.ts b/projects/igniteui-angular/src/lib/chips/chips-area.spec.ts index 7d2a559c3bd..cace759c6f6 100644 --- a/projects/igniteui-angular/src/lib/chips/chips-area.spec.ts +++ b/projects/igniteui-angular/src/lib/chips/chips-area.spec.ts @@ -1,15 +1,13 @@ import { Component, ViewChild, ViewChildren, QueryList, ChangeDetectorRef } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; -import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxChipsModule } from './chips.module'; -import { IgxPrefixModule } from '../directives/prefix/prefix.directive'; -import { IgxSuffixModule } from '../directives/suffix/suffix.directive'; import { IgxChipComponent } from './chip.component'; import { IgxChipsAreaComponent } from './chips-area.component'; import { configureTestSuite } from '../test-utils/configure-suite'; import { wait, UIInteractions } from '../test-utils/ui-interactions.spec'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxPrefixDirective } from './public_api'; +import { NgFor } from '@angular/common'; @Component({ template: ` @@ -20,7 +18,9 @@ import { wait, UIInteractions } from '../test-utils/ui-interactions.spec'; {{chip.text}} - ` + `, + standalone: true, + imports: [IgxChipsAreaComponent, IgxChipComponent, IgxIconComponent, IgxPrefixDirective, NgFor] }) class TestChipComponent { @ViewChild('chipsArea', { read: IgxChipsAreaComponent, static: true }) @@ -50,7 +50,9 @@ class TestChipComponent { third chip - ` + `, + standalone: true, + imports: [IgxChipsAreaComponent, IgxChipComponent] }) class TestChipSelectComponent extends TestChipComponent { } @@ -64,7 +66,9 @@ class TestChipSelectComponent extends TestChipComponent { {{chip.text}} - ` + `, + standalone: true, + imports: [IgxChipsAreaComponent, IgxChipComponent, IgxIconComponent, IgxPrefixDirective, NgFor] }) class TestChipReorderComponent { @ViewChild('chipsArea', { read: IgxChipsAreaComponent, static: true }) @@ -110,12 +114,11 @@ describe('IgxChipsArea ', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ TestChipComponent, TestChipReorderComponent, TestChipSelectComponent - ], - imports: [FormsModule, IgxIconModule, IgxChipsModule, IgxPrefixModule, IgxSuffixModule] + ] }).compileComponents(); })); diff --git a/projects/igniteui-angular/src/lib/chips/chips.module.ts b/projects/igniteui-angular/src/lib/chips/chips.module.ts index e4e36282313..88e0c339e9a 100644 --- a/projects/igniteui-angular/src/lib/chips/chips.module.ts +++ b/projects/igniteui-angular/src/lib/chips/chips.module.ts @@ -1,38 +1,16 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxAvatarModule } from '../avatar/avatar.component'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxChipComponent } from './chip.component'; -import { IgxChipsAreaComponent } from './chips-area.component'; -import { IgxDragDropModule } from '../directives/drag-drop/drag-drop.directive'; -import { IgxPrefixModule, IgxPrefixDirective} from '../directives/prefix/prefix.directive'; -import { IgxSuffixModule, IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IGX_CHIPS_DIRECTIVES } from './public_api'; /** * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ @NgModule({ - declarations: [ - IgxChipsAreaComponent, - IgxChipComponent - ], - exports: [ - IgxChipsAreaComponent, - IgxChipComponent, - IgxPrefixDirective, - IgxSuffixDirective - ], - imports: [ - CommonModule, - IgxRippleModule, - IgxIconModule, - IgxButtonModule, - IgxAvatarModule, - IgxDragDropModule, - IgxPrefixModule, - IgxSuffixModule - ] + exports: [ + ...IGX_CHIPS_DIRECTIVES + ], + imports: [ + ...IGX_CHIPS_DIRECTIVES + ] }) export class IgxChipsModule { } diff --git a/projects/igniteui-angular/src/lib/chips/public_api.ts b/projects/igniteui-angular/src/lib/chips/public_api.ts index 98832c937ab..82ae3e9a1b7 100644 --- a/projects/igniteui-angular/src/lib/chips/public_api.ts +++ b/projects/igniteui-angular/src/lib/chips/public_api.ts @@ -1,5 +1,17 @@ +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxChipComponent } from './chip.component'; +import { IgxChipsAreaComponent } from './chips-area.component'; + export * from './chip.component'; export * from './chips-area.component'; -export * from './chips.module'; export * from '../directives/prefix/prefix.directive'; export * from '../directives/suffix/suffix.directive'; + +/* NOTE: Chips directives collection for ease-of-use import in standalone components scenario */ +export const IGX_CHIPS_DIRECTIVES = [ + IgxChipsAreaComponent, + IgxChipComponent, + IgxPrefixDirective, + IgxSuffixDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/combo/combo-add-item.component.ts b/projects/igniteui-angular/src/lib/combo/combo-add-item.component.ts index 23a6f348e9d..3cde2cd29bc 100644 --- a/projects/igniteui-angular/src/lib/combo/combo-add-item.component.ts +++ b/projects/igniteui-angular/src/lib/combo/combo-add-item.component.ts @@ -7,7 +7,8 @@ import { Component } from '@angular/core'; @Component({ selector: 'igx-combo-add-item', template: '', - providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent}] + providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }], + standalone: true }) export class IgxComboAddItemComponent extends IgxComboItemComponent { public override get selected(): boolean { diff --git a/projects/igniteui-angular/src/lib/combo/combo-dropdown.component.ts b/projects/igniteui-angular/src/lib/combo/combo-dropdown.component.ts index 42fc9699677..60d797cb01e 100644 --- a/projects/igniteui-angular/src/lib/combo/combo-dropdown.component.ts +++ b/projects/igniteui-angular/src/lib/combo/combo-dropdown.component.ts @@ -11,12 +11,16 @@ import { IgxDropDownItemBaseDirective } from '../drop-down/drop-down-item.base'; import { IgxSelectionAPIService } from '../core/selection'; import { IgxComboItemComponent } from './combo-item.component'; import { DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; +import { NgIf } from '@angular/common'; +import { IgxToggleDirective } from '../directives/toggle/toggle.directive'; /** @hidden */ @Component({ selector: 'igx-combo-drop-down', templateUrl: '../drop-down/drop-down.component.html', - providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }] + providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }], + standalone: true, + imports: [IgxToggleDirective, NgIf] }) export class IgxComboDropDownComponent extends IgxDropDownComponent implements IDropDownBase, OnDestroy, AfterViewInit { /** @hidden @internal */ diff --git a/projects/igniteui-angular/src/lib/combo/combo-item.component.ts b/projects/igniteui-angular/src/lib/combo/combo-item.component.ts index 13bfdb9e4e7..39a3c43af06 100644 --- a/projects/igniteui-angular/src/lib/combo/combo-item.component.ts +++ b/projects/igniteui-angular/src/lib/combo/combo-item.component.ts @@ -10,11 +10,15 @@ import { IGX_DROPDOWN_BASE, IDropDownBase, Navigate } from '../drop-down/drop-do import { IgxComboAPIService } from './combo.api'; import { IgxSelectionAPIService } from '../core/selection'; import { rem } from '../core/utils'; +import { IgxCheckboxComponent } from '../checkbox/checkbox.component'; +import { NgIf } from '@angular/common'; /** @hidden */ @Component({ selector: 'igx-combo-item', - templateUrl: 'combo-item.component.html' + templateUrl: 'combo-item.component.html', + standalone: true, + imports: [NgIf, IgxCheckboxComponent] }) export class IgxComboItemComponent extends IgxDropDownItemComponent { diff --git a/projects/igniteui-angular/src/lib/combo/combo.common.ts b/projects/igniteui-angular/src/lib/combo/combo.common.ts index f416ac71735..4334c69371e 100644 --- a/projects/igniteui-angular/src/lib/combo/combo.common.ts +++ b/projects/igniteui-angular/src/lib/combo/combo.common.ts @@ -27,12 +27,12 @@ import { AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms import { caseSensitive } from '@igniteui/material-icons-extended'; import { noop, Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; -import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/displayDensity'; +import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { IgxSelectionAPIService } from '../core/selection'; import { CancelableBrowserEventArgs, cloneArray, IBaseCancelableBrowserEventArgs, IBaseEventArgs, isNaNvalue, rem } from '../core/utils'; import { SortingDirection } from '../data-operations/sorting-strategy'; import { IForOfState, IgxForOfDirective } from '../directives/for-of/for_of.directive'; -import { IgxIconService } from '../icon/public_api'; +import { IgxIconService } from '../icon/icon.service'; import { IgxInputGroupType, IGX_INPUT_GROUP_TYPE } from '../input-group/inputGroupType'; import { IgxInputDirective, IgxInputGroupComponent, IgxInputState, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective } from '../input-group/public_api'; import { AbsoluteScrollStrategy, AutoPositionStrategy, OverlaySettings } from '../services/public_api'; diff --git a/projects/igniteui-angular/src/lib/combo/combo.component.spec.ts b/projects/igniteui-angular/src/lib/combo/combo.component.spec.ts index 4a826f8c0e1..ab2ddf37c7a 100644 --- a/projects/igniteui-angular/src/lib/combo/combo.component.spec.ts +++ b/projects/igniteui-angular/src/lib/combo/combo.component.spec.ts @@ -1,3 +1,4 @@ +import { AsyncPipe } from '@angular/common'; import { AfterViewInit, ChangeDetectorRef, Component, DebugElement, Injectable, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing'; import { @@ -13,9 +14,8 @@ import { IBaseCancelableBrowserEventArgs } from '../core/utils'; import { SortingDirection } from '../data-operations/sorting-strategy'; import { IForOfState } from '../directives/for-of/for_of.directive'; import { IgxInputState } from '../directives/input/input.directive'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxDropDownItemBaseDirective } from '../drop-down/public_api'; import { IgxIconService } from '../icon/public_api'; +import { IgxLabelDirective } from '../input-group/public_api'; import { AbsoluteScrollStrategy, ConnectedPositioningStrategy } from '../services/public_api'; import { configureTestSuite } from '../test-utils/configure-suite'; import { UIInteractions, wait } from '../test-utils/ui-interactions.spec'; @@ -24,10 +24,11 @@ import { IgxComboDropDownComponent } from './combo-dropdown.component'; import { IgxComboItemComponent } from './combo-item.component'; import { IComboFilteringOptions, IgxComboState } from './combo.common'; import { - IComboItemAdditionEvent, IComboSearchInputEventArgs, IComboSelectionChangingEventArgs, IgxComboComponent, - IgxComboModule + IComboItemAdditionEvent, IComboSearchInputEventArgs, IComboSelectionChangingEventArgs, IgxComboComponent } from './combo.component'; +import { IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboItemDirective } from './combo.directives'; import { IgxComboFilteringPipe } from './combo.pipes'; +import { IgxDropDownItemBaseDirective } from '../drop-down/drop-down-item.base'; const CSS_CLASS_COMBO = 'igx-combo'; const CSS_CLASS_COMBO_DROPDOWN = 'igx-combo__drop-down'; @@ -792,7 +793,8 @@ describe('igxCombo', () => { describe('Combo feature tests: ', () => { configureTestSuite(() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxComboSampleComponent, IgxComboInContainerTestComponent, IgxComboRemoteDataComponent, @@ -800,13 +802,6 @@ describe('igxCombo', () => { IgxComboBindingDataAfterInitComponent, IgxComboFormComponent, IgxComboInTemplatedFormComponent - ], - imports: [ - IgxComboModule, - NoopAnimationsModule, - IgxToggleModule, - ReactiveFormsModule, - FormsModule ] }); }); @@ -3153,24 +3148,25 @@ describe('igxCombo', () => { @Component({ template: ` - - -
- -
State: {{display[key]}}
-
Region: {{display.region}}
-
-
- -
This is a header
-
- - - -
-` + + +
+ +
State: {{display[key]}}
+
Region: {{display.region}}
+
+
+ +
This is a header
+
+ + + +
`, + standalone: true, + imports: [IgxComboComponent, IgxComboItemDirective, IgxComboHeaderDirective, IgxComboFooterDirective] }) class IgxComboSampleComponent { /** @@ -3225,50 +3221,30 @@ class IgxComboSampleComponent { @Component({ template: ` -
-

- - -

-

- - -

-

- -

-

- -

-
-` +
+

+ + +

+

+ + +

+

+ + + +

+

+ +

+
+ `, + standalone: true, + imports: [IgxComboComponent, IgxLabelDirective, ReactiveFormsModule] }) - -@Component({ - template: ` -
-

- - -

-

- - -

-

- -

-

- -

-
-` -}) - class IgxComboFormComponent { @ViewChild('comboReactive', { read: IgxComboComponent, static: true }) public combo: IgxComboComponent; @@ -3335,8 +3311,10 @@ class IgxComboFormComponent { [groupKey]="'field' ? 'region' : ''" [width]="'100%'"> - -` + + `, + standalone: true, + imports: [IgxComboComponent, IgxLabelDirective, FormsModule] }) class IgxComboInTemplatedFormComponent { @ViewChild('testCombo', { read: IgxComboComponent, static: true }) @@ -3396,15 +3374,18 @@ export class LocalService { return dummyData; } } + @Component({ template: ` - - - -`, - providers: [LocalService] + + + + `, + standalone: true, + providers: [LocalService], + imports: [IgxComboComponent] }) export class IgxComboBindingTestComponent { @@ -3422,15 +3403,16 @@ export class IgxComboBindingTestComponent { } @Component({ template: ` -
- -> - -
-` +
+ + +
+ `, + standalone: true, + imports: [IgxComboComponent] }) class IgxComboInContainerTestComponent { @ViewChild('combo', { read: IgxComboComponent, static: true }) @@ -3453,8 +3435,8 @@ class IgxComboInContainerTestComponent { 'Padua', 'Palermo', 'Palma de Mallorca']; - } + @Injectable() export class RemoteDataService { public records: Observable; @@ -3492,14 +3474,16 @@ export class RemoteDataService { } } @Component({ - providers: [RemoteDataService], template: ` + [itemHeight]='40' [valueKey]="'id'" [displayKey]="'product'" [width]="'400px'" + [ariaLabelledBy]="'mockID'"> - ` + `, + standalone: true, + providers: [RemoteDataService], + imports: [IgxComboComponent, AsyncPipe] }) export class IgxComboRemoteDataComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild('combo', { read: IgxComboComponent, static: true }) @@ -3527,8 +3511,11 @@ export class IgxComboRemoteDataComponent implements OnInit, AfterViewInit, OnDes this.cdr.detach(); } } + @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxComboComponent, FormsModule] }) export class ComboModelBindingComponent implements OnInit { @ViewChild(IgxComboComponent, { read: IgxComboComponent, static: true }) @@ -3544,7 +3531,9 @@ export class ComboModelBindingComponent implements OnInit { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxComboComponent, FormsModule] }) export class IgxComboBindingDataAfterInitComponent implements AfterViewInit { public items: any[] = []; diff --git a/projects/igniteui-angular/src/lib/combo/combo.component.ts b/projects/igniteui-angular/src/lib/combo/combo.component.ts index fceab5bbaa2..fa62b531212 100644 --- a/projects/igniteui-angular/src/lib/combo/combo.component.ts +++ b/projects/igniteui-angular/src/lib/combo/combo.component.ts @@ -1,31 +1,20 @@ -import { CommonModule } from '@angular/common'; +import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common'; import { - AfterViewInit, ChangeDetectorRef, Component, ElementRef, NgModule, OnInit, OnDestroy, - Optional, Inject, Injector, ViewChild, Input, Output, EventEmitter, HostListener, AfterContentChecked + AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnInit, OnDestroy, + Optional, Inject, Injector, ViewChild, Input, Output, EventEmitter, HostListener } from '@angular/core'; -import { - IgxComboItemDirective, - IgxComboEmptyDirective, - IgxComboHeaderItemDirective, - IgxComboHeaderDirective, - IgxComboFooterDirective, - IgxComboAddItemDirective, - IgxComboToggleIconDirective, - IgxComboClearIconDirective -} from './combo.directives'; -import { FormsModule, ReactiveFormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; -import { IgxCheckboxModule } from '../checkbox/checkbox.component'; + +import { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms'; + import { IgxSelectionAPIService } from '../core/selection'; import { IBaseEventArgs, IBaseCancelableEventArgs, CancelableEventArgs } from '../core/utils'; import { IgxStringFilteringOperand, IgxBooleanFilteringOperand } from '../data-operations/filtering-condition'; import { FilteringLogic } from '../data-operations/filtering-expression.interface'; -import { IgxForOfModule } from '../directives/for-of/for_of.directive'; -import { IgxIconModule, IgxIconService } from '../icon/public_api'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxDropDownModule } from '../drop-down/public_api'; -import { IgxInputGroupModule } from '../input-group/input-group.component'; +import { IgxForOfDirective } from '../directives/for-of/for_of.directive'; +import { IgxIconService } from '../icon/icon.service'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxInputGroupComponent } from '../input-group/input-group.component'; import { IgxComboItemComponent } from './combo-item.component'; import { IgxComboDropDownComponent } from './combo-dropdown.component'; import { IgxComboFilteringPipe, IgxComboGroupingPipe } from './combo.pipes'; @@ -34,10 +23,11 @@ import { IGX_COMBO_COMPONENT, IgxComboBaseDirective } from './combo.common'; import { IgxComboAddItemComponent } from './combo-add-item.component'; import { IgxComboAPIService } from './combo.api'; import { EditorProvider } from '../core/edit-provider'; -import { - IgxInputGroupType, - IGX_INPUT_GROUP_TYPE -} from '../input-group/public_api'; +import { IgxInputGroupType, IGX_INPUT_GROUP_TYPE } from '../input-group/public_api'; +import { IgxDropDownItemNavigationDirective } from '../drop-down/drop-down-navigation.directive'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../directives/input/input.directive'; /** Event emitted when an igx-combo's selection is changing */ export interface IComboSelectionChangingEventArgs extends IBaseCancelableEventArgs { @@ -108,10 +98,30 @@ const diffInSets = (set1: Set, set2: Set): any[] => { IgxComboAPIService, { provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent }, { provide: NG_VALUE_ACCESSOR, useExisting: IgxComboComponent, multi: true } + ], + standalone: true, + imports: [ + NgIf, + NgTemplateOutlet, + NgClass, + FormsModule, + IgxInputGroupComponent, + IgxInputDirective, + IgxSuffixDirective, + IgxIconComponent, + IgxComboDropDownComponent, + IgxDropDownItemNavigationDirective, + IgxForOfDirective, + IgxComboItemComponent, + IgxComboAddItemComponent, + IgxButtonDirective, + IgxRippleDirective, + IgxComboFilteringPipe, + IgxComboGroupingPipe ] }) export class IgxComboComponent extends IgxComboBaseDirective implements AfterViewInit, ControlValueAccessor, OnInit, - OnDestroy, EditorProvider, AfterContentChecked { + OnDestroy, EditorProvider { /** * An @Input property that controls whether the combo's search box * should be focused after the `opened` event is called @@ -449,56 +459,3 @@ export class IgxComboComponent extends IgxComboBaseDirective implements AfterVie return value; } } - -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxComboAddItemComponent, - IgxComboAddItemDirective, - IgxComboClearIconDirective, - IgxComboComponent, - IgxComboDropDownComponent, - IgxComboEmptyDirective, - IgxComboFilteringPipe, - IgxComboFooterDirective, - IgxComboGroupingPipe, - IgxComboHeaderDirective, - IgxComboHeaderItemDirective, - IgxComboItemComponent, - IgxComboItemDirective, - IgxComboToggleIconDirective - ], - exports: [ - IgxComboAddItemComponent, - IgxComboAddItemDirective, - IgxComboClearIconDirective, - IgxComboComponent, - IgxComboDropDownComponent, - IgxComboEmptyDirective, - IgxComboFilteringPipe, - IgxComboFooterDirective, - IgxComboGroupingPipe, - IgxComboHeaderDirective, - IgxComboHeaderItemDirective, - IgxComboItemComponent, - IgxComboItemDirective, - IgxComboToggleIconDirective, - IgxInputGroupModule - ], - imports: [ - CommonModule, - FormsModule, - IgxButtonModule, - IgxCheckboxModule, - IgxDropDownModule, - IgxForOfModule, - IgxIconModule, - IgxInputGroupModule, - IgxRippleModule, - IgxToggleModule, - ReactiveFormsModule - ] -}) -export class IgxComboModule { } diff --git a/projects/igniteui-angular/src/lib/combo/combo.directives.ts b/projects/igniteui-angular/src/lib/combo/combo.directives.ts index 75e561e2b33..741b693fd1e 100644 --- a/projects/igniteui-angular/src/lib/combo/combo.directives.ts +++ b/projects/igniteui-angular/src/lib/combo/combo.directives.ts @@ -16,7 +16,10 @@ import { Directive } from '@angular/core'; * * */ -@Directive({ selector: '[igxComboHeader]' }) +@Directive({ + selector: '[igxComboHeader]', + standalone: true +}) export class IgxComboHeaderDirective { } /** @@ -35,7 +38,10 @@ export class IgxComboHeaderDirective { } * * */ -@Directive({ selector: '[igxComboFooter]' }) +@Directive({ + selector: '[igxComboFooter]', + standalone: true +}) export class IgxComboFooterDirective { } /** @@ -56,7 +62,10 @@ export class IgxComboFooterDirective { } * * */ -@Directive({ selector: '[igxComboItem]' }) +@Directive({ + selector: '[igxComboItem]', + standalone: true +}) export class IgxComboItemDirective { } /** @@ -76,7 +85,10 @@ export class IgxComboItemDirective { } * * */ -@Directive({ selector: '[igxComboEmpty]' }) +@Directive({ + selector: '[igxComboEmpty]', + standalone: true +}) export class IgxComboEmptyDirective { } /** @@ -94,7 +106,10 @@ export class IgxComboEmptyDirective { } * * */ -@Directive({ selector: '[igxComboHeaderItem]' }) +@Directive({ + selector: '[igxComboHeaderItem]', + standalone: true +}) export class IgxComboHeaderItemDirective { } /** @@ -116,7 +131,10 @@ export class IgxComboHeaderItemDirective { } * * */ -@Directive({ selector: '[igxComboAddItem]' }) +@Directive({ + selector: '[igxComboAddItem]', + standalone: true +}) export class IgxComboAddItemDirective { } /** @@ -134,7 +152,10 @@ export class IgxComboAddItemDirective { } * * */ -@Directive({ selector: '[igxComboToggleIcon]' }) +@Directive({ + selector: '[igxComboToggleIcon]', + standalone: true +}) export class IgxComboToggleIconDirective { } /** @@ -152,5 +173,8 @@ export class IgxComboToggleIconDirective { } * * */ -@Directive({ selector: '[igxComboClearIcon]' }) +@Directive({ + selector: '[igxComboClearIcon]', + standalone: true +}) export class IgxComboClearIconDirective { } diff --git a/projects/igniteui-angular/src/lib/combo/combo.module.ts b/projects/igniteui-angular/src/lib/combo/combo.module.ts new file mode 100644 index 00000000000..16c3036eac5 --- /dev/null +++ b/projects/igniteui-angular/src/lib/combo/combo.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_COMBO_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_COMBO_DIRECTIVES + ], + exports: [ + ...IGX_COMBO_DIRECTIVES + ] +}) +export class IgxComboModule { } diff --git a/projects/igniteui-angular/src/lib/combo/combo.pipes.ts b/projects/igniteui-angular/src/lib/combo/combo.pipes.ts index ef4a0dd2374..db997d5a6c2 100644 --- a/projects/igniteui-angular/src/lib/combo/combo.pipes.ts +++ b/projects/igniteui-angular/src/lib/combo/combo.pipes.ts @@ -5,7 +5,10 @@ import { DefaultSortingStrategy, SortingDirection } from '../data-operations/sor import { IComboFilteringOptions, IgxComboBase, IGX_COMBO_COMPONENT } from './combo.common'; /** @hidden */ -@Pipe({ name: 'comboFiltering' }) +@Pipe({ + name: 'comboFiltering', + standalone: true +}) export class IgxComboFilteringPipe implements PipeTransform { public transform( collection: any[], @@ -25,7 +28,10 @@ export class IgxComboFilteringPipe implements PipeTransform { } /** @hidden */ -@Pipe({ name: 'comboGrouping' }) +@Pipe({ + name: 'comboGrouping', + standalone: true +}) export class IgxComboGroupingPipe implements PipeTransform { constructor(@Inject(IGX_COMBO_COMPONENT) public combo: IgxComboBase) { } diff --git a/projects/igniteui-angular/src/lib/combo/public_api.ts b/projects/igniteui-angular/src/lib/combo/public_api.ts index 1b30a4657e1..6ec7a9d28e7 100644 --- a/projects/igniteui-angular/src/lib/combo/public_api.ts +++ b/projects/igniteui-angular/src/lib/combo/public_api.ts @@ -1,7 +1,36 @@ -export { IgxComboAddItemComponent } from './combo-add-item.component'; -export { IgxComboDropDownComponent } from './combo-dropdown.component'; -export { IgxComboItemComponent } from './combo-item.component'; +import { IgxHintDirective } from '../directives/hint/hint.directive'; +import { IgxLabelDirective } from '../directives/label/label.directive'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxComboComponent } from './combo.component'; +import { + IgxComboAddItemDirective, + IgxComboClearIconDirective, + IgxComboEmptyDirective, + IgxComboFooterDirective, + IgxComboHeaderDirective, + IgxComboHeaderItemDirective, + IgxComboItemDirective, + IgxComboToggleIconDirective +} from './combo.directives'; + export { IComboFilteringOptions } from './combo.common'; export * from './combo.component'; export * from './combo.directives'; -export * from './combo.pipes'; + +/* NOTE: Combo directives collection for ease-of-use import in standalone components scenario */ +export const IGX_COMBO_DIRECTIVES = [ + IgxComboComponent, + IgxComboAddItemDirective, + IgxComboClearIconDirective, + IgxComboEmptyDirective, + IgxComboFooterDirective, + IgxComboHeaderDirective, + IgxComboHeaderItemDirective, + IgxComboItemDirective, + IgxComboToggleIconDirective, + IgxLabelDirective, + IgxPrefixDirective, + IgxSuffixDirective, + IgxHintDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/core/density.ts b/projects/igniteui-angular/src/lib/core/density.ts index f9895cab55f..5ee6044c518 100644 --- a/projects/igniteui-angular/src/lib/core/density.ts +++ b/projects/igniteui-angular/src/lib/core/density.ts @@ -1 +1,125 @@ -export * from './displayDensity'; +import { InjectionToken, Input, Output, EventEmitter, DoCheck, OnInit, Directive, Optional, Inject } from '@angular/core'; +import { IBaseEventArgs, mkenum } from './utils'; + +/** + * Defines the possible values of the components' display density. + */ +export const DisplayDensity = mkenum({ + comfortable: 'comfortable', + cosy: 'cosy', + compact: 'compact' +}); +export type DisplayDensity = (typeof DisplayDensity)[keyof typeof DisplayDensity]; + +/** + * Describes the object used to configure the DisplayDensity in Angular DI. + */ +export interface IDisplayDensityOptions { + displayDensity: DisplayDensity; +} + +export interface IDensityChangedEventArgs extends IBaseEventArgs { + oldDensity: DisplayDensity; + newDensity: DisplayDensity; +} + +/** + * @hidden + * Defines the DisplayDensity DI token. + */ +export const DisplayDensityToken = new InjectionToken('DisplayDensity'); + +/** + * @hidden + * Base class containing all logic required for implementing DisplayDensity. + */ +@Directive({ + selector: '[igxDisplayDensityBase]', + standalone: true +}) +// eslint-disable-next-line @angular-eslint/directive-class-suffix +export class DisplayDensityBase implements DoCheck, OnInit { + @Output() + public densityChanged = new EventEmitter(); + + /** + * Returns the theme of the component. + * The default theme is `comfortable`. + * Available options are `comfortable`, `cosy`, `compact`. + * ```typescript + * let componentTheme = this.component.displayDensity; + * ``` + */ + @Input() + public get displayDensity(): DisplayDensity { + return this._displayDensity || + ((this.displayDensityOptions && this.displayDensityOptions.displayDensity) || DisplayDensity.comfortable); + } + + /** + * Sets the theme of the component. + */ + public set displayDensity(val: DisplayDensity) { + const currentDisplayDensity = this._displayDensity; + this._displayDensity = val as DisplayDensity; + + if (currentDisplayDensity !== this._displayDensity) { + const densityChangedArgs: IDensityChangedEventArgs = { + oldDensity: currentDisplayDensity, + newDensity: this._displayDensity + }; + + this.densityChanged.emit(densityChangedArgs); + } + } + + /** + * @hidden + */ + public initialDensity: DisplayDensity; + + protected oldDisplayDensityOptions: IDisplayDensityOptions = { displayDensity: DisplayDensity.comfortable }; + protected _displayDensity: DisplayDensity; + + + constructor(@Optional() @Inject(DisplayDensityToken) protected displayDensityOptions: IDisplayDensityOptions) { + Object.assign(this.oldDisplayDensityOptions, displayDensityOptions); + } + + /** + * @hidden + */ + public ngOnInit(): void { + this.initialDensity = this._displayDensity; + } + + public ngDoCheck() { + if (!this._displayDensity && this.displayDensityOptions && + this.oldDisplayDensityOptions.displayDensity !== this.displayDensityOptions.displayDensity) { + const densityChangedArgs: IDensityChangedEventArgs = { + oldDensity: this.oldDisplayDensityOptions.displayDensity, + newDensity: this.displayDensityOptions.displayDensity + }; + + this.densityChanged.emit(densityChangedArgs); + this.oldDisplayDensityOptions = Object.assign(this.oldDisplayDensityOptions, this.displayDensityOptions); + } + } + + /** + * Given a style class of a component/element returns the modified version of it based + * on the current display density. + */ + protected getComponentDensityClass(baseStyleClass: string): string { + switch (this.displayDensity) { + case DisplayDensity.cosy: + return `${baseStyleClass}--${DisplayDensity.cosy}`; + case DisplayDensity.compact: + return `${baseStyleClass}--${DisplayDensity.compact}`; + default: + return baseStyleClass; + } + } +} + + diff --git a/projects/igniteui-angular/src/lib/core/displayDensity.ts b/projects/igniteui-angular/src/lib/core/displayDensity.ts deleted file mode 100644 index 496a9834d4f..00000000000 --- a/projects/igniteui-angular/src/lib/core/displayDensity.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { InjectionToken, Input, Output, EventEmitter, DoCheck, OnInit, Directive, NgModule, Optional, Inject } from '@angular/core'; -import { IBaseEventArgs, mkenum } from './utils'; - -/** - * Defines the possible values of the components' display density. - */ -export const DisplayDensity = mkenum({ - comfortable: 'comfortable', - cosy: 'cosy', - compact: 'compact' -}); -export type DisplayDensity = (typeof DisplayDensity)[keyof typeof DisplayDensity]; - -/** - * Describes the object used to configure the DisplayDensity in Angular DI. - */ -export interface IDisplayDensityOptions { - displayDensity: DisplayDensity; -} - -export interface IDensityChangedEventArgs extends IBaseEventArgs { - oldDensity: DisplayDensity; - newDensity: DisplayDensity; -} - -/** - * Defines the DisplayDensity DI token. - */ -export const DisplayDensityToken = new InjectionToken('DisplayDensity'); - -/** - * Base class containing all logic required for implementing DisplayDensity. - */ -@Directive({ - selector: '[igxDisplayDensityBase]' -}) -// eslint-disable-next-line @angular-eslint/directive-class-suffix -export class DisplayDensityBase implements DoCheck, OnInit { - @Output() - public densityChanged = new EventEmitter(); - - /** - * Returns the theme of the component. - * The default theme is `comfortable`. - * Available options are `comfortable`, `cosy`, `compact`. - * ```typescript - * let componentTheme = this.component.displayDensity; - * ``` - */ - @Input() - public get displayDensity(): DisplayDensity { - return this._displayDensity || - ((this.displayDensityOptions && this.displayDensityOptions.displayDensity) || DisplayDensity.comfortable); - } - - /** - * Sets the theme of the component. - */ - public set displayDensity(val: DisplayDensity) { - const currentDisplayDensity = this._displayDensity; - this._displayDensity = val as DisplayDensity; - - if (currentDisplayDensity !== this._displayDensity) { - const densityChangedArgs: IDensityChangedEventArgs = { - oldDensity: currentDisplayDensity, - newDensity: this._displayDensity - }; - - this.densityChanged.emit(densityChangedArgs); - } - } - - /** - * @hidden - */ - public initialDensity: DisplayDensity; - - protected oldDisplayDensityOptions: IDisplayDensityOptions = { displayDensity: DisplayDensity.comfortable }; - protected _displayDensity: DisplayDensity; - - - constructor(@Optional() @Inject(DisplayDensityToken) protected displayDensityOptions: IDisplayDensityOptions) { - Object.assign(this.oldDisplayDensityOptions, displayDensityOptions); - } - - /** - * @hidden - */ - public ngOnInit(): void { - this.initialDensity = this._displayDensity; - } - - public ngDoCheck() { - if (!this._displayDensity && this.displayDensityOptions && - this.oldDisplayDensityOptions.displayDensity !== this.displayDensityOptions.displayDensity) { - const densityChangedArgs: IDensityChangedEventArgs = { - oldDensity: this.oldDisplayDensityOptions.displayDensity, - newDensity: this.displayDensityOptions.displayDensity - }; - - this.densityChanged.emit(densityChangedArgs); - this.oldDisplayDensityOptions = Object.assign(this.oldDisplayDensityOptions, this.displayDensityOptions); - } - } - - /** - * Given a style class of a component/element returns the modified version of it based - * on the current display density. - */ - protected getComponentDensityClass(baseStyleClass: string): string { - switch (this.displayDensity) { - case DisplayDensity.cosy: - return `${baseStyleClass}--${DisplayDensity.cosy}`; - case DisplayDensity.compact: - return `${baseStyleClass}--${DisplayDensity.compact}`; - default: - return baseStyleClass; - } - } -} - -@NgModule({ - declarations: [ - DisplayDensityBase - ], - exports: [ - DisplayDensityBase - ] -}) -export class IgxDisplayDensityModule {} diff --git a/projects/igniteui-angular/src/lib/core/navigation/IToggleView.ts b/projects/igniteui-angular/src/lib/core/navigation/IToggleView.ts index 6e5f3cb1a91..3ff8a7915a5 100644 --- a/projects/igniteui-angular/src/lib/core/navigation/IToggleView.ts +++ b/projects/igniteui-angular/src/lib/core/navigation/IToggleView.ts @@ -7,5 +7,4 @@ export interface IToggleView { open(...args); close(...args); toggle(...args); - } diff --git a/projects/igniteui-angular/src/lib/core/navigation/directives.ts b/projects/igniteui-angular/src/lib/core/navigation/directives.ts index 295d2cbfa1e..4b13d9c5e62 100644 --- a/projects/igniteui-angular/src/lib/core/navigation/directives.ts +++ b/projects/igniteui-angular/src/lib/core/navigation/directives.ts @@ -1,5 +1,5 @@ -import { Directive, HostListener, Input, NgModule } from '@angular/core'; -import {IgxNavigationService} from './nav.service'; +import { Directive, HostListener, Input } from '@angular/core'; +import { IgxNavigationService } from './nav.service'; /** * Directive that can toggle targets through provided NavigationService. @@ -10,7 +10,10 @@ import {IgxNavigationService} from './nav.service'; * ``` * Where the `ID` matches the ID of compatible `IToggleView` component. */ -@Directive({ selector: '[igxNavToggle]' }) +@Directive({ + selector: '[igxNavToggle]', + standalone: true +}) export class IgxNavigationToggleDirective { @Input('igxNavToggle') private target; @@ -35,7 +38,10 @@ export class IgxNavigationToggleDirective { * ``` * Where the `ID` matches the ID of compatible `IToggleView` component. */ -@Directive({ selector: '[igxNavClose]' }) +@Directive({ + selector: '[igxNavClose]', + standalone: true +}) export class IgxNavigationCloseDirective { @Input('igxNavClose') private target; @@ -50,13 +56,3 @@ export class IgxNavigationCloseDirective { this.state.close(this.target, true); } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxNavigationCloseDirective, IgxNavigationToggleDirective], - exports: [IgxNavigationCloseDirective, IgxNavigationToggleDirective], - providers: [IgxNavigationService] -}) -export class IgxNavigationModule {} diff --git a/projects/igniteui-angular/src/lib/core/navigation/nav.service.ts b/projects/igniteui-angular/src/lib/core/navigation/nav.service.ts index 9a903812172..d8b5e6f667a 100644 --- a/projects/igniteui-angular/src/lib/core/navigation/nav.service.ts +++ b/projects/igniteui-angular/src/lib/core/navigation/nav.service.ts @@ -6,7 +6,7 @@ import { Injectable } from '@angular/core'; * ToggleView interface can register and toggle directives can call their methods. * TODO: Track currently active? Events? */ -@Injectable() +@Injectable({ providedIn: 'root' }) export class IgxNavigationService { private navs: { [id: string]: IToggleView }; diff --git a/projects/igniteui-angular/src/lib/data-operations/data-util.ts b/projects/igniteui-angular/src/lib/data-operations/data-util.ts index 8d776de8421..081db332e47 100644 --- a/projects/igniteui-angular/src/lib/data-operations/data-util.ts +++ b/projects/igniteui-angular/src/lib/data-operations/data-util.ts @@ -146,7 +146,7 @@ export class DataUtil { * @param deleteRows Should delete rows with DELETE transaction type from data * @returns Provided data collections updated with all provided transactions */ - public static mergeTransactions(data: T[], transactions: Transaction[], primaryKey?: any, cloneStrategy: IDataCloneStrategy = new DefaultDataCloneStrategy(), deleteRows: boolean = false): T[] { + public static mergeTransactions(data: T[], transactions: Transaction[], primaryKey?: any, cloneStrategy: IDataCloneStrategy = new DefaultDataCloneStrategy(), deleteRows = false): T[] { data.forEach((item: any, index: number) => { const rowId = primaryKey ? item[primaryKey] : item; const transaction = transactions.find(t => t.id === rowId); @@ -189,7 +189,7 @@ export class DataUtil { childDataKey: any, primaryKey?: any, cloneStrategy: IDataCloneStrategy = new DefaultDataCloneStrategy(), - deleteRows: boolean = false): any[] { + deleteRows = false): any[] { for (const transaction of transactions) { if (transaction.path) { const parent = this.findParentFromPath(data, primaryKey, childDataKey, transaction.path); diff --git a/projects/igniteui-angular/src/lib/data-operations/filtering-strategy.ts b/projects/igniteui-angular/src/lib/data-operations/filtering-strategy.ts index 1c69ac6ad98..51f6c917a36 100644 --- a/projects/igniteui-angular/src/lib/data-operations/filtering-strategy.ts +++ b/projects/igniteui-angular/src/lib/data-operations/filtering-strategy.ts @@ -213,7 +213,7 @@ export class FilteringStrategy extends BaseFilteringStrategy { return res; } - protected getFieldValue(rec: any, fieldName: string, isDate: boolean = false, isTime: boolean = false, grid?: GridType): any { + protected getFieldValue(rec: any, fieldName: string, isDate = false, isTime = false, grid?: GridType): any { const column = grid?.getColumnByName(fieldName); let value = resolveNestedPath(rec, fieldName); diff --git a/projects/igniteui-angular/src/lib/data-operations/pivot-sort-strategy.ts b/projects/igniteui-angular/src/lib/data-operations/pivot-sort-strategy.ts index 7cbc6570021..2db8244c61f 100644 --- a/projects/igniteui-angular/src/lib/data-operations/pivot-sort-strategy.ts +++ b/projects/igniteui-angular/src/lib/data-operations/pivot-sort-strategy.ts @@ -23,7 +23,7 @@ export class DefaultPivotGridRecordSortingStrategy extends DefaultSortingStrateg return this.arraySort(data, cmpFunc); } - protected getFieldValue(obj: IPivotGridRecord, key: string, _isDate: boolean = false, _isTime: boolean = false): any { + protected getFieldValue(obj: IPivotGridRecord, key: string, _isDate = false, _isTime = false): any { return obj.aggregationValues.get(key); } } @@ -52,7 +52,7 @@ export class DefaultPivotSortingStrategy extends DefaultSortingStrategy { return this.arraySort(data, cmpFunc); } - protected getFieldValue(obj: any, key: string, _isDate: boolean = false, isTime: boolean = false): any { + protected getFieldValue(obj: any, key: string, _isDate = false, isTime = false): any { let resolvedValue = PivotUtil.extractValueFromDimension(this.dimension, obj) || obj[0]; const formatAsDate = this.dimension.dataType === GridColumnDataType.Date || this.dimension.dataType === GridColumnDataType.DateTime; if (formatAsDate) { diff --git a/projects/igniteui-angular/src/lib/data-operations/pivot-strategy.ts b/projects/igniteui-angular/src/lib/data-operations/pivot-strategy.ts index 4d157b12881..09adf605896 100644 --- a/projects/igniteui-angular/src/lib/data-operations/pivot-strategy.ts +++ b/projects/igniteui-angular/src/lib/data-operations/pivot-strategy.ts @@ -131,7 +131,7 @@ export class DimensionValuesFilteringStrategy extends FilteringStrategy { super(); } - protected override getFieldValue(rec: any, fieldName: string, _isDate: boolean = false, _isTime: boolean = false, + protected override getFieldValue(rec: any, fieldName: string, _isDate = false, _isTime = false, grid?: PivotGridType): any { const allDimensions = grid.allDimensions; const enabledDimensions = allDimensions.filter(x => x && x.enabled); @@ -143,7 +143,7 @@ export class DimensionValuesFilteringStrategy extends FilteringStrategy { public override getFilterItems(column: ColumnType, tree: IFilteringExpressionsTree): Promise { const grid = (column.grid as any); const enabledDimensions = grid.allDimensions.filter(x => x && x.enabled); - let data = column.grid.gridAPI.filterDataByExpressions(tree); + const data = column.grid.gridAPI.filterDataByExpressions(tree); const dim = enabledDimensions.find(x => x.memberName === column.field); const allValuesHierarchy = PivotUtil.getFieldsHierarchy( data, @@ -174,7 +174,7 @@ export class DimensionValuesFilteringStrategy extends FilteringStrategy { private _getDimensionValueHierarchy(dim: IPivotDimension, rec: any) : string[] { let path = []; - let value = PivotUtil.extractValueFromDimension(dim, rec); + const value = PivotUtil.extractValueFromDimension(dim, rec); path.push(value); if (dim.childLevel) { const childVals = this._getDimensionValueHierarchy(dim.childLevel, rec); diff --git a/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts b/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts index b0159ac4720..9cc641201b0 100644 --- a/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts +++ b/projects/igniteui-angular/src/lib/data-operations/sorting-strategy.ts @@ -119,8 +119,8 @@ export class GroupMemberCountSortingStrategy implements ISortingStrategy { } protected compareObjects(obj1: any, obj2: any, data: any[], fieldName: string, reverse: number) { - let firstItemValuesLength = data[obj1[fieldName]].length; - let secondItemValuesLength = data[obj2[fieldName]].length; + const firstItemValuesLength = data[obj1[fieldName]].length; + const secondItemValuesLength = data[obj2[fieldName]].length; return reverse * (firstItemValuesLength - secondItemValuesLength); } diff --git a/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.spec.ts b/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.spec.ts index 88ad60a93a0..09e00b63071 100644 --- a/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.spec.ts +++ b/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.spec.ts @@ -3,10 +3,10 @@ import { ComponentFixture, fakeAsync, TestBed, waitForAsync } from '@angular/cor import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxCalendarComponent } from '../../calendar/public_api'; -import { IgxButtonDirective, IgxButtonModule } from '../../directives/button/button.directive'; +import { IgxButtonDirective } from '../../directives/button/button.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; -import { IgxPickerActionsDirective, IgxPickersCommonModule } from '../picker-icons.common'; -import { IgxCalendarContainerComponent, IgxCalendarContainerModule } from './calendar-container.component'; +import { IgxPickerActionsDirective } from '../picker-icons.common'; +import { IgxCalendarContainerComponent } from './calendar-container.component'; describe('Calendar Container', () => { @@ -15,12 +15,8 @@ describe('Calendar Container', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxDatePickerTestComponent - ], - imports: [IgxCalendarContainerModule, IgxPickersCommonModule, IgxButtonModule, NoopAnimationsModule] - }) - .compileComponents(); + imports: [NoopAnimationsModule, IgxDatePickerTestComponent] + }).compileComponents(); })); beforeEach(fakeAsync(() => { @@ -77,7 +73,9 @@ describe('Calendar Container', () => { - ` + `, + standalone: true, + imports: [IgxCalendarContainerComponent, IgxPickerActionsDirective, IgxButtonDirective] }) export class IgxDatePickerTestComponent { @ViewChild(IgxCalendarContainerComponent) public container: IgxCalendarContainerComponent; diff --git a/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.ts b/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.ts index bcd14bd7a98..c8439e2fc30 100644 --- a/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.ts +++ b/projects/igniteui-angular/src/lib/date-common/calendar-container/calendar-container.component.ts @@ -1,17 +1,19 @@ -import { CommonModule } from '@angular/common'; -import { NgModule, Component, ViewChild, Output, EventEmitter, HostListener, HostBinding } from '@angular/core'; -import { IgxCalendarComponent, IgxCalendarModule } from '../../calendar/public_api'; +import { NgIf, NgTemplateOutlet } from '@angular/common'; +import { Component, ViewChild, Output, EventEmitter, HostListener, HostBinding } from '@angular/core'; import { IBaseEventArgs } from '../../core/utils'; import { PickerInteractionMode } from '../../date-common/types'; -import { IgxButtonModule } from '../../directives/button/button.directive'; -import { IgxRippleModule } from '../../directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../directives/button/button.directive'; +import { IgxRippleDirective } from '../../directives/ripple/ripple.directive'; import { IgxPickerActionsDirective } from '../picker-icons.common'; +import { IgxCalendarComponent } from '../../calendar/calendar.component'; /** @hidden */ @Component({ selector: 'igx-calendar-container', styles: [':host {display: block;}'], - templateUrl: 'calendar-container.component.html' + templateUrl: 'calendar-container.component.html', + standalone: true, + imports: [NgIf, IgxButtonDirective, IgxRippleDirective, IgxCalendarComponent, NgTemplateOutlet] }) export class IgxCalendarContainerComponent { @ViewChild(IgxCalendarComponent, { static: true }) @@ -54,14 +56,4 @@ export class IgxCalendarContainerComponent { } /** @hidden */ -@NgModule({ - declarations: [IgxCalendarContainerComponent], - imports: [ - CommonModule, - IgxButtonModule, - IgxRippleModule, - IgxCalendarModule - ], - exports: [IgxCalendarContainerComponent] -}) -export class IgxCalendarContainerModule { } + diff --git a/projects/igniteui-angular/src/lib/date-common/picker-base.directive.ts b/projects/igniteui-angular/src/lib/date-common/picker-base.directive.ts index a835a998fde..264f70a85e0 100644 --- a/projects/igniteui-angular/src/lib/date-common/picker-base.directive.ts +++ b/projects/igniteui-angular/src/lib/date-common/picker-base.directive.ts @@ -3,20 +3,25 @@ import { AfterViewInit, ContentChildren, Directive, ElementRef, EventEmitter, Inject, Input, LOCALE_ID, OnDestroy, Optional, Output, QueryList, ViewChild } from '@angular/core'; +import { getLocaleFirstDayOfWeek } from "@angular/common"; + import { merge, Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; + import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { EditorProvider } from '../core/edit-provider'; import { IToggleView } from '../core/navigation'; import { IBaseCancelableBrowserEventArgs, IBaseEventArgs } from '../core/utils'; -import { DateRange } from '../date-range-picker/public_api'; import { IgxOverlayOutletDirective } from '../directives/toggle/toggle.directive'; -import { IgxInputGroupType, IGX_INPUT_GROUP_TYPE, IgxPrefixDirective, IgxSuffixDirective, IgxInputGroupComponent } from '../input-group/public_api'; import { OverlaySettings } from '../services/overlay/utilities'; import { IgxPickerToggleComponent } from './picker-icons.common'; import { PickerInteractionMode } from './types'; -import { getLocaleFirstDayOfWeek } from "@angular/common"; import { WEEKDAYS } from '../calendar/calendar'; +import { DateRange } from '../date-range-picker/date-range-picker-inputs.common'; +import { IGX_INPUT_GROUP_TYPE, IgxInputGroupType } from '../input-group/inputGroupType'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxInputGroupComponent } from '../input-group/input-group.component'; @Directive() export abstract class PickerBaseDirective extends DisplayDensityBase implements IToggleView, EditorProvider, AfterViewInit, AfterContentChecked, OnDestroy { @@ -314,7 +319,7 @@ export abstract class PickerBaseDirective extends DisplayDensityBase implements .pipe(takeUntil(merge(components.changes, this._destroy$))) .subscribe(next); }); - }; + } public abstract select(value: Date | DateRange | string): void; public abstract open(settings?: OverlaySettings): void; diff --git a/projects/igniteui-angular/src/lib/date-common/picker-icons.common.ts b/projects/igniteui-angular/src/lib/date-common/picker-icons.common.ts index 51f5e58de8b..dea7d37bc9a 100644 --- a/projects/igniteui-angular/src/lib/date-common/picker-icons.common.ts +++ b/projects/igniteui-angular/src/lib/date-common/picker-icons.common.ts @@ -1,5 +1,4 @@ -import { CommonModule } from '@angular/common'; -import { Component, Output, EventEmitter, HostListener, NgModule, Directive, TemplateRef } from '@angular/core'; +import { Component, Output, EventEmitter, HostListener, Directive, TemplateRef } from '@angular/core'; /** * Templates the default toggle icon in the picker. @@ -17,7 +16,8 @@ import { Component, Output, EventEmitter, HostListener, NgModule, Directive, Tem */ @Component({ template: ``, - selector: 'igx-picker-toggle' + selector: 'igx-picker-toggle', + standalone: true }) export class IgxPickerToggleComponent { @Output() @@ -47,7 +47,8 @@ export class IgxPickerToggleComponent { */ @Component({ template: ``, - selector: 'igx-picker-clear' + selector: 'igx-picker-clear', + standalone: true }) export class IgxPickerClearComponent extends IgxPickerToggleComponent { } @@ -58,25 +59,10 @@ export class IgxPickerClearComponent extends IgxPickerToggleComponent { } * */ @Directive({ - selector: '[igxPickerActions]' + selector: '[igxPickerActions]', + standalone: true }) export class IgxPickerActionsDirective { constructor(public template: TemplateRef) { } } - -/** @hidden */ -@NgModule({ - declarations: [ - IgxPickerToggleComponent, - IgxPickerClearComponent, - IgxPickerActionsDirective - ], - imports: [CommonModule], - exports: [ - IgxPickerToggleComponent, - IgxPickerClearComponent, - IgxPickerActionsDirective - ] -}) -export class IgxPickersCommonModule { } diff --git a/projects/igniteui-angular/src/lib/date-picker/date-picker.component.spec.ts b/projects/igniteui-angular/src/lib/date-picker/date-picker.component.spec.ts index 13e028a8842..76f0885be61 100644 --- a/projects/igniteui-angular/src/lib/date-picker/date-picker.component.spec.ts +++ b/projects/igniteui-angular/src/lib/date-picker/date-picker.component.spec.ts @@ -3,16 +3,12 @@ import { UntypedFormControl, UntypedFormGroup, FormsModule, NgForm, ReactiveForm import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; import { - IgxHintDirective, IgxInputGroupComponent, IgxInputGroupModule, IgxInputState, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective + IgxHintDirective, IgxInputGroupComponent, IgxInputState, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective } from '../input-group/public_api'; -import { IgxTextSelectionModule } from '../directives/text-selection/text-selection.directive'; import { configureTestSuite } from '../test-utils/configure-suite'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IFormattingViews, IgxCalendarComponent, IgxCalendarModule, WEEKDAYS } from '../calendar/public_api'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxCalendarContainerComponent, IgxCalendarContainerModule } from '../date-common/calendar-container/calendar-container.component'; +import { IFormattingViews, IgxCalendarComponent, WEEKDAYS } from '../calendar/public_api'; +import { IgxCalendarContainerComponent } from '../date-common/calendar-container/calendar-container.component'; import { IgxDatePickerComponent } from './date-picker.component'; -import { IgxDatePickerModule } from './date-picker.module'; import { IgxOverlayService, OverlayCancelableEventArgs, OverlayClosingEventArgs, OverlayEventArgs, OverlaySettings @@ -21,12 +17,12 @@ import { Component, ElementRef, EventEmitter, QueryList, Renderer2, ViewChild } import { By } from '@angular/platform-browser'; import { PickerHeaderOrientation, PickerInteractionMode } from '../date-common/types'; import { DatePart } from '../directives/date-time-editor/date-time-editor.common'; -import { DisplayDensity } from '../core/displayDensity'; +import { DisplayDensity } from '../core/density'; import { DateRangeDescriptor, DateRangeType } from '../core/dates'; import { IgxOverlayOutletDirective } from '../directives/toggle/toggle.directive'; import { IgxPickerClearComponent, IgxPickerToggleComponent } from '../date-common/public_api'; import { DateTimeUtil } from '../date-common/util/date-time.util'; -import { registerLocaleData } from "@angular/common"; +import { NgIf, registerLocaleData } from "@angular/common"; import localeES from "@angular/common/locales/es"; const CSS_CLASS_CALENDAR = 'igx-calendar'; @@ -44,20 +40,16 @@ describe('IgxDatePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxDatePickerTestKbrdComponent, IgxDatePickerTestComponent, IgxDatePickerNgModelComponent, IgxDatePickerWithProjectionsComponent, IgxDatePickerInFormComponent, IgxDatePickerReactiveFormComponent - ], - imports: [IgxDatePickerModule, FormsModule, ReactiveFormsModule, - NoopAnimationsModule, IgxInputGroupModule, IgxCalendarModule, - IgxButtonModule, IgxTextSelectionModule, IgxIconModule, - IgxCalendarContainerModule] - }) - .compileComponents(); + ] + }).compileComponents(); })); describe('Rendering', () => { @@ -1295,8 +1287,10 @@ describe('IgxDatePicker', () => { }); @Component({ template: ` - - ` + + `, + standalone: true, + imports: [IgxDatePickerComponent] }) export class IgxDatePickerTestComponent { @ViewChild(IgxDatePickerComponent) public datePicker: IgxDatePickerComponent; @@ -1309,7 +1303,9 @@ export class IgxDatePickerTestComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxDatePickerComponent, FormsModule] }) export class IgxDatePickerNgModelComponent { @ViewChild(IgxDatePickerComponent) public datePicker: IgxDatePickerComponent; @@ -1325,7 +1321,9 @@ export class IgxDatePickerNgModelComponent { - ` + `, + standalone: true, + imports: [IgxDatePickerComponent, IgxLabelDirective] }) export class IgxDatePickerTestKbrdComponent { @ViewChild(IgxDatePickerComponent) public datePicker: IgxDatePickerComponent; @@ -1335,15 +1333,16 @@ export class IgxDatePickerTestKbrdComponent { @Component({ template: ` - - - CustomToggle - Prefix - CustomClear - Suffix - Hint - -` + + + CustomToggle + Prefix + CustomClear + Suffix + Hint + `, + standalone: true, + imports: [IgxDatePickerComponent, IgxPickerToggleComponent, IgxPrefixDirective, IgxPickerClearComponent, IgxLabelDirective, IgxSuffixDirective, IgxHintDirective, NgIf] }) export class IgxDatePickerWithProjectionsComponent { @ViewChild(IgxDatePickerComponent) public datePicker: IgxDatePickerComponent; @@ -1359,7 +1358,9 @@ export class IgxDatePickerWithProjectionsComponent {
- ` + `, + standalone: true, + imports: [IgxDatePickerComponent, FormsModule] }) export class IgxDatePickerInFormComponent { @ViewChild('form') @@ -1373,14 +1374,16 @@ export class IgxDatePickerInFormComponent { @Component({ template: ` -
-
- - - -
-
- ` +
+
+ + + +
+
+ `, + standalone: true, + imports: [IgxDatePickerComponent, ReactiveFormsModule, IgxLabelDirective] }) export class IgxDatePickerReactiveFormComponent { @ViewChild(IgxDatePickerComponent) diff --git a/projects/igniteui-angular/src/lib/date-picker/date-picker.component.ts b/projects/igniteui-angular/src/lib/date-picker/date-picker.component.ts index 36ec5a54f1e..97b927c6e59 100644 --- a/projects/igniteui-angular/src/lib/date-picker/date-picker.component.ts +++ b/projects/igniteui-angular/src/lib/date-picker/date-picker.component.ts @@ -24,6 +24,7 @@ import { ViewChild, ViewContainerRef } from '@angular/core'; +import { NgIf } from '@angular/common'; import { AbstractControl, ControlValueAccessor, @@ -33,17 +34,16 @@ import { ValidationErrors, Validator } from '@angular/forms'; -import { fromEvent, MonoTypeOperatorFunction, noop, Subscription } from 'rxjs'; -import { filter, takeUntil } from 'rxjs/operators'; -import { fadeIn, fadeOut } from '../animations/fade'; import { - IFormattingOptions, - IFormattingViews, - IgxCalendarComponent, - IgxCalendarHeaderTemplateDirective, - IgxCalendarSubheaderTemplateDirective, - isDateInRanges + IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarSubheaderTemplateDirective, + isDateInRanges, IFormattingViews, IFormattingOptions } from '../calendar/public_api'; +import { + IgxLabelDirective, IGX_INPUT_GROUP_TYPE, IgxInputGroupType, IgxInputState, IgxInputGroupComponent, IgxPrefixDirective, IgxInputDirective, IgxSuffixDirective +} from '../input-group/public_api'; +import { fromEvent, Subscription, noop, MonoTypeOperatorFunction } from 'rxjs'; +import { filter, takeUntil } from 'rxjs/operators'; +import { fadeIn, fadeOut } from '../animations/fade'; import { DateRangeDescriptor, DateRangeType } from '../core/dates/dateRange'; import { DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { IDatePickerResourceStrings } from '../core/i18n/date-picker-resources'; @@ -56,14 +56,6 @@ import { PickerHeaderOrientation } from '../date-common/types'; import { DateTimeUtil } from '../date-common/util/date-time.util'; import { DatePart, DatePartDeltas, IgxDateTimeEditorDirective } from '../directives/date-time-editor/public_api'; import { IgxOverlayOutletDirective } from '../directives/toggle/toggle.directive'; -import { - IgxInputDirective, - IgxInputGroupComponent, - IgxInputGroupType, - IgxInputState, - IgxLabelDirective, - IGX_INPUT_GROUP_TYPE -} from '../input-group/public_api'; import { AbsoluteScrollStrategy, AutoPositionStrategy, @@ -73,6 +65,8 @@ import { OverlaySettings } from '../services/public_api'; import { IDatePickerValidationFailedEventArgs } from './date-picker.common'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxTextSelectionDirective } from '../directives/text-selection/text-selection.directive'; let NEXT_ID = 0; @@ -95,7 +89,18 @@ let NEXT_ID = 0; ], selector: 'igx-date-picker', templateUrl: 'date-picker.component.html', - styles: [':host { display: block; }'] + styles: [':host { display: block; }'], + standalone: true, + imports: [ + NgIf, + IgxInputGroupComponent, + IgxPrefixDirective, + IgxIconComponent, + IgxInputDirective, + IgxDateTimeEditorDirective, + IgxTextSelectionDirective, + IgxSuffixDirective + ] }) export class IgxDatePickerComponent extends PickerBaseDirective implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy, AfterViewChecked, AfterContentChecked { diff --git a/projects/igniteui-angular/src/lib/date-picker/date-picker.directives.ts b/projects/igniteui-angular/src/lib/date-picker/date-picker.directives.ts deleted file mode 100644 index a227875a82d..00000000000 --- a/projects/igniteui-angular/src/lib/date-picker/date-picker.directives.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Directive, TemplateRef } from '@angular/core'; - -@Directive({ - selector: '[igxDatePickerTemplate]' -}) - -/** - * IgxDatePickerTemplateDirective can be used to re-template the date-picker input-group. - * - * @hidden - */ -export class IgxDatePickerTemplateDirective { - constructor(public template: TemplateRef) { } -} diff --git a/projects/igniteui-angular/src/lib/date-picker/date-picker.module.ts b/projects/igniteui-angular/src/lib/date-picker/date-picker.module.ts index 041534284c4..4a15b565b2b 100644 --- a/projects/igniteui-angular/src/lib/date-picker/date-picker.module.ts +++ b/projects/igniteui-angular/src/lib/date-picker/date-picker.module.ts @@ -1,37 +1,16 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { IgxCalendarModule } from '../calendar/public_api'; -import { IgxCalendarContainerModule } from '../date-common/calendar-container/calendar-container.component'; -import { IgxPickersCommonModule } from '../date-common/picker-icons.common'; -import { IgxDateTimeEditorModule } from '../directives/date-time-editor/public_api'; -import { IgxMaskModule } from '../directives/mask/mask.directive'; -import { IgxTextSelectionModule } from '../directives/text-selection/text-selection.directive'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxInputGroupModule } from '../input-group/public_api'; -import { IgxDatePickerComponent } from './date-picker.component'; +import { IGX_DATE_PICKER_DIRECTIVES } from './public_api'; -/** @hidden */ +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ @NgModule({ - declarations: [ - IgxDatePickerComponent + imports: [ + ...IGX_DATE_PICKER_DIRECTIVES ], exports: [ - IgxDatePickerComponent, - IgxPickersCommonModule, - IgxInputGroupModule - ], - imports: [ - FormsModule, - CommonModule, - IgxIconModule, - IgxMaskModule, - IgxCalendarModule, - IgxInputGroupModule, - IgxPickersCommonModule, - IgxTextSelectionModule, - IgxDateTimeEditorModule, - IgxCalendarContainerModule, + ...IGX_DATE_PICKER_DIRECTIVES ] }) export class IgxDatePickerModule { } diff --git a/projects/igniteui-angular/src/lib/date-picker/public_api.ts b/projects/igniteui-angular/src/lib/date-picker/public_api.ts index 96e209535d1..ce993452a99 100644 --- a/projects/igniteui-angular/src/lib/date-picker/public_api.ts +++ b/projects/igniteui-angular/src/lib/date-picker/public_api.ts @@ -1,2 +1,20 @@ +import { IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent } from '../date-common/picker-icons.common'; +import { IgxHintDirective } from '../directives/hint/hint.directive'; +import { IgxLabelDirective } from '../directives/label/label.directive'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxDatePickerComponent } from './date-picker.component'; + export * from './date-picker.component'; -export * from './date-picker.module'; + +/* NOTE: Date picker directives collection for ease-of-use import in standalone components scenario */ +export const IGX_DATE_PICKER_DIRECTIVES = [ + IgxDatePickerComponent, + IgxPickerToggleComponent, + IgxPickerClearComponent, + IgxPickerActionsDirective, + IgxLabelDirective, + IgxPrefixDirective, + IgxSuffixDirective, + IgxHintDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker-inputs.common.ts b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker-inputs.common.ts index 296bab4f653..5c8067687aa 100644 --- a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker-inputs.common.ts +++ b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker-inputs.common.ts @@ -6,6 +6,11 @@ import { IgxInputGroupBase } from '../input-group/input-group.common'; import { DateTimeUtil } from '../date-common/util/date-time.util'; import { IgxDateTimeEditorDirective } from '../directives/date-time-editor/public_api'; import { isDate } from '../core/utils'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { NgIf, NgTemplateOutlet, NgClass, NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common'; /** Represents a range between two dates. */ export interface DateRange { @@ -14,7 +19,10 @@ export interface DateRange { } /** @hidden @internal */ -@Pipe({ name: 'dateRange' }) +@Pipe({ + name: 'dateRange', + standalone: true +}) export class DateRangePickerFormatPipe implements PipeTransform { public transform(values: DateRange, appliedFormat?: string, locale?: string, formatter?: (_: DateRange) => string): string { @@ -49,7 +57,8 @@ export class DateRangePickerFormatPipe implements PipeTransform { @Component({ template: ``, selector: `igx-date-range-base`, - providers: [{ provide: IgxInputGroupBase, useExisting: IgxDateRangeInputsBaseComponent }] + providers: [{ provide: IgxInputGroupBase, useExisting: IgxDateRangeInputsBaseComponent }], + standalone: true }) export class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent { @ContentChild(IgxDateTimeEditorDirective) @@ -116,7 +125,9 @@ export class IgxDateRangeInputsBaseComponent extends IgxInputGroupComponent { providers: [ { provide: IgxInputGroupBase, useExisting: IgxDateRangeStartComponent }, { provide: IgxDateRangeInputsBaseComponent, useExisting: IgxDateRangeStartComponent } - ] + ], + standalone: true, + imports: [NgIf, NgTemplateOutlet, IgxPrefixDirective, IgxButtonDirective, NgClass, IgxSuffixDirective, IgxIconComponent, NgSwitch, NgSwitchCase, NgSwitchDefault] }) export class IgxDateRangeStartComponent extends IgxDateRangeInputsBaseComponent { } @@ -150,7 +161,9 @@ export class IgxDateRangeStartComponent extends IgxDateRangeInputsBaseComponent providers: [ { provide: IgxInputGroupBase, useExisting: IgxDateRangeEndComponent }, { provide: IgxDateRangeInputsBaseComponent, useExisting: IgxDateRangeEndComponent } - ] + ], + standalone: true, + imports: [NgIf, NgTemplateOutlet, IgxPrefixDirective, IgxButtonDirective, NgClass, IgxSuffixDirective, IgxIconComponent, NgSwitch, NgSwitchCase, NgSwitchDefault] }) export class IgxDateRangeEndComponent extends IgxDateRangeInputsBaseComponent { } @@ -182,6 +195,7 @@ export class IgxDateRangeEndComponent extends IgxDateRangeInputsBaseComponent { * ``` */ @Directive({ - selector: '[igxDateRangeSeparator]' + selector: '[igxDateRangeSeparator]', + standalone: true }) export class IgxDateRangeSeparatorDirective { } diff --git a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.spec.ts b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.spec.ts index ff879e885db..9355dc03e6e 100644 --- a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.spec.ts +++ b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.spec.ts @@ -1,33 +1,31 @@ import { ComponentFixture, TestBed, fakeAsync, tick, waitForAsync, flush } from '@angular/core/testing'; import { Component, OnInit, ViewChild, DebugElement, ChangeDetectionStrategy } from '@angular/core'; -import { IgxInputGroupModule, IgxInputState } from '../input-group/public_api'; +import { IgxInputDirective, IgxInputState, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective } from '../input-group/public_api'; import { PickerInteractionMode } from '../date-common/types'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { FormsModule, ReactiveFormsModule, UntypedFormBuilder, UntypedFormControl, Validators } from '@angular/forms'; -import { IgxDateRangePickerModule } from './date-range-picker.module'; import { By } from '@angular/platform-browser'; import { ControlsFunction } from '../test-utils/controls-functions.spec'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../test-utils/configure-suite'; -import { HelperTestFunctions } from '../calendar/calendar-helper-utils'; +import { HelperTestFunctions } from '../test-utils/calendar-helper-utils'; import { CancelableEventArgs } from '../core/utils'; -import { DateRange } from './date-range-picker-inputs.common'; -import { IgxDateTimeEditorModule, IgxDateTimeEditorDirective } from '../directives/date-time-editor/public_api'; +import { DateRange, IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent } from './date-range-picker-inputs.common'; +import { IgxDateTimeEditorDirective } from '../directives/date-time-editor/public_api'; import { DateRangeType } from '../core/dates'; import { IgxDateRangePickerComponent, IgxDateRangeEndComponent } from './public_api'; -import { IgxIconModule } from '../icon/public_api'; import { AutoPositionStrategy, IgxOverlayService } from '../services/public_api'; import { AnimationMetadata, AnimationOptions } from '@angular/animations'; -import { IgxPickersCommonModule } from '../date-common/public_api'; -import { IgxCalendarContainerComponent, IgxCalendarContainerModule } from '../date-common/calendar-container/calendar-container.component'; +import { IgxCalendarContainerComponent } from '../date-common/calendar-container/calendar-container.component'; import { IgxCalendarComponent, WEEKDAYS } from '../calendar/public_api'; import { Subject } from 'rxjs'; -import { CommonModule } from '@angular/common'; +import { AsyncPipe } from '@angular/common'; import { AnimationService } from '../services/animation/animation'; import { IgxAngularAnimationService } from '../services/animation/angular-animation-service'; +import { IgxPickerToggleComponent } from '../date-common/picker-icons.common'; +import { IgxIconComponent } from '../icon/icon.component'; // The number of milliseconds in one day -const ONE_DAY = 1000 * 60 * 60 * 24; const DEBOUNCE_TIME = 16; const DEFAULT_ICON_TEXT = 'date_range'; const DEFAULT_FORMAT_OPTIONS = { day: '2-digit', month: '2-digit', year: 'numeric' }; @@ -142,7 +140,7 @@ describe('IgxDateRangePicker', () => { mockPlatformUtil = { isIOS: false }; mockAnimationService = new IgxAngularAnimationService(mockAnimationBuilder); overlay = new IgxOverlayService( - mockFactoryResolver, mockApplicationRef, mockInjector, mockAnimationBuilder, mockDocument, mockNgZone, mockPlatformUtil, mockAnimationService); + mockFactoryResolver, mockApplicationRef, mockInjector, mockDocument, mockNgZone, mockPlatformUtil, mockAnimationService); mockCalendar = new IgxCalendarComponent(platform, 'en'); mockDaysView = { @@ -337,26 +335,14 @@ describe('IgxDateRangePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - DateRangeTestComponent, + imports: [ + NoopAnimationsModule, + ReactiveFormsModule, DateRangeDefaultComponent, DateRangeDisabledComponent, DateRangeReactiveFormComponent - ], - imports: [ - CommonModule, - IgxDateRangePickerModule, - IgxDateTimeEditorModule, - IgxInputGroupModule, - IgxIconModule, - FormsModule, - NoopAnimationsModule, - IgxPickersCommonModule, - IgxCalendarContainerModule, - ReactiveFormsModule ] - }) - .compileComponents(); + }).compileComponents(); })); beforeEach(fakeAsync(() => { fixture = TestBed.createComponent(DateRangeDefaultComponent); @@ -802,28 +788,16 @@ describe('IgxDateRangePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - DateRangeTestComponent, + imports: [ + NoopAnimationsModule, + ReactiveFormsModule, DateRangeTwoInputsTestComponent, DateRangeTwoInputsNgModelTestComponent, DateRangeDisabledComponent, DateRangeTwoInputsDisabledComponent, DateRangeReactiveFormComponent - ], - imports: [ - CommonModule, - IgxDateRangePickerModule, - IgxDateTimeEditorModule, - IgxPickersCommonModule, - IgxCalendarContainerModule, - IgxInputGroupModule, - FormsModule, - NoopAnimationsModule, - IgxIconModule, - ReactiveFormsModule ] - }) - .compileComponents(); + }).compileComponents(); })); beforeEach(async () => { fixture = TestBed.createComponent(DateRangeTwoInputsTestComponent); @@ -1254,25 +1228,14 @@ describe('IgxDateRangePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - DateRangeTestComponent, + imports: [ + NoopAnimationsModule, DateRangeDefaultComponent, DateRangeCustomComponent, DateRangeTemplatesComponent, DateRangeTwoInputsTestComponent - ], - imports: [ - IgxDateRangePickerModule, - IgxDateTimeEditorModule, - IgxInputGroupModule, - IgxIconModule, - FormsModule, - NoopAnimationsModule, - IgxCalendarContainerModule, - IgxPickersCommonModule ] - }) - .compileComponents(); + }).compileComponents(); })); it('should render range separator', () => { @@ -1446,7 +1409,8 @@ describe('IgxDateRangePicker', () => { @Component({ selector: 'igx-date-range-test', - template: '' + template: '', + standalone: true }) export class DateRangeTestComponent implements OnInit { [x: string]: any; @@ -1463,12 +1427,15 @@ export class DateRangeTestComponent implements OnInit { this.doneButtonText = 'Done'; } } + @Component({ selector: 'igx-date-range-single-input-test', template: ` - ` + `, + standalone: true, + imports: [IgxDateRangePickerComponent] }) export class DateRangeDefaultComponent extends DateRangeTestComponent { public override disabled = false; @@ -1493,7 +1460,20 @@ export class DateRangeDefaultComponent extends DateRangeTestComponent { -` + `, + standalone: true, + imports: [ + IgxDateRangePickerComponent, + IgxDateRangeStartComponent, + IgxDateRangeEndComponent, + IgxPickerToggleComponent, + IgxIconComponent, + IgxPrefixDirective, + IgxInputDirective, + IgxDateTimeEditorDirective, + IgxDateRangeSeparatorDirective, + FormsModule + ] }) export class DateRangeTwoInputsTestComponent extends DateRangeTestComponent { public range; @@ -1511,7 +1491,9 @@ export class DateRangeTwoInputsTestComponent extends DateRangeTestComponent { - ` + `, + standalone: true, + imports: [IgxDateRangePickerComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent, IgxInputDirective, IgxDateTimeEditorDirective, FormsModule] }) export class DateRangeTwoInputsNgModelTestComponent extends DateRangeTestComponent { public range = { start: new Date(2020, 1, 1), end: new Date(2020, 1, 4) }; @@ -1520,10 +1502,12 @@ export class DateRangeTwoInputsNgModelTestComponent extends DateRangeTestCompone @Component({ selector: 'igx-date-range-single-input-label-test', template: ` - - - -` + + + + `, + standalone: true, + imports: [IgxDateRangePickerComponent, IgxLabelDirective] }) export class DateRangeCustomComponent extends DateRangeTestComponent { public date: DateRange; @@ -1577,7 +1561,20 @@ export class DateRangeCustomComponent extends DateRangeTestComponent { - ` + `, + standalone: true, + imports: [ + IgxDateRangePickerComponent, + IgxDateRangeStartComponent, + IgxDateRangeEndComponent, + IgxPickerToggleComponent, + IgxIconComponent, + FormsModule, + IgxInputDirective, + IgxDateTimeEditorDirective, + IgxPrefixDirective, + IgxSuffixDirective + ] }) export class DateRangeTemplatesComponent extends DateRangeTestComponent { public range; @@ -1585,7 +1582,9 @@ export class DateRangeTemplatesComponent extends DateRangeTestComponent { @Component({ template: ``, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [IgxDateRangePickerComponent, AsyncPipe] }) export class DateRangeDisabledComponent extends DateRangeTestComponent { public disabled$ = new Subject(); @@ -1606,25 +1605,37 @@ export class DateRangeDisabledComponent extends DateRangeTestComponent { `, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [IgxDateRangePickerComponent, IgxDateRangeStartComponent, IgxDateRangeEndComponent, IgxInputDirective, IgxDateTimeEditorDirective, AsyncPipe] }) export class DateRangeTwoInputsDisabledComponent extends DateRangeDisabledComponent { } @Component({ template: ` -
- - - - - - - - - - - -
` +
+ + + + + + + + + + + +
`, + standalone: true, + imports: [ + IgxDateRangePickerComponent, + IgxDateRangeStartComponent, + IgxDateRangeEndComponent, + IgxInputDirective, + IgxLabelDirective, + IgxDateTimeEditorDirective, + ReactiveFormsModule + ] }) export class DateRangeReactiveFormComponent { @ViewChild('range', {read: IgxDateRangePickerComponent}) public dateRange: IgxDateRangePickerComponent; diff --git a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.ts b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.ts index 8672c3a47b2..6df48ed0146 100644 --- a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.ts +++ b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component.ts @@ -4,12 +4,15 @@ import { OnChanges, OnDestroy, OnInit, Optional, Output, QueryList, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core'; +import { NgTemplateOutlet, NgIf } from '@angular/common'; import { AbstractControl, ControlValueAccessor, NgControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms'; + import { fromEvent, merge, MonoTypeOperatorFunction, noop, Subscription } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; + import { fadeIn, fadeOut } from '../animations/fade'; import { CalendarSelection, IgxCalendarComponent } from '../calendar/public_api'; import { DateRangeType } from '../core/dates'; @@ -30,10 +33,9 @@ import { AutoPositionStrategy, IgxOverlayService, OverlayCancelableEventArgs, OverlayEventArgs, OverlaySettings, PositionSettings } from '../services/public_api'; -import { - DateRange, IgxDateRangeEndComponent, IgxDateRangeInputsBaseComponent, - IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent -} from './date-range-picker-inputs.common'; +import { DateRange, IgxDateRangeEndComponent, IgxDateRangeInputsBaseComponent, IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent, DateRangePickerFormatPipe } from './date-range-picker-inputs.common'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxIconComponent } from '../icon/icon.component'; const SingleInputDatesConcatenationString = ' - '; @@ -65,6 +67,16 @@ const SingleInputDatesConcatenationString = ' - '; providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: IgxDateRangePickerComponent, multi: true }, { provide: NG_VALIDATORS, useExisting: IgxDateRangePickerComponent, multi: true } + ], + standalone: true, + imports: [ + NgIf, + NgTemplateOutlet, + IgxIconComponent, + IgxInputGroupComponent, + IgxInputDirective, + IgxPrefixDirective, + DateRangePickerFormatPipe ] }) export class IgxDateRangePickerComponent extends PickerBaseDirective @@ -670,7 +682,7 @@ export class IgxDateRangePickerComponent extends PickerBaseDirective .forEach(i => { i.inputDirective.valid = this.isTouchedOrDirty && !this._ngControl.disabled ? this.getInputState(i.isFocused) - : IgxInputState.INITIAL;; + : IgxInputState.INITIAL; }); } this.setRequiredToInputs(); diff --git a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.module.ts b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.module.ts index 202c0515f03..ea02fcc9b47 100644 --- a/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.module.ts +++ b/projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.module.ts @@ -1,50 +1,16 @@ import { NgModule } from '@angular/core'; -import { IgxDateRangePickerComponent } from './date-range-picker.component'; -import { IgxCalendarModule } from '../calendar/public_api'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { CommonModule } from '@angular/common'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxInputGroupModule } from '../input-group/public_api'; -import { IgxIconModule } from '../icon/public_api'; -import { - IgxDateRangeStartComponent, IgxDateRangeEndComponent, - DateRangePickerFormatPipe, - IgxDateRangeSeparatorDirective, - IgxDateRangeInputsBaseComponent -} from './date-range-picker-inputs.common'; -import { IgxDateTimeEditorModule } from '../directives/date-time-editor/public_api'; -import { IgxPickersCommonModule } from '../date-common/picker-icons.common'; -import { IgxCalendarContainerModule } from '../date-common/calendar-container/calendar-container.component'; +import { IGX_DATE_RANGE_PICKER_DIRECTIVES } from './public_api'; -/** @hidden */ +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ @NgModule({ - declarations: [ - IgxDateRangePickerComponent, - IgxDateRangeStartComponent, - IgxDateRangeEndComponent, - IgxDateRangeInputsBaseComponent, - DateRangePickerFormatPipe, - IgxDateRangeSeparatorDirective, - ], imports: [ - CommonModule, - IgxIconModule, - IgxButtonModule, - IgxToggleModule, - IgxCalendarModule, - IgxInputGroupModule, - IgxPickersCommonModule, - IgxDateTimeEditorModule, - IgxCalendarContainerModule + ...IGX_DATE_RANGE_PICKER_DIRECTIVES ], exports: [ - IgxDateRangePickerComponent, - IgxDateRangeStartComponent, - IgxDateRangeEndComponent, - IgxDateRangeSeparatorDirective, - IgxDateTimeEditorModule, - IgxPickersCommonModule, - IgxInputGroupModule + ...IGX_DATE_RANGE_PICKER_DIRECTIVES ] }) export class IgxDateRangePickerModule { } diff --git a/projects/igniteui-angular/src/lib/date-range-picker/public_api.ts b/projects/igniteui-angular/src/lib/date-range-picker/public_api.ts index 23a291937b9..6dd6697ee40 100644 --- a/projects/igniteui-angular/src/lib/date-range-picker/public_api.ts +++ b/projects/igniteui-angular/src/lib/date-range-picker/public_api.ts @@ -1,3 +1,21 @@ +import { IgxHintDirective } from '../directives/hint/hint.directive'; +import { IgxLabelDirective } from '../directives/label/label.directive'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxDateRangeEndComponent, IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent } from './date-range-picker-inputs.common'; +import { IgxDateRangePickerComponent } from './date-range-picker.component'; + export * from './date-range-picker-inputs.common'; export * from './date-range-picker.component'; -export * from './date-range-picker.module'; + +/* NOTE: Date-range picker directives collection for ease-of-use import in standalone components scenario */ +export const IGX_DATE_RANGE_PICKER_DIRECTIVES = [ + IgxDateRangePickerComponent, + IgxDateRangeStartComponent, + IgxDateRangeEndComponent, + IgxDateRangeSeparatorDirective, + IgxLabelDirective, + IgxPrefixDirective, + IgxSuffixDirective, + IgxHintDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/dialog/dialog.component.spec.ts b/projects/igniteui-angular/src/lib/dialog/dialog.component.spec.ts index b46cbe2f2e3..52cee9893dc 100644 --- a/projects/igniteui-angular/src/lib/dialog/dialog.component.spec.ts +++ b/projects/igniteui-angular/src/lib/dialog/dialog.component.spec.ts @@ -1,14 +1,15 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; -import { IDialogCancellableEventArgs, IDialogEventArgs, IgxDialogComponent, IgxDialogModule } from './dialog.component'; +import { IDialogCancellableEventArgs, IDialogEventArgs, IgxDialogComponent } from './dialog.component'; import { configureTestSuite } from '../test-utils/configure-suite'; import { useAnimation } from '@angular/animations'; import { PositionSettings, HorizontalAlignment, VerticalAlignment } from '../services/overlay/utilities'; import { slideOutBottom, slideInTop } from '../animations/main'; import { IgxToggleDirective } from '../directives/toggle/toggle.directive'; +import { IgxDialogActionsDirective, IgxDialogTitleDirective } from './dialog.directives'; const OVERLAY_MAIN_CLASS = 'igx-overlay'; const OVERLAY_WRAPPER_CLASS = `${OVERLAY_MAIN_CLASS}__wrapper--flex`; @@ -19,7 +20,8 @@ describe('Dialog', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, AlertComponent, DialogComponent, CustomDialogComponent, @@ -29,8 +31,7 @@ describe('Dialog', () => { DialogSampleComponent, PositionSettingsDialogComponent, DialogTwoWayDataBindingComponent - ], - imports: [BrowserAnimationsModule, NoopAnimationsModule, IgxDialogModule] + ] }).compileComponents(); })); @@ -519,141 +520,175 @@ describe('Dialog', () => { }); @Component({ - template: `
- - -
` }) + template: ` +
+ + +
`, + standalone: true, + imports: [IgxDialogComponent] +}) class AlertComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; public isModal = false; } @Component({ - template: `
- - -
` }) + template: ` +
+ + +
`, + standalone: true, + imports: [IgxDialogComponent] +}) class DialogComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; } @Component({ - template: `
- - -
` }) + template: ` +
+ + +
`, + standalone: true, + imports: [IgxDialogComponent] +}) class DialogTwoWayDataBindingComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; public myDialog = false; } @Component({ - template: `
- -
-

Custom Sample

-
-
-
` }) + template: ` +
+ +
+

Custom Sample

+
+
+
`, + standalone: true, + imports: [IgxDialogComponent] +}) class DialogSampleComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; } @Component({ - template: `
- -
- -
-
-
` }) + template: ` +
+ +
+ +
+
+
`, + standalone: true, + imports: [IgxDialogComponent] +}) class CustomDialogComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; } @Component({ - template: ` - - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxDialogComponent] +}) class NestedDialogsComponent { @ViewChild('child', { static: true }) public child: IgxDialogComponent; @ViewChild('main', { static: true }) public main: IgxDialogComponent; } @Component({ - template: ` - -
TITLE 1
-
- -
BUTTONS 1
-
-
` }) + template: ` + + +
TITLE 1
+
+ +
BUTTONS 1
+
+
`, + standalone: true, + imports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective] +}) class CustomTemplates1DialogComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; } @Component({ - template: ` -
TITLE 2
-
BUTTONS 2
-
` }) + template: ` + +
TITLE 2
+
BUTTONS 2
+
`, + standalone: true, + imports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective] +}) class CustomTemplates2DialogComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; } @Component({ - template: ` - ` }) + `, + standalone: true, + imports: [IgxDialogComponent] +}) class PositionSettingsDialogComponent { @ViewChild('dialog', { static: true }) public dialog: IgxDialogComponent; diff --git a/projects/igniteui-angular/src/lib/dialog/dialog.component.ts b/projects/igniteui-angular/src/lib/dialog/dialog.component.ts index 05c73d24ad6..8cc1ff97f28 100644 --- a/projects/igniteui-angular/src/lib/dialog/dialog.component.ts +++ b/projects/igniteui-angular/src/lib/dialog/dialog.component.ts @@ -1,11 +1,10 @@ -import { CommonModule } from '@angular/common'; +import { NgIf } from '@angular/common'; import { Component, ElementRef, EventEmitter, HostBinding, Input, - NgModule, OnDestroy, OnInit, Optional, @@ -16,14 +15,13 @@ import { import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { IgxNavigationService, IToggleView } from '../core/navigation'; -import { IgxButtonModule, IgxButtonType } from '../directives/button/button.directive'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxDialogActionsDirective, IgxDialogTitleDirective } from './dialog.directives'; -import { IgxToggleModule, IgxToggleDirective } from '../directives/toggle/toggle.directive'; +import { IgxButtonType, IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; +import { IgxToggleDirective } from '../directives/toggle/toggle.directive'; import { OverlaySettings, GlobalPositionStrategy, NoOpScrollStrategy, PositionSettings } from '../services/public_api'; import {fadeIn, fadeOut} from '../animations/fade/index'; -import { IgxFocusModule } from '../directives/focus/focus.directive'; -import { IgxFocusTrapModule } from '../directives/focus-trap/focus-trap.directive'; +import { IgxFocusDirective } from '../directives/focus/focus.directive'; +import { IgxFocusTrapDirective } from '../directives/focus-trap/focus-trap.directive'; import { CancelableEventArgs, IBaseEventArgs } from '../core/utils'; let DIALOG_ID = 0; @@ -56,7 +54,9 @@ let DIALOG_ID = 0; */ @Component({ selector: 'igx-dialog', - templateUrl: 'dialog-content.component.html' + templateUrl: 'dialog-content.component.html', + standalone: true, + imports: [IgxToggleDirective, IgxFocusTrapDirective, NgIf, IgxFocusDirective, IgxButtonDirective, IgxRippleDirective] }) export class IgxDialogComponent implements IToggleView, OnInit, OnDestroy, AfterContentInit { private static NEXT_ID = 1; @@ -623,15 +623,3 @@ export interface IDialogEventArgs extends IBaseEventArgs { } export interface IDialogCancellableEventArgs extends IDialogEventArgs, CancelableEventArgs { } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective], - exports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective], - imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule, IgxFocusTrapModule] -}) -export class IgxDialogModule { } - -export * from './dialog.directives'; diff --git a/projects/igniteui-angular/src/lib/dialog/dialog.directives.ts b/projects/igniteui-angular/src/lib/dialog/dialog.directives.ts index 79377603ab9..0df18988c47 100644 --- a/projects/igniteui-angular/src/lib/dialog/dialog.directives.ts +++ b/projects/igniteui-angular/src/lib/dialog/dialog.directives.ts @@ -4,7 +4,8 @@ import { Directive, HostBinding } from '@angular/core'; * @hidden */ @Directive({ - selector: 'igx-dialog-title,[igxDialogTitle]' + selector: 'igx-dialog-title,[igxDialogTitle]', + standalone: true }) export class IgxDialogTitleDirective { @@ -16,7 +17,8 @@ export class IgxDialogTitleDirective { * @hidden */ @Directive({ - selector: 'igx-dialog-actions,[igxDialogActions]' + selector: 'igx-dialog-actions,[igxDialogActions]', + standalone: true }) export class IgxDialogActionsDirective { diff --git a/projects/igniteui-angular/src/lib/dialog/dialog.module.ts b/projects/igniteui-angular/src/lib/dialog/dialog.module.ts new file mode 100644 index 00000000000..e5e6dccb86c --- /dev/null +++ b/projects/igniteui-angular/src/lib/dialog/dialog.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_DIALOG_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_DIALOG_DIRECTIVES + ], + exports: [ + ...IGX_DIALOG_DIRECTIVES + ] +}) +export class IgxDialogModule { } diff --git a/projects/igniteui-angular/src/lib/dialog/public_api.ts b/projects/igniteui-angular/src/lib/dialog/public_api.ts new file mode 100644 index 00000000000..9842d637b6c --- /dev/null +++ b/projects/igniteui-angular/src/lib/dialog/public_api.ts @@ -0,0 +1,12 @@ +import { IgxDialogComponent } from './dialog.component'; +import { IgxDialogActionsDirective, IgxDialogTitleDirective } from './dialog.directives'; + +export * from './dialog.component'; +export * from './dialog.directives'; + +/* NOTE: Dialog directives collection for ease-of-use import in standalone components scenario */ +export const IGX_DIALOG_DIRECTIVES = [ + IgxDialogComponent, + IgxDialogTitleDirective, + IgxDialogActionsDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.spec.ts index 449f00c0f4e..9aa2f62e865 100644 --- a/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.spec.ts @@ -2,15 +2,17 @@ import { Component, ViewChild, Pipe, PipeTransform, ElementRef } from '@angular/ import { TestBed, tick, fakeAsync, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxAutocompleteModule, IgxAutocompleteDirective, AutocompleteOverlaySettings } from './autocomplete.directive'; +import { IgxAutocompleteDirective, AutocompleteOverlaySettings } from './autocomplete.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { IgxInputDirective } from '../input/input.directive'; -import { IgxInputGroupModule, IgxInputGroupComponent } from '../../input-group/public_api'; -import { IgxDropDownModule, IgxDropDownComponent, IgxDropDownItemNavigationDirective } from '../../drop-down/public_api'; +import { IgxInputGroupComponent, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective } from '../../input-group/public_api'; +import { IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective } from '../../drop-down/public_api'; import { FormsModule, ReactiveFormsModule, UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms'; -import { IgxIconModule } from '../../icon/public_api'; import { ConnectedPositioningStrategy, VerticalAlignment, HorizontalAlignment } from '../../services/public_api'; +import { NgFor } from '@angular/common'; +import { IgxRippleDirective } from '../ripple/ripple.directive'; +import { IgxIconComponent } from '../../icon/icon.component'; const CSS_CLASS_DROPDOWNLIST = 'igx-drop-down__list'; const CSS_CLASS_DROPDOWNLIST_SCROLL = 'igx-drop-down__list-scroll'; @@ -28,23 +30,13 @@ describe('IgxAutocomplete', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - AutocompleteComponent, - AutocompleteInputComponent, - AutocompleteFormComponent, - IgxAutocompletePipeStartsWith - ], imports: [ - IgxInputGroupModule, - IgxDropDownModule, - IgxAutocompleteModule, - FormsModule, - ReactiveFormsModule, NoopAnimationsModule, - IgxIconModule + AutocompleteComponent, + AutocompleteInputComponent, + AutocompleteFormComponent ] - }) - .compileComponents(); + }).compileComponents(); })); describe('General tests: ', () => { beforeEach(waitForAsync(() => { @@ -933,8 +925,22 @@ describe('IgxAutocomplete', () => { }); }); +@Pipe({ + name: 'startsWith', + standalone: true +}) +export class IgxAutocompletePipeStartsWith implements PipeTransform { + public transform(collection: any[], term = '', key?: string) { + return collection.filter(item => { + const currItem = key ? item[key] : item; + return currItem.toString().toLowerCase().startsWith(term.toString().toLowerCase()); + }); + } +} + @Component({ - template: ` + template: ` + home { {{town}} - ` + `, + standalone: true, + imports: [ + FormsModule, + IgxInputGroupComponent, + IgxPrefixDirective, + IgxSuffixDirective, + IgxInputDirective, + IgxDropDownComponent, + IgxDropDownItemComponent, + IgxIconComponent, + IgxAutocompleteDirective, + IgxAutocompletePipeStartsWith, + NgFor + ] }) class AutocompleteComponent { @ViewChild(IgxAutocompleteDirective, { static: true }) public autocomplete: IgxAutocompleteDirective; @@ -982,7 +1002,17 @@ class AutocompleteComponent { {{town}} - ` + `, + standalone: true, + imports: [ + FormsModule, + IgxAutocompleteDirective, + IgxLabelDirective, + IgxDropDownComponent, + IgxDropDownItemComponent, + IgxAutocompletePipeStartsWith, + NgFor + ] }) class AutocompleteInputComponent extends AutocompleteComponent { @ViewChild('plainInput', { static: true }) public plainInput: ElementRef; @@ -991,24 +1021,39 @@ class AutocompleteInputComponent extends AutocompleteComponent { @Component({ template: ` -
- - home - - - clear - - - - {{town}} - - - - -
-` +
+ + home + + + clear + + + + {{town}} + + + + +
+ `, + standalone: true, + imports: [ + ReactiveFormsModule, + IgxInputGroupComponent, + IgxInputDirective, + IgxLabelDirective, + IgxPrefixDirective, + IgxRippleDirective, + IgxDropDownComponent, + IgxDropDownItemComponent, + IgxIconComponent, + IgxAutocompleteDirective, + IgxAutocompletePipeStartsWith, + NgFor + ] }) class AutocompleteFormComponent { @@ -1034,13 +1079,3 @@ class AutocompleteFormComponent { } public onSubmitReactive() { } } - -@Pipe({ name: 'startsWith' }) -export class IgxAutocompletePipeStartsWith implements PipeTransform { - public transform(collection: any[], term = '', key?: string) { - return collection.filter(item => { - const currItem = key ? item[key] : item; - return currItem.toString().toLowerCase().startsWith(term.toString().toLowerCase()); - }); - } -} diff --git a/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.ts b/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.ts index 6a3577a5e0b..a7fa92d517e 100644 --- a/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.directive.ts @@ -7,7 +7,6 @@ import { HostListener, Inject, Input, - NgModule, OnDestroy, Optional, Output, @@ -16,7 +15,6 @@ import { OnInit } from '@angular/core'; import { NgModel, FormControlName } from '@angular/forms'; -import { CommonModule } from '@angular/common'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { CancelableEventArgs, IBaseEventArgs } from '../../core/utils'; @@ -28,13 +26,12 @@ import { OverlaySettings } from '../../services/public_api'; import { - IgxDropDownComponent, - IgxDropDownItemNavigationDirective, - IgxDropDownModule, - ISelectionEventArgs -} from '../../drop-down/public_api'; + IgxDropDownComponent +} from '../../drop-down/drop-down.component'; +import { IgxDropDownItemNavigationDirective } from '../../drop-down/drop-down-navigation.directive'; import { IgxInputGroupComponent } from '../../input-group/public_api'; import { IgxOverlayOutletDirective } from '../toggle/toggle.directive'; +import { ISelectionEventArgs } from '../../drop-down/drop-down.common'; /** * Interface that encapsulates onItemSelection event arguments - new value and cancel selection. @@ -76,7 +73,8 @@ export interface AutocompleteOverlaySettings { */ @Directive({ selector: '[igxAutocomplete]', - exportAs: 'igxAutocomplete' + exportAs: 'igxAutocomplete', + standalone: true }) export class IgxAutocompleteDirective extends IgxDropDownItemNavigationDirective implements OnDestroy, AfterViewInit, OnInit { /** @@ -386,7 +384,7 @@ export class IgxAutocompleteDirective extends IgxDropDownItemNavigationDirective } else { this.nativeElement.value = newValue; } - }; + } private highlightFirstItem() { if (this.target.focusedItem) { @@ -395,13 +393,5 @@ export class IgxAutocompleteDirective extends IgxDropDownItemNavigationDirective } this.target.navigateFirst(); this.cdr.detectChanges(); - }; + } } - -/** @hidden */ -@NgModule({ - imports: [IgxDropDownModule, CommonModule], - declarations: [IgxAutocompleteDirective], - exports: [IgxAutocompleteDirective] -}) -export class IgxAutocompleteModule { } diff --git a/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.module.ts b/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.module.ts new file mode 100644 index 00000000000..346ba28d6b4 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/autocomplete/autocomplete.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxAutocompleteDirective } from './autocomplete.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxAutocompleteDirective], + exports: [IgxAutocompleteDirective] +}) +export class IgxAutocompleteModule { } diff --git a/projects/igniteui-angular/src/lib/directives/button/button.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/button/button.directive.spec.ts index 4cf8946b8cd..e93de981a47 100644 --- a/projects/igniteui-angular/src/lib/directives/button/button.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/button/button.directive.spec.ts @@ -4,8 +4,10 @@ import { By } from '@angular/platform-browser'; import { IgxButtonDirective } from './button.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; -import { IgxIconComponent, IgxIconService } from '../../icon/public_api'; import { DisplayDensity } from '../../core/density'; +import { IgxRippleDirective } from '../ripple/ripple.directive'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; const BUTTON_COMFORTABLE = 'igx-button'; const BUTTON_COSY = 'igx-button--cosy'; @@ -25,16 +27,13 @@ describe('IgxButton', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, InitButtonComponent, ButtonWithAttribsComponent, - ButtonsWithDisplayDensityComponent, - IgxButtonDirective, - IgxIconComponent - ], - providers: [IgxIconService] - }) - .compileComponents(); + ButtonsWithDisplayDensityComponent + ] + }).compileComponents(); })); it('Initializes a button', () => { @@ -151,10 +150,11 @@ describe('IgxButton', () => { }); @Component({ - template: - ` + template: ` add - ` + `, + standalone: true, + imports: [IgxButtonDirective, IgxRippleDirective] }) class InitButtonComponent { @ViewChild(IgxButtonDirective, { read: IgxButtonDirective, static: true }) @@ -162,11 +162,12 @@ class InitButtonComponent { } @Component({ - template: - `Test` + [disabled]="disabled">Test`, + standalone: true, + imports: [IgxButtonDirective] }) class ButtonWithAttribsComponent { public disabled = true; @@ -175,8 +176,7 @@ class ButtonWithAttribsComponent { } @Component({ - template: - ` + template: ` @@ -186,7 +186,9 @@ class ButtonWithAttribsComponent { - ` + `, + standalone: true, + imports: [IgxButtonDirective, IgxIconComponent] }) class ButtonsWithDisplayDensityComponent { @ViewChild('flat', { read: IgxButtonDirective, static: true }) diff --git a/projects/igniteui-angular/src/lib/directives/button/button.directive.ts b/projects/igniteui-angular/src/lib/directives/button/button.directive.ts index 5794aa353ec..3a049b91c56 100644 --- a/projects/igniteui-angular/src/lib/directives/button/button.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/button/button.directive.ts @@ -5,7 +5,6 @@ import { HostBinding, Input, Output, - NgModule, Renderer2, HostListener, Optional, @@ -48,7 +47,8 @@ export type IgxButtonType = typeof IgxButtonType[keyof typeof IgxButtonType]; * ``` */ @Directive({ - selector: '[igxButton]' + selector: '[igxButton]', + standalone: true }) export class IgxButtonDirective extends DisplayDensityBase { private static ngAcceptInputType_type: IgxButtonType | ''; @@ -352,8 +352,4 @@ export interface IButtonEventArgs extends IBaseEventArgs { * * @hidden */ -@NgModule({ - declarations: [IgxButtonDirective], - exports: [IgxButtonDirective] -}) -export class IgxButtonModule {} + diff --git a/projects/igniteui-angular/src/lib/directives/button/button.module.ts b/projects/igniteui-angular/src/lib/directives/button/button.module.ts new file mode 100644 index 00000000000..d4904d1ada3 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/button/button.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxButtonDirective } from './button.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxButtonDirective], + exports: [IgxButtonDirective] +}) +export class IgxButtonModule {} diff --git a/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.spec.ts index 0832f5aaee0..265917974f3 100644 --- a/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.spec.ts @@ -1,4 +1,4 @@ -import { IgxDateTimeEditorDirective, IgxDateTimeEditorModule } from './date-time-editor.directive'; +import { IgxDateTimeEditorDirective } from './date-time-editor.directive'; import { DatePart } from './date-time-editor.common'; import { DOCUMENT, formatDate } from '@angular/common'; import { Component, ViewChild, DebugElement, EventEmitter, Output, SimpleChange, SimpleChanges } from '@angular/core'; @@ -6,7 +6,7 @@ import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { FormsModule, UntypedFormGroup, UntypedFormBuilder, ReactiveFormsModule, Validators, NgControl } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxInputGroupModule, IgxInputGroupComponent, IgxInputDirective } from '../../input-group/public_api'; +import { IgxInputGroupComponent, IgxInputDirective } from '../../input-group/public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { ControlsFunction } from '../../test-utils/controls-functions.spec'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; @@ -19,11 +19,6 @@ describe('IgxDateTimeEditor', () => { ['parseMask', 'restoreValueFromMask', 'parseMaskValue', 'applyMask', 'parseValueFromMask']); const renderer2 = jasmine.createSpyObj('Renderer2', ['setAttribute']); const locale = 'en'; - const _ngModel = { - control: { touched: false, dirty: false, validator: null, setValue: () => { } }, - valid: false, - statusChanges: new EventEmitter(), - }; let elementRef = { nativeElement: null }; let inputFormat: string; let inputDate: string; @@ -369,14 +364,13 @@ describe('IgxDateTimeEditor', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxDateTimeEditorSampleComponent, IgxDateTimeEditorBaseTestComponent, IgxDateTimeEditorShadowDomComponent - ], - imports: [IgxInputGroupModule, IgxDateTimeEditorModule, FormsModule, NoopAnimationsModule] - }) - .compileComponents(); + ] + }).compileComponents(); })); beforeEach(async () => { fixture = TestBed.createComponent(IgxDateTimeEditorSampleComponent); @@ -1117,15 +1111,9 @@ describe('IgxDateTimeEditor', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxDateTimeEditorFormComponent - ], imports: [ - IgxInputGroupModule, - IgxDateTimeEditorModule, NoopAnimationsModule, - ReactiveFormsModule, - FormsModule + IgxDateTimeEditorFormComponent ] }).compileComponents(); })); @@ -1211,7 +1199,9 @@ describe('IgxDateTimeEditor', () => { - ` + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, IgxDateTimeEditorDirective] }) export class IgxDateTimeEditorBaseTestComponent { @ViewChild(IgxDateTimeEditorDirective) @@ -1221,14 +1211,16 @@ export class IgxDateTimeEditorBaseTestComponent { @Component({ template: ` - + -` +`, + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, IgxDateTimeEditorDirective, FormsModule] }) export class IgxDateTimeEditorSampleComponent { @ViewChild('igxInputGroup', { static: true }) public igxInputGroup: IgxInputGroupComponent; @@ -1251,7 +1243,9 @@ export class IgxDateTimeEditorSampleComponent { igxInput [igxDateTimeEditor]="dateTimeFormat" [minValue]="minDate" [maxValue]="maxDate"/> -` +`, + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, IgxDateTimeEditorDirective, ReactiveFormsModule] }) class IgxDateTimeEditorFormComponent { @ViewChild('dateEditor', { read: IgxInputDirective, static: true }) @@ -1279,10 +1273,12 @@ class IgxDateTimeEditorFormComponent { @Component({ template: ` - - + + `, - encapsulation: ViewEncapsulation.ShadowDom + encapsulation: ViewEncapsulation.ShadowDom, + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, IgxDateTimeEditorDirective] }) export class IgxDateTimeEditorShadowDomComponent { public dateTimeFormat = 'dd/MM/yyyy hh:mm:ss'; diff --git a/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.ts b/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.ts index 3f45f40fd31..a4a12e24f2c 100644 --- a/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive.ts @@ -1,7 +1,7 @@ /* eslint-disable @angular-eslint/no-conflicting-lifecycle */ import { Directive, Input, ElementRef, - Renderer2, NgModule, Output, EventEmitter, Inject, + Renderer2, Output, EventEmitter, Inject, LOCALE_ID, OnChanges, SimpleChanges, HostListener, OnInit } from '@angular/core'; import { @@ -46,12 +46,13 @@ import { DateTimeUtil } from '../../date-common/util/date-time.util'; * ``` */ @Directive({ - selector: '[igxDateTimeEditor]', - exportAs: 'igxDateTimeEditor', - providers: [ - { provide: NG_VALUE_ACCESSOR, useExisting: IgxDateTimeEditorDirective, multi: true }, - { provide: NG_VALIDATORS, useExisting: IgxDateTimeEditorDirective, multi: true } - ] + selector: '[igxDateTimeEditor]', + exportAs: 'igxDateTimeEditor', + providers: [ + { provide: NG_VALUE_ACCESSOR, useExisting: IgxDateTimeEditorDirective, multi: true }, + { provide: NG_VALIDATORS, useExisting: IgxDateTimeEditorDirective, multi: true } + ], + standalone: true }) export class IgxDateTimeEditorDirective extends IgxMaskDirective implements OnChanges, OnInit, Validator, ControlValueAccessor { /** @@ -764,8 +765,4 @@ export class IgxDateTimeEditorDirective extends IgxMaskDirective implements OnCh } } -@NgModule({ - declarations: [IgxDateTimeEditorDirective], - exports: [IgxDateTimeEditorDirective] -}) -export class IgxDateTimeEditorModule { } + diff --git a/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.module.ts b/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.module.ts new file mode 100644 index 00000000000..5a79033aaf0 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxDateTimeEditorDirective } from './date-time-editor.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxDateTimeEditorDirective], + exports: [IgxDateTimeEditorDirective] +}) +export class IgxDateTimeEditorModule { } diff --git a/projects/igniteui-angular/src/lib/directives/divider/divider.directive.ts b/projects/igniteui-angular/src/lib/directives/divider/divider.directive.ts index 27c35e15ba5..c86728ef2d4 100644 --- a/projects/igniteui-angular/src/lib/directives/divider/divider.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/divider/divider.directive.ts @@ -1,4 +1,4 @@ -import { Directive, HostBinding, NgModule, Input } from '@angular/core'; +import { Directive, HostBinding, Input } from '@angular/core'; import { mkenum } from '../../core/utils'; export const IgxDividerType = mkenum({ @@ -11,7 +11,8 @@ let NEXT_ID = 0; @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector - selector: 'igx-divider' + selector: 'igx-divider', + standalone: true }) export class IgxDividerDirective { /** @@ -132,8 +133,4 @@ export class IgxDividerDirective { } } -@NgModule({ - declarations: [IgxDividerDirective], - exports: [IgxDividerDirective] -}) -export class IgxDividerModule { } + diff --git a/projects/igniteui-angular/src/lib/directives/divider/divider.module.ts b/projects/igniteui-angular/src/lib/directives/divider/divider.module.ts new file mode 100644 index 00000000000..d27b919c126 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/divider/divider.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxDividerDirective } from './divider.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxDividerDirective], + exports: [IgxDividerDirective] +}) +export class IgxDividerModule { } diff --git a/projects/igniteui-angular/src/lib/directives/divider/divider.spec.ts b/projects/igniteui-angular/src/lib/directives/divider/divider.spec.ts index bd078fb2528..c252036a36c 100644 --- a/projects/igniteui-angular/src/lib/directives/divider/divider.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/divider/divider.spec.ts @@ -3,7 +3,7 @@ import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { configureTestSuite } from '../../test-utils/configure-suite'; -import { IgxDividerModule, IgxDividerType } from './divider.directive'; +import { IgxDividerDirective, IgxDividerType } from './divider.directive'; describe('Divider', () => { configureTestSuite(); @@ -19,8 +19,7 @@ describe('Divider', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [TestDividerComponent], - imports: [IgxDividerModule] + imports: [TestDividerComponent] }).compileComponents(); })); @@ -126,7 +125,9 @@ describe('Divider', () => { [middle]="middle" [inset]="inset" [role]="role"> - ` + `, + standalone: true, + imports: [IgxDividerDirective] }) class TestDividerComponent { public type: string; diff --git a/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive.ts b/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive.ts index aaf3b71fa21..069a7dce823 100644 --- a/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive.ts @@ -5,7 +5,6 @@ import { HostBinding, HostListener, Input, - NgModule, NgZone, OnDestroy, OnInit, @@ -151,7 +150,8 @@ export class IgxDragLocation { } @Directive({ - selector: '[igxDragHandle]' + selector: '[igxDragHandle]', + standalone: true }) export class IgxDragHandleDirective { @@ -162,7 +162,8 @@ export class IgxDragHandleDirective { } @Directive({ - selector: '[igxDragIgnore]' + selector: '[igxDragIgnore]', + standalone: true }) export class IgxDragIgnoreDirective { @@ -174,7 +175,8 @@ export class IgxDragIgnoreDirective { @Directive({ exportAs: 'drag', - selector: '[igxDrag]' + selector: '[igxDrag]', + standalone: true }) export class IgxDragDirective implements AfterContentInit, OnDestroy { /** @@ -1278,7 +1280,7 @@ export class IgxDragDirective implements AfterContentInit, OnDestroy { let targetElements = []; // Check for shadowRoot instance and use it if present for (const elFromPoint of elementsFromPoint) { - if (!!elFromPoint?.shadowRoot) { + if (elFromPoint?.shadowRoot) { targetElements = targetElements.concat(this.getFromShadowRoot(elFromPoint, pageX, pageY, elementsFromPoint)); } else if (targetElements.indexOf(elFromPoint) === -1) { targetElements.push(elFromPoint); @@ -1523,7 +1525,8 @@ export class IgxDragDirective implements AfterContentInit, OnDestroy { @Directive({ exportAs: 'drop', - selector: '[igxDrop]' + selector: '[igxDrop]', + standalone: true }) export class IgxDropDirective implements OnInit, OnDestroy { /** @@ -1900,12 +1903,3 @@ export class IgxDropDirective implements OnInit, OnDestroy { } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxDragDirective, IgxDropDirective, IgxDragHandleDirective, IgxDragIgnoreDirective], - exports: [IgxDragDirective, IgxDropDirective, IgxDragHandleDirective, IgxDragIgnoreDirective] -}) -export class IgxDragDropModule { } diff --git a/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.module.ts b/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.module.ts new file mode 100644 index 00000000000..a020fd48834 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxDragDirective, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDropDirective } from './drag-drop.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxDragDirective, IgxDropDirective, IgxDragHandleDirective, IgxDragIgnoreDirective], + exports: [IgxDragDirective, IgxDropDirective, IgxDragHandleDirective, IgxDragIgnoreDirective] +}) +export class IgxDragDropModule { } diff --git a/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.spec.ts b/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.spec.ts index 3caf31abc21..c3e3aa1303d 100644 --- a/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.spec.ts @@ -1,18 +1,18 @@ import { Component, ViewChildren, QueryList, ViewChild, ElementRef, TemplateRef, Renderer2 } from '@angular/core'; import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { FormsModule } from '@angular/forms'; import { UIInteractions, wait} from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { first } from 'rxjs/operators'; import { IgxInsertDropStrategy, IgxAppendDropStrategy, IgxPrependDropStrategy } from './drag-drop.strategy'; import { - IgxDragDropModule, IgxDragDirective, IgxDropDirective, IgxDragLocation, IDropDroppedEventArgs, - DragDirection + DragDirection, + IgxDragHandleDirective, + IgxDragIgnoreDirective } from './drag-drop.directive'; describe('General igxDrag/igxDrop', () => { @@ -24,13 +24,7 @@ describe('General igxDrag/igxDrop', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestDragDropComponent - ], - imports: [ - FormsModule, - IgxDragDropModule - ] + imports: [TestDragDropComponent] }) .compileComponents(); })); @@ -1356,14 +1350,10 @@ describe('Linked igxDrag/igxDrop ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ TestDragDropLinkedSingleComponent, TestDragDropLinkedMixedComponent, TestDragDropStrategiesComponent - ], - imports: [ - FormsModule, - IgxDragDropModule ] }) .compileComponents(); @@ -1917,7 +1907,9 @@ const generalStyles = [`

Drop area:

- ` + `, + standalone: true, + imports: [IgxDragDirective, IgxDropDirective, IgxDragHandleDirective, IgxDragIgnoreDirective] }) class TestDragDropComponent { @ViewChildren(IgxDragDirective) @@ -1950,7 +1942,9 @@ class TestDragDropComponent {

Drop area:

- ` + `, + standalone: true, + imports: [IgxDragDirective, IgxDropDirective] }) class TestDragDropLinkedSingleComponent extends TestDragDropComponent { } @@ -1969,7 +1963,9 @@ class TestDragDropLinkedSingleComponent extends TestDragDropComponent { }

Drop area:

- ` + `, + standalone: true, + imports: [IgxDragDirective, IgxDropDirective] }) class TestDragDropLinkedMixedComponent extends TestDragDropComponent { } @@ -1989,6 +1985,8 @@ class TestDragDropLinkedMixedComponent extends TestDragDropComponent { }
Drag 2
Drag 3
- ` + `, + standalone: true, + imports: [IgxDragDirective, IgxDropDirective] }) class TestDragDropStrategiesComponent extends TestDragDropLinkedSingleComponent { } diff --git a/projects/igniteui-angular/src/lib/directives/drag-drop/public_api.ts b/projects/igniteui-angular/src/lib/directives/drag-drop/public_api.ts new file mode 100644 index 00000000000..c32397aaf7e --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/drag-drop/public_api.ts @@ -0,0 +1,12 @@ +import { IgxDragDirective, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDropDirective } from './drag-drop.directive'; + +export * from './drag-drop.strategy'; +export * from './drag-drop.directive'; + +/* NOTE: Drag and drop directives collection for ease-of-use import in standalone components scenario */ +export const IGX_DRAG_DROP_DIRECTIVES = [ + IgxDragDirective, + IgxDropDirective, + IgxDragHandleDirective, + IgxDragIgnoreDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/directives/filter/filter.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/filter/filter.directive.spec.ts index 028f86013bb..2cf74aa4f90 100644 --- a/projects/igniteui-angular/src/lib/directives/filter/filter.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/filter/filter.directive.spec.ts @@ -1,22 +1,21 @@ import { Component, ViewChild } from '@angular/core'; import { ComponentFixtureAutoDetect, TestBed, waitForAsync } from '@angular/core/testing'; import { IgxListItemComponent } from '../../list/list-item.component'; -import { IgxListComponent, IgxListModule } from '../../list/list.component'; -import { IgxFilterModule, IgxFilterOptions } from './filter.directive'; +import { IgxListComponent } from '../../list/list.component'; +import { IgxFilterDirective, IgxFilterOptions, IgxFilterPipe } from './filter.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; +import { NgFor } from '@angular/common'; describe('Filter', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [DeclarativeListTestComponent, DynamicListTestComponent], - imports: [IgxFilterModule, IgxListModule], + imports: [DeclarativeListTestComponent, DynamicListTestComponent], providers: [ { provide: ComponentFixtureAutoDetect, useValue: true } ] - }) - .compileComponents(); + }).compileComponents(); })); it('should filter declaratively created list', () => { @@ -173,13 +172,16 @@ describe('Filter', () => { }); @Component({ - template: ` - Header - Item 1 - Item 2 - Item 3 - - ` + template: ` + + Header + Item 1 + Item 2 + Item 3 + + `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent, IgxFilterDirective] }) class DeclarativeListTestComponent { @ViewChild(IgxListComponent, { static: true }) public list: IgxListComponent; @@ -211,11 +213,14 @@ class DeclarativeListTestComponent { } @Component({ - template: ` - - {{item.text}} - - ` + template: ` + + + {{item.text}} + + `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent, IgxFilterPipe, NgFor] }) class DynamicListTestComponent { @ViewChild(IgxListComponent, { static: true }) public list: IgxListComponent; diff --git a/projects/igniteui-angular/src/lib/directives/filter/filter.directive.ts b/projects/igniteui-angular/src/lib/directives/filter/filter.directive.ts index 1081e0f45c4..411b9357ef4 100644 --- a/projects/igniteui-angular/src/lib/directives/filter/filter.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/filter/filter.directive.ts @@ -1,10 +1,7 @@ -import { CommonModule } from '@angular/common'; import { Directive, - ElementRef, EventEmitter, Input, - NgModule, OnChanges, Output, Pipe, @@ -77,7 +74,8 @@ export class IgxFilterOptions { @Directive({ - selector: '[igxFilter]' + selector: '[igxFilter]', + standalone: true }) export class IgxFilterDirective implements OnChanges { @Output() public filtering = new EventEmitter(false); // synchronous event emitter @@ -85,7 +83,7 @@ export class IgxFilterDirective implements OnChanges { @Input('igxFilter') public filterOptions: IgxFilterOptions; - constructor(private element: ElementRef) { + constructor() { } public ngOnChanges(changes: SimpleChanges) { @@ -120,9 +118,9 @@ export class IgxFilterDirective implements OnChanges { @Pipe({ name: 'igxFilter', - pure: false + pure: false, + standalone: true }) - export class IgxFilterPipe implements PipeTransform { private findMatchByKey(item: any, options: IgxFilterOptions, key: string) { const match = options.matchFn(options.formatter(options.get_value(item, key)), options.inputValue); @@ -171,14 +169,3 @@ export class IgxFilterPipe implements PipeTransform { return result; } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxFilterDirective, IgxFilterPipe], - exports: [IgxFilterDirective, IgxFilterPipe], - imports: [CommonModule] -}) -export class IgxFilterModule { -} diff --git a/projects/igniteui-angular/src/lib/directives/filter/filter.module.ts b/projects/igniteui-angular/src/lib/directives/filter/filter.module.ts new file mode 100644 index 00000000000..920781dad9a --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/filter/filter.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IgxFilterDirective, IgxFilterPipe } from './filter.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxFilterDirective, IgxFilterPipe], + exports: [IgxFilterDirective, IgxFilterPipe] +}) +export class IgxFilterModule { +} diff --git a/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.spec.ts index 17577d62b82..afcfda78989 100644 --- a/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.spec.ts @@ -1,22 +1,18 @@ import { Component } from '@angular/core'; import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxFocusTrapDirective, IgxFocusTrapModule } from './focus-trap.directive'; +import { IgxFocusTrapDirective } from './focus-trap.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; -import { IgxCheckboxModule } from '../../checkbox/checkbox.component'; -import { IgxDatePickerModule } from '../../date-picker/public_api'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; +import { NgIf } from '@angular/common'; describe('igxFocusTrap', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TrapFocusTestComponent - ], - imports: [IgxFocusTrapModule, IgxCheckboxModule, IgxDatePickerModule, NoopAnimationsModule] + imports: [NoopAnimationsModule, TrapFocusTestComponent] }).compileComponents(); })); @@ -172,13 +168,17 @@ describe('igxFocusTrap', () => { @Component({ - template: `
-
-
-
-
- -
` }) + template: ` +
+
+
+
+
+ +
`, + standalone: true, + imports: [IgxFocusTrapDirective, NgIf] +}) class TrapFocusTestComponent { public showInput = true; public showButton = true; diff --git a/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.ts b/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.ts index b3c7dfbeac0..192284a8625 100644 --- a/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.directive.ts @@ -1,10 +1,11 @@ -import { AfterViewInit, Directive, ElementRef, Input, NgModule, OnDestroy } from '@angular/core'; +import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from '@angular/core'; import { fromEvent, Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { PlatformUtil } from '../../core/utils'; @Directive({ - selector: '[igxFocusTrap]' + selector: '[igxFocusTrap]', + standalone: true }) export class IgxFocusTrapDirective implements AfterViewInit, OnDestroy { /** @hidden */ @@ -100,12 +101,3 @@ export class IgxFocusTrapDirective implements AfterViewInit, OnDestroy { return activeElement; } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxFocusTrapDirective], - exports: [IgxFocusTrapDirective] -}) -export class IgxFocusTrapModule { } diff --git a/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.module.ts b/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.module.ts new file mode 100644 index 00000000000..2aa5afcf7dd --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/focus-trap/focus-trap.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxFocusTrapDirective } from './focus-trap.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxFocusTrapDirective], + exports: [IgxFocusTrapDirective] +}) +export class IgxFocusTrapModule { } diff --git a/projects/igniteui-angular/src/lib/directives/focus/focus.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/focus/focus.directive.spec.ts index 704b24e2ab2..7366f89dffe 100644 --- a/projects/igniteui-angular/src/lib/directives/focus/focus.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/focus/focus.directive.spec.ts @@ -1,27 +1,27 @@ import { Component, DebugElement, ViewChild } from '@angular/core'; import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxFocusDirective, IgxFocusModule } from './focus.directive'; +import { IgxFocusDirective } from './focus.directive'; + import { configureTestSuite } from '../../test-utils/configure-suite'; import { EditorProvider } from '../../core/edit-provider'; -import { IgxCheckboxModule, IgxCheckboxComponent } from '../../checkbox/checkbox.component'; -import { IgxDatePickerModule, IgxDatePickerComponent } from '../../date-picker/public_api'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxDatePickerComponent } from '../../date-picker/public_api'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxRadioComponent } from '../../radio/radio.component'; -import { IgxRadioModule } from '../radio/radio-group.directive'; -import { IgxSwitchComponent, IgxSwitchModule } from '../../switch/switch.component'; +import { IgxSwitchComponent } from '../../switch/switch.component'; describe('igxFocus', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, SetFocusComponent, NoFocusComponent, TriggerFocusOnClickComponent, CheckboxPickerComponent - ], - imports: [ IgxFocusModule, IgxCheckboxModule, IgxRadioModule, IgxSwitchModule, IgxDatePickerModule, NoopAnimationsModule ] + ] }).compileComponents(); })); @@ -96,28 +96,32 @@ describe('igxFocus', () => { }); @Component({ - template: - ` + template: ` - ` + `, + standalone: true, + imports: [IgxFocusDirective] }) class SetFocusComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxFocusDirective] }) class NoFocusComponent { } @Component({ - template: - ` + template: `
First
Second
Third
- ` + `, + standalone: true, + imports: [IgxFocusDirective] }) class TriggerFocusOnClickComponent { @ViewChild(IgxFocusDirective, { static: true }) public focusRef: IgxFocusDirective; @@ -129,13 +133,14 @@ class TriggerFocusOnClickComponent { } @Component({ - template: - ` + template: ` - ` + `, + standalone: true, + imports: [IgxFocusDirective, IgxCheckboxComponent, IgxSwitchComponent, IgxRadioComponent, IgxDatePickerComponent] }) class CheckboxPickerComponent { @ViewChild(IgxCheckboxComponent, { static: true }) public checkbox: IgxCheckboxComponent; diff --git a/projects/igniteui-angular/src/lib/directives/focus/focus.directive.ts b/projects/igniteui-angular/src/lib/directives/focus/focus.directive.ts index d1bcc268f9a..1203f8e9c17 100644 --- a/projects/igniteui-angular/src/lib/directives/focus/focus.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/focus/focus.directive.ts @@ -1,10 +1,11 @@ -import { Directive, ElementRef, Input, NgModule, Optional, Inject, Self } from '@angular/core'; +import { Directive, ElementRef, Input, Optional, Inject, Self } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { EditorProvider, EDITOR_PROVIDER } from '../../core/edit-provider'; @Directive({ exportAs: 'igxFocus', - selector: '[igxFocus]' + selector: '[igxFocus]', + standalone: true }) export class IgxFocusDirective { @@ -84,12 +85,3 @@ export class IgxFocusDirective { } } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxFocusDirective], - exports: [IgxFocusDirective] -}) -export class IgxFocusModule { } diff --git a/projects/igniteui-angular/src/lib/directives/focus/focus.module.ts b/projects/igniteui-angular/src/lib/directives/focus/focus.module.ts new file mode 100644 index 00000000000..c0c6c4365cb --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/focus/focus.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxFocusDirective } from './focus.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxFocusDirective], + exports: [IgxFocusDirective] +}) +export class IgxFocusModule { } diff --git a/projects/igniteui-angular/src/lib/directives/for-of/base.helper.component.ts b/projects/igniteui-angular/src/lib/directives/for-of/base.helper.component.ts index 3a5c2c23318..264f3412648 100644 --- a/projects/igniteui-angular/src/lib/directives/for-of/base.helper.component.ts +++ b/projects/igniteui-angular/src/lib/directives/for-of/base.helper.component.ts @@ -14,7 +14,8 @@ import { takeUntil, throttleTime } from 'rxjs/operators'; import { resizeObservable, PlatformUtil } from '../../core/utils'; @Directive({ - selector: '[igxVirtualHelperBase]' + selector: '[igxVirtualHelperBase]', + standalone: true }) export class VirtualHelperBaseDirective implements OnDestroy, AfterViewInit { public scrollAmount = 0; diff --git a/projects/igniteui-angular/src/lib/directives/for-of/display.container.ts b/projects/igniteui-angular/src/lib/directives/for-of/display.container.ts index 2443cb9ff0d..1c8d27526a7 100644 --- a/projects/igniteui-angular/src/lib/directives/for-of/display.container.ts +++ b/projects/igniteui-angular/src/lib/directives/for-of/display.container.ts @@ -16,7 +16,9 @@ import { IgxScrollInertiaDirective } from '../scroll-inertia/scroll_inertia.dire [IgxScrollInertiaScrollContainer]="scrollContainer" [IgxScrollInertiaDirection]="scrollDirection"> - ` + `, + standalone: true, + imports: [IgxScrollInertiaDirective] }) export class DisplayContainerComponent { @ViewChild('display_container', { read: ViewContainerRef, static: true }) diff --git a/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.spec.ts index 53f38109995..c52bf0ce9d5 100644 --- a/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.spec.ts @@ -1,4 +1,4 @@ -import { NgForOfContext } from '@angular/common'; +import { AsyncPipe, NgClass, NgFor, NgForOfContext, NgIf } from '@angular/common'; import { AfterViewInit, ChangeDetectorRef, @@ -18,7 +18,7 @@ import { import { TestBed, ComponentFixture, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { BehaviorSubject, Observable } from 'rxjs'; -import { IForOfState, IgxForOfDirective, IgxForOfModule } from './for_of.directive'; +import { IForOfState, IgxForOfDirective } from './for_of.directive'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; @@ -44,11 +44,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - EmptyVirtualComponent - ], - imports: [IgxForOfModule] + imports: [EmptyVirtualComponent] }).compileComponents(); })); @@ -66,11 +62,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - HorizontalVirtualComponent - ], - imports: [IgxForOfModule], + imports: [HorizontalVirtualComponent], providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] }).compileComponents(); })); @@ -202,12 +194,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - VerticalVirtualNoDataComponent, - VerticalVirtualComponent - ], - imports: [IgxForOfModule], + imports: [VerticalVirtualNoDataComponent, VerticalVirtualComponent], providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] }).compileComponents(); })); @@ -360,12 +347,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - VerticalVirtualNoDataComponent, - VerticalVirtualComponent - ], - imports: [IgxForOfModule], + imports: [VerticalVirtualNoDataComponent, VerticalVirtualComponent], providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] }).compileComponents(); })); @@ -404,11 +386,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - VirtualComponent - ], - imports: [IgxForOfModule], + imports: [VirtualComponent], providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] }).compileComponents(); })); @@ -984,11 +962,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - VirtualVariableSizeComponent - ], - imports: [IgxForOfModule] + imports: [VirtualVariableSizeComponent] }).compileComponents(); })); @@ -1030,11 +1004,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - RemoteVirtualizationComponent - ], - imports: [IgxForOfModule] + imports: [RemoteVirtualizationComponent] }).compileComponents(); })); @@ -1072,11 +1042,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - RemoteVirtCountComponent - ], - imports: [IgxForOfModule] + imports: [RemoteVirtCountComponent] }).compileComponents(); })); @@ -1114,11 +1080,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - NoWidthAndHeightComponent - ], - imports: [IgxForOfModule] + imports: [NoWidthAndHeightComponent] }).compileComponents(); })); @@ -1138,11 +1100,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - LocalVariablesComponent - ], - imports: [IgxForOfModule] + imports: [LocalVariablesComponent] }).compileComponents(); })); @@ -1173,11 +1131,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - TestIgxForOfDirective, - VerticalVirtualDestroyComponent - ], - imports: [IgxForOfModule], + imports: [VerticalVirtualDestroyComponent], providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] }).compileComponents(); })); @@ -1224,10 +1178,7 @@ describe('IgxForOf directive -', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - VerticalVirtualCreateComponent - ], - imports: [IgxForOfModule], + imports: [VerticalVirtualCreateComponent], providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] }).compileComponents(); })); @@ -1327,7 +1278,10 @@ class DataGenerator { } /** igxFor for testing */ -@Directive({ selector: '[igxForTest]' }) +@Directive({ + selector: '[igxForTest]', + standalone: true +}) export class TestIgxForOfDirective extends IgxForOfDirective { public scrStepArray = []; public scrTopArray = []; @@ -1385,7 +1339,9 @@ export class TestIgxForOfDirective extends IgxForOfDirective { - ` + `, + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective] }) export class EmptyVirtualComponent { @@ -1412,7 +1368,9 @@ export class EmptyVirtualComponent {
- ` + `, + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective] }) export class VirtualComponent { @ViewChild('container', { read: ViewContainerRef, static: true }) @@ -1483,7 +1441,9 @@ export class VirtualComponent {
- ` + `, + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective] }) export class VerticalVirtualComponent extends VirtualComponent { public override width = '450px'; @@ -1515,7 +1475,9 @@ export class VerticalVirtualComponent extends VirtualComponent { - ` + `, + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective, NgIf] }) export class VerticalVirtualDestroyComponent extends VerticalVirtualComponent { public exists = true; @@ -1551,7 +1513,9 @@ export class VerticalVirtualDestroyComponent extends VerticalVirtualComponent { - ` + `, + standalone: true, + imports: [IgxForOfDirective, NgIf] }) export class VerticalVirtualCreateComponent extends VerticalVirtualComponent { @ViewChild('scrollContainer2', { read: IgxForOfDirective, static: false }) @@ -1580,7 +1544,9 @@ export class VerticalVirtualCreateComponent extends VerticalVirtualComponent { - ` + `, + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective, NgFor] }) export class HorizontalVirtualComponent extends VirtualComponent { public override width = '800px'; @@ -1592,7 +1558,7 @@ export class HorizontalVirtualComponent extends VirtualComponent { /** Only vertically virtualized component */ @Component({ template: ` -
+
- ` + `, + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective] }) export class VirtualVariableSizeComponent { @ViewChild('container', { static: true }) @@ -1636,7 +1604,9 @@ export class VirtualVariableSizeComponent {
- ` + `, + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective] }) export class VerticalVirtualNoDataComponent extends VerticalVirtualComponent { } @@ -1684,7 +1654,7 @@ export class LocalService { /** Vertically virtualized component with remote virtualization */ @Component({ template: ` -
+
`, - providers: [LocalService] + providers: [LocalService], + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective, AsyncPipe] }) export class RemoteVirtualizationComponent implements OnInit, AfterViewInit { @ViewChild('scrollContainer', { read: TestIgxForOfDirective, static: true }) @@ -1728,7 +1700,7 @@ export class RemoteVirtualizationComponent implements OnInit, AfterViewInit { @Component({ template: ` -
+
`, - providers: [LocalService] + providers: [LocalService], + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective, AsyncPipe] }) export class RemoteVirtCountComponent implements OnInit, AfterViewInit { @ViewChild('scrollContainer', { read: TestIgxForOfDirective, static: true }) @@ -1794,7 +1768,9 @@ export class RemoteVirtCountComponent implements OnInit, AfterViewInit { }`, `.forOfElement { flex: 0 0 60px; border-right: 1px solid #888; - }`] + }`], + standalone: true, + imports: [TestIgxForOfDirective, IgxForOfDirective] }) export class NoWidthAndHeightComponent { @@ -1819,7 +1795,6 @@ export class NoWidthAndHeightComponent { + }"> {{rowIndex}} : {{item.text}}
`, + standalone: true, + imports: [IgxForOfDirective, NgClass] }) export class LocalVariablesComponent { public data = []; diff --git a/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.ts b/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.ts index c2ab529c141..0ae89ba1d85 100644 --- a/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.ts @@ -1,5 +1,5 @@ /* eslint-disable @angular-eslint/no-conflicting-lifecycle */ -import { CommonModule, DOCUMENT, NgForOfContext } from '@angular/common'; +import { DOCUMENT, NgForOfContext } from '@angular/common'; import { ChangeDetectorRef, ComponentRef, @@ -11,7 +11,6 @@ import { IterableChanges, IterableDiffer, IterableDiffers, - NgModule, NgZone, OnChanges, OnDestroy, @@ -28,7 +27,7 @@ import { import { DisplayContainerComponent } from './display.container'; import { HVirtualHelperComponent } from './horizontal.virtual.helper.component'; import { VirtualHelperComponent } from './virtual.helper.component'; -import { IgxScrollInertiaModule } from './../scroll-inertia/scroll_inertia.directive'; + import { IgxForOfSyncService, IgxForOfScrollSyncService } from './for_of.sync.service'; import { Subject } from 'rxjs'; import { takeUntil, filter, throttleTime, first } from 'rxjs/operators'; @@ -80,7 +79,8 @@ export class IgxForOfContext { @Directive({ selector: '[igxFor][igxForOf]', - providers: [IgxForOfScrollSyncService] + providers: [IgxForOfScrollSyncService], + standalone: true }) // eslint-disable @angular-eslint/no-conflicting-lifecycle export class IgxForOfDirective implements OnInit, OnChanges, DoCheck, OnDestroy, AfterViewInit { @@ -996,7 +996,7 @@ export class IgxForOfDirective implements OnInit, OnChanges, DoCheck, OnDestr * from the view container. * Often, called while handling a scroll event. */ - protected updateTemplateContext(context: any, index: number = 0): void { + protected updateTemplateContext(context: any, index = 0): void { context.$implicit = this.igxForOf[index]; context.index = this.getContextIndex(this.igxForOf[index]); context.count = this.igxForOf.length; @@ -1475,7 +1475,8 @@ export interface IForOfDataChangingEventArgs extends IBaseEventArgs { } @Directive({ - selector: '[igxGridFor][igxGridForOf]' + selector: '[igxGridFor][igxGridForOf]', + standalone: true }) export class IgxGridForOfDirective extends IgxForOfDirective implements OnInit, OnChanges, DoCheck { @Input() @@ -1483,16 +1484,16 @@ export class IgxGridForOfDirective extends IgxForOfDirective implements On this.igxForOf = value; } + public get igxGridForOf() { + return this.igxForOf; + } + @Input() public igxGridForOfUniqueSizeCache = false; @Input() public igxGridForOfVariableSizes = true; - public get igxGridForOf() { - return this.igxForOf; - } - /** * @hidden * @internal @@ -1838,22 +1839,3 @@ export class IgxGridForOfDirective extends IgxForOfDirective implements On } } - -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxForOfDirective, - IgxGridForOfDirective, - DisplayContainerComponent, - VirtualHelperComponent, - HVirtualHelperComponent, - VirtualHelperBaseDirective - ], - exports: [IgxForOfDirective, IgxGridForOfDirective], - imports: [IgxScrollInertiaModule, CommonModule] -}) - -export class IgxForOfModule { -} diff --git a/projects/igniteui-angular/src/lib/directives/for-of/for_of.module.ts b/projects/igniteui-angular/src/lib/directives/for-of/for_of.module.ts new file mode 100644 index 00000000000..7cc382ed3b3 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/for-of/for_of.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IgxForOfDirective } from './for_of.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxForOfDirective], + exports: [IgxForOfDirective] +}) +export class IgxForOfModule { +} diff --git a/projects/igniteui-angular/src/lib/directives/for-of/horizontal.virtual.helper.component.ts b/projects/igniteui-angular/src/lib/directives/for-of/horizontal.virtual.helper.component.ts index 744f9390b0c..e380ac82b39 100644 --- a/projects/igniteui-angular/src/lib/directives/for-of/horizontal.virtual.helper.component.ts +++ b/projects/igniteui-angular/src/lib/directives/for-of/horizontal.virtual.helper.component.ts @@ -8,7 +8,8 @@ import { PlatformUtil } from '../../core/utils'; */ @Component({ selector: 'igx-horizontal-virtual-helper', - template: '
' + template: '
', + standalone: true }) export class HVirtualHelperComponent extends VirtualHelperBaseDirective { @ViewChild('horizontal_container', { read: ViewContainerRef, static: true }) public _vcr; diff --git a/projects/igniteui-angular/src/lib/directives/for-of/virtual.helper.component.ts b/projects/igniteui-angular/src/lib/directives/for-of/virtual.helper.component.ts index 2ff80a26334..6c85380183e 100644 --- a/projects/igniteui-angular/src/lib/directives/for-of/virtual.helper.component.ts +++ b/projects/igniteui-angular/src/lib/directives/for-of/virtual.helper.component.ts @@ -6,7 +6,8 @@ import { PlatformUtil } from '../../core/utils'; @Component({ selector: 'igx-virtual-helper', - template: '
' + template: '
', + standalone: true }) export class VirtualHelperComponent extends VirtualHelperBaseDirective implements OnInit, OnDestroy { @HostBinding('scrollTop') diff --git a/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.spec.ts index a6ff524890a..aa872be2f6d 100644 --- a/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.spec.ts @@ -1,11 +1,11 @@ import { Component, DebugElement, ViewChild } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { defineComponents, IgcRatingComponent } from 'igniteui-webcomponents'; import { configureTestSuite } from '../../test-utils/configure-suite'; -import { IgcFormControlDirective, IgcFormsModule } from './form-control.directive'; +import { IgcFormControlDirective } from './form-control.directive'; describe('IgcFormControlDirective - ', () => { @@ -21,7 +21,7 @@ describe('IgcFormControlDirective - ', () => { defineComponents(IgcRatingComponent); })); - const elementRef = { nativeElement: document.createElement('igc-rating') }; + const elementRef = { nativeElement: document.createElement('igc-rating') }; const mockNgControl = jasmine.createSpyObj('NgControl', [ 'writeValue', @@ -65,13 +65,8 @@ describe('IgcFormControlDirective - ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxFormsControlComponent - ], imports: [ - IgcFormsModule, - ReactiveFormsModule, - FormsModule + IgxFormsControlComponent ] }).compileComponents(); defineComponents(IgcRatingComponent); @@ -113,11 +108,13 @@ describe('IgcFormControlDirective - ', () => { @Component({ template: ` -
- - -
-` +
+ + +
+ `, + standalone: true, + imports: [IgcFormControlDirective, FormsModule] }) class IgxFormsControlComponent { diff --git a/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.ts b/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.ts index dc03f23e648..06636eed125 100644 --- a/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/form-control/form-control.directive.ts @@ -3,20 +3,20 @@ import { forwardRef, ElementRef, HostListener, - NgModule, Renderer2 } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; -@Directive({ - selector: 'igc-rating[ngModel],igc-rating[formControlName]', /* eslint-disable-line @angular-eslint/directive-selector */ +@Directive({// eslint-disable-next-line @angular-eslint/directive-selector + selector: 'igc-rating[ngModel],igc-rating[formControlName]', providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => IgcFormControlDirective), multi: true } - ] + ], + standalone: true }) export class IgcFormControlDirective implements ControlValueAccessor { /** @hidden @internal */ @@ -63,8 +63,3 @@ export class IgcFormControlDirective implements ControlValueAccessor { } } -@NgModule({ - declarations: [IgcFormControlDirective], - exports: [IgcFormControlDirective] -}) -export class IgcFormsModule { } \ No newline at end of file diff --git a/projects/igniteui-angular/src/lib/directives/form-control/form-control.module.ts b/projects/igniteui-angular/src/lib/directives/form-control/form-control.module.ts new file mode 100644 index 00000000000..d6dd922ed69 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/form-control/form-control.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgcFormControlDirective } from './form-control.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgcFormControlDirective], + exports: [IgcFormControlDirective] +}) +export class IgcFormsModule { } diff --git a/projects/igniteui-angular/src/lib/directives/hint/hint.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/hint/hint.directive.spec.ts index c2d79d9c5bf..86c54990a7b 100644 --- a/projects/igniteui-angular/src/lib/directives/hint/hint.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/hint/hint.directive.spec.ts @@ -1,9 +1,9 @@ import { Component } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxInputGroupModule } from '../../input-group/input-group.component'; import { configureTestSuite } from '../../test-utils/configure-suite'; +import { IgxHintDirective } from './hint.directive'; describe('IgxHint', () => { configureTestSuite(); @@ -12,13 +12,10 @@ describe('IgxHint', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ HintComponent, StartHintComponent, EndHintComponent - ], - imports: [ - IgxInputGroupModule ] }) .compileComponents(); @@ -44,19 +41,25 @@ describe('IgxHint', () => { }); @Component({ - template: `regular hint` + template: `regular hint`, + standalone: true, + imports: [IgxHintDirective] }) class HintComponent { } @Component({ - template: `hin with position start` + template: `hin with position start`, + standalone: true, + imports: [IgxHintDirective] }) class StartHintComponent { } @Component({ - template: `hint with position end` + template: `hint with position end`, + standalone: true, + imports: [IgxHintDirective] }) class EndHintComponent { } diff --git a/projects/igniteui-angular/src/lib/directives/hint/hint.directive.ts b/projects/igniteui-angular/src/lib/directives/hint/hint.directive.ts index 5c6a55634ff..059319a6836 100644 --- a/projects/igniteui-angular/src/lib/directives/hint/hint.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/hint/hint.directive.ts @@ -6,7 +6,8 @@ enum IgxHintPosition { } @Directive({ - selector: 'igx-hint,[igxHint]' + selector: 'igx-hint,[igxHint]', + standalone: true }) export class IgxHintDirective implements OnInit { /** diff --git a/projects/igniteui-angular/src/lib/directives/input/input.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/input/input.directive.spec.ts index 45c97612a25..2e812f6618c 100644 --- a/projects/igniteui-angular/src/lib/directives/input/input.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/input/input.directive.spec.ts @@ -2,10 +2,14 @@ import { Component, ViewChild, ViewChildren, QueryList, DebugElement } from '@an import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { FormsModule, UntypedFormBuilder, ReactiveFormsModule, Validators, UntypedFormControl, UntypedFormGroup, FormControl } from '@angular/forms'; import { By } from '@angular/platform-browser'; -import { IgxInputGroupComponent, IgxInputGroupModule } from '../../input-group/input-group.component'; +import { IgxInputGroupComponent } from '../../input-group/input-group.component'; import { IgxInputDirective, IgxInputState } from './input.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; +import { IgxLabelDirective } from '../label/label.directive'; +import { IgxSuffixDirective } from '../suffix/suffix.directive'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxMaskDirective } from '../mask/mask.directive'; const INPUT_CSS_CLASS = 'igx-input-group__input'; const CSS_CLASS_INPUT_GROUP_LABEL = 'igx-input-group__label'; @@ -24,7 +28,7 @@ describe('IgxInput', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ InputComponent, TextareaComponent, InputWithPlaceholderComponent, @@ -40,14 +44,8 @@ describe('IgxInput', () => { ToggleRequiredWithNgModelInputComponent, InputReactiveFormComponent, FileInputFormComponent - ], - imports: [ - IgxInputGroupModule, - FormsModule, - ReactiveFormsModule ] - }) - .compileComponents(); + }).compileComponents(); })); it('Initializes an input.', () => { @@ -829,16 +827,19 @@ describe('IgxInput', () => { @Component({ template: ` -
- - - - - - - - -
` }) +
+ + + + + + + + +
`, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, FormsModule] +}) class InputsWithSameNameAttributesComponent { @ViewChildren('igxInputGroup') public igxInputGroup: QueryList; @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; @@ -850,57 +851,87 @@ class InputsWithSameNameAttributesComponent { @Component({ - template: ` - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] +}) class InputComponent { @ViewChild('igxInputGroup', { static: true }) public igxInputGroup: IgxInputGroupComponent; @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; } @Component({ - template: ` - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] +}) class TextareaComponent { } @Component({ - template: ` - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] +}) class InputWithPlaceholderComponent { @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; } @Component({ - template: ` - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] +}) class FilledInputComponent { @ViewChild('igxInputGroup', { static: true }) public igxInputGroup: IgxInputGroupComponent; @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; } @Component({ - template: ` - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] +}) class DisabledInputComponent { @ViewChild('igxInputGroup', { static: true }) public igxInputGroup: IgxInputGroupComponent; @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; } @Component({ - template: ` - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] +}) class RequiredInputComponent { @ViewChild('igxInputGroup', { static: true }) public igxInputGroup: IgxInputGroupComponent; @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; @@ -908,9 +939,12 @@ class RequiredInputComponent { @Component({ template: ` - - - ` }) + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, FormsModule] +}) class RequiredTwoWayDataBoundInputComponent { @ViewChild('igxInputGroup', { static: true }) public igxInputGroup: IgxInputGroupComponent; @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; @@ -921,46 +955,50 @@ class RequiredTwoWayDataBoundInputComponent { } @Component({ - template: ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - `}) + template: ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, FormsModule] +}) class InitiallyFilledInputComponent { @ViewChild('igxInputGroupNotFilledUndefined', { static: true }) public igxInputGroupNotFilledUndefined: IgxInputGroupComponent; @ViewChild('igxInputGroupNotFilledNull', { static: true }) public igxInputGroupNotFilledNull: IgxInputGroupComponent; @@ -985,10 +1023,15 @@ class InitiallyFilledInputComponent { } @Component({ - template: ` - - - ` }) + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] +}) class DataBoundDisabledInputComponent { @ViewChild('igxInputGroup', { static: true }) public igxInputGroup: IgxInputGroupComponent; @ViewChild(IgxInputDirective, { static: true }) public igxInput: IgxInputDirective; @@ -997,10 +1040,14 @@ class DataBoundDisabledInputComponent { } @Component({ - template: ` - - - ` + template: ` + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] }) class DataBoundDisabledInputWithoutValueComponent extends DataBoundDisabledInputComponent { public changeDisabledState() { @@ -1009,8 +1056,8 @@ class DataBoundDisabledInputWithoutValueComponent extends DataBoundDisabledInput } @Component({ - template: - `
+ template: ` +
@@ -1046,7 +1093,9 @@ class DataBoundDisabledInputWithoutValueComponent extends DataBoundDisabledInput
- ` + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, IgxMaskDirective, ReactiveFormsModule] }) class ReactiveFormComponent { @ViewChild('strinput', { static: true, read: IgxInputDirective }) public strIgxInput: IgxInputDirective; @@ -1082,14 +1131,19 @@ class ReactiveFormComponent { } @Component({ - template: ` - - - - - - - ` }) + template: ` + + + + + + + + + `, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, FormsModule] +}) class ToggleRequiredWithNgModelInputComponent { @ViewChildren(IgxInputDirective) public igxInputs: QueryList; @@ -1112,7 +1166,9 @@ class ToggleRequiredWithNgModelInputComponent { -` +`, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, IgxSuffixDirective, IgxIconComponent, ReactiveFormsModule] }) class InputReactiveFormComponent { @@ -1175,7 +1231,9 @@ class InputReactiveFormComponent { -` +`, + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, ReactiveFormsModule, FormsModule] }) class FileInputFormComponent { diff --git a/projects/igniteui-angular/src/lib/directives/input/input.directive.ts b/projects/igniteui-angular/src/lib/directives/input/input.directive.ts index 2dc03193fe9..8bee45f06bd 100644 --- a/projects/igniteui-angular/src/lib/directives/input/input.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/input/input.directive.ts @@ -60,6 +60,7 @@ export enum IgxInputState { @Directive({ selector: '[igxInput]', exportAs: 'igxInput', + standalone: true }) export class IgxInputDirective implements AfterViewInit, OnDestroy { private static ngAcceptInputType_required: boolean | ''; diff --git a/projects/igniteui-angular/src/lib/directives/label/label.directive.ts b/projects/igniteui-angular/src/lib/directives/label/label.directive.ts index 607251fdfaa..520e568a1e9 100644 --- a/projects/igniteui-angular/src/lib/directives/label/label.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/label/label.directive.ts @@ -3,7 +3,8 @@ import { Directive, HostBinding, Input } from '@angular/core'; let NEXT_ID = 0; @Directive({ - selector: '[igxLabel]' + selector: '[igxLabel]', + standalone: true }) export class IgxLabelDirective { @HostBinding('class.igx-input-group__label') diff --git a/projects/igniteui-angular/src/lib/directives/layout/layout.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/layout/layout.directive.spec.ts index 88879b1d96f..bcb4719601f 100644 --- a/projects/igniteui-angular/src/lib/directives/layout/layout.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/layout/layout.directive.spec.ts @@ -1,7 +1,7 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxFlexDirective, IgxLayoutDirective, IgxLayoutModule } from './layout.directive'; +import { IgxFlexDirective, IgxLayoutDirective } from './layout.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; @@ -9,8 +9,7 @@ describe('IgxLayoutDirective', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [TestFlexLayoutComponent], - imports: [IgxLayoutModule] + imports: [TestFlexLayoutComponent] }).compileComponents(); })); @@ -142,7 +141,9 @@ describe('IgxLayoutDirective', () => {
- ` + `, + standalone: true, + imports: [IgxLayoutDirective, IgxFlexDirective] }) class TestFlexLayoutComponent { @ViewChild(IgxLayoutDirective, { static: true }) public instance: IgxLayoutDirective; diff --git a/projects/igniteui-angular/src/lib/directives/layout/layout.directive.ts b/projects/igniteui-angular/src/lib/directives/layout/layout.directive.ts index 78abbdc11d2..e5460fbecf8 100644 --- a/projects/igniteui-angular/src/lib/directives/layout/layout.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/layout/layout.directive.ts @@ -1,7 +1,8 @@ -import { Directive, HostBinding, Input, NgModule } from '@angular/core'; +import { Directive, HostBinding, Input } from '@angular/core'; @Directive({ - selector: '[igxLayout]' + selector: '[igxLayout]', + standalone: true }) export class IgxLayoutDirective { /** @@ -140,7 +141,8 @@ export class IgxLayoutDirective { } @Directive({ - selector: '[igxFlex]' + selector: '[igxFlex]', + standalone: true }) export class IgxFlexDirective { @@ -232,12 +234,3 @@ export class IgxFlexDirective { return this.order || 0; } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxFlexDirective, IgxLayoutDirective], - exports: [IgxFlexDirective, IgxLayoutDirective] -}) -export class IgxLayoutModule { } diff --git a/projects/igniteui-angular/src/lib/directives/layout/layout.module.ts b/projects/igniteui-angular/src/lib/directives/layout/layout.module.ts new file mode 100644 index 00000000000..77ccdb94f25 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/layout/layout.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxFlexDirective, IgxLayoutDirective } from './layout.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxFlexDirective, IgxLayoutDirective], + exports: [IgxFlexDirective, IgxLayoutDirective] +}) +export class IgxLayoutModule { } diff --git a/projects/igniteui-angular/src/lib/directives/mask/mask-parsing.service.ts b/projects/igniteui-angular/src/lib/directives/mask/mask-parsing.service.ts index 560d936f041..1ab4e87622a 100644 --- a/projects/igniteui-angular/src/lib/directives/mask/mask-parsing.service.ts +++ b/projects/igniteui-angular/src/lib/directives/mask/mask-parsing.service.ts @@ -29,7 +29,7 @@ export interface Replaced { interface ParsedMask { literals: Map, mask: string -}; +} const replaceCharAt = (string: string, idx: number, char: string) => `${string.substring(0, idx)}${char}${string.substring(idx + 1)}`; @@ -62,7 +62,7 @@ export function parseMask(format: string): ParsedMask { }) export class MaskParsingService { - public applyMask(inputVal: string, maskOptions: MaskOptions, pos: number = 0): string { + public applyMask(inputVal: string, maskOptions: MaskOptions, pos = 0): string { let outputVal = ''; let value = ''; const { literals, mask } = parseMask(maskOptions.format); @@ -131,7 +131,7 @@ export class MaskParsingService { const chars = Array.from(value); let cursor = start; end = Math.min(end, maskedValue.length); - let initialMaskedValue = maskedValue; + const initialMaskedValue = maskedValue; for (let i = start; i < end || (chars.length && i < maskedValue.length); i++) { if (literalsPositions.indexOf(i) !== -1) { @@ -182,7 +182,7 @@ export class MaskParsingService { } private getNonLiteralIndices(mask: string, literalKeys: number[]): number[] { - const nonLiteralsIndices: number[] = new Array(); + const nonLiteralsIndices: number[] = []; for (let i = 0; i < mask.length; i++) { if (literalKeys.indexOf(i) === -1) { @@ -193,7 +193,7 @@ export class MaskParsingService { return nonLiteralsIndices; } private getNonLiteralValues(value: string, literalValues: string[]): string[] { - const nonLiteralValues: string[] = new Array(); + const nonLiteralValues: string[] = []; for (const val of value) { if (literalValues.indexOf(val) === -1) { diff --git a/projects/igniteui-angular/src/lib/directives/mask/mask.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/mask/mask.directive.spec.ts index 41a4e0a8c46..cb2dd89519f 100644 --- a/projects/igniteui-angular/src/lib/directives/mask/mask.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/mask/mask.directive.spec.ts @@ -1,20 +1,21 @@ import { Component, Input, ViewChild, ElementRef, Pipe, PipeTransform, Renderer2 } from '@angular/core'; import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { FormsModule } from '@angular/forms'; -import { IgxInputGroupModule } from '../../input-group/input-group.component'; -import { IgxMaskModule, IgxMaskDirective } from './mask.directive'; +import { IgxMaskDirective } from './mask.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { Replaced } from './mask-parsing.service'; import { By } from '@angular/platform-browser'; -import { PlatformUtil } from '../../core/utils'; +import { IgxInputGroupComponent } from '../../input-group/input-group.component'; +import { IgxInputDirective } from '../input/input.directive'; describe('igxMask', () => { configureTestSuite(); + // TODO: Refactor tests to reuse components beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ AlphanumSpaceMaskComponent, AnyCharMaskComponent, DefMaskComponent, @@ -29,13 +30,7 @@ describe('igxMask', () => { PlaceholderMaskComponent, MaskTestComponent, ReadonlyMaskTestComponent - ], - imports: [ - FormsModule, - IgxInputGroupModule, - IgxMaskModule - ], - providers: [PlatformUtil] + ] }).compileComponents(); })); @@ -610,10 +605,31 @@ describe('igxMaskDirective ControlValueAccessor Unit', () => { }); }); + +@Pipe({ name: 'inputFormat', standalone: true }) +export class InputFormatPipe implements PipeTransform { + public transform(value: any): string { + return value.toUpperCase(); + } +} + +@Pipe({ name: 'displayFormat', standalone: true }) +export class DisplayFormatPipe implements PipeTransform { + public transform(value: any): string { + return value.toLowerCase(); + } +} + + @Component({ - template: ` - - ` }) + template: ` + + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class DefMaskComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -627,8 +643,11 @@ class DefMaskComponent { @Component({ template: ` - - ` }) + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class MaskComponent { @ViewChild('input', { static: true }) @@ -639,11 +658,14 @@ class MaskComponent { @Component({ template: ` - - - - - ` }) + + + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class IncludeLiteralsComponent { @Input() public value = '55555'; @@ -657,8 +679,11 @@ class IncludeLiteralsComponent { @Component({ template: ` - - ` }) + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class DigitSpaceMaskComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -669,8 +694,11 @@ class DigitSpaceMaskComponent { @Component({ template: ` - - ` }) + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class DigitPlusMinusMaskComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -681,8 +709,11 @@ class DigitPlusMinusMaskComponent { @Component({ template: ` - - ` }) + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class LetterSpaceMaskComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -693,8 +724,11 @@ class LetterSpaceMaskComponent { @Component({ template: ` - - ` }) + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class AlphanumSpaceMaskComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -704,9 +738,14 @@ class AlphanumSpaceMaskComponent { } @Component({ - template: ` - - ` }) + template: ` + + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class AnyCharMaskComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -716,10 +755,15 @@ class AnyCharMaskComponent { } @Component({ - template: ` - - ` }) + template: ` + + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class EventFiringComponent { @ViewChild('input', { static: true }) @@ -736,13 +780,18 @@ class EventFiringComponent { } @Component({ - template: ` - - ` }) + template: ` + + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class OneWayBindComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -752,12 +801,17 @@ class OneWayBindComponent { } @Component({ - template: ` - - ` }) + template: ` + + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] +}) class PlaceholderMaskComponent { @ViewChild('input', { static: true }) public input: ElementRef; @@ -767,13 +821,17 @@ class PlaceholderMaskComponent { } @Component({ - template: ` - - ` }) + template: ` + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective, InputFormatPipe, DisplayFormatPipe] +}) class PipesMaskComponent { @ViewChild('input', { static: true }) @@ -788,10 +846,12 @@ class PipesMaskComponent { @Component({ template: ` - - - - ` + + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] }) class MaskTestComponent { @ViewChild('input', { static: true }) @@ -799,25 +859,14 @@ class MaskTestComponent { } @Component({ - template: ` - - ` + template: ` + + + `, + standalone: true, + imports: [FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxMaskDirective] }) class ReadonlyMaskTestComponent { @ViewChild(IgxMaskDirective) public mask: IgxMaskDirective; } - -@Pipe({ name: 'inputFormat' }) -export class InputFormatPipe implements PipeTransform { - public transform(value: any): string { - return value.toUpperCase(); - } -} - -@Pipe({ name: 'displayFormat' }) -export class DisplayFormatPipe implements PipeTransform { - public transform(value: any): string { - return value.toLowerCase(); - } -} diff --git a/projects/igniteui-angular/src/lib/directives/mask/mask.directive.ts b/projects/igniteui-angular/src/lib/directives/mask/mask.directive.ts index bd1ce7d1d78..e570637743d 100644 --- a/projects/igniteui-angular/src/lib/directives/mask/mask.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/mask/mask.directive.ts @@ -1,8 +1,7 @@ -import { CommonModule } from '@angular/common'; import { Directive, ElementRef, EventEmitter, HostListener, Output, PipeTransform, Renderer2, - Input, NgModule, OnInit, AfterViewChecked, + Input, OnInit, AfterViewChecked, } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { MaskParsingService, MaskOptions, parseMask } from './mask-parsing.service'; @@ -12,7 +11,8 @@ import { noop } from 'rxjs'; @Directive({ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMaskDirective, multi: true }], selector: '[igxMask]', - exportAs: 'igxMask' + exportAs: 'igxMask', + standalone: true }) export class IgxMaskDirective implements OnInit, AfterViewChecked, ControlValueAccessor { /** @@ -394,7 +394,7 @@ export class IgxMaskDirective implements OnInit, AfterViewChecked, ControlValueA this.inputValue = replacedData.value; if (this._key === this.platform.KEYMAP.BACKSPACE) { replacedData.end = this._start; - }; + } this.setSelectionRange(replacedData.end); @@ -424,9 +424,4 @@ export interface IMaskEventArgs extends IBaseEventArgs { } /** @hidden */ -@NgModule({ - declarations: [IgxMaskDirective], - exports: [IgxMaskDirective], - imports: [CommonModule] -}) -export class IgxMaskModule { } + diff --git a/projects/igniteui-angular/src/lib/directives/mask/mask.module.ts b/projects/igniteui-angular/src/lib/directives/mask/mask.module.ts new file mode 100644 index 00000000000..321a3b91654 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/mask/mask.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxMaskDirective } from './mask.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxMaskDirective], + exports: [IgxMaskDirective] +}) +export class IgxMaskModule { } diff --git a/projects/igniteui-angular/src/lib/directives/prefix/prefix.directive.ts b/projects/igniteui-angular/src/lib/directives/prefix/prefix.directive.ts index 50ee0d5766f..2dcd6fb00c7 100644 --- a/projects/igniteui-angular/src/lib/directives/prefix/prefix.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/prefix/prefix.directive.ts @@ -1,18 +1,15 @@ -import { NgModule, Directive } from '@angular/core'; +import { Directive } from '@angular/core'; /** * @hidden */ @Directive({ - selector: 'igx-prefix,[igxPrefix],[igxStart]' + selector: 'igx-prefix,[igxPrefix],[igxStart]', + standalone: true }) export class IgxPrefixDirective { } /** * @hidden */ -@NgModule({ - declarations: [IgxPrefixDirective], - exports: [IgxPrefixDirective] -}) -export class IgxPrefixModule { } + diff --git a/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.spec.ts index 4a9d74aac00..becfbf70ee4 100644 --- a/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.spec.ts @@ -1,29 +1,28 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; -import { IgxRadioModule, IgxRadioGroupDirective } from './radio-group.directive'; +import { IgxRadioGroupDirective } from './radio-group.directive'; import { FormsModule, ReactiveFormsModule, UntypedFormGroup, UntypedFormBuilder } from '@angular/forms'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { By } from '@angular/platform-browser'; +import { IgxRadioComponent } from '../../radio/radio.component'; +import { NgFor } from '@angular/common'; describe('IgxRadioGroupDirective', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + FormsModule, + ReactiveFormsModule, + NoopAnimationsModule, RadioGroupComponent, RadioGroupSimpleComponent, RadioGroupWithModelComponent, RadioGroupRequiredComponent, RadioGroupReactiveFormsComponent, RadioGroupDeepProjectionComponent - ], - imports: [ - IgxRadioModule, - FormsModule, - ReactiveFormsModule, - NoopAnimationsModule ] }) .compileComponents(); @@ -262,7 +261,9 @@ describe('IgxRadioGroupDirective', () => { Option 1 Option 2 -` +`, + standalone: true, + imports: [IgxRadioGroupDirective, IgxRadioComponent] }) class RadioGroupSimpleComponent { @ViewChild('radioGroup', { read: IgxRadioGroupDirective, static: true }) public radioGroup: IgxRadioGroupDirective; @@ -274,7 +275,9 @@ class RadioGroupSimpleComponent { {{item}} -` +`, + standalone: true, + imports: [IgxRadioComponent, IgxRadioGroupDirective, NgFor] }) class RadioGroupComponent { @ViewChild('radioGroup', { read: IgxRadioGroupDirective, static: true }) public radioGroup: IgxRadioGroupDirective; @@ -286,7 +289,9 @@ class RadioGroupComponent { {{item}} -` +`, + standalone: true, + imports: [IgxRadioComponent, IgxRadioGroupDirective, NgFor] }) class RadioGroupRequiredComponent { @ViewChild('radioGroup', { read: IgxRadioGroupDirective, static: true }) public radioGroup: IgxRadioGroupDirective; @@ -303,7 +308,9 @@ interface Person { {{item}} -` +`, + standalone: true, + imports: [IgxRadioComponent, IgxRadioGroupDirective, NgFor, FormsModule] }) class RadioGroupWithModelComponent { @ViewChild('radioGroupSeasons', { read: IgxRadioGroupDirective, static: true }) public radioGroup: IgxRadioGroupDirective; @@ -327,7 +334,9 @@ class RadioGroupWithModelComponent { -` +`, + standalone: true, + imports: [IgxRadioComponent, IgxRadioGroupDirective, NgFor, ReactiveFormsModule] }) class RadioGroupReactiveFormsComponent { public seasons = [ @@ -378,7 +387,9 @@ class RadioGroupReactiveFormsComponent { - ` + `, + standalone: true, + imports: [IgxRadioComponent, IgxRadioGroupDirective, NgFor, ReactiveFormsModule] }) class RadioGroupDeepProjectionComponent { diff --git a/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.ts b/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.ts index 339fbfe8ef2..c8cd672c032 100644 --- a/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/radio/radio-group.directive.ts @@ -1,7 +1,7 @@ import { AfterContentInit, AfterViewInit, - ContentChildren, Directive, DoCheck, EventEmitter, HostBinding, HostListener, Input, NgModule, OnDestroy, Optional, Output, QueryList, Self + ContentChildren, Directive, DoCheck, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Optional, Output, QueryList, Self } from '@angular/core'; import { ControlValueAccessor, NgControl, Validators } from '@angular/forms'; import { fromEvent, noop, Subject } from 'rxjs'; @@ -9,7 +9,6 @@ import { startWith, takeUntil } from 'rxjs/operators'; import { mkenum } from '../../core/utils'; import { IChangeRadioEventArgs, IgxRadioComponent } from '../../radio/radio.component'; import { IgxDirectionality } from '../../services/direction/directionality'; -import { IgxRippleModule } from '../ripple/ripple.directive'; /** * Determines the Radio Group alignment @@ -47,7 +46,8 @@ let nextId = 0; */ @Directive({ exportAs: 'igxRadioGroup', - selector: 'igx-radio-group, [igxRadioGroup]' + selector: 'igx-radio-group, [igxRadioGroup]', + standalone: true }) export class IgxRadioGroupDirective implements AfterContentInit, AfterViewInit, ControlValueAccessor, OnDestroy, DoCheck { private static ngAcceptInputType_required: boolean | ''; @@ -604,9 +604,4 @@ export class IgxRadioGroupDirective implements AfterContentInit, AfterViewInit, /** * @hidden */ -@NgModule({ - declarations: [IgxRadioGroupDirective, IgxRadioComponent], - exports: [IgxRadioGroupDirective, IgxRadioComponent], - imports: [IgxRippleModule] -}) -export class IgxRadioModule {} + diff --git a/projects/igniteui-angular/src/lib/directives/radio/radio-group.module.ts b/projects/igniteui-angular/src/lib/directives/radio/radio-group.module.ts new file mode 100644 index 00000000000..ed0b3fbabd5 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/radio/radio-group.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IgxRadioGroupDirective } from './radio-group.directive'; +import { IgxRadioComponent } from '../../radio/radio.component'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxRadioGroupDirective, IgxRadioComponent], + exports: [IgxRadioGroupDirective, IgxRadioComponent] +}) +export class IgxRadioModule {} diff --git a/projects/igniteui-angular/src/lib/directives/ripple/ripple.directive.ts b/projects/igniteui-angular/src/lib/directives/ripple/ripple.directive.ts index bec2860eb6d..a6dc64196ec 100644 --- a/projects/igniteui-angular/src/lib/directives/ripple/ripple.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/ripple/ripple.directive.ts @@ -1,8 +1,9 @@ -import { Directive, ElementRef, HostListener, Input, NgModule, NgZone, Renderer2 } from '@angular/core'; +import { Directive, ElementRef, HostListener, Input, NgZone, Renderer2 } from '@angular/core'; import { AnimationBuilder, style, animate } from '@angular/animations'; @Directive({ - selector: '[igxRipple]' + selector: '[igxRipple]', + standalone: true }) export class IgxRippleDirective { /** @@ -170,8 +171,4 @@ export class IgxRippleDirective { /** * @hidden */ -@NgModule({ - declarations: [IgxRippleDirective], - exports: [IgxRippleDirective] -}) -export class IgxRippleModule { } + diff --git a/projects/igniteui-angular/src/lib/directives/ripple/ripple.module.ts b/projects/igniteui-angular/src/lib/directives/ripple/ripple.module.ts new file mode 100644 index 00000000000..1e74d02b266 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/ripple/ripple.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxRippleDirective } from './ripple.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxRippleDirective], + exports: [IgxRippleDirective] +}) +export class IgxRippleModule { } diff --git a/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.spec.ts index 52d2ab140ad..611de89d523 100644 --- a/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.spec.ts @@ -7,7 +7,7 @@ import { ElementRef } from '@angular/core'; import { TestBed, ComponentFixture, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; -import { IgxScrollInertiaModule, IgxScrollInertiaDirective } from './scroll_inertia.directive'; +import { IgxScrollInertiaDirective } from './scroll_inertia.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { wait } from '../../test-utils/ui-interactions.spec'; @@ -18,11 +18,10 @@ describe('Scroll Inertia Directive - Rendering', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ IgxTestScrollInertiaDirective, ScrollInertiaComponent - ], - imports: [IgxScrollInertiaModule] + ] }).compileComponents().then(() => { fix = TestBed.createComponent(ScrollInertiaComponent); fix.detectChanges(); @@ -302,8 +301,11 @@ describe('Scroll Inertia Directive - Scrolling', () => { }); }); - /** igxScroll inertia for testing */ -@Directive({ selector: '[igxTestScrollInertia]' }) +/** igxScroll inertia for testing */ +@Directive({ + selector: '[igxTestScrollInertia]', + standalone: true +}) export class IgxTestScrollInertiaDirective extends IgxScrollInertiaDirective { constructor(element: ElementRef, _zone: NgZone) { @@ -337,7 +339,9 @@ export class IgxTestScrollInertiaDirective extends IgxScrollInertiaDirective {
- ` + `, + standalone: true, + imports: [IgxTestScrollInertiaDirective] }) export class ScrollInertiaComponent implements OnInit { @ViewChild('container', { static: true }) public container: ElementRef; diff --git a/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.ts b/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.ts index a1091e4427d..3985e55b3ec 100644 --- a/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.directive.ts @@ -1,10 +1,12 @@ -import { Directive, Input, ElementRef, NgZone, OnInit, NgModule, OnDestroy } from '@angular/core'; -import { CommonModule } from '@angular/common'; +import { Directive, Input, ElementRef, NgZone, OnInit, OnDestroy } from '@angular/core'; /** * @hidden */ -@Directive({ selector: '[igxScrollInertia]' }) +@Directive({ + selector: '[igxScrollInertia]', + standalone: true +}) export class IgxScrollInertiaDirective implements OnInit, OnDestroy { @Input() @@ -454,12 +456,5 @@ export class IgxScrollInertiaDirective implements OnInit, OnDestroy { /** * @hidden */ -@NgModule({ - declarations: [IgxScrollInertiaDirective], - exports: [IgxScrollInertiaDirective], - imports: [CommonModule] -}) -export class IgxScrollInertiaModule { -} diff --git a/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.module.ts b/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.module.ts new file mode 100644 index 00000000000..4e9772fcb60 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/scroll-inertia/scroll_inertia.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IgxScrollInertiaDirective } from './scroll_inertia.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxScrollInertiaDirective], + exports: [IgxScrollInertiaDirective] +}) +export class IgxScrollInertiaModule { +} diff --git a/projects/igniteui-angular/src/lib/directives/suffix/suffix.directive.ts b/projects/igniteui-angular/src/lib/directives/suffix/suffix.directive.ts index e8d9a031a58..71942ffd322 100644 --- a/projects/igniteui-angular/src/lib/directives/suffix/suffix.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/suffix/suffix.directive.ts @@ -1,18 +1,15 @@ -import { NgModule, Directive } from '@angular/core'; +import { Directive } from '@angular/core'; /** * @hidden */ @Directive({ - selector: 'igx-suffix,[igxSuffix],[igxEnd]' + selector: 'igx-suffix,[igxSuffix],[igxEnd]', + standalone: true }) export class IgxSuffixDirective { } /** * @hidden */ -@NgModule({ - declarations: [IgxSuffixDirective], - exports: [IgxSuffixDirective] -}) -export class IgxSuffixModule { } + diff --git a/projects/igniteui-angular/src/lib/directives/template-outlet/template_outlet.directive.ts b/projects/igniteui-angular/src/lib/directives/template-outlet/template_outlet.directive.ts index 3d05478f8e3..742cc0b98e7 100644 --- a/projects/igniteui-angular/src/lib/directives/template-outlet/template_outlet.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/template-outlet/template_outlet.directive.ts @@ -1,15 +1,17 @@ import { Directive, EmbeddedViewRef, Input, OnChanges, ChangeDetectorRef, - SimpleChange, SimpleChanges, TemplateRef, ViewContainerRef, NgModule, NgZone, Output, EventEmitter + SimpleChange, SimpleChanges, TemplateRef, ViewContainerRef, NgZone, Output, EventEmitter } from '@angular/core'; -import { CommonModule } from '@angular/common'; import { IBaseEventArgs } from '../../core/utils'; /** * @hidden */ -@Directive({ selector: '[igxTemplateOutlet]' }) +@Directive({ + selector: '[igxTemplateOutlet]', + standalone: true +}) export class IgxTemplateOutletDirective implements OnChanges { @Input() public igxTemplateOutletContext !: any; @@ -216,10 +218,4 @@ export interface ICachedViewLoadedEventArgs extends IViewChangeEventArgs { /** * @hidden */ -@NgModule({ - declarations: [IgxTemplateOutletDirective], - exports: [IgxTemplateOutletDirective], - imports: [CommonModule] -}) -export class IgxTemplateOutletModule { -} + diff --git a/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.spec.ts index 27d9fa0dbef..eaee3c79239 100644 --- a/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.spec.ts @@ -1,4 +1,4 @@ -import { Component, forwardRef, ViewChild } from '@angular/core'; +import { Component, ViewChild } from '@angular/core'; import { TestBed, waitForAsync } from '@angular/core/testing'; import { IgxTextHighlightDirective, IActiveHighlightInfo} from './text-highlight.directive'; @@ -9,8 +9,7 @@ describe('IgxHighlight', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxTextHighlightDirective, + imports: [ HighlightLoremIpsumComponent ] }); @@ -302,14 +301,17 @@ describe('IgxHighlight', () => { }); @Component({ - template: // eslint-disable-next-line max-len - `
+ template: ` +
{{html}} -
` +
+ `, + standalone: true, + imports: [IgxTextHighlightDirective] }) class HighlightLoremIpsumComponent { - @ViewChild(forwardRef(() => IgxTextHighlightDirective), { read: IgxTextHighlightDirective, static: true }) + @ViewChild(IgxTextHighlightDirective, { read: IgxTextHighlightDirective, static: true }) public highlight: IgxTextHighlightDirective; public highlightClass = 'igx-highlight'; diff --git a/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.ts b/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.ts index 67645c6068a..10740b8e373 100644 --- a/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.directive.ts @@ -4,7 +4,6 @@ import { ElementRef, EventEmitter, Input, - NgModule, OnChanges, OnDestroy, Renderer2, @@ -46,7 +45,8 @@ export interface IActiveHighlightInfo { } @Directive({ - selector: '[igxTextHighlight]' + selector: '[igxTextHighlight]', + standalone: true }) export class IgxTextHighlightDirective implements AfterViewInit, AfterViewChecked, OnDestroy, OnChanges { public static highlightGroupsMap = new Map(); @@ -503,12 +503,3 @@ export class IgxTextHighlightDirective implements AfterViewInit, AfterViewChecke this._forceEvaluation); } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxTextHighlightDirective], - exports: [IgxTextHighlightDirective] -}) -export class IgxTextHighlightModule { } diff --git a/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.module.ts b/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.module.ts new file mode 100644 index 00000000000..3d69cad8f8b --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/text-highlight/text-highlight.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxTextHighlightDirective } from './text-highlight.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxTextHighlightDirective], + exports: [IgxTextHighlightDirective] +}) +export class IgxTextHighlightModule { } diff --git a/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.spec.ts index bd1203199c0..6af193745db 100644 --- a/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.spec.ts @@ -1,21 +1,20 @@ import { Component, DebugElement, Directive, ElementRef, HostListener, ViewChild } from '@angular/core'; import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxTextSelectionModule } from './text-selection.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; +import { IgxTextSelectionDirective } from './text-selection.directive'; describe('IgxSelection', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ TriggerTextSelectionComponent, TriggerTextSelectionOnClickComponent, TextSelectionWithMultipleFocusHandlersComponent, IgxTestFocusDirective - ], - imports: [IgxTextSelectionModule] + ] }); })); @@ -75,8 +74,8 @@ describe('IgxSelection', () => { const inputElem: HTMLElement = input.nativeElement; selectableTypes.forEach( el => { - let type = Object.keys(el)[0]; - let val = el[type]; + const type = Object.keys(el)[0]; + const val = el[type]; fix.componentInstance.inputType = type; fix.componentInstance.inputValue = val; fix.detectChanges(); @@ -92,15 +91,15 @@ describe('IgxSelection', () => { } if(type === 'number'){ - let selection = document.getSelection().toString(); + const selection = document.getSelection().toString(); tick(1000); expect((String(val)).length).toBe(selection.length); } }); nonSelectableTypes.forEach( el => { - let type = Object.keys(el)[0]; - let val = el[type]; + const type = Object.keys(el)[0]; + const val = el[type]; fix.componentInstance.inputType = type; fix.componentInstance.inputValue = val; fix.detectChanges(); @@ -143,19 +142,34 @@ describe('IgxSelection', () => { })); }); +@Directive({ + selector: '[igxTestFocusDirective]', + standalone: true +}) +class IgxTestFocusDirective { + constructor(private element: ElementRef) { } + + @HostListener('focus') + public onFocus() { + this.element.nativeElement.value = `$${this.element.nativeElement.value}`; + } +} + @Component({ - template: - ` + template: ` - ` + `, + standalone: true, + imports: [IgxTextSelectionDirective] }) class TriggerTextSelectionComponent { } @Component({ - template: - ` + template: ` - ` + `, + standalone: true, + imports: [IgxTextSelectionDirective] }) class TriggerTextSelectionOnClickComponent { public selectValue = true; @@ -170,26 +184,18 @@ class TriggerTextSelectionOnClickComponent { resolve("I promise to return after one second!"); }, 1000); }); - } - } + } +} - @Component({ - template: `` - }) +@Component({ + template: ``, + standalone: true, + imports: [IgxTextSelectionDirective, IgxTestFocusDirective] +}) class TextSelectionWithMultipleFocusHandlersComponent { public inputValue: any = "12-34-56"; } -@Directive({selector: '[igxTestFocusDirective]'}) -class IgxTestFocusDirective { - constructor(private element: ElementRef) { } - - @HostListener('focus') - public onFocus() { - this.element.nativeElement.value = `$${this.element.nativeElement.value}`; - } -} - interface Types { [key: string]: any; } diff --git a/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.ts b/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.ts index ddf57ba8ed2..99c1141bb19 100644 --- a/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.directive.ts @@ -1,8 +1,9 @@ -import { Directive, ElementRef, HostListener, Input, NgModule } from '@angular/core'; +import { Directive, ElementRef, HostListener, Input } from '@angular/core'; @Directive({ exportAs: 'igxTextSelection', - selector: '[igxTextSelection]' + selector: '[igxTextSelection]', + standalone: true }) export class IgxTextSelectionDirective { private selectionState = true; @@ -118,8 +119,4 @@ export class IgxTextSelectionDirective { /** * @hidden */ -@NgModule({ - declarations: [IgxTextSelectionDirective], - exports: [IgxTextSelectionDirective] -}) -export class IgxTextSelectionModule { } + diff --git a/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.module.ts b/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.module.ts new file mode 100644 index 00000000000..a07cd261dc4 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/text-selection/text-selection.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxTextSelectionDirective } from './text-selection.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxTextSelectionDirective], + exports: [IgxTextSelectionDirective] +}) +export class IgxTextSelectionModule { } diff --git a/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.spec.ts index b984cc8e61a..ae719f54f26 100644 --- a/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.spec.ts @@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, DebugElement, ViewChild, ElementRef import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxOverlayOutletDirective } from './toggle.directive'; +import { IgxToggleActionDirective, IgxToggleDirective, IgxOverlayOutletDirective } from './toggle.directive'; import { IgxOverlayService, OverlaySettings, ConnectedPositioningStrategy, AbsoluteScrollStrategy, AutoPositionStrategy, HorizontalAlignment @@ -18,7 +18,8 @@ describe('IgxToggle', () => { const TOGGLER_CLASS = 'igx-toggle'; beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxToggleActionTestComponent, IgxToggleOutletComponent, IgxToggleServiceInjectComponent, @@ -26,10 +27,8 @@ describe('IgxToggle', () => { IgxToggleTestComponent, TestWithOnPushComponent, TestWithThreeToggleActionsComponent - ], - imports: [NoopAnimationsModule, IgxToggleModule] - }) - .compileComponents(); + ] + }).compileComponents(); })); it('IgxToggleDirective is defined', () => { @@ -626,7 +625,9 @@ describe('IgxToggle', () => {
  • 4
  • - ` + `, + standalone: true, + imports: [IgxToggleDirective] }) export class IgxToggleTestComponent { @ViewChild(IgxToggleDirective, { static: true }) public toggle: IgxToggleDirective; @@ -645,7 +646,9 @@ export class IgxToggleTestComponent {
  • 4
  • - ` + `, + standalone: true, + imports: [IgxToggleDirective, IgxToggleActionDirective] }) export class IgxToggleActionTestComponent { @ViewChild(IgxToggleDirective, { static: true }) public toggle: IgxToggleDirective; @@ -661,7 +664,9 @@ export class IgxToggleActionTestComponent {
    - ` + `, + standalone: true, + imports: [IgxToggleActionDirective, IgxToggleDirective, IgxOverlayOutletDirective] }) export class IgxToggleOutletComponent extends IgxToggleActionTestComponent { } @@ -671,7 +676,9 @@ export class IgxToggleOutletComponent extends IgxToggleActionTestComponent { }
    Some content
    - ` + `, + standalone: true, + imports: [IgxToggleActionDirective, IgxToggleDirective] }) export class IgxToggleServiceInjectComponent { @ViewChild(IgxToggleDirective, { static: true }) public toggle: IgxToggleDirective; @@ -687,7 +694,9 @@ export class IgxToggleServiceInjectComponent { Some more content `, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [IgxToggleDirective] }) export class IgxOverlayServiceComponent { @ViewChild(IgxToggleDirective, { static: true }) public toggle: IgxToggleDirective; @@ -705,7 +714,9 @@ export class IgxOverlayServiceComponent { Some content `, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [IgxToggleActionDirective, IgxToggleDirective] }) export class TestWithOnPushComponent { @ViewChild(IgxToggleDirective, { static: true }) public toggle: IgxToggleDirective; @@ -733,7 +744,9 @@ export class TestWithOnPushComponent {
    Toggle 3
    - ` + `, + standalone: true, + imports: [IgxToggleActionDirective, IgxToggleDirective] }) export class TestWithThreeToggleActionsComponent implements OnInit { @ViewChild('button1', { static: true }) public button1: ElementRef; diff --git a/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.ts b/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.ts index 647cb5ec696..1be9a71a4a5 100644 --- a/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/toggle/toggle.directive.ts @@ -7,7 +7,6 @@ import { HostListener, Inject, Input, - NgModule, OnDestroy, OnInit, Optional, @@ -33,7 +32,8 @@ export interface ToggleViewCancelableEventArgs extends ToggleViewEventArgs, Canc @Directive({ exportAs: 'toggle', - selector: '[igxToggle]' + selector: '[igxToggle]', + standalone: true }) export class IgxToggleDirective implements IToggleView, OnInit, OnDestroy { /** @@ -393,7 +393,8 @@ export class IgxToggleDirective implements IToggleView, OnInit, OnDestroy { @Directive({ exportAs: 'toggle-action', - selector: '[igxToggleAction]' + selector: '[igxToggleAction]', + standalone: true }) export class IgxToggleActionDirective implements OnInit { /** @@ -505,7 +506,8 @@ export class IgxToggleActionDirective implements OnInit { */ @Directive({ exportAs: 'overlay-outlet', - selector: '[igxOverlayOutlet]' + selector: '[igxOverlayOutlet]', + standalone: true }) export class IgxOverlayOutletDirective { constructor(public element: ElementRef) { } @@ -515,13 +517,3 @@ export class IgxOverlayOutletDirective { return this.element.nativeElement; } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective], - exports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective], - providers: [IgxNavigationService] -}) -export class IgxToggleModule { } diff --git a/projects/igniteui-angular/src/lib/directives/toggle/toggle.module.ts b/projects/igniteui-angular/src/lib/directives/toggle/toggle.module.ts new file mode 100644 index 00000000000..89bf597b6b8 --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/toggle/toggle.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { IgxOverlayOutletDirective, IgxToggleActionDirective, IgxToggleDirective } from './toggle.directive'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective], + exports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective] +}) +export class IgxToggleModule { } diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/index.ts b/projects/igniteui-angular/src/lib/directives/tooltip/index.ts deleted file mode 100644 index 856d5658184..00000000000 --- a/projects/igniteui-angular/src/lib/directives/tooltip/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './tooltip.directive'; -export * from './tooltip-target.directive'; -export * from './tooltip.module'; \ No newline at end of file diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/public_api.ts b/projects/igniteui-angular/src/lib/directives/tooltip/public_api.ts new file mode 100644 index 00000000000..98a7195759d --- /dev/null +++ b/projects/igniteui-angular/src/lib/directives/tooltip/public_api.ts @@ -0,0 +1,11 @@ +import { IgxTooltipTargetDirective } from './tooltip-target.directive'; +import { IgxTooltipDirective } from './tooltip.directive'; + +export * from './tooltip.directive'; +export * from './tooltip-target.directive'; + +/* NOTE: Tooltip directives collection for ease-of-use import in standalone components scenario */ +export const IGX_TOOLTIP_DIRECTIVES = [ + IgxTooltipDirective, + IgxTooltipTargetDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip-target.directive.ts b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip-target.directive.ts index 13580b5e7d3..2ab97413d0f 100644 --- a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip-target.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip-target.directive.ts @@ -39,6 +39,7 @@ export interface ITooltipHideEventArgs extends IBaseEventArgs { @Directive({ exportAs: 'tooltipTarget', selector: '[igxTooltipTarget]', + standalone: true }) export class IgxTooltipTargetDirective extends IgxToggleActionDirective implements OnInit, OnDestroy { /** diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.ts b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.ts index a86d73e7909..77a69a65928 100644 --- a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.ts +++ b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.ts @@ -4,6 +4,8 @@ import { IgxTooltipDirective } from './tooltip.directive'; @Component({ selector: 'igx-tooltip', templateUrl: 'tooltip.component.html', + standalone: true, + imports: [IgxTooltipDirective] }) export class IgxTooltipComponent { diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts index d1a6249e40f..eba79d8a54b 100644 --- a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts @@ -1,11 +1,12 @@ import { fakeAsync, TestBed, tick, flush, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxTooltipModule, IgxTooltipTargetDirective, IgxTooltipDirective } from './'; import { IgxTooltipSingleTargetComponent, IgxTooltipMultipleTargetsComponent, IgxTooltipPlainStringComponent } from '../../test-utils/tooltip-components.spec'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { HorizontalAlignment, VerticalAlignment, AutoPositionStrategy } from '../../services/public_api'; +import { IgxTooltipDirective } from './tooltip.directive'; +import { IgxTooltipTargetDirective } from './tooltip-target.directive'; const HIDDEN_TOOLTIP_CLASS = 'igx-tooltip--hidden'; const TOOLTIP_CLASS = 'igx-tooltip--desktop'; @@ -19,12 +20,12 @@ describe('IgxTooltip', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxTooltipSingleTargetComponent, IgxTooltipMultipleTargetsComponent, IgxTooltipPlainStringComponent - ], - imports: [NoopAnimationsModule, IgxTooltipModule] + ] }).compileComponents(); UIInteractions.clearOverlay(); })); diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.ts b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.ts index f8b79bb04f1..a5b4f55b8d7 100644 --- a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.ts +++ b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.ts @@ -23,7 +23,8 @@ let NEXT_ID = 0; */ @Directive({ exportAs: 'tooltip', - selector: '[igxTooltip]' + selector: '[igxTooltip]', + standalone: true }) export class IgxTooltipDirective extends IgxToggleDirective { /** diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.module.ts b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.module.ts index be8b0cb5eb7..022d4df94e4 100644 --- a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.module.ts +++ b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.module.ts @@ -1,17 +1,12 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { IgxOverlayService } from '../../services/overlay/overlay'; -import { IgxTooltipTargetDirective } from './tooltip-target.directive'; -import { IgxTooltipComponent } from './tooltip.component'; -import { IgxTooltipDirective } from './tooltip.directive'; +import { IGX_TOOLTIP_DIRECTIVES } from './public_api'; /** * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ @NgModule({ - declarations: [IgxTooltipDirective, IgxTooltipTargetDirective, IgxTooltipComponent], - exports: [IgxTooltipDirective, IgxTooltipTargetDirective], - imports: [CommonModule], - providers: [IgxOverlayService] + imports: [...IGX_TOOLTIP_DIRECTIVES], + exports: [...IGX_TOOLTIP_DIRECTIVES] }) -export class IgxTooltipModule { } \ No newline at end of file +export class IgxTooltipModule { } diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down-group.component.ts b/projects/igniteui-angular/src/lib/drop-down/drop-down-group.component.ts index a6984a607cb..2543241facb 100644 --- a/projects/igniteui-angular/src/lib/drop-down/drop-down-group.component.ts +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down-group.component.ts @@ -10,7 +10,8 @@ let NEXT_ID = 0; template: ` - ` + `, + standalone: true }) export class IgxDropDownGroupComponent { /** diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down-item.base.ts b/projects/igniteui-angular/src/lib/drop-down/drop-down-item.base.ts index 4fd55a8ee3b..8a7fa59e45a 100644 --- a/projects/igniteui-angular/src/lib/drop-down/drop-down-item.base.ts +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down-item.base.ts @@ -13,7 +13,8 @@ let NEXT_ID = 0; * Method for handling click on Host() */ @Directive({ - selector: '[igxDropDownItemBase]' + selector: '[igxDropDownItemBase]', + standalone: true }) export class IgxDropDownItemBaseDirective implements DoCheck { /** diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down-item.component.ts b/projects/igniteui-angular/src/lib/drop-down/drop-down-item.component.ts index c1eba99f8a3..451e117226e 100644 --- a/projects/igniteui-angular/src/lib/drop-down/drop-down-item.component.ts +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down-item.component.ts @@ -10,7 +10,8 @@ import { IgxDropDownItemBaseDirective } from './drop-down-item.base'; */ @Component({ selector: 'igx-drop-down-item', - templateUrl: 'drop-down-item.component.html' + templateUrl: 'drop-down-item.component.html', + standalone: true }) export class IgxDropDownItemComponent extends IgxDropDownItemBaseDirective { /** diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive.ts b/projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive.ts index 82e606dd362..133e239e3a7 100644 --- a/projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive.ts +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive.ts @@ -8,7 +8,8 @@ import { DropDownActionKey } from './drop-down.common'; * Navigation Directive that handles keyboard events on its host and controls a targeted IgxDropDownBaseDirective component */ @Directive({ - selector: '[igxDropDownItemNavigation]' + selector: '[igxDropDownItemNavigation]', + standalone: true }) export class IgxDropDownItemNavigationDirective implements IDropDownNavigationDirective { diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down.component.html b/projects/igniteui-angular/src/lib/drop-down/drop-down.component.html index 54c106e1041..de548994c04 100644 --- a/projects/igniteui-angular/src/lib/drop-down/drop-down.component.html +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down.component.html @@ -1,8 +1,8 @@
    + igxToggle + (appended)="onToggleContentAppended($event)" + (opening)="onToggleOpening($event)" (opened)="onToggleOpened()" + (closing)="onToggleClosing($event)" (closed)="onToggleClosed()">
    diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down.component.spec.ts b/projects/igniteui-angular/src/lib/drop-down/drop-down.component.spec.ts index aefc1b57f91..9dfdb25dcc9 100644 --- a/projects/igniteui-angular/src/lib/drop-down/drop-down.component.spec.ts +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down.component.spec.ts @@ -2,20 +2,22 @@ import { Component, ViewChild, OnInit, ElementRef, ViewChildren, QueryList } fro import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxToggleModule, IgxToggleDirective } from '../directives/toggle/toggle.directive'; +import { IgxToggleActionDirective, IgxToggleDirective } from '../directives/toggle/toggle.directive'; import { IgxDropDownItemComponent } from './drop-down-item.component'; -import { IgxDropDownComponent, IgxDropDownModule } from './public_api'; +import { IgxDropDownComponent, IgxDropDownItemNavigationDirective } from './public_api'; import { ISelectionEventArgs } from './drop-down.common'; -import { IgxTabsComponent, IgxTabsModule } from '../tabs/tabs/public_api'; +import { IgxTabContentComponent, IgxTabHeaderComponent, IgxTabItemComponent, IgxTabsComponent } from '../tabs/tabs/public_api'; import { UIInteractions, wait } from '../test-utils/ui-interactions.spec'; import { CancelableEventArgs, IBaseCancelableBrowserEventArgs } from '../core/utils'; import { configureTestSuite } from '../test-utils/configure-suite'; import { take } from 'rxjs/operators'; import { IgxDropDownGroupComponent } from './drop-down-group.component'; -import { IgxForOfDirective, IgxForOfModule } from '../directives/for-of/for_of.directive'; +import { IgxForOfDirective } from '../directives/for-of/for_of.directive'; import { IgxDropDownItemBaseDirective } from './drop-down-item.base'; import { DisplayDensity } from '../core/density'; import { IgxSelectionAPIService } from '../core/selection'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { NgFor } from '@angular/common'; const CSS_CLASS_DROP_DOWN_BASE = 'igx-drop-down'; const CSS_CLASS_LIST = 'igx-drop-down__list'; @@ -187,14 +189,9 @@ describe('IgxDropDown ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxDropDownTestComponent - ], imports: [ - IgxDropDownModule, NoopAnimationsModule, - IgxToggleModule, - IgxForOfModule + IgxDropDownTestComponent ] }).compileComponents(); })); @@ -796,24 +793,18 @@ describe('IgxDropDown ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - DoubleIgxDropDownComponent, - InputWithDropDownDirectiveComponent - ], imports: [ - IgxDropDownModule, NoopAnimationsModule, - IgxToggleModule, - IgxTabsModule, - IgxForOfModule + DoubleIgxDropDownComponent, + InputWithDropDownDirectiveComponent ] }).compileComponents(); })); - it('should call preventDefault on a mousedown event when allowItemsFocus is disabled', () => { - fixture = TestBed.createComponent(InputWithDropDownDirectiveComponent); -                fixture.detectChanges(); + it('should call preventDefault on a mousedown event when allowItemsFocus is disabled', () => { + fixture = TestBed.createComponent(InputWithDropDownDirectiveComponent); + fixture.detectChanges(); -                dropdown = fixture.componentInstance.dropdown; + dropdown = fixture.componentInstance.dropdown; dropdown.allowItemsFocus = false; fixture.detectChanges(); @@ -826,9 +817,9 @@ describe('IgxDropDown ', () => { spyOn(event, 'preventDefault'); itemToClick.triggerEventHandler('mousedown', event); -                fixture.detectChanges(); + fixture.detectChanges(); expect(event.preventDefault).toHaveBeenCalled(); -            }); + }); it('should properly handle OnEnterKeyDown when the dropdown is not visible', fakeAsync(() => { fixture = TestBed.createComponent(InputWithDropDownDirectiveComponent); fixture.detectChanges(); @@ -895,14 +886,9 @@ describe('IgxDropDown ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - VirtualizedDropDownComponent - ], imports: [ - IgxDropDownModule, NoopAnimationsModule, - IgxToggleModule, - IgxForOfModule + VirtualizedDropDownComponent ] }).compileComponents(); })); @@ -1010,15 +996,9 @@ describe('IgxDropDown ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - GroupDropDownComponent - ], imports: [ - IgxDropDownModule, NoopAnimationsModule, - IgxToggleModule, - IgxTabsModule, - IgxForOfModule + GroupDropDownComponent ] }).compileComponents(); })); @@ -1079,14 +1059,9 @@ describe('IgxDropDown ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxDropDownTestComponent - ], imports: [ - IgxDropDownModule, NoopAnimationsModule, - IgxToggleModule, - IgxForOfModule + IgxDropDownTestComponent ] }).compileComponents(); })); @@ -1143,14 +1118,9 @@ describe('IgxDropDown ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxDropDownTestComponent - ], imports: [ - IgxDropDownModule, NoopAnimationsModule, - IgxToggleModule, - IgxForOfModule + IgxDropDownTestComponent ] }).compileComponents(); })); @@ -1218,15 +1188,9 @@ describe('IgxDropDown ', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxDropDownAnchorTestComponent - ], imports: [ - IgxDropDownModule, NoopAnimationsModule, - IgxToggleModule, - IgxTabsModule, - IgxForOfModule + IgxDropDownAnchorTestComponent ] }).compileComponents(); })); @@ -1288,11 +1252,12 @@ describe('IgxDropDown ', () => { - + {{item.field}} - ` + `, + standalone: true, + imports: [IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, NgFor] }) class IgxDropDownTestComponent { @@ -1336,7 +1301,9 @@ class IgxDropDownTestComponent { {{ item.field }} - ` + `, + standalone: true, + imports: [IgxDropDownComponent, IgxDropDownItemComponent, NgFor] }) class DoubleIgxDropDownComponent implements OnInit { @@ -1391,7 +1358,9 @@ class DoubleIgxDropDownComponent implements OnInit { {{ item.field }} - ` + `, + standalone: true, + imports: [IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, NgFor] }) class IgxDropDownAnchorTestComponent { @ViewChild(IgxTabsComponent, { static: true }) @@ -1426,7 +1395,9 @@ class IgxDropDownAnchorTestComponent { {{ item.field }} - ` + `, + standalone: true, + imports: [IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, NgFor] }) class InputWithDropDownDirectiveComponent { @ViewChild(IgxDropDownComponent, { read: IgxDropDownComponent, static: true }) @@ -1450,7 +1421,9 @@ class InputWithDropDownDirectiveComponent { {{ child.name }} - ` + `, + standalone: true, + imports: [IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownGroupComponent, NgFor] }) class GroupDropDownComponent { @ViewChild(IgxDropDownComponent, { read: IgxDropDownComponent, static: true }) @@ -1496,7 +1469,9 @@ class GroupDropDownComponent { overflow: hidden; height: 400px; } - `] + `], + standalone: true, + imports: [IgxDropDownComponent, IgxDropDownItemComponent, IgxForOfDirective, IgxButtonDirective, IgxDropDownItemNavigationDirective, IgxToggleActionDirective] }) class VirtualizedDropDownComponent { @ViewChild('toggleButton', { read: ElementRef, static: true }) diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down.component.ts b/projects/igniteui-angular/src/lib/drop-down/drop-down.component.ts index 46ba15f3add..b663166409d 100644 --- a/projects/igniteui-angular/src/lib/drop-down/drop-down.component.ts +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down.component.ts @@ -31,6 +31,7 @@ import { IgxForOfDirective } from '../directives/for-of/for_of.directive'; import { take } from 'rxjs/operators'; import { DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { OverlaySettings } from '../services/overlay/utilities'; +import { NgIf } from '@angular/common'; /** * **Ignite UI for Angular DropDown** - @@ -51,7 +52,9 @@ import { OverlaySettings } from '../services/overlay/utilities'; @Component({ selector: 'igx-drop-down', templateUrl: './drop-down.component.html', - providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxDropDownComponent }] + providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxDropDownComponent }], + standalone: true, + imports: [IgxToggleDirective, NgIf] }) export class IgxDropDownComponent extends IgxDropDownBaseDirective implements IDropDownBase, OnChanges, AfterViewInit, OnDestroy { /** diff --git a/projects/igniteui-angular/src/lib/drop-down/drop-down.module.ts b/projects/igniteui-angular/src/lib/drop-down/drop-down.module.ts new file mode 100644 index 00000000000..698d3356a86 --- /dev/null +++ b/projects/igniteui-angular/src/lib/drop-down/drop-down.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_DROP_DOWN_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_DROP_DOWN_DIRECTIVES + ], + exports: [ + ...IGX_DROP_DOWN_DIRECTIVES + ] +}) +export class IgxDropDownModule { } diff --git a/projects/igniteui-angular/src/lib/drop-down/public_api.ts b/projects/igniteui-angular/src/lib/drop-down/public_api.ts index 5ccd6c973e3..597f48ec8f7 100644 --- a/projects/igniteui-angular/src/lib/drop-down/public_api.ts +++ b/projects/igniteui-angular/src/lib/drop-down/public_api.ts @@ -1,40 +1,18 @@ -import { NgModule } from '@angular/core'; -import { IgxDropDownComponent } from './drop-down.component'; +import { IgxDropDownGroupComponent } from './drop-down-group.component'; import { IgxDropDownItemComponent } from './drop-down-item.component'; import { IgxDropDownItemNavigationDirective } from './drop-down-navigation.directive'; -import { CommonModule } from '@angular/common'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxDropDownGroupComponent } from './drop-down-group.component'; -import { IgxDropDownItemBaseDirective } from './drop-down-item.base'; +import { IgxDropDownComponent } from './drop-down.component'; export * from './drop-down.component'; export * from './drop-down-item.component'; export { ISelectionEventArgs, IDropDownNavigationDirective } from './drop-down.common'; export * from './drop-down-navigation.directive'; -export * from './drop-down.base'; -export * from './drop-down-item.base'; export * from './drop-down-group.component'; -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxDropDownComponent, - IgxDropDownItemBaseDirective, - IgxDropDownItemComponent, - IgxDropDownGroupComponent, - IgxDropDownItemNavigationDirective - ], - exports: [ - IgxDropDownComponent, - IgxDropDownItemComponent, - IgxDropDownGroupComponent, - IgxDropDownItemNavigationDirective - ], - imports: [ - CommonModule, - IgxToggleModule - ] -}) -export class IgxDropDownModule { } +/* NOTE: Drop down directives collection for ease-of-use import in standalone components scenario */ +export const IGX_DROP_DOWN_DIRECTIVES = [ + IgxDropDownComponent, + IgxDropDownItemComponent, + IgxDropDownGroupComponent, + IgxDropDownItemNavigationDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-body.component.ts b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-body.component.ts index 9a6207f10b9..fa6750495a9 100644 --- a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-body.component.ts +++ b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-body.component.ts @@ -4,7 +4,8 @@ import { IgxExpansionPanelBase, IGX_EXPANSION_PANEL_COMPONENT } from './expansio @Component({ // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-expansion-panel-body', - template: `` + template: ``, + standalone: true }) export class IgxExpansionPanelBodyComponent { /** diff --git a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-header.component.ts b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-header.component.ts index dbafa672938..dd0f6aa107c 100644 --- a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-header.component.ts +++ b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-header.component.ts @@ -15,7 +15,8 @@ import { import { IgxExpansionPanelIconDirective } from './expansion-panel.directives'; import { IGX_EXPANSION_PANEL_COMPONENT, IgxExpansionPanelBase, IExpansionPanelCancelableEventArgs } from './expansion-panel.common'; import { mkenum } from '../core/utils'; -import { IgxIconComponent } from '../icon/public_api'; +import { IgxIconComponent } from '../icon/icon.component'; +import { NgIf } from '@angular/common'; /** * @hidden @@ -30,7 +31,9 @@ export type ExpansionPanelHeaderIconPosition = (typeof ExpansionPanelHeaderIconP @Component({ selector: 'igx-expansion-panel-header', - templateUrl: 'expansion-panel-header.component.html' + templateUrl: 'expansion-panel-header.component.html', + standalone: true, + imports: [NgIf, IgxIconComponent] }) export class IgxExpansionPanelHeaderComponent { /** @@ -175,7 +178,7 @@ export class IgxExpansionPanelHeaderComponent { @HostBinding('class.igx-expansion-panel--disabled') public get disabled(): boolean { return this._disabled; - }; + } public set disabled(val: boolean) { this._disabled = val; @@ -185,7 +188,7 @@ export class IgxExpansionPanelHeaderComponent { } else { this.tabIndex = 0; } - }; + } /** @hidden @internal */ @ContentChild(IgxExpansionPanelIconDirective, { read: ElementRef }) diff --git a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.component.ts b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.component.ts index 5ad70d20a7b..279fa2f5739 100644 --- a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.component.ts +++ b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.component.ts @@ -21,13 +21,16 @@ import { IGX_EXPANSION_PANEL_COMPONENT } from './expansion-panel.common'; import { ToggleAnimationPlayer, ToggleAnimationSettings } from './toggle-animation-component'; +import { NgIf } from '@angular/common'; let NEXT_ID = 0; @Component({ selector: 'igx-expansion-panel', templateUrl: 'expansion-panel.component.html', - providers: [{ provide: IGX_EXPANSION_PANEL_COMPONENT, useExisting: IgxExpansionPanelComponent }] + providers: [{ provide: IGX_EXPANSION_PANEL_COMPONENT, useExisting: IgxExpansionPanelComponent }], + standalone: true, + imports: [NgIf] }) export class IgxExpansionPanelComponent extends ToggleAnimationPlayer implements IgxExpansionPanelBase, AfterContentInit { /** diff --git a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.directives.ts b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.directives.ts index 21c266fb9c5..70ef4ab5d4e 100644 --- a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.directives.ts +++ b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.directives.ts @@ -4,7 +4,8 @@ import { HeaderContentBaseDirective } from './expansion-panel.common'; /** @hidden @internal */ @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector - selector: 'igx-expansion-panel-title' + selector: 'igx-expansion-panel-title', + standalone: true }) export class IgxExpansionPanelTitleDirective extends HeaderContentBaseDirective { @HostBinding('class.igx-expansion-panel__header-title') @@ -19,7 +20,8 @@ export class IgxExpansionPanelTitleDirective extends HeaderContentBaseDirective /** @hidden @internal */ @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector - selector: 'igx-expansion-panel-description' + selector: 'igx-expansion-panel-description', + standalone: true }) export class IgxExpansionPanelDescriptionDirective extends HeaderContentBaseDirective { @HostBinding('class.igx-expansion-panel__header-description') @@ -34,6 +36,7 @@ export class IgxExpansionPanelDescriptionDirective extends HeaderContentBaseDire /** @hidden @internal */ @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector - selector: 'igx-expansion-panel-icon' + selector: 'igx-expansion-panel-icon', + standalone: true }) export class IgxExpansionPanelIconDirective { } diff --git a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.module.ts b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.module.ts index 15e90e96a75..516a5c64345 100644 --- a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.module.ts +++ b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.module.ts @@ -1,44 +1,16 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxAvatarModule } from '../avatar/avatar.component'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxExpansionPanelComponent } from './expansion-panel.component'; -import { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component'; -import { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component'; -import { - IgxExpansionPanelDescriptionDirective, - IgxExpansionPanelTitleDirective, - IgxExpansionPanelIconDirective -} from './expansion-panel.directives'; +import { IGX_EXPANSION_PANEL_DIRECTIVES } from './public_api'; /** * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ @NgModule({ - declarations: [ - IgxExpansionPanelComponent, - IgxExpansionPanelHeaderComponent, - IgxExpansionPanelBodyComponent, - IgxExpansionPanelDescriptionDirective, - IgxExpansionPanelTitleDirective, - IgxExpansionPanelIconDirective + imports: [ + ...IGX_EXPANSION_PANEL_DIRECTIVES ], exports: [ - IgxExpansionPanelComponent, - IgxExpansionPanelHeaderComponent, - IgxExpansionPanelBodyComponent, - IgxExpansionPanelDescriptionDirective, - IgxExpansionPanelTitleDirective, - IgxExpansionPanelIconDirective - ], - imports: [ - CommonModule, - IgxRippleModule, - IgxIconModule, - IgxButtonModule, - IgxAvatarModule + ...IGX_EXPANSION_PANEL_DIRECTIVES ] }) export class IgxExpansionPanelModule { } diff --git a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.spec.ts b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.spec.ts index a72fa74786e..45f97bfbd08 100644 --- a/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.spec.ts +++ b/projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.spec.ts @@ -2,17 +2,17 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, ComponentFixture, tick, fakeAsync, waitForAsync } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxButtonModule } from '../directives/button/button.directive'; import { IgxExpansionPanelComponent } from './expansion-panel.component'; import { ExpansionPanelHeaderIconPosition, IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component'; -import { IgxExpansionPanelModule } from './expansion-panel.module'; -import { IgxGridComponent, IgxGridModule } from '../grids/grid/public_api'; -import { IgxListModule } from '../list/public_api'; -import { IgxExpansionPanelTitleDirective } from './expansion-panel.directives'; +import { IgxGridComponent } from '../grids/grid/public_api'; +import { IgxExpansionPanelDescriptionDirective, IgxExpansionPanelIconDirective, IgxExpansionPanelTitleDirective } from './expansion-panel.directives'; import { configureTestSuite } from '../test-utils/configure-suite'; import { By } from '@angular/platform-browser'; +import { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component'; +import { IgxListComponent } from '../list/list.component'; +import { IgxListItemComponent } from '../list/list-item.component'; +import { NgIf } from '@angular/common'; +import { IGX_EXPANSION_PANEL_DIRECTIVES } from './public_api'; const CSS_CLASS_EXPANSION_PANEL = 'igx-expansion-panel'; const CSS_CLASS_PANEL_HEADER = 'igx-expansion-panel__header'; @@ -37,21 +37,13 @@ describe('igxExpansionPanel', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxExpansionPanelGridComponent, IgxExpansionPanelListComponent, IgxExpansionPanelSampleComponent, IgxExpansionPanelImageComponent, IgxExpansionPanelTooltipComponent - ], - imports: [ - IgxExpansionPanelModule, - NoopAnimationsModule, - IgxToggleModule, - IgxRippleModule, - IgxButtonModule, - IgxListModule, - IgxGridModule ] }).compileComponents(); })); @@ -310,8 +302,8 @@ describe('igxExpansionPanel', () => { panelContainer: any, panelHeader: HTMLElement, button: HTMLElement, - timesCollapsed: number = 0, - timesExpanded: number = 0) => { + timesCollapsed = 0, + timesExpanded = 0) => { expect(panel.collapsed).toEqual(collapsed); const ariaExpanded = collapsed ? 'false' : 'true'; expect(panelHeader.querySelector('div [role = \'button\']').getAttribute('aria-expanded')).toMatch(ariaExpanded); @@ -1297,16 +1289,17 @@ describe('igxExpansionPanel', () => { @Component({ template: ` - - Product orders - Product orders details - - - - - - -` + + Product orders + Product orders details + + + + + + `, + standalone: true, + imports: [IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelBodyComponent, IgxGridComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective] }) export class IgxExpansionPanelGridComponent { @@ -1353,7 +1346,9 @@ export class IgxExpansionPanelGridComponent {
    -` + `, + standalone: true, + imports: [IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelBodyComponent, IgxListComponent, IgxListItemComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective] }) export class IgxExpansionPanelListComponent { @ViewChild(IgxExpansionPanelHeaderComponent, { read: IgxExpansionPanelHeaderComponent, static: true }) @@ -1365,21 +1360,23 @@ export class IgxExpansionPanelListComponent { @Component({ template: ` - - - Example Title - Example Description - - TEST_ICON - - - - Example body - - -` + + + Example Title + Example Description + + TEST_ICON + + + + Example body + + + `, + standalone: true, + imports: [IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelBodyComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelIconDirective, NgIf] }) export class IgxExpansionPanelSampleComponent { @ViewChild(IgxExpansionPanelHeaderComponent, { read: IgxExpansionPanelHeaderComponent }) @@ -1404,19 +1401,21 @@ export class IgxExpansionPanelSampleComponent { @Component({ template: ` - - - Frogs - Frog description - - -

    - - {{text}} -

    -
    -
    -` + + + Frogs + Frog description + + +

    + + {{text}} +

    +
    +
    + `, + standalone: true, + imports: [IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelBodyComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective] }) export class IgxExpansionPanelImageComponent { @ViewChild(IgxExpansionPanelHeaderComponent, { read: IgxExpansionPanelHeaderComponent, static: true }) @@ -1444,7 +1443,9 @@ export class IgxExpansionPanelImageComponent { Example Body -` + `, + standalone: true, + imports: [IGX_EXPANSION_PANEL_DIRECTIVES] }) export class IgxExpansionPanelTooltipComponent { public titleTooltip = ''; diff --git a/projects/igniteui-angular/src/lib/expansion-panel/public_api.ts b/projects/igniteui-angular/src/lib/expansion-panel/public_api.ts index 98d18c16815..4ded0e546e7 100644 --- a/projects/igniteui-angular/src/lib/expansion-panel/public_api.ts +++ b/projects/igniteui-angular/src/lib/expansion-panel/public_api.ts @@ -1,3 +1,8 @@ +import { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component'; +import { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component'; +import { IgxExpansionPanelComponent } from './expansion-panel.component'; +import { IgxExpansionPanelDescriptionDirective, IgxExpansionPanelIconDirective, IgxExpansionPanelTitleDirective } from './expansion-panel.directives'; + export { IExpansionPanelEventArgs } from './expansion-panel.common'; export { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component'; export { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component'; @@ -8,4 +13,13 @@ export { IgxExpansionPanelTitleDirective } from './expansion-panel.directives'; export { ExpansionPanelHeaderIconPosition } from './expansion-panel-header.component'; -export * from './expansion-panel.module'; + +/* NOTE: Expansion panel directives collection for ease-of-use import in standalone components scenario */ +export const IGX_EXPANSION_PANEL_DIRECTIVES = [ + IgxExpansionPanelComponent, + IgxExpansionPanelHeaderComponent, + IgxExpansionPanelBodyComponent, + IgxExpansionPanelDescriptionDirective, + IgxExpansionPanelTitleDirective, + IgxExpansionPanelIconDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/grids/cell.component.ts b/projects/igniteui-angular/src/lib/grids/cell.component.ts index 5684c2f296b..6cb430c0c84 100644 --- a/projects/igniteui-angular/src/lib/grids/cell.component.ts +++ b/projects/igniteui-angular/src/lib/grids/cell.component.ts @@ -18,25 +18,39 @@ QueryList, AfterViewInit } from '@angular/core'; -import { formatPercent } from '@angular/common'; +import { formatPercent, NgIf, NgClass, NgTemplateOutlet, DecimalPipe, PercentPipe, CurrencyPipe, DatePipe, getLocaleCurrencyCode, getCurrencySymbol } from '@angular/common'; +import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; + +import { first, takeUntil, takeWhile } from 'rxjs/operators'; +import { Subject } from 'rxjs'; + import { IgxTextHighlightDirective } from '../directives/text-highlight/text-highlight.directive'; import { formatCurrency, formatDate, PlatformUtil } from '../core/utils'; import { IgxGridSelectionService } from './selection/selection.service'; import { HammerGesturesManager } from '../core/touch'; import { GridSelectionMode } from './common/enums'; import { CellType, ColumnType, GridType, IgxCellTemplateContext, IGX_GRID_BASE, RowType } from './common/grid.interface'; -import { getCurrencySymbol, getLocaleCurrencyCode } from '@angular/common'; import { GridColumnDataType } from '../data-operations/data-util'; import { IgxRowDirective } from './row.directive'; import { ISearchInfo } from './common/events'; import { IgxGridCell } from './grid-public-cell'; import { ISelectionNode } from './common/types'; -import { IgxTooltipDirective } from '../directives/tooltip'; import { AutoPositionStrategy, HorizontalAlignment, IgxOverlayService } from '../services/public_api'; import { IgxIconComponent } from '../icon/icon.component'; -import { first, takeUntil, takeWhile } from 'rxjs/operators'; -import { FormControl, FormGroup } from '@angular/forms'; -import { Subject } from 'rxjs'; +import { IgxGridCellImageAltPipe, IgxStringReplacePipe, IgxColumnFormatterPipe } from './common/pipes'; +import { IgxTooltipDirective } from '../directives/tooltip/tooltip.directive'; +import { IgxTooltipTargetDirective } from '../directives/tooltip/tooltip-target.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxDateTimeEditorDirective } from '../directives/date-time-editor/date-time-editor.directive'; +import { IgxTimePickerComponent } from '../time-picker/time-picker.component'; +import { IgxDatePickerComponent } from '../date-picker/date-picker.component'; +import { IgxCheckboxComponent } from '../checkbox/checkbox.component'; +import { IgxTextSelectionDirective } from '../directives/text-selection/text-selection.directive'; +import { IgxFocusDirective } from '../directives/focus/focus.directive'; +import { IgxInputDirective } from '../directives/input/input.directive'; +import { IgxInputGroupComponent } from '../input-group/input-group.component'; +import { IgxChipComponent } from '../chips/chip.component'; /** * Providing reference to `IgxGridCellComponent`: @@ -55,7 +69,36 @@ import { Subject } from 'rxjs'; changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-cell', templateUrl: './cell.component.html', - providers: [HammerGesturesManager] + providers: [HammerGesturesManager], + standalone: true, + imports: [ + NgIf, + NgClass, + NgTemplateOutlet, + DecimalPipe, + PercentPipe, + CurrencyPipe, + DatePipe, + ReactiveFormsModule, + IgxChipComponent, + IgxTextHighlightDirective, + IgxIconComponent, + IgxInputGroupComponent, + IgxInputDirective, + IgxFocusDirective, + IgxTextSelectionDirective, + IgxCheckboxComponent, + IgxDatePickerComponent, + IgxTimePickerComponent, + IgxDateTimeEditorDirective, + IgxPrefixDirective, + IgxSuffixDirective, + IgxTooltipTargetDirective, + IgxTooltipDirective, + IgxGridCellImageAltPipe, + IgxStringReplacePipe, + IgxColumnFormatterPipe + ] }) export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy, CellType, AfterViewInit { private _destroy$ = new Subject(); @@ -1033,7 +1076,7 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy, CellT public activate(event: FocusEvent | KeyboardEvent) { const node = this.selectionNode; let shouldEmitSelection = !this.selectionService.isActiveNode(node); - + if (this.selectionService.primaryButton) { const currentActive = this.selectionService.activeElement; if (this.cellSelectionMode === GridSelectionMode.single && (event as any)?.ctrlKey && this.selected) { diff --git a/projects/igniteui-angular/src/lib/grids/column-actions/column-actions.component.ts b/projects/igniteui-angular/src/lib/grids/column-actions/column-actions.component.ts index b7c6ce1e762..9649d544988 100644 --- a/projects/igniteui-angular/src/lib/grids/column-actions/column-actions.component.ts +++ b/projects/igniteui-angular/src/lib/grids/column-actions/column-actions.component.ts @@ -1,23 +1,15 @@ -import { - Component, - DoCheck, - EventEmitter, - HostBinding, - Inject, - Input, - IterableDiffer, - IterableDiffers, - Output, - Pipe, - PipeTransform, - QueryList, - ViewChildren -} from '@angular/core'; +import { Component, DoCheck, EventEmitter, HostBinding, Inject, Input, IterableDiffer, IterableDiffers, Output, Pipe, PipeTransform, QueryList, ViewChildren, forwardRef } from '@angular/core'; import { ColumnDisplayOrder } from '../common/enums'; import { ColumnType, GridType } from '../common/grid.interface'; import { IColumnToggledEventArgs } from '../common/events'; import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; import { IgxColumnActionsBaseDirective } from './column-actions-base.directive'; +import { IgxRippleDirective } from '../../directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../directives/button/button.directive'; +import { IgxInputDirective } from '../../directives/input/input.directive'; +import { FormsModule } from '@angular/forms'; +import { IgxInputGroupComponent } from '../../input-group/input-group.component'; +import { NgIf, NgFor } from '@angular/common'; let NEXT_ID = 0; /** @@ -28,7 +20,9 @@ let NEXT_ID = 0; */ @Component({ selector: 'igx-column-actions', - templateUrl: './column-actions.component.html' + templateUrl: './column-actions.component.html', + standalone: true, + imports: [NgIf, IgxInputGroupComponent, FormsModule, IgxInputDirective, NgFor, IgxCheckboxComponent, IgxButtonDirective, IgxRippleDirective, forwardRef(() => IgxColumnActionEnabledPipe), forwardRef(() => IgxFilterActionColumnsPipe), forwardRef(() => IgxSortActionColumnsPipe)] }) export class IgxColumnActionsComponent implements DoCheck { @@ -393,7 +387,10 @@ export class IgxColumnActionsComponent implements DoCheck { } } -@Pipe({ name: 'columnActionEnabled' }) +@Pipe({ + name: 'columnActionEnabled', + standalone: true +}) export class IgxColumnActionEnabledPipe implements PipeTransform { constructor(@Inject(IgxColumnActionsComponent) protected columnActions: IgxColumnActionsComponent) { } @@ -419,7 +416,10 @@ export class IgxColumnActionEnabledPipe implements PipeTransform { } } -@Pipe({ name: 'filterActionColumns' }) +@Pipe({ + name: 'filterActionColumns', + standalone: true +}) export class IgxFilterActionColumnsPipe implements PipeTransform { constructor(@Inject(IgxColumnActionsComponent) protected columnActions: IgxColumnActionsComponent) { } @@ -446,7 +446,10 @@ export class IgxFilterActionColumnsPipe implements PipeTransform { } } -@Pipe({ name: 'sortActionColumns' }) +@Pipe({ + name: 'sortActionColumns', + standalone: true +}) export class IgxSortActionColumnsPipe implements PipeTransform { public transform(collection: ColumnType[], displayOrder: ColumnDisplayOrder, _pipeTrigger: number): ColumnType[] { diff --git a/projects/igniteui-angular/src/lib/grids/column-actions/column-actions.module.ts b/projects/igniteui-angular/src/lib/grids/column-actions/column-actions.module.ts deleted file mode 100644 index b0657be02bf..00000000000 --- a/projects/igniteui-angular/src/lib/grids/column-actions/column-actions.module.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { NgModule } from '@angular/core'; -import { IgxGridSharedModules } from '../common/shared.module'; -import { IgxColumnHidingDirective } from './column-hiding.directive'; -import { IgxColumnPinningDirective } from './column-pinning.directive'; -import { - IgxColumnActionEnabledPipe, - IgxColumnActionsComponent, - IgxFilterActionColumnsPipe, - IgxSortActionColumnsPipe -} from './column-actions.component'; -import { IgxGridPipesModule } from '../common/grid-pipes.module'; -export * from './column-actions.component'; -export * from './column-hiding.directive'; -export * from './column-pinning.directive'; - -@NgModule({ - declarations: [ - IgxColumnHidingDirective, - IgxColumnPinningDirective, - IgxColumnActionsComponent, - IgxColumnActionEnabledPipe, - IgxFilterActionColumnsPipe, - IgxSortActionColumnsPipe - ], - imports: [ - IgxGridSharedModules, - IgxGridPipesModule - ], - exports: [ - IgxColumnHidingDirective, - IgxColumnPinningDirective, - IgxColumnActionsComponent, - IgxColumnActionEnabledPipe, - IgxFilterActionColumnsPipe, - IgxSortActionColumnsPipe - ] -}) -export class IgxColumnActionsModule { } diff --git a/projects/igniteui-angular/src/lib/grids/column-actions/column-hiding.directive.ts b/projects/igniteui-angular/src/lib/grids/column-actions/column-hiding.directive.ts index 5878211756f..54ba5a48904 100644 --- a/projects/igniteui-angular/src/lib/grids/column-actions/column-hiding.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/column-actions/column-hiding.directive.ts @@ -3,7 +3,10 @@ import { ColumnType } from '../common/grid.interface'; import { IgxColumnActionsBaseDirective } from './column-actions-base.directive'; import { IgxColumnActionsComponent } from './column-actions.component'; -@Directive({ selector: '[igxColumnHiding]' }) +@Directive({ + selector: '[igxColumnHiding]', + standalone: true +}) export class IgxColumnHidingDirective extends IgxColumnActionsBaseDirective { constructor( diff --git a/projects/igniteui-angular/src/lib/grids/column-actions/column-pinning.directive.ts b/projects/igniteui-angular/src/lib/grids/column-actions/column-pinning.directive.ts index 3915354113a..9f43fbe2527 100644 --- a/projects/igniteui-angular/src/lib/grids/column-actions/column-pinning.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/column-actions/column-pinning.directive.ts @@ -3,7 +3,10 @@ import { ColumnType } from '../common/grid.interface'; import { IgxColumnActionsBaseDirective } from './column-actions-base.directive'; import { IgxColumnActionsComponent } from './column-actions.component'; -@Directive({ selector: '[igxColumnPinning]' }) +@Directive({ + selector: '[igxColumnPinning]', + standalone: true +}) export class IgxColumnPinningDirective extends IgxColumnActionsBaseDirective { constructor( diff --git a/projects/igniteui-angular/src/lib/grids/column-actions/public_api.ts b/projects/igniteui-angular/src/lib/grids/column-actions/public_api.ts new file mode 100644 index 00000000000..e8c505b1210 --- /dev/null +++ b/projects/igniteui-angular/src/lib/grids/column-actions/public_api.ts @@ -0,0 +1,14 @@ +import { IgxColumnActionsComponent } from './column-actions.component'; +import { IgxColumnHidingDirective } from './column-hiding.directive'; +import { IgxColumnPinningDirective } from './column-pinning.directive'; + +export { IgxColumnActionsComponent } from './column-actions.component'; +export { IgxColumnHidingDirective } from './column-hiding.directive'; +export { IgxColumnPinningDirective } from './column-pinning.directive'; + +/* NOTE: Grid column actions directives collection for ease-of-use import in standalone components scenario */ +export const IGX_GRID_COLUMN_ACTIONS_DIRECTIVES = [ + IgxColumnActionsComponent, + IgxColumnHidingDirective, + IgxColumnPinningDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/grids/columns/column-group.component.ts b/projects/igniteui-angular/src/lib/grids/columns/column-group.component.ts index beb82f938cc..58e0fb25303 100644 --- a/projects/igniteui-angular/src/lib/grids/columns/column-group.component.ts +++ b/projects/igniteui-angular/src/lib/grids/columns/column-group.component.ts @@ -19,7 +19,8 @@ import { CellType, IgxColumnTemplateContext } from '../common/grid.interface'; changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: IgxColumnComponent, useExisting: forwardRef(() => IgxColumnGroupComponent) }], selector: 'igx-column-group', - template: `` + template: ``, + standalone: true }) export class IgxColumnGroupComponent extends IgxColumnComponent implements AfterContentInit { diff --git a/projects/igniteui-angular/src/lib/grids/columns/column-layout.component.ts b/projects/igniteui-angular/src/lib/grids/columns/column-layout.component.ts index 0aeb2b70e0f..7b93109f410 100644 --- a/projects/igniteui-angular/src/lib/grids/columns/column-layout.component.ts +++ b/projects/igniteui-angular/src/lib/grids/columns/column-layout.component.ts @@ -13,7 +13,8 @@ import { IgxColumnGroupComponent } from './column-group.component'; changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: IgxColumnComponent, useExisting: forwardRef(() => IgxColumnLayoutComponent) }], selector: 'igx-column-layout', - template: `` + template: ``, + standalone: true }) export class IgxColumnLayoutComponent extends IgxColumnGroupComponent implements AfterContentInit { public childrenVisibleIndexes = []; diff --git a/projects/igniteui-angular/src/lib/grids/columns/column.component.ts b/projects/igniteui-angular/src/lib/grids/columns/column.component.ts index 0d5ba16e900..4c908f00172 100644 --- a/projects/igniteui-angular/src/lib/grids/columns/column.component.ts +++ b/projects/igniteui-angular/src/lib/grids/columns/column.component.ts @@ -29,7 +29,7 @@ import { IgxTimeFilteringOperand } from '../../data-operations/filtering-condition'; import { ISortingStrategy, DefaultSortingStrategy } from '../../data-operations/sorting-strategy'; -import { DisplayDensity } from '../../core/displayDensity'; +import { DisplayDensity } from '../../core/density'; import { IgxRowDirective } from '../row.directive'; import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree'; import { CellType, ColumnType, GridType, IgxCellTemplateContext, IgxColumnTemplateContext, IgxSummaryTemplateContext, IGX_GRID_BASE } from '../common/grid.interface'; @@ -72,7 +72,8 @@ const DEFAULT_DIGITS_INFO = '1.0-3'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-column', - template: `` + template: ``, + standalone: true }) export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnType { /** @@ -473,8 +474,6 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy return this.widthSetByUser ? this._width : this.defaultWidth; } - public autoSize: number; - /** * Sets the `width` of the column. * ```html @@ -509,6 +508,8 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy } } + public autoSize: number; + /** * Sets/gets the maximum `width` of the column. * ```typescript @@ -1393,6 +1394,7 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy } const unpinnedColumns = this.grid.unpinnedColumns.filter(c => !c.columnGroup); const pinnedColumns = this.grid.pinnedColumns.filter(c => !c.columnGroup); + // eslint-disable-next-line @typescript-eslint/no-this-alias let col = this; let vIndex = -1; @@ -1419,6 +1421,7 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy this._vIndex = vIndex; return vIndex; } + /** * Returns a boolean indicating if the column is a `ColumnGroup`. * ```typescript diff --git a/projects/igniteui-angular/src/lib/grids/columns/column.module.ts b/projects/igniteui-angular/src/lib/grids/columns/column.module.ts index c62a7ac9e95..c6e56af5325 100644 --- a/projects/igniteui-angular/src/lib/grids/columns/column.module.ts +++ b/projects/igniteui-angular/src/lib/grids/columns/column.module.ts @@ -1,63 +1,18 @@ import { NgModule } from '@angular/core'; -import { IgxColumnComponent } from './column.component'; -import { IgxColumnGroupComponent } from './column-group.component'; -import { IgxColumnLayoutComponent } from './column-layout.component'; -import { - IgxCellEditorTemplateDirective, - IgxCellFooterTemplateDirective, - IgxCellHeaderTemplateDirective, - IgxCellTemplateDirective, - IgxCellValidationErrorDirective, - IgxCollapsibleIndicatorTemplateDirective, - IgxFilterCellTemplateDirective, - IgxSummaryTemplateDirective -} from './templates.directive'; -import { - IgxColumMaxLengthValidatorDirective, IgxColumnEmailValidatorDirective, IgxColumnMaxValidatorDirective, - IgxColumnMinLengthValidatorDirective, IgxColumnMinValidatorDirective, IgxColumnRequiredValidatorDirective, - IgxColumPatternValidatorDirective -} from './validators.directive'; +import { IGX_GRID_COLUMN_DIRECTIVES, IGX_GRID_VALIDATION_DIRECTIVES } from './public_api'; +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ @NgModule({ - declarations: [ - IgxColumnRequiredValidatorDirective, - IgxColumnMinValidatorDirective, - IgxColumnMaxValidatorDirective, - IgxColumnMinLengthValidatorDirective, - IgxColumMaxLengthValidatorDirective, - IgxColumnEmailValidatorDirective, - IgxColumPatternValidatorDirective, - IgxFilterCellTemplateDirective, - IgxSummaryTemplateDirective, - IgxCellTemplateDirective, - IgxCellValidationErrorDirective, - IgxCellHeaderTemplateDirective, - IgxCellFooterTemplateDirective, - IgxCellEditorTemplateDirective, - IgxCollapsibleIndicatorTemplateDirective, - IgxColumnComponent, - IgxColumnGroupComponent, - IgxColumnLayoutComponent + imports: [ + ...IGX_GRID_VALIDATION_DIRECTIVES, + ...IGX_GRID_COLUMN_DIRECTIVES ], exports: [ - IgxColumnRequiredValidatorDirective, - IgxColumnMinValidatorDirective, - IgxColumnMaxValidatorDirective, - IgxColumnMinLengthValidatorDirective, - IgxColumMaxLengthValidatorDirective, - IgxColumnEmailValidatorDirective, - IgxColumPatternValidatorDirective, - IgxFilterCellTemplateDirective, - IgxSummaryTemplateDirective, - IgxCellTemplateDirective, - IgxCellValidationErrorDirective, - IgxCellHeaderTemplateDirective, - IgxCellFooterTemplateDirective, - IgxCellEditorTemplateDirective, - IgxCollapsibleIndicatorTemplateDirective, - IgxColumnComponent, - IgxColumnGroupComponent, - IgxColumnLayoutComponent + ...IGX_GRID_VALIDATION_DIRECTIVES, + ...IGX_GRID_COLUMN_DIRECTIVES ] }) export class IgxGridColumnModule { } diff --git a/projects/igniteui-angular/src/lib/grids/columns/interfaces.ts b/projects/igniteui-angular/src/lib/grids/columns/interfaces.ts index 13b81894089..e4fd5c7ee42 100644 --- a/projects/igniteui-angular/src/lib/grids/columns/interfaces.ts +++ b/projects/igniteui-angular/src/lib/grids/columns/interfaces.ts @@ -47,9 +47,7 @@ export interface IFieldPipeArgs { weekStart?: WEEKDAYS | number; } -export interface IColumnPipeArgs extends IFieldPipeArgs { - -} +export type IColumnPipeArgs = IFieldPipeArgs export interface ISortingOptions { mode: 'single' | 'multiple'; diff --git a/projects/igniteui-angular/src/lib/grids/columns/public_api.ts b/projects/igniteui-angular/src/lib/grids/columns/public_api.ts new file mode 100644 index 00000000000..9f50cb970e6 --- /dev/null +++ b/projects/igniteui-angular/src/lib/grids/columns/public_api.ts @@ -0,0 +1,55 @@ +import { IgxColumnGroupComponent } from './column-group.component'; +import { IgxColumnLayoutComponent } from './column-layout.component'; +import { IgxColumnComponent } from './column.component'; +import { + IgxCellEditorTemplateDirective, + IgxCellFooterTemplateDirective, + IgxCellHeaderTemplateDirective, + IgxCellTemplateDirective, + IgxCellValidationErrorDirective, + IgxCollapsibleIndicatorTemplateDirective, + IgxFilterCellTemplateDirective, + IgxSummaryTemplateDirective +} from './templates.directive'; +import { + IgxColumnMaxLengthValidatorDirective, + IgxColumnEmailValidatorDirective, + IgxColumnMaxValidatorDirective, + IgxColumnMinLengthValidatorDirective, + IgxColumnMinValidatorDirective, + IgxColumnRequiredValidatorDirective, + IgxColumPatternValidatorDirective +} from './validators.directive'; + +export * from './column.component'; +export * from './column-group.component'; +export * from './column-layout.component'; +export * from './templates.directive'; +export * from './validators.directive'; +export * from './interfaces'; + +/* NOTE: Grid column validation directives collection for ease-of-use import in standalone components scenario */ +export const IGX_GRID_VALIDATION_DIRECTIVES = [ + IgxColumnRequiredValidatorDirective, + IgxColumnMinValidatorDirective, + IgxColumnMaxValidatorDirective, + IgxColumnEmailValidatorDirective, + IgxColumnMinLengthValidatorDirective, + IgxColumnMaxLengthValidatorDirective, + IgxColumPatternValidatorDirective +] as const; + +/* NOTE: Grid column validation directives collection for ease-of-use import in standalone components scenario */ +export const IGX_GRID_COLUMN_DIRECTIVES = [ + IgxFilterCellTemplateDirective, + IgxSummaryTemplateDirective, + IgxCellTemplateDirective, + IgxCellValidationErrorDirective, + IgxCellHeaderTemplateDirective, + IgxCellFooterTemplateDirective, + IgxCellEditorTemplateDirective, + IgxCollapsibleIndicatorTemplateDirective, + IgxColumnComponent, + IgxColumnGroupComponent, + IgxColumnLayoutComponent +] as const; diff --git a/projects/igniteui-angular/src/lib/grids/columns/templates.directive.ts b/projects/igniteui-angular/src/lib/grids/columns/templates.directive.ts index c2136966d58..a13e22f9a12 100644 --- a/projects/igniteui-angular/src/lib/grids/columns/templates.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/columns/templates.directive.ts @@ -1,9 +1,9 @@ import { Directive, TemplateRef } from '@angular/core'; import { IgxCellTemplateContext, IgxColumnTemplateContext, IgxSummaryTemplateContext } from '../common/grid.interface'; - @Directive({ - selector: '[igxFilterCellTemplate]' + selector: '[igxFilterCellTemplate]', + standalone: true }) export class IgxFilterCellTemplateDirective { constructor(public template: TemplateRef) { } @@ -11,11 +11,12 @@ export class IgxFilterCellTemplateDirective { public static ngTemplateContextGuard(_directive: IgxFilterCellTemplateDirective, context: unknown): context is IgxColumnTemplateContext { return true; - }; + } } @Directive({ - selector: '[igxCell]' + selector: '[igxCell]', + standalone: true }) export class IgxCellTemplateDirective { constructor(public template: TemplateRef) { } @@ -23,11 +24,12 @@ export class IgxCellTemplateDirective { public static ngTemplateContextGuard(_directive: IgxCellTemplateDirective, context: unknown): context is IgxCellTemplateContext { return true; - }; + } } @Directive({ - selector: '[igxCellValidationError]' + selector: '[igxCellValidationError]', + standalone: true }) export class IgxCellValidationErrorDirective { constructor(public template: TemplateRef) { } @@ -35,11 +37,12 @@ export class IgxCellValidationErrorDirective { public static ngTemplateContextGuard(_directive: IgxCellValidationErrorDirective, context: unknown): context is IgxCellTemplateContext { return true; - }; + } } @Directive({ - selector: '[igxHeader]' + selector: '[igxHeader]', + standalone: true }) export class IgxCellHeaderTemplateDirective { constructor(public template: TemplateRef) { } @@ -47,21 +50,23 @@ export class IgxCellHeaderTemplateDirective { public static ngTemplateContextGuard(_directive: IgxCellHeaderTemplateDirective, context: unknown): context is IgxColumnTemplateContext { return true; - }; + } } /** * @hidden */ @Directive({ - selector: '[igxFooter]' + selector: '[igxFooter]', + standalone: true }) export class IgxCellFooterTemplateDirective { constructor(public template: TemplateRef) { } } @Directive({ - selector: '[igxCellEditor]' + selector: '[igxCellEditor]', + standalone: true }) export class IgxCellEditorTemplateDirective { constructor(public template: TemplateRef) { } @@ -69,11 +74,12 @@ export class IgxCellEditorTemplateDirective { public static ngTemplateContextGuard(_directive: IgxCellEditorTemplateDirective, context: unknown): context is IgxCellTemplateContext { return true; - }; + } } @Directive({ - selector: '[igxCollapsibleIndicator]' + selector: '[igxCollapsibleIndicator]', + standalone: true }) export class IgxCollapsibleIndicatorTemplateDirective { constructor(public template: TemplateRef) { } @@ -81,11 +87,12 @@ export class IgxCollapsibleIndicatorTemplateDirective { public static ngTemplateContextGuard(_directive: IgxCollapsibleIndicatorTemplateDirective, context: unknown): context is IgxColumnTemplateContext { return true; - }; + } } @Directive({ - selector: '[igxSummary]' + selector: '[igxSummary]', + standalone: true }) export class IgxSummaryTemplateDirective { constructor(public template: TemplateRef) { } @@ -93,5 +100,5 @@ export class IgxSummaryTemplateDirective { public static ngTemplateContextGuard(_directive: IgxSummaryTemplateDirective, context: unknown): context is IgxSummaryTemplateContext { return true; - }; + } } diff --git a/projects/igniteui-angular/src/lib/grids/columns/validators.directive.ts b/projects/igniteui-angular/src/lib/grids/columns/validators.directive.ts index 59a6731e5fa..564ec4b2aef 100644 --- a/projects/igniteui-angular/src/lib/grids/columns/validators.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/columns/validators.directive.ts @@ -1,15 +1,15 @@ import { Directive } from '@angular/core'; import { RequiredValidator, NG_VALIDATORS, MinValidator, MaxValidator, EmailValidator, MinLengthValidator, MaxLengthValidator, PatternValidator } from '@angular/forms'; - @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-column[required]', providers: [{ - provide: NG_VALIDATORS, - useExisting: IgxColumnRequiredValidatorDirective, - multi: true - }] + provide: NG_VALIDATORS, + useExisting: IgxColumnRequiredValidatorDirective, + multi: true + }], + standalone: true }) export class IgxColumnRequiredValidatorDirective extends RequiredValidator { } @@ -18,10 +18,11 @@ export class IgxColumnRequiredValidatorDirective extends RequiredValidator { // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-column[min]', providers: [{ - provide: NG_VALIDATORS, - useExisting: IgxColumnMinValidatorDirective, - multi: true - }] + provide: NG_VALIDATORS, + useExisting: IgxColumnMinValidatorDirective, + multi: true + }], + standalone: true }) export class IgxColumnMinValidatorDirective extends MinValidator { } @@ -30,10 +31,11 @@ export class IgxColumnMinValidatorDirective extends MinValidator { } // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-column[max]', providers: [{ - provide: NG_VALIDATORS, - useExisting: IgxColumnMaxValidatorDirective, - multi: true - }] + provide: NG_VALIDATORS, + useExisting: IgxColumnMaxValidatorDirective, + multi: true + }], + standalone: true }) export class IgxColumnMaxValidatorDirective extends MaxValidator { } @@ -42,10 +44,11 @@ export class IgxColumnMaxValidatorDirective extends MaxValidator { } // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-column[email]', providers: [{ - provide: NG_VALIDATORS, - useExisting: IgxColumnEmailValidatorDirective, - multi: true - }] + provide: NG_VALIDATORS, + useExisting: IgxColumnEmailValidatorDirective, + multi: true + }], + standalone: true }) export class IgxColumnEmailValidatorDirective extends EmailValidator { } @@ -54,10 +57,11 @@ export class IgxColumnEmailValidatorDirective extends EmailValidator { } // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-column[minlength]', providers: [{ - provide: NG_VALIDATORS, - useExisting: IgxColumnMinLengthValidatorDirective, - multi: true - }] + provide: NG_VALIDATORS, + useExisting: IgxColumnMinLengthValidatorDirective, + multi: true + }], + standalone: true }) export class IgxColumnMinLengthValidatorDirective extends MinLengthValidator { } @@ -65,22 +69,24 @@ export class IgxColumnMinLengthValidatorDirective extends MinLengthValidator { } // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-column[maxlength]', providers: [{ - provide: NG_VALIDATORS, - useExisting: IgxColumMaxLengthValidatorDirective, - multi: true - }] + provide: NG_VALIDATORS, + useExisting: IgxColumnMaxLengthValidatorDirective, + multi: true + }], + standalone: true }) -export class IgxColumMaxLengthValidatorDirective extends MaxLengthValidator { +export class IgxColumnMaxLengthValidatorDirective extends MaxLengthValidator { } @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector selector: 'igx-column[pattern]', providers: [{ - provide: NG_VALIDATORS, - useExisting: IgxColumPatternValidatorDirective, - multi: true - }] + provide: NG_VALIDATORS, + useExisting: IgxColumPatternValidatorDirective, + multi: true + }], + standalone: true }) export class IgxColumPatternValidatorDirective extends PatternValidator { } diff --git a/projects/igniteui-angular/src/lib/grids/common/grid-pipes.module.ts b/projects/igniteui-angular/src/lib/grids/common/grid-pipes.module.ts deleted file mode 100644 index f119380ff91..00000000000 --- a/projects/igniteui-angular/src/lib/grids/common/grid-pipes.module.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { - IgxGridFilterConditionPipe, - IgxGridTransactionPipe, - IgxGridNotGroupedPipe, - IgxGridTopLevelColumns, - IgxGridCellStylesPipe, - IgxGridCellStyleClassesPipe, - IgxGridPaginatorOptionsPipe, - IgxHasVisibleColumnsPipe, - IgxGridRowPinningPipe, - IgxGridDataMapperPipe, - IgxStringReplacePipe, - IgxGridTransactionStatePipe, - IgxColumnFormatterPipe, - IgxSummaryFormatterPipe, - IgxGridAddRowPipe, - IgxGridRowClassesPipe, - IgxGridRowStylesPipe, - IgxGridCellImageAltPipe, -} from './pipes'; -export * from './pipes'; - -@NgModule({ - declarations: [ - IgxGridFilterConditionPipe, - IgxGridTransactionPipe, - IgxGridNotGroupedPipe, - IgxGridTopLevelColumns, - IgxGridCellStylesPipe, - IgxGridCellStyleClassesPipe, - IgxGridCellImageAltPipe, - IgxGridPaginatorOptionsPipe, - IgxHasVisibleColumnsPipe, - IgxGridRowPinningPipe, - IgxGridDataMapperPipe, - IgxStringReplacePipe, - IgxGridTransactionStatePipe, - IgxGridAddRowPipe, - IgxColumnFormatterPipe, - IgxSummaryFormatterPipe, - IgxGridRowClassesPipe, - IgxGridRowStylesPipe - ], - exports: [ - IgxGridFilterConditionPipe, - IgxGridTransactionPipe, - IgxGridNotGroupedPipe, - IgxGridTopLevelColumns, - IgxGridCellStylesPipe, - IgxGridCellStyleClassesPipe, - IgxGridCellImageAltPipe, - IgxGridPaginatorOptionsPipe, - IgxHasVisibleColumnsPipe, - IgxGridRowPinningPipe, - IgxGridDataMapperPipe, - IgxStringReplacePipe, - IgxGridTransactionStatePipe, - IgxGridAddRowPipe, - IgxColumnFormatterPipe, - IgxSummaryFormatterPipe, - IgxGridRowClassesPipe, - IgxGridRowStylesPipe - ], - imports: [ - CommonModule - ] - }) -export class IgxGridPipesModule { } diff --git a/projects/igniteui-angular/src/lib/grids/common/grid.interface.ts b/projects/igniteui-angular/src/lib/grids/common/grid.interface.ts index f07aecdff62..1888857d285 100644 --- a/projects/igniteui-angular/src/lib/grids/common/grid.interface.ts +++ b/projects/igniteui-angular/src/lib/grids/common/grid.interface.ts @@ -1,4 +1,4 @@ -import { FilterMode, GridPagingMode, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GridValidationTrigger } from './enums'; +import { ColumnPinningPosition, FilterMode, GridPagingMode, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GridValidationTrigger, RowPinningPosition } from './enums'; import { ISearchInfo, IGridCellEventArgs, IRowSelectionEventArgs, IColumnSelectionEventArgs, IGridEditEventArgs, IPinColumnCancellableEventArgs, IColumnVisibilityChangedEventArgs, IColumnVisibilityChangingEventArgs, @@ -8,7 +8,7 @@ import { IActiveNodeChangeEventArgs, ICellPosition, IFilteringEventArgs, IColumnResizeEventArgs, IRowToggleEventArgs, IGridToolbarExportEventArgs, IPinRowEventArgs } from '../common/events'; -import { DisplayDensity, IDensityChangedEventArgs } from '../../core/displayDensity'; +import { DisplayDensity, IDensityChangedEventArgs } from '../../core/density'; import { ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, QueryList, TemplateRef, ViewContainerRef } from '@angular/core'; import { FilteringExpressionsTree, IFilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree'; import { IGridResourceStrings } from '../../core/i18n/grid-resources'; @@ -33,7 +33,6 @@ import { ISortingExpression, ISortingStrategy, SortingDirection } from '../../da import { IGridGroupingStrategy, IGridSortingStrategy } from './strategy'; import { IForOfState, IgxGridForOfDirective } from '../../directives/for-of/for_of.directive'; import { OverlaySettings } from '../../services/overlay/utilities'; -import { IPinningConfig } from '../grid.common'; import { IDimensionsChange, IPivotConfiguration, IPivotDimension, IPivotKeys, IPivotValue, IValuesChange, PivotDimensionType } from '../pivot-grid/pivot-grid.interface'; import { IDataCloneStrategy } from '../../data-operations/data-clone-strategy'; import { FormControl, FormGroup, ValidationErrors } from '@angular/forms'; @@ -70,6 +69,7 @@ export interface CellType { title?: any; width: string; visibleColumnIndex?: number; + defaultErrorTemplate?: TemplateRef; update: (value: any) => void; setEditMode?(value: boolean): void; calculateSizeToFit?(range: any): number; @@ -652,7 +652,6 @@ export interface GridType extends IGridDataBindable { toggleAll?(): void; generateRowPath?(rowId: any): any[]; preventHeaderScroll?(args: any): void; - } /** @@ -816,3 +815,11 @@ export interface IgxHeadSelectorTemplateContext { export interface IgxSummaryTemplateContext { $implicit: IgxSummaryResult[] } + +/** + * An interface describing settings for row/column pinning position. + */ +export interface IPinningConfig { + columns?: ColumnPinningPosition; + rows?: RowPinningPosition; +} diff --git a/projects/igniteui-angular/src/lib/grids/common/pipes.ts b/projects/igniteui-angular/src/lib/grids/common/pipes.ts index 2614bd5418b..a7253da47e7 100644 --- a/projects/igniteui-angular/src/lib/grids/common/pipes.ts +++ b/projects/igniteui-angular/src/lib/grids/common/pipes.ts @@ -14,7 +14,10 @@ interface GridStyleCSSProperty { * @hidden * @internal */ -@Pipe({ name: 'igxCellStyleClasses' }) +@Pipe({ + name: 'igxCellStyleClasses', + standalone: true +}) export class IgxGridCellStyleClassesPipe implements PipeTransform { public transform(cssClasses: GridStyleCSSProperty, _: any, data: any, field: string, index: number, __: number): string { @@ -42,7 +45,8 @@ export class IgxGridCellStyleClassesPipe implements PipeTransform { * @internal */ @Pipe({ - name: 'igxCellStyles' + name: 'igxCellStyles', + standalone: true }) export class IgxGridCellStylesPipe implements PipeTransform { @@ -67,7 +71,8 @@ export class IgxGridCellStylesPipe implements PipeTransform { * @internal */ @Pipe({ - name: 'igxCellImageAlt' + name: 'igxCellImageAlt', + standalone: true }) export class IgxGridCellImageAltPipe implements PipeTransform { @@ -86,7 +91,10 @@ export class IgxGridCellImageAltPipe implements PipeTransform { * @hidden * @internal */ -@Pipe({ name: 'igxGridRowClasses' }) +@Pipe({ + name: 'igxGridRowClasses', + standalone: true +}) export class IgxGridRowClassesPipe implements PipeTransform { public row: RowType; @@ -143,7 +151,10 @@ export class IgxGridRowClassesPipe implements PipeTransform { * @hidden * @internal */ -@Pipe({ name: 'igxGridRowStyles' }) +@Pipe({ + name: 'igxGridRowStyles', + standalone: true +}) export class IgxGridRowStylesPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } @@ -168,7 +179,8 @@ export class IgxGridRowStylesPipe implements PipeTransform { * @internal */ @Pipe({ - name: 'igxNotGrouped' + name: 'igxNotGrouped', + standalone: true }) export class IgxGridNotGroupedPipe implements PipeTransform { @@ -182,7 +194,8 @@ export class IgxGridNotGroupedPipe implements PipeTransform { * @internal */ @Pipe({ - name: 'igxTopLevel' + name: 'igxTopLevel', + standalone: true }) export class IgxGridTopLevelColumns implements PipeTransform { @@ -197,7 +210,8 @@ export class IgxGridTopLevelColumns implements PipeTransform { */ @Pipe({ name: 'filterCondition', - pure: true + pure: true, + standalone: true }) export class IgxGridFilterConditionPipe implements PipeTransform { @@ -210,7 +224,10 @@ export class IgxGridFilterConditionPipe implements PipeTransform { * @hidden * @internal */ -@Pipe({ name: 'gridTransaction' }) +@Pipe({ + name: 'gridTransaction', + standalone: true +}) export class IgxGridTransactionPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } @@ -233,7 +250,10 @@ export class IgxGridTransactionPipe implements PipeTransform { * @hidden * @internal */ -@Pipe({ name: 'paginatorOptions' }) +@Pipe({ + name: 'paginatorOptions', + standalone: true +}) export class IgxGridPaginatorOptionsPipe implements PipeTransform { public transform(values: Array) { return Array.from(new Set([...values])).sort((a, b) => a - b); @@ -244,7 +264,10 @@ export class IgxGridPaginatorOptionsPipe implements PipeTransform { * @hidden * @internal */ -@Pipe({ name: 'visibleColumns' }) +@Pipe({ + name: 'visibleColumns', + standalone: true +}) export class IgxHasVisibleColumnsPipe implements PipeTransform { public transform(values: any[], hasVisibleColumns) { if (!(values && values.length)) { @@ -271,7 +294,10 @@ function buildDataView(): MethodDecorator { /** * @hidden */ -@Pipe({ name: 'gridRowPinning' }) +@Pipe({ + name: 'gridRowPinning', + standalone: true +}) export class IgxGridRowPinningPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } @@ -296,7 +322,10 @@ export class IgxGridRowPinningPipe implements PipeTransform { } } -@Pipe({ name: 'dataMapper' }) +@Pipe({ + name: 'dataMapper', + standalone: true +}) export class IgxGridDataMapperPipe implements PipeTransform { public transform(data: any[], field: string, _: number, val: any, isNestedPath: boolean) { @@ -304,7 +333,10 @@ export class IgxGridDataMapperPipe implements PipeTransform { } } -@Pipe({ name: 'igxStringReplace' }) +@Pipe({ + name: 'igxStringReplace', + standalone: true +}) export class IgxStringReplacePipe implements PipeTransform { public transform(value: string, search: string | RegExp, replacement: string): string { @@ -312,7 +344,10 @@ export class IgxStringReplacePipe implements PipeTransform { } } -@Pipe({ name: 'transactionState' }) +@Pipe({ + name: 'transactionState', + standalone: true +}) export class IgxGridTransactionStatePipe implements PipeTransform { public transform(row_id: any, field: string, rowEditable: boolean, transactions: any, _: any, __: any, ___: any) { @@ -330,7 +365,10 @@ export class IgxGridTransactionStatePipe implements PipeTransform { } } -@Pipe({ name: 'columnFormatter' }) +@Pipe({ + name: 'columnFormatter', + standalone: true +}) export class IgxColumnFormatterPipe implements PipeTransform { public transform(value: any, formatter: (v: any, data: any, columnData? :any) => any, rowData: any, columnData? : any) { @@ -338,7 +376,10 @@ export class IgxColumnFormatterPipe implements PipeTransform { } } -@Pipe({ name: 'summaryFormatter' }) +@Pipe({ + name: 'summaryFormatter', + standalone: true +}) export class IgxSummaryFormatterPipe implements PipeTransform { public transform(summaryResult: IgxSummaryResult, summaryOperand: IgxSummaryOperand, @@ -347,7 +388,10 @@ export class IgxSummaryFormatterPipe implements PipeTransform { } } -@Pipe({ name: 'gridAddRow' }) +@Pipe({ + name: 'gridAddRow', + standalone: true +}) export class IgxGridAddRowPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } diff --git a/projects/igniteui-angular/src/lib/grids/common/public_api.ts b/projects/igniteui-angular/src/lib/grids/common/public_api.ts new file mode 100644 index 00000000000..e3062818a56 --- /dev/null +++ b/projects/igniteui-angular/src/lib/grids/common/public_api.ts @@ -0,0 +1,5 @@ +export * from './enums'; +export * from './events'; +export * from './grid.interface'; +export * from './strategy'; +export * from './types'; diff --git a/projects/igniteui-angular/src/lib/grids/common/shared.module.ts b/projects/igniteui-angular/src/lib/grids/common/shared.module.ts deleted file mode 100644 index d1befe6c238..00000000000 --- a/projects/igniteui-angular/src/lib/grids/common/shared.module.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; -import { IgxButtonModule } from '../../directives/button/button.directive'; -import { IgxIconModule } from '../../icon/public_api'; -import { IgxRippleModule } from '../../directives/ripple/ripple.directive'; -import { IgxInputGroupModule } from '../../input-group/public_api'; -import { IgxFocusModule } from '../../directives/focus/focus.directive'; -import { IgxToggleModule } from '../../directives/toggle/toggle.directive'; -import { IgxForOfModule } from '../../directives/for-of/for_of.directive'; -import { IgxTemplateOutletModule } from '../../directives/template-outlet/template_outlet.directive'; -import { IgxTextHighlightModule } from '../../directives/text-highlight/text-highlight.directive'; -import { IgxTextSelectionModule } from '../../directives/text-selection/text-selection.directive'; -import { IgxCheckboxModule } from '../../checkbox/checkbox.component'; -import { IgxBadgeModule } from '../../badge/badge.component'; -import { IgxChipsModule } from '../../chips/chips.module'; -import { IgxDragDropModule } from '../../directives/drag-drop/drag-drop.directive'; -import { IgxButtonGroupModule } from '../../buttonGroup/buttonGroup.component'; -import { IgxProgressBarModule } from '../../progressbar/progressbar.component'; -import { IgxSelectModule } from '../../select/select.module'; -import { IgxDropDownModule } from '../../drop-down/public_api'; -import { IgxGridStateModule } from '../state.directive'; -import { IgxSnackbarModule } from '../../snackbar/snackbar.component'; -import { IgxDatePickerModule } from '../../date-picker/date-picker.module'; -import { IgxTimePickerModule } from '../../time-picker/time-picker.component'; -import { IgxDateTimeEditorModule } from '../../directives/date-time-editor/date-time-editor.directive'; - - -@NgModule({ - imports: [ - CommonModule, - FormsModule, - IgxButtonModule, - IgxDatePickerModule, - IgxIconModule, - IgxRippleModule, - IgxInputGroupModule, - IgxFocusModule, - IgxToggleModule, - IgxForOfModule, - IgxTemplateOutletModule, - IgxTextHighlightModule, - IgxTextSelectionModule, - IgxCheckboxModule, - IgxBadgeModule, - IgxChipsModule, - IgxDragDropModule, - IgxDropDownModule, - IgxButtonGroupModule, - IgxProgressBarModule, - IgxSelectModule, - IgxGridStateModule, - IgxSnackbarModule, - IgxTimePickerModule, - IgxDateTimeEditorModule - ], - exports: [ - CommonModule, - FormsModule, - IgxButtonModule, - IgxDatePickerModule, - IgxIconModule, - IgxRippleModule, - IgxInputGroupModule, - IgxFocusModule, - IgxToggleModule, - IgxForOfModule, - IgxTemplateOutletModule, - IgxTextHighlightModule, - IgxGridStateModule, - IgxTextSelectionModule, - IgxCheckboxModule, - IgxBadgeModule, - IgxChipsModule, - IgxDragDropModule, - IgxDropDownModule, - IgxButtonGroupModule, - IgxProgressBarModule, - IgxSelectModule, - IgxSnackbarModule, - IgxTimePickerModule, - IgxDateTimeEditorModule - ] -}) -export class IgxGridSharedModules {} diff --git a/projects/igniteui-angular/src/lib/grids/common/strategy.ts b/projects/igniteui-angular/src/lib/grids/common/strategy.ts index e4b7582dbee..28dfa9185cb 100644 --- a/projects/igniteui-angular/src/lib/grids/common/strategy.ts +++ b/projects/igniteui-angular/src/lib/grids/common/strategy.ts @@ -95,7 +95,7 @@ export class IgxSorting implements IGridSortingStrategy { return result; } - protected getFieldValue(obj: T, key: string, isDate: boolean = false, isTime: boolean = false) { + protected getFieldValue(obj: T, key: string, isDate = false, isTime = false) { let resolvedValue = resolveNestedPath(obj, key); const date = parseDate(resolvedValue); if (date && isDate && isTime) { @@ -112,8 +112,8 @@ export class IgxSorting implements IGridSortingStrategy { data: T[], index: number, expression: IGroupingExpression, - isDate: boolean = false, - isTime: boolean = false, + isDate = false, + isTime = false, isString: boolean, groupingComparer?: (a: any, b: any, currRec: any, groupRec: any) => number ): T[] { @@ -145,7 +145,7 @@ export class IgxSorting implements IGridSortingStrategy { private sortDataRecursive( data: T[], expressions: ISortingExpression[], - expressionIndex: number = 0, + expressionIndex = 0, grid: GridType ): T[] { let i: number; @@ -215,7 +215,7 @@ export class NoopSortingStrategy implements IGridSortingStrategy { export class IgxDataRecordSorting extends IgxSorting { - protected override getFieldValue(obj: any, key: string, isDate: boolean = false, isTime: boolean = false): any { + protected override getFieldValue(obj: any, key: string, isDate = false, isTime = false): any { return super.getFieldValue(obj.data, key, isDate, isTime); } } diff --git a/projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts index 15ff1a33cd5..10c0308883e 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts @@ -2,16 +2,19 @@ import { Component, Input, ViewChild, ChangeDetectorRef, AfterViewInit, OnDestroy, HostBinding } from '@angular/core'; import { IgxOverlayService } from '../../../services/overlay/overlay'; -import { IDragStartEventArgs } from '../../../directives/drag-drop/drag-drop.directive'; +import { IDragStartEventArgs, IgxDragDirective, IgxDragHandleDirective } from '../../../directives/drag-drop/drag-drop.directive'; import { Subject } from 'rxjs'; import { IActiveNode } from '../../grid-navigation.service'; import { PlatformUtil } from '../../../core/utils'; import { FieldType, GridType } from '../../common/grid.interface'; -import { DisplayDensity } from '../../../core/displayDensity'; +import { DisplayDensity } from '../../../core/density'; import { IgxQueryBuilderComponent } from '../../../query-builder/query-builder.component'; import { CurrentResourceStrings } from '../../../core/i18n/resources'; import { GridResourceStringsEN } from '../../../core/i18n/grid-resources'; import { IFilteringExpressionsTree } from '../../../data-operations/filtering-expressions-tree'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { IgxQueryBuilderHeaderComponent } from '../../../query-builder/query-builder-header.component'; +import { NgIf, NgClass } from '@angular/common'; /** * A component used for presenting advanced filtering UI for a Grid. @@ -26,7 +29,9 @@ import { IFilteringExpressionsTree } from '../../../data-operations/filtering-ex */ @Component({ selector: 'igx-advanced-filtering-dialog', - templateUrl: './advanced-filtering-dialog.component.html' + templateUrl: './advanced-filtering-dialog.component.html', + standalone: true, + imports: [NgIf, IgxDragDirective, NgClass, IgxQueryBuilderComponent, IgxQueryBuilderHeaderComponent, IgxDragHandleDirective, IgxButtonDirective] }) export class IgxAdvancedFilteringDialogComponent implements AfterViewInit, OnDestroy { /** diff --git a/projects/igniteui-angular/src/lib/grids/filtering/base/filtering.module.ts b/projects/igniteui-angular/src/lib/grids/filtering/base/filtering.module.ts deleted file mode 100644 index 492f18fd1d2..00000000000 --- a/projects/igniteui-angular/src/lib/grids/filtering/base/filtering.module.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { NgModule } from '@angular/core'; -import { IgxGridFilteringCellComponent } from './grid-filtering-cell.component'; -import { IgxGridFilteringRowComponent } from './grid-filtering-row.component'; -import { IgxGridSharedModules } from '../../common/shared.module'; -import { IgxGridPipesModule } from '../../common/grid-pipes.module'; - - -export { IgxGridFilteringCellComponent as θIgxGridFilteringCellComponent } from './grid-filtering-cell.component'; -export { IgxGridFilteringRowComponent as θIgxGridFilteringRowComponent } from './grid-filtering-row.component'; - -@NgModule({ - declarations: [ - IgxGridFilteringCellComponent, - IgxGridFilteringRowComponent - ], - imports: [ - IgxGridSharedModules, - IgxGridPipesModule - ], - exports: [ - IgxGridFilteringCellComponent, - IgxGridFilteringRowComponent - ] -}) -export class IgxGridFilteringModule { } diff --git a/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-cell.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-cell.component.ts index e2ea3906696..8e7c85f0916 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-cell.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-cell.component.ts @@ -13,11 +13,15 @@ import { } from '@angular/core'; import { IFilteringExpression } from '../../../data-operations/filtering-expression.interface'; import { IgxFilteringService } from '../grid-filtering.service'; -import { DisplayDensity } from '../../../core/displayDensity'; +import { DisplayDensity } from '../../../core/density'; import { ExpressionUI } from '../excel-style/common'; import { IgxChipsAreaComponent } from '../../../chips/chips-area.component'; import { IBaseChipEventArgs, IgxChipComponent } from '../../../chips/chip.component'; import { ColumnType } from '../../common/grid.interface'; +import { IgxBadgeComponent } from '../../../badge/badge.component'; +import { NgFor, NgIf, NgClass, NgTemplateOutlet } from '@angular/common'; +import { IgxPrefixDirective } from '../../../directives/prefix/prefix.directive'; +import { IgxIconComponent } from '../../../icon/icon.component'; /** * @hidden @@ -25,7 +29,9 @@ import { ColumnType } from '../../common/grid.interface'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-filtering-cell', - templateUrl: './grid-filtering-cell.component.html' + templateUrl: './grid-filtering-cell.component.html', + standalone: true, + imports: [IgxChipsAreaComponent, IgxChipComponent, IgxIconComponent, IgxPrefixDirective, NgFor, NgIf, NgClass, IgxBadgeComponent, NgTemplateOutlet] }) export class IgxGridFilteringCellComponent implements AfterViewInit, OnInit, DoCheck { @Input() diff --git a/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-row.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-row.component.ts index ae22b004a5d..e59ce558cc8 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-row.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-row.component.ts @@ -15,16 +15,16 @@ import { OnDestroy } from '@angular/core'; import { GridColumnDataType, DataUtil } from '../../../data-operations/data-util'; -import { IgxDropDownComponent, ISelectionEventArgs } from '../../../drop-down/public_api'; +import { IgxDropDownComponent } from '../../../drop-down/drop-down.component'; import { IFilteringOperation } from '../../../data-operations/filtering-condition'; import { FilteringLogic, IFilteringExpression } from '../../../data-operations/filtering-expression.interface'; import { HorizontalAlignment, VerticalAlignment, OverlaySettings } from '../../../services/overlay/utilities'; import { ConnectedPositioningStrategy } from '../../../services/overlay/position/connected-positioning-strategy'; -import { IBaseChipEventArgs, IgxChipsAreaComponent, IgxChipComponent } from '../../../chips/public_api'; import { IgxDropDownItemComponent } from '../../../drop-down/drop-down-item.component'; +import { ISelectionEventArgs } from '../../../drop-down/drop-down.common'; import { IgxFilteringService } from '../grid-filtering.service'; import { AbsoluteScrollStrategy } from '../../../services/overlay/scroll'; -import { DisplayDensity } from '../../../core/displayDensity'; +import { DisplayDensity } from '../../../core/density'; import { IgxDatePickerComponent } from '../../../date-picker/date-picker.component'; import { IgxTimePickerComponent } from '../../../time-picker/time-picker.component'; import { isEqual, PlatformUtil } from '../../../core/utils'; @@ -32,6 +32,19 @@ import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { ExpressionUI } from '../excel-style/common'; import { ColumnType } from '../../common/grid.interface'; +import { IgxRippleDirective } from '../../../directives/ripple/ripple.directive'; +import { IgxChipComponent, IBaseChipEventArgs } from '../../../chips/chip.component'; +import { IgxChipsAreaComponent } from '../../../chips/chips-area.component'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { IgxDateTimeEditorDirective } from '../../../directives/date-time-editor/date-time-editor.directive'; +import { IgxPickerToggleComponent, IgxPickerClearComponent } from '../../../date-common/picker-icons.common'; +import { IgxSuffixDirective } from '../../../directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../../../directives/input/input.directive'; +import { IgxDropDownItemNavigationDirective } from '../../../drop-down/drop-down-navigation.directive'; +import { IgxPrefixDirective } from '../../../directives/prefix/prefix.directive'; +import { IgxInputGroupComponent } from '../../../input-group/input-group.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { NgFor, NgIf, NgTemplateOutlet, NgClass } from '@angular/common'; /** * @hidden @@ -39,7 +52,9 @@ import { ColumnType } from '../../common/grid.interface'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-filtering-row', - templateUrl: './grid-filtering-row.component.html' + templateUrl: './grid-filtering-row.component.html', + standalone: true, + imports: [NgFor, IgxDropDownComponent, IgxDropDownItemComponent, IgxChipsAreaComponent, IgxChipComponent, IgxIconComponent, IgxInputGroupComponent, IgxPrefixDirective, IgxDropDownItemNavigationDirective, IgxInputDirective, NgIf, IgxSuffixDirective, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxDateTimeEditorDirective, NgTemplateOutlet, IgxButtonDirective, NgClass, IgxRippleDirective] }) export class IgxGridFilteringRowComponent implements AfterViewInit, OnDestroy { @Input() diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/base-filtering.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/base-filtering.component.ts index 3cdf3c2966a..bf8d12a7406 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/base-filtering.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/base-filtering.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectorRef, Directive, ElementRef, EventEmitter } from '@angular/core'; -import { DisplayDensity } from '../../../core/displayDensity'; +import { DisplayDensity } from '../../../core/density'; import { PlatformUtil } from '../../../core/utils'; import { IgxOverlayService } from '../../../services/overlay/overlay'; import { ExpressionUI, FilterListItem } from './common'; diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-clear-filters.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-clear-filters.component.ts index b1231dd424b..09856c6aed6 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-clear-filters.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-clear-filters.component.ts @@ -1,13 +1,17 @@ import { Component } from '@angular/core'; import { PlatformUtil } from '../../../core/utils'; import { BaseFilteringComponent } from './base-filtering.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { NgIf, NgClass } from '@angular/common'; /** * A component used for presenting Excel style clear filters UI. */ @Component({ selector: 'igx-excel-style-clear-filters', - templateUrl: './excel-style-clear-filters.component.html' + templateUrl: './excel-style-clear-filters.component.html', + standalone: true, + imports: [NgIf, NgClass, IgxIconComponent] }) export class IgxExcelStyleClearFiltersComponent { constructor(public esf: BaseFilteringComponent, protected platform: PlatformUtil) { } diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.ts index 0a36ffa74ee..0ec7e25b1f3 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.ts @@ -4,13 +4,18 @@ import { takeUntil } from 'rxjs/operators'; import { GridColumnDataType } from '../../../data-operations/data-util'; import { IFilteringOperation } from '../../../data-operations/filtering-condition'; import { IFilteringExpression } from '../../../data-operations/filtering-expression.interface'; -import { ISelectionEventArgs, IgxDropDownComponent } from '../../../drop-down/public_api'; import { IgxExcelStyleCustomDialogComponent } from './excel-style-custom-dialog.component'; import { PlatformUtil } from '../../../core/utils'; import { BaseFilteringComponent } from './base-filtering.component'; import { AutoPositionStrategy } from '../../../services/overlay/position/auto-position-strategy'; import { AbsoluteScrollStrategy } from '../../../services/overlay/scroll/absolute-scroll-strategy'; import { HorizontalAlignment, OverlaySettings, VerticalAlignment } from '../../../services/overlay/utilities'; +import { IgxDropDownItemComponent } from '../../../drop-down/drop-down-item.component'; +import { IgxDropDownComponent } from '../../../drop-down/drop-down.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { IgxDropDownItemNavigationDirective } from '../../../drop-down/drop-down-navigation.directive'; +import { NgIf, NgFor } from '@angular/common'; +import { ISelectionEventArgs } from '../../../drop-down/drop-down.common'; /** @@ -18,7 +23,9 @@ import { HorizontalAlignment, OverlaySettings, VerticalAlignment } from '../../. */ @Component({ selector: 'igx-excel-style-conditional-filter', - templateUrl: './excel-style-conditional-filter.component.html' + templateUrl: './excel-style-conditional-filter.component.html', + standalone: true, + imports: [NgIf, IgxDropDownItemNavigationDirective, IgxIconComponent, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxExcelStyleCustomDialogComponent] }) export class IgxExcelStyleConditionalFilterComponent implements OnDestroy { /** diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.ts index 2c51cc11584..34c513069eb 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.ts @@ -31,13 +31,18 @@ import { HorizontalAlignment, OverlaySettings, PositionSettings, VerticalAlignme import { AutoPositionStrategy } from '../../../services/overlay/position/auto-position-strategy'; import { AbsoluteScrollStrategy } from '../../../services/overlay/scroll/absolute-scroll-strategy'; import { IgxOverlayService } from '../../../services/overlay/overlay'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { NgClass, NgIf, NgFor } from '@angular/common'; /** * @hidden */ @Component({ selector: 'igx-excel-style-custom-dialog', - templateUrl: './excel-style-custom-dialog.component.html' + templateUrl: './excel-style-custom-dialog.component.html', + standalone: true, + imports: [IgxToggleDirective, NgClass, NgIf, NgFor, IgxExcelStyleDateExpressionComponent, IgxExcelStyleDefaultExpressionComponent, IgxButtonDirective, IgxIconComponent] }) export class IgxExcelStyleCustomDialogComponent implements AfterViewInit { @Input() diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-date-expression.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-date-expression.component.ts index 82b2396f28e..bc494d1dde1 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-date-expression.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-date-expression.component.ts @@ -1,16 +1,29 @@ import { Component, ViewChild } from '@angular/core'; import { IgxExcelStyleDefaultExpressionComponent } from './excel-style-default-expression.component'; import { IgxInputDirective } from '../../../directives/input/input.directive'; -import { IgxDatePickerComponent } from '../../../date-picker/public_api'; import { IgxTimePickerComponent } from '../../../time-picker/time-picker.component'; -import { getLocaleFirstDayOfWeek } from "@angular/common"; +import { getLocaleFirstDayOfWeek, NgIf, NgFor } from "@angular/common"; +import { IgxOverlayOutletDirective } from '../../../directives/toggle/toggle.directive'; +import { IgxButtonGroupComponent } from '../../../buttonGroup/buttonGroup.component'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { IgxDateTimeEditorDirective } from '../../../directives/date-time-editor/date-time-editor.directive'; +import { FormsModule } from '@angular/forms'; +import { IgxInputGroupComponent } from '../../../input-group/input-group.component'; +import { IgxPickerToggleComponent, IgxPickerClearComponent } from '../../../date-common/picker-icons.common'; +import { IgxDatePickerComponent } from '../../../date-picker/date-picker.component'; +import { IgxSelectItemComponent } from '../../../select/select-item.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { IgxPrefixDirective } from '../../../directives/prefix/prefix.directive'; +import { IgxSelectComponent } from '../../../select/select.component'; /** * @hidden */ @Component({ selector: 'igx-excel-style-date-expression', - templateUrl: './excel-style-date-expression.component.html' + templateUrl: './excel-style-date-expression.component.html', + standalone: true, + imports: [IgxSelectComponent, IgxPrefixDirective, NgIf, IgxIconComponent, NgFor, IgxSelectItemComponent, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxDateTimeEditorDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective] }) export class IgxExcelStyleDateExpressionComponent extends IgxExcelStyleDefaultExpressionComponent { @ViewChild('input', { read: IgxInputDirective, static: false }) diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-default-expression.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-default-expression.component.ts index 9053be5d1dc..72d5a2b67ea 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-default-expression.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-default-expression.component.ts @@ -15,12 +15,18 @@ import { FilteringLogic } from '../../../data-operations/filtering-expression.in import { DisplayDensity } from '../../../core/density'; import { IgxSelectComponent } from '../../../select/select.component'; import { IgxOverlayOutletDirective } from '../../../directives/toggle/toggle.directive'; -import { IgxInputDirective } from '../../../input-group/public_api'; import { ExpressionUI } from './common'; import { ColumnType } from '../../common/grid.interface'; import { OverlaySettings } from '../../../services/overlay/utilities'; import { AbsoluteScrollStrategy } from '../../../services/overlay/scroll/absolute-scroll-strategy'; import { ConnectedPositioningStrategy } from '../../../services/overlay/position/connected-positioning-strategy'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { IgxInputDirective } from '../../../directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../input-group/input-group.component'; +import { IgxSelectItemComponent } from '../../../select/select-item.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { NgIf, NgFor } from '@angular/common'; +import { IgxPrefixDirective } from '../../../directives/prefix/prefix.directive'; /** * @hidden @@ -35,7 +41,9 @@ export interface ILogicOperatorChangedArgs extends IBaseEventArgs { */ @Component({ selector: 'igx-excel-style-default-expression', - templateUrl: './excel-style-default-expression.component.html' + templateUrl: './excel-style-default-expression.component.html', + standalone: true, + imports: [IgxSelectComponent, IgxPrefixDirective, NgIf, IgxIconComponent, NgFor, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective] }) export class IgxExcelStyleDefaultExpressionComponent implements AfterViewInit { @Input() diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.html b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component.html similarity index 100% rename from projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.html rename to projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component.html diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component.ts similarity index 93% rename from projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.ts rename to projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component.ts index b1ad376952a..50d2a0b6cff 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component.ts @@ -25,20 +25,31 @@ import { Subscription } from 'rxjs'; import { DisplayDensity } from '../../../core/density'; import { GridSelectionMode } from '../../common/enums'; import { IgxFilterItem } from '../../../data-operations/filtering-strategy'; -import { formatNumber, formatPercent, getLocaleCurrencyCode } from '@angular/common'; +import { formatNumber, formatPercent, getLocaleCurrencyCode, NgIf, NgClass } from '@angular/common'; import { BaseFilteringComponent } from './base-filtering.component'; import { ExpressionUI, FilterListItem, generateExpressionsList } from './common'; import { ColumnType, GridType, IGX_GRID_BASE } from '../../common/grid.interface'; import { IgxOverlayService } from '../../../services/overlay/overlay'; import { SortingDirection } from '../../../data-operations/sorting-strategy'; +import { IgxExcelStyleSearchComponent } from './excel-style-search.component'; +import { IgxExcelStyleConditionalFilterComponent } from './excel-style-conditional-filter.component'; +import { IgxExcelStyleClearFiltersComponent } from './excel-style-clear-filters.component'; +import { IgxExcelStyleSelectingComponent } from './excel-style-selecting.component'; +import { IgxExcelStyleHidingComponent } from './excel-style-hiding.component'; +import { IgxExcelStylePinningComponent } from './excel-style-pinning.component'; +import { IgxExcelStyleMovingComponent } from './excel-style-moving.component'; +import { IgxExcelStyleSortingComponent } from './excel-style-sorting.component'; +import { IgxExcelStyleHeaderComponent } from './excel-style-header.component'; @Directive({ - selector: 'igx-excel-style-column-operations,[igxExcelStyleColumnOperations]' + selector: 'igx-excel-style-column-operations,[igxExcelStyleColumnOperations]', + standalone: true }) export class IgxExcelStyleColumnOperationsTemplateDirective { } @Directive({ - selector: 'igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]' + selector: 'igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]', + standalone: true }) export class IgxExcelStyleFilterOperationsTemplateDirective { } @@ -55,9 +66,11 @@ export class IgxExcelStyleFilterOperationsTemplateDirective { } */ @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent)}], + providers: [{ provide: BaseFilteringComponent, useExisting: forwardRef(() => IgxGridExcelStyleFilteringComponent) }], selector: 'igx-grid-excel-style-filtering', - templateUrl: './grid.excel-style-filtering.component.html' + templateUrl: './excel-style-filtering.component.html', + standalone: true, + imports: [IgxExcelStyleHeaderComponent, NgIf, IgxExcelStyleSortingComponent, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleHidingComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleClearFiltersComponent, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleSearchComponent, NgClass] }) export class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent implements OnDestroy { @@ -484,7 +497,7 @@ export class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent this.generateListData(); } - private generateFilterValues(isDateColumn: boolean = false) { + private generateFilterValues(isDateColumn = false) { let filterValues; if (isDateColumn) { @@ -603,7 +616,7 @@ export class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent } private generateFilterListItems(values: IgxFilterItem[], shouldUpdateSelection: boolean, parent?: FilterListItem) { - let filterListItems = []; + const filterListItems = []; values?.forEach(element => { const value = element.value; const hasValue = value !== undefined && value !== null && value !== ''; @@ -679,7 +692,7 @@ export class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent return blanks; } - private getFilterItemLabel(value: any, applyFormatter: boolean = true, data?: any) { + private getFilterItemLabel(value: any, applyFormatter = true, data?: any) { if (this.column.formatter) { if (applyFormatter) { return this.column.formatter(value, data); diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-header.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-header.component.ts index 608e6990c95..596ba1f9664 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-header.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-header.component.ts @@ -1,12 +1,17 @@ import { Component, Input } from '@angular/core'; import { BaseFilteringComponent } from './base-filtering.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { NgIf, NgClass } from '@angular/common'; /** * A component used for presenting Excel style header UI. */ @Component({ selector: 'igx-excel-style-header', - templateUrl: './excel-style-header.component.html' + templateUrl: './excel-style-header.component.html', + standalone: true, + imports: [NgIf, IgxButtonDirective, NgClass, IgxIconComponent] }) export class IgxExcelStyleHeaderComponent { /** diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-hiding.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-hiding.component.ts index ec4d85d1cd7..b790dec8499 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-hiding.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-hiding.component.ts @@ -1,12 +1,16 @@ import { Component } from '@angular/core'; import { BaseFilteringComponent } from './base-filtering.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { NgIf } from '@angular/common'; /** * A component used for presenting Excel style column hiding UI. */ @Component({ selector: 'igx-excel-style-hiding', - templateUrl: './excel-style-hiding.component.html' + templateUrl: './excel-style-hiding.component.html', + standalone: true, + imports: [NgIf, IgxIconComponent] }) export class IgxExcelStyleHidingComponent { constructor(public esf: BaseFilteringComponent) { } diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-moving.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-moving.component.ts index bd0b60f4ea5..e3e3b7a6db9 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-moving.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-moving.component.ts @@ -1,13 +1,19 @@ import { Component, HostBinding } from '@angular/core'; import { ColumnType } from '../../common/grid.interface'; import { BaseFilteringComponent } from './base-filtering.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { IgxButtonGroupComponent } from '../../../buttonGroup/buttonGroup.component'; +import { NgIf } from '@angular/common'; /** * A component used for presenting Excel style column moving UI. */ @Component({ selector: 'igx-excel-style-moving', - templateUrl: './excel-style-moving.component.html' + templateUrl: './excel-style-moving.component.html', + standalone: true, + imports: [NgIf, IgxButtonGroupComponent, IgxButtonDirective, IgxIconComponent] }) export class IgxExcelStyleMovingComponent { /** diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-pinning.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-pinning.component.ts index 7132c46cfac..5b9a66cf2df 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-pinning.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-pinning.component.ts @@ -1,12 +1,16 @@ import { Component } from '@angular/core'; import { BaseFilteringComponent } from './base-filtering.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { NgIf, NgClass } from '@angular/common'; /** * A component used for presenting Excel style column pinning UI. */ @Component({ selector: 'igx-excel-style-pinning', - templateUrl: './excel-style-pinning.component.html' + templateUrl: './excel-style-pinning.component.html', + standalone: true, + imports: [NgIf, NgClass, IgxIconComponent] }) export class IgxExcelStylePinningComponent { constructor(public esf: BaseFilteringComponent) { } diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-search.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-search.component.ts index 508fd9bf678..254b15f6a43 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-search.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-search.component.ts @@ -19,22 +19,35 @@ import { IgxStringFilteringOperand, IgxDateTimeFilteringOperand, IgxTimeFilteringOperand } from '../../../data-operations/filtering-condition'; import { Subject } from 'rxjs'; -import { IgxListComponent } from '../../../list/public_api'; import { IChangeCheckboxEventArgs, IgxCheckboxComponent } from '../../../checkbox/checkbox.component'; import { takeUntil } from 'rxjs/operators'; import { cloneHierarchicalArray, PlatformUtil } from '../../../core/utils'; import { BaseFilteringComponent } from './base-filtering.component'; import { ExpressionUI, FilterListItem } from './common'; -import { IgxTreeComponent, ITreeNodeSelectionEvent } from '../../../tree/public_api'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { IgxCircularProgressBarComponent } from '../../../progressbar/progressbar.component'; +import { IgxTreeNodeComponent } from '../../../tree/tree-node/tree-node.component'; +import { IgxTreeComponent } from '../../../tree/tree.component'; +import { IgxDataLoadingTemplateDirective, IgxEmptyListTemplateDirective } from '../../../list/list.common'; +import { IgxListItemComponent } from '../../../list/list-item.component'; +import { IgxListComponent } from '../../../list/list.component'; +import { IgxSuffixDirective } from '../../../directives/suffix/suffix.directive'; +import { NgIf, NgTemplateOutlet, NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IgxPrefixDirective } from '../../../directives/prefix/prefix.directive'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { IgxInputGroupComponent } from '../../../input-group/input-group.component'; +import { ITreeNodeSelectionEvent } from '../../../tree/common'; @Directive({ - selector: '[igxExcelStyleLoading]' + selector: '[igxExcelStyleLoading]', + standalone: true }) export class IgxExcelStyleLoadingValuesTemplateDirective { public static ngTemplateContextGuard(_dir: IgxExcelStyleLoadingValuesTemplateDirective, ctx: unknown): ctx is undefined { return true - }; + } constructor(public template: TemplateRef) { } } @@ -43,7 +56,9 @@ export class IgxExcelStyleLoadingValuesTemplateDirective { */ @Component({ selector: 'igx-excel-style-search', - templateUrl: './excel-style-search.component.html' + templateUrl: './excel-style-search.component.html', + standalone: true, + imports: [IgxInputGroupComponent, IgxIconComponent, IgxPrefixDirective, FormsModule, IgxInputDirective, NgIf, IgxSuffixDirective, IgxListComponent, IgxForOfDirective, IgxListItemComponent, IgxCheckboxComponent, IgxDataLoadingTemplateDirective, NgTemplateOutlet, IgxEmptyListTemplateDirective, IgxTreeComponent, NgFor, IgxTreeNodeComponent, IgxCircularProgressBarComponent, IgxButtonDirective] }) export class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy { private static readonly filterOptimizationThreshold = 2; diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-selecting.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-selecting.component.ts index f4a6b53750b..75a5d97dfc9 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-selecting.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-selecting.component.ts @@ -1,12 +1,16 @@ import { Component } from '@angular/core'; import { BaseFilteringComponent } from './base-filtering.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { NgIf, NgClass } from '@angular/common'; /** * A component used for presenting Excel style conditional filter UI. */ @Component({ selector: 'igx-excel-style-selecting', - templateUrl: './excel-style-selecting.component.html' + templateUrl: './excel-style-selecting.component.html', + standalone: true, + imports: [NgIf, NgClass, IgxIconComponent] }) export class IgxExcelStyleSelectingComponent { constructor(public esf: BaseFilteringComponent) { } diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-sorting.component.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-sorting.component.ts index a4feab3f6c1..1ad0df6e7cb 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-sorting.component.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-sorting.component.ts @@ -9,13 +9,18 @@ import { IgxButtonGroupComponent } from '../../../buttonGroup/buttonGroup.compon import { takeUntil } from 'rxjs/operators'; import { Subject } from 'rxjs'; import { BaseFilteringComponent } from './base-filtering.component'; +import { IgxIconComponent } from '../../../icon/icon.component'; +import { IgxButtonDirective } from '../../../directives/button/button.directive'; +import { NgIf } from '@angular/common'; /** * A component used for presenting Excel style column sorting UI. */ @Component({ selector: 'igx-excel-style-sorting', - templateUrl: './excel-style-sorting.component.html' + templateUrl: './excel-style-sorting.component.html', + standalone: true, + imports: [NgIf, IgxButtonGroupComponent, IgxButtonDirective, IgxIconComponent] }) export class IgxExcelStyleSortingComponent implements OnDestroy { /** diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.module.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.module.ts deleted file mode 100644 index b064c7339d3..00000000000 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.module.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { IgxExcelStyleLoadingValuesTemplateDirective } from './excel-style-search.component'; -import { - IgxGridExcelStyleFilteringComponent, - IgxExcelStyleColumnOperationsTemplateDirective, - IgxExcelStyleFilterOperationsTemplateDirective -} from './grid.excel-style-filtering.component'; -import { IgxExcelStyleSortingComponent } from './excel-style-sorting.component'; -import { IgxExcelStyleMovingComponent } from './excel-style-moving.component'; -import { IgxExcelStyleSearchComponent } from './excel-style-search.component'; -import { IgxExcelStyleCustomDialogComponent } from './excel-style-custom-dialog.component'; -import { IgxExcelStyleDefaultExpressionComponent } from './excel-style-default-expression.component'; -import { IgxExcelStyleDateExpressionComponent } from './excel-style-date-expression.component'; -import { IgxSelectionAPIService } from '../../../core/selection'; -import { FormsModule } from '@angular/forms'; -import { IgxGridPipesModule } from '../../common/grid-pipes.module'; -import { IgxButtonModule } from '../../../directives/button/button.directive'; -import { IgxButtonGroupModule } from '../../../buttonGroup/buttonGroup.component'; -import { IgxIconModule } from '../../../icon/public_api'; -import { IgxRippleModule } from '../../../directives/ripple/ripple.directive'; -import { IgxInputGroupModule } from '../../../input-group/input-group.component'; -import { IgxDropDownModule } from '../../../drop-down/public_api'; -import { IgxForOfModule } from '../../../directives/for-of/for_of.directive'; -import { IgxCheckboxModule } from '../../../checkbox/checkbox.component'; -import { IgxFilterModule } from '../../../directives/filter/filter.directive'; -import { IgxToggleModule } from '../../../directives/toggle/toggle.directive'; -import { IgxListModule } from '../../../list/list.component'; -import { IgxProgressBarModule } from '../../../progressbar/progressbar.component'; -import { IgxSelectModule } from './../../../select/select.module'; -import { IgxExcelStylePinningComponent } from './excel-style-pinning.component'; -import { IgxExcelStyleHeaderComponent } from './excel-style-header.component'; -import { IgxExcelStyleHidingComponent } from './excel-style-hiding.component'; -import { IgxExcelStyleSelectingComponent } from './excel-style-selecting.component'; -import { IgxExcelStyleClearFiltersComponent } from './excel-style-clear-filters.component'; -import { IgxExcelStyleConditionalFilterComponent } from './excel-style-conditional-filter.component'; -import { IgxDatePickerModule } from '../../../date-picker/date-picker.module'; -import { IgxTimePickerModule } from '../../../time-picker/time-picker.component'; -import { IgxFocusModule } from '../../../directives/focus/focus.directive'; -import { IgxDateTimeEditorModule } from '../../../directives/date-time-editor/date-time-editor.directive'; -import { IgxTreeModule } from '../../../tree/public_api'; - -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxGridExcelStyleFilteringComponent, - IgxExcelStyleHeaderComponent, - IgxExcelStyleSortingComponent, - IgxExcelStylePinningComponent, - IgxExcelStyleHidingComponent, - IgxExcelStyleSelectingComponent, - IgxExcelStyleClearFiltersComponent, - IgxExcelStyleConditionalFilterComponent, - IgxExcelStyleMovingComponent, - IgxExcelStyleSearchComponent, - IgxExcelStyleCustomDialogComponent, - IgxExcelStyleDefaultExpressionComponent, - IgxExcelStyleDateExpressionComponent, - IgxExcelStyleColumnOperationsTemplateDirective, - IgxExcelStyleFilterOperationsTemplateDirective, - IgxExcelStyleLoadingValuesTemplateDirective - ], - exports: [ - IgxGridExcelStyleFilteringComponent, - IgxExcelStyleColumnOperationsTemplateDirective, - IgxExcelStyleFilterOperationsTemplateDirective, - IgxExcelStyleLoadingValuesTemplateDirective, - IgxExcelStyleDateExpressionComponent, - IgxExcelStyleHeaderComponent, - IgxExcelStyleSortingComponent, - IgxExcelStylePinningComponent, - IgxExcelStyleHidingComponent, - IgxExcelStyleSelectingComponent, - IgxExcelStyleClearFiltersComponent, - IgxExcelStyleConditionalFilterComponent, - IgxExcelStyleMovingComponent, - IgxExcelStyleSearchComponent, - IgxExcelStyleHeaderComponent - ], - imports: [ - CommonModule, - FormsModule, - IgxGridPipesModule, - IgxButtonModule, - IgxButtonGroupModule, - IgxDatePickerModule, - IgxTimePickerModule, - IgxIconModule, - IgxRippleModule, - IgxInputGroupModule, - IgxDropDownModule, - IgxForOfModule, - IgxCheckboxModule, - IgxFilterModule, - IgxToggleModule, - IgxListModule, - IgxProgressBarModule, - IgxSelectModule, - IgxFocusModule, - IgxDateTimeEditorModule, - IgxTreeModule - ], - providers: [ - IgxSelectionAPIService - ] -}) -export class IgxGridExcelStyleFilteringModule { } diff --git a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/public_api.ts b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/public_api.ts index 4de549833cf..21c7519c4d4 100644 --- a/projects/igniteui-angular/src/lib/grids/filtering/excel-style/public_api.ts +++ b/projects/igniteui-angular/src/lib/grids/filtering/excel-style/public_api.ts @@ -1,3 +1,14 @@ +import { IgxExcelStyleClearFiltersComponent } from './excel-style-clear-filters.component'; +import { IgxExcelStyleConditionalFilterComponent } from './excel-style-conditional-filter.component'; +import { IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective, IgxGridExcelStyleFilteringComponent } from './excel-style-filtering.component'; +import { IgxExcelStyleHeaderComponent } from './excel-style-header.component'; +import { IgxExcelStyleHidingComponent } from './excel-style-hiding.component'; +import { IgxExcelStyleMovingComponent } from './excel-style-moving.component'; +import { IgxExcelStylePinningComponent } from './excel-style-pinning.component'; +import { IgxExcelStyleLoadingValuesTemplateDirective, IgxExcelStyleSearchComponent } from './excel-style-search.component'; +import { IgxExcelStyleSelectingComponent } from './excel-style-selecting.component'; +import { IgxExcelStyleSortingComponent } from './excel-style-sorting.component'; + export * from './excel-style-clear-filters.component'; export * from './excel-style-conditional-filter.component'; export * from './excel-style-header.component'; @@ -7,5 +18,22 @@ export * from './excel-style-pinning.component'; export * from './excel-style-search.component'; export * from './excel-style-selecting.component'; export * from './excel-style-sorting.component'; -export * from './grid.excel-style-filtering.component'; +export * from './excel-style-filtering.component'; export * from './excel-style-date-expression.component'; + +/* NOTE: Grid excel-style filtering directives collection for ease-of-use import in standalone components scenario */ +export const IGX_GRID_EXCEL_STYLE_FILTER_DIRECTIVES = [ + IgxGridExcelStyleFilteringComponent, + IgxExcelStyleHeaderComponent, + IgxExcelStyleSortingComponent, + IgxExcelStylePinningComponent, + IgxExcelStyleHidingComponent, + IgxExcelStyleSelectingComponent, + IgxExcelStyleClearFiltersComponent, + IgxExcelStyleConditionalFilterComponent, + IgxExcelStyleMovingComponent, + IgxExcelStyleSearchComponent, + IgxExcelStyleColumnOperationsTemplateDirective, + IgxExcelStyleFilterOperationsTemplateDirective, + IgxExcelStyleLoadingValuesTemplateDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts b/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts index 1bdbf017c90..f1e5cb517a2 100644 --- a/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts @@ -43,7 +43,7 @@ import { IGroupByRecord } from '../data-operations/groupby-record.interface'; import { IForOfDataChangingEventArgs, IgxGridForOfDirective } from '../directives/for-of/for_of.directive'; import { IgxTextHighlightDirective } from '../directives/text-highlight/text-highlight.directive'; import { ISummaryExpression } from './summaries/grid-summary'; -import { RowEditPositionStrategy, IPinningConfig } from './grid.common'; +import { RowEditPositionStrategy } from './grid.common'; import { IgxGridToolbarComponent } from './toolbar/grid-toolbar.component'; import { IgxRowDirective } from './row.directive'; import { IgxOverlayOutletDirective, IgxToggleDirective } from '../directives/toggle/toggle.directive'; @@ -60,7 +60,7 @@ import { IgxRowEditActionsDirective } from './grid.rowEdit.directive'; import { IgxGridNavigationService, IActiveNode } from './grid-navigation.service'; -import { IDisplayDensityOptions, DisplayDensityToken, DisplayDensityBase, DisplayDensity } from '../core/displayDensity'; +import { IDisplayDensityOptions, DisplayDensityToken, DisplayDensityBase, DisplayDensity } from '../core/density'; import { IgxFilteringService } from './filtering/grid-filtering.service'; import { IgxGridFilteringCellComponent } from './filtering/base/grid-filtering-cell.component'; import { WatchChanges } from './watch-changes'; @@ -141,7 +141,8 @@ import { IgxRowSelectorTemplateContext, IGX_GRID_SERVICE_BASE, ISizeInfo, - RowType + RowType, + IPinningConfig } from './common/grid.interface'; import { DropPosition } from './moving/moving.service'; import { IgxHeadSelectorDirective, IgxRowSelectorDirective } from './selection/row-selectors'; @@ -167,7 +168,7 @@ import { AbsoluteScrollStrategy } from '../services/overlay/scroll/absolute-scro import { Action, StateUpdateEvent, TransactionEventOrigin } from '../services/transaction/transaction'; import { ISortingExpression } from '../data-operations/sorting-strategy'; import { IGridSortingStrategy } from './common/strategy'; -import { IgxGridExcelStyleFilteringComponent } from './filtering/excel-style/grid.excel-style-filtering.component'; +import { IgxGridExcelStyleFilteringComponent } from './filtering/excel-style/excel-style-filtering.component'; import { IgxGridHeaderComponent } from './headers/grid-header.component'; import { IgxGridFilteringRowComponent } from './filtering/base/grid-filtering-row.component'; import { DefaultDataCloneStrategy, IDataCloneStrategy } from '../data-operations/data-clone-strategy'; @@ -1967,6 +1968,11 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements return this._rowDrag && this.hasVisibleColumns; } + public set rowDraggable(val: boolean) { + this._rowDrag = val; + this.notifyChanges(true); + } + /** * Gets/Sets the trigger for validators used when editing the grid. * @@ -1978,12 +1984,6 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements @Input() public validationTrigger: GridValidationTrigger = 'change'; - - public set rowDraggable(val: boolean) { - this._rowDrag = val; - this.notifyChanges(true); - } - /** * @hidden * @internal @@ -2153,7 +2153,7 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements public set isLoading(value: boolean) { if (this._isLoading !== value) { this._isLoading = value; - if (!!this.data) { + if (this.data) { this.evaluateLoadingState(); } } @@ -5970,7 +5970,7 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements let selectedData; if (event.type === 'copy') { selectedData = this.getSelectedData(this.clipboardOptions.copyFormatters, this.clipboardOptions.copyHeaders); - }; + } let data = []; let result; @@ -6455,7 +6455,7 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements } } - protected beginAddRowForIndex(index: number, asChild: boolean = false) { + protected beginAddRowForIndex(index: number, asChild = false) { // TODO is row from rowList suitable for enterAddRowMode const row = index == null ? null : this.rowList.find(r => r.index === index); @@ -6521,7 +6521,7 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements this.summaryService.clearSummaryCache(); this.pipeTrigger++; this.notifyChanges(); - }; + } protected writeToData(rowIndex: number, value: any) { mergeObjects(this.gridAPI.get_all_data()[rowIndex], value); @@ -7243,7 +7243,7 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements if (this.selectionService.selection.size > 0) { if (expansionRowIndexes.length > 0) { for (const [key, value] of this.selectionService.selection.entries()) { - let updatedKey = key; + const updatedKey = key; let subtract = 0; expansionRowIndexes.forEach((row) => { if (updatedKey > Number(row)) { diff --git a/projects/igniteui-angular/src/lib/grids/grid-common.module.ts b/projects/igniteui-angular/src/lib/grids/grid-common.module.ts deleted file mode 100644 index 1d9fb144468..00000000000 --- a/projects/igniteui-angular/src/lib/grids/grid-common.module.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { NgModule } from '@angular/core'; -import { IgxGridCellComponent } from './cell.component'; -import { IgxGridFooterComponent } from './grid-footer/grid-footer.component'; -import { - IgxGridBodyDirective -} from './grid.common'; -import { - IgxRowAddTextDirective, - IgxRowEditTemplateDirective, - IgxRowEditActionsDirective, - IgxRowEditTextDirective, - IgxRowEditTabStopDirective -} from './grid.rowEdit.directive'; -import { IgxPaginatorModule } from '../paginator/public_api'; -import { IgxGridPipesModule } from './common/grid-pipes.module'; -import { IgxGridExcelStyleFilteringModule } from './filtering/excel-style/grid.excel-style-filtering.module'; -import { IgxRowDragModule } from './row-drag.directive'; -import { IgxAdvancedFilteringDialogComponent } from './filtering/advanced-filtering/advanced-filtering-dialog.component'; -import { IgxGridSelectionModule } from './selection/selection.module'; -import { IgxGridResizingModule } from './resizing/resize.module'; -import { IgxColumnMovingModule } from './moving/moving.module'; -import { IgxGridSharedModules } from './common/shared.module'; -import { IgxGridSummaryModule } from './summaries/summary.module'; -import { IgxGridToolbarModule } from './toolbar/toolbar.module'; -import { IgxColumnActionsModule } from './column-actions/column-actions.module'; -import { IgxGridColumnModule } from './columns/column.module'; -import { IgxGridHeadersModule } from './headers/headers.module'; -import { IgxGridFilteringModule } from './filtering/base/filtering.module'; -import { IgxRowDirective } from './row.directive'; -import { - IgxExcelStyleHeaderIconDirective, - IgxSortAscendingHeaderIconDirective, - IgxSortDescendingHeaderIconDirective, - IgxSortHeaderIconDirective, - IgxGroupAreaDropDirective, - IgxHeaderCollapseIndicatorDirective, - IgxHeaderExpandIndicatorDirective, - IgxRowCollapsedIndicatorDirective, - IgxRowExpandedIndicatorDirective -} from './grid/grid.directives'; -export * from './common/grid-pipes.module'; -import { IgxChipsModule } from '../chips/chips.module'; -import { IgxGroupByMetaPipe } from './grouping/group-by-area.directive'; -import { IgxQueryBuilderModule } from '../query-builder/query-builder.component'; -import { ReactiveFormsModule } from '@angular/forms'; -import { IgxTooltipModule } from '../directives/tooltip'; - -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxRowDirective, - IgxGridCellComponent, - IgxRowAddTextDirective, - IgxRowEditTemplateDirective, - IgxRowEditActionsDirective, - IgxRowEditTextDirective, - IgxRowEditTabStopDirective, - IgxGridBodyDirective, - IgxGridFooterComponent, - IgxAdvancedFilteringDialogComponent, - IgxRowExpandedIndicatorDirective, - IgxRowCollapsedIndicatorDirective, - IgxHeaderExpandIndicatorDirective, - IgxHeaderCollapseIndicatorDirective, - IgxExcelStyleHeaderIconDirective, - IgxSortAscendingHeaderIconDirective, - IgxSortDescendingHeaderIconDirective, - IgxSortHeaderIconDirective, - IgxGroupAreaDropDirective, - IgxGroupByMetaPipe - ], - exports: [ - IgxGridCellComponent, - IgxRowAddTextDirective, - IgxRowEditTemplateDirective, - IgxRowEditActionsDirective, - IgxRowEditTextDirective, - IgxRowEditTabStopDirective, - IgxGridBodyDirective, - IgxColumnActionsModule, - IgxGridColumnModule, - IgxGridHeadersModule, - IgxGridPipesModule, - IgxGridFilteringModule, - IgxGridExcelStyleFilteringModule, - IgxRowDragModule, - IgxPaginatorModule, - IgxGridFooterComponent, - IgxGridResizingModule, - IgxColumnMovingModule, - IgxGridSelectionModule, - IgxGridSummaryModule, - IgxGridToolbarModule, - IgxAdvancedFilteringDialogComponent, - IgxGridSharedModules, - IgxRowExpandedIndicatorDirective, - IgxRowCollapsedIndicatorDirective, - IgxHeaderExpandIndicatorDirective, - IgxHeaderCollapseIndicatorDirective, - IgxExcelStyleHeaderIconDirective, - IgxSortAscendingHeaderIconDirective, - IgxSortDescendingHeaderIconDirective, - IgxSortHeaderIconDirective, - IgxGroupAreaDropDirective, - IgxGroupByMetaPipe - ], - imports: [ - IgxGridColumnModule, - IgxGridHeadersModule, - IgxColumnMovingModule, - IgxGridResizingModule, - IgxGridSelectionModule, - IgxGridSummaryModule, - IgxGridToolbarModule, - IgxColumnActionsModule, - IgxGridPipesModule, - IgxGridFilteringModule, - IgxGridExcelStyleFilteringModule, - IgxRowDragModule, - IgxPaginatorModule, - IgxGridSharedModules, - IgxChipsModule, - IgxQueryBuilderModule, - IgxTooltipModule, - ReactiveFormsModule - ] -}) -export class IgxGridCommonModule { } diff --git a/projects/igniteui-angular/src/lib/grids/grid-footer/grid-footer.component.ts b/projects/igniteui-angular/src/lib/grids/grid-footer/grid-footer.component.ts index 21f31745219..4e49030561c 100644 --- a/projects/igniteui-angular/src/lib/grids/grid-footer/grid-footer.component.ts +++ b/projects/igniteui-angular/src/lib/grids/grid-footer/grid-footer.component.ts @@ -2,7 +2,8 @@ import { Component } from '@angular/core'; @Component({ selector: 'igx-grid-footer', - template: '' + template: '', + standalone: true }) export class IgxGridFooterComponent { } diff --git a/projects/igniteui-angular/src/lib/grids/grid-public-cell.ts b/projects/igniteui-angular/src/lib/grids/grid-public-cell.ts index 0d8dc200ad5..a9ca9d9a13c 100644 --- a/projects/igniteui-angular/src/lib/grids/grid-public-cell.ts +++ b/projects/igniteui-angular/src/lib/grids/grid-public-cell.ts @@ -74,19 +74,6 @@ export class IgxGridCell implements CellType { } } - /** - * Gets the validation status and errors, if any. - * ```typescript - * let validation = this.cell.validation; - * let errors = validation.errors; - * ``` - */ - - public get validation(): IGridValidationState { - const form = this.grid.validation.getFormControl(this.row.key, this.column.field); - return { status: form?.status as ValidationStatus || 'VALID', errors: form?.errors } as const; - } - /** * Sets the current edit value while a cell is in edit mode. * Only for cell editing mode. @@ -102,6 +89,19 @@ export class IgxGridCell implements CellType { } } + /** + * Gets the validation status and errors, if any. + * ```typescript + * let validation = this.cell.validation; + * let errors = validation.errors; + * ``` + */ + + public get validation(): IGridValidationState { + const form = this.grid.validation.getFormControl(this.row.key, this.column.field); + return { status: form?.status as ValidationStatus || 'VALID', errors: form?.errors } as const; + } + /** * Returns whether the cell is editable.. * diff --git a/projects/igniteui-angular/src/lib/grids/grid.common.ts b/projects/igniteui-angular/src/lib/grids/grid.common.ts index f46bc95d874..be30b3d87ea 100644 --- a/projects/igniteui-angular/src/lib/grids/grid.common.ts +++ b/projects/igniteui-angular/src/lib/grids/grid.common.ts @@ -3,12 +3,12 @@ import { ConnectedPositioningStrategy } from '../services/public_api'; import { VerticalAlignment, PositionSettings, Point } from '../services/overlay/utilities'; import { scaleInVerBottom, scaleInVerTop } from '../animations/main'; import { IgxForOfSyncService } from '../directives/for-of/for_of.sync.service'; -import { ColumnPinningPosition, RowPinningPosition } from './common/enums'; @Directive({ selector: '[igxGridBody]', - providers: [IgxForOfSyncService] + providers: [IgxForOfSyncService], + standalone: true }) export class IgxGridBodyDirective {} @@ -20,14 +20,6 @@ export interface RowEditPositionSettings extends PositionSettings { container?: HTMLElement; } -/** - * An interface describing settings for row/column pinning position. - */ -export interface IPinningConfig { - columns?: ColumnPinningPosition; - rows?: RowPinningPosition; -} - /** * @hidden */ diff --git a/projects/igniteui-angular/src/lib/grids/grid.rowEdit.directive.ts b/projects/igniteui-angular/src/lib/grids/grid.rowEdit.directive.ts index 6aeb2a731ea..f67b109e4b1 100644 --- a/projects/igniteui-angular/src/lib/grids/grid.rowEdit.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/grid.rowEdit.directive.ts @@ -3,53 +3,58 @@ import { GridType, IgxGridEmptyTemplateContext, IgxGridRowEditActionsTemplateCon /** @hidden @internal */ @Directive({ - selector: '[igxRowEdit]' + selector: '[igxRowEdit]', + standalone: true }) export class IgxRowEditTemplateDirective { public static ngTemplateContextGuard(_directive: IgxRowEditTemplateDirective, context: unknown): context is IgxGridRowEditTemplateContext { return true; - }; + } } /** @hidden @internal */ @Directive({ - selector: '[igxRowEditText]' + selector: '[igxRowEditText]', + standalone: true }) export class IgxRowEditTextDirective { public static ngTemplateContextGuard(_directive: IgxRowEditTextDirective, context: unknown): context is IgxGridRowEditTextTemplateContext { return true; - }; + } } /** @hidden @internal */ @Directive({ - selector: '[igxRowAddText]' + selector: '[igxRowAddText]', + standalone: true }) export class IgxRowAddTextDirective { public static ngTemplateContextGuard(_directive: IgxRowAddTextDirective, context: unknown): context is IgxGridEmptyTemplateContext { return true; - }; + } } /** @hidden @internal */ @Directive({ - selector: '[igxRowEditActions]' + selector: '[igxRowEditActions]', + standalone: true }) export class IgxRowEditActionsDirective { public static ngTemplateContextGuard(_directive: IgxRowEditActionsDirective, context: unknown): context is IgxGridRowEditActionsTemplateContext { return true; - }; + } } // TODO: Refactor circular ref, deps and logic /** @hidden @internal */ @Directive({ - selector: `[igxRowEditTabStop]` + selector: `[igxRowEditTabStop]`, + standalone: true }) export class IgxRowEditTabStopDirective { private currentCellIndex: number; diff --git a/projects/igniteui-angular/src/lib/grids/grid/cell.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/cell.spec.ts index 601081d8ac9..0c979595afa 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/cell.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/cell.spec.ts @@ -1,7 +1,7 @@ import { Component, ViewChild, OnInit, NgZone, DebugElement } from '@angular/core'; import { TestBed, fakeAsync } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxColumnComponent, IgxGridComponent, IgxGridModule, IGridCellEventArgs } from './public_api'; +import { IgxGridComponent } from './public_api'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; @@ -12,6 +12,8 @@ import { VirtualGridComponent, NoScrollsComponent, import { GridFunctions } from '../../test-utils/grid-functions.spec'; import { TestNgZone } from '../../test-utils/helper-utils.spec'; import { CellType } from '../common/grid.interface'; +import { NgFor } from '@angular/common'; +import { IGridCellEventArgs, IgxColumnComponent } from '../public_api'; describe('IgxGrid - Cell component #grid', () => { @@ -24,10 +26,7 @@ describe('IgxGrid - Cell component #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - NoScrollsComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [NoopAnimationsModule, NoScrollsComponent] }); })); @@ -160,11 +159,8 @@ describe('IgxGrid - Cell component #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - VirtualGridComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], - providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] + imports: [NoopAnimationsModule, VirtualGridComponent], + providers: [{ provide: NgZone, useFactory: () => new TestNgZone() }] }); })); @@ -276,10 +272,7 @@ describe('IgxGrid - Cell component #grid', () => { describe('iOS tests', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - NoScrollsComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [NoopAnimationsModule, NoScrollsComponent] }); })); @@ -335,10 +328,7 @@ describe('IgxGrid - Cell component #grid', () => { describe('No column widths', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - NoColumnWidthGridComponent - ], - imports: [NoopAnimationsModule, IgxGridModule] + imports: [NoopAnimationsModule, NoColumnWidthGridComponent] }); })); @@ -356,10 +346,7 @@ describe('IgxGrid - Cell component #grid', () => { describe('Cells styles', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - ConditionalCellStyleTestComponent - ], - imports: [NoopAnimationsModule, IgxGridModule] + imports: [NoopAnimationsModule, ConditionalCellStyleTestComponent] }); })); @@ -389,10 +376,7 @@ describe('IgxGrid - Cell component #grid', () => { describe('Cell properties', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridDateTimeColumnComponent - ], - imports: [NoopAnimationsModule, IgxGridModule] + imports: [NoopAnimationsModule, IgxGridDateTimeColumnComponent] }); })); @@ -435,6 +419,8 @@ describe('IgxGrid - Cell component #grid', () => { `, styleUrls: ['../../test-utils/grid-cell-style-testing.scss'], + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class ConditionalCellStyleTestComponent implements OnInit { @ViewChild('grid', { static: true }) public grid: IgxGridComponent; diff --git a/projects/igniteui-angular/src/lib/grids/grid/column-group.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/column-group.spec.ts index 317078f8ad0..c30122c4901 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/column-group.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/column-group.spec.ts @@ -1,5 +1,4 @@ import { TestBed, ComponentFixture, waitForAsync, fakeAsync, tick } from '@angular/core/testing'; -import { IgxGridModule } from './grid.module'; import { IgxGridComponent } from './grid.component'; import { DebugElement, QueryList } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -34,7 +33,8 @@ describe('IgxGrid - multi-column headers #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, OneGroupOneColGridComponent, OneGroupThreeColsGridComponent, BlueWhaleGridComponent, @@ -48,10 +48,6 @@ describe('IgxGrid - multi-column headers #grid', () => { DynamicGridComponent, NestedColGroupsWithTemplatesGridComponent, DynamicColGroupsGridComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule ] }) .compileComponents(); diff --git a/projects/igniteui-angular/src/lib/grids/grid/column-hiding.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/column-hiding.spec.ts index 77bb3cbbcd0..cf8e1a00c68 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/column-hiding.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/column-hiding.spec.ts @@ -2,7 +2,6 @@ import { DebugElement } from '@angular/core'; import { TestBed, fakeAsync, tick, ComponentFixture } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxGridModule } from './public_api'; import { IgxGridComponent } from './grid.component'; import { ColumnHidingTestComponent, ColumnGroupsHidingTestComponent } from '../../test-utils/grid-base-components.spec'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; @@ -15,7 +14,6 @@ import { SortingDirection } from '../../data-operations/sorting-strategy'; describe('Column Hiding UI #grid', () => { - let fix: ComponentFixture; let grid: IgxGridComponent; let columnChooser: IgxColumnActionsComponent; @@ -27,13 +25,10 @@ describe('Column Hiding UI #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - ColumnHidingTestComponent, - ColumnGroupsHidingTestComponent - ], imports: [ NoopAnimationsModule, - IgxGridModule + ColumnHidingTestComponent, + ColumnGroupsHidingTestComponent ] }); })); @@ -528,7 +523,7 @@ describe('Column Hiding UI #grid', () => { let fixEl = fix.nativeElement; let gridEl = grid.nativeElement; let tHeadItems = fixEl.querySelector('igx-grid-header-group'); let gridRows = fixEl.querySelector('igx-grid-row'); - let paging = fixEl.querySelector('.igx-paginator'); + const paging = fixEl.querySelector('.igx-paginator'); let rowSelectors = gridEl.querySelector('.igx-grid__cbx-padding > igx-checkbox'); let dragIndicators = gridEl.querySelector('.igx-grid__drag-indicator'); let verticalScrollBar = gridEl.querySelector('.igx-grid__tbody-scrollbar[hidden]'); diff --git a/projects/igniteui-angular/src/lib/grids/grid/column-moving.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/column-moving.spec.ts index df42bd386b0..aa59c8bc603 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/column-moving.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/column-moving.spec.ts @@ -3,7 +3,6 @@ import { TestBed, fakeAsync, tick } from '@angular/core/testing'; import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxGridModule } from './public_api'; import { IgxColumnGroupComponent } from '../columns/column-group.component'; import { IgxInputDirective } from '../../directives/input/input.directive'; import { @@ -16,8 +15,8 @@ import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { IgxGridComponent } from './grid.component'; import { GridSelectionFunctions, GridFunctions } from '../../test-utils/grid-functions.spec'; -import { IgxColumnComponent } from '../tree-grid/public_api'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IgxColumnComponent } from '../public_api'; describe('IgxGrid - Column Moving #grid', () => { const CELL_CSS_CLASS = '.igx-grid__td'; @@ -28,16 +27,13 @@ describe('IgxGrid - Column Moving #grid', () => { let fixture; let grid: IgxGridComponent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + FormsModule, + NoopAnimationsModule, MovableColumnsComponent, MovableTemplatedColumnsComponent, MovableColumnsLargeComponent, MultiColumnHeadersComponent - ], - imports: [ - FormsModule, - NoopAnimationsModule, - IgxGridModule ] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/column-pinning.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/column-pinning.spec.ts index 41cf69e7d6c..f710cf93840 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/column-pinning.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/column-pinning.spec.ts @@ -3,7 +3,6 @@ import { DebugElement } from '@angular/core'; import { TestBed, waitForAsync, ComponentFixture } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './public_api'; import { ColumnPinningTestComponent, ColumnGroupsPinningTestComponent, @@ -28,14 +27,11 @@ describe('Column Pinning UI #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, ColumnPinningTestComponent, ColumnGroupsPinningTestComponent, ColumnPinningWithTemplateTestComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule ] }).compileComponents(); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/column-resizing.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/column-resizing.spec.ts index 1e637f9fa33..ea48663b24f 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/column-resizing.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/column-resizing.spec.ts @@ -2,16 +2,18 @@ import { Component, DebugElement, OnInit, ViewChild } from '@angular/core'; import { TestBed, fakeAsync, tick, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxAvatarModule } from '../../avatar/avatar.component'; import { Calendar } from '../../calendar/public_api'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule, IColumnResizeEventArgs } from './public_api'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { GridTemplateStrings, ColumnDefinitions } from '../../test-utils/template-strings.spec'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { MultiColumnHeadersComponent } from '../../test-utils/grid-samples.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { GridFunctions } from '../../test-utils/grid-functions.spec'; +import { IgxCellHeaderTemplateDirective, IgxCellTemplateDirective } from '../columns/templates.directive'; +import { NgFor } from '@angular/common'; +import { IgxAvatarComponent } from '../../avatar/avatar.component'; +import { IColumnResizeEventArgs, IgxColumnComponent } from '../public_api'; describe('IgxGrid - Deferred Column Resizing #grid', () => { @@ -19,19 +21,15 @@ describe('IgxGrid - Deferred Column Resizing #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + MultiColumnHeadersComponent, + NoopAnimationsModule, ResizableColumnsComponent, GridFeaturesComponent, LargePinnedColGridComponent, NullColumnsComponent, - MultiColumnHeadersComponent, ColGridComponent, ColPercentageGridComponent - ], - imports: [ - IgxAvatarModule, - NoopAnimationsModule, - IgxGridModule ] }); })); @@ -870,7 +868,9 @@ describe('IgxGrid - Deferred Column Resizing #grid', () => { }); @Component({ - template: GridTemplateStrings.declareGrid(`width="500px" height="300px"`, ``, ColumnDefinitions.resizableThreeOfFour) + template: GridTemplateStrings.declareGrid(`width="500px" height="300px"`, ``, ColumnDefinitions.resizableThreeOfFour), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ResizableColumnsComponent { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; @@ -879,8 +879,7 @@ export class ResizableColumnsComponent { } @Component({ - template: GridTemplateStrings.declareGrid(`width="618px" height="600px"`, ``, - ` + template: GridTemplateStrings.declareGrid(`width="618px" height="600px"`, ``, ` @@ -892,8 +891,9 @@ export class ResizableColumnsComponent { - ` - ) + `), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective] }) export class LargePinnedColGridComponent implements OnInit { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; @@ -913,7 +913,9 @@ export class LargePinnedColGridComponent implements OnInit { } @Component({ - template: GridTemplateStrings.declareGrid(``, ``, ColumnDefinitions.gridFeatures) + template: GridTemplateStrings.declareGrid(``, ``, ColumnDefinitions.gridFeatures), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxCellHeaderTemplateDirective, IgxAvatarComponent] }) export class GridFeaturesComponent { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; @@ -925,7 +927,9 @@ export class GridFeaturesComponent { } @Component({ - template: GridTemplateStrings.declareGrid(`height="800px"`, ``, ColumnDefinitions.resizableColsComponent) + template: GridTemplateStrings.declareGrid(`height="800px"`, ``, ColumnDefinitions.resizableColsComponent), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class NullColumnsComponent implements OnInit { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; @@ -952,14 +956,14 @@ export class NullColumnsComponent implements OnInit { } @Component({ - template: GridTemplateStrings.declareGrid(`width="400px" height="600px" [allowFiltering]="true"`, ``, - ` + template: GridTemplateStrings.declareGrid(`width="400px" height="600px" [allowFiltering]="true"`, ``, ` - ` - ) + `), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ColGridComponent implements OnInit { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; @@ -972,12 +976,12 @@ export class ColGridComponent implements OnInit { } @Component({ - template: GridTemplateStrings.declareGrid(`width="400px" height="600px" [allowFiltering]="true"`, ``, - ` + template: GridTemplateStrings.declareGrid(`width="400px" height="600px" [allowFiltering]="true"`, ``, ` - ` - ) + `), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ColPercentageGridComponent implements OnInit { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; diff --git a/projects/igniteui-angular/src/lib/grids/grid/column-selection.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/column-selection.spec.ts index 1143b7843ae..e8ad627d92a 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/column-selection.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/column-selection.spec.ts @@ -1,6 +1,5 @@ import { TestBed, ComponentFixture, fakeAsync, tick } from '@angular/core/testing'; import { configureTestSuite } from '../../test-utils/configure-suite'; -import { IgxGridModule } from './grid.module'; import { IgxGridComponent } from './grid.component'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { ProductsComponent, ColumnSelectionGroupTestComponent } from '../../test-utils/grid-samples.spec'; @@ -34,11 +33,7 @@ describe('IgxGrid - Column Selection #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - ProductsComponent, - ColumnSelectionGroupTestComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + imports: [ProductsComponent, ColumnSelectionGroupTestComponent, NoopAnimationsModule] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/column.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/column.spec.ts index ff06ad3d60e..ae893fa3219 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/column.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/column.spec.ts @@ -2,7 +2,6 @@ import { Component, DebugElement, TemplateRef, ViewChild } from '@angular/core'; import { TestBed, fakeAsync, tick, waitForAsync, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './public_api'; import { GridTemplateStrings, ColumnDefinitions } from '../../test-utils/template-strings.spec'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { @@ -18,11 +17,14 @@ import { configureTestSuite } from '../../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; -import { getLocaleCurrencySymbol } from '@angular/common'; +import { getLocaleCurrencySymbol, NgFor } from '@angular/common'; import { GridFunctions, GridSummaryFunctions } from '../../test-utils/grid-functions.spec'; import { IgxDateTimeEditorDirective } from '../../directives/date-time-editor/date-time-editor.directive'; import { SortingDirection } from '../../data-operations/sorting-strategy'; import { GridColumnDataType } from '../../data-operations/data-util'; +import { IgxColumnComponent } from '../public_api'; +import { IgxButtonDirective } from '../../directives/button/button.directive'; +import { IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxSummaryTemplateDirective } from '../columns/templates.directive'; describe('IgxGrid - Column properties #grid', () => { @@ -31,22 +33,22 @@ describe('IgxGrid - Column properties #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - ColumnsFromIterableComponent, - TemplatedColumnsComponent, - TemplatedInputColumnsComponent, - TemplatedContextInputColumnsComponent, + imports: [ ColumnCellFormatterComponent, - ColumnHaederClassesComponent, ColumnHiddenFromMarkupComponent, DynamicColumnsComponent, GridAddColumnComponent, IgxGridCurrencyColumnComponent, IgxGridPercentColumnComponent, IgxGridDateTimeColumnComponent, + NoopAnimationsModule, + ColumnsFromIterableComponent, + TemplatedColumnsComponent, + TemplatedInputColumnsComponent, + TemplatedContextInputColumnsComponent, + ColumnHaederClassesComponent, ResizableColumnsComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + ] }); })); @@ -1153,7 +1155,7 @@ describe('IgxGrid - Column properties #grid', () => { describe('Data type image column tests', () => { let fix: ComponentFixture; let grid: IgxGridComponent; - let dataWithImages = [{ + const dataWithImages = [{ avatar: 'assets/images/avatar/1.jpg', phone: '770-504-2217', text: 'Terrance Orta', @@ -1201,7 +1203,7 @@ describe('IgxGrid - Column properties #grid', () => { })); it('should initialize correctly with autoGenerate and image data', () => { - let column = grid.getColumnByName('avatar'); + const column = grid.getColumnByName('avatar'); expect(column.dataType).toBe(GridColumnDataType.Image); expect(column.sortable).toBeFalse(); expect(column.groupable).toBeFalse(); @@ -1209,7 +1211,7 @@ describe('IgxGrid - Column properties #grid', () => { expect(column.editable).toBeFalse(); expect(column.hasSummary).toBeFalse(); - let cell = column._cells[0]; + const cell = column._cells[0]; expect(cell.nativeElement.firstElementChild.tagName).toBe('IMG'); expect(cell.nativeElement.firstElementChild.getAttribute('src')).toBe('assets/images/avatar/1.jpg'); expect(cell.nativeElement.firstElementChild.getAttribute('alt')).toBe('1'); @@ -1402,7 +1404,9 @@ describe('IgxGrid - Column properties #grid', () => { }); @Component({ - template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.iterableComponent) + template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.iterableComponent), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class ColumnsFromIterableComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1423,11 +1427,13 @@ interface IColumnConfig { @Component({ template: GridTemplateStrings.declareGrid(`height="800px" width="400px"`, ``, ColumnDefinitions.resizableColsComponent) + - ` + ` - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor, IgxButtonDirective] }) export class ResizableColumnsComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1455,7 +1461,9 @@ export class ResizableColumnsComponent { New summary text - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellFooterTemplateDirective, IgxSummaryTemplateDirective] }) export class TemplatedColumnsComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1497,7 +1505,9 @@ export class TemplatedColumnsComponent { {{ summaryResults[0].label }}: {{ summaryResults[0].summaryResult }} - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor, IgxSummaryTemplateDirective] }) export class TemplatedInputColumnsComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1522,7 +1532,9 @@ export class TemplatedInputColumnsComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective] }) export class TemplatedContextInputColumnsComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1545,7 +1557,9 @@ export class TemplatedContextInputColumnsComponent { `, - styles: [`.headerAlignSyle {text-align: right !important;}`] + styles: [`.headerAlignSyle {text-align: right !important;}`], + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ColumnHaederClassesComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/grids/grid/expandable-cell.component.ts b/projects/igniteui-angular/src/lib/grids/grid/expandable-cell.component.ts index 51e5ad251b3..782b8b7133a 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/expandable-cell.component.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/expandable-cell.component.ts @@ -12,17 +12,35 @@ import { } from '@angular/core'; import { IgxGridCellComponent } from '../cell.component'; import { PlatformUtil } from '../../core/utils'; -import { DOCUMENT } from '@angular/common'; +import { DOCUMENT, NgIf, NgClass, NgTemplateOutlet, DecimalPipe, PercentPipe, CurrencyPipe, DatePipe } from '@angular/common'; import { IgxGridSelectionService } from '../selection/selection.service'; import { HammerGesturesManager } from '../../core/touch'; import { GridType, IGX_GRID_BASE } from '../common/grid.interface'; import { IgxOverlayService } from '../../services/public_api'; +import { IgxGridCellImageAltPipe, IgxStringReplacePipe, IgxColumnFormatterPipe } from '../common/pipes'; +import { IgxTooltipDirective } from '../../directives/tooltip/tooltip.directive'; +import { IgxTooltipTargetDirective } from '../../directives/tooltip/tooltip-target.directive'; +import { IgxSuffixDirective } from '../../directives/suffix/suffix.directive'; +import { IgxPrefixDirective } from '../../directives/prefix/prefix.directive'; +import { IgxDateTimeEditorDirective } from '../../directives/date-time-editor/date-time-editor.directive'; +import { IgxTimePickerComponent } from '../../time-picker/time-picker.component'; +import { IgxDatePickerComponent } from '../../date-picker/date-picker.component'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxFocusDirective } from '../../directives/focus/focus.directive'; +import { IgxInputDirective } from '../../directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../input-group/input-group.component'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxTextHighlightDirective } from '../../directives/text-highlight/text-highlight.directive'; +import { IgxChipComponent } from '../../chips/chip.component'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-expandable-grid-cell', templateUrl: 'expandable-cell.component.html', - providers: [HammerGesturesManager] + providers: [HammerGesturesManager], + standalone: true, + imports: [NgIf, IgxChipComponent, IgxTextHighlightDirective, IgxIconComponent, NgClass, FormsModule, ReactiveFormsModule, IgxInputGroupComponent, IgxInputDirective, IgxFocusDirective, IgxCheckboxComponent, IgxDatePickerComponent, IgxTimePickerComponent, IgxDateTimeEditorDirective, IgxPrefixDirective, IgxSuffixDirective, NgTemplateOutlet, IgxTooltipTargetDirective, IgxTooltipDirective, IgxGridCellImageAltPipe, IgxStringReplacePipe, IgxColumnFormatterPipe, DecimalPipe, PercentPipe, CurrencyPipe, DatePipe] }) export class IgxGridExpandableCellComponent extends IgxGridCellComponent implements OnInit { /** diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-add-row.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-add-row.spec.ts index f25d73d829c..00d47b7d39d 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-add-row.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-add-row.spec.ts @@ -1,4 +1,4 @@ -import { IgxGridModule, IgxGridComponent } from './public_api'; +import { IgxGridComponent } from './public_api'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { TestBed, fakeAsync, tick } from '@angular/core/testing'; import { configureTestSuite } from '../../test-utils/configure-suite'; @@ -10,7 +10,6 @@ import { import { By } from '@angular/platform-browser'; import { IgxActionStripComponent } from '../../action-strip/action-strip.component'; -import { IgxActionStripModule } from '../../action-strip/action-strip.module'; import { DefaultGridMasterDetailComponent } from './grid.master-detail.spec'; import { ColumnLayoutTestComponent } from './grid.multi-row-layout.spec'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; @@ -41,17 +40,14 @@ describe('IgxGrid - Row Adding #grid', () => { }; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxAddRowComponent, - ColumnLayoutTestComponent, - DefaultGridMasterDetailComponent, - IgxGridRowEditingTransactionComponent, - IgxGridRowEditingDefinedColumnsComponent - ], imports: [ NoopAnimationsModule, - IgxActionStripModule, - IgxGridModule] + IgxAddRowComponent, + IgxGridRowEditingTransactionComponent, + IgxGridRowEditingDefinedColumnsComponent, + ColumnLayoutTestComponent, + DefaultGridMasterDetailComponent + ] }); })); @@ -1116,7 +1112,7 @@ describe('IgxGrid - Row Adding #grid', () => { fixture.detectChanges(); endTransition(); - let cellElem = grid.gridAPI.get_cell_by_index(10, 'ProductName'); + const cellElem = grid.gridAPI.get_cell_by_index(10, 'ProductName'); UIInteractions.simulateDoubleClickAndSelectEvent(cellElem); fixture.detectChanges(); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-editing.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-editing.spec.ts index e750bae8253..787d5867677 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-editing.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-editing.spec.ts @@ -1,7 +1,7 @@ import { TestBed, fakeAsync, tick } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxColumnComponent, IgxGridComponent, IgxGridModule, IGridEditEventArgs, IGridEditDoneEventArgs } from './public_api'; +import { IgxGridComponent } from './public_api'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition'; @@ -15,6 +15,7 @@ import { DebugElement } from '@angular/core'; import { takeUntil } from 'rxjs/operators'; import { Subject } from 'rxjs'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IGridEditDoneEventArgs, IGridEditEventArgs, IgxColumnComponent } from '../public_api'; const DEBOUNCETIME = 30; const CELL_CSS_CLASS = '.igx-grid__td'; @@ -25,13 +26,13 @@ const EDITED_CELL_CSS_CLASS = 'igx-grid__td--edited'; describe('IgxGrid - Cell Editing #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, CellEditingTestComponent, CellEditingScrollTestComponent, ColumnEditablePropertyTestComponent, SelectionWithTransactionsComponent - ], - imports: [NoopAnimationsModule, IgxGridModule] + ] }); })); @@ -309,12 +310,12 @@ describe('IgxGrid - Cell Editing #grid', () => { expect(cell.editMode).toBe(false); }); - + it('should focus the first cell when editing mode is cell', fakeAsync(() => { const cell = grid.gridAPI.get_cell_by_index(0, 'fullName'); expect(cell.editMode).toBe(false); expect(document.activeElement.nodeName).toEqual('BODY') - + // Enter cell edit mode UIInteractions.simulateDoubleClickAndSelectEvent(cell); fixture.detectChanges(); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts index 5a679386582..1f234f41101 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-cell-selection.spec.ts @@ -1,6 +1,6 @@ import { TestBed, fakeAsync, tick, ComponentFixture } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxGridModule, IgxGridComponent } from './public_api'; +import { IgxGridComponent } from './public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { SelectionWithScrollsComponent, @@ -22,13 +22,13 @@ import { IgxGridGroupByRowComponent } from './groupby-row.component'; describe('IgxGrid - Cell selection #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, SelectionWithScrollsComponent, SelectionWithTransactionsComponent, CellSelectionNoneComponent, CellSelectionSingleComponent - ], - imports: [NoopAnimationsModule, IgxGridModule] + ] }); })); @@ -239,13 +239,13 @@ describe('IgxGrid - Cell selection #grid', () => { fix.detectChanges(); expect(grid.selectedCells.length).toBe(0); - + grid.navigation.lastActiveNode = grid.navigation.activeNode; grid.navigation.activeNode = null; fix.detectChanges(); grid.tbody.nativeElement.focus(); fix.detectChanges(); - + UIInteractions.simulateClickAndSelectEvent(secondCell, false, true); fix.detectChanges(); GridSelectionFunctions.verifyCellSelected(firstCell, false); @@ -925,7 +925,7 @@ describe('IgxGrid - Cell selection #grid', () => { }); it('Should not throw an error when trying to do a drag selection that is started outside the grid', fakeAsync(() => { - let cell = grid.gridAPI.get_cell_by_index(1, 'ParentID'); + const cell = grid.gridAPI.get_cell_by_index(1, 'ParentID'); UIInteractions.simulatePointerOverElementEvent('pointerdown', document.body); tick(); @@ -2177,8 +2177,7 @@ describe('IgxGrid - Cell selection #grid', () => { grid.dataRowList.first.virtDirRow.scrollTo(2); await wait(100); fix.detectChanges(); - await GridSelectionFunctions.selectCellsRange - (fix, grid.gridAPI.get_cell_by_index(2, 'Age'), grid.gridAPI.get_cell_by_index(4, 'Name')); + await GridSelectionFunctions.selectCellsRange(fix, grid.gridAPI.get_cell_by_index(2, 'Age'), grid.gridAPI.get_cell_by_index(4, 'Name')); detect(); const selectedData = [ diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-clipboard.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-clipboard.spec.ts index 9b7c112617e..b87d90fe43a 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-clipboard.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-clipboard.spec.ts @@ -1,9 +1,7 @@ import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { - IgxGridModule, IgxGridComponent -} from './public_api'; +import { IgxGridComponent } from './public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { IgxGridClipboardComponent } from '../../test-utils/grid-samples.spec'; import { CancelableEventArgs } from '../../core/utils'; @@ -18,10 +16,7 @@ describe('IgxGrid - Clipboard #grid', () => { let grid: IgxGridComponent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridClipboardComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + imports: [IgxGridClipboardComponent, NoopAnimationsModule] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-collapsible-columns.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-collapsible-columns.spec.ts index 295a0ebf0f2..d4777b1de74 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-collapsible-columns.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-collapsible-columns.spec.ts @@ -1,5 +1,4 @@ import { TestBed, fakeAsync, tick } from '@angular/core/testing'; -import { IgxGridModule } from './grid.module'; import { IgxGridComponent } from './grid.component'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { configureTestSuite } from '../../test-utils/configure-suite'; @@ -27,14 +26,11 @@ describe('IgxGrid - multi-column headers #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, CollapsibleColumnGroupTestComponent, CollapsibleGroupsTemplatesTestComponent, CollapsibleGroupsDynamicColComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule ] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-advanced.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-advanced.spec.ts index c945a99fd1e..76a509291c4 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-advanced.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-advanced.spec.ts @@ -1,7 +1,6 @@ import { fakeAsync, TestBed, tick, flush, ComponentFixture } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './public_api'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { @@ -20,7 +19,7 @@ import { import { ControlsFunction } from '../../test-utils/controls-functions.spec'; import { FormattedValuesFilteringStrategy } from '../../data-operations/filtering-strategy'; import { IgxHierGridExternalAdvancedFilteringComponent } from '../../test-utils/hierarchical-grid-components.spec'; -import { IgxHierarchicalGridModule, IgxHierarchicalGridComponent } from '../hierarchical-grid/public_api'; +import { IgxHierarchicalGridComponent } from '../hierarchical-grid/public_api'; const ADVANCED_FILTERING_OPERATOR_LINE_AND_CSS_CLASS = 'igx-filter-tree__line--and'; const ADVANCED_FILTERING_OPERATOR_LINE_OR_CSS_CLASS = 'igx-filter-tree__line--or'; @@ -33,17 +32,14 @@ const CHIP_SELECT_HIDDEN_CLASS = '.igx-chip__select--hidden'; describe('IgxGrid - Advanced Filtering #grid - ', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridAdvancedFilteringColumnGroupComponent, IgxGridAdvancedFilteringComponent, IgxGridExternalAdvancedFilteringComponent, IgxGridAdvancedFilteringBindingComponent, IgxHierGridExternalAdvancedFilteringComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule, - IgxHierarchicalGridModule] + ] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts index 7f0337f7474..d8f47352ec4 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts @@ -4,7 +4,6 @@ import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxInputDirective } from '../../directives/input/input.directive'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './public_api'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { @@ -28,7 +27,6 @@ import { DatePipe } from '@angular/common'; import { FilteringExpressionsTree, IFilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree'; import { FilteringLogic, IFilteringExpression } from '../../data-operations/filtering-expression.interface'; import { IgxChipComponent } from '../../chips/chip.component'; -import { IgxGridExcelStyleFilteringModule } from '../filtering/excel-style/grid.excel-style-filtering.module'; import { DisplayDensity } from '../../core/density'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { @@ -60,17 +58,13 @@ const GRID_RESIZE_CLASS = '.igx-grid-th__resize-line'; describe('IgxGrid - Filtering Row UI actions #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridFilteringComponent, IgxGridFilteringScrollComponent, IgxGridFilteringMCHComponent, IgxGridFilteringTemplateComponent, IgxGridDatesFilteringComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule, - IgxGridExcelStyleFilteringModule ] }); })); @@ -1702,7 +1696,7 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => { expect(document.activeElement).toEqual(header.nativeElement); })); - it('Should update active element when click \'clear\' button of last chip and there is no \`more\` icon.', fakeAsync(() => { + it('Should update active element when click \'clear\' button of last chip and there is no \'more\' icon.', fakeAsync(() => { pending('This this is not valid anymore, so we should probably dellete it.'); grid.getColumnByName('ProductName').width = '350px'; tick(DEBOUNCETIME); @@ -1817,7 +1811,7 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => { expect(() => { filterUIRow.componentInstance.onChipRemoved(null, chipToRemove); }) - .not.toThrowError(/\'id\' of undefined/); + .not.toThrowError(/'id' of undefined/); fix.detectChanges(); await wait(500); fix.detectChanges(); @@ -1826,7 +1820,7 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => { expect(() => { filterUIRow.componentInstance.onChipRemoved(null, chipToRemove); }) - .not.toThrowError(/\'id\' of undefined/); + .not.toThrowError(/'id' of undefined/); fix.detectChanges(); await wait(100); })); @@ -2655,23 +2649,23 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => { it('Should render custom filter template instead of default one.', fakeAsync(() => { // Verify default filter template is not present. expect(GridFunctions.getFilterCell(fix, 'ProductName').query(By.css('.igx-filtering-chips'))).toBeNull( - '\`ProductName\` default filter chips area template was found.'); + '\'ProductName\' default filter chips area template was found.'); expect(GridFunctions.getFilterCell(fix, 'Downloads').query(By.css('.igx-filtering-chips'))).toBeNull( - '\`Downloads\` default filter chips area template was found.'); + '\'Downloads\' default filter chips area template was found.'); expect(GridFunctions.getFilterCell(fix, 'Released').query(By.css('.igx-filtering-chips'))).toBeNull( - '\`Released\` default filter chips area template was found.'); + '\'Released\' default filter chips area template was found.'); expect(GridFunctions.getFilterCell(fix, 'ReleaseDate').query(By.css('.igx-filtering-chips'))).toBeNull( - '\`ReleaseDate\` default filter chips area template was found.'); + '\'ReleaseDate\' default filter chips area template was found.'); // Verify the custom filter template is present. expect(GridFunctions.getFilterCell(fix, 'ProductName').query(By.css('.custom-filter'))).not.toBeNull( - '\`ProductName\` customer filter template was not found.'); + '\'ProductName\' customer filter template was not found.'); expect(GridFunctions.getFilterCell(fix, 'Downloads').query(By.css('.custom-filter'))).not.toBeNull( - '\`Downloads\` customer filter template was not found.'); + '\'Downloads\' customer filter template was not found.'); expect(GridFunctions.getFilterCell(fix, 'Released').query(By.css('.custom-filter'))).not.toBeNull( - '\`Released\` customer filter template was not found.'); + '\'Released\' customer filter template was not found.'); expect(GridFunctions.getFilterCell(fix, 'ReleaseDate').query(By.css('.custom-filter'))).not.toBeNull( - '\`ReleaseDate\` customer filter template was not found.'); + '\'ReleaseDate\' customer filter template was not found.'); })); it('Should close default filter template when clicking on a column with custom one.', fakeAsync(() => { @@ -3007,7 +3001,8 @@ describe('IgxGrid - Filtering Row UI actions #grid', () => { describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridFilteringComponent, IgxGridFilteringESFEmptyTemplatesComponent, IgxGridFilteringESFTemplatesComponent, @@ -3015,11 +3010,7 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => { IgxGridFilteringMCHComponent, IgxGridExternalESFComponent, IgxGridExternalESFTemplateComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule, - IgxGridExcelStyleFilteringModule] + ] }); })); @@ -5277,7 +5268,7 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => { expect(listItems.length).toBe(0, 'incorrect rendered list items count'); })); - it('Should ignore duplicate records when column\'\s filteringIgnoreCase is true', fakeAsync(() => { + it('Should ignore duplicate records when column\'s filteringIgnoreCase is true', fakeAsync(() => { const column = grid.getColumnByName('AnotherField'); expect(column.filteringIgnoreCase).toBeTrue(); @@ -5290,7 +5281,7 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => { [true, true, true]); })); - it('Should not ignore duplicate records when column\'\s filteringIgnoreCase is false', fakeAsync(() => { + it('Should not ignore duplicate records when column\'s filteringIgnoreCase is false', fakeAsync(() => { const column = grid.getColumnByName('AnotherField'); column.filteringIgnoreCase = false; expect(column.filteringIgnoreCase).toBeFalse(); @@ -6235,7 +6226,7 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => { expect(() => { GridFunctions.clickExcelFilterIcon(fix, 'Downloads'); tick(2000); - }).not.toThrowError(/\'dataType\' of null/); + }).not.toThrowError(/'dataType' of null/); })); }); @@ -6395,12 +6386,10 @@ describe('IgxGrid - Custom Filtering Strategy #grid', () => { let grid: IgxGridComponent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - CustomFilteringStrategyComponent - ], imports: [ NoopAnimationsModule, - IgxGridModule] + CustomFilteringStrategyComponent + ] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-filtering.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-filtering.spec.ts index 50f593263a6..fdd9c9e2495 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-filtering.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-filtering.spec.ts @@ -3,7 +3,6 @@ import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { FilteringLogic, IFilteringExpression } from '../../data-operations/filtering-expression.interface'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { IgxChipComponent } from '../../chips/public_api'; import { @@ -24,12 +23,9 @@ import { ExpressionUI } from '../filtering/excel-style/common'; describe('IgxGrid - Filtering actions #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridFilteringComponent - ], imports: [ - NoopAnimationsModule, - IgxGridModule] + IgxGridFilteringComponent, NoopAnimationsModule + ] }); })); @@ -1152,12 +1148,10 @@ describe('IgxGrid - Filtering actions #grid', () => { describe('IgxGrid - Filtering expression tree bindings #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridFilteringBindingComponent - ], imports: [ NoopAnimationsModule, - IgxGridModule] + IgxGridFilteringBindingComponent + ] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav-headers.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav-headers.spec.ts index 8d130b54f96..a78181b71ee 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav-headers.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav-headers.spec.ts @@ -1,8 +1,6 @@ import { TestBed, fakeAsync, tick } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { - IgxGridModule -} from './public_api'; + import { IgxGridComponent } from './grid.component'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { clearGridSubs, setupGridScrollDetection } from '../../test-utils/helper-utils.spec'; @@ -28,10 +26,7 @@ describe('IgxGrid - Headers Keyboard navigation #grid', () => { let gridHeader: IgxGridHeaderRowComponent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - SelectionWithScrollsComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [SelectionWithScrollsComponent, NoopAnimationsModule] }); })); @@ -734,10 +729,7 @@ describe('IgxGrid - Headers Keyboard navigation #grid', () => { let gridHeader: IgxGridHeaderRowComponent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - MRLTestComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [MRLTestComponent, NoopAnimationsModule] }); })); @@ -939,10 +931,7 @@ describe('IgxGrid - Headers Keyboard navigation #grid', () => { let gridHeader: IgxGridHeaderRowComponent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - ColumnGroupsNavigationTestComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [ColumnGroupsNavigationTestComponent, NoopAnimationsModule] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav.spec.ts index 7fb264217b2..6289fd1901d 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-keyBoardNav.spec.ts @@ -1,6 +1,5 @@ import { TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxGridModule } from './public_api'; import { IgxGridComponent } from './grid.component'; import { IGridCellEventArgs, IActiveNodeChangeEventArgs } from '../common/events'; import { DefaultSortingStrategy, SortingDirection } from '../../data-operations/sorting-strategy'; @@ -28,10 +27,7 @@ describe('IgxGrid - Keyboard navigation #grid', () => { let gridContent: DebugElement; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - NoScrollsComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [NoScrollsComponent, NoopAnimationsModule] }); })); @@ -212,10 +208,7 @@ describe('IgxGrid - Keyboard navigation #grid', () => { let gridContent: DebugElement; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - VirtualGridComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [NoopAnimationsModule, VirtualGridComponent] }); })); @@ -693,10 +686,7 @@ describe('IgxGrid - Keyboard navigation #grid', () => { describe('Group By navigation ', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridGroupByComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [IgxGridGroupByComponent, NoopAnimationsModule] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-mrl-keyboard-nav.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-mrl-keyboard-nav.spec.ts index 158542572c4..85a5b928510 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-mrl-keyboard-nav.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-mrl-keyboard-nav.spec.ts @@ -2,7 +2,6 @@ import { TestBed, ComponentFixture, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxGridModule, IGridCellEventArgs } from './public_api'; import { IgxGridComponent } from './grid.component'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; @@ -12,6 +11,9 @@ import { DefaultSortingStrategy, SortingDirection } from '../../data-operations/ import { IgxGridGroupByRowComponent } from './groupby-row.component'; import { GridFunctions, GRID_MRL_BLOCK } from '../../test-utils/grid-functions.spec'; import { CellType } from '../common/grid.interface'; +import { IgxColumnLayoutComponent } from '../columns/column-layout.component'; +import { NgFor } from '@angular/common'; +import { IGridCellEventArgs, IgxColumnComponent } from '../public_api'; const DEBOUNCETIME = 30; const CELL_CSS_CLASS = '.igx-grid__td'; @@ -25,10 +27,7 @@ describe('IgxGrid Multi Row Layout - Keyboard navigation #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - ColumnLayoutTestComponent - ], - imports: [NoopAnimationsModule, IgxGridModule], + imports: [NoopAnimationsModule, ColumnLayoutTestComponent] }).compileComponents(); })); @@ -2182,9 +2181,9 @@ describe('IgxGrid Multi Row Layout - Keyboard navigation #grid', () => { fix.detectChanges(); // check if first unpinned cell is active and is in view - let firstUnpinnedCell = grid.gridAPI.get_cell_by_index(0, 'ContactName'); + const firstUnpinnedCell = grid.gridAPI.get_cell_by_index(0, 'ContactName'); expect(firstUnpinnedCell.active).toBe(true); - let diff = firstUnpinnedCell.nativeElement.getBoundingClientRect().left - + const diff = firstUnpinnedCell.nativeElement.getBoundingClientRect().left - grid.pinnedWidth - grid.tbody.nativeElement.getBoundingClientRect().left; expect(diff).toBe(0); @@ -2630,7 +2629,9 @@ describe('IgxGrid Multi Row Layout - Keyboard navigation #grid', () => { [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field' [editable]='col.editable'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnLayoutComponent, NgFor] }) export class ColumnLayoutTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-row-editing.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-row-editing.spec.ts index a2c17b9a696..c5a8a414f91 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-row-editing.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-row-editing.spec.ts @@ -5,8 +5,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxGridComponent } from './grid.component'; import { IGridEditEventArgs, IGridEditDoneEventArgs } from '../common/events'; import { IgxColumnComponent } from '../columns/column.component'; -import { IgxGridModule, RowType } from './public_api'; -import { DisplayDensity } from '../../core/displayDensity'; +import { DisplayDensity } from '../../core/density'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { IgxStringFilteringOperand, IgxNumberFilteringOperand } from '../../data-operations/filtering-condition'; import { TransactionType, Transaction } from '../../services/public_api'; @@ -27,8 +26,8 @@ import { } from '../../test-utils/grid-samples.spec'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; -import { CellType } from '../common/grid.interface'; import { DefaultDataCloneStrategy } from '../../data-operations/data-clone-strategy'; +import { CellType, RowType } from '../public_api'; const CELL_CLASS = '.igx-grid__td'; const ROW_EDITED_CLASS = 'igx-grid__tr--edited'; @@ -40,7 +39,8 @@ const DEBOUNCETIME = 30; describe('IgxGrid - Row Editing #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridRowEditingComponent, IgxGridRowEditingTransactionComponent, IgxGridWithEditingAndFeaturesComponent, @@ -49,9 +49,7 @@ describe('IgxGrid - Row Editing #grid', () => { IgxGridEmptyRowEditTemplateComponent, IgxGridCustomRowEditTemplateComponent, VirtualGridComponent - ], - imports: [ - NoopAnimationsModule, IgxGridModule] + ] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-row-pinning.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-row-pinning.spec.ts index e568d106b7f..54ed7c933d3 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-row-pinning.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-row-pinning.spec.ts @@ -1,12 +1,13 @@ import { ViewChild, Component, DebugElement, OnInit, QueryList } from '@angular/core'; -import { TestBed, fakeAsync, tick } from '@angular/core/testing'; +import { NgFor, NgIf } from '@angular/common'; +import { TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + import { IgxGridComponent } from './grid.component'; -import { CellType, IgxGridModule, IPinRowEventArgs } from './public_api'; +import { IgxGridDetailTemplateDirective } from './public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { ColumnPinningPosition, RowPinningPosition } from '../common/enums'; -import { IPinningConfig } from '../grid.common'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { GridFunctions } from '../../test-utils/grid-functions.spec'; import { GridSummaryFunctions } from '../../test-utils/grid-functions.spec'; @@ -16,6 +17,8 @@ import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec'; import { clearGridSubs, setupGridScrollDetection } from '../../test-utils/helper-utils.spec'; import { GridRowConditionalStylingComponent } from '../../test-utils/grid-base-components.spec'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IgxColumnLayoutComponent } from '../columns/column-layout.component'; +import { CellType, IPinRowEventArgs, IPinningConfig, IgxColumnComponent } from '../public_api'; describe('Row Pinning #grid', () => { const FIXED_ROW_CONTAINER = '.igx-grid__tr--pinned '; @@ -27,29 +30,24 @@ describe('Row Pinning #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, + GridRowConditionalStylingComponent, GridRowPinningComponent, GridRowPinningWithMRLComponent, GridRowPinningWithMDVComponent, GridRowPinningWithTransactionsComponent, - GridRowPinningWithInitialPinningComponent, - GridRowConditionalStylingComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule + GridRowPinningWithInitialPinningComponent ] }); })); describe('', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningComponent); - fix.detectChanges(); grid = fix.componentInstance.instance; - tick(); fix.detectChanges(); - })); + }); it('should pin rows to top.', () => { // pin 2nd data row @@ -582,13 +580,11 @@ describe('Row Pinning #grid', () => { }); describe('Row pinning with Master Detail View', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningWithMDVComponent); - fix.detectChanges(); grid = fix.componentInstance.instance; - tick(); fix.detectChanges(); - })); + }); it('should be in view when expanded and pinning row to bottom of the grid.', async () => { fix.componentInstance.pinningConfig = { columns: ColumnPinningPosition.Start, rows: RowPinningPosition.Bottom }; @@ -688,20 +684,17 @@ describe('Row Pinning #grid', () => { describe('Paging', () => { let paginator: IgxPaginatorComponent; - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningComponent); fix.componentInstance.createSimpleData(12); - fix.detectChanges(); grid = fix.componentInstance.instance; fix.componentInstance.paging = true; fix.detectChanges(); - grid.perPage = 5; - - fix.detectChanges(); - tick(); paginator = fix.debugElement.query(By.directive(IgxPaginatorComponent)).componentInstance; - })); + paginator.perPage = 5; + fix.detectChanges(); + }); it('should correctly apply paging state for grid and paginator when there are pinned rows.', () => { // pin the first row @@ -740,13 +733,11 @@ describe('Row Pinning #grid', () => { }); describe(' Editing ', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningWithTransactionsComponent); - fix.detectChanges(); grid = fix.componentInstance.instance; - tick(); fix.detectChanges(); - })); + }); it('should allow pinning edited row.', () => { grid.updateCell('New value', 'ANTON', 'CompanyName'); @@ -819,13 +810,11 @@ describe('Row Pinning #grid', () => { }); describe('Row pinning with MRL', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningWithMRLComponent); - fix.detectChanges(); grid = fix.componentInstance.instance; - tick(); fix.detectChanges(); - })); + }); it('should pin/unpin correctly to top', () => { // pin @@ -963,13 +952,11 @@ describe('Row Pinning #grid', () => { }); describe(' Hiding', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningComponent); - fix.detectChanges(); grid = fix.componentInstance.instance; - tick(); fix.detectChanges(); - })); + }); it('should hide columns in pinned and unpinned area', () => { // pin 2nd data row @@ -1031,13 +1018,13 @@ describe('Row Pinning #grid', () => { describe(' Cell Editing', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningComponent); fix.detectChanges(); // enable cell editing for column grid = fix.componentInstance.instance; grid.getColumnByName('CompanyName').editable = true; - })); + }); it('should enter edit mode for the next editable cell when tabbing.', () => { const gridContent = GridFunctions.getGridContent(fix); @@ -1116,13 +1103,13 @@ describe('Row Pinning #grid', () => { describe(' Navigation', () => { let gridContent: DebugElement; - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningComponent); fix.detectChanges(); grid = fix.componentInstance.instance; setupGridScrollDetection(fix, grid); gridContent = GridFunctions.getGridContent(fix); - })); + }); afterEach(() => { clearGridSubs(); @@ -1355,11 +1342,11 @@ describe('Row Pinning #grid', () => { }); describe(' Initial pinning', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowPinningWithInitialPinningComponent); fix.detectChanges(); grid = fix.componentInstance.grid1; - })); + }); it('should pin rows on OnInit.', () => { fix.detectChanges(); @@ -1369,13 +1356,11 @@ describe('Row Pinning #grid', () => { describe('Conditional row styling', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(GridRowConditionalStylingComponent); - fix.detectChanges(); grid = fix.componentInstance.grid; - tick(); fix.detectChanges(); - })); + }); it('Shoud be able to conditionally style rows. Check is the class present in the row native element class list', () => { fix.detectChanges(); @@ -1423,7 +1408,9 @@ describe('Row Pinning #grid', () => { [autoGenerate]="true"> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxPaginatorComponent, NgIf] }) export class GridRowPinningComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1448,7 +1435,9 @@ export class GridRowPinningComponent { [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, NgFor] }) export class GridRowPinningWithMRLComponent extends GridRowPinningComponent { public cols: Array = [ @@ -1480,7 +1469,10 @@ export class GridRowPinningWithMRLComponent extends GridRowPinningComponent {
    Address: {{dataItem.Address}}
    -` + + `, + standalone: true, + imports: [IgxGridComponent, IgxGridDetailTemplateDirective] }) export class GridRowPinningWithMDVComponent extends GridRowPinningComponent { } @@ -1496,7 +1488,9 @@ export class GridRowPinningWithMDVComponent extends GridRowPinningComponent { } [data]="data" [autoGenerate]="true"> - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class GridRowPinningWithTransactionsComponent extends GridRowPinningComponent { } @@ -1511,7 +1505,9 @@ export class GridRowPinningWithTransactionsComponent extends GridRowPinningCompo [data]="data" [autoGenerate]="true"> - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class GridRowPinningWithInitialPinningComponent implements OnInit { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-row-selection.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-row-selection.spec.ts index 0c03c2f9be3..17ffb94b7fe 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-row-selection.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-row-selection.spec.ts @@ -1,7 +1,6 @@ import { TestBed, fakeAsync, tick, waitForAsync, ComponentFixture } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule, IRowSelectionEventArgs } from './public_api'; import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec'; import { IgxStringFilteringOperand, IgxNumberFilteringOperand } from '../../data-operations/filtering-condition'; import { configureTestSuite } from '../../test-utils/configure-suite'; @@ -16,10 +15,10 @@ import { import { GridFunctions, GridSelectionFunctions } from '../../test-utils/grid-functions.spec'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { GridSelectionMode } from '../common/enums'; -import { IgxGridSelectionModule } from '../selection/selection.module'; import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree'; import { FilteringLogic } from '../../data-operations/filtering-expression.interface'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IRowSelectionEventArgs } from '../public_api'; const DEBOUNCETIME = 30; const SCROLL_DEBOUNCETIME = 100; @@ -30,18 +29,14 @@ describe('IgxGrid - Row Selection #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, RowSelectionComponent, SelectionWithScrollsComponent, RowSelectionWithoutPrimaryKeyComponent, SingleRowSelectionComponent, SelectionWithTransactionsComponent, GridCustomSelectorsComponent - ], - imports: [ - NoopAnimationsModule, - IgxGridModule, - IgxGridSelectionModule ] }).compileComponents(); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.html b/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.html index b3b562b9a2d..208dc2d5d76 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.html +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.html @@ -63,14 +63,14 @@
    + [class.igx-grid__td--pinned-last]="col.hasLastPinnedChildColumn" + [class.igx-grid__td--pinned-first]="col.hasFirstPinnedChildColumn" + [style.left]="mrlRightPinnedOffset" + [ngStyle]="{ + 'grid-template-rows':col.getGridTemplate(true), + 'grid-template-columns':col.getGridTemplate(false), + 'z-index': col.pinned ? 1 : null + }"> diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.ts index 7a674ea1b62..5da658cc2aa 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-row.component.ts @@ -1,11 +1,20 @@ import { Component, ChangeDetectionStrategy, forwardRef } from '@angular/core'; import { IgxRowDirective } from '../row.directive'; +import { IgxGridNotGroupedPipe, IgxGridTopLevelColumns, IgxGridCellStylesPipe, IgxGridCellStyleClassesPipe, IgxGridDataMapperPipe, IgxGridTransactionStatePipe } from '../common/pipes'; +import { IgxGridExpandableCellComponent } from './expandable-cell.component'; +import { IgxGridCellComponent } from '../cell.component'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxGridForOfDirective } from '../../directives/for-of/for_of.directive'; +import { IgxRowDragDirective } from '../row-drag.directive'; +import { NgTemplateOutlet, NgIf, NgFor, NgStyle, NgClass } from '@angular/common'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-row', templateUrl: './grid-row.component.html', - providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxGridRowComponent) }] + providers: [{ provide: IgxRowDirective, useExisting: forwardRef(() => IgxGridRowComponent) }], + standalone: true, + imports: [NgTemplateOutlet, NgIf, IgxRowDragDirective, NgFor, IgxGridForOfDirective, NgStyle, IgxCheckboxComponent, IgxGridCellComponent, NgClass, IgxGridExpandableCellComponent, IgxGridNotGroupedPipe, IgxGridTopLevelColumns, IgxGridCellStylesPipe, IgxGridCellStyleClassesPipe, IgxGridDataMapperPipe, IgxGridTransactionStatePipe] }) export class IgxGridRowComponent extends IgxRowDirective { diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-summary.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-summary.spec.ts index 5fd22fbff30..bc04e7541b0 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-summary.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-summary.spec.ts @@ -2,17 +2,6 @@ import { fakeAsync, TestBed, tick, ComponentFixture, flush } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { - IgxDateSummaryOperand, - IgxGridModule, - IgxNumberSummaryOperand, - IgxSummaryOperand, - IgxSummaryResult, - IgxGroupByRow, - IgxSummaryRow, - IgxGridRow, - IColumnPipeArgs -} from './public_api'; import { IgxGridComponent } from './grid.component'; import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec'; import { GridFunctions, GridSummaryFunctions } from '../../test-utils/grid-functions.spec'; @@ -32,6 +21,7 @@ import { DropPosition } from '../moving/moving.service'; import { DatePipe } from '@angular/common'; import { IgxGridGroupByRowComponent } from './groupby-row.component'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IColumnPipeArgs, IgxColumnComponent, IgxDateSummaryOperand, IgxGridRow, IgxGroupByRow, IgxNumberSummaryOperand, IgxSummaryOperand, IgxSummaryResult, IgxSummaryRow } from '../public_api'; describe('IgxGrid - Summaries #grid', () => { @@ -44,15 +34,15 @@ describe('IgxGrid - Summaries #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, + CustomSummariesComponent, ProductsComponent, SummaryColumnComponent, - CustomSummariesComponent, FilteringComponent, SummariesGroupByComponent, SummariesGroupByTransactionsComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + ] }); })); @@ -60,11 +50,11 @@ describe('IgxGrid - Summaries #grid', () => { describe('in grid with no summaries defined: ', () => { let fixture: ComponentFixture; let grid: IgxGridComponent; - beforeEach(fakeAsync(() => { + beforeEach(() => { fixture = TestBed.createComponent(ProductsComponent); fixture.detectChanges(); grid = fixture.componentInstance.grid; - })); + }); it('should not have summary if no summary is active ', () => { expect(fixture.debugElement.query(By.css(SUMMARY_CLASS))).toBeNull(); @@ -150,11 +140,11 @@ describe('IgxGrid - Summaries #grid', () => { let fixture: ComponentFixture; let grid: IgxGridComponent; - beforeEach(fakeAsync(() => { + beforeEach(() => { fixture = TestBed.createComponent(CustomSummariesComponent); fixture.detectChanges(); grid = fixture.componentInstance.grid1; - })); + }); it('should properly render custom summaries', () => { const summaryRow = GridSummaryFunctions.getRootSummaryRow(fixture); @@ -599,11 +589,11 @@ describe('IgxGrid - Summaries #grid', () => { describe('', () => { let fix; let grid: IgxGridComponent; - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(SummaryColumnComponent); fix.detectChanges(); grid = fix.componentInstance.grid; - })); + }); it('Filtering: should calculate summaries only over filteredData', fakeAsync(() => { grid.filter('UnitsInStock', 0, IgxNumberFilteringOperand.instance().condition('equals'), true); @@ -856,16 +846,14 @@ describe('IgxGrid - Summaries #grid', () => { describe('Keyboard Navigation', () => { let fix; let grid: IgxGridComponent; - beforeEach(fakeAsync(() => { + beforeEach(() => { fix = TestBed.createComponent(SummariesGroupByComponent); - fix.detectChanges(); grid = fix.componentInstance.grid; setupGridScrollDetection(fix, grid); grid.width = '800px'; grid.height = '800px'; fix.detectChanges(); - tick(100); - })); + }); afterEach(() => { clearGridSubs(); @@ -2326,7 +2314,7 @@ describe('IgxGrid - Summaries #grid', () => { addRow = grid.gridAPI.get_row_by_index(2); expect(addRow.addRowUI).toBeFalse(); - let summaryRow = GridSummaryFunctions.getSummaryRowByDataRowIndex(fix, 4); + const summaryRow = GridSummaryFunctions.getSummaryRowByDataRowIndex(fix, 4); GridSummaryFunctions.verifyColumnSummaries(summaryRow, 0, [], []); GridSummaryFunctions.verifyColumnSummaries(summaryRow, 1, ['Count', 'Min', 'Max', 'Sum', 'Avg'], ['3', '17', '17', '51', '17']); GridSummaryFunctions.verifyColumnSummaries(summaryRow, 2, ['Count'], ['3']); @@ -2676,7 +2664,9 @@ class AllDataAvgSummary extends IgxSummaryOperand { [summaries]="earliest"> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class CustomSummariesComponent { diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts index a8392c87153..e902114efdf 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts @@ -2,10 +2,17 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, fakeAsync, ComponentFixture, tick } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { AbsoluteScrollStrategy, GlobalPositionStrategy, IgxCsvExporterService, IgxExcelExporterService } from '../../services/public_api'; -import { IgxGridComponent, IgxGridModule } from './public_api'; +import { IgxGridComponent } from './public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { GridFunctions } from "../../test-utils/grid-functions.spec"; import { By } from "@angular/platform-browser"; +import { IgxGridToolbarComponent } from '../toolbar/grid-toolbar.component'; +import { NgIf } from '@angular/common'; +import { IgxGridToolbarActionsComponent, IgxGridToolbarTitleComponent } from '../toolbar/common'; +import { IgxGridToolbarPinningComponent } from '../toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarHidingComponent } from '../toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarExporterComponent } from '../toolbar/grid-toolbar-exporter.component'; const TOOLBAR_TAG = 'igx-grid-toolbar'; const TOOLBAR_TITLE_TAG = 'igx-grid-toolbar-title'; @@ -31,14 +38,11 @@ const DATA = [ describe('IgxGrid - Grid Toolbar #grid - ', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, DefaultToolbarComponent, ToolbarActionsComponent ], - imports: [ - IgxGridModule, - NoopAnimationsModule - ], providers: [ IgxExcelExporterService, IgxCsvExporterService @@ -258,7 +262,9 @@ describe('IgxGrid - Grid Toolbar #grid - ', () => { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarTitleComponent, NgIf] }) export class DefaultToolbarComponent { public toolbarEnabled = true; @@ -293,7 +299,18 @@ export class DefaultToolbarComponent { - ` + `, + standalone: true, + imports: [ + IgxGridComponent, + IgxGridToolbarComponent, + IgxGridToolbarActionsComponent, + IgxGridToolbarTitleComponent, + IgxGridToolbarPinningComponent, + IgxGridToolbarHidingComponent, + IgxGridToolbarAdvancedFilteringComponent, + IgxGridToolbarExporterComponent + ] }) export class ToolbarActionsComponent { @ViewChild(IgxGridComponent, { static: true }) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-validation.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-validation.spec.ts index cb3102541fe..325ee49679e 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-validation.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-validation.spec.ts @@ -1,14 +1,14 @@ import { fakeAsync, flush, TestBed, tick } from '@angular/core/testing'; -import { ReactiveFormsModule, Validators } from '@angular/forms'; +import { Validators } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxInputDirective, IgxTooltipTargetDirective, IgxTreeGridComponent, IgxTreeGridModule } from 'igniteui-angular'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators' +import { IgxInputDirective } from '../../directives/input/input.directive'; +import { IgxTooltipTargetDirective } from '../../directives/tooltip/tooltip-target.directive'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { GridFunctions, GridSelectionFunctions } from '../../test-utils/grid-functions.spec'; import { - ForbiddenValidatorDirective, IgxGridCustomEditorsComponent, IgxGridValidationTestBaseComponent, IgxGridValidationTestCustomErrorComponent, @@ -16,21 +16,20 @@ import { } from '../../test-utils/grid-validation-samples.spec'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { IGridFormGroupCreatedEventArgs } from '../common/grid.interface'; +import { IgxTreeGridComponent } from '../tree-grid/tree-grid.component'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './grid.module'; describe('IgxGrid - Validation #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridValidationTestBaseComponent, IgxGridValidationTestCustomErrorComponent, IgxGridCustomEditorsComponent, - IgxTreeGridValidationTestComponent, - ForbiddenValidatorDirective - ], - imports: [IgxGridModule, IgxTreeGridModule, NoopAnimationsModule, ReactiveFormsModule] + IgxTreeGridValidationTestComponent + ] }); })); @@ -335,7 +334,7 @@ describe('IgxGrid - Validation #grid', () => { col.inlineEditorTemplate = template; fixture.detectChanges(); - let cell = grid.gridAPI.get_cell_by_visible_index(1, 1); + const cell = grid.gridAPI.get_cell_by_visible_index(1, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); const input = fixture.debugElement.query(By.css('input')); UIInteractions.clickAndSendInputElementValue(input, 'bob'); @@ -354,7 +353,7 @@ describe('IgxGrid - Validation #grid', () => { col.inlineEditorTemplate = template; fixture.detectChanges(); - let cell = grid.gridAPI.get_cell_by_visible_index(1, 1); + const cell = grid.gridAPI.get_cell_by_visible_index(1, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); const input = fixture.debugElement.query(By.css('input')); UIInteractions.clickAndSendInputElementValue(input, 'bob'); @@ -374,7 +373,7 @@ describe('IgxGrid - Validation #grid', () => { grid.validationTrigger = 'blur'; fixture.detectChanges(); - let cell = grid.gridAPI.get_cell_by_visible_index(1, 1); + const cell = grid.gridAPI.get_cell_by_visible_index(1, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); const input = fixture.debugElement.query(By.css('input')); UIInteractions.clickAndSendInputElementValue(input, 'bob'); @@ -405,7 +404,7 @@ describe('IgxGrid - Validation #grid', () => { it('should update validity when setting new value through grid API', () => { const grid = fixture.componentInstance.grid as IgxGridComponent; - let cell = grid.gridAPI.get_cell_by_visible_index(1, 1); + const cell = grid.gridAPI.get_cell_by_visible_index(1, 1); grid.updateCell('IG', 2, 'ProductName'); grid.validation.markAsTouched(2); @@ -450,7 +449,7 @@ describe('IgxGrid - Validation #grid', () => { it('should update validation status when using undo/redo api', () => { const grid = fixture.componentInstance.grid as IgxGridComponent; - let cell = grid.gridAPI.get_cell_by_visible_index(1, 1); + const cell = grid.gridAPI.get_cell_by_visible_index(1, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); cell.editMode = true; @@ -484,7 +483,7 @@ describe('IgxGrid - Validation #grid', () => { it('should not invalidate cleared number cell', () => { const grid = fixture.componentInstance.grid as IgxGridComponent; - let cell = grid.gridAPI.get_cell_by_visible_index(1, 3); + const cell = grid.gridAPI.get_cell_by_visible_index(1, 3); // Set cell to null, which should invalidate UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); @@ -527,7 +526,7 @@ describe('IgxGrid - Validation #grid', () => { it('should not show errors when the row is deleted', () => { const grid = fixture.componentInstance.grid as IgxGridComponent; - let cell = grid.gridAPI.get_cell_by_visible_index(1, 1); + const cell = grid.gridAPI.get_cell_by_visible_index(1, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); cell.editMode = true; @@ -571,7 +570,7 @@ describe('IgxGrid - Validation #grid', () => { it('should allow setting built-in validators via template-driven and mark cell invalid', () => { const treeGrid = fixture.componentInstance.treeGrid as IgxTreeGridComponent; - let cell = treeGrid.gridAPI.get_cell_by_visible_index(4, 1); + const cell = treeGrid.gridAPI.get_cell_by_visible_index(4, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); cell.editMode = true; @@ -588,7 +587,7 @@ describe('IgxGrid - Validation #grid', () => { it('should allow setting custom validators via template-driven and mark cell invalid', () => { const treeGrid = fixture.componentInstance.treeGrid as IgxTreeGridComponent; - let cell = treeGrid.gridAPI.get_cell_by_visible_index(4, 1); + const cell = treeGrid.gridAPI.get_cell_by_visible_index(4, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); cell.editMode = true; @@ -605,7 +604,7 @@ describe('IgxGrid - Validation #grid', () => { it('should update validation status when using undo/redo/delete api', () => { const treeGrid = fixture.componentInstance.treeGrid as IgxTreeGridComponent; - let cell = treeGrid.gridAPI.get_cell_by_visible_index(4, 1); + const cell = treeGrid.gridAPI.get_cell_by_visible_index(4, 1); UIInteractions.simulateDoubleClickAndSelectEvent(cell.element); cell.editMode = true; diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.component.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.component.spec.ts index 4f4741152c2..e9ba23b4a57 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.component.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.component.spec.ts @@ -9,8 +9,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxGridComponent } from './grid.component'; import { IgxColumnComponent } from '../columns/column.component'; import { IForOfState } from '../../directives/for-of/for_of.directive'; -import { IgxGridModule, IgxGridRow, IgxGroupByRow, IgxSummaryRow } from './public_api'; -import { DisplayDensity } from '../../core/displayDensity'; +import { DisplayDensity } from '../../core/density'; import { GridColumnDataType } from '../../data-operations/data-util'; import { GridTemplateStrings } from '../../test-utils/template-strings.spec'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; @@ -21,10 +20,13 @@ import { configureTestSuite } from '../../test-utils/configure-suite'; import { GridSelectionMode } from '../common/enums'; import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree'; import { FilteringLogic } from '../../data-operations/filtering-expression.interface'; -import { IgxTabsComponent, IgxTabsModule } from '../../tabs/tabs/public_api'; +import { IgxTabContentComponent, IgxTabHeaderComponent, IgxTabItemComponent, IgxTabsComponent } from '../../tabs/tabs/public_api'; import { IgxGridRowComponent } from './grid-row.component'; import { ISortingExpression, SortingDirection } from '../../data-operations/sorting-strategy'; import { GRID_SCROLL_CLASS } from '../../test-utils/grid-functions.spec'; +import { AsyncPipe, NgFor, NgIf } from '@angular/common'; +import { IgxPaginatorComponent, IgxPaginatorContentDirective } from '../../paginator/paginator.component'; +import { IgxGridFooterComponent, IgxGridRow, IgxGroupByRow, IgxSummaryRow } from '../public_api'; describe('IgxGrid Component Tests #grid', () => { @@ -39,15 +41,13 @@ describe('IgxGrid Component Tests #grid', () => { describe('IgxGrid - input properties', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridTestComponent, IgxGridMarkupDeclarationComponent, IgxGridRemoteVirtualizationComponent, IgxGridRemoteOnDemandComponent, IgxGridEmptyMessage100PercentComponent - ], - imports: [ - NoopAnimationsModule, IgxGridModule ] }) .compileComponents(); @@ -664,11 +664,9 @@ describe('IgxGrid Component Tests #grid', () => { describe('IgxGrid - virtualization tests', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxGridTestComponent - ], imports: [ - NoopAnimationsModule, IgxGridModule + NoopAnimationsModule, + IgxGridTestComponent ] }) .compileComponents(); @@ -799,15 +797,14 @@ describe('IgxGrid Component Tests #grid', () => { describe('IgxGrid - default rendering for rows and columns', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridDefaultRenderingComponent, IgxGridColumnPercentageWidthComponent, IgxGridWrappedInContComponent, IgxGridFormattingComponent, IgxGridFixedContainerHeightComponent - ], - imports: [ - NoopAnimationsModule, IgxGridModule] + ] }) .compileComponents(); })); @@ -1847,12 +1844,10 @@ describe('IgxGrid Component Tests #grid', () => { describe('IgxGrid - API methods', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridDefaultRenderingComponent, IgxGridWrappedInContComponent - ], - imports: [ - NoopAnimationsModule, IgxGridModule ] }) .compileComponents(); @@ -2263,11 +2258,9 @@ describe('IgxGrid Component Tests #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxGridInsideIgxTabsComponent - ], imports: [ - NoopAnimationsModule, IgxGridModule, IgxTabsModule + NoopAnimationsModule, + IgxGridInsideIgxTabsComponent ] }) .compileComponents(); @@ -2427,11 +2420,10 @@ describe('IgxGrid Component Tests #grid', () => { describe('IgxGrid - footer section', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxGridWithCustomFooterComponent - ], imports: [ - NoopAnimationsModule, IgxGridModule] + NoopAnimationsModule, + IgxGridWithCustomFooterComponent + ] }) .compileComponents(); })); @@ -2455,11 +2447,9 @@ describe('IgxGrid Component Tests #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxGridWithCustomPaginationTemplateComponent - ], imports: [ - NoopAnimationsModule, IgxGridModule + NoopAnimationsModule, + IgxGridWithCustomPaginationTemplateComponent ] }) .compileComponents(); @@ -2493,13 +2483,9 @@ describe('IgxGrid Component Tests #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxGridPerformanceComponent - ], imports: [ NoopAnimationsModule, - IgxGridModule, - IgxTabsModule + IgxGridPerformanceComponent ] }) .compileComponents(); @@ -2687,12 +2673,10 @@ describe('IgxGrid Component Tests #grid', () => { describe('Setting null data', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxGridNoDataComponent, IgxGridTestComponent - ], - imports: [ - NoopAnimationsModule, IgxGridModule ] }) .compileComponents(); @@ -2726,7 +2710,9 @@ describe('IgxGrid Component Tests #grid', () => { [header]="column.field" [width]="column.width"> -
    ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class IgxGridTestComponent { @ViewChild('grid', { static: true }) public grid: IgxGridComponent; @@ -2798,7 +2784,9 @@ export class IgxGridTestComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgFor, NgIf] }) export class IgxGridDefaultRenderingComponent { @ViewChild('grid', { read: IgxGridComponent, static: true }) @@ -2861,7 +2849,9 @@ export class IgxGridDefaultRenderingComponent { template: ` - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class IgxGridColumnPercentageWidthComponent extends IgxGridDefaultRenderingComponent { public override initColumns(column) { @@ -2872,8 +2862,7 @@ export class IgxGridColumnPercentageWidthComponent extends IgxGridDefaultRenderi } @Component({ - template: - `
    + template: `
    @@ -2882,19 +2871,22 @@ export class IgxGridColumnPercentageWidthComponent extends IgxGridDefaultRenderi
    -
    ` + `, + standalone: true, + imports: [IgxGridComponent, IgxGridFooterComponent] }) export class IgxGridWithCustomFooterComponent extends IgxGridTestComponent { @ViewChild(IgxGridComponent, { static: true }) public override grid: IgxGridComponent; public override data = SampleTestData.foodProductData(); } @Component({ - template: - `
    + template: `
    -
    ` +
    `, + standalone: true, + imports: [IgxGridComponent, IgxPaginatorComponent, NgIf] }) export class IgxGridWrappedInContComponent extends IgxGridTestComponent { public override data = []; @@ -2942,12 +2934,13 @@ export class IgxGridWrappedInContComponent extends IgxGridTestComponent { } @Component({ - template: - `
    + template: `
    -
    ` +
    `, + standalone: true, + imports: [IgxGridComponent] }) export class IgxGridFixedContainerHeightComponent extends IgxGridWrappedInContComponent { public override paging = false; @@ -2961,7 +2954,9 @@ export class IgxGridFixedContainerHeightComponent extends IgxGridWrappedInContCo - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridMarkupDeclarationComponent extends IgxGridTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -2980,7 +2975,9 @@ export class IgxGridMarkupDeclarationComponent extends IgxGridTestComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridEmptyMessage100PercentComponent extends IgxGridTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3030,7 +3027,9 @@ export class LocalService { `, - providers: [LocalService] + providers: [LocalService], + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, AsyncPipe] }) export class IgxGridRemoteVirtualizationComponent implements OnInit, AfterViewInit { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3068,7 +3067,9 @@ export class IgxGridRemoteVirtualizationComponent implements OnInit, AfterViewIn Loading...
    `, - providers: [LocalService] + providers: [LocalService], + standalone: true, + imports: [IgxGridComponent, AsyncPipe] }) export class IgxGridRemoteOnDemandComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3094,9 +3095,7 @@ export class IgxGridRemoteOnDemandComponent { } @Component({ - template: GridTemplateStrings.declareGrid( - '', '', - ` + template: GridTemplateStrings.declareGrid('', '', ` @@ -3106,7 +3105,9 @@ export class IgxGridRemoteOnDemandComponent { - `) + `), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridFormattingComponent extends BasicGridComponent { @ViewChild(IgxGridComponent, { static: true }) public override grid: IgxGridComponent; @@ -3154,7 +3155,7 @@ export class IgxGridFormattingComponent extends BasicGridComponent { *ngFor="let column of columns" [field]="column.field" [header]="column.field" - [width]="column.width" + [width]="column.width + 'px'" > @@ -3212,7 +3213,9 @@ export class IgxGridFormattingComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxTabsComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabItemComponent, IgxPaginatorComponent, NgFor] }) export class IgxGridInsideIgxTabsComponent { @ViewChild('grid2', { read: IgxGridComponent, static: true }) @@ -3261,7 +3264,9 @@ export class IgxGridInsideIgxTabsComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, IgxPaginatorContentDirective, NgIf, AsyncPipe] }) export class IgxGridWithCustomPaginationTemplateComponent { @ViewChild('grid', { read: IgxGridComponent, static: true }) @@ -3273,7 +3278,9 @@ export class IgxGridWithCustomPaginationTemplateComponent { template: ` - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class IgxGridPerformanceComponent implements AfterViewInit, OnInit { @@ -3324,7 +3331,9 @@ export class IgxGridPerformanceComponent implements AfterViewInit, OnInit { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent] }) export class IgxGridNoDataComponent { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.component.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.component.ts index 542fa92d5f0..79660439c81 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.component.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.component.ts @@ -1,8 +1,10 @@ import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, ContentChild, ViewChildren, QueryList, ViewChild, TemplateRef, DoCheck, AfterContentInit, HostBinding, - OnInit, AfterViewInit, ContentChildren + OnInit, AfterViewInit, ContentChildren, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { NgIf, NgTemplateOutlet, NgClass, NgFor, NgStyle } from '@angular/common'; + import { IgxGridBaseDirective } from '../grid-base.directive'; import { IgxGridNavigationService } from '../grid-navigation.service'; import { IgxGridAPIService } from './grid-api.service'; @@ -11,7 +13,7 @@ import { IGroupByRecord } from '../../data-operations/groupby-record.interface'; import { IgxGroupByRowTemplateDirective, IgxGridDetailTemplateDirective } from './grid.directives'; import { IgxGridGroupByRowComponent } from './groupby-row.component'; import { IGroupByExpandState } from '../../data-operations/groupby-expand-state.interface'; -import { IForOfState } from '../../directives/for-of/for_of.directive'; +import { IForOfState, IgxGridForOfDirective } from '../../directives/for-of/for_of.directive'; import { IgxColumnComponent } from '../columns/column.component'; import { takeUntil } from 'rxjs/operators'; import { IgxFilteringService } from '../filtering/grid-filtering.service'; @@ -30,6 +32,27 @@ import { IgxGridCell } from '../grid-public-cell'; import { ISortingExpression } from '../../data-operations/sorting-strategy'; import { IGridGroupingStrategy } from '../common/strategy'; import { IgxGridValidationService } from './grid-validation.service'; +import { IgxGridDetailsPipe } from './grid.details.pipe'; +import { IgxGridSummaryPipe } from './grid.summary.pipe'; +import { IgxGridGroupingPipe, IgxGridPagingPipe, IgxGridSortingPipe, IgxGridFilteringPipe } from './grid.pipes'; +import { IgxSummaryDataPipe } from '../summaries/grid-root-summary.pipe'; +import { IgxGridTransactionPipe, IgxHasVisibleColumnsPipe, IgxGridRowPinningPipe, IgxGridAddRowPipe, IgxGridRowClassesPipe, IgxGridRowStylesPipe } from '../common/pipes'; +import { IgxGridColumnResizerComponent } from '../resizing/resizer.component'; +import { IgxRowEditTabStopDirective } from '../grid.rowEdit.directive'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxRippleDirective } from '../../directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../directives/button/button.directive'; +import { IgxSnackbarComponent } from '../../snackbar/snackbar.component'; +import { IgxCircularProgressBarComponent } from '../../progressbar/progressbar.component'; +import { IgxOverlayOutletDirective, IgxToggleDirective } from '../../directives/toggle/toggle.directive'; +import { IgxSummaryRowComponent } from '../summaries/summary-row.component'; +import { IgxGridRowComponent } from './grid-row.component'; +import { IgxTemplateOutletDirective } from '../../directives/template-outlet/template_outlet.directive'; +import { IgxColumnMovingDropDirective } from '../moving/moving.drop.directive'; +import { IgxGridDragSelectDirective } from '../selection/drag-select.directive'; +import { IgxGridBodyDirective } from '../grid.common'; +import { IgxGridHeaderRowComponent } from '../headers/grid-header-row.component'; +import { IgxGridGroupByAreaComponent } from '../grouping/grid-group-by-area.component'; let NEXT_ID = 0; @@ -75,7 +98,48 @@ export interface IGroupingDoneEventArgs extends IBaseEventArgs { IgxForOfScrollSyncService ], selector: 'igx-grid', - templateUrl: './grid.component.html' + templateUrl: './grid.component.html', + standalone: true, + imports: [ + NgIf, + NgClass, + NgFor, + NgStyle, + NgTemplateOutlet, + IgxGridGroupByAreaComponent, + IgxGridHeaderRowComponent, + IgxGridBodyDirective, + IgxGridDragSelectDirective, + IgxColumnMovingDropDirective, + IgxGridForOfDirective, + IgxTemplateOutletDirective, + IgxGridRowComponent, + IgxGridGroupByRowComponent, + IgxSummaryRowComponent, + IgxOverlayOutletDirective, + IgxToggleDirective, + IgxCircularProgressBarComponent, + IgxSnackbarComponent, + IgxButtonDirective, + IgxRippleDirective, + IgxIconComponent, + IgxRowEditTabStopDirective, + IgxGridColumnResizerComponent, + IgxGridTransactionPipe, + IgxHasVisibleColumnsPipe, + IgxGridRowPinningPipe, + IgxGridAddRowPipe, + IgxGridRowClassesPipe, + IgxGridRowStylesPipe, + IgxSummaryDataPipe, + IgxGridGroupingPipe, + IgxGridPagingPipe, + IgxGridSortingPipe, + IgxGridFilteringPipe, + IgxGridSummaryPipe, + IgxGridDetailsPipe + ], + schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class IgxGridComponent extends IgxGridBaseDirective implements GridType, OnInit, DoCheck, AfterContentInit, AfterViewInit { /** @@ -1209,10 +1273,9 @@ export class IgxGridComponent extends IgxGridBaseDirective implements GridType, */ public createRow(index: number, data?: any): RowType { let row: RowType; - let rec: any; const dataIndex = this._getDataViewIndex(index); - rec = data ?? this.dataView[dataIndex]; + const rec = data ?? this.dataView[dataIndex]; if (rec && this.isGroupByRecord(rec)) { row = new IgxGroupByRow(this, index, rec); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.crud.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.crud.spec.ts index 2865c7fe780..d8110f7abbd 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.crud.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.crud.spec.ts @@ -3,7 +3,6 @@ import { TestBed, fakeAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { IgxGridComponent } from './grid.component'; import { IGridEditEventArgs } from '../common/events'; -import { IgxGridModule } from './public_api'; import { wait } from '../../test-utils/ui-interactions.spec'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -17,10 +16,7 @@ describe('IgxGrid - CRUD operations #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - DefaultCRUDGridComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + imports: [NoopAnimationsModule, DefaultCRUDGridComponent] }); })); @@ -351,7 +347,9 @@ describe('IgxGrid - CRUD operations #grid', () => { [autoGenerate]="true" [primaryKey]="'index'"> - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class DefaultCRUDGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.details.pipe.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.details.pipe.ts index e62df78ce99..4bd21fc33ec 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.details.pipe.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.details.pipe.ts @@ -2,7 +2,10 @@ import { PipeTransform, Pipe, Inject } from '@angular/core'; import { GridType, IGX_GRID_BASE } from '../common/grid.interface'; /** @hidden */ -@Pipe({ name: 'gridDetails' }) +@Pipe({ + name: 'gridDetails', + standalone: true +}) export class IgxGridDetailsPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.directives.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.directives.ts index 7c978f5ea65..cb3ddbc7a7a 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.directives.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.directives.ts @@ -15,13 +15,14 @@ import { * @hidden */ @Directive({ - selector: '[igxGroupByRow]' + selector: '[igxGroupByRow]', + standalone: true }) export class IgxGroupByRowTemplateDirective { public static ngTemplateContextGuard(_dir: IgxGroupByRowTemplateDirective, ctx: unknown): ctx is IgxGroupByRowTemplateContext { return true - }; + } constructor(public template: TemplateRef) { } @@ -31,39 +32,42 @@ export class IgxGroupByRowTemplateDirective { * @hidden */ @Directive({ - selector: '[igxGridDetail]' + selector: '[igxGridDetail]', + standalone: true }) export class IgxGridDetailTemplateDirective { public static ngTemplateContextGuard(_dir: IgxGridDetailTemplateDirective, ctx: unknown): ctx is IgxGridMasterDetailContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxRowExpandedIndicator]' + selector: '[igxRowExpandedIndicator]', + standalone: true }) export class IgxRowExpandedIndicatorDirective { public static ngTemplateContextGuard(_directive: IgxRowExpandedIndicatorDirective, context: unknown): context is IgxGridRowTemplateContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxRowCollapsedIndicator]' + selector: '[igxRowCollapsedIndicator]', + standalone: true }) export class IgxRowCollapsedIndicatorDirective { public static ngTemplateContextGuard(_directive: IgxRowCollapsedIndicatorDirective, context: unknown): context is IgxGridRowTemplateContext { return true - }; + } } @@ -71,85 +75,92 @@ export class IgxRowCollapsedIndicatorDirective { * @hidden */ @Directive({ - selector: '[igxHeaderExpandedIndicator]' + selector: '[igxHeaderExpandedIndicator]', + standalone: true }) export class IgxHeaderExpandIndicatorDirective { public static ngTemplateContextGuard(_directive: IgxHeaderExpandIndicatorDirective, context: unknown): context is IgxGridTemplateContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxHeaderCollapsedIndicator]' + selector: '[igxHeaderCollapsedIndicator]', + standalone: true }) export class IgxHeaderCollapseIndicatorDirective { public static ngTemplateContextGuard(_directive: IgxHeaderCollapseIndicatorDirective, context: unknown): context is IgxGridTemplateContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxExcelStyleHeaderIcon]' + selector: '[igxExcelStyleHeaderIcon]', + standalone: true }) export class IgxExcelStyleHeaderIconDirective { public static ngTemplateContextGuard(_directive: IgxExcelStyleHeaderIconDirective, context: unknown): context is IgxGridHeaderTemplateContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxSortHeaderIcon]' + selector: '[igxSortHeaderIcon]', + standalone: true }) export class IgxSortHeaderIconDirective { public static ngTemplateContextGuard(_directive: IgxSortHeaderIconDirective, context: unknown): context is IgxGridHeaderTemplateContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxSortAscendingHeaderIcon]' + selector: '[igxSortAscendingHeaderIcon]', + standalone: true }) export class IgxSortAscendingHeaderIconDirective { public static ngTemplateContextGuard(_directive: IgxSortAscendingHeaderIconDirective, context: unknown): context is IgxGridHeaderTemplateContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxSortDescendingHeaderIcon]' + selector: '[igxSortDescendingHeaderIcon]', + standalone: true }) export class IgxSortDescendingHeaderIconDirective { public static ngTemplateContextGuard(_directive: IgxSortDescendingHeaderIconDirective, context: unknown): context is IgxGridHeaderTemplateContext { return true - }; + } } /** * @hidden */ @Directive({ - selector: '[igxGroupAreaDrop]' + selector: '[igxGroupAreaDrop]', + standalone: true }) export class IgxGroupAreaDropDirective extends IgxDropDirective { diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.groupby.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.groupby.spec.ts index 5d34b2e2f74..616c806d5f4 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.groupby.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.groupby.spec.ts @@ -6,9 +6,8 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition'; import { IgxColumnComponent } from '../columns/column.component'; import { IgxGridComponent } from './grid.component'; -import { IgxGroupAreaDropDirective } from './grid.directives'; +import { IgxGroupAreaDropDirective, IgxGroupByRowTemplateDirective, IgxHeaderCollapseIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxRowCollapsedIndicatorDirective, IgxRowExpandedIndicatorDirective } from './grid.directives'; import { IgxColumnMovingDragDirective } from '../moving/moving.drag.directive'; -import { IgxGridModule, IgxGrouping } from './public_api'; import { IgxGridRowComponent } from './grid-row.component'; import { IgxChipComponent } from '../../chips/chip.component'; import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec'; @@ -20,6 +19,11 @@ import { GridSelectionFunctions, GridFunctions, GRID_SCROLL_CLASS } from '../../ import { GridSelectionMode } from '../common/enums'; import { ControlsFunction } from '../../test-utils/controls-functions.spec'; import { IGroupingExpression } from '../../data-operations/grouping-expression.interface'; +import { IgxPaginatorComponent } from '../../paginator/paginator.component'; +import { NgFor, NgIf } from '@angular/common'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxGroupByRowSelectorDirective } from '../selection/row-selectors'; +import { IgxGrouping } from '../public_api'; describe('IgxGrid - GroupBy #grid', () => { @@ -32,18 +36,18 @@ describe('IgxGrid - GroupBy #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, DefaultGridComponent, GroupableGridComponent, CustomTemplateGridComponent, GroupByDataMoreColumnsComponent, GroupByEmptyColumnFieldComponent, - MultiColumnHeadersWithGroupingComponent, GridGroupByRowCustomSelectorsComponent, GridGroupByCaseSensitiveComponent, - GridGroupByTestDateTimeDataComponent - ], - imports: [NoopAnimationsModule, IgxGridModule] + GridGroupByTestDateTimeDataComponent, + MultiColumnHeadersWithGroupingComponent + ] }); })); @@ -540,8 +544,8 @@ describe('IgxGrid - GroupBy #grid', () => { tick(); fix.detectChanges(); - let groupRows = grid.groupsRowList.toArray(); - let dataRows = grid.dataRowList.toArray(); + const groupRows = grid.groupsRowList.toArray(); + const dataRows = grid.dataRowList.toArray(); expect(groupRows.length).toEqual(2); expect(dataRows.length).toEqual(5); @@ -3722,7 +3726,9 @@ describe('IgxGrid - GroupBy #grid', () => { Custom template - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxPaginatorComponent, NgIf] }) export class DefaultGridComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3782,19 +3788,21 @@ class MySortingStrategy extends IgxGrouping { [data]="data" [sortStrategy]="sortStrategy" [groupStrategy]="groupStrategy"> - - + - - - - + + - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent] }) export class GroupableGridComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3817,11 +3825,11 @@ export class GroupableGridComponent extends DataParent { [width]='width' [height]='height' [data]="data"> - - - - - + + + + + Grouping by "{{groupRow.column.header}}". @@ -3847,7 +3855,9 @@ export class GroupableGridComponent extends DataParent { CUSTOM GROUP BY - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGroupByRowTemplateDirective, IgxRowExpandedIndicatorDirective, IgxRowCollapsedIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxHeaderCollapseIndicatorDirective] }) export class CustomTemplateGridComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3866,10 +3876,12 @@ export class CustomTemplateGridComponent extends DataParent { [width]='width' [height]='height' [data]="testData"> - + - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class GroupByDataMoreColumnsComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3907,7 +3919,9 @@ export class GroupByDataMoreColumnsComponent extends DataParent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GroupByEmptyColumnFieldComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -3924,13 +3938,13 @@ export class CustomSortingStrategy extends DefaultSortingStrategy { [width]='width' [height]='height' [data]="data"> - - + - - - + +

    Selected rows in the group: {{context.selectedCount}};

    @@ -3938,7 +3952,9 @@ export class CustomSortingStrategy extends DefaultSortingStrategy {

    Group Row instance: {{context.groupRow}};

    - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGroupByRowSelectorDirective, IgxCheckboxComponent] }) export class GridGroupByRowCustomSelectorsComponent extends DataParent { @ViewChild('gridGroupByRowCustomSelectors', { read: IgxGridComponent, static: true }) @@ -3958,11 +3974,13 @@ export class GridGroupByRowCustomSelectorsComponent extends DataParent { [width]='width' [height]='height' [data]="testData"> - - + - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridGroupByCaseSensitiveComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -4001,13 +4019,15 @@ export class GridGroupByCaseSensitiveComponent { [width]='width' [height]='height' [data]="datesData"> - - - - - + + + + + - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridGroupByTestDateTimeDataComponent { @ViewChild("grid", { read: IgxGridComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.master-detail.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.master-detail.spec.ts index 10cb0254a35..b90047838bc 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.master-detail.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.master-detail.spec.ts @@ -4,18 +4,22 @@ import { configureTestSuite } from '../../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { By } from '@angular/platform-browser'; import { UIInteractions, wait, waitForActiveNodeChange } from '../../test-utils/ui-interactions.spec'; -import { CellType, IgxGridModule } from './public_api'; +import { IgxGridDetailTemplateDirective } from './public_api'; import { IgxGridComponent } from './grid.component'; import { IgxGridRowComponent } from './grid-row.component'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { GridFunctions, GridSelectionFunctions } from '../../test-utils/grid-functions.spec'; import { IgxGridExpandableCellComponent } from './expandable-cell.component'; import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition'; -import { IgxInputGroupComponent } from '../../input-group/public_api'; +import { IgxInputDirective, IgxInputGroupComponent } from '../../input-group/public_api'; import { GridSummaryCalculationMode, GridSummaryPosition, GridSelectionMode } from '../common/enums'; import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; import { clearGridSubs, setupGridScrollDetection } from '../../test-utils/helper-utils.spec'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IgxPaginatorComponent } from '../../paginator/paginator.component'; +import { NgFor, NgIf } from '@angular/common'; +import { IgxColumnLayoutComponent } from '../columns/column-layout.component'; +import { CellType, IgxColumnComponent } from '../public_api'; const DEBOUNCETIME = 30; const ROW_TAG = 'igx-grid-row'; @@ -32,12 +36,12 @@ describe('IgxGrid Master Detail #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, DefaultGridMasterDetailComponent, AllExpandedGridMasterDetailComponent, MRLMasterDetailComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + ] }); })); @@ -1253,31 +1257,33 @@ describe('IgxGrid Master Detail #grid', () => { @Component({ template: ` - - - - - - -

    -
    - - Available -
    -
    {{dataItem.Address}}
    - - - -
    -
    - - -
    - NEW TEMPLATE + + + + + +
    +
    + + Available
    +
    {{dataItem.Address}}
    + + + +
    +
    + + +
    + NEW TEMPLATE +
    - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGridDetailTemplateDirective, IgxCheckboxComponent, IgxPaginatorComponent, IgxInputGroupComponent, IgxInputDirective, NgIf, NgFor] }) export class DefaultGridMasterDetailComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1290,8 +1296,8 @@ export class DefaultGridMasterDetailComponent { public height = '500px'; public data = SampleTestData.contactInfoDataFull(); public columns = [ - { field: 'ContactName', width: 400, dataType: 'string' }, - { field: 'CompanyName', width: 400, dataType: 'string' } + { field: 'ContactName', width: '400px' }, + { field: 'CompanyName', width: '400px' } ]; public paging = false; public perPage = 15; @@ -1300,23 +1306,25 @@ export class DefaultGridMasterDetailComponent { @Component({ template: ` - - - - - -
    -
    - - Available -
    -
    {{dataItem.Address}}
    -
    + + + + + +
    +
    + + Available
    - - - ` +
    {{dataItem.Address}}
    +
    +
    +
    +
    + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCheckboxComponent, IgxGridDetailTemplateDirective, NgFor] }) export class AllExpandedGridMasterDetailComponent extends DefaultGridMasterDetailComponent implements OnInit { public expStates = new Map(); @@ -1331,7 +1339,7 @@ export class AllExpandedGridMasterDetailComponent extends DefaultGridMasterDetai @Component({ template: ` - @@ -1346,18 +1354,20 @@ export class AllExpandedGridMasterDetailComponent extends DefaultGridMasterDetai - -
    -
    - - Available -
    -
    {{dataItem.Address}}
    -
    + +
    +
    + + Available
    - - - ` +
    {{dataItem.Address}}
    +
    +
    +
    + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGridDetailTemplateDirective, IgxColumnLayoutComponent, IgxCheckboxComponent, NgFor] }) export class MRLMasterDetailComponent extends DefaultGridMasterDetailComponent { } diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.module.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.module.ts index eb0e9ba0470..adb8dd0b53a 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.module.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.module.ts @@ -1,64 +1,16 @@ -import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { - IgxGroupByRowTemplateDirective, - IgxGridDetailTemplateDirective -} from './grid.directives'; -import { IgxGridComponent } from './grid.component'; -import { - IgxGridPagingPipe, - IgxGridGroupingPipe, - IgxGridSortingPipe, - IgxGridFilteringPipe -} from './grid.pipes'; -import { IgxGridGroupByRowComponent } from './groupby-row.component'; -import { IgxGridRowComponent } from './grid-row.component'; -import { IgxGridCommonModule } from '../grid-common.module'; -import { IgxGridSummaryPipe } from './grid.summary.pipe'; -import { IgxGridDetailsPipe } from './grid.details.pipe'; -import { IgxGridExpandableCellComponent } from './expandable-cell.component'; -import { IgxGridGroupByAreaComponent } from '../grouping/grid-group-by-area.component'; -import { IgxTooltipModule } from '../../directives/tooltip'; -import { ReactiveFormsModule } from '@angular/forms'; +import { NgModule } from '@angular/core'; +import { IGX_GRID_DIRECTIVES } from './public_api'; + /** * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components */ @NgModule({ - declarations: [ - IgxGridComponent, - IgxGridRowComponent, - IgxGridGroupByRowComponent, - IgxGroupByRowTemplateDirective, - IgxGridDetailTemplateDirective, - IgxGridGroupingPipe, - IgxGridPagingPipe, - IgxGridSortingPipe, - IgxGridFilteringPipe, - IgxGridSummaryPipe, - IgxGridDetailsPipe, - IgxGridExpandableCellComponent, - IgxGridGroupByAreaComponent, - ], - exports: [ - IgxGridComponent, - IgxGridExpandableCellComponent, - IgxGridGroupByRowComponent, - IgxGridRowComponent, - IgxGroupByRowTemplateDirective, - IgxGridDetailTemplateDirective, - IgxGridGroupingPipe, - IgxGridPagingPipe, - IgxGridSortingPipe, - IgxGridFilteringPipe, - IgxGridSummaryPipe, - IgxGridDetailsPipe, - IgxGridGroupByAreaComponent, - IgxGridCommonModule - ], imports: [ - IgxGridCommonModule, - IgxTooltipModule, - ReactiveFormsModule + ...IGX_GRID_DIRECTIVES ], - schemas: [CUSTOM_ELEMENTS_SCHEMA] + exports: [ + ...IGX_GRID_DIRECTIVES + ] }) export class IgxGridModule {} diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.integration.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.integration.spec.ts index da3feacc596..eeb7a0b5aa5 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.integration.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.integration.spec.ts @@ -3,7 +3,6 @@ import { TestBed, fakeAsync, tick, waitForAsync, ComponentFixture } from '@angul import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './grid.module'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { ViewChild, Component } from '@angular/core'; import { IgxColumnLayoutComponent } from '../columns/column-layout.component'; @@ -11,6 +10,12 @@ import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec'; import { DefaultSortingStrategy, SortingDirection } from '../../data-operations/sorting-strategy'; import { GridFunctions, GRID_MRL_BLOCK } from '../../test-utils/grid-functions.spec'; import { ControlsFunction } from '../../test-utils/controls-functions.spec'; +import { IgxColumnComponent } from '../columns/column.component'; +import { IgxGridToolbarComponent } from '../toolbar/grid-toolbar.component'; +import { IgxGridToolbarActionsComponent } from '../toolbar/common'; +import { IgxGridToolbarHidingComponent } from '../toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../toolbar/grid-toolbar-pinning.component'; +import { NgFor, NgIf } from '@angular/common'; type FixtureType = ColumnLayoutGroupingTestComponent | ColumnLayouHidingTestComponent | ColumnLayoutResizingTestComponent @@ -27,15 +32,14 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { let grid: IgxGridComponent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, ColumnLayoutPinningTestComponent, ColumnLayoutFilteringTestComponent, ColumnLayouHidingTestComponent, ColumnLayoutGroupingTestComponent, ColumnLayoutResizingTestComponent - ], - imports: [ - NoopAnimationsModule, IgxGridModule] + ] }); })); @@ -234,7 +238,7 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { fixture.componentInstance.grid.width = '600px'; fixture.detectChanges(); - let gridFirstRow = grid.rowList.first; + const gridFirstRow = grid.rowList.first; // group1 should be hidden on init, check DOM GridFunctions.verifyLayoutHeadersAreAligned(grid, gridFirstRow); GridFunctions.verifyDOMMatchesLayoutSettings(grid, gridFirstRow, fixture.componentInstance.colGroups.slice(1)); @@ -594,7 +598,7 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { expect(grid.getColumnByName('Fax').pinned).toBeTruthy(); expect(grid.getColumnByName('Phone').pinned).toBeTruthy(); - let gridFirstRow = grid.rowList.first; + const gridFirstRow = grid.rowList.first; GridFunctions.verifyDOMMatchesLayoutSettings(grid, gridFirstRow, fixture.componentInstance.colGroups.slice(2, 3)); // headers are aligned to cells @@ -792,11 +796,11 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { }); describe('Filtering ', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fixture = TestBed.createComponent(ColumnLayoutFilteringTestComponent); fixture.detectChanges(); grid = fixture.componentInstance.grid; - })); + }); it('should enforce excel style filtering.', () => { const filteringCells = fixture.debugElement.queryAll(By.css('igx-grid-filtering-cell')); @@ -830,11 +834,11 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { }); describe('GroupBy ', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fixture = TestBed.createComponent(ColumnLayoutGroupingTestComponent); fixture.detectChanges(); grid = fixture.componentInstance.grid; - })); + }); it('should render rows correctly when grouped by a column and scrolling to bottom should not leave empty space.', async () => { grid.height = '600px'; @@ -899,11 +903,11 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { const GRID_COL_GROUP_THEAD = 'igx-grid-header-group'; const RESIZE_LINE_CLASS = '.igx-grid-th__resize-line'; - beforeEach(fakeAsync(() => { + beforeEach(() => { fixture = TestBed.createComponent(ColumnLayoutResizingTestComponent); fixture.detectChanges(); grid = fixture.componentInstance.grid; - })); + }); it('should correctly resize column on upper level with 3 spans and the two cols below it with span 1 that have width', async () => { grid.width = '1500px'; @@ -1155,11 +1159,11 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { }); describe('Selection ', () => { - beforeEach(fakeAsync(() => { + beforeEach(() => { fixture = TestBed.createComponent(ColumnLayoutGroupingTestComponent); fixture.detectChanges(); grid = fixture.componentInstance.grid; - })); + }); it('should return correct selected data via getSelectedData API.', () => { const selectedData1 = [{ @@ -1204,7 +1208,9 @@ describe('IgxGrid - multi-row-layout Integration #grid - ', () => { [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, IgxGridToolbarComponent, IgxGridToolbarHidingComponent, IgxGridToolbarActionsComponent, NgIf, NgFor] }) export class ColumnLayouHidingTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1251,7 +1257,9 @@ export class ColumnLayouHidingTestComponent { [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, IgxGridToolbarComponent, IgxGridToolbarPinningComponent, IgxGridToolbarActionsComponent, NgFor, NgIf] }) export class ColumnLayoutPinningTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1293,7 +1301,9 @@ export class ColumnLayoutPinningTestComponent { [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, NgFor] }) export class ColumnLayoutFilteringTestComponent extends ColumnLayoutPinningTestComponent { } @@ -1307,7 +1317,9 @@ export class ColumnLayoutFilteringTestComponent extends ColumnLayoutPinningTestC [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field' [groupable]="col.groupable"> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, NgFor] }) export class ColumnLayoutGroupingTestComponent extends ColumnLayoutPinningTestComponent { public override showToolbar = false; @@ -1333,7 +1345,9 @@ export class ColumnLayoutGroupingTestComponent extends ColumnLayoutPinningTestCo - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, NgFor] }) export class ColumnLayoutResizingTestComponent { diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.spec.ts index 7df5097ec7d..5d5cd494839 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.spec.ts @@ -1,5 +1,4 @@ import { TestBed, fakeAsync } from '@angular/core/testing'; -import { IgxGridModule } from './grid.module'; import { IgxGridComponent } from './grid.component'; import { Component, ViewChild } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -11,6 +10,9 @@ import { DefaultSortingStrategy, SortingDirection } from '../../data-operations/ import { configureTestSuite } from '../../test-utils/configure-suite'; import { ICellPosition } from '../common/events'; import { GridFunctions, GRID_MRL_BLOCK } from '../../test-utils/grid-functions.spec'; +import { NgFor } from '@angular/common'; +import { IgxColumnGroupComponent } from '../columns/column-group.component'; +import { IgxColumnComponent } from '../columns/column.component'; const GRID_COL_THEAD_CLASS = '.igx-grid-th'; const GRID_MRL_BLOCK_CLASS = `.${GRID_MRL_BLOCK}`; @@ -19,13 +21,10 @@ describe('IgxGrid - multi-row-layout #grid', () => { const DEBOUNCETIME = 60; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - ColumnLayoutTestComponent, - ColumnLayoutAndGroupsTestComponent - ], imports: [ NoopAnimationsModule, - IgxGridModule + ColumnLayoutTestComponent, + ColumnLayoutAndGroupsTestComponent ] }); })); @@ -92,7 +91,7 @@ describe('IgxGrid - multi-row-layout #grid', () => { fixture.componentInstance.grid.width = '617px'; fixture.detectChanges(); const grid = fixture.componentInstance.grid; - let gridFirstRow = grid.rowList.first; + const gridFirstRow = grid.rowList.first; // headers are aligned to cells GridFunctions.verifyLayoutHeadersAreAligned(grid, gridFirstRow); @@ -1144,7 +1143,9 @@ describe('IgxGrid - multi-row-layout #grid', () => { [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field' [editable]='col.editable'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, NgFor] }) export class ColumnLayoutTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1180,7 +1181,9 @@ export class ColumnLayoutTestComponent { [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, IgxColumnGroupComponent, NgFor] }) export class ColumnLayoutAndGroupsTestComponent extends ColumnLayoutTestComponent { diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.nested.props.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.nested.props.spec.ts index 27fa7fd9fba..7b4cd79bede 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.nested.props.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.nested.props.spec.ts @@ -1,6 +1,5 @@ import { configureTestSuite } from '../../test-utils/configure-suite'; import { TestBed, ComponentFixture, fakeAsync } from '@angular/core/testing'; -import { IgxGridModule } from './grid.module'; import { IgxGridComponent } from './grid.component'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition'; @@ -8,13 +7,12 @@ import { cloneArray, resolveNestedPath } from '../../core/utils'; import { Component, DebugElement, ViewChild } from '@angular/core'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { GridFunctions } from '../../test-utils/grid-functions.spec'; -import { IgxComboComponent, IgxComboModule } from '../../combo/public_api'; -import { IgxFocusModule } from '../../directives/focus/focus.directive'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { IgxToggleModule } from '../../directives/toggle/toggle.directive'; -import { IgxInputGroupModule } from '../../input-group/public_api'; +import { IgxComboComponent } from '../../combo/public_api'; import { IGridEditEventArgs } from '../common/events'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IgxColumnComponent } from '../public_api'; +import { IgxCellEditorTemplateDirective, IgxCellTemplateDirective } from '../columns/templates.directive'; +import { FormsModule } from '@angular/forms'; const first = (array: T[]): T => array[0]; @@ -128,7 +126,9 @@ const DATA2 = [ ]; @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxGridComponent] }) class NestedPropertiesGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent }) @@ -145,7 +145,9 @@ class NestedPropertiesGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) class NestedPropertiesGrid2Component { @ViewChild('grid', { static: true, read: IgxGridComponent }) @@ -153,10 +155,10 @@ class NestedPropertiesGrid2Component { } @Component({ - template: ` + template: ` - - + + {{ parseArray(cell.value) }} @@ -164,7 +166,9 @@ class NestedPropertiesGrid2Component { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxCellEditorTemplateDirective, IgxComboComponent, FormsModule] }) class NestedPropertyGridComponent { @ViewChild('grid', { static: true, read: IgxGridComponent }) @@ -210,8 +214,7 @@ describe('Grid - nested data source properties #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [NestedPropertiesGridComponent], - imports: [IgxGridModule, NoopAnimationsModule] + imports: [NoopAnimationsModule, NestedPropertiesGridComponent] }); })); @@ -343,8 +346,7 @@ describe('Grid nested data advanced editing #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [NestedPropertiesGrid2Component], - imports: [IgxGridModule, NoopAnimationsModule] + imports: [NoopAnimationsModule, NestedPropertiesGrid2Component] }); })); @@ -502,9 +504,7 @@ describe('Edit cell with data of type Array #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [NestedPropertyGridComponent], - imports: [IgxGridModule, IgxComboModule, FormsModule, IgxToggleModule, - ReactiveFormsModule, IgxFocusModule, IgxInputGroupModule, NoopAnimationsModule] + imports: [NoopAnimationsModule, NestedPropertyGridComponent] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.pagination.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.pagination.spec.ts index 27202f90afa..e69db157e91 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.pagination.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.pagination.spec.ts @@ -1,5 +1,4 @@ import { TestBed, fakeAsync, tick } from '@angular/core/testing'; -import { IgxGridModule } from './public_api'; import { GridWithUndefinedDataComponent } from '../../test-utils/grid-samples.spec'; import { PagingComponent, RemotePagingComponent } from '../../test-utils/grid-base-components.spec'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -34,12 +33,9 @@ const verifyGridPager = (fix, rowsCount, firstCellValue, pagerText, buttonsVisib describe('IgxGrid - Grid Paging #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - PagingComponent, + imports: [NoopAnimationsModule, PagingComponent, GridWithUndefinedDataComponent, - RemotePagingComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + RemotePagingComponent] }); })); @@ -453,7 +449,7 @@ describe('IgxGrid - Grid Paging #grid', () => { expect(errorMessage).toBe(''); grid = fix.componentInstance.grid; expect(grid.rowList.length).toBe(0); - tick(305); + tick(16); fix.detectChanges(); expect(grid.rowList.length).toBe(5); @@ -476,7 +472,7 @@ describe('IgxGrid - Grid Paging #grid', () => { grid = fix.componentInstance.grid; expect(grid.paginator.totalPages).toBe(4); const page = (index: number) => grid.page = index; - let desiredPageIndex = 2; + const desiredPageIndex = 2; page(2); fix.detectChanges(); tick(); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.pinning.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.pinning.spec.ts index e28e00da373..0f216fd115e 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.pinning.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.pinning.spec.ts @@ -1,11 +1,9 @@ import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxGridModule } from './public_api'; import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { ColumnPinningPosition, GridSelectionMode } from '../common/enums'; -import { IPinningConfig } from '../grid.common'; import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec'; import { CELL_PINNED_CLASS, @@ -28,6 +26,7 @@ import { IgxGridComponent } from './grid.component'; import { DropPosition } from '../moving/moving.service'; import { clearGridSubs, setupGridScrollDetection } from '../../test-utils/helper-utils.spec'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { IPinningConfig } from '../public_api'; describe('IgxGrid - Column Pinning #grid', () => { @@ -37,15 +36,14 @@ describe('IgxGrid - Column Pinning #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, PinningComponent, PinOnInitAndSelectionComponent, GridFeaturesComponent, MultiColumnHeadersWithGroupingComponent, GridPinningMRLComponent - - ], - imports: [NoopAnimationsModule, IgxGridModule] + ] }).compileComponents(); })) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.pipes.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.pipes.ts index e26f183436b..314c1e496b4 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.pipes.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.pipes.ts @@ -14,7 +14,10 @@ import { IGridSortingStrategy, IGridGroupingStrategy } from '../common/strategy' /** * @hidden */ -@Pipe({ name: 'gridSort' }) +@Pipe({ + name: 'gridSort', + standalone: true +}) export class IgxGridSortingPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } @@ -37,7 +40,10 @@ export class IgxGridSortingPipe implements PipeTransform { /** * @hidden */ -@Pipe({ name: 'gridGroupBy' }) +@Pipe({ + name: 'gridGroupBy', + standalone: true +}) export class IgxGridGroupingPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } @@ -74,7 +80,10 @@ export class IgxGridGroupingPipe implements PipeTransform { /** * @hidden */ -@Pipe({ name: 'gridPaging' }) +@Pipe({ + name: 'gridPaging', + standalone: true +}) export class IgxGridPagingPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } @@ -105,7 +114,10 @@ export class IgxGridPagingPipe implements PipeTransform { /** * @hidden */ -@Pipe({ name: 'gridFiltering' }) +@Pipe({ + name: 'gridFiltering', + standalone: true +}) export class IgxGridFilteringPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.search.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.search.spec.ts index 34e9249e8ed..e966324031e 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.search.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.search.spec.ts @@ -1,6 +1,6 @@ import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { IgxGridModule, IgxGridComponent } from './public_api'; +import { IgxGridComponent } from './public_api'; import { BasicGridSearchComponent } from '../../test-utils/grid-base-components.spec'; import { SampleTestData } from '../../test-utils/sample-test-data.spec'; import { GridWithAvatarComponent, GroupableGridSearchComponent, ScrollableGridSearchComponent } from '../../test-utils/grid-samples.spec'; @@ -25,13 +25,13 @@ describe('IgxGrid - search API #grid', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, BasicGridSearchComponent, GridWithAvatarComponent, GroupableGridSearchComponent, ScrollableGridSearchComponent - ], - imports: [IgxGridModule, NoopAnimationsModule] + ] }).compileComponents(); })) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.sorting.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.sorting.spec.ts index 9200e59f66a..4c59f0943e0 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.sorting.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.sorting.spec.ts @@ -1,6 +1,5 @@ import { TestBed, fakeAsync, tick } from '@angular/core/testing'; import { IgxGridComponent } from './grid.component'; -import { IgxGridModule } from './public_api'; import { DefaultSortingStrategy, SortingDirection } from '../../data-operations/sorting-strategy'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -18,13 +17,12 @@ describe('IgxGrid - Grid Sorting #grid', () => { configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ + imports: [ GridDeclaredColumnsComponent, SortByParityComponent, GridWithPrimaryKeyComponent, - SortByAnotherColumnComponent - ], - imports: [NoopAnimationsModule, IgxGridModule] + NoopAnimationsModule + ] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid.summary.pipe.ts b/projects/igniteui-angular/src/lib/grids/grid/grid.summary.pipe.ts index 463b574558e..edb74f3652c 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid.summary.pipe.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid.summary.pipe.ts @@ -9,7 +9,10 @@ import { GridType, IGX_GRID_BASE } from '../common/grid.interface'; interface ISkipRecord { skip?: boolean } /** @hidden */ -@Pipe({ name: 'gridSummary' }) +@Pipe({ + name: 'gridSummary', + standalone: true +}) export class IgxGridSummaryPipe implements PipeTransform { constructor(@Inject(IGX_GRID_BASE) private grid: GridType) { } diff --git a/projects/igniteui-angular/src/lib/grids/grid/groupby-row.component.ts b/projects/igniteui-angular/src/lib/grids/grid/groupby-row.component.ts index fe61f06877f..b3f40b63e8c 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/groupby-row.component.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/groupby-row.component.ts @@ -11,22 +11,41 @@ import { OnDestroy, Inject } from '@angular/core'; +import { NgIf, NgTemplateOutlet, DecimalPipe, DatePipe, getLocaleCurrencyCode, PercentPipe, CurrencyPipe } from '@angular/common'; + +import { takeUntil } from 'rxjs/operators'; +import { Subject } from 'rxjs'; + import { IGroupByRecord } from '../../data-operations/groupby-record.interface'; import { GridColumnDataType } from '../../data-operations/data-util'; import { IgxGridSelectionService } from '../selection/selection.service'; import { GridType, IGX_GRID_BASE } from '../common/grid.interface'; import { IgxFilteringService } from '../filtering/grid-filtering.service'; -import { takeUntil } from 'rxjs/operators'; -import { Subject } from 'rxjs'; import { IgxGridRowComponent } from './grid-row.component'; import { GridSelectionMode } from '../common/enums'; import { ISelectionNode } from '../common/types'; -import { getLocaleCurrencyCode } from '@angular/common'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxBadgeComponent } from '../../badge/badge.component'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxColumnFormatterPipe } from '../common/pipes'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-groupby-row', - templateUrl: './groupby-row.component.html' + templateUrl: './groupby-row.component.html', + standalone: true, + imports: [ + NgIf, + NgTemplateOutlet, + DecimalPipe, + DatePipe, + PercentPipe, + CurrencyPipe, + IgxIconComponent, + IgxBadgeComponent, + IgxCheckboxComponent, + IgxColumnFormatterPipe + ] }) export class IgxGridGroupByRowComponent implements OnDestroy { /** diff --git a/projects/igniteui-angular/src/lib/grids/grid/public_api.ts b/projects/igniteui-angular/src/lib/grids/grid/public_api.ts index 9301722b2a7..d4ba319f19e 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/public_api.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/public_api.ts @@ -1,11 +1,23 @@ -export * from '../public_api'; +import { IGX_GRID_COMMON_DIRECTIVES } from '../public_api'; +import { IgxGridComponent } from './grid.component'; +import { IgxExcelStyleHeaderIconDirective, IgxGridDetailTemplateDirective, IgxGroupAreaDropDirective, IgxGroupByRowTemplateDirective, IgxHeaderCollapseIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxRowCollapsedIndicatorDirective, IgxRowExpandedIndicatorDirective, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective } from './grid.directives'; + export * from './grid.component'; export * from './grid.directives'; -export * from './grid.module'; -export * from './grid-api.service'; -export * from './grid.pipes'; -export { IgxGridRowComponent as ϴIgxGridRowComponent} from './grid-row.component'; -export * from './grid.summary.pipe'; -export * from './grid.details.pipe'; -export * from './groupby-row.component'; -export * from './expandable-cell.component'; + +/* NOTE: Grid directives collection for ease-of-use import in standalone components scenario */ +export const IGX_GRID_DIRECTIVES = [ + IgxGridComponent, + IgxGroupByRowTemplateDirective, + IgxGridDetailTemplateDirective, + IgxRowExpandedIndicatorDirective, + IgxRowCollapsedIndicatorDirective, + IgxHeaderExpandIndicatorDirective, + IgxHeaderCollapseIndicatorDirective, + IgxExcelStyleHeaderIconDirective, + IgxSortHeaderIconDirective, + IgxSortAscendingHeaderIconDirective, + IgxSortDescendingHeaderIconDirective, + IgxGroupAreaDropDirective, + ...IGX_GRID_COMMON_DIRECTIVES +] as const; diff --git a/projects/igniteui-angular/src/lib/grids/grid/row-drag.directive.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/row-drag.directive.spec.ts index ded90f8c5e2..36217c635f8 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/row-drag.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/row-drag.directive.spec.ts @@ -1,6 +1,5 @@ import { Component, ViewChild, DebugElement, QueryList, TemplateRef } from '@angular/core'; import { TestBed, ComponentFixture } from '@angular/core/testing'; -import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; @@ -9,20 +8,21 @@ import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { DataParent, SampleTestData } from '../../test-utils/sample-test-data.spec'; import { Point } from '../../services/public_api'; -import { IgxGridModule } from './grid.module'; import { IgxGridComponent } from './grid.component'; import { IgxColumnComponent } from '../columns/column.component'; -import { IgxRowDragDirective } from '../row-drag.directive'; +import { IgxDragIndicatorIconDirective, IgxRowDragDirective, IgxRowDragGhostDirective } from '../row-drag.directive'; import { IRowDragStartEventArgs, IRowDragEndEventArgs } from '../common/events'; import { IgxDropDirective } from '../../directives/drag-drop/drag-drop.directive'; import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition'; -import { IgxHierarchicalGridComponent, IgxHierarchicalGridModule } from '../hierarchical-grid/public_api'; +import { IgxHierarchicalGridComponent } from '../hierarchical-grid/public_api'; import { IgxRowIslandComponent } from '../hierarchical-grid/row-island.component'; -import { IgxTreeGridComponent, IgxTreeGridModule } from '../tree-grid/public_api'; +import { IgxTreeGridComponent } from '../tree-grid/public_api'; import { GridSelectionMode } from '../common/enums'; import { CellType, GridType, RowType } from '../common/grid.interface'; import { SortingDirection } from '../../data-operations/sorting-strategy'; import { IgxRowDirective } from '../row.directive'; +import { NgStyle } from '@angular/common'; +import { IgxIconComponent } from '../../icon/icon.component'; const DEBOUNCE_TIME = 50; const CSS_CLASS_DRAG_INDICATOR = '.igx-grid__drag-indicator'; @@ -61,13 +61,9 @@ describe('Row Drag Tests', () => { let rowToDrag: IgxRowDirective; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridRowDraggableComponent - ], imports: [ - FormsModule, NoopAnimationsModule, - IgxGridModule + IgxGridRowDraggableComponent ] }); })); @@ -412,13 +408,9 @@ describe('Row Drag Tests', () => { let dragRows: DebugElement[]; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridRowCustomGhostDraggableComponent - ], imports: [ - FormsModule, NoopAnimationsModule, - IgxGridModule + IgxGridRowCustomGhostDraggableComponent ] }); })); @@ -501,13 +493,9 @@ describe('Row Drag Tests', () => { let dragRows: DebugElement[]; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxGridFeaturesRowDragComponent - ], imports: [ - FormsModule, NoopAnimationsModule, - IgxGridModule + IgxGridFeaturesRowDragComponent ] }); })); @@ -957,15 +945,10 @@ describe('Row Drag Tests', () => { let pointerMoveToDropEvent: PointerEvent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxHierarchicalGridTestComponent, - IgxHierarchicalGridCustomGhostTestComponent - ], imports: [ - FormsModule, NoopAnimationsModule, - IgxGridModule, - IgxHierarchicalGridModule + IgxHierarchicalGridTestComponent, + IgxHierarchicalGridCustomGhostTestComponent ] }); })); @@ -1111,14 +1094,9 @@ describe('Row Drag Tests', () => { let pointerMoveToDropEvent: PointerEvent; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxTreeGridTestComponent - ], imports: [ - FormsModule, NoopAnimationsModule, - IgxGridModule, - IgxTreeGridModule + IgxTreeGridTestComponent ] }); })); @@ -1210,7 +1188,9 @@ describe('Row Drag Tests', () => {
    - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxDropDirective, NgStyle] }) export class IgxGridRowDraggableComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1278,7 +1258,9 @@ export class IgxGridRowDraggableComponent extends DataParent { expand_less - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxIconComponent, IgxDropDirective, IgxRowDragGhostDirective, IgxDragIndicatorIconDirective, NgStyle] }) export class IgxGridRowCustomGhostDraggableComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1340,7 +1322,9 @@ export class IgxGridRowCustomGhostDraggableComponent extends DataParent {
    - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxDropDirective] }) export class IgxGridFeaturesRowDragComponent extends DataParent { @ViewChild('dragGrid', { read: IgxGridComponent, static: true }) @@ -1379,7 +1363,9 @@ export class IgxGridFeaturesRowDragComponent extends DataParent { -
    ` +
    `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent, IgxDropDirective] }) export class IgxHierarchicalGridTestComponent { @ViewChild('hierarchicalDragGrid', { read: IgxHierarchicalGridComponent, static: true }) public hDragGrid: IgxHierarchicalGridComponent; @@ -1418,7 +1404,9 @@ export class IgxHierarchicalGridTestComponent { Moving {{data.ProductName}}!
    - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxRowIslandComponent, IgxRowDragGhostDirective] }) export class IgxHierarchicalGridCustomGhostTestComponent { @ViewChild('hierarchicalDragGrid', { read: IgxHierarchicalGridComponent, static: true }) public hDragGrid: IgxHierarchicalGridComponent; @@ -1449,7 +1437,9 @@ export class IgxHierarchicalGridCustomGhostTestComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxGridComponent, IgxColumnComponent, IgxDropDirective] }) export class IgxTreeGridTestComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -1522,7 +1512,7 @@ const verifyRowDragStartEvent =( dragRow: RowType, dragElement: HTMLElement, dragDirective: IgxRowDragDirective, - timesCalled: number = 1, + timesCalled = 1, cancel = false) => { expect(grid.rowDragStart.emit).toHaveBeenCalledTimes(timesCalled); expect(grid.rowDragStart.emit).toHaveBeenCalledWith({ @@ -1548,7 +1538,7 @@ const verifyRowDragEndEvent = ( dragElement: HTMLElement, dragDirective: IgxRowDragDirective, animations: boolean, - timesCalled: number = 1) => { + timesCalled = 1) => { expect(grid.rowDragEnd.emit).toHaveBeenCalledTimes(timesCalled); expect(grid.rowDragEnd.emit).toHaveBeenCalledWith({ dragDirective, diff --git a/projects/igniteui-angular/src/lib/grids/grouping/grid-group-by-area.component.ts b/projects/igniteui-angular/src/lib/grids/grouping/grid-group-by-area.component.ts index ea420c22d7f..348bd520fa6 100644 --- a/projects/igniteui-angular/src/lib/grids/grouping/grid-group-by-area.component.ts +++ b/projects/igniteui-angular/src/lib/grids/grouping/grid-group-by-area.component.ts @@ -8,7 +8,14 @@ import { PlatformUtil } from '../../core/utils'; import { IGroupingExpression } from '../../data-operations/grouping-expression.interface'; import { ISortingExpression } from '../../data-operations/sorting-strategy'; import { FlatGridType } from '../common/grid.interface'; -import { IgxGroupByAreaDirective } from './group-by-area.directive'; +import { IgxGroupByAreaDirective, IgxGroupByMetaPipe } from './group-by-area.directive'; +import { IgxDropDirective } from '../../directives/drag-drop/drag-drop.directive'; +import { IgxGroupAreaDropDirective } from '../grid/grid.directives'; +import { IgxSuffixDirective } from '../../directives/suffix/suffix.directive'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxChipComponent } from '../../chips/chip.component'; +import { NgFor, NgTemplateOutlet } from '@angular/common'; +import { IgxChipsAreaComponent } from '../../chips/chips-area.component'; /** * An internal component representing the group-by drop area for the igx-grid component. @@ -18,7 +25,9 @@ import { IgxGroupByAreaDirective } from './group-by-area.directive'; @Component({ selector: 'igx-grid-group-by-area', templateUrl: 'group-by-area.component.html', - providers: [{ provide: IgxGroupByAreaDirective, useExisting: IgxGridGroupByAreaComponent }] + providers: [{ provide: IgxGroupByAreaDirective, useExisting: IgxGridGroupByAreaComponent }], + standalone: true, + imports: [IgxChipsAreaComponent, NgFor, IgxChipComponent, IgxIconComponent, IgxSuffixDirective, IgxGroupAreaDropDirective, IgxDropDirective, NgTemplateOutlet, IgxGroupByMetaPipe] }) export class IgxGridGroupByAreaComponent extends IgxGroupByAreaDirective { @Input() diff --git a/projects/igniteui-angular/src/lib/grids/grouping/group-by-area.directive.ts b/projects/igniteui-angular/src/lib/grids/grouping/group-by-area.directive.ts index 3aa6479c5a1..ff439b1ea95 100644 --- a/projects/igniteui-angular/src/lib/grids/grouping/group-by-area.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/grouping/group-by-area.directive.ts @@ -12,7 +12,7 @@ import { ViewChildren } from '@angular/core'; import { IChipsAreaReorderEventArgs, IgxChipComponent } from '../../chips/public_api'; -import { DisplayDensity } from '../../core/displayDensity'; +import { DisplayDensity } from '../../core/density'; import { PlatformUtil } from '../../core/utils'; import { IGroupingExpression } from '../../data-operations/grouping-expression.interface'; import { SortingDirection } from '../../data-operations/sorting-strategy'; @@ -187,7 +187,10 @@ export abstract class IgxGroupByAreaDirective { * * @hidden @internal */ -@Pipe({ name: 'igxGroupByMeta' }) +@Pipe({ + name: 'igxGroupByMeta', + standalone: true +}) export class IgxGroupByMetaPipe implements PipeTransform { public transform(key: string, grid: GridType) { diff --git a/projects/igniteui-angular/src/lib/grids/grouping/tree-grid-group-by-area.component.ts b/projects/igniteui-angular/src/lib/grids/grouping/tree-grid-group-by-area.component.ts index 4f06fdd6ead..962ec414970 100644 --- a/projects/igniteui-angular/src/lib/grids/grouping/tree-grid-group-by-area.component.ts +++ b/projects/igniteui-angular/src/lib/grids/grouping/tree-grid-group-by-area.component.ts @@ -13,7 +13,14 @@ import { IChipsAreaReorderEventArgs } from '../../chips/public_api'; import { PlatformUtil } from '../../core/utils'; import { IGroupingExpression } from '../../data-operations/grouping-expression.interface'; import { ISortingExpression } from '../../data-operations/sorting-strategy'; -import { IgxGroupByAreaDirective } from './group-by-area.directive'; +import { IgxGroupByAreaDirective, IgxGroupByMetaPipe } from './group-by-area.directive'; +import { IgxDropDirective } from '../../directives/drag-drop/drag-drop.directive'; +import { IgxGroupAreaDropDirective } from '../grid/grid.directives'; +import { IgxSuffixDirective } from '../../directives/suffix/suffix.directive'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxChipComponent } from '../../chips/chip.component'; +import { NgFor, NgTemplateOutlet } from '@angular/common'; +import { IgxChipsAreaComponent } from '../../chips/chips-area.component'; /** * An internal component representing the group-by drop area for the igx-grid component. @@ -23,7 +30,9 @@ import { IgxGroupByAreaDirective } from './group-by-area.directive'; @Component({ selector: 'igx-tree-grid-group-by-area', templateUrl: 'group-by-area.component.html', - providers: [{ provide: IgxGroupByAreaDirective, useExisting: IgxTreeGridGroupByAreaComponent }] + providers: [{ provide: IgxGroupByAreaDirective, useExisting: IgxTreeGridGroupByAreaComponent }], + standalone: true, + imports: [IgxChipsAreaComponent, NgFor, IgxChipComponent, IgxIconComponent, IgxSuffixDirective, IgxGroupAreaDropDirective, IgxDropDirective, NgTemplateOutlet, IgxGroupByMetaPipe] }) export class IgxTreeGridGroupByAreaComponent extends IgxGroupByAreaDirective implements AfterContentInit, OnDestroy { @Input() diff --git a/projects/igniteui-angular/src/lib/grids/headers/grid-header-group.component.ts b/projects/igniteui-angular/src/lib/grids/headers/grid-header-group.component.ts index 2ffdccbc057..3b23ac8caa3 100644 --- a/projects/igniteui-angular/src/lib/grids/headers/grid-header-group.component.ts +++ b/projects/igniteui-angular/src/lib/grids/headers/grid-header-group.component.ts @@ -20,6 +20,12 @@ import { IgxGridFilteringCellComponent } from '../filtering/base/grid-filtering- import { ColumnType, GridType, IGX_GRID_BASE } from '../common/grid.interface'; import { GridSelectionMode } from '../common/enums'; import { PlatformUtil } from '../../core/utils'; +import { IgxHeaderGroupWidthPipe, IgxHeaderGroupStylePipe } from './pipes'; +import { IgxResizeHandleDirective } from '../resizing/resize-handle.directive'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxColumnMovingDropDirective } from '../moving/moving.drop.directive'; +import { IgxColumnMovingDragDirective } from '../moving/moving.drag.directive'; +import { NgIf, NgClass, NgStyle, NgFor, NgTemplateOutlet } from '@angular/common'; const Z_INDEX = 9999; @@ -29,7 +35,9 @@ const Z_INDEX = 9999; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header-group', - templateUrl: './grid-header-group.component.html' + templateUrl: './grid-header-group.component.html', + standalone: true, + imports: [NgIf, NgClass, NgStyle, NgFor, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxIconComponent, NgTemplateOutlet, IgxGridHeaderComponent, IgxGridFilteringCellComponent, IgxResizeHandleDirective, IgxHeaderGroupWidthPipe, IgxHeaderGroupStylePipe] }) export class IgxGridHeaderGroupComponent implements DoCheck { diff --git a/projects/igniteui-angular/src/lib/grids/headers/grid-header-row.component.ts b/projects/igniteui-angular/src/lib/grids/headers/grid-header-row.component.ts index 245e8c0aa22..8db488ce2fa 100644 --- a/projects/igniteui-angular/src/lib/grids/headers/grid-header-row.component.ts +++ b/projects/igniteui-angular/src/lib/grids/headers/grid-header-row.component.ts @@ -11,7 +11,7 @@ import { ViewChild, ViewChildren } from '@angular/core'; -import { DisplayDensity } from '../../core/displayDensity'; +import { DisplayDensity } from '../../core/density'; import { flatten } from '../../core/utils'; import { IgxGridForOfDirective } from '../../directives/for-of/for_of.directive'; import { ColumnType, GridType, IgxHeadSelectorTemplateContext } from '../common/grid.interface'; @@ -19,6 +19,11 @@ import { IgxGridFilteringCellComponent } from '../filtering/base/grid-filtering- import { IgxGridFilteringRowComponent } from '../filtering/base/grid-filtering-row.component'; import { IgxGridHeaderGroupComponent } from './grid-header-group.component'; import { IgxGridHeaderComponent } from './grid-header.component'; +import { IgxHeaderGroupWidthPipe, IgxHeaderGroupStylePipe } from './pipes'; +import { IgxGridTopLevelColumns } from '../common/pipes'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxColumnMovingDropDirective } from '../moving/moving.drop.directive'; +import { NgIf, NgTemplateOutlet, NgClass, NgFor, NgStyle } from '@angular/common'; /** * @@ -31,7 +36,9 @@ import { IgxGridHeaderComponent } from './grid-header.component'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header-row', - templateUrl: './grid-header-row.component.html' + templateUrl: './grid-header-row.component.html', + standalone: true, + imports: [NgIf, IgxColumnMovingDropDirective, NgTemplateOutlet, NgClass, NgFor, IgxGridHeaderGroupComponent, NgStyle, IgxGridForOfDirective, IgxGridFilteringRowComponent, IgxCheckboxComponent, IgxGridTopLevelColumns, IgxHeaderGroupWidthPipe, IgxHeaderGroupStylePipe] }) export class IgxGridHeaderRowComponent implements DoCheck { diff --git a/projects/igniteui-angular/src/lib/grids/headers/grid-header.component.ts b/projects/igniteui-angular/src/lib/grids/headers/grid-header.component.ts index 1365d59ce3a..184a05ff0f6 100644 --- a/projects/igniteui-angular/src/lib/grids/headers/grid-header.component.ts +++ b/projects/igniteui-angular/src/lib/grids/headers/grid-header.component.ts @@ -17,8 +17,11 @@ import { IgxColumnResizingService } from '../resizing/resizing.service'; import { Subject } from 'rxjs'; import { ColumnType, GridType, IGX_GRID_BASE } from '../common/grid.interface'; import { GridSelectionMode } from '../common/enums'; -import { DisplayDensity } from '../../core/displayDensity'; +import { DisplayDensity } from '../../core/density'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { SortingIndexPipe } from './pipes'; +import { NgTemplateOutlet, NgIf, NgClass } from '@angular/common'; +import { IgxIconComponent } from '../../icon/icon.component'; /** * @hidden @@ -26,7 +29,9 @@ import { SortingDirection } from '../../data-operations/sorting-strategy'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-header', - templateUrl: 'grid-header.component.html' + templateUrl: 'grid-header.component.html', + standalone: true, + imports: [IgxIconComponent, NgTemplateOutlet, NgIf, NgClass, SortingIndexPipe] }) export class IgxGridHeaderComponent implements DoCheck, OnDestroy { diff --git a/projects/igniteui-angular/src/lib/grids/headers/headers.module.ts b/projects/igniteui-angular/src/lib/grids/headers/headers.module.ts deleted file mode 100644 index b960999892e..00000000000 --- a/projects/igniteui-angular/src/lib/grids/headers/headers.module.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { NgModule } from '@angular/core'; -import { IgxGridHeaderComponent } from './grid-header.component'; -import { IgxGridHeaderGroupComponent } from './grid-header-group.component'; -import { IgxGridSharedModules } from '../common/shared.module'; -import { IgxColumnMovingModule } from '../moving/moving.module'; -import { IgxGridFilteringModule } from '../filtering/base/filtering.module'; -import { IgxGridResizingModule } from '../resizing/resize.module'; -import { IgxHeaderGroupStylePipe, IgxHeaderGroupWidthPipe, SortingIndexPipe } from './pipes'; -export * from './grid-header-group.component'; -export * from './grid-header.component'; -import { IgxGridPipesModule } from '../common/grid-pipes.module'; -import { IgxGridHeaderRowComponent } from './grid-header-row.component'; - -export * from './pipes'; -export { IgxGridHeaderComponent } from './grid-header.component'; -export { IgxGridHeaderGroupComponent } from './grid-header-group.component'; -export { IgxGridHeaderRowComponent } from './grid-header-row.component'; - -@NgModule({ - declarations: [ - IgxGridHeaderComponent, - IgxGridHeaderGroupComponent, - IgxGridHeaderRowComponent, - SortingIndexPipe, - IgxHeaderGroupWidthPipe, - IgxHeaderGroupStylePipe - ], - imports: [ - IgxGridSharedModules, - IgxGridFilteringModule, - IgxColumnMovingModule, - IgxGridResizingModule, - IgxGridPipesModule - ], - exports: [ - IgxGridHeaderComponent, - IgxGridHeaderGroupComponent, - IgxGridHeaderRowComponent, - IgxHeaderGroupWidthPipe, - SortingIndexPipe, - IgxHeaderGroupStylePipe - ] -}) -export class IgxGridHeadersModule {} diff --git a/projects/igniteui-angular/src/lib/grids/headers/pipes.ts b/projects/igniteui-angular/src/lib/grids/headers/pipes.ts index 02012121884..2fae67d1b14 100644 --- a/projects/igniteui-angular/src/lib/grids/headers/pipes.ts +++ b/projects/igniteui-angular/src/lib/grids/headers/pipes.ts @@ -3,7 +3,10 @@ import { ISortingExpression } from '../../data-operations/sorting-strategy'; import { ColumnType } from '../common/grid.interface'; -@Pipe({ name: 'sortingIndex' }) +@Pipe({ + name: 'sortingIndex', + standalone: true +}) export class SortingIndexPipe implements PipeTransform { public transform(columnField: string, sortingExpressions: ISortingExpression[]): number { let sortIndex = sortingExpressions.findIndex(expression => expression.fieldName === columnField); @@ -11,7 +14,10 @@ export class SortingIndexPipe implements PipeTransform { } } -@Pipe({ name: 'igxHeaderGroupWidth' }) +@Pipe({ + name: 'igxHeaderGroupWidth', + standalone: true +}) export class IgxHeaderGroupWidthPipe implements PipeTransform { public transform(width: any, minWidth: any, hasLayout: boolean) { @@ -22,7 +28,10 @@ export class IgxHeaderGroupWidthPipe implements PipeTransform { } -@Pipe({ name: 'igxHeaderGroupStyle' }) +@Pipe({ + name: 'igxHeaderGroupStyle', + standalone: true +}) export class IgxHeaderGroupStylePipe implements PipeTransform { public transform(styles: { [prop: string]: any }, column: ColumnType, _: number): { [prop: string]: any } { diff --git a/projects/igniteui-angular/src/lib/grids/headers/public_api.ts b/projects/igniteui-angular/src/lib/grids/headers/public_api.ts new file mode 100644 index 00000000000..e95bac76f3d --- /dev/null +++ b/projects/igniteui-angular/src/lib/grids/headers/public_api.ts @@ -0,0 +1,14 @@ +import { IgxGridHeaderGroupComponent } from './grid-header-group.component'; +import { IgxGridHeaderRowComponent } from './grid-header-row.component'; +import { IgxGridHeaderComponent } from './grid-header.component'; + +export { IgxGridHeaderComponent } from './grid-header.component'; +export { IgxGridHeaderGroupComponent } from './grid-header-group.component'; +export { IgxGridHeaderRowComponent } from './grid-header-row.component'; + +/* NOTE: Grid headers directives collection for ease-of-use import in standalone components scenario */ +export const IGX_GRID_HEADERS_DIRECTIVES = [ + IgxGridHeaderComponent, + IgxGridHeaderGroupComponent, + IgxGridHeaderRowComponent +] as const; diff --git a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-cell.component.ts b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-cell.component.ts index b130a1578f0..a5de0127753 100644 --- a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-cell.component.ts +++ b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-cell.component.ts @@ -5,12 +5,32 @@ import { HammerGesturesManager } from '../../core/touch'; import { PlatformUtil } from '../../core/utils'; import { GridType, IGX_GRID_BASE } from '../common/grid.interface'; import { IgxOverlayService } from '../../services/public_api'; +import { IgxGridCellImageAltPipe, IgxStringReplacePipe, IgxColumnFormatterPipe } from '../common/pipes'; +import { IgxTooltipDirective } from '../../directives/tooltip/tooltip.directive'; +import { IgxTooltipTargetDirective } from '../../directives/tooltip/tooltip-target.directive'; +import { IgxSuffixDirective } from '../../directives/suffix/suffix.directive'; +import { IgxPrefixDirective } from '../../directives/prefix/prefix.directive'; +import { IgxDateTimeEditorDirective } from '../../directives/date-time-editor/date-time-editor.directive'; +import { IgxTimePickerComponent } from '../../time-picker/time-picker.component'; +import { IgxDatePickerComponent } from '../../date-picker/date-picker.component'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxTextSelectionDirective } from '../../directives/text-selection/text-selection.directive'; +import { IgxFocusDirective } from '../../directives/focus/focus.directive'; +import { IgxInputDirective } from '../../directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../input-group/input-group.component'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxTextHighlightDirective } from '../../directives/text-highlight/text-highlight.directive'; +import { IgxChipComponent } from '../../chips/chip.component'; +import { NgIf, NgClass, NgTemplateOutlet, DecimalPipe, PercentPipe, CurrencyPipe, DatePipe } from '@angular/common'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-hierarchical-grid-cell', templateUrl: '../cell.component.html', - providers: [HammerGesturesManager] + providers: [HammerGesturesManager], + standalone: true, + imports: [NgIf, IgxChipComponent, IgxTextHighlightDirective, IgxIconComponent, NgClass, FormsModule, ReactiveFormsModule, IgxInputGroupComponent, IgxInputDirective, IgxFocusDirective, IgxTextSelectionDirective, IgxCheckboxComponent, IgxDatePickerComponent, IgxTimePickerComponent, IgxDateTimeEditorDirective, IgxPrefixDirective, IgxSuffixDirective, NgTemplateOutlet, IgxTooltipTargetDirective, IgxTooltipDirective, IgxGridCellImageAltPipe, IgxStringReplacePipe, IgxColumnFormatterPipe, DecimalPipe, PercentPipe, CurrencyPipe, DatePipe] }) export class IgxHierarchicalGridCellComponent extends IgxGridCellComponent implements OnInit { // protected hSelection; diff --git a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-add-row.spec.ts b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-add-row.spec.ts index 66023e33bb4..b78c525c4a4 100644 --- a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-add-row.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-add-row.spec.ts @@ -1,8 +1,8 @@ import { TestBed } from '@angular/core/testing'; -import { IgxHierarchicalGridModule, IgxHierarchicalGridComponent } from './public_api'; +import { IgxHierarchicalGridComponent } from './public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxActionStripModule, IgxActionStripComponent } from '../../action-strip/public_api'; +import { IgxActionStripComponent } from '../../action-strip/public_api'; import { IgxHierarchicalGridActionStripComponent } from '../../test-utils/hierarchical-grid-components.spec'; import { wait } from '../../test-utils/ui-interactions.spec'; import { By } from '@angular/platform-browser'; @@ -19,10 +19,7 @@ describe('IgxHierarchicalGrid - Add Row UI #tGrid', () => { }; configureTestSuite((() => { return TestBed.configureTestingModule({ - declarations: [ - IgxHierarchicalGridActionStripComponent - ], - imports: [IgxHierarchicalGridModule, NoopAnimationsModule, IgxActionStripModule] + imports: [NoopAnimationsModule, IgxHierarchicalGridActionStripComponent] }); })); diff --git a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts index 1a10095d311..6032524e22b 100644 --- a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts @@ -21,7 +21,7 @@ import { IgxGridBaseDirective } from '../grid-base.directive'; import { IgxHierarchicalGridAPIService } from './hierarchical-grid-api.service'; import { IgxRowIslandComponent } from './row-island.component'; import { IgxFilteringService } from '../filtering/grid-filtering.service'; -import { IDisplayDensityOptions, DisplayDensityToken } from '../../core/displayDensity'; +import { IDisplayDensityOptions, DisplayDensityToken } from '../../core/density'; import { IgxSummaryOperand } from '../summaries/grid-summary'; import { DOCUMENT } from '@angular/common'; import { IgxHierarchicalGridNavigationService } from './hierarchical-grid-navigation.service'; diff --git a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component.html b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component.html index 7bccdb642ee..4e544c167f6 100644 --- a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component.html +++ b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component.html @@ -20,7 +20,7 @@
    + [style.height.px]="totalHeight" [style.width.px]="calcWidth" #tbody (scroll)="preventContainerScroll($event)"> @@ -35,9 +35,9 @@ | gridRowPinning:id:true:pipeTrigger | gridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger:true | gridSort:sortingExpressions:[]:sortStrategy:id:pipeTrigger:true as pinnedData"> -
    + [style.width.px]="calcWidth"> @@ -56,13 +56,13 @@ | gridHierarchical:expansionStates:id:primaryKey:childLayoutKeys:pipeTrigger | gridAddRow:false:pipeTrigger | gridRowPinning:id:false:pipeTrigger" - [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]='verticalScroll' - [igxForContainerSize]='calcHeight' [igxForItemSize]="renderedRowHeight" [igxForTrackBy]='trackChanges' + [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]="verticalScroll" + [igxForContainerSize]="calcHeight" [igxForItemSize]="renderedRowHeight" [igxForTrackBy]="trackChanges" #verticalScrollContainer (chunkPreload)="dataLoading($event)" (dataChanging)="dataRebinding($event)" (dataChanged)="dataRebound($event)"> + [igxTemplateOutlet]="(isHierarchicalRecord(rowData) ? hierarchical_record_template : (isChildGridRecord(rowData) ? child_record_template : hierarchical_record_template))" + [igxTemplateOutletContext]="getContext(rowData, rowIndex, false)" (viewCreated)="viewCreatedHandler($event)" + (viewMoved)="viewMovedHandler($event)" (cachedViewLoaded)="cachedViewLoaded($event)"> @@ -80,13 +80,13 @@ -
    + [data]="rowData" [layout]="layout" #row>
    @@ -99,45 +99,45 @@
    - +
    -
    -
    -
    - +
    +
    +
    +
    -
    +
    - {{resourceStrings.igx_grid_snackbar_addrow_label}} + {{resourceStrings.igx_grid_snackbar_addrow_label}}
    -
    +
    - -
    -
    -
    -
    - +
    +
    +
    +
    -
    +
    -
    ` +
    `, + standalone: true, + imports: [NgIf, IgxToggleDirective] }) export class SimpleDynamicWithDirectiveComponent { @ViewChild(IgxToggleDirective, { static: true }) @@ -4486,7 +4484,8 @@ export class SimpleDynamicWithDirectiveComponent { padding: 0; margin: 0; border: none; - }`] + }`], + standalone: true }) export class EmptyPageComponent { @ViewChild('button', { static: true }) public buttonElement: ElementRef; @@ -4506,7 +4505,8 @@ export class EmptyPageComponent {
    `, - encapsulation: ViewEncapsulation.ShadowDom + encapsulation: ViewEncapsulation.ShadowDom, + standalone: true }) export class EmptyPageInShadowDomComponent { @ViewChild('button', { static: true }) public buttonElement: ElementRef; @@ -4526,7 +4526,8 @@ export class EmptyPageInShadowDomComponent { padding: 0px; margin: 0px; border: 0px; - }`] + }`], + standalone: true }) export class DownRightButtonComponent { @ViewChild('button', { static: true }) public buttonElement: ElementRef; @@ -4565,7 +4566,8 @@ export class DownRightButtonComponent { width: 100px; height: 60px; border: 0px; - }`] + }`], + standalone: true }) export class TopLeftOffsetComponent { @@ -4585,7 +4587,8 @@ export class TopLeftOffsetComponent {
    -
    ` +
    `, + standalone: true }) export class TwoButtonsComponent { public settings: OverlaySettings = { modal: false }; @@ -4620,7 +4623,8 @@ export class TwoButtonsComponent { width: 100px; height: 60px; border: 0; - }`] + }`], + standalone: true }) export class WidthTestOverlayComponent { @@ -4658,7 +4662,9 @@ export class WidthTestOverlayComponent {

    AAAAA

    AAAAA

    - ` + `, + standalone: true, + imports: [NgIf] }) export class ScrollableComponent { @ViewChild(IgxToggleDirective, { static: true }) @@ -4689,7 +4695,8 @@ export class ScrollableComponent { Show Overlay - ` + `, + standalone: true }) export class FlexContainerComponent { @ViewChild('button', { static: true }) public buttonElement: ElementRef; @@ -4701,34 +4708,3 @@ export class FlexContainerComponent { this.overlay.show(this.overlay.attach(SimpleDynamicComponent), this.overlaySettings); } } - -const DYNAMIC_COMPONENTS = [ - EmptyPageComponent, - SimpleRefComponent, - EmptyPageInShadowDomComponent, - SimpleDynamicComponent, - SimpleBigSizeComponent, - DownRightButtonComponent, - TopLeftOffsetComponent, - TwoButtonsComponent, - WidthTestOverlayComponent, - ScrollableComponent, - FlexContainerComponent -]; - -const DIRECTIVE_COMPONENTS = [ - SimpleDynamicWithDirectiveComponent -]; - -@NgModule({ - imports: [BrowserModule], - declarations: [DYNAMIC_COMPONENTS], - exports: [DYNAMIC_COMPONENTS] -}) -export class DynamicModule { } - -@NgModule({ - imports: [IgxCalendarModule, IgxAvatarModule, IgxDatePickerModule] -}) -export class IgxComponentsModule { -} diff --git a/projects/igniteui-angular/src/lib/services/overlay/overlay.ts b/projects/igniteui-angular/src/lib/services/overlay/overlay.ts index c2fe7ce7937..5521bc28a50 100644 --- a/projects/igniteui-angular/src/lib/services/overlay/overlay.ts +++ b/projects/igniteui-angular/src/lib/services/overlay/overlay.ts @@ -1,4 +1,4 @@ -import { AnimationBuilder, AnimationReferenceMetadata } from '@angular/animations'; +import { AnimationReferenceMetadata } from '@angular/animations'; import { DOCUMENT } from '@angular/common'; import { ApplicationRef, @@ -159,7 +159,6 @@ export class IgxOverlayService implements OnDestroy { private _factoryResolver: ComponentFactoryResolver, private _appRef: ApplicationRef, private _injector: Injector, - private builder: AnimationBuilder, @Inject(DOCUMENT) private document: any, private _zone: NgZone, protected platformUtil: PlatformUtil, diff --git a/projects/igniteui-angular/src/lib/services/transaction/igx-transaction.ts b/projects/igniteui-angular/src/lib/services/transaction/igx-transaction.ts index 7b14b2e8919..4d95b2e08f9 100644 --- a/projects/igniteui-angular/src/lib/services/transaction/igx-transaction.ts +++ b/projects/igniteui-angular/src/lib/services/transaction/igx-transaction.ts @@ -71,7 +71,7 @@ export class IgxTransactionService exten * @param pending Should get pending state * @returns State of the record if any */ - public override getState(id: any, pending: boolean = false): S { + public override getState(id: any, pending = false): S { return pending ? this._pendingStates.get(id) : this._states.get(id); } diff --git a/projects/igniteui-angular/src/lib/services/transaction/transaction-factory.service.ts b/projects/igniteui-angular/src/lib/services/transaction/transaction-factory.service.ts index ce212eb05a9..db27ad20227 100644 --- a/projects/igniteui-angular/src/lib/services/transaction/transaction-factory.service.ts +++ b/projects/igniteui-angular/src/lib/services/transaction/transaction-factory.service.ts @@ -57,7 +57,7 @@ export class IgxHierarchicalTransactionFactory extends IgxFlatTransactionFactory public override create(type: TRANSACTION_TYPE): HierarchicalTransactionService { switch (type) { case (TRANSACTION_TYPE.Base): - return new IgxHierarchicalTransactionService();; + return new IgxHierarchicalTransactionService(); default: return new IgxBaseTransactionService(); } diff --git a/projects/igniteui-angular/src/lib/simple-combo/public_api.ts b/projects/igniteui-angular/src/lib/simple-combo/public_api.ts index f4c14031377..d99538332e4 100644 --- a/projects/igniteui-angular/src/lib/simple-combo/public_api.ts +++ b/projects/igniteui-angular/src/lib/simple-combo/public_api.ts @@ -1 +1,34 @@ +import { + IgxComboAddItemDirective, + IgxComboClearIconDirective, + IgxComboEmptyDirective, + IgxComboFooterDirective, + IgxComboHeaderDirective, + IgxComboHeaderItemDirective, + IgxComboItemDirective, + IgxComboToggleIconDirective +} from '../combo/combo.directives'; +import { IgxHintDirective } from '../directives/hint/hint.directive'; +import { IgxLabelDirective } from '../directives/label/label.directive'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxSimpleComboComponent } from './simple-combo.component'; + export * from './simple-combo.component'; + +/* NOTE: Simple combo directives collection for ease-of-use import in standalone components scenario */ +export const IGX_SIMPLE_COMBO_DIRECTIVES = [ + IgxSimpleComboComponent, + IgxComboAddItemDirective, + IgxComboClearIconDirective, + IgxComboEmptyDirective, + IgxComboFooterDirective, + IgxComboHeaderDirective, + IgxComboHeaderItemDirective, + IgxComboItemDirective, + IgxComboToggleIconDirective, + IgxLabelDirective, + IgxPrefixDirective, + IgxSuffixDirective, + IgxHintDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.spec.ts b/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.spec.ts index c9ab1275cbd..e79cd16f888 100644 --- a/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.spec.ts +++ b/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.spec.ts @@ -1,3 +1,4 @@ +import { AsyncPipe } from '@angular/common'; import { AfterViewInit, ChangeDetectorRef, Component, DebugElement, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { FormsModule, NgForm, ReactiveFormsModule, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'; @@ -6,17 +7,17 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxComboDropDownComponent } from '../combo/combo-dropdown.component'; import { IgxComboState } from '../combo/combo.common'; import { RemoteDataService } from '../combo/combo.component.spec'; -import { IComboSelectionChangingEventArgs } from '../combo/public_api'; -import { DisplayDensity } from '../core/displayDensity'; +import { IComboSelectionChangingEventArgs, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboItemDirective, IgxComboToggleIconDirective } from '../combo/public_api'; +import { DisplayDensity } from '../core/density'; import { IgxSelectionAPIService } from '../core/selection'; import { IBaseCancelableBrowserEventArgs, PlatformUtil } from '../core/utils'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxIconComponent, IgxIconModule, IgxIconService } from '../icon/public_api'; -import { IgxInputState } from '../input-group/public_api'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxIconService } from '../icon/icon.service'; +import { IgxInputState, IgxLabelDirective } from '../input-group/public_api'; import { AbsoluteScrollStrategy, AutoPositionStrategy, ConnectedPositioningStrategy } from '../services/public_api'; import { configureTestSuite } from '../test-utils/configure-suite'; import { UIInteractions, wait } from '../test-utils/ui-interactions.spec'; -import { IgxSimpleComboComponent, IgxSimpleComboModule, ISimpleComboSelectionChangingEventArgs } from './public_api'; +import { IgxSimpleComboComponent, ISimpleComboSelectionChangingEventArgs } from './public_api'; const CSS_CLASS_COMBO = 'igx-combo'; @@ -221,7 +222,7 @@ describe('IgxSimpleCombo', () => { spyOnProperty(combo, 'totalItemCount').and.returnValue(combo.data.length); spyOn(combo.selectionChanging, 'emit'); - let oldSelection; + let oldSelection = undefined; let newSelection = [combo.data[1]]; combo.select(combo.data[1]); @@ -432,16 +433,12 @@ describe('IgxSimpleCombo', () => { describe('Initialization and rendering tests: ', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxSimpleComboSampleComponent, - IgxSimpleComboEmptyComponent - ], imports: [ - IgxSimpleComboModule, NoopAnimationsModule, - IgxToggleModule, ReactiveFormsModule, - FormsModule + FormsModule, + IgxSimpleComboSampleComponent, + IgxSimpleComboEmptyComponent ] }).compileComponents(); })); @@ -643,18 +640,14 @@ describe('IgxSimpleCombo', () => { describe('Binding tests: ', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, + ReactiveFormsModule, + FormsModule, IgxSimpleComboSampleComponent, IgxComboInContainerTestComponent, IgxComboRemoteDataComponent, ComboModelBindingComponent - ], - imports: [ - IgxSimpleComboModule, - NoopAnimationsModule, - IgxToggleModule, - ReactiveFormsModule, - FormsModule ] }).compileComponents(); })); @@ -808,19 +801,13 @@ describe('IgxSimpleCombo', () => { let dropdown: IgxComboDropDownComponent; beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxSimpleComboSampleComponent, - IgxComboInContainerTestComponent, - IgxSimpleComboIconTemplatesComponent, - IgxBottomPositionSimpleComboComponent - ], imports: [ - IgxSimpleComboModule, NoopAnimationsModule, - IgxToggleModule, - IgxIconModule, ReactiveFormsModule, - FormsModule + FormsModule, + IgxSimpleComboSampleComponent, + IgxComboInContainerTestComponent, + IgxSimpleComboIconTemplatesComponent ] }).compileComponents(); })); @@ -1481,15 +1468,11 @@ describe('IgxSimpleCombo', () => { describe('Display density', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxSimpleComboSampleComponent - ], imports: [ - IgxSimpleComboModule, NoopAnimationsModule, - IgxToggleModule, ReactiveFormsModule, - FormsModule + FormsModule, + IgxSimpleComboSampleComponent ] }).compileComponents(); })); @@ -1544,15 +1527,11 @@ describe('IgxSimpleCombo', () => { let inputGroupRequired: DebugElement; beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxSimpleComboInTemplatedFormComponent - ], imports: [ - IgxSimpleComboModule, NoopAnimationsModule, - IgxToggleModule, ReactiveFormsModule, - FormsModule + FormsModule, + IgxSimpleComboInTemplatedFormComponent ] }).compileComponents(); })); @@ -1757,15 +1736,11 @@ describe('IgxSimpleCombo', () => { describe('Reactive form tests: ', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxSimpleComboInReactiveFormComponent - ], imports: [ - IgxSimpleComboModule, NoopAnimationsModule, - IgxToggleModule, ReactiveFormsModule, - FormsModule + FormsModule, + IgxSimpleComboInReactiveFormComponent ] }).compileComponents(); })); @@ -1938,16 +1913,12 @@ describe('IgxSimpleCombo', () => { describe('Selection tests: ', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxComboRemoteDataComponent, - IgxSimpleComboBindingDataAfterInitComponent - ], imports: [ - IgxSimpleComboModule, NoopAnimationsModule, - IgxToggleModule, ReactiveFormsModule, - FormsModule + FormsModule, + IgxComboRemoteDataComponent, + IgxSimpleComboBindingDataAfterInitComponent ] }).compileComponents(); })); @@ -1984,7 +1955,7 @@ describe('IgxSimpleCombo', () => { expect(combo.valueKey).toBeDefined(); expect(combo.selection.length).toEqual(0); - let selectedItem = combo.data[1]; + const selectedItem = combo.data[1]; combo.toggle(); combo.select(combo.data[1][combo.valueKey]); @@ -2008,24 +1979,26 @@ describe('IgxSimpleCombo', () => { @Component({ template: ` - - -
    - -
    State: {{display[key]}}
    -
    Region: {{display.region}}
    -
    -
    - -
    This is a header
    -
    - - - -
    -` + + +
    + +
    State: {{display[key]}}
    +
    Region: {{display.region}}
    +
    +
    + +
    This is a header
    +
    + + + +
    + `, + standalone: true, + imports: [IgxSimpleComboComponent, IgxComboItemDirective, IgxComboHeaderDirective, IgxComboFooterDirective] }) class IgxSimpleComboSampleComponent { @ViewChild('combo', { read: IgxSimpleComboComponent, static: true }) @@ -2074,7 +2047,9 @@ class IgxSimpleComboSampleComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxSimpleComboComponent, FormsModule] }) export class IgxSimpleComboEmptyComponent { @ViewChild('combo', { read: IgxSimpleComboComponent, static: true }) @@ -2087,7 +2062,9 @@ export class IgxSimpleComboEmptyComponent { @Component({ template: ` search - ` + `, + standalone: true, + imports: [IgxSimpleComboComponent, IgxIconComponent, IgxComboToggleIconDirective, FormsModule] }) export class IgxSimpleComboIconTemplatesComponent { @ViewChild('combo', { read: IgxSimpleComboComponent, static: true }) @@ -2101,7 +2078,9 @@ export class IgxSimpleComboIconTemplatesComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxSimpleComboComponent, FormsModule] }) export class ComboModelBindingComponent implements OnInit { @ViewChild(IgxSimpleComboComponent, { read: IgxSimpleComboComponent, static: true }) @@ -2124,7 +2103,9 @@ export class ComboModelBindingComponent implements OnInit { > -` +`, + standalone: true, + imports: [IgxSimpleComboComponent] }) class IgxComboInContainerTestComponent { @ViewChild('combo', { read: IgxSimpleComboComponent, static: true }) @@ -2158,7 +2139,9 @@ class IgxComboInContainerTestComponent { [itemHeight]='40' [valueKey]="'id'" [displayKey]="'product'" [width]="'400px'" [ariaLabelledBy]="'mockID'"> - ` + `, + standalone: true, + imports: [IgxSimpleComboComponent, AsyncPipe] }) export class IgxComboRemoteDataComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild('combo', { read: IgxSimpleComboComponent, static: true }) @@ -2196,8 +2179,10 @@ export class IgxComboRemoteDataComponent implements OnInit, AfterViewInit, OnDes [groupKey]="'field' ? 'region' : ''" [width]="'100%'"> - -` + + `, + standalone: true, + imports: [IgxSimpleComboComponent, IgxLabelDirective, FormsModule] }) class IgxSimpleComboInTemplatedFormComponent { @ViewChild('testCombo', { read: IgxSimpleComboComponent, static: true }) @@ -2245,7 +2230,9 @@ class IgxSimpleComboInTemplatedFormComponent { displayKey="field" valueKey="value" [data]="comboData"> -` + `, + standalone: true, + imports: [IgxSimpleComboComponent, ReactiveFormsModule] }) export class IgxSimpleComboInReactiveFormComponent { @ViewChild('reactiveCombo', { read: IgxSimpleComboComponent, static: true }) @@ -2271,11 +2258,14 @@ export class IgxSimpleComboInReactiveFormComponent { @Component({ template: ` - ` + + `, + standalone: true, + imports: [IgxSimpleComboComponent, FormsModule] }) export class IgxSimpleComboBindingDataAfterInitComponent implements AfterViewInit { public items: any[]; - public selectedItem: number = 1; + public selectedItem = 1; constructor(private cdr: ChangeDetectorRef) { } @@ -2290,11 +2280,14 @@ export class IgxSimpleComboBindingDataAfterInitComponent implements AfterViewIni @Component({ template: ` -
    - - -
    ` +
    + + +
    + `, + standalone: true, + imports: [IgxSimpleComboComponent] }) export class IgxBottomPositionSimpleComboComponent { @ViewChild('combo', { read: IgxSimpleComboComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.ts b/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.ts index 613fb6767ab..c155a610c7e 100644 --- a/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.ts +++ b/projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.ts @@ -1,41 +1,31 @@ -import { CommonModule } from '@angular/common'; +import { NgIf, NgTemplateOutlet } from '@angular/common'; import { - AfterViewInit, - ChangeDetectorRef, - Component, - ElementRef, - EventEmitter, - HostListener, - Inject, - Injector, - NgModule, - Optional, - Output, - ViewChild + AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Inject, Injector, + Optional, Output, ViewChild } from '@angular/core'; -import { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms'; +import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { takeUntil } from 'rxjs/operators'; -import { IgxCheckboxModule } from '../checkbox/checkbox.component'; + import { IgxComboAddItemComponent } from '../combo/combo-add-item.component'; import { IgxComboDropDownComponent } from '../combo/combo-dropdown.component'; import { IgxComboItemComponent } from '../combo/combo-item.component'; import { IgxComboAPIService } from '../combo/combo.api'; import { IgxComboBaseDirective, IGX_COMBO_COMPONENT } from '../combo/combo.common'; -import { IgxComboModule } from '../combo/combo.component'; -import { DisplayDensityToken, IDisplayDensityOptions } from '../core/displayDensity'; +import { DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { IgxSelectionAPIService } from '../core/selection'; import { CancelableEventArgs, IBaseCancelableBrowserEventArgs, IBaseEventArgs, PlatformUtil } from '../core/utils'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxForOfModule } from '../directives/for-of/for_of.directive'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; -import { IgxTextSelectionDirective, IgxTextSelectionModule } from '../directives/text-selection/text-selection.directive'; -import { IgxToggleModule } from '../directives/toggle/toggle.directive'; -import { IgxDropDownModule } from '../drop-down/public_api'; -import { IgxIconModule, IgxIconService } from '../icon/public_api'; -import { - IgxInputGroupModule, - IgxInputGroupType, - IGX_INPUT_GROUP_TYPE} from '../input-group/public_api'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxForOfDirective } from '../directives/for-of/for_of.directive'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; +import { IgxTextSelectionDirective } from '../directives/text-selection/text-selection.directive'; +import { IgxIconService } from '../icon/icon.service'; +import { IgxInputGroupType, IGX_INPUT_GROUP_TYPE } from '../input-group/public_api'; +import { IgxComboFilteringPipe, IgxComboGroupingPipe } from '../combo/combo.pipes'; +import { IgxDropDownItemNavigationDirective } from '../drop-down/drop-down-navigation.directive'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../directives/input/input.directive'; +import { IgxInputGroupComponent } from '../input-group/input-group.component'; /** Emitted when an igx-simple-combo's selection is changing. */ export interface ISimpleComboSelectionChangingEventArgs extends CancelableEventArgs, IBaseEventArgs { @@ -73,7 +63,9 @@ export interface ISimpleComboSelectionChangingEventArgs extends CancelableEventA IgxComboAPIService, { provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent }, { provide: NG_VALUE_ACCESSOR, useExisting: IgxSimpleComboComponent, multi: true } - ] + ], + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, IgxTextSelectionDirective, NgIf, IgxSuffixDirective, NgTemplateOutlet, IgxIconComponent, IgxComboDropDownComponent, IgxDropDownItemNavigationDirective, IgxForOfDirective, IgxComboItemComponent, IgxComboAddItemComponent, IgxButtonDirective, IgxRippleDirective, IgxComboFilteringPipe, IgxComboGroupingPipe] }) export class IgxSimpleComboComponent extends IgxComboBaseDirective implements ControlValueAccessor, AfterViewInit { /** @hidden @internal */ @@ -550,16 +542,3 @@ export class IgxSimpleComboComponent extends IgxComboBaseDirective implements Co : value !== undefined; } } - -@NgModule({ - declarations: [IgxSimpleComboComponent], - imports: [ - IgxComboModule, IgxRippleModule, CommonModule, - IgxInputGroupModule, FormsModule, ReactiveFormsModule, - IgxForOfModule, IgxToggleModule, IgxCheckboxModule, - IgxDropDownModule, IgxButtonModule, IgxIconModule, - IgxTextSelectionModule - ], - exports: [IgxSimpleComboComponent, IgxComboModule] -}) -export class IgxSimpleComboModule { } diff --git a/projects/igniteui-angular/src/lib/simple-combo/simple-combo.module.ts b/projects/igniteui-angular/src/lib/simple-combo/simple-combo.module.ts new file mode 100644 index 00000000000..50e1b8b5a6d --- /dev/null +++ b/projects/igniteui-angular/src/lib/simple-combo/simple-combo.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_SIMPLE_COMBO_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_SIMPLE_COMBO_DIRECTIVES + ], + exports: [ + ...IGX_SIMPLE_COMBO_DIRECTIVES + ] +}) +export class IgxSimpleComboModule { } diff --git a/projects/igniteui-angular/src/lib/slider/label/thumb-label.component.ts b/projects/igniteui-angular/src/lib/slider/label/thumb-label.component.ts index ddb1f20f2fd..e4d296d232b 100644 --- a/projects/igniteui-angular/src/lib/slider/label/thumb-label.component.ts +++ b/projects/igniteui-angular/src/lib/slider/label/thumb-label.component.ts @@ -1,13 +1,16 @@ import { Component, Input, TemplateRef, HostBinding, ElementRef } from '@angular/core'; import { SliderHandle } from '../slider.common'; import { IgxSliderThumbComponent } from '../thumb/thumb-slider.component'; +import { NgClass, NgTemplateOutlet } from '@angular/common'; /** * @hidden */ @Component({ selector: 'igx-thumb-label', - templateUrl: 'thumb-label.component.html' + templateUrl: 'thumb-label.component.html', + standalone: true, + imports: [NgClass, NgTemplateOutlet] }) export class IgxThumbLabelComponent { @Input() diff --git a/projects/igniteui-angular/src/lib/slider/public_api.ts b/projects/igniteui-angular/src/lib/slider/public_api.ts index 4137b05942f..634b5483c8f 100644 --- a/projects/igniteui-angular/src/lib/slider/public_api.ts +++ b/projects/igniteui-angular/src/lib/slider/public_api.ts @@ -1,2 +1,13 @@ +import { IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTickLabelTemplateDirective } from './slider.common'; +import { IgxSliderComponent } from './slider.component'; + export * from './slider.component'; export * from './slider.common'; + +/* NOTE: Slider directives collection for ease-of-use import in standalone components scenario */ +export const IGX_SLIDER_DIRECTIVES = [ + IgxSliderComponent, + IgxThumbFromTemplateDirective, + IgxThumbToTemplateDirective, + IgxTickLabelTemplateDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/slider/slider.common.ts b/projects/igniteui-angular/src/lib/slider/slider.common.ts index 3207abae0f4..95c3ae854c0 100644 --- a/projects/igniteui-angular/src/lib/slider/slider.common.ts +++ b/projects/igniteui-angular/src/lib/slider/slider.common.ts @@ -13,7 +13,8 @@ import { mkenum } from '../core/utils'; * @context {@link IgxSliderComponent.context} */ @Directive({ - selector: '[igxSliderThumbFrom]' + selector: '[igxSliderThumbFrom]', + standalone: true }) export class IgxThumbFromTemplateDirective {} @@ -29,7 +30,8 @@ export class IgxThumbFromTemplateDirective {} * @context {@link IgxSliderComponent.context} */ @Directive({ - selector: '[igxSliderThumbTo]' + selector: '[igxSliderThumbTo]', + standalone: true }) export class IgxThumbToTemplateDirective {} @@ -39,7 +41,8 @@ export class IgxThumbToTemplateDirective {} * @context {@link IgxTicksComponent.context} */ @Directive({ - selector: '[igxSliderTickLabel]' + selector: '[igxSliderTickLabel]', + standalone: true }) export class IgxTickLabelTemplateDirective {} diff --git a/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts b/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts index cd73264f1ba..f02fe6240e9 100644 --- a/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts +++ b/projects/igniteui-angular/src/lib/slider/slider.component.spec.ts @@ -6,8 +6,8 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { DIR_DOCUMENT, IgxDirectionality } from '../services/direction/directionality'; import { configureTestSuite } from '../test-utils/configure-suite'; import { UIInteractions, wait } from '../test-utils/ui-interactions.spec'; -import { IgxSliderType, IRangeSliderValue, TickLabelsOrientation, TicksOrientation } from './slider.common'; -import { IgxSliderComponent, IgxSliderModule } from './slider.component'; +import { IgxSliderType, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IRangeSliderValue, TickLabelsOrientation, TicksOrientation } from './slider.common'; +import { IgxSliderComponent } from './slider.component'; declare let Simulator: any; const SLIDER_CLASS = '.igx-slider'; @@ -35,7 +35,8 @@ describe('IgxSlider', () => { fakeDoc = { body: {}, documentElement: {} }; TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, FormsModule, ReactiveFormsModule, HammerModule, SliderInitializeTestComponent, SliderMinMaxComponent, SliderTestComponent, @@ -48,9 +49,6 @@ describe('IgxSlider', () => { SliderReactiveFormComponent, SliderWithValueAdjustmentComponent ], - imports: [ - IgxSliderModule, NoopAnimationsModule, FormsModule, ReactiveFormsModule, HammerModule - ], providers: [ { provide: DIR_DOCUMENT, useFactory: () => fakeDoc } ] @@ -1356,8 +1354,8 @@ describe('IgxSlider', () => { const componentInst = fix.componentInstance; const slider = componentInst.slider; - let expectedMinVal = 0; - let expectedMaxVal = 10; + const expectedMinVal = 0; + const expectedMaxVal = 10; expect(slider.minValue).toEqual(expectedMinVal); expect(slider.maxValue).toEqual(expectedMaxVal); @@ -1789,7 +1787,9 @@ describe('IgxSlider', () => { selector: 'igx-slider-rtl', template: ` - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) export class SliderRtlComponent { @ViewChild(IgxSliderComponent) @@ -1816,7 +1816,9 @@ export class SliderRtlComponent { [primaryTickLabels]="primaryTickLabels" [secondaryTickLabels]="secondaryTickLabels" [tickLabelsOrientation]="tickLabelsOrientation"> - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) export class SliderTicksComponent { @@ -1834,7 +1836,9 @@ export class SliderTicksComponent { @Component({ selector: 'igx-slider-test-component', template: ` - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) class SliderInitializeTestComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; @@ -1843,7 +1847,9 @@ class SliderInitializeTestComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) export class SliderMinMaxComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; @@ -1859,7 +1865,9 @@ export class SliderMinMaxComponent { [maxValue]="maxValue" [type]="type"> - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) class SliderTestComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; @@ -1880,7 +1888,9 @@ class SliderTestComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) class SliderWithLabelsComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; @@ -1891,7 +1901,9 @@ class SliderWithLabelsComponent { - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) class RangeSliderWithLabelsComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) @@ -1911,8 +1923,9 @@ class RangeSliderWithLabelsComponent { Upper {{ labels[value.upper] }} - ` - + `, + standalone: true, + imports: [IgxSliderComponent, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective] }) class RangeSliderWithCustomTemplateComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; @@ -1924,7 +1937,9 @@ class RangeSliderWithCustomTemplateComponent {
    - ` + `, + standalone: true, + imports: [IgxSliderComponent, FormsModule] }) export class SliderTemplateFormComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; @@ -1937,7 +1952,9 @@ export class SliderTemplateFormComponent {
    - ` + `, + standalone: true, + imports: [IgxSliderComponent, FormsModule, ReactiveFormsModule] }) export class SliderReactiveFormComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; @@ -1948,7 +1965,9 @@ export class SliderReactiveFormComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxSliderComponent] }) export class SliderWithValueAdjustmentComponent { @ViewChild(IgxSliderComponent, { read: IgxSliderComponent, static: true }) public slider: IgxSliderComponent; diff --git a/projects/igniteui-angular/src/lib/slider/slider.component.ts b/projects/igniteui-angular/src/lib/slider/slider.component.ts index d497b3b598d..e2a5b4db930 100644 --- a/projects/igniteui-angular/src/lib/slider/slider.component.ts +++ b/projects/igniteui-angular/src/lib/slider/slider.component.ts @@ -1,9 +1,9 @@ -import { CommonModule } from '@angular/common'; +import { NgIf } from '@angular/common'; import { AfterContentInit, AfterViewInit, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, - HostBinding, HostListener, Input, NgModule, NgZone, OnChanges, OnDestroy, OnInit, Output, QueryList, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewChildren + HostBinding, HostListener, Input, NgZone, OnChanges, OnDestroy, OnInit, Output, QueryList, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewChildren } from '@angular/core'; -import { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms'; +import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { merge, noop, Observable, Subject, timer } from 'rxjs'; import { takeUntil, throttleTime } from 'rxjs/operators'; import { EditorProvider } from '../core/edit-provider'; @@ -38,7 +38,9 @@ let NEXT_ID = 0; @Component({ providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSliderComponent, multi: true }], selector: 'igx-slider', - templateUrl: 'slider.component.html' + templateUrl: 'slider.component.html', + standalone: true, + imports: [NgIf, IgxTicksComponent, IgxThumbLabelComponent, IgxSliderThumbComponent, IgxTickLabelsPipe] }) export class IgxSliderComponent implements ControlValueAccessor, @@ -1437,24 +1439,4 @@ export class IgxSliderComponent implements /** * @hidden */ -@NgModule({ - declarations: [ - IgxSliderComponent, - IgxThumbFromTemplateDirective, - IgxThumbToTemplateDirective, - IgxTickLabelTemplateDirective, - IgxSliderThumbComponent, - IgxThumbLabelComponent, - IgxTicksComponent, - IgxTickLabelsPipe - ], - exports: [ - IgxSliderComponent, - IgxThumbFromTemplateDirective, - IgxThumbToTemplateDirective, - IgxTickLabelTemplateDirective - ], - imports: [CommonModule, FormsModule] -}) -export class IgxSliderModule { -} + diff --git a/projects/igniteui-angular/src/lib/slider/slider.module.ts b/projects/igniteui-angular/src/lib/slider/slider.module.ts new file mode 100644 index 00000000000..755d691578b --- /dev/null +++ b/projects/igniteui-angular/src/lib/slider/slider.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_SLIDER_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_SLIDER_DIRECTIVES + ], + exports: [ + ...IGX_SLIDER_DIRECTIVES + ] +}) +export class IgxSliderModule { } diff --git a/projects/igniteui-angular/src/lib/slider/thumb/thumb-slider.component.ts b/projects/igniteui-angular/src/lib/slider/thumb/thumb-slider.component.ts index fdbb4f40a06..522f4734a08 100644 --- a/projects/igniteui-angular/src/lib/slider/thumb/thumb-slider.component.ts +++ b/projects/igniteui-angular/src/lib/slider/thumb/thumb-slider.component.ts @@ -14,6 +14,7 @@ import { takeUntil } from 'rxjs/operators'; import { SliderHandle } from '../slider.common'; import { Subject } from 'rxjs'; import { IgxDirectionality } from '../../services/direction/directionality'; +import { NgClass } from '@angular/common'; /** * @hidden @@ -21,6 +22,8 @@ import { IgxDirectionality } from '../../services/direction/directionality'; @Component({ selector: 'igx-thumb', templateUrl: 'thumb-slider.component.html', + standalone: true, + imports: [NgClass] }) export class IgxSliderThumbComponent implements OnInit, OnDestroy { @Input() diff --git a/projects/igniteui-angular/src/lib/slider/ticks/tick.pipe.ts b/projects/igniteui-angular/src/lib/slider/ticks/tick.pipe.ts index 8b61cbf63a2..ac9979dea12 100644 --- a/projects/igniteui-angular/src/lib/slider/ticks/tick.pipe.ts +++ b/projects/igniteui-angular/src/lib/slider/ticks/tick.pipe.ts @@ -4,7 +4,8 @@ import { Pipe, PipeTransform } from '@angular/core'; * @hidden */ @Pipe({ - name: 'spreadTickLabels' + name: 'spreadTickLabels', + standalone: true }) export class IgxTickLabelsPipe implements PipeTransform { diff --git a/projects/igniteui-angular/src/lib/slider/ticks/ticks.component.ts b/projects/igniteui-angular/src/lib/slider/ticks/ticks.component.ts index 78be769edf0..49f867498aa 100644 --- a/projects/igniteui-angular/src/lib/slider/ticks/ticks.component.ts +++ b/projects/igniteui-angular/src/lib/slider/ticks/ticks.component.ts @@ -1,5 +1,6 @@ import { Component, Input, TemplateRef, HostBinding } from '@angular/core'; import { TicksOrientation, TickLabelsOrientation } from '../slider.common'; +import { NgFor, NgClass, NgTemplateOutlet } from '@angular/common'; /** * @hidden @@ -7,6 +8,8 @@ import { TicksOrientation, TickLabelsOrientation } from '../slider.common'; @Component({ selector: 'igx-ticks', templateUrl: 'ticks.component.html', + standalone: true, + imports: [NgFor, NgClass, NgTemplateOutlet] }) export class IgxTicksComponent { @Input() diff --git a/projects/igniteui-angular/src/lib/snackbar/snackbar.component.spec.ts b/projects/igniteui-angular/src/lib/snackbar/snackbar.component.spec.ts index 2019a7a4ef1..82d6a5d5dd3 100644 --- a/projects/igniteui-angular/src/lib/snackbar/snackbar.component.spec.ts +++ b/projects/igniteui-angular/src/lib/snackbar/snackbar.component.spec.ts @@ -1,8 +1,8 @@ import { Component, ViewChild } from '@angular/core'; import { TestBed, fakeAsync, tick, waitForAsync, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxSnackbarComponent, IgxSnackbarModule } from './snackbar.component'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { IgxSnackbarComponent } from './snackbar.component'; import { configureTestSuite } from '../test-utils/configure-suite'; import { HorizontalAlignment, PositionSettings, slideInLeft, slideInRight, VerticalAlignment } from 'igniteui-angular'; import { useAnimation } from '@angular/animations'; @@ -11,13 +11,10 @@ describe('IgxSnackbar', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - SnackbarInitializeTestComponent, - SnackbarCustomContentComponent - ], imports: [ NoopAnimationsModule, - IgxSnackbarModule + SnackbarInitializeTestComponent, + SnackbarCustomContentComponent ] }).compileComponents(); })); @@ -192,12 +189,9 @@ describe('IgxSnackbar with custom content', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - SnackbarCustomContentComponent - ], imports: [ - BrowserAnimationsModule, - IgxSnackbarModule + NoopAnimationsModule, + SnackbarCustomContentComponent ] }).compileComponents(); })); @@ -257,7 +251,9 @@ describe('IgxSnackbar with custom content', () => { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxSnackbarComponent] }) class SnackbarInitializeTestComponent { @ViewChild(IgxSnackbarComponent, { static: true }) public snackbar: IgxSnackbarComponent; @@ -267,7 +263,9 @@ class SnackbarInitializeTestComponent { @Component({ template: ` Custom content - ` + `, + standalone: true, + imports: [IgxSnackbarComponent] }) class SnackbarCustomContentComponent { @ViewChild(IgxSnackbarComponent, { static: true }) public snackbar: IgxSnackbarComponent; diff --git a/projects/igniteui-angular/src/lib/snackbar/snackbar.component.ts b/projects/igniteui-angular/src/lib/snackbar/snackbar.component.ts index e2d59a467f8..1ddfc4810f9 100644 --- a/projects/igniteui-angular/src/lib/snackbar/snackbar.component.ts +++ b/projects/igniteui-angular/src/lib/snackbar/snackbar.component.ts @@ -1,11 +1,10 @@ import { useAnimation } from '@angular/animations'; -import { CommonModule } from '@angular/common'; +import { NgIf } from '@angular/common'; import { Component, EventEmitter, HostBinding, Input, - NgModule, OnInit, Output } from '@angular/core'; @@ -36,7 +35,9 @@ let NEXT_ID = 0; */ @Component({ selector: 'igx-snackbar', - templateUrl: 'snackbar.component.html' + templateUrl: 'snackbar.component.html', + standalone: true, + imports: [NgIf] }) export class IgxSnackbarComponent extends IgxNotificationsDirective implements OnInit { @@ -203,12 +204,3 @@ export class IgxSnackbarComponent extends IgxNotificationsDirective } } -/** - * @hidden - */ -@NgModule({ - declarations: [IgxSnackbarComponent], - exports: [IgxSnackbarComponent], - imports: [CommonModule] -}) -export class IgxSnackbarModule { } diff --git a/projects/igniteui-angular/src/lib/snackbar/snackbar.module.ts b/projects/igniteui-angular/src/lib/snackbar/snackbar.module.ts new file mode 100644 index 00000000000..f7ba5ce2467 --- /dev/null +++ b/projects/igniteui-angular/src/lib/snackbar/snackbar.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IgxSnackbarComponent } from './snackbar.component'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + IgxSnackbarComponent + ], + exports: [ + IgxSnackbarComponent + ] +}) +export class IgxSnackbarModule { } diff --git a/projects/igniteui-angular/src/lib/splitter/public_api.ts b/projects/igniteui-angular/src/lib/splitter/public_api.ts new file mode 100644 index 00000000000..f9564e5a11a --- /dev/null +++ b/projects/igniteui-angular/src/lib/splitter/public_api.ts @@ -0,0 +1,12 @@ +import { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component'; +import { IgxSplitBarComponent, IgxSplitterComponent } from './splitter.component'; + +export * from './splitter.component'; +export * from './splitter-pane/splitter-pane.component'; + +/* NOTE: Splitter directives collection for ease-of-use import in standalone components scenario */ +export const IGX_SPLITTER_DIRECTIVES = [ + IgxSplitterComponent, + IgxSplitterPaneComponent, + IgxSplitBarComponent +] as const; diff --git a/projects/igniteui-angular/src/lib/splitter/splitter-pane/splitter-pane.component.ts b/projects/igniteui-angular/src/lib/splitter/splitter-pane/splitter-pane.component.ts index d43881a0533..08f15d3f8c6 100644 --- a/projects/igniteui-angular/src/lib/splitter/splitter-pane/splitter-pane.component.ts +++ b/projects/igniteui-angular/src/lib/splitter/splitter-pane/splitter-pane.component.ts @@ -16,7 +16,8 @@ import { Component, HostBinding, Input, ElementRef, Output, EventEmitter } from */ @Component({ selector: 'igx-splitter-pane', - templateUrl: './splitter-pane.component.html' + templateUrl: './splitter-pane.component.html', + standalone: true }) export class IgxSplitterPaneComponent { private _minSize: string; @@ -42,7 +43,7 @@ export class IgxSplitterPaneComponent { @Input() public get minSize(): string { return this._minSize; - }; + } public set minSize(value: string) { this._minSize = value; if (this.owner) { @@ -63,7 +64,7 @@ export class IgxSplitterPaneComponent { @Input() public get maxSize(): string { return this._maxSize; - }; + } public set maxSize(value: string) { this._maxSize = value; if (this.owner) { diff --git a/projects/igniteui-angular/src/lib/splitter/splitter.component.spec.ts b/projects/igniteui-angular/src/lib/splitter/splitter.component.spec.ts index 1710af97565..50f584d2e64 100644 --- a/projects/igniteui-angular/src/lib/splitter/splitter.component.spec.ts +++ b/projects/igniteui-angular/src/lib/splitter/splitter.component.spec.ts @@ -1,10 +1,10 @@ -import { IgxSplitterModule } from './splitter.module'; import { configureTestSuite } from '../test-utils/configure-suite'; import { TestBed, waitForAsync } from '@angular/core/testing'; import { Component, ViewChild, DebugElement } from '@angular/core'; import { SplitterType, IgxSplitterComponent, ISplitterBarResizeEventArgs } from './splitter.component'; import { By } from '@angular/platform-browser'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; +import { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component'; const SPLITTERBAR_CLASS = 'igx-splitter-bar'; @@ -14,11 +14,10 @@ const SPLITTER_BAR_VERTICAL_CLASS = 'igx-splitter-bar--vertical'; describe('IgxSplitter', () => { configureTestSuite(); beforeAll(waitForAsync(() => TestBed.configureTestingModule({ - declarations: [ SplitterTestComponent ], - imports: [ - IgxSplitterModule - ] - }).compileComponents())); + imports: [ + SplitterTestComponent + ] +}).compileComponents())); let fixture; let splitter; beforeEach(waitForAsync(() => { @@ -296,11 +295,10 @@ describe('IgxSplitter', () => { describe('IgxSplitter pane toggle', () => { configureTestSuite(); beforeAll(waitForAsync(() => TestBed.configureTestingModule({ - declarations: [ SplitterTogglePaneComponent ], - imports: [ - IgxSplitterModule - ] - }).compileComponents())); + imports: [ + SplitterTogglePaneComponent + ] + }).compileComponents())); let fixture; let splitter; beforeEach(waitForAsync(() => { @@ -401,11 +399,10 @@ describe('IgxSplitter pane toggle', () => { describe('IgxSplitter pane collapse', () => { configureTestSuite(); beforeAll(waitForAsync(() => TestBed.configureTestingModule({ - declarations: [ SplitterCollapsedPaneComponent ], - imports: [ - IgxSplitterModule - ] - }).compileComponents())); + imports: [ + SplitterCollapsedPaneComponent + ] + }).compileComponents())); let fixture; let splitter; beforeEach(waitForAsync(() => { @@ -447,6 +444,8 @@ describe('IgxSplitter pane collapse', () => { `, + standalone: true, + imports: [IgxSplitterComponent, IgxSplitterPaneComponent] }) export class SplitterTestComponent { @ViewChild(IgxSplitterComponent, { static: true }) @@ -474,6 +473,8 @@ export class SplitterTestComponent { `, + standalone: true, + imports: [IgxSplitterComponent, IgxSplitterPaneComponent] }) export class SplitterTogglePaneComponent extends SplitterTestComponent { @@ -499,6 +500,8 @@ export class SplitterTogglePaneComponent extends SplitterTestComponent { `, + standalone: true, + imports: [IgxSplitterComponent, IgxSplitterPaneComponent] }) export class SplitterCollapsedPaneComponent extends SplitterTestComponent { } diff --git a/projects/igniteui-angular/src/lib/splitter/splitter.component.ts b/projects/igniteui-angular/src/lib/splitter/splitter.component.ts index e84a82d7855..87078b1a18f 100644 --- a/projects/igniteui-angular/src/lib/splitter/splitter.component.ts +++ b/projects/igniteui-angular/src/lib/splitter/splitter.component.ts @@ -1,6 +1,6 @@ -import { DOCUMENT } from '@angular/common'; -import { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, Output, QueryList } from '@angular/core'; -import { DragDirection, IDragMoveEventArgs, IDragStartEventArgs } from '../directives/drag-drop/drag-drop.directive'; +import { DOCUMENT, NgFor, NgIf } from '@angular/common'; +import { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, Output, QueryList, forwardRef } from '@angular/core'; +import { DragDirection, IDragMoveEventArgs, IDragStartEventArgs, IgxDragDirective, IgxDragIgnoreDirective } from '../directives/drag-drop/drag-drop.directive'; import { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component'; /** @@ -44,7 +44,9 @@ export declare interface ISplitterBarResizeEventArgs { */ @Component({ selector: 'igx-splitter', - templateUrl: './splitter.component.html' + templateUrl: './splitter.component.html', + standalone: true, + imports: [NgFor, NgIf, forwardRef(() => IgxSplitBarComponent)] }) export class IgxSplitterComponent implements AfterContentInit { /** @@ -346,7 +348,9 @@ export const SPLITTER_INTERACTION_KEYS = new Set('right down left up arrowright */ @Component({ selector: 'igx-splitter-bar', - templateUrl: './splitter-bar.component.html' + templateUrl: './splitter-bar.component.html', + standalone: true, + imports: [IgxDragDirective, IgxDragIgnoreDirective] }) export class IgxSplitBarComponent { /** diff --git a/projects/igniteui-angular/src/lib/splitter/splitter.module.ts b/projects/igniteui-angular/src/lib/splitter/splitter.module.ts index cb67c6bbc18..a901ea7f5b8 100644 --- a/projects/igniteui-angular/src/lib/splitter/splitter.module.ts +++ b/projects/igniteui-angular/src/lib/splitter/splitter.module.ts @@ -1,22 +1,16 @@ import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component'; -import { IgxSplitterComponent, IgxSplitBarComponent } from './splitter.component'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxDragDropModule } from '../directives/drag-drop/drag-drop.directive'; +import { IGX_SPLITTER_DIRECTIVES } from './public_api'; +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ @NgModule({ imports: [ - CommonModule, IgxIconModule, IgxDragDropModule - ], - declarations: [ - IgxSplitterComponent, - IgxSplitterPaneComponent, - IgxSplitBarComponent + ...IGX_SPLITTER_DIRECTIVES ], exports: [ - IgxSplitterComponent, - IgxSplitterPaneComponent + ...IGX_SPLITTER_DIRECTIVES ] }) export class IgxSplitterModule { } diff --git a/projects/igniteui-angular/src/lib/stepper/public_api.ts b/projects/igniteui-angular/src/lib/stepper/public_api.ts index a7792408539..8e8cd47dce3 100644 --- a/projects/igniteui-angular/src/lib/stepper/public_api.ts +++ b/projects/igniteui-angular/src/lib/stepper/public_api.ts @@ -1,4 +1,28 @@ +import { IgxStepComponent } from './step/step.component'; +import { IgxStepperComponent } from './stepper.component'; +import { IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubTitleDirective, IgxStepTitleDirective } from './stepper.directive'; + export * from './stepper.component'; export * from './step/step.component'; -export * from './stepper.common'; +export { + IStepChangingEventArgs, + IStepChangedEventArgs, + IgxStepperOrientation, + IgxStepType, + IgxStepperTitlePosition, + VerticalAnimationType +} from './stepper.common'; export * from './stepper.directive'; + +/* NOTE: Stepper directives collection for ease-of-use import in standalone components scenario */ +export const IGX_STEPPER_DIRECTIVES = [ + IgxStepComponent, + IgxStepperComponent, + IgxStepTitleDirective, + IgxStepSubTitleDirective, + IgxStepIndicatorDirective, + IgxStepContentDirective, + IgxStepActiveIndicatorDirective, + IgxStepCompletedIndicatorDirective, + IgxStepInvalidIndicatorDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/stepper/step/step.component.ts b/projects/igniteui-angular/src/lib/stepper/step/step.component.ts index 3c2c8a9ec40..6f9c6e97532 100644 --- a/projects/igniteui-angular/src/lib/stepper/step/step.component.ts +++ b/projects/igniteui-angular/src/lib/stepper/step/step.component.ts @@ -26,6 +26,8 @@ import { IgxDirectionality } from '../../services/direction/directionality'; import { IgxStep, IgxStepper, IgxStepperOrientation, IgxStepType, IGX_STEPPER_COMPONENT, IGX_STEP_COMPONENT } from '../stepper.common'; import { IgxStepContentDirective, IgxStepIndicatorDirective } from '../stepper.directive'; import { IgxStepperService } from '../stepper.service'; +import { IgxRippleDirective } from '../../directives/ripple/ripple.directive'; +import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common'; let NEXT_ID = 0; @@ -53,7 +55,9 @@ let NEXT_ID = 0; templateUrl: 'step.component.html', providers: [ { provide: IGX_STEP_COMPONENT, useExisting: IgxStepComponent } - ] + ], + standalone: true, + imports: [NgIf, NgClass, IgxRippleDirective, NgTemplateOutlet] }) export class IgxStepComponent extends ToggleAnimationPlayer implements IgxStep, AfterViewInit, OnDestroy, IgxSlideComponentBase { diff --git a/projects/igniteui-angular/src/lib/stepper/stepper.common.ts b/projects/igniteui-angular/src/lib/stepper/stepper.common.ts index 916e40c9f6d..9254027d85e 100644 --- a/projects/igniteui-angular/src/lib/stepper/stepper.common.ts +++ b/projects/igniteui-angular/src/lib/stepper/stepper.common.ts @@ -43,7 +43,6 @@ export interface IgxStepper extends IgxCarouselComponentBase { } // Item interfaces - export interface IgxStep extends ToggleAnimationPlayer { id: string; /** @hidden @internal */ diff --git a/projects/igniteui-angular/src/lib/stepper/stepper.component.spec.ts b/projects/igniteui-angular/src/lib/stepper/stepper.component.spec.ts index 60b000f1616..7ef0634088e 100644 --- a/projects/igniteui-angular/src/lib/stepper/stepper.component.spec.ts +++ b/projects/igniteui-angular/src/lib/stepper/stepper.component.spec.ts @@ -1,10 +1,13 @@ import { AnimationBuilder } from '@angular/animations'; +import { NgIf } from '@angular/common'; import { Component, ViewChild } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { take } from 'rxjs/operators'; -import { IgxIconModule } from '../icon/public_api'; +import { HorizontalAnimationType } from '../carousel/carousel-base'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxInputDirective, IgxInputGroupComponent } from '../input-group/public_api'; import { Direction } from '../services/direction/directionality'; import { configureTestSuite } from '../test-utils/configure-suite'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; @@ -14,9 +17,11 @@ import { IgxStepperTitlePosition, IgxStepType, IStepChangedEventArgs, - IStepChangingEventArgs + IStepChangingEventArgs, + VerticalAnimationType } from './stepper.common'; -import { IgxStepperComponent, IgxStepperModule } from './stepper.component'; +import { IgxStepperComponent } from './stepper.component'; +import { IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubTitleDirective, IgxStepTitleDirective } from './stepper.directive'; import { IgxStepperService } from './stepper.service'; const STEPPER_CLASS = 'igx-stepper'; @@ -78,16 +83,11 @@ describe('Rendering Tests', () => { beforeAll( waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxStepperSampleTestComponent, - IgxStepperLinearComponent - ], imports: [ NoopAnimationsModule, - IgxStepperModule, - IgxIconModule - ], - providers: [] + IgxStepperSampleTestComponent, + IgxStepperLinearComponent + ] }).compileComponents(); }) ); @@ -1231,7 +1231,7 @@ describe('Stepper service unit tests', () => { @Component({ template: ` - @@ -1250,8 +1250,10 @@ describe('Stepper service unit tests', () => { 1 Step No 1 Step SubTitle -
    - +
    + + +
    @@ -1298,13 +1300,29 @@ describe('Stepper service unit tests', () => {
    - ` + `, + standalone: true, + imports: [ + IgxStepperComponent, + IgxStepComponent, + IgxStepTitleDirective, + IgxStepIndicatorDirective, + IgxStepSubTitleDirective, + IgxStepContentDirective, + IgxStepInvalidIndicatorDirective, + IgxStepCompletedIndicatorDirective, + IgxStepActiveIndicatorDirective, + IgxIconComponent, + IgxInputDirective, + IgxInputGroupComponent, + NgIf + ] }) export class IgxStepperSampleTestComponent { @ViewChild(IgxStepperComponent) public stepper: IgxStepperComponent; - public horizontalAnimationType = 'slide'; - public verticalAnimationType = 'grow'; + public horizontalAnimationType: HorizontalAnimationType = 'slide'; + public verticalAnimationType: VerticalAnimationType = 'grow'; public animationDuration = 300; public displayHiddenStep = false; @@ -1322,7 +1340,9 @@ export class IgxStepperSampleTestComponent { - ` + `, + standalone: true, + imports: [IgxStepperComponent, IgxStepComponent] }) export class IgxStepperLinearComponent { @ViewChild(IgxStepperComponent) public stepper: IgxStepperComponent; diff --git a/projects/igniteui-angular/src/lib/stepper/stepper.component.ts b/projects/igniteui-angular/src/lib/stepper/stepper.component.ts index 6c74fe69a67..a8c7572882a 100644 --- a/projects/igniteui-angular/src/lib/stepper/stepper.component.ts +++ b/projects/igniteui-angular/src/lib/stepper/stepper.component.ts @@ -1,8 +1,8 @@ import { AnimationReferenceMetadata, useAnimation } from '@angular/animations'; -import { CommonModule } from '@angular/common'; +import { NgIf, NgTemplateOutlet, NgFor } from '@angular/common'; import { AfterContentInit, ChangeDetectorRef, Component, ContentChild, ContentChildren, - ElementRef, EventEmitter, HostBinding, Inject, Input, NgModule, OnChanges, OnDestroy, + ElementRef, EventEmitter, HostBinding, Inject, Input, OnChanges, OnDestroy, OnInit, Output, QueryList, SimpleChanges,TemplateRef } from '@angular/core'; import { Subject } from 'rxjs'; @@ -10,7 +10,7 @@ import { takeUntil } from 'rxjs/operators'; import { growVerIn, growVerOut } from '../animations/grow'; import { fadeIn } from '../animations/main'; import { HorizontalAnimationType, IgxCarouselComponentBase } from '../carousel/carousel-base'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; + import { ToggleAnimationSettings } from '../expansion-panel/toggle-animation-component'; import { IgxAngularAnimationService } from '../services/animation/angular-animation-service'; import { AnimationService } from '../services/animation/animation'; @@ -22,9 +22,7 @@ import { import { IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, - IgxStepContentDirective, - IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, - IgxStepSubTitleDirective, IgxStepTitleDirective + IgxStepInvalidIndicatorDirective } from './stepper.directive'; import { IgxStepperService } from './stepper.service'; @@ -74,7 +72,9 @@ import { IgxStepperService } from './stepper.service'; providers: [ IgxStepperService, { provide: IGX_STEPPER_COMPONENT, useExisting: IgxStepperComponent }, - ] + ], + standalone: true, + imports: [NgIf, NgTemplateOutlet, NgFor] }) export class IgxStepperComponent extends IgxCarouselComponentBase implements IgxStepper, OnChanges, OnInit, AfterContentInit, OnDestroy { @@ -540,32 +540,4 @@ export class IgxStepperComponent extends IgxCarouselComponentBase implements Igx } } -@NgModule({ - imports: [ - CommonModule, - IgxRippleModule - ], - declarations: [ - IgxStepComponent, - IgxStepperComponent, - IgxStepTitleDirective, - IgxStepSubTitleDirective, - IgxStepIndicatorDirective, - IgxStepContentDirective, - IgxStepActiveIndicatorDirective, - IgxStepCompletedIndicatorDirective, - IgxStepInvalidIndicatorDirective, - ], - exports: [ - IgxStepComponent, - IgxStepperComponent, - IgxStepTitleDirective, - IgxStepSubTitleDirective, - IgxStepIndicatorDirective, - IgxStepContentDirective, - IgxStepActiveIndicatorDirective, - IgxStepCompletedIndicatorDirective, - IgxStepInvalidIndicatorDirective, - ] -}) -export class IgxStepperModule { } + diff --git a/projects/igniteui-angular/src/lib/stepper/stepper.directive.ts b/projects/igniteui-angular/src/lib/stepper/stepper.directive.ts index 50f1f34ad67..b2b549137c1 100644 --- a/projects/igniteui-angular/src/lib/stepper/stepper.directive.ts +++ b/projects/igniteui-angular/src/lib/stepper/stepper.directive.ts @@ -3,27 +3,32 @@ import { IgxStep, IGX_STEP_COMPONENT } from './stepper.common'; import { IgxStepperService } from './stepper.service'; @Directive({ - selector: '[igxStepActiveIndicator]' + selector: '[igxStepActiveIndicator]', + standalone: true }) export class IgxStepActiveIndicatorDirective { } @Directive({ - selector: '[igxStepCompletedIndicator]' + selector: '[igxStepCompletedIndicator]', + standalone: true }) export class IgxStepCompletedIndicatorDirective { } @Directive({ - selector: '[igxStepInvalidIndicator]' + selector: '[igxStepInvalidIndicator]', + standalone: true }) export class IgxStepInvalidIndicatorDirective { } @Directive({ - selector: '[igxStepIndicator]' + selector: '[igxStepIndicator]', + standalone: true }) export class IgxStepIndicatorDirective { } @Directive({ - selector: '[igxStepTitle]' + selector: '[igxStepTitle]', + standalone: true }) export class IgxStepTitleDirective { @HostBinding('class.igx-stepper__step-title') @@ -31,7 +36,8 @@ export class IgxStepTitleDirective { } @Directive({ - selector: '[igxStepSubTitle]' + selector: '[igxStepSubTitle]', + standalone: true }) export class IgxStepSubTitleDirective { @HostBinding('class.igx-stepper__step-subtitle') @@ -39,7 +45,8 @@ export class IgxStepSubTitleDirective { } @Directive({ - selector: '[igxStepContent]' + selector: '[igxStepContent]', + standalone: true }) export class IgxStepContentDirective { private get target(): IgxStep { diff --git a/projects/igniteui-angular/src/lib/stepper/stepper.module.ts b/projects/igniteui-angular/src/lib/stepper/stepper.module.ts new file mode 100644 index 00000000000..45fedb83aa6 --- /dev/null +++ b/projects/igniteui-angular/src/lib/stepper/stepper.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_STEPPER_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_STEPPER_DIRECTIVES + ], + exports: [ + ...IGX_STEPPER_DIRECTIVES + ] +}) +export class IgxStepperModule { } diff --git a/projects/igniteui-angular/src/lib/switch/README.md b/projects/igniteui-angular/src/lib/switch/README.md index cc06af1e573..7ac218251d9 100644 --- a/projects/igniteui-angular/src/lib/switch/README.md +++ b/projects/igniteui-angular/src/lib/switch/README.md @@ -1,6 +1,6 @@ # igx-switch -`igx-switch` is a selection component that allows users to make a binary choice for a certain condition. It behaves similar to the switch component sans the indeterminate state.  +`igx-switch` is a selection component that allows users to make a binary choice for a certain condition. It behaves similar to the switch component sans the indeterminate state. A walkthrough of how to get started can be found [here](https://www.infragistics.com/products/ignite-ui-angular/angular/components/switch) Basic usage of `igx-switch` diff --git a/projects/igniteui-angular/src/lib/switch/switch.component.spec.ts b/projects/igniteui-angular/src/lib/switch/switch.component.spec.ts index 89d14c06179..481e3ea9f4b 100644 --- a/projects/igniteui-angular/src/lib/switch/switch.component.spec.ts +++ b/projects/igniteui-angular/src/lib/switch/switch.component.spec.ts @@ -2,7 +2,6 @@ import { Component, ViewChild } from '@angular/core'; import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { UntypedFormBuilder, FormsModule, ReactiveFormsModule, Validators, NgForm } from '@angular/forms'; import { By } from '@angular/platform-browser'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; import { IgxSwitchComponent } from './switch.component'; import { configureTestSuite } from '../test-utils/configure-suite'; @@ -13,7 +12,8 @@ describe('IgxSwitch', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, InitSwitchComponent, SwitchSimpleComponent, SwitchRequiredComponent, @@ -22,8 +22,7 @@ describe('IgxSwitch', () => { SwitchFormComponent, SwitchFormGroupComponent, IgxSwitchComponent - ], - imports: [FormsModule, ReactiveFormsModule, IgxRippleModule, NoopAnimationsModule] + ] }).compileComponents(); })); @@ -305,14 +304,21 @@ describe('IgxSwitch', () => { }); }); -@Component({ template: `Init` }) +@Component({ + template: `Init`, + standalone: true, + imports: [IgxSwitchComponent] +}) class InitSwitchComponent { @ViewChild('switch', { static: true }) public switch: IgxSwitchComponent; } @Component({ template: `Simple`}) +[(ngModel)]="subscribed" [checked]="subscribed">Simple`, + standalone: true, + imports: [FormsModule, IgxSwitchComponent] +}) class SwitchSimpleComponent { @ViewChild('switch', { static: true }) public switch: IgxSwitchComponent; public changeEventCalled = false; @@ -327,7 +333,9 @@ class SwitchSimpleComponent { } @Component({ - template: `Required` + template: `Required`, + standalone: true, + imports: [IgxSwitchComponent] }) class SwitchRequiredComponent { @ViewChild('switch', { static: true }) public switch: IgxSwitchComponent; @@ -335,7 +343,9 @@ class SwitchRequiredComponent { @Component({ template: `

    {{label}}

    - ` + `, + standalone: true, + imports: [IgxSwitchComponent] }) class SwitchExternalLabelComponent { @ViewChild('switch', { static: true }) public switch: IgxSwitchComponent; @@ -343,7 +353,9 @@ class SwitchExternalLabelComponent { } @Component({ - template: `` + template: ``, + standalone: true, + imports: [IgxSwitchComponent] }) class SwitchInvisibleLabelComponent { @ViewChild('switch', { static: true }) public switch: IgxSwitchComponent; @@ -351,7 +363,9 @@ class SwitchInvisibleLabelComponent { } @Component({ - template: `
    Form Group
    ` + template: `
    Form Group
    `, + standalone: true, + imports: [ReactiveFormsModule, IgxSwitchComponent] }) class SwitchFormGroupComponent { @ViewChild('switch', { static: true }) public switch: IgxSwitchComponent; @@ -366,7 +380,9 @@ class SwitchFormGroupComponent {
    Switch
    -` + `, + standalone: true, + imports: [FormsModule, IgxSwitchComponent] }) class SwitchFormComponent { @ViewChild('switch', { read: IgxSwitchComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/switch/switch.component.ts b/projects/igniteui-angular/src/lib/switch/switch.component.ts index b79140ab1f6..d0adc78af16 100644 --- a/projects/igniteui-angular/src/lib/switch/switch.component.ts +++ b/projects/igniteui-angular/src/lib/switch/switch.component.ts @@ -3,7 +3,6 @@ import { EventEmitter, HostBinding, Input, - NgModule, Output, ViewChild, ElementRef, @@ -15,7 +14,7 @@ import { Optional } from '@angular/core'; import { ControlValueAccessor, NgControl, Validators } from '@angular/forms'; -import { IgxRippleModule } from '../directives/ripple/ripple.directive'; +import { IgxRippleDirective } from '../directives/ripple/ripple.directive'; import { IBaseEventArgs, mkenum } from '../core/utils'; import { EditorProvider, EDITOR_PROVIDER } from '../core/edit-provider'; import { noop, Subject } from 'rxjs'; @@ -60,10 +59,12 @@ let nextId = 0; providers: [{ provide: EDITOR_PROVIDER, useExisting: IgxSwitchComponent, - multi: true + multi: true }], selector: 'igx-switch', - templateUrl: 'switch.component.html' + templateUrl: 'switch.component.html', + standalone: true, + imports: [IgxRippleDirective] }) export class IgxSwitchComponent implements ControlValueAccessor, EditorProvider, AfterViewInit { private static ngAcceptInputType_required: boolean | ''; @@ -494,13 +495,3 @@ export class IgxSwitchComponent implements ControlValueAccessor, EditorProvider, } } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxSwitchComponent], - exports: [IgxSwitchComponent], - imports: [IgxRippleModule] -}) -export class IgxSwitchModule { } diff --git a/projects/igniteui-angular/src/lib/switch/switch.module.ts b/projects/igniteui-angular/src/lib/switch/switch.module.ts new file mode 100644 index 00000000000..0b9c8c228cf --- /dev/null +++ b/projects/igniteui-angular/src/lib/switch/switch.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IgxSwitchComponent } from './switch.component'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + IgxSwitchComponent + ], + exports: [ + IgxSwitchComponent + ] +}) +export class IgxSwitchModule { } diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-content.component.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-content.component.ts index cf37c6cfa77..994ae273777 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-content.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-content.component.ts @@ -1,11 +1,14 @@ import { Component, HostBinding } from '@angular/core'; import { IgxTabContentDirective } from '../tab-content.directive'; import { IgxTabContentBase } from '../tabs.base'; +import { NgIf } from '@angular/common'; @Component({ selector: 'igx-bottom-nav-content', templateUrl: 'bottom-nav-content.component.html', - providers: [{ provide: IgxTabContentBase, useExisting: IgxBottomNavContentComponent }] + providers: [{ provide: IgxTabContentBase, useExisting: IgxBottomNavContentComponent }], + standalone: true, + imports: [NgIf] }) export class IgxBottomNavContentComponent extends IgxTabContentDirective { /** @hidden */ diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-header.component.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-header.component.ts index 1483be7568a..eacda00c52f 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-header.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-header.component.ts @@ -5,7 +5,8 @@ import { IgxTabHeaderBase } from '../tabs.base'; @Component({ selector: 'igx-bottom-nav-header', templateUrl: 'bottom-nav-header.component.html', - providers: [{ provide: IgxTabHeaderBase, useExisting: IgxBottomNavHeaderComponent }] + providers: [{ provide: IgxTabHeaderBase, useExisting: IgxBottomNavHeaderComponent }], + standalone: true }) export class IgxBottomNavHeaderComponent extends IgxTabHeaderDirective { diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-item.component.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-item.component.ts index 5adf87ab26b..1d1e3fafd01 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-item.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav-item.component.ts @@ -4,7 +4,8 @@ import { IgxTabItemDirective } from '../tab-item.directive'; @Component({ selector: 'igx-bottom-nav-item', templateUrl: 'bottom-nav-item.component.html', - providers: [{ provide: IgxTabItemDirective, useExisting: IgxBottomNavItemComponent }] + providers: [{ provide: IgxTabItemDirective, useExisting: IgxBottomNavItemComponent }], + standalone: true }) export class IgxBottomNavItemComponent extends IgxTabItemDirective { } diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.spec.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.spec.ts index ab2c0e48b9a..ed3fd90bafc 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.spec.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.spec.ts @@ -10,19 +10,12 @@ import { BottomTabBarTestComponent, TabBarTestComponent, BottomNavRoutingGuardTestComponent, BottomNavTestHtmlAttributesComponent } from '../../test-utils/bottom-nav-components.spec'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxBottomNavModule } from './bottom-nav.module'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { IgxBottomNavContentComponent } from './bottom-nav-content.component'; import { IgxBottomNavComponent, IgxBottomNavItemComponent } from './public_api'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; -import { IgxIconModule } from '../../icon/public_api'; import { RoutingTestGuard } from '../../test-utils/routing-test-guard.spec'; -import { RoutingView1Component, - RoutingView2Component, - RoutingView3Component, - RoutingView4Component, - RoutingView5Component, - RoutingViewComponentsModule } from '../../test-utils/routing-view-components.spec'; +import { RoutingView1Component, RoutingView2Component, RoutingView3Component, RoutingView4Component, RoutingView5Component } from '../../test-utils/routing-view-components.spec'; describe('IgxBottomNav', () => { configureTestSuite(); @@ -40,10 +33,21 @@ describe('IgxBottomNav', () => { ]; TestBed.configureTestingModule({ - declarations: [TabBarTestComponent, BottomTabBarTestComponent, TabBarRoutingTestComponent, - TabBarTabsOnlyModeTestComponent, BottomNavRoutingGuardTestComponent, BottomNavTestHtmlAttributesComponent], - imports: [IgxBottomNavModule, BrowserAnimationsModule, IgxIconModule, RoutingViewComponentsModule, - RouterTestingModule.withRoutes(testRoutes)], + imports: [ + NoopAnimationsModule, + RouterTestingModule.withRoutes(testRoutes), + TabBarTestComponent, + BottomTabBarTestComponent, + TabBarRoutingTestComponent, + TabBarTabsOnlyModeTestComponent, + BottomNavRoutingGuardTestComponent, + BottomNavTestHtmlAttributesComponent, + RoutingView1Component, + RoutingView2Component, + RoutingView3Component, + RoutingView4Component, + RoutingView5Component + ], providers: [RoutingTestGuard] }).compileComponents(); })); diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.ts index f2c08cf4299..7db226f4a45 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.component.ts @@ -1,6 +1,7 @@ import { Component } from '@angular/core'; import { IgxTabsBase } from '../tabs.base'; import { IgxTabsDirective } from '../tabs.directive'; +import { NgFor, NgTemplateOutlet } from '@angular/common'; /** @hidden */ @@ -40,7 +41,9 @@ let NEXT_BOTTOM_NAV_ITEM_ID = 0; @Component({ selector: 'igx-bottom-nav', templateUrl: 'bottom-nav.component.html', - providers: [{ provide: IgxTabsBase, useExisting: IgxBottomNavComponent }] + providers: [{ provide: IgxTabsBase, useExisting: IgxBottomNavComponent }], + standalone: true, + imports: [NgFor, NgTemplateOutlet] }) export class IgxBottomNavComponent extends IgxTabsDirective { /** @hidden */ diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.directives.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.directives.ts index 88753b40db1..3348cf062be 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.directives.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.directives.ts @@ -1,11 +1,13 @@ import { Directive } from '@angular/core'; @Directive({ - selector: 'igx-bottom-nav-header-label,[igxBottomNavHeaderLabel]' + selector: 'igx-bottom-nav-header-label,[igxBottomNavHeaderLabel]', + standalone: true }) export class IgxBottomNavHeaderLabelDirective { } @Directive({ - selector: 'igx-bottom-nav-header-icon,[igxBottomNavHeaderIcon]' + selector: 'igx-bottom-nav-header-icon,[igxBottomNavHeaderIcon]', + standalone: true }) export class IgxBottomNavHeaderIconDirective { } diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.module.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.module.ts index d8153c19e6c..c76878569b6 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.module.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/bottom-nav.module.ts @@ -1,32 +1,16 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { IgxRippleModule } from '../../directives/ripple/ripple.directive'; -import { IgxIconModule } from '../../icon/public_api'; -import { IgxBottomNavHeaderComponent } from './bottom-nav-header.component'; -import { IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective } from './bottom-nav.directives'; -import { IgxBottomNavItemComponent } from './bottom-nav-item.component'; -import { IgxBottomNavContentComponent } from './bottom-nav-content.component'; -import { IgxBottomNavComponent } from './bottom-nav.component'; +import { IGX_BOTTOM_NAV_DIRECTIVES } from './public_api'; -/** @hidden */ +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ @NgModule({ - declarations: [ - IgxBottomNavComponent, - IgxBottomNavItemComponent, - IgxBottomNavHeaderComponent, - IgxBottomNavContentComponent, - IgxBottomNavHeaderLabelDirective, - IgxBottomNavHeaderIconDirective + imports: [ + ...IGX_BOTTOM_NAV_DIRECTIVES ], - exports: [ - IgxBottomNavComponent, - IgxBottomNavItemComponent, - IgxBottomNavHeaderComponent, - IgxBottomNavContentComponent, - IgxBottomNavHeaderLabelDirective, - IgxBottomNavHeaderIconDirective - ], - imports: [CommonModule, IgxIconModule, IgxRippleModule] + exports: [ + ...IGX_BOTTOM_NAV_DIRECTIVES + ] }) -export class IgxBottomNavModule { -} +export class IgxBottomNavModule { } diff --git a/projects/igniteui-angular/src/lib/tabs/bottom-nav/public_api.ts b/projects/igniteui-angular/src/lib/tabs/bottom-nav/public_api.ts index 26da287fa68..49252d5f3ce 100644 --- a/projects/igniteui-angular/src/lib/tabs/bottom-nav/public_api.ts +++ b/projects/igniteui-angular/src/lib/tabs/bottom-nav/public_api.ts @@ -1,6 +1,21 @@ +import { IgxBottomNavContentComponent } from './bottom-nav-content.component'; +import { IgxBottomNavHeaderComponent } from './bottom-nav-header.component'; +import { IgxBottomNavItemComponent } from './bottom-nav-item.component'; +import { IgxBottomNavComponent } from './bottom-nav.component'; +import { IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective } from './bottom-nav.directives'; + export * from './bottom-nav.component'; export * from './bottom-nav-item.component'; export * from './bottom-nav-header.component'; export * from './bottom-nav.directives'; export * from './bottom-nav-content.component'; -export * from './bottom-nav.module'; + +/* NOTE: Bottom navigation directives collection for ease-of-use import in standalone components scenario */ +export const IGX_BOTTOM_NAV_DIRECTIVES = [ + IgxBottomNavComponent, + IgxBottomNavItemComponent, + IgxBottomNavHeaderComponent, + IgxBottomNavContentComponent, + IgxBottomNavHeaderLabelDirective, + IgxBottomNavHeaderIconDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/tabs/public_api.ts b/projects/igniteui-angular/src/lib/tabs/public_api.ts deleted file mode 100644 index 5bf7b73ba74..00000000000 --- a/projects/igniteui-angular/src/lib/tabs/public_api.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './tab-header.directive'; -export * from './tab-item.directive'; -export * from './tab-content.directive'; -export * from './tabs.directive'; diff --git a/projects/igniteui-angular/src/lib/tabs/tab-content.directive.ts b/projects/igniteui-angular/src/lib/tabs/tab-content.directive.ts index e4900076129..ed6e302a4ac 100644 --- a/projects/igniteui-angular/src/lib/tabs/tab-content.directive.ts +++ b/projects/igniteui-angular/src/lib/tabs/tab-content.directive.ts @@ -28,5 +28,5 @@ export abstract class IgxTabContentDirective implements IgxTabContentBase { /** @hidden */ public get nativeElement() { return this.elementRef.nativeElement; - }; + } } diff --git a/projects/igniteui-angular/src/lib/tabs/tab-header.directive.ts b/projects/igniteui-angular/src/lib/tabs/tab-header.directive.ts index ab5236beebf..772a5918609 100644 --- a/projects/igniteui-angular/src/lib/tabs/tab-header.directive.ts +++ b/projects/igniteui-angular/src/lib/tabs/tab-header.directive.ts @@ -48,5 +48,5 @@ export abstract class IgxTabHeaderDirective implements IgxTabHeaderBase { /** @hidden */ public get nativeElement() { return this.elementRef.nativeElement; - }; + } } diff --git a/projects/igniteui-angular/src/lib/tabs/tab-item.directive.ts b/projects/igniteui-angular/src/lib/tabs/tab-item.directive.ts index e6e34cf5974..a589a5e765b 100644 --- a/projects/igniteui-angular/src/lib/tabs/tab-item.directive.ts +++ b/projects/igniteui-angular/src/lib/tabs/tab-item.directive.ts @@ -46,7 +46,7 @@ export abstract class IgxTabItemDirective implements IgxTabItemBase, IgxSlideCom @Input() public get selected(): boolean { return this._selected; - }; + } public set selected(value: boolean) { if (this._selected !== value) { diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/public_api.ts b/projects/igniteui-angular/src/lib/tabs/tabs/public_api.ts index 451005b04e3..96c54c7085f 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/public_api.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/public_api.ts @@ -1,6 +1,29 @@ +import { IgxPrefixDirective } from '../../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../../directives/suffix/suffix.directive'; +import { IgxTabContentComponent } from './tab-content.component'; +import { IgxTabHeaderComponent } from './tab-header.component'; +import { IgxTabItemComponent } from './tab-item.component'; +import { IgxTabsComponent } from './tabs.component'; +import { IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective } from './tabs.directives'; + export * from './tabs.component'; export * from './tab-item.component'; export * from './tab-header.component'; export * from './tabs.directives'; export * from './tab-content.component'; -export * from './tabs.module'; +export { + ITabsSelectedIndexChangingEventArgs, + ITabsSelectedItemChangeEventArgs +} from '../tabs.directive' + +/* NOTE: Tabs directives collection for ease-of-use import in standalone components scenario */ +export const IGX_TABS_DIRECTIVES = [ + IgxTabsComponent, + IgxTabItemComponent, + IgxTabHeaderComponent, + IgxTabContentComponent, + IgxTabHeaderLabelDirective, + IgxTabHeaderIconDirective, + IgxPrefixDirective, + IgxSuffixDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/tab-content.component.ts b/projects/igniteui-angular/src/lib/tabs/tabs/tab-content.component.ts index 8a80e259cac..e3494c599a6 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/tab-content.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/tab-content.component.ts @@ -1,11 +1,14 @@ import { Component, HostBinding } from '@angular/core'; import { IgxTabContentDirective } from '../tab-content.directive'; import { IgxTabContentBase } from '../tabs.base'; +import { NgIf } from '@angular/common'; @Component({ selector: 'igx-tab-content', templateUrl: 'tab-content.component.html', - providers: [{ provide: IgxTabContentBase, useExisting: IgxTabContentComponent }] + providers: [{ provide: IgxTabContentBase, useExisting: IgxTabContentComponent }], + standalone: true, + imports: [NgIf] }) export class IgxTabContentComponent extends IgxTabContentDirective { /** @hidden */ diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/tab-header.component.ts b/projects/igniteui-angular/src/lib/tabs/tabs/tab-header.component.ts index d720a76f2e6..77692aee39b 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/tab-header.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/tab-header.component.ts @@ -10,7 +10,8 @@ import { IgxDirectionality } from '../../services/direction/directionality'; @Component({ selector: 'igx-tab-header', templateUrl: 'tab-header.component.html', - providers: [{ provide: IgxTabHeaderBase, useExisting: IgxTabHeaderComponent }] + providers: [{ provide: IgxTabHeaderBase, useExisting: IgxTabHeaderComponent }], + standalone: true }) export class IgxTabHeaderComponent extends IgxTabHeaderDirective implements AfterViewInit, OnDestroy { diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/tab-item.component.ts b/projects/igniteui-angular/src/lib/tabs/tabs/tab-item.component.ts index bdbeb63e24a..ce23b6cba4d 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/tab-item.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/tab-item.component.ts @@ -4,7 +4,8 @@ import { IgxTabItemDirective } from '../tab-item.directive'; @Component({ selector: 'igx-tab-item', templateUrl: 'tab-item.component.html', - providers: [{ provide: IgxTabItemDirective, useExisting: IgxTabItemComponent }] + providers: [{ provide: IgxTabItemDirective, useExisting: IgxTabItemComponent }], + standalone: true }) export class IgxTabItemComponent extends IgxTabItemDirective { diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.spec.ts b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.spec.ts index 4ead9a5cc2d..97dbc69f6ea 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.spec.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.spec.ts @@ -3,7 +3,7 @@ import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; import { IgxTabItemComponent } from './tab-item.component'; import { IgxTabsAlignment, IgxTabsComponent } from './tabs.component'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { By } from '@angular/platform-browser'; import { RouterTestingModule } from '@angular/router/testing'; import { Router } from '@angular/router'; @@ -15,25 +15,11 @@ import { TabsTestHtmlAttributesComponent, TabsTestSelectedTabComponent, TabsWithPrefixSuffixTestComponent, TemplatedTabsTestComponent } from '../../test-utils/tabs-components.spec'; -import { IgxTabsModule } from './tabs.module'; import { configureTestSuite } from '../../test-utils/configure-suite'; import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec'; import { IgxTabContentComponent } from './tab-content.component'; import { RoutingTestGuard } from '../../test-utils/routing-test-guard.spec'; -import { - RoutingView1Component, - RoutingView2Component, - RoutingView3Component, - RoutingView4Component, - RoutingView5Component, - RoutingViewComponentsModule -} from '../../test-utils/routing-view-components.spec'; -import { IgxButtonModule } from '../../directives/button/button.directive'; -import { IgxDropDownModule } from '../../drop-down/public_api'; -import { IgxToggleModule } from '../../directives/toggle/toggle.directive'; -import { IgxIconModule } from '../../icon/public_api'; -import { IgxPrefixModule, IgxSuffixModule } from 'igniteui-angular'; -import { PlatformUtil } from '../../core/utils'; +import { RoutingView1Component, RoutingView2Component, RoutingView3Component, RoutingView4Component, RoutingView5Component } from '../../test-utils/routing-view-components.spec'; const KEY_RIGHT_EVENT = new KeyboardEvent('keydown', { key: 'ArrowRight', bubbles: true }); const KEY_LEFT_EVENT = new KeyboardEvent('keydown', { key: 'ArrowLeft', bubbles: true }); @@ -59,13 +45,29 @@ describe('IgxTabs', () => { ]; TestBed.configureTestingModule({ - declarations: [TabsTestHtmlAttributesComponent, TabsTestComponent, TabsTest2Component, TemplatedTabsTestComponent, - TabsRoutingDisabledTestComponent, TabsTestSelectedTabComponent, TabsTestCustomStylesComponent, TabsTestBug4420Component, - TabsRoutingTestComponent, TabsTabsOnlyModeTest1Component, TabsTabsOnlyModeTest2Component, TabsDisabledTestComponent, - TabsRoutingGuardTestComponent, TabsWithPrefixSuffixTestComponent, TabsContactsComponent, AddingSelectedTabComponent, TabsRtlComponent], - imports: [IgxTabsModule, BrowserAnimationsModule, IgxButtonModule, IgxIconModule, IgxDropDownModule, IgxToggleModule, - RoutingViewComponentsModule, IgxPrefixModule, IgxSuffixModule, RouterTestingModule.withRoutes(testRoutes)], - providers: [RoutingTestGuard, PlatformUtil] + declarations: [], + imports: [ + NoopAnimationsModule, + RouterTestingModule.withRoutes(testRoutes), + TabsTestHtmlAttributesComponent, + TabsTestComponent, + TabsTest2Component, + TemplatedTabsTestComponent, + TabsRoutingDisabledTestComponent, + TabsTestSelectedTabComponent, + TabsTestCustomStylesComponent, + TabsTestBug4420Component, + TabsRoutingTestComponent, + TabsTabsOnlyModeTest1Component, + TabsTabsOnlyModeTest2Component, + TabsDisabledTestComponent, + TabsRoutingGuardTestComponent, + TabsWithPrefixSuffixTestComponent, + TabsContactsComponent, + AddingSelectedTabComponent, + TabsRtlComponent + ], + providers: [RoutingTestGuard] }).compileComponents(); })); diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.ts b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.ts index 4617c7949e5..4fa54edebfe 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.component.ts @@ -5,6 +5,9 @@ import { AnimationService } from '../../services/animation/animation'; import { IgxDirectionality } from '../../services/direction/directionality'; import { IgxTabsBase } from '../tabs.base'; import { IgxTabsDirective } from '../tabs.directive'; +import { NgClass, NgFor, NgTemplateOutlet, NgIf } from '@angular/common'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { IgxRippleDirective } from '../../directives/ripple/ripple.directive'; export const IgxTabsAlignment = mkenum({ start: 'start', @@ -58,7 +61,9 @@ let NEXT_TAB_ID = 0; @Component({ selector: 'igx-tabs', templateUrl: 'tabs.component.html', - providers: [{ provide: IgxTabsBase, useExisting: IgxTabsComponent }] + providers: [{ provide: IgxTabsBase, useExisting: IgxTabsComponent }], + standalone: true, + imports: [IgxRippleDirective, IgxIconComponent, NgClass, NgFor, NgTemplateOutlet, NgIf] }) export class IgxTabsComponent extends IgxTabsDirective implements AfterViewInit, OnDestroy { @@ -69,7 +74,7 @@ export class IgxTabsComponent extends IgxTabsDirective implements AfterViewInit, @Input() public get tabAlignment(): string | IgxTabsAlignment { return this._tabAlignment; - }; + } public set tabAlignment(value: string | IgxTabsAlignment) { this._tabAlignment = value; diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.directives.ts b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.directives.ts index 4d361fefdc1..3f387f56b4f 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.directives.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.directives.ts @@ -1,11 +1,13 @@ import { Directive } from '@angular/core'; @Directive({ - selector: 'igx-tab-header-label,[igxTabHeaderLabel]' + selector: 'igx-tab-header-label,[igxTabHeaderLabel]', + standalone: true }) export class IgxTabHeaderLabelDirective { } @Directive({ - selector: 'igx-tab-header-icon,[igxTabHeaderIcon]' + selector: 'igx-tab-header-icon,[igxTabHeaderIcon]', + standalone: true }) export class IgxTabHeaderIconDirective { } diff --git a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.module.ts b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.module.ts index adce4e86ac2..78250567079 100644 --- a/projects/igniteui-angular/src/lib/tabs/tabs/tabs.module.ts +++ b/projects/igniteui-angular/src/lib/tabs/tabs/tabs.module.ts @@ -1,36 +1,16 @@ -import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { IgxRippleModule } from '../../directives/ripple/ripple.directive'; -import { IgxIconModule } from '../../icon/public_api'; -import { IgxTabHeaderComponent } from './tab-header.component'; -import { IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective } from './tabs.directives'; -import { IgxTabItemComponent } from './tab-item.component'; -import { IgxTabContentComponent } from './tab-content.component'; -import { IgxTabsComponent } from './tabs.component'; -import { IgxPrefixModule } from '../../directives/prefix/prefix.directive'; -import { IgxSuffixModule } from '../../directives/suffix/suffix.directive'; +import { IGX_TABS_DIRECTIVES } from './public_api'; -/** @hidden */ +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ @NgModule({ - declarations: [ - IgxTabsComponent, - IgxTabItemComponent, - IgxTabHeaderComponent, - IgxTabContentComponent, - IgxTabHeaderLabelDirective, - IgxTabHeaderIconDirective + imports: [ + ...IGX_TABS_DIRECTIVES ], - exports: [ - IgxTabsComponent, - IgxTabItemComponent, - IgxTabHeaderComponent, - IgxTabContentComponent, - IgxTabHeaderLabelDirective, - IgxTabHeaderIconDirective, - IgxPrefixModule, - IgxSuffixModule - ], - imports: [CommonModule, IgxIconModule, IgxRippleModule, IgxPrefixModule, IgxSuffixModule] + exports: [ + ...IGX_TABS_DIRECTIVES + ] }) -export class IgxTabsModule { -} +export class IgxTabsModule { } diff --git a/projects/igniteui-angular/src/lib/test-utils/bottom-nav-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/bottom-nav-components.spec.ts index a21fe1aa7c6..6c24c9d5dbf 100644 --- a/projects/igniteui-angular/src/lib/test-utils/bottom-nav-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/bottom-nav-components.spec.ts @@ -1,5 +1,8 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxBottomNavComponent } from '../tabs/bottom-nav/public_api'; +import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxBottomNavComponent, IgxBottomNavContentComponent, IgxBottomNavHeaderComponent, IgxBottomNavItemComponent } from '../tabs/bottom-nav/public_api'; +import { IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective } from '../tabs/tabs/tabs.directives'; @Component({ template: ` @@ -48,7 +51,9 @@ import { IgxBottomNavComponent } from '../tabs/bottom-nav/public_api'; -
    ` + `, + standalone: true, + imports: [IgxBottomNavComponent, IgxBottomNavItemComponent, IgxBottomNavHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxBottomNavContentComponent] }) export class TabBarTestComponent { @ViewChild(IgxBottomNavComponent, { static: true }) public bottomNav: IgxBottomNavComponent; @@ -102,44 +107,15 @@ export class TabBarTestComponent { - ` + `, + standalone: true, + imports: [IgxBottomNavComponent, IgxBottomNavItemComponent, IgxBottomNavHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxBottomNavContentComponent] }) export class BottomTabBarTestComponent { @ViewChild(IgxBottomNavComponent, { static: true }) public bottomNav: IgxBottomNavComponent; @ViewChild('wrapperDiv', { static: true }) public wrapperDiv: any; } -// @Component({ -// template: ` -//
    - -// -// -// -//
    T1
    -//
    -//

    Tab 1 Content

    -//
    -// -// -//
    T2
    -//
    -//

    Tab 2 Content

    -//
    -// -// -//
    T3
    -//
    -//

    Tab 3 Content

    -//
    -//
    -//
    ` -// }) -// export class TemplatedTabBarTestComponent { -// @ViewChild(IgxBottomNavComponent, { static: true }) public bottomNav: IgxBottomNavComponent; -// @ViewChild('wrapperDiv', { static: true }) public wrapperDiv: any; -// } - @Component({ template: `
    @@ -167,7 +143,19 @@ export class BottomTabBarTestComponent {
    - ` + `, + standalone: true, + imports: [ + IgxBottomNavComponent, + IgxBottomNavItemComponent, + IgxBottomNavHeaderComponent, + IgxTabHeaderIconDirective, + IgxTabHeaderLabelDirective, + IgxIconComponent, + RouterLinkActive, + RouterLink, + RouterOutlet + ] }) export class TabBarRoutingTestComponent { @ViewChild(IgxBottomNavComponent, { static: true }) @@ -201,7 +189,9 @@ export class TabBarRoutingTestComponent { - ` + `, + standalone: true, + imports: [IgxBottomNavComponent, IgxBottomNavItemComponent, IgxBottomNavHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxBottomNavContentComponent] }) export class TabBarTabsOnlyModeTestComponent { @ViewChild(IgxBottomNavComponent, { static: true }) @@ -229,7 +219,9 @@ export class TabBarTabsOnlyModeTestComponent { - ` + `, + standalone: true, + imports: [IgxBottomNavComponent, IgxBottomNavItemComponent, IgxBottomNavHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, RouterLink, RouterLinkActive, RouterOutlet] }) export class BottomNavRoutingGuardTestComponent { @ViewChild(IgxBottomNavComponent, { static: true }) @@ -296,7 +288,9 @@ export class BottomNavRoutingGuardTestComponent { - ` + `, + standalone: true, + imports: [IgxBottomNavComponent, IgxBottomNavItemComponent, IgxBottomNavHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxBottomNavContentComponent] }) export class BottomNavTestHtmlAttributesComponent { @ViewChild(IgxBottomNavComponent, { static: true }) public bottomNav: IgxBottomNavComponent; diff --git a/projects/igniteui-angular/src/lib/calendar/calendar-helper-utils.ts b/projects/igniteui-angular/src/lib/test-utils/calendar-helper-utils.ts similarity index 100% rename from projects/igniteui-angular/src/lib/calendar/calendar-helper-utils.ts rename to projects/igniteui-angular/src/lib/test-utils/calendar-helper-utils.ts diff --git a/projects/igniteui-angular/src/lib/test-utils/controls-functions.spec.ts b/projects/igniteui-angular/src/lib/test-utils/controls-functions.spec.ts index 96cf5dc63d5..1a85e4c1970 100644 --- a/projects/igniteui-angular/src/lib/test-utils/controls-functions.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/controls-functions.spec.ts @@ -36,15 +36,15 @@ export class ControlsFunction { fix.detectChanges(); } - public static verifyButtonIsSelected(element: HTMLElement, selected: boolean = true) { + public static verifyButtonIsSelected(element: HTMLElement, selected = true) { expect(element.classList.contains(BUTTON_SELECTED_CLASS)).toEqual(selected); } - public static verifyButtonIsDisabled(element: HTMLElement, disabled: boolean = true) { + public static verifyButtonIsDisabled(element: HTMLElement, disabled = true) { expect(element.classList.contains(BUTTON_DISABLED_CLASS)).toEqual(disabled); } - public static verifyCheckboxState(element: HTMLElement, checked: boolean = true, indeterminate = false) { + public static verifyCheckboxState(element: HTMLElement, checked = true, indeterminate = false) { expect(element.classList.contains(CHECKBOX_CHECKED_CLASS)).toEqual(checked); expect(element.classList.contains(CHECKBOX_IND_CLASS)).toEqual(indeterminate); } diff --git a/projects/igniteui-angular/src/lib/test-utils/grid-base-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/grid-base-components.spec.ts index f0ee2103fca..69aac85ad7d 100644 --- a/projects/igniteui-angular/src/lib/test-utils/grid-base-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/grid-base-components.spec.ts @@ -4,6 +4,17 @@ import { ColumnDefinitions, GridTemplateStrings } from './template-strings.spec' import { IgxGridComponent } from '../grids/grid/grid.component'; import { IgxColumnActionsComponent } from '../grids/column-actions/column-actions.component'; import { GridPagingMode } from '../grids/common/enums'; +import { IgxColumnComponent } from '../grids/columns/column.component'; +import { IgxGridToolbarComponent } from '../grids/toolbar/grid-toolbar.component'; +import { IgxGridToolbarHidingComponent } from '../grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarActionsComponent } from '../grids/toolbar/common'; +import { IgxPaginatorComponent } from '../paginator/paginator.component'; +import { IgxColumnGroupComponent } from '../grids/columns/column-group.component'; +import { IgxGridToolbarPinningComponent } from '../grids/toolbar/grid-toolbar-pinning.component'; +import { NgFor, NgIf } from '@angular/common'; +import { IgxCellTemplateDirective } from '../grids/columns/templates.directive'; +import { IgxColumnHidingDirective } from '../grids/column-actions/column-hiding.directive'; +import { IgxColumnPinningDirective } from '../grids/column-actions/column-pinning.directive'; @Component({ template: ` @@ -11,7 +22,9 @@ import { GridPagingMode } from '../grids/common/enums'; [data]="data" [autoGenerate]="true"> - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class BasicGridComponent { @ViewChild(IgxGridComponent, { static: true }) @@ -26,7 +39,9 @@ export class BasicGridComponent { [data]="data" [autoGenerate]="autoGenerate"> - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class GridAutoGenerateComponent extends BasicGridComponent { public autoGenerate = true; @@ -39,7 +54,9 @@ export class GridAutoGenerateComponent extends BasicGridComponent { [autoGenerate]="autoGenerate" [height]="height" [width]="width"> - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class GridWithSizeComponent extends GridAutoGenerateComponent { public width = '100%'; @@ -51,7 +68,9 @@ export class GridWithSizeComponent extends GridAutoGenerateComponent { } @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.generatedEditable) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.generatedEditable), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class GridNxMComponent extends GridWithSizeComponent implements OnInit { public colsCount: number; @@ -78,7 +97,9 @@ export class GridNxMComponent extends GridWithSizeComponent implements OnInit { @Component({ template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.idNameJobHireDate, '', - '') + ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class BasicGridSearchComponent extends GridWithSizeComponent { public highlightClass = 'igx-highlight'; @@ -88,7 +109,9 @@ export class BasicGridSearchComponent extends GridWithSizeComponent { @Component({ template: GridTemplateStrings.declareGrid(``, - '', ColumnDefinitions.idNameJobTitle, '', '') + '', ColumnDefinitions.idNameJobTitle, '', ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class PagingComponent extends GridWithSizeComponent { public paging = true; @@ -99,7 +122,9 @@ export class PagingComponent extends GridWithSizeComponent { @Component({ template: GridTemplateStrings.declareGrid('[pagingMode]="pagingMode"', '', ColumnDefinitions.idNameJobTitle, '', - '') + ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent] }) export class RemotePagingComponent extends GridWithSizeComponent { public pagingMode = GridPagingMode.Remote; @@ -110,7 +135,9 @@ export class RemotePagingComponent extends GridWithSizeComponent { @Component({ template: GridTemplateStrings.declareGrid(` rowSelection = "multiple"`, - '', ColumnDefinitions.productBasicNumberID) + '', ColumnDefinitions.productBasicNumberID), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class SelectionComponent extends BasicGridComponent { public override data = SampleTestData.generateBigValuesData(100); @@ -118,7 +145,9 @@ export class SelectionComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid(` [autoGenerate]="true" [exportExcel]="exportExcel" [exportCsv]="exportCsv"`, - '', '') + '', ''), + standalone: true, + imports: [IgxGridComponent] }) export class GridWithToolbarComponent extends GridWithSizeComponent { public showToolbar = true; @@ -132,7 +161,9 @@ export class GridWithToolbarComponent extends GridWithSizeComponent { @Component({ template: GridTemplateStrings.declareGrid(` [autoGenerate]="true" [rowClasses]="rowClasses"`, - '', '') + '', ''), + standalone: true, + imports: [IgxGridComponent] }) export class GridRowConditionalStylingComponent extends GridWithSizeComponent { @@ -152,7 +183,19 @@ export class GridRowConditionalStylingComponent extends GridWithSizeComponent { ${ GridTemplateStrings.declareGrid('#grid [height]="height" [width]="width"', '', ColumnDefinitions.productHidable, '' + '' + '', '') } - ` + `, + standalone: true, + imports: [ + IgxGridComponent, + IgxColumnComponent, + IgxColumnActionsComponent, + IgxGridToolbarComponent, + IgxGridToolbarHidingComponent, + IgxGridToolbarActionsComponent, + IgxPaginatorComponent, + IgxColumnHidingDirective, + NgIf + ] }) export class ColumnHidingTestComponent extends GridWithSizeComponent implements OnInit, AfterViewInit { @ViewChild(IgxColumnActionsComponent) @@ -184,7 +227,9 @@ export class ColumnHidingTestComponent extends GridWithSizeComponent implements template: `
    ${ GridTemplateStrings.declareGrid(' #grid [height]="height" [width]="width" [moving]="true"', '', ColumnDefinitions.contactInfoGroupableColumns) } -
    ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnActionsComponent, IgxColumnGroupComponent, IgxColumnHidingDirective, NgIf] }) export class ColumnGroupsHidingTestComponent extends ColumnHidingTestComponent { @ViewChild(IgxGridComponent, { static: true }) public override grid: IgxGridComponent; @@ -203,7 +248,9 @@ export class ColumnGroupsHidingTestComponent extends ColumnHidingTestComponent { '' + '' + '')} - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnActionsComponent, IgxColumnPinningDirective, IgxGridToolbarComponent, IgxGridToolbarPinningComponent, IgxGridToolbarActionsComponent, NgIf] }) export class ColumnPinningTestComponent extends GridWithSizeComponent implements AfterViewInit, OnInit { @ViewChild(IgxColumnActionsComponent) public chooser: IgxColumnActionsComponent; @@ -242,7 +289,9 @@ export class ColumnPinningTestComponent extends GridWithSizeComponent implements
    - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective] }) export class ColumnPinningWithTemplateTestComponent extends ColumnPinningTestComponent { } @@ -252,7 +301,9 @@ export class ColumnPinningWithTemplateTestComponent extends ColumnPinningTestCom ${ GridTemplateStrings.declareGrid(' #grid [height]="height" [moving]="true"', '', ColumnDefinitions.contactInfoGroupableColumns, '')} - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent, IgxGridToolbarComponent, IgxColumnActionsComponent, IgxColumnPinningDirective, NgIf] }) export class ColumnGroupsPinningTestComponent extends ColumnPinningTestComponent { public override data = SampleTestData.contactInfoDataFull(); diff --git a/projects/igniteui-angular/src/lib/test-utils/grid-functions.spec.ts b/projects/igniteui-angular/src/lib/test-utils/grid-functions.spec.ts index 5304215adc4..952a5634587 100644 --- a/projects/igniteui-angular/src/lib/test-utils/grid-functions.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/grid-functions.spec.ts @@ -824,7 +824,7 @@ export class GridFunctions { * Click the pin/unpin icon in the ESF by specifying whether the icon is in the header * or at its default position (depending on the display density). */ - public static clickPinIconInExcelStyleFiltering(fix: ComponentFixture, isIconInHeader: boolean = true) { + public static clickPinIconInExcelStyleFiltering(fix: ComponentFixture, isIconInHeader = true) { let pinUnpinIcon: any; if (isIconInHeader) { const headerIcons = GridFunctions.getExcelFilteringHeaderIcons(fix); @@ -843,7 +843,7 @@ export class GridFunctions { * Click the hide icon in the ESF by specifying whether the icon is in the header * or at its default position (depending on the display density). */ - public static clickHideIconInExcelStyleFiltering(fix: ComponentFixture, isIconInHeader: boolean = true) { + public static clickHideIconInExcelStyleFiltering(fix: ComponentFixture, isIconInHeader = true) { let hideIcon: any; if (isIconInHeader) { const headerIcons = GridFunctions.getExcelFilteringHeaderIcons(fix); @@ -899,13 +899,13 @@ export class GridFunctions { moveRightIcon.click(); } - public static getExcelFilteringInput(fix: ComponentFixture, expressionIndex: number = 0): HTMLInputElement { + public static getExcelFilteringInput(fix: ComponentFixture, expressionIndex = 0): HTMLInputElement { const expr = GridFunctions.getExcelCustomFilteringDefaultExpressions(fix)[expressionIndex]; return expr.querySelectorAll('.igx-input-group__input').item(1) as HTMLInputElement; } public static getExcelFilteringDDInput(fix: ComponentFixture, - expressionIndex: number = 0, isDate: boolean = false): HTMLInputElement { + expressionIndex = 0, isDate = false): HTMLInputElement { const allExpressions = isDate ? GridFunctions.getExcelCustomFilteringDateExpressions(fix) : GridFunctions.getExcelCustomFilteringDefaultExpressions(fix); return allExpressions[expressionIndex].querySelectorAll('.igx-input-group__input').item(0) as HTMLInputElement; @@ -1319,7 +1319,7 @@ export class GridFunctions { /** * (Double)Click the underlying chip of the expression that is located on the provided 'path'. */ - public static clickAdvancedFilteringTreeExpressionChip(fix: ComponentFixture, path: number[], dblClick: boolean = false) { + public static clickAdvancedFilteringTreeExpressionChip(fix: ComponentFixture, path: number[], dblClick = false) { const chip = GridFunctions.getAdvancedFilteringTreeExpressionChip(fix, path); if (dblClick) { chip.dispatchEvent(new MouseEvent('dblclick')); @@ -1382,7 +1382,7 @@ export class GridFunctions { * Click the value input for the expression that is currently in edit mode. * (NOTE: The value input could be either an input group or a date picker.) */ - public static clickAdvancedFilteringValueInput(fix: ComponentFixture, dateType: boolean = false) { + public static clickAdvancedFilteringValueInput(fix: ComponentFixture, dateType = false) { // Could be either an input group or a date picker. const valueInput = GridFunctions.getAdvancedFilteringValueInput(fix, dateType); valueInput.click(); @@ -1488,7 +1488,7 @@ export class GridFunctions { * Get all child groups of the given 'group' by specifying whether to include its direct child groups only * or all of its child groups in the hierarchy. (NOTE: Expressions do not have children!) */ - public static getAdvancedFilteringTreeChildGroups(group: HTMLElement, directChildrenOnly: boolean = true) { + public static getAdvancedFilteringTreeChildGroups(group: HTMLElement, directChildrenOnly = true) { const pattern = directChildrenOnly ? ':scope > .igx-filter-tree' : '.igx-filter-tree'; const childrenContainer = group.querySelector('.igx-filter-tree__expression'); const childGroups = GridFunctions.sortNativeElementsVertically(Array.from(childrenContainer.querySelectorAll(pattern))); @@ -1499,7 +1499,7 @@ export class GridFunctions { * Get all child expressions of the given 'group' by specifying whether to include its direct child expressions only * or all of its child expressions in the hierarchy. */ - public static getAdvancedFilteringTreeChildExpressions(group: HTMLElement, directChildrenOnly: boolean = true) { + public static getAdvancedFilteringTreeChildExpressions(group: HTMLElement, directChildrenOnly = true) { const pattern = directChildrenOnly ? ':scope > .igx-filter-tree__expression-item' : '.igx-filter-tree__expression-item'; const childrenContainer = group.querySelector('.igx-filter-tree__expression'); const childExpressions = GridFunctions.sortNativeElementsVertically(Array.from(childrenContainer.querySelectorAll(pattern))); @@ -1510,7 +1510,7 @@ export class GridFunctions { * Get all child groups and expressions of the given 'group' by specifying whether to include its * direct child groups and expressions only or all of its child groups and expressions in the hierarchy. */ - public static getAdvancedFilteringTreeChildItems(group: HTMLElement, directChildrenOnly: boolean = true) { + public static getAdvancedFilteringTreeChildItems(group: HTMLElement, directChildrenOnly = true) { const childGroups = Array.from(GridFunctions.getAdvancedFilteringTreeChildGroups(group, directChildrenOnly)); const childExpressions = Array.from(GridFunctions.getAdvancedFilteringTreeChildExpressions(group, directChildrenOnly)); return GridFunctions.sortNativeElementsVertically(childGroups.concat(childExpressions)); @@ -1707,7 +1707,7 @@ export class GridFunctions { return columnSelect; } - public static getAdvancedFilteringValueInput(fix: ComponentFixture, dateType: boolean = false) { + public static getAdvancedFilteringValueInput(fix: ComponentFixture, dateType = false) { const editModeContainer = GridFunctions.getAdvancedFilteringEditModeContainer(fix); const input = dateType ? editModeContainer.querySelector('igx-date-picker').querySelector('input') : @@ -2183,7 +2183,7 @@ export class GridSummaryFunctions { }); } - public static verifySummaryCellActive(fix, row, cellIndex, active: boolean = true) { + public static verifySummaryCellActive(fix, row, cellIndex, active = true) { const summaryRow = typeof row === 'number' ? GridSummaryFunctions.getSummaryRowByDataRowIndex(fix, row) : row; const summ = GridSummaryFunctions.getSummaryCellByVisibleIndex(summaryRow, cellIndex); diff --git a/projects/igniteui-angular/src/lib/test-utils/grid-mch-sample.spec.ts b/projects/igniteui-angular/src/lib/test-utils/grid-mch-sample.spec.ts index 07d8456477b..4d6a5689a4c 100644 --- a/projects/igniteui-angular/src/lib/test-utils/grid-mch-sample.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/grid-mch-sample.spec.ts @@ -3,6 +3,8 @@ import { SampleTestData } from './sample-test-data.spec'; import { IgxColumnComponent } from '../grids/columns/column.component'; import { IgxGridComponent } from '../grids/grid/public_api'; import { IgxColumnGroupComponent } from '../grids/columns/column-group.component'; +import { NgFor, NgIf } from '@angular/common'; +import { IgxCellHeaderTemplateDirective } from '../grids/columns/templates.directive'; @Component({ template: ` @@ -13,7 +15,9 @@ import { IgxColumnGroupComponent } from '../grids/columns/column-group.component - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class OneGroupOneColGridComponent { @ViewChild('grid', { static: true }) @@ -35,7 +39,9 @@ export class OneGroupOneColGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class OneGroupThreeColsGridComponent { @ViewChild('grid', { static: true }) public grid: IgxGridComponent; @@ -72,7 +78,9 @@ export class OneGroupThreeColsGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class ColumnGroupTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -115,7 +123,9 @@ export class ColumnGroupTestComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class ColumnGroupFourLevelTestComponent implements OnInit { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -176,38 +186,6 @@ export class ColumnGroupFourLevelTestComponent implements OnInit { } } - -@Component({ - template: ` - - - - - - - - - - - - - - - - - - - - - ` -}) -export class ColumnGroupTwoGroupsTestComponent { - @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) - public grid: IgxGridComponent; - - public data = SampleTestData.contactInfoDataFull(); -} - @Component({ template: ` @@ -227,7 +205,9 @@ export class ColumnGroupTwoGroupsTestComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class ThreeGroupsThreeColumnsGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -278,7 +258,9 @@ export class ThreeGroupsThreeColumnsGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class NestedColGroupsGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -312,7 +294,9 @@ export class NestedColGroupsGridComponent { [filterable]="true"> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent, NgFor] }) export class DynamicColGroupsGridComponent { @@ -380,7 +364,9 @@ export class DynamicColGroupsGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class StegosaurusGridComponent implements OnInit { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -496,7 +482,9 @@ export class StegosaurusGridComponent implements OnInit { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent, NgIf, NgFor] }) export class BlueWhaleGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -537,7 +525,9 @@ export class BlueWhaleGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class OneColPerGroupGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -576,7 +566,9 @@ export class OneColPerGroupGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent] }) export class NestedColumnGroupsGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -606,7 +598,9 @@ export class NestedColumnGroupsGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent, NgFor] }) export class DynamicGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -636,7 +630,9 @@ export class DynamicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent, IgxCellHeaderTemplateDirective] }) export class NestedColGroupsWithTemplatesGridComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts b/projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts index 5ea291b6327..440622cb326 100644 --- a/projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts @@ -1,9 +1,11 @@ -import { Component, TemplateRef, ViewChild, Input, AfterViewInit, ChangeDetectorRef, QueryList, ViewChildren, OnInit } from '@angular/core'; +import { Component, TemplateRef, ViewChild, Input, AfterViewInit, QueryList, ViewChildren, OnInit } from '@angular/core'; +import { NgFor, NgIf } from '@angular/common'; + import { IgxDateSummaryOperand, IgxNumberSummaryOperand, IgxSummaryResult } from '../grids/summaries/grid-summary'; -import { IGridCellEventArgs, IGridEditEventArgs } from '../grids/common/events'; +import { IGridCellEventArgs } from '../grids/common/events'; import { BasicGridComponent, BasicGridSearchComponent, GridAutoGenerateComponent, - GridNxMComponent, GridWithSizeComponent, PagingComponent + GridWithSizeComponent, PagingComponent } from './grid-base-components.spec'; import { IGridSelection } from './grid-interfaces.spec'; import { SampleTestData, DataParent } from './sample-test-data.spec'; @@ -12,112 +14,38 @@ import { IgxColumnComponent } from '../grids/columns/column.component'; import { IgxFilteringOperand, IgxNumberFilteringOperand } from '../data-operations/filtering-condition'; import { IFilteringExpressionsTree, FilteringExpressionsTree } from '../data-operations/filtering-expressions-tree'; import { FilteringStrategy, IgxFilterItem } from '../data-operations/filtering-strategy'; -import { CellType, IgxGridComponent } from '../grids/grid/public_api'; -import { IgxRowEditTabStopDirective } from '../grids/grid.rowEdit.directive'; -import { IgxGridExcelStyleFilteringComponent } from '../grids/filtering/excel-style/grid.excel-style-filtering.component'; +import { IgxExcelStyleHeaderIconDirective, IgxGridComponent, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective } from '../grids/grid/public_api'; +import { IgxRowAddTextDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTemplateDirective, IgxRowEditTextDirective } from '../grids/grid.rowEdit.directive'; +import { IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective, IgxGridExcelStyleFilteringComponent } from '../grids/filtering/excel-style/excel-style-filtering.component'; import { FilteringLogic } from '../data-operations/filtering-expression.interface'; import { ISortingStrategy, SortingDirection } from '../data-operations/sorting-strategy'; import { IgxActionStripComponent } from '../action-strip/action-strip.component'; -import { ExpressionUI } from '../grids/filtering/excel-style/common'; import { IDataCloneStrategy } from '../data-operations/data-clone-strategy'; -import { ColumnType } from '../grids/common/grid.interface'; -import { IgxPaginatorComponent } from '../paginator/public_api'; - -@Component({ - template: `
    - ${GridTemplateStrings.declareGrid('[autoGenerate]="autoGenerate"', '', ColumnDefinitions.indexAndValue)}
    ` -}) -export class GridInDivComponent extends GridAutoGenerateComponent { - public override data = SampleTestData.oneItemNumberData(); - public override autoGenerate = false; -} - -@Component({ - template: GridTemplateStrings.declareGrid(` width="500px"`, '', ColumnDefinitions.pinnedTwoOfFour) -}) -export class PinningAndResizingComponent extends BasicGridComponent { - public override data = SampleTestData.personIDNameRegionData(); -} - -@Component({ - template: GridTemplateStrings.declareGrid(` width="600px" height="600px" [autoGenerate]="false"`, '', - ColumnDefinitions.pinnedThreeOfEight) -}) -export class LargePinnedColGridComponent extends BasicGridComponent { - public override data = SampleTestData.generateProductData(75); -} - -@Component({ - template: GridTemplateStrings.declareGrid('', - EventSubscriptions.columnResized, - ColumnDefinitions.gridFeatures) -}) -export class SortingAndResizingComponent extends BasicGridComponent { - - public count = 0; - public column; - public prevWidth; - public newWidth; - - public override data = SampleTestData.productInfoData(); - - public columnResized(event) { - this.count++; - this.column = event.column; - this.prevWidth = event.prevWidth; - this.newWidth = event.newWidth; - } -} - -@Component({ - template: GridTemplateStrings.declareGrid(` [height]="'800px'"`, '', - ColumnDefinitions.resizableColsComponent) -}) -export class ResizableColumnsComponent extends BasicGridComponent { - - public columns = [ - { field: 'ID', resizable: true, maxWidth: 200, minWidth: 70 }, - { field: 'CompanyName', resizable: true }, - { field: 'ContactName', resizable: true }, - { field: 'ContactTitle', resizable: true }, - { field: 'Address', resizable: true }, - { field: 'City', resizable: true }, - { field: 'Region', resizable: true }, - { field: 'PostalCode', resizable: true }, - { field: 'Phone', resizable: true }, - { field: 'Fax', resizable: true } - ]; - - public override data = SampleTestData.contactInfoDataFull(); -} - -@Component({ - template: GridTemplateStrings.declareGrid(` [height]="'800px'"`, '', - ColumnDefinitions.iterableComponent) -}) -export class ColumnsFromIterableComponent extends BasicGridComponent { - - public columns = ['ID', 'Name']; - public override data = SampleTestData.personIDNameData(); -} - -@Component({ - template: GridTemplateStrings.declareGrid('', '', - ColumnDefinitions.columnTemplates) -}) -export class TemplatedColumnsComponent extends BasicGridComponent { - @ViewChild('newHeader', { read: TemplateRef, static: true }) - public newHeaderTemplate: TemplateRef; - - @ViewChild('newCell', { read: TemplateRef, static: true }) - public newCellTemplate: TemplateRef; - - public override data = SampleTestData.personIDNameData(); -} +import { IgxColumnLayoutComponent } from '../grids/columns/column-layout.component'; +import { IgxPaginatorComponent } from '../paginator/paginator.component'; +import { IgxColumnGroupComponent } from '../grids/columns/column-group.component'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxExcelStyleMovingComponent } from '../grids/filtering/excel-style/excel-style-moving.component'; +import { IgxExcelStylePinningComponent } from '../grids/filtering/excel-style/excel-style-pinning.component'; +import { IgxExcelStyleSearchComponent } from '../grids/filtering/excel-style/excel-style-search.component'; +import { IgxExcelStyleSelectingComponent } from '../grids/filtering/excel-style/excel-style-selecting.component'; +import { IgxInputGroupComponent } from '../input-group/input-group.component'; +import { IgxInputDirective, IgxPrefixDirective, IgxSuffixDirective } from '../input-group/public_api'; +import { IgxGridToolbarComponent } from '../grids/toolbar/grid-toolbar.component'; +import { IgxCheckboxComponent } from '../checkbox/checkbox.component'; +import { IgxGridToolbarActionsComponent } from '../grids/toolbar/common'; +import { IgxGridToolbarHidingComponent } from '../grids/toolbar/grid-toolbar-hiding.component'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxGridEditingActionsComponent } from '../action-strip/grid-actions/grid-editing-actions.component'; +import { IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCollapsibleIndicatorTemplateDirective, IgxFilterCellTemplateDirective } from '../grids/columns/templates.directive'; +import { IgxGroupByRowSelectorDirective, IgxHeadSelectorDirective, IgxRowSelectorDirective } from '../grids/selection/row-selectors'; +import { CellType, ColumnType, IgxAdvancedFilteringDialogComponent } from '../grids/public_api'; @Component({ template: GridTemplateStrings.declareGrid('', '', - ``) + ``), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ColumnHiddenFromMarkupComponent extends BasicGridComponent { public override data = SampleTestData.personIDNameData(); @@ -134,7 +62,9 @@ export class ColumnHiddenFromMarkupComponent extends BasicGridComponent { [dataType]="c.type"> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class GridAddColumnComponent extends BasicGridComponent implements OnInit { public columns: Array; @@ -151,7 +81,9 @@ export class GridAddColumnComponent extends BasicGridComponent implements OnInit @Component({ template: GridTemplateStrings.declareGrid('', '', - ColumnDefinitions.idNameFormatter) + ColumnDefinitions.idNameFormatter), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ColumnCellFormatterComponent extends BasicGridComponent { public override data = SampleTestData.personIDNameData(); @@ -171,25 +103,20 @@ export class ColumnCellFormatterComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid(` height="500px"`, '', - ColumnDefinitions.productFilterable) + ColumnDefinitions.productFilterable), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class FilteringComponent extends BasicGridComponent { public override data = SampleTestData.productInfoData(); } -@Component({ - template: GridTemplateStrings.declareGrid( - ` #gridSelection3 [primaryKey]="'ID'" [width]="'800px'" [height]="'600px'" [autoGenerate]="true" [rowSelection]="'multiple'"`, - '', '') -}) -export class SelectionComponent extends BasicGridComponent { - public override data = SampleTestData.generateBigValuesData(20); -} - @Component({ template: GridTemplateStrings.declareGrid( ` [width]="width" [height]="height" [rowSelection]="'multiple'" [primaryKey]="'ProductID'" [selectedRows]="selectedRows"`, - '', ColumnDefinitions.productBasicNumberID, '', '') + '', ColumnDefinitions.productBasicNumberID, '', ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class RowSelectionComponent extends BasicGridComponent { public override data = SampleTestData.foodProductDataExtended(); @@ -202,7 +129,9 @@ export class RowSelectionComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid( ` [width]="width" [height]="height" [rowSelection]="'single'" [primaryKey]="'ProductID'"`, - '', ColumnDefinitions.productBasicNumberID) + '', ColumnDefinitions.productBasicNumberID), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class SingleRowSelectionComponent extends BasicGridComponent { public override data = SampleTestData.foodProductDataExtended(); @@ -214,43 +143,15 @@ export class SingleRowSelectionComponent extends BasicGridComponent { template: GridTemplateStrings.declareGrid( ` [width]="width" [height]="height" [rowSelection]="'multiple'"`, '', - ColumnDefinitions.idFirstLastNameSortable) + ColumnDefinitions.idFirstLastNameSortable), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) - export class RowSelectionWithoutPrimaryKeyComponent extends BasicGridComponent { public override data = SampleTestData.personIDNameRegionData(); public width = '800px'; public height = '600px'; } -@Component({ - template: GridTemplateStrings.declareGrid( - ` rowSelection = "multiple"`, - EventSubscriptions.rowSelectionChanging, - ColumnDefinitions.productBasic) -}) -export class SelectionCancellableComponent extends BasicGridComponent { - public override data = SampleTestData.foodProductData(); - - public rowSelectionChanging(evt) { - if (evt.added.length > 0 && (evt.added[0].ProductID) % 2 === 0) { - evt.newSelection = evt.oldSelection || []; - } - } -} - -@Component({ - template: GridTemplateStrings.declareGrid( - ` #gridSelection3 - [primaryKey]="'ID'" - [width]="'800px'" - [height]="'600px'" - [autoGenerate]="true" - rowSelection = "multiple"`, - '', '') -}) -export class ScrollsComponent extends BasicGridComponent { - public override data = SampleTestData.generateBigDataRowsAndCols(16, 16); -} @Component({ template: GridTemplateStrings.declareGrid( @@ -258,21 +159,14 @@ export class ScrollsComponent extends BasicGridComponent { [width]="'900px'" [height]="'900px'" [columnWidth]="'200px'"`, - '', ColumnDefinitions.idNameJobTitleCompany) + '', ColumnDefinitions.idNameJobTitleCompany), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class NoScrollsComponent extends GridWithSizeComponent { public override data = SampleTestData.personIDNameJobCompany(); } -@Component({ - template: GridTemplateStrings.declareGrid( - ` rowSelection = "multiple"`, - '', ColumnDefinitions.productDefaultSummaries) -}) -export class SummariesComponent extends BasicGridComponent { - public override data = SampleTestData.foodProductData(); -} - class DealsSummaryMinMax extends IgxNumberSummaryOperand { constructor() { super(); @@ -290,7 +184,9 @@ class DealsSummaryMinMax extends IgxNumberSummaryOperand { @Component({ template: GridTemplateStrings.declareGrid( ` [primaryKey]="'ProductID'" [height]="null" [allowFiltering]="true"`, - '', ColumnDefinitions.productDefaultSummaries) + '', ColumnDefinitions.productDefaultSummaries), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class SummaryColumnComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); @@ -302,32 +198,9 @@ export class SummaryColumnComponent extends BasicGridComponent { } @Component({ - template: GridTemplateStrings.declareGrid( - ` [width]="width" [height]="height"`, - '', ColumnDefinitions.productDefaultSummaries) -}) -export class VirtualSummaryColumnComponent extends BasicGridComponent { - public override data = SampleTestData.foodProductDataExtended(); - - public width = '800px'; - public height = '600px'; - - public numberSummary = new IgxNumberSummaryOperand(); - public dateSummary = new IgxDateSummaryOperand(); - - public scrollTop(newTop: number) { - const vScrollbar = this.grid.verticalScrollContainer.getScroll(); - vScrollbar.scrollTop = newTop; - } - - public scrollLeft(newLeft: number) { - const hScrollbar = this.grid.headerContainer.getScroll(); - hScrollbar.scrollLeft = newLeft; - } -} - -@Component({ - template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.productBasic, '', '') + template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.productBasic, '', ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class ProductsComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); @@ -339,244 +212,9 @@ export class ProductsComponent extends BasicGridComponent { } @Component({ - template: GridTemplateStrings.declareGrid(` style="margin-bottom: 20px;"`, - EventSubscriptions.columnInit, - ColumnDefinitions.generatedWithSummaries) -}) -export class DefaultSizeAndSummaryComponent extends BasicGridComponent { - public columns = []; - - public columnInit(column) { - switch (this.grid.columnList.length) { - case 5: - if (column.index === 0 || column.index === 4) { - column.width = '200px'; - } - break; - case 30: - if (column.index === 0 || column.index === 5 || column.index === 3 || column.index === 10 || column.index === 25) { - column.width = '200px'; - } - break; - case 150: - if (column.index === 0 || column.index === 5 || column.index === 3 || column.index === 10 || column.index === 50) { - column.width = '500px'; - } - break; - } - } - - public isHorizonatScrollbarVisible() { - const scrollbar = this.grid.headerContainer.getScroll(); - return scrollbar.offsetWidth < (scrollbar.children[0] as HTMLElement).offsetWidth; - } -} - -@Component({ - template: GridTemplateStrings.declareGrid(` [autoGenerate]="autoGenerate"`, - EventSubscriptions.columnInit, ColumnDefinitions.generatedWithDataType) -}) -export class NxMWithSummaryComponent extends GridNxMComponent { - public override columnsType = 'number'; - public columnInit(column) { - column.hasSummary = true; - } -} - -@Component({ - template: GridTemplateStrings.declareGrid(` [autoGenerate]="autoGenerate"`, - EventSubscriptions.columnInit, ColumnDefinitions.generatedEditable) -}) -export class NxMWithSummaryEditableComponent extends NxMWithSummaryComponent { - public override hasEditableColumns = true; - public override startFromOne = true; -} - -@Component({ - template: GridTemplateStrings.declareGrid(` [autoGenerate]="autoGenerate"`, - EventSubscriptions.columnInit, '') -}) -export class NxMColumnWidthAndSummaryComponent extends NxMWithSummaryComponent { - public override columnInit(column) { - switch (this.grid.columnList.length) { - case 5: - if (column.index === 0 || column.index === 4) { - column.width = '200px'; - } - break; - case 30: - if (column.index === 0 || column.index === 5 || column.index === 3 || column.index === 10 || column.index === 25) { - column.width = '200px'; - } - break; - case 150: - if (column.index === 0 || column.index === 5 || column.index === 3 || column.index === 10 || column.index === 50) { - column.width = '500px'; - } - break; - } - } -} - -@Component({ - template: GridTemplateStrings.declareGrid('', - EventSubscriptions.columnInit, - ColumnDefinitions.generatedEditable) -}) -export class Grid5x5WithSummariesComponent extends NxMWithSummaryEditableComponent { - public override colsCount = 5; - public override rowsCount = 5; -} -// export class Summaries5x5Component extends BasicGridComponent { -// public columns = []; - -// constructor() { -// super(); -// this.columns = SampleTestData.generateEditableColumns(5, 'number'); -// this.data = SampleTestData.generateDataForColumns(this.columns, 5, true); -// } - -// init(column) { -// column.hasSummary = true; -// } -// } - -@Component({ - template: GridTemplateStrings.declareGrid('', - EventSubscriptions.columnInit, - ColumnDefinitions.generatedWithDataType) -}) -export class Grid10x30WithSummariesComponent extends NxMWithSummaryComponent { - public override colsCount = 10; - public override rowsCount = 30; -} -// export class Summaries10x30Component extends SummariesNxMComponent { -// constructor() { -// super(30, 10, 'number'); -// } -// } - -@Component({ - template: GridTemplateStrings.declareGrid(` [width]="'1500px'"`, - EventSubscriptions.columnInit, - ColumnDefinitions.generatedWithDataType) -}) -export class Grid30x1000WithSummariesComponent extends NxMWithSummaryComponent { - public override colsCount = 30; - public override rowsCount = 1000; -} -// export class Summaries30x1000Component extends SummariesNxMComponent { -// constructor() { -// super(1000, 30, 'number'); -// } -// } - -@Component({ - template: GridTemplateStrings.declareGrid(` [width]="'1500px'"`, - EventSubscriptions.columnInit, - ColumnDefinitions.generatedWithDataType) -}) -export class Grid150x200WithSummariesComponent extends NxMWithSummaryComponent { - public override colsCount = 150; - public override rowsCount = 200; -} -// export class Summaries150x200Component extends SummariesNxMComponent { -// constructor() { -// super(200, 150, 'number'); -// } -// } - -@Component({ - template: ` -
    - - -
    ` -}) -export class WidthAndHeightComponent extends BasicGridComponent { - public width: string; - public height: string; - - public override data = SampleTestData.generateData(30, 3); -} - -@Component({ - template: ` -
    - - -
    ` -}) -export class NullHeightComponent extends BasicGridComponent { - public override data = SampleTestData.generateData(20, 5); -} - -@Component({ - template: ` - - - ` -}) -export class DefaultCRUDGridComponent extends BasicGridComponent { - public rowsAdded = 0; - public rowsDeleted = 0; - - public rowAdded() { - this.rowsAdded++; - } - - public rowDeleted() { - this.rowsDeleted++; - } - - public editDone(event: IGridEditEventArgs) { - if (event.newValue === 'change') { - event.newValue = event.cellID ? 200 : { index: 200, value: 200 }; - } - } -} - -@Component({ - template: GridTemplateStrings.declareGrid(` [paging]="paging" [perPage]="perPage"`, - '', ColumnDefinitions.idNameJobTitleEditable) + ` - - - - ` -}) -export class PagingAndEditingComponent extends PagingComponent { - public override perPage = 4; - - public GoToPage(val) { - switch (val) { - case -2: - this.grid.previousPage(); - break; - case -1: - this.grid.nextPage(); - break; - default: - this.grid.paginate(val); - break; - } - } -} - -@Component({ - template: GridTemplateStrings.declareGrid('', '', - ColumnDefinitions.idNameHiddenJobHirePinned) -}) -export class GridSearchHiddenColumnsComponent extends BasicGridSearchComponent { - public override data = SampleTestData.personJobData(); -} - -@Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.idFirstLastNameSortable) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.idFirstLastNameSortable), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridDeclaredColumnsComponent extends BasicGridComponent { @ViewChild('nameColumn', { static: true }) public nameColumn; @@ -586,7 +224,9 @@ export class GridDeclaredColumnsComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid(` [autoGenerate]="autoGenerate" [height]="height" [width]="width"`, - `${EventSubscriptions.columnInit}${EventSubscriptions.selected}`, '') + `${EventSubscriptions.columnInit}${EventSubscriptions.selected}`, ''), + standalone: true, + imports: [IgxGridComponent] }) export class PinOnInitAndSelectionComponent extends GridWithSizeComponent { public override data = SampleTestData.contactInfoDataFull(); @@ -615,11 +255,13 @@ export class PinOnInitAndSelectionComponent extends GridWithSizeComponent { [autoGenerate]="false"> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, NgFor] }) export class GridPinningMRLComponent extends PinOnInitAndSelectionComponent { public colGroups = [ @@ -650,7 +292,9 @@ export class GridPinningMRLComponent extends PinOnInitAndSelectionComponent { @Component({ template: GridTemplateStrings.declareGrid(` [height]="height" [width]="width"`, `${EventSubscriptions.selected}${EventSubscriptions.columnPin}`, - ColumnDefinitions.generatedWithWidth) + ColumnDefinitions.generatedWithWidth), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class PinningComponent extends GridWithSizeComponent implements IGridSelection { @@ -684,7 +328,9 @@ export class PinningComponent extends GridWithSizeComponent } @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.productFilterSortPin) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.productFilterSortPin), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridFeaturesComponent extends BasicGridComponent { public override data = SampleTestData.productInfoData(); @@ -694,7 +340,9 @@ export class GridFeaturesComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid( ` columnWidth="200" `, - '', ColumnDefinitions.idNameJobHireDate, '', '') + '', ColumnDefinitions.idNameJobHireDate, '', ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class ScrollableGridSearchComponent extends BasicGridSearchComponent { public override data = SampleTestData.generateFromData(SampleTestData.personJobDataFull(), 30); @@ -704,7 +352,9 @@ export class ScrollableGridSearchComponent extends BasicGridSearchComponent { @Component({ template: GridTemplateStrings.declareGrid( ` columnWidth="200" [height]="null" `, - '', ColumnDefinitions.idNameJobTitleCompany, '', '') + '', ColumnDefinitions.idNameJobTitleCompany, '', ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class GroupableGridSearchComponent extends ScrollableGridSearchComponent { public override data = SampleTestData.personIDNameJobCompany(); @@ -714,7 +364,9 @@ export class GroupableGridSearchComponent extends ScrollableGridSearchComponent @Component({ template: GridTemplateStrings.declareGrid( ` [height]="height" [width]="width" [columnWidth]="columnWidth" `, - '', ColumnDefinitions.productAllColumnFeatures) + '', ColumnDefinitions.productAllColumnFeatures), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridAllFeaturesComponent extends GridWithSizeComponent { @Input() @@ -723,21 +375,27 @@ export class GridAllFeaturesComponent extends GridWithSizeComponent { } @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.nameJobTitleId) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.nameJobTitleId), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ReorderedColumnsComponent extends BasicGridComponent { public override data = SampleTestData.personJobData(); } @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.simpleDatePercentColumns) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.simpleDatePercentColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridUserMeetingDataComponent extends BasicGridComponent { public override data = SampleTestData.personMeetingData(); } @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.idNameJobTitleEditable) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.idNameJobTitleEditable), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridIDNameJobTitleComponent extends PagingComponent { public override data = SampleTestData.personJobDataFull(); @@ -746,14 +404,18 @@ export class GridIDNameJobTitleComponent extends PagingComponent { } @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.idNameJobHoursHireDatePerformance) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.idNameJobHoursHireDatePerformance), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridIDNameJobTitleHireDataPerformanceComponent extends BasicGridComponent { public override data = SampleTestData.personJobHoursDataPerformance(); } @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.hireDate) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.hireDate), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridHireDateComponent extends BasicGridComponent { public override data = SampleTestData.hireDate(); @@ -762,9 +424,11 @@ export class GridHireDateComponent extends BasicGridComponent { @Component({ template: `
    ${GridTemplateStrings.declareGrid( - '[height]="height" [moving]="true" [width]="width" [moving]="true" [rowSelection]="rowSelection" [autoGenerate]="autoGenerate"', + '[height]="height" [moving]="true" [width]="width" [rowSelection]="rowSelection" [autoGenerate]="autoGenerate"', EventSubscriptions.columnMovingStart + EventSubscriptions.columnMoving + EventSubscriptions.columnMovingEnd, - ColumnDefinitions.movableColumns)}
    ` + ColumnDefinitions.movableColumns)}`, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class MovableColumnsComponent extends BasicGridComponent { public override data = SampleTestData.personIDNameRegionData(); @@ -811,7 +475,9 @@ export class MovableColumnsComponent extends BasicGridComponent { } @Component({ - template: GridTemplateStrings.declareGrid(`[moving]="true" height="300px" width="500px"`, '', ColumnDefinitions.movableColumns) + template: GridTemplateStrings.declareGrid(`[moving]="true" height="300px" width="500px"`, '', ColumnDefinitions.movableColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class MovableTemplatedColumnsComponent extends BasicGridComponent { public override data = SampleTestData.personIDNameRegionData(); @@ -821,8 +487,10 @@ export class MovableTemplatedColumnsComponent extends BasicGridComponent { } @Component({ - template: GridTemplateStrings.declareGrid(`height="300px" width="500px" [moving]="true" [autoGenerate]="autoGenerate" [paging]="paging"`, - EventSubscriptions.columnInit, '') + template: GridTemplateStrings.declareGrid(`height="300px" width="500px" [moving]="true" [autoGenerate]="autoGenerate"`, + EventSubscriptions.columnInit, ''), + standalone: true, + imports: [IgxGridComponent] }) export class MovableColumnsLargeComponent extends GridAutoGenerateComponent { @@ -830,7 +498,6 @@ export class MovableColumnsLargeComponent extends GridAutoGenerateComponent { public width = '500px'; public height = '400px'; - public paging = false; public columnInit(column: IgxColumnComponent) { column.sortable = true; @@ -844,7 +511,9 @@ export class MovableColumnsLargeComponent extends GridAutoGenerateComponent { } @Component({ - template: GridTemplateStrings.declareGrid(`height="800px"`, '', ColumnDefinitions.multiColHeadersColumns) + template: GridTemplateStrings.declareGrid(`height="800px"`, '', ColumnDefinitions.multiColHeadersColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent, IgxCellTemplateDirective, IgxCellHeaderTemplateDirective] }) export class MultiColumnHeadersComponent extends BasicGridComponent { public override data = SampleTestData.contactInfoDataFull(); @@ -852,8 +521,10 @@ export class MultiColumnHeadersComponent extends BasicGridComponent { } @Component({ - template: GridTemplateStrings.declareGrid(`[moving]="true" height="800px" width="500px"`, '', - ColumnDefinitions.multiColHeadersWithGroupingColumns) + template: GridTemplateStrings.declareGrid(`[moving]="true" height="800px" width="500px"`, '', + ColumnDefinitions.multiColHeadersWithGroupingColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class MultiColumnHeadersWithGroupingComponent extends BasicGridComponent { public override data = SampleTestData.contactInfoDataFull(); @@ -862,7 +533,9 @@ export class MultiColumnHeadersWithGroupingComponent extends BasicGridComponent @Component({ - template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.nameAvatar) + template: GridTemplateStrings.declareBasicGridWithColumns(ColumnDefinitions.nameAvatar), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective] }) export class GridWithAvatarComponent extends GridWithSizeComponent { public override data = SampleTestData.personAvatarData(); @@ -872,7 +545,9 @@ export class GridWithAvatarComponent extends GridWithSizeComponent { @Component({ template: GridTemplateStrings.declareGrid(`height="1000px" width="900px" primaryKey="ID"`, '', - ColumnDefinitions.summariesGroupByColumns, '', '') + ColumnDefinitions.summariesGroupByColumns, '', ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class SummariesGroupByComponent extends BasicGridComponent { public override data = SampleTestData.employeeGroupByData(); @@ -884,7 +559,9 @@ export class SummariesGroupByComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid(`height="600px" width="900px" [batchEditing]="true" primaryKey="ID"`, '', - ColumnDefinitions.summariesGroupByTansColumns) + ColumnDefinitions.summariesGroupByTansColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class SummariesGroupByTransactionsComponent extends BasicGridComponent { public override data = SampleTestData.employeeGroupByData(); @@ -893,17 +570,6 @@ export class SummariesGroupByTransactionsComponent extends BasicGridComponent { public ageSummaryMinMax = DealsSummaryMinMax; } -@Component({ - template: GridTemplateStrings.declareGrid('height="800px" width="400px" primaryKey="ID"', '', - ColumnDefinitions.summariesGroupByColumns) -}) -export class SummariesGroupByWithScrollsComponent extends BasicGridComponent { - public override data = SampleTestData.employeeGroupByData(); - public calculationMode = 'rootAndChildLevels'; - public ageSummary = AgeSummary; - public ageSummaryTest = AgeSummaryTest; -} - class AgeSummary extends IgxNumberSummaryOperand { constructor() { super(); @@ -943,7 +609,9 @@ class AgeSummaryTest extends IgxNumberSummaryOperand { @Component({ template: GridTemplateStrings.declareGrid(`[height]="gridHeight" [columnWidth]="defaultWidth" [width]="gridWidth"`, - `${EventSubscriptions.selected}`, ColumnDefinitions.generatedWithWidth) + `${EventSubscriptions.selected}`, ColumnDefinitions.generatedWithWidth), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class VirtualGridComponent extends BasicGridComponent { public gridWidth = '800px'; @@ -992,10 +660,13 @@ export class VirtualGridComponent extends BasicGridComponent { this.grid.headerContainer.getScroll().scrollLeft = newLeft; } } + @Component({ template: GridTemplateStrings.declareGrid( ` [primaryKey]="'ID'"`, - '', ColumnDefinitions.idNameJobHireWithTypes) + '', ColumnDefinitions.idNameJobHireWithTypes), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridWithPrimaryKeyComponent extends BasicGridSearchComponent { public override data = SampleTestData.personJobDataFull(); @@ -1004,6 +675,8 @@ export class GridWithPrimaryKeyComponent extends BasicGridSearchComponent { @Component({ template: GridTemplateStrings.declareGrid(`height="300px" width="600px" primaryKey="ID"`, '', ColumnDefinitions.selectionWithScrollsColumns, '', ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class SelectionWithScrollsComponent extends BasicGridComponent { public override data = SampleTestData.employeeGroupByData(); @@ -1013,6 +686,8 @@ export class SelectionWithScrollsComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid(`height="300px" width="600px" primaryKey="ID" cellSelection="none"`, '', ColumnDefinitions.selectionWithScrollsColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class CellSelectionNoneComponent extends BasicGridComponent { public override data = SampleTestData.employeeGroupByData(); @@ -1021,13 +696,17 @@ export class CellSelectionNoneComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid(`height="300px" width="600px" primaryKey="ID" cellSelection="single"`, '', ColumnDefinitions.selectionWithScrollsColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class CellSelectionSingleComponent extends BasicGridComponent { public override data = SampleTestData.employeeGroupByData(); } @Component({ template: GridTemplateStrings.declareGrid(`height="300px" width="600px" [batchEditing]="true" primaryKey="ID"`, '', - ColumnDefinitions.selectionWithScrollsColumns) + ColumnDefinitions.selectionWithScrollsColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class SelectionWithTransactionsComponent extends BasicGridComponent { public override data = SampleTestData.employeeGroupByData(); @@ -1063,7 +742,9 @@ export class CustomFilter extends IgxFilteringOperand { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridFilteringComponent extends BasicGridComponent { public customFilter = CustomFilter.instance(); @@ -1096,7 +777,9 @@ export class IgxGridFilteringComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridDatesFilteringComponent extends BasicGridComponent { public customFilter = CustomFilter.instance(); @@ -1132,7 +815,9 @@ export class IgxGridDatesFilteringComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGridExcelStyleFilteringComponent] }) export class IgxGridExternalESFComponent extends BasicGridComponent implements AfterViewInit { @ViewChild('esf', { read: IgxGridExcelStyleFilteringComponent, static: true }) @@ -1184,7 +869,9 @@ export class CustomFilterStrategy extends FilteringStrategy { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class CustomFilteringStrategyComponent extends BasicGridComponent { public strategy = new CustomFilterStrategy(); @@ -1210,7 +897,9 @@ export class LoadOnDemandFilterStrategy extends FilteringStrategy { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridFilteringESFLoadOnDemandComponent extends BasicGridComponent { public override data = SampleTestData.excelFilteringData(); @@ -1233,25 +922,27 @@ export class IgxGridFilteringESFLoadOnDemandComponent extends BasicGridComponent @Component({ template: ` + [filterable]="false" [resizable]="resizable" [sortable]="true"> + [sortable]="true"> + [sortable]="true"> + [sortable]="true"> + [filterable]="filterable" [resizable]="resizable" dataType="date" [sortable]="true"> + dataType="string" [filters]="customFilter" [sortable]="true"> Column Operations Template Filter Operations Template - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGridExcelStyleFilteringComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective] }) export class IgxGridFilteringESFEmptyTemplatesComponent extends BasicGridComponent { public customFilter = CustomFilter.instance(); @@ -1263,18 +954,18 @@ export class IgxGridFilteringESFEmptyTemplatesComponent extends BasicGridCompone @Component({ template: ` + [filterable]="false" [resizable]="resizable" [sortable]="true"> + [sortable]="true"> + [sortable]="true"> + [sortable]="true"> + [filterable]="filterable" [resizable]="resizable" dataType="date" [sortable]="true"> + dataType="string" [filters]="customFilter" [sortable]="true"> @@ -1294,7 +985,20 @@ export class IgxGridFilteringESFEmptyTemplatesComponent extends BasicGridCompone search - ` + `, + standalone: true, + imports: [ + IgxGridComponent, + IgxColumnComponent, + IgxGridExcelStyleFilteringComponent, + IgxExcelStyleColumnOperationsTemplateDirective, + IgxExcelStyleFilterOperationsTemplateDirective, + IgxIconComponent, + IgxExcelStyleMovingComponent, + IgxExcelStylePinningComponent, + IgxExcelStyleSearchComponent, + IgxExcelStyleHeaderIconDirective + ] }) export class IgxGridFilteringESFTemplatesComponent extends BasicGridComponent { public customFilter = CustomFilter.instance(); @@ -1327,7 +1031,16 @@ export class IgxGridFilteringESFTemplatesComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [ + IgxGridComponent, + IgxColumnComponent, + IgxGridExcelStyleFilteringComponent, + IgxExcelStyleColumnOperationsTemplateDirective, + IgxExcelStyleFilterOperationsTemplateDirective, + IgxExcelStyleSelectingComponent + ] }) export class IgxGridExternalESFTemplateComponent extends BasicGridComponent implements OnInit { @ViewChild('esf', { read: IgxGridExcelStyleFilteringComponent, static: true }) @@ -1378,7 +1091,9 @@ export class IgxGridExternalESFTemplateComponent extends BasicGridComponent impl - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxInputGroupComponent, IgxPrefixDirective, IgxSuffixDirective, IgxInputDirective, IgxFilterCellTemplateDirective, IgxIconComponent] }) export class IgxGridFilteringTemplateComponent extends BasicGridComponent { public resizable = false; @@ -1399,78 +1114,34 @@ export class IgxGridFilteringTemplateComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridFilteringScrollComponent extends IgxGridFilteringComponent { } @Component({ template: ` - - - - - - - - + + + + + + + + + - - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class IgxGridFilteringMCHComponent extends IgxGridFilteringComponent { } -@Component({ - template: - ` - - - - - - - - - - - - ` -}) -export class IgxTestExcelFilteringDatePickerComponent extends IgxGridFilteringComponent implements AfterViewInit { - public exprUI: ExpressionUI; - public exprList: Array; - - constructor(private cd: ChangeDetectorRef) { - super(); - - this.exprUI = new ExpressionUI(); - this.exprUI.expression = { - fieldName: 'ReleaseDate', - condition: { - name: 'equals', - isUnary: false, - iconName: 'equals', - logic: () => true - }, - }; - - this.exprList = [this.exprUI]; - } - - public ngAfterViewInit() { - this.cd.detectChanges(); - } -} - @Component({ template: ` @@ -1481,7 +1152,9 @@ export class IgxTestExcelFilteringDatePickerComponent extends IgxGridFilteringCo - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGridToolbarComponent] }) export class IgxGridAdvancedFilteringComponent extends BasicGridComponent { public customFilter = CustomFilter.instance(); @@ -1507,7 +1180,9 @@ export class IgxGridAdvancedFilteringComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxAdvancedFilteringDialogComponent] }) export class IgxGridExternalAdvancedFilteringComponent extends BasicGridComponent { public customFilter = CustomFilter.instance(); @@ -1528,7 +1203,9 @@ export class IgxGridExternalAdvancedFilteringComponent extends BasicGridComponen - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class IgxGridAdvancedFilteringColumnGroupComponent extends BasicGridComponent { public customFilter = CustomFilter.instance(); @@ -1552,7 +1229,9 @@ export class IgxGridAdvancedFilteringColumnGroupComponent extends BasicGridCompo - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class IgxGridClipboardComponent extends BasicGridComponent { public override data = SampleTestData.excelFilteringData(); @@ -1563,7 +1242,9 @@ export class IgxGridClipboardComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid(`id="testGridSum" [height]="height" [width]="width"`, ``, - ColumnDefinitions.generatedWithDataType) + ColumnDefinitions.generatedWithDataType), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class DynamicColumnsComponent extends GridWithSizeComponent { public columns = [ @@ -1608,7 +1289,9 @@ export class DynamicColumnsComponent extends GridWithSizeComponent { CUSTOM GROUP SELECTOR - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCheckboxComponent, IgxPaginatorComponent, IgxRowSelectorDirective, IgxHeadSelectorDirective, IgxGroupByRowSelectorDirective] }) export class GridCustomSelectorsComponent extends BasicGridComponent implements OnInit { @ViewChild('gridCustomSelectors', { static: true }) @@ -1666,7 +1349,9 @@ export class GridCustomSelectorsComponent extends BasicGridComponent implements - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarHidingComponent, IgxPaginatorComponent, NgIf] }) export class IgxGridRowEditingComponent extends BasicGridComponent { public showToolbar = false; @@ -1686,7 +1371,9 @@ export class IgxGridRowEditingComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective] }) export class IgxGridRowEditingWithoutEditableColumnsComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); @@ -1721,7 +1408,9 @@ export class IgxGridRowEditingWithoutEditableColumnsComponent extends BasicGridC - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent, NgIf] }) export class IgxGridWithEditingAndFeaturesComponent extends BasicGridComponent { /* Data fields: Downloads:number, ID: number, ProductName: string, ReleaseDate: Date, @@ -1751,7 +1440,9 @@ export class IgxGridWithEditingAndFeaturesComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxRowEditTabStopDirective, IgxRowEditTemplateDirective, IgxButtonDirective] }) export class IgxGridCustomOverlayComponent extends BasicGridComponent { @ViewChildren(IgxRowEditTabStopDirective) public buttons: QueryList; @@ -1790,7 +1481,9 @@ export class IgxGridCustomOverlayComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxRowEditTemplateDirective] }) export class IgxGridEmptyRowEditTemplateComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); @@ -1814,7 +1507,9 @@ export class IgxGridEmptyRowEditTemplateComponent extends BasicGridComponent { CUSTOM EDIT TEXT - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxRowEditActionsDirective, IgxRowAddTextDirective, IgxRowEditTextDirective] }) export class IgxGridCustomRowEditTemplateComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); @@ -1836,8 +1531,10 @@ export class IgxGridCustomRowEditTemplateComponent extends BasicGridComponent { - - ` + + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class IgxGridRowEditingTransactionComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); @@ -1854,7 +1551,9 @@ export class IgxGridRowEditingTransactionComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridCurrencyColumnComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); @@ -1869,7 +1568,9 @@ export class IgxGridCurrencyColumnComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridPercentColumnComponent extends BasicGridComponent { public override data = SampleTestData.foodPercentProductData(); @@ -1885,7 +1586,9 @@ export class IgxGridPercentColumnComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridDateTimeColumnComponent extends BasicGridComponent { public override data = SampleTestData.foodProductDateTimeData(); @@ -1906,7 +1609,9 @@ export class IgxGridDateTimeColumnComponent extends BasicGridComponent { Custom template - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class IgxGridRowEditingWithFeaturesComponent extends DataParent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1951,7 +1656,9 @@ export class IgxGridRowEditingWithFeaturesComponent extends DataParent { Custom template - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class IgxGridGroupByComponent extends DataParent implements OnInit { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -1998,7 +1705,9 @@ export class IgxGridGroupByComponent extends DataParent implements OnInit { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class CellEditingTestComponent extends BasicGridComponent { public override data = [ @@ -2019,7 +1728,9 @@ export class CellEditingTestComponent extends BasicGridComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class CellEditingScrollTestComponent extends BasicGridComponent { public override data = [ @@ -2037,8 +1748,10 @@ export class CellEditingScrollTestComponent extends BasicGridComponent { @Component({ template: GridTemplateStrings.declareGrid( - ` [width]="width" [height]="height" [paging]="'true'" [perPage]="perPage" [primaryKey]="'ProductID'"`, - '', ColumnDefinitions.productBasic, '', '' ) + ` [width]="width" [height]="height" [primaryKey]="'ProductID'"`, + '', ColumnDefinitions.productBasic, '', '' ), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent] }) export class GridWithUndefinedDataComponent implements OnInit { @ViewChild(IgxGridComponent, { static: true }) @@ -2049,9 +1762,9 @@ export class GridWithUndefinedDataComponent implements OnInit { public height = '600px'; public ngOnInit(): void { - setTimeout(() => { + requestAnimationFrame(() => { this.data = SampleTestData.foodProductDataExtended(); - }, 300); + }); } } @@ -2088,7 +1801,9 @@ export class GridWithUndefinedDataComponent implements OnInit { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class CollapsibleColumnGroupTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -2128,13 +1843,16 @@ export class CollapsibleColumnGroupTestComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class ColumnSelectionGroupTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) public grid: IgxGridComponent; public data = SampleTestData.contactInfoDataFull(); } + @Component({ template: ` @@ -2165,7 +1883,9 @@ export class ColumnSelectionGroupTestComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent, IgxIconComponent, IgxCollapsibleIndicatorTemplateDirective] }) export class CollapsibleGroupsTemplatesTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -2185,9 +1905,10 @@ export class CollapsibleGroupsTemplatesTestComponent { [visibleWhenCollapsed]="column.visibleWhenCollapsed"> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent, NgFor] }) - export class CollapsibleGroupsDynamicColComponent { @ViewChild(IgxGridComponent, { static: true }) public grid: IgxGridComponent; @@ -2247,7 +1968,9 @@ export class CollapsibleGroupsDynamicColComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class ColumnGroupsNavigationTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -2263,12 +1986,14 @@ export class ColumnGroupsNavigationTestComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridFilteringBindingComponent extends BasicGridComponent implements OnInit { public resizable = false; public filterable = true; - public filterTree: FilteringExpressionsTree; + public filterTree: IFilteringExpressionsTree; public override data = SampleTestData.excelFilteringData(); @@ -2286,19 +2011,20 @@ export class IgxGridFilteringBindingComponent extends BasicGridComponent impleme @Component({ template: ` - + - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class IgxGridAdvancedFilteringBindingComponent extends BasicGridComponent implements OnInit { public resizable = false; public filterable = true; - public filterTree: FilteringExpressionsTree; + public filterTree: IFilteringExpressionsTree; public override data = SampleTestData.excelFilteringData(); @@ -2325,7 +2051,9 @@ export class IgxGridAdvancedFilteringBindingComponent extends BasicGridComponent - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class ColumnEditablePropertyTestComponent extends BasicGridComponent { public override data = [ @@ -2338,7 +2066,9 @@ export class ColumnEditablePropertyTestComponent extends BasicGridComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxGridComponent] }) export class NoColumnWidthGridComponent extends BasicGridComponent { public override data = SampleTestData.generateNumberData(1000); @@ -2352,7 +2082,9 @@ export class NoColumnWidthGridComponent extends BasicGridComponent { '', '', TemplateDefinitions.sortIconTemplates) - + ExternalTemplateDefinitions.sortIconTemplates + + ExternalTemplateDefinitions.sortIconTemplates, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxIconComponent, IgxSortHeaderIconDirective, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective] }) export class SortByParityComponent extends GridDeclaredColumnsComponent implements ISortingStrategy { @ViewChild('sortIcon', {read: TemplateRef }) @@ -2387,7 +2119,9 @@ export class SortByParityComponent extends GridDeclaredColumnsComponent implemen ColumnDefinitions.idFirstLastNameSortable, '', '', - '') + ''), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class SortByAnotherColumnComponent extends GridDeclaredColumnsComponent implements ISortingStrategy { @@ -2413,7 +2147,9 @@ export class SortByAnotherColumnComponent extends GridDeclaredColumnsComponent i [colEnd]="col.colEnd" [rowEnd]="col.rowEnd" [field]='col.field' [editable]='col.editable'> - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, NgFor] }) export class MRLTestComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) @@ -2464,7 +2200,9 @@ export class MRLTestComponent { Adding Row -` +`, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent, IgxPaginatorComponent, IgxRowAddTextDirective, NgFor, NgIf] }) export class IgxAddRowComponent implements OnInit { @ViewChild('actionStrip', { read: IgxActionStripComponent, static: true }) @@ -2521,21 +2259,27 @@ export class IgxAddRowComponent implements OnInit { } @Component({ - template: GridTemplateStrings.declareGrid(` [hideGroupedColumns]="true"`, '', ColumnDefinitions.exportGroupedDataColumns) + template: GridTemplateStrings.declareGrid(` [hideGroupedColumns]="true"`, '', ColumnDefinitions.exportGroupedDataColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) export class GridExportGroupedDataComponent extends BasicGridComponent { public override data = SampleTestData.exportGroupedDataColumns(); } @Component({ - template: GridTemplateStrings.declareGrid(`[moving]="true" height="1000px"`, '', ColumnDefinitions.multiColHeadersExportColumns) + template: GridTemplateStrings.declareGrid(`[moving]="true" height="1000px"`, '', ColumnDefinitions.multiColHeadersExportColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class MultiColumnHeadersExportComponent extends BasicGridComponent { public override data = SampleTestData.contactInfoDataFull(); } @Component({ - template: GridTemplateStrings.declareGrid(`height="1000px"`, '', ColumnDefinitions.multiColHeadersExportColumns) + template: GridTemplateStrings.declareGrid(`height="1000px"`, '', ColumnDefinitions.multiColHeadersExportColumns), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class GridWithThreeLevelsOfMultiColumnHeadersAndTwoRowsExportComponent extends BasicGridComponent { public override data = SampleTestData.contactInfoDataTwoRecords(); @@ -2553,9 +2297,10 @@ export class GridWithThreeLevelsOfMultiColumnHeadersAndTwoRowsExportComponent ex - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent] }) - export class GridWithEmptyColumnsComponent { @ViewChild('grid1', { static: true }) public grid: IgxGridComponent; @@ -2564,7 +2309,9 @@ export class GridWithEmptyColumnsComponent { /** Issue 9872 */ @Component({ - template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.generatedWithDataType) + template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.generatedWithDataType), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class ColumnsAddedOnInitComponent extends BasicGridComponent implements OnInit { public columns = []; @@ -2586,7 +2333,9 @@ export class ColumnsAddedOnInitComponent extends BasicGridComponent implements O } @Component({ - template: GridTemplateStrings.declareGrid(' [hideGroupedColumns]="true"', '', ColumnDefinitions.generatedGroupableWithEnabledSummariesAndDataType) + template: GridTemplateStrings.declareGrid(' [hideGroupedColumns]="true"', '', ColumnDefinitions.generatedGroupableWithEnabledSummariesAndDataType), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class GroupedGridWithSummariesComponent extends BasicGridComponent implements OnInit { public columns = []; @@ -2605,7 +2354,9 @@ export class GroupedGridWithSummariesComponent extends BasicGridComponent implem } @Component({ - template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.generatedWithColumnBasedSummariesAndDataType) + template: GridTemplateStrings.declareGrid('', '', ColumnDefinitions.generatedWithColumnBasedSummariesAndDataType), + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgFor] }) export class GridCurrencySummariesComponent extends BasicGridComponent implements OnInit { public columns = []; @@ -2627,10 +2378,10 @@ export class GridCurrencySummariesComponent extends BasicGridComponent implement export class ObjectCloneStrategy implements IDataCloneStrategy { public clone(data: any): any { - let clonedData = {}; + const clonedData = {}; if (data) { - let clone = Object.defineProperties({}, Object.getOwnPropertyDescriptors(data)); - for (let key in clone) { + const clone = Object.defineProperties({}, Object.getOwnPropertyDescriptors(data)); + for (const key in clone) { clonedData[key] = clone[key] } @@ -2647,7 +2398,9 @@ export class ObjectCloneStrategy implements IDataCloneStrategy { - ` + `, + standalone: true, + imports: [IgxColumnComponent, IgxGridComponent] }) export class IgxGridRowEditingDefinedColumnsComponent extends BasicGridComponent { public override data = SampleTestData.foodProductData(); diff --git a/projects/igniteui-angular/src/lib/test-utils/grid-validation-samples.spec.ts b/projects/igniteui-angular/src/lib/test-utils/grid-validation-samples.spec.ts index 5d1c9e569c6..ca7419e9556 100644 --- a/projects/igniteui-angular/src/lib/test-utils/grid-validation-samples.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/grid-validation-samples.spec.ts @@ -1,50 +1,59 @@ +import { NgFor, NgIf } from '@angular/common'; import { Component, Input, ViewChild, Directive, TemplateRef } from '@angular/core'; -import { AbstractControl, NG_VALIDATORS, ValidationErrors, ValidatorFn, Validators } from '@angular/forms'; -import { IgxGridComponent, IgxTreeGridComponent } from 'igniteui-angular'; +import { AbstractControl, FormsModule, NG_VALIDATORS, ReactiveFormsModule, ValidationErrors, ValidatorFn, Validators } from '@angular/forms'; import { data } from '../../../../../src/app/shared/data'; +import { GridColumnDataType } from '../data-operations/data-util'; +import { IgxColumnComponent } from '../grids/columns/column.component'; +import { IGX_GRID_VALIDATION_DIRECTIVES } from '../grids/columns/public_api'; +import { IgxCellEditorTemplateDirective, IgxCellValidationErrorDirective } from '../grids/columns/templates.directive'; +import { IgxGridComponent } from '../grids/grid/grid.component'; +import { IgxTreeGridComponent } from '../grids/tree-grid/tree-grid.component'; import { SampleTestData } from './sample-test-data.spec'; -export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn { - return (control: AbstractControl): ValidationErrors | null => { - const forbidden = nameRe.test(control.value); - return forbidden ? { forbiddenName: { value: control.value } } : null; - }; -} - @Directive({ selector: '[igxAppForbiddenName]', - providers: [{ provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true }] + providers: [{ provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true }], + standalone: true }) export class ForbiddenValidatorDirective extends Validators { @Input('igxAppForbiddenName') public forbiddenName = ''; public validate(control: AbstractControl): ValidationErrors | null { - return this.forbiddenName ? forbiddenNameValidator(new RegExp(this.forbiddenName, 'i'))(control) + return this.forbiddenName ? this.forbiddenNameValidator(new RegExp(this.forbiddenName, 'i'))(control) : null; } + + public forbiddenNameValidator(nameRe: RegExp): ValidatorFn { + return (control: AbstractControl): ValidationErrors | null => { + const forbidden = nameRe.test(control.value); + return forbidden ? { forbiddenName: { value: control.value } } : null; + }; + } } @Component({ template: ` - + [editable]="true" [sortable]="true" [filterable]="true" [field]="c.field" + [header]="c.field" [resizable]="true" [dataType]="c.dataType" > - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, ForbiddenValidatorDirective, IGX_GRID_VALIDATION_DIRECTIVES, NgFor] }) export class IgxGridValidationTestBaseComponent { public batchEditing = false; public rowEditable = true; public columns = [ - { field: 'ProductID', dataType: 'string' }, - { field: 'ProductName', dataType: 'string' }, - { field: 'UnitPrice', dataType: 'string' }, - { field: 'UnitsInStock', dataType: 'number' } + { field: 'ProductID', dataType: GridColumnDataType.String }, + { field: 'ProductName', dataType: GridColumnDataType.String }, + { field: 'UnitPrice', dataType: GridColumnDataType.String }, + { field: 'UnitsInStock', dataType: GridColumnDataType.Number } ]; public data = [...data]; @@ -58,28 +67,19 @@ export class IgxGridValidationTestBaseComponent { + [header]="c.field" [resizable]='true' [dataType]="c.dataType"> -
    - This name is forbidden. -
    -
    +
    + This name is forbidden. +
    +
    - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellValidationErrorDirective, ForbiddenValidatorDirective, IGX_GRID_VALIDATION_DIRECTIVES, NgFor, NgIf] }) -export class IgxGridValidationTestCustomErrorComponent { - public batchEditing = false; - public rowEditable = true; - public columns = [ - { field: 'ProductID', dataType: 'string' }, - { field: 'ProductName', dataType: 'string' }, - { field: 'UnitPrice', dataType: 'string' }, - { field: 'UnitsInStock', dataType: 'number' } - ]; - public data = [...data]; - - @ViewChild('grid', { read: IgxGridComponent, static: true }) public grid: IgxGridComponent; +export class IgxGridValidationTestCustomErrorComponent extends IgxGridValidationTestBaseComponent { } @Component({ @@ -89,7 +89,7 @@ export class IgxGridValidationTestCustomErrorComponent { + [header]="c.field" [resizable]='true' [dataType]="c.dataType"> @@ -98,7 +98,9 @@ export class IgxGridValidationTestCustomErrorComponent { - ` + `, + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellEditorTemplateDirective, ForbiddenValidatorDirective, IGX_GRID_VALIDATION_DIRECTIVES, ReactiveFormsModule, FormsModule, NgFor] }) export class IgxGridCustomEditorsComponent extends IgxGridValidationTestCustomErrorComponent { @ViewChild('modelTemplate', {read: TemplateRef }) @@ -115,7 +117,7 @@ export class IgxGridCustomEditorsComponent extends IgxGridValidationTestCustomEr + [header]="c.field" [resizable]='true' [dataType]="c.dataType" >
    This name is forbidden. @@ -123,16 +125,18 @@ export class IgxGridCustomEditorsComponent extends IgxGridValidationTestCustomEr - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxCellValidationErrorDirective, ForbiddenValidatorDirective, IGX_GRID_VALIDATION_DIRECTIVES, NgFor, NgIf] }) export class IgxTreeGridValidationTestComponent { public batchEditing = false; public rowEditable = true; public columns = [ - { field: 'ID', dataType: 'string' }, - { field: 'Name', dataType: 'string' }, - { field: 'HireDate', dataType: 'string' }, - { field: 'Age', dataType: 'number' } + { field: 'ID', dataType: GridColumnDataType.String }, + { field: 'Name', dataType: GridColumnDataType.String }, + { field: 'HireDate', dataType: GridColumnDataType.Date }, + { field: 'Age', dataType: GridColumnDataType.Number } ]; public data = [...SampleTestData.employeeSmallTreeData()]; diff --git a/projects/igniteui-angular/src/lib/test-utils/hierarchical-grid-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/hierarchical-grid-components.spec.ts index 2f3db79e15c..a4b933f3a2e 100644 --- a/projects/igniteui-angular/src/lib/test-utils/hierarchical-grid-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/hierarchical-grid-components.spec.ts @@ -1,13 +1,23 @@ import { Component, ViewChild, OnInit } from '@angular/core'; +import { NgIf } from '@angular/common'; import { SampleTestData } from './sample-test-data.spec'; -import { IgxColumnComponent, IgxNumberSummaryOperand, IgxSummaryResult } from '../grids/public_api'; +import { ColumnType, IPinningConfig, IgxAdvancedFilteringDialogComponent, IgxColumnComponent, IgxNumberSummaryOperand, IgxSummaryResult } from '../grids/public_api'; import { IgxHierarchicalGridComponent } from '../grids/hierarchical-grid/hierarchical-grid.component'; import { IgxRowIslandComponent } from '../grids/hierarchical-grid/row-island.component'; -import { IPinningConfig } from '../grids/grid.common'; import { ColumnPinningPosition, RowPinningPosition } from '../grids/common/enums'; -import { IgxActionStripComponent } from '../action-strip/public_api'; +import { IgxActionStripComponent, IgxGridEditingActionsComponent, IgxGridPinningActionsComponent } from '../action-strip/public_api'; import { HIERARCHICAL_SAMPLE_DATA, HIERARCHICAL_SAMPLE_DATA_SHORT } from 'src/app/shared/sample-data'; import { IgxHierarchicalTransactionServiceFactory } from '../grids/hierarchical-grid/hierarchical-grid-base.directive'; +import { IgxGridToolbarComponent } from '../grids/toolbar/grid-toolbar.component'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxCheckboxComponent } from '../checkbox/checkbox.component'; +import { IgxPaginatorComponent } from '../paginator/paginator.component'; +import { IgxColumnGroupComponent } from '../grids/columns/column-group.component'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxHeadSelectorDirective, IgxRowSelectorDirective } from '../grids/selection/row-selectors'; +import { IgxGridToolbarDirective } from '../grids/toolbar/common'; +import { IgxCellHeaderTemplateDirective } from '../grids/columns/templates.directive'; +import { IgxPaginatorDirective } from '../paginator/paginator-interfaces'; @Component({ template: ` @@ -41,7 +51,19 @@ import { IgxHierarchicalTransactionServiceFactory } from '../grids/hierarchical- - ` + `, + standalone: true, + imports: [ + IgxHierarchicalGridComponent, + IgxColumnComponent, + IgxColumnGroupComponent, + IgxRowIslandComponent, + IgxPaginatorComponent, + IgxGridToolbarComponent, + IgxIconComponent, + IgxCellHeaderTemplateDirective, + NgIf + ] }) export class IgxHierarchicalGridTestBaseComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) @@ -62,7 +84,7 @@ export class IgxHierarchicalGridTestBaseComponent { this.data = SampleTestData.generateHGridData(40, 3); } - public pinColumn(column: IgxColumnComponent) { + public pinColumn(column: ColumnType) { if (column.pinned) { column.unpin(); } else { @@ -104,7 +126,18 @@ export class IgxHierarchicalGridTestBaseComponent { `, - providers: [IgxHierarchicalTransactionServiceFactory] + providers: [IgxHierarchicalTransactionServiceFactory], + standalone: true, + imports: [ + IgxHierarchicalGridComponent, + IgxColumnComponent, + IgxColumnGroupComponent, + IgxRowIslandComponent, + IgxPaginatorComponent, + IgxGridToolbarComponent, + IgxIconComponent, + NgIf + ] }) export class IgxHierarchicalGridWithTransactionProviderComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) @@ -152,7 +185,9 @@ export class IgxHierarchicalGridWithTransactionProviderComponent { - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent] }) export class IgxHierarchicalGridRowSelectionComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) public hgrid: IgxHierarchicalGridComponent; @@ -183,7 +218,9 @@ export class IgxHierarchicalGridRowSelectionComponent { - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent] }) export class IgxHierarchicalGridRowSelectionTestSelectRowOnClickComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) public hgrid: IgxHierarchicalGridComponent; @@ -216,6 +253,8 @@ export class IgxHierarchicalGridRowSelectionTestSelectRowOnClickComponent { `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent] }) export class IgxHierarchicalGridRowSelectionNoTransactionsComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) public hgrid: IgxHierarchicalGridComponent; @@ -231,7 +270,7 @@ export class IgxHierarchicalGridRowSelectionNoTransactionsComponent { @Component({ template: ` - @@ -264,7 +303,18 @@ export class IgxHierarchicalGridRowSelectionNoTransactionsComponent { - ` + `, + standalone: true, + imports: [ + IgxHierarchicalGridComponent, + IgxColumnComponent, + IgxRowIslandComponent, + IgxCheckboxComponent, + IgxPaginatorComponent, + IgxPaginatorDirective, + IgxRowSelectorDirective, + IgxHeadSelectorDirective + ] }) export class IgxHierarchicalGridCustomSelectorsComponent implements OnInit { @ViewChild('hGridCustomSelectors', { read: IgxHierarchicalGridComponent, static: true }) @@ -310,11 +360,13 @@ export class IgxHierarchicalGridCustomSelectorsComponent implements OnInit { - + - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxRowIslandComponent, IgxButtonDirective] }) export class IgxHierarchicalGridTestCustomToolbarComponent extends IgxHierarchicalGridTestBaseComponent { } @@ -331,10 +383,18 @@ export class IgxHierarchicalGridTestCustomToolbarComponent extends IgxHierarchic - + - ` + `, + standalone: true, + imports: [ + IgxHierarchicalGridComponent, + IgxActionStripComponent, + IgxGridPinningActionsComponent, + IgxGridEditingActionsComponent, + IgxRowIslandComponent + ] }) export class IgxHierarchicalGridActionStripComponent extends IgxHierarchicalGridTestBaseComponent { @ViewChild('actionStrip1', { read: IgxActionStripComponent, static: true }) @@ -362,7 +422,9 @@ export class IgxHierarchicalGridActionStripComponent extends IgxHierarchicalGrid - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent, IgxAdvancedFilteringDialogComponent] }) export class IgxHierGridExternalAdvancedFilteringComponent extends IgxHierarchicalGridTestBaseComponent { // @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) @@ -385,12 +447,12 @@ export class IgxHierGridExternalAdvancedFilteringComponent extends IgxHierarchic - + - + @@ -405,7 +467,9 @@ export class IgxHierGridExternalAdvancedFilteringComponent extends IgxHierarchic - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent] }) export class IgxHierarchicalGridExportComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) public hGrid: IgxHierarchicalGridComponent; @@ -459,7 +523,9 @@ export class IgxHierarchicalGridExportComponent { - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxColumnGroupComponent, IgxRowIslandComponent] }) export class IgxHierarchicalGridMultiColumnHeadersExportComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) public hGrid: IgxHierarchicalGridComponent; @@ -493,7 +559,9 @@ export class IgxHierarchicalGridMultiColumnHeadersExportComponent { - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxColumnGroupComponent, IgxRowIslandComponent] }) export class IgxHierarchicalGridMultiColumnHeaderIslandsExportComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) public hGrid: IgxHierarchicalGridComponent; @@ -502,28 +570,30 @@ export class IgxHierarchicalGridMultiColumnHeaderIslandsExportComponent { @Component({ template: ` - - - - - + + + + - - - - + + + + - - - - + + + + - ` + `, + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent] }) export class IgxHierarchicalGridSummariesExportComponent { @ViewChild('hierarchicalGrid', { read: IgxHierarchicalGridComponent, static: true }) public hGrid: IgxHierarchicalGridComponent; diff --git a/projects/igniteui-angular/src/lib/test-utils/list-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/list-components.spec.ts index 1c816139ac2..c58e5b7a4eb 100644 --- a/projects/igniteui-angular/src/lib/test-utils/list-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/list-components.spec.ts @@ -1,6 +1,7 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxListComponent } from '../list/public_api'; +import { IgxDataLoadingTemplateDirective, IgxEmptyListTemplateDirective, IgxListActionDirective, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListThumbnailDirective } from '../list/public_api'; import { IgxForOfDirective } from '../directives/for-of/for_of.directive'; +import { IgxIconComponent } from '../icon/icon.component'; @Component({ template: ` @@ -15,7 +16,18 @@ import { IgxForOfDirective } from '../directives/for-of/for_of.directive';
    - ` + `, + standalone: true, + imports: [ + IgxListComponent, + IgxListItemComponent, + IgxIconComponent, + IgxListThumbnailDirective, + IgxListLineDirective, + IgxListLineTitleDirective, + IgxListLineSubTitleDirective, + IgxListActionDirective + ] }) export class ListDirectivesComponent { @@ -23,13 +35,15 @@ export class ListDirectivesComponent { @Component({ template: ` -
    - - Item 1 - Item 2 - Item 3 - -
    ` +
    + + Item 1 + Item 2 + Item 3 + +
    `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent] }) export class BasicListComponent { @ViewChild(IgxListComponent, { static: true }) public list: IgxListComponent; @@ -38,27 +52,32 @@ export class BasicListComponent { @Component({ template: ` -
    - - Header - Item 1 - Item 2 - Item 3 - -
    ` +
    + + Header + Item 1 + Item 2 + Item 3 + +
    `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent] }) export class ListWithHeaderComponent extends BasicListComponent { } @Component({ template: ` -
    - - Item 1 - Item 2 - Item 3 - -
    ` +
    + + Item 1 + Item 2 + Item 3 + +
    `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent] + }) export class ListWithPanningComponent extends BasicListComponent { public allowRightPanning = true; @@ -67,33 +86,39 @@ export class ListWithPanningComponent extends BasicListComponent { @Component({ template: ` -
    - - -
    ` +
    + + +
    `, + standalone: true, + imports: [IgxListComponent] }) export class EmptyListComponent extends BasicListComponent { } @Component({ template: ` -
    - - -

    Custom no items message.

    -
    -
    -
    ` +
    + + +

    Custom no items message.

    +
    +
    +
    `, + standalone: true, + imports: [IgxListComponent, IgxEmptyListTemplateDirective] }) export class CustomEmptyListComponent extends BasicListComponent { } @Component({ template: ` -
    - - -
    ` +
    + + +
    `, + standalone: true, + imports: [IgxListComponent] }) export class ListLoadingComponent extends BasicListComponent { public isLoading = true; @@ -101,84 +126,94 @@ export class ListLoadingComponent extends BasicListComponent { @Component({ template: ` -
    - - -

    Loading data...

    -
    -
    -
    ` +
    + + +

    Loading data...

    +
    +
    +
    `, + standalone: true, + imports: [IgxListComponent, IgxDataLoadingTemplateDirective] }) export class ListCustomLoadingComponent extends ListLoadingComponent { } @Component({ template: ` -
    - - Header 1 - Item 1 - Header 2 - Item 2 - Item 3 - -
    ` +
    + + Header 1 + Item 1 + Header 2 + Item 2 + Item 3 + +
    `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent] }) export class TwoHeadersListComponent extends ListWithPanningComponent { } @Component({ template: ` -
    - - Header 1 - Item 1 - Header 2 - Item 2 - Item 3 - -
    ` +
    + + Header 1 + Item 1 + Header 2 + Item 2 + Item 3 + +
    `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent] }) export class TwoHeadersListNoPanningComponent extends ListWithHeaderComponent { } @Component({ template: ` -
    - - -
    Left
    -
    - -
    Right
    -
    - Header - Item 1 - Item 2 - Item 3 -
    -
    ` +
    + + +
    Left
    +
    + +
    Right
    +
    + Header + Item 1 + Item 2 + Item 3 +
    +
    `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective] }) export class ListWithPanningTemplatesComponent extends ListWithPanningComponent { } @Component({ template: ` - -
    - -
    - {{ item.key }}  - {{ item.name }} -
    -
    -
    -
    `, + +
    + +
    + {{ item.key }}  + {{ item.name }} +
    +
    +
    +
    `, styles: [`.item-container { display: flex; - }`] + }`], + standalone: true, + imports: [IgxListComponent, IgxListItemComponent, IgxForOfDirective] }) export class ListWithIgxForAndScrollingComponent { @ViewChild('forOfList', {read: IgxListComponent, static: true }) diff --git a/projects/igniteui-angular/src/lib/test-utils/pivot-grid-samples.spec.ts b/projects/igniteui-angular/src/lib/test-utils/pivot-grid-samples.spec.ts index 3574450d168..89ead5aa54d 100644 --- a/projects/igniteui-angular/src/lib/test-utils/pivot-grid-samples.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/pivot-grid-samples.spec.ts @@ -9,7 +9,7 @@ import { IgxGridStateDirective } from '../grids/state.directive'; template: `
    + [rowSelection]="'single'" [columnSelection]="'single'" [defaultExpandState]="defaultExpand"> {{value.member}} - ` + `, + standalone: true, + imports: [IgxPivotGridComponent, IgxPivotDataSelectorComponent] }) export class IgxPivotGridTestBaseComponent { public defaultExpand = true; @@ -128,7 +130,9 @@ export class IgxPivotGridTestBaseComponent { - ` + `, + standalone: true, + imports: [IgxPivotGridComponent] }) export class IgxPivotGridTestComplexHierarchyComponent extends IgxPivotGridTestBaseComponent { @ViewChild('grid', { read: IgxPivotGridComponent, static: true }) public override pivotGrid: IgxPivotGridComponent; @@ -222,7 +226,9 @@ export class IgxPivotGridTestComplexHierarchyComponent extends IgxPivotGridTestB template: ` - ` + `, + standalone: true, + imports: [IgxPivotGridComponent, IgxGridStateDirective] }) export class IgxPivotGridPersistanceComponent { @ViewChild(IgxGridStateDirective, { static: true }) public state: IgxGridStateDirective; @@ -290,7 +296,9 @@ export class IgxPivotGridPersistanceComponent { @Component({ template: ` - ` + `, + standalone: true, + imports: [IgxPivotGridComponent] }) export class IgxPivotGridMultipleRowComponent extends IgxPivotGridTestBaseComponent { @ViewChild('grid', { read: IgxPivotGridComponent, static: true }) public override pivotGrid: IgxPivotGridComponent; diff --git a/projects/igniteui-angular/src/lib/test-utils/routing-test-guard.spec.ts b/projects/igniteui-angular/src/lib/test-utils/routing-test-guard.spec.ts index ed441b269c2..f960b3a2d4e 100644 --- a/projects/igniteui-angular/src/lib/test-utils/routing-test-guard.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/routing-test-guard.spec.ts @@ -1,11 +1,11 @@ import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router'; +import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; @Injectable() -export class RoutingTestGuard implements CanActivate { +export class RoutingTestGuard { public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { - if (state.url === '/view5') { - return false; + if (state.url === '/view5') { + return false; } else { return true; } diff --git a/projects/igniteui-angular/src/lib/test-utils/routing-view-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/routing-view-components.spec.ts index 1e8b982373a..d18625c9e7d 100644 --- a/projects/igniteui-angular/src/lib/test-utils/routing-view-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/routing-view-components.spec.ts @@ -1,43 +1,37 @@ -import { Component, NgModule } from '@angular/core'; +import { Component } from '@angular/core'; @Component({ - template: `This is a content from view component # 1` + template: `This is a content from view component # 1`, + standalone: true }) export class RoutingView1Component { } @Component({ - template: `This is a content from view component # 2` + template: `This is a content from view component # 2`, + standalone: true }) export class RoutingView2Component { } @Component({ - template: `This is a content from view component # 3` + template: `This is a content from view component # 3`, + standalone: true }) export class RoutingView3Component { } @Component({ - template: `This is a content from view component # 4` + template: `This is a content from view component # 4`, + standalone: true }) export class RoutingView4Component { } @Component({ - template: `This is a content from view component # 5` + template: `This is a content from view component # 5`, + standalone: true }) export class RoutingView5Component { } -/** - * @hidden - */ -@NgModule({ - declarations: [RoutingView1Component, RoutingView2Component, RoutingView3Component, - RoutingView4Component, RoutingView5Component], - exports: [RoutingView1Component, RoutingView2Component, RoutingView3Component, - RoutingView4Component, RoutingView5Component] -}) -export class RoutingViewComponentsModule { -} diff --git a/projects/igniteui-angular/src/lib/test-utils/tabs-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/tabs-components.spec.ts index 1d0345b7dba..a18b36e7c5a 100644 --- a/projects/igniteui-angular/src/lib/test-utils/tabs-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/tabs-components.spec.ts @@ -1,38 +1,48 @@ +import { NgFor } from '@angular/common'; import { Component, QueryList, ViewChild, ViewChildren } from '@angular/core'; -import { IgxTabItemComponent, IgxTabsComponent } from '../tabs/tabs/public_api'; +import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; +import { IgxButtonDirective } from '../directives/button/button.directive'; +import { IgxToggleActionDirective } from '../directives/toggle/toggle.directive'; +import { IgxDropDownComponent } from '../drop-down/drop-down.component'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxPrefixDirective, IgxSuffixDirective } from '../input-group/public_api'; +import { IgxTabContentComponent, IgxTabHeaderComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabsComponent } from '../tabs/tabs/public_api'; import { SampleTestData } from './sample-test-data.spec'; @Component({ template: ` - - - - Tab 1 - - - Content 1 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius sapien ligula. - - - - - Tab 2 - - - Content 2 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius sapien ligula. - - - - - Tab 3 - - - Content 3 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius sapien ligula. - - - ` + + + + Tab 1 + + + Content 1 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius sapien ligula. + + + + + Tab 2 + + + Content 2 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius sapien ligula. + + + + + Tab 3 + + + Content 3 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius sapien ligula. + + + + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent] }) export class BasicTabsComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -41,43 +51,46 @@ export class BasicTabsComponent { @Component({ template: ` -
    - - - - library_music - Tab 1 - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - - - - video_library - Tab 2 - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - - - - library_books - Tab 3 - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Vivamus vitae malesuada odio. Praesent ante lectus, porta a eleifend vel, sodales eu nisl. - Vivamus sit amet purus eu lectus cursus rhoncus quis non ex. - Cras ac nulla sed arcu finibus volutpat. - Vivamus risus ipsum, pharetra a augue nec, euismod fringilla odio. - Integer id velit rutrum, accumsan ante a, semper nunc. - Phasellus ultrices tincidunt imperdiet. Nullam vulputate mauris diam. - Nullam elementum, libero vel varius fermentum, lorem ex bibendum nulla, - pretium lacinia erat nibh vel massa. - In hendrerit, sapien ac mollis iaculis, dolor tellus malesuada sem, - a accumsan lectus nisl facilisis leo. - Curabitur consequat sit amet nulla at consequat. Duis volutpat tristique luctus. - - - -
    ` +
    + + + + library_music + Tab 1 + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + + + video_library + Tab 2 + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + + + library_books + Tab 3 + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Vivamus vitae malesuada odio. Praesent ante lectus, porta a eleifend vel, sodales eu nisl. + Vivamus sit amet purus eu lectus cursus rhoncus quis non ex. + Cras ac nulla sed arcu finibus volutpat. + Vivamus risus ipsum, pharetra a augue nec, euismod fringilla odio. + Integer id velit rutrum, accumsan ante a, semper nunc. + Phasellus ultrices tincidunt imperdiet. Nullam vulputate mauris diam. + Nullam elementum, libero vel varius fermentum, lorem ex bibendum nulla, + pretium lacinia erat nibh vel massa. + In hendrerit, sapien ac mollis iaculis, dolor tellus malesuada sem, + a accumsan lectus nisl facilisis leo. + Curabitur consequat sit amet nulla at consequat. Duis volutpat tristique luctus. + + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxIconComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective] }) export class TabsTestComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -86,14 +99,17 @@ export class TabsTestComponent { @Component({ template: ` -
    - - - {{ tab.name }} - - - -
    ` +
    + + + {{ tab.name }} + + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective, NgFor] }) export class TabsTest2Component { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -141,7 +157,7 @@ export class TabsTest2Component { @Component({ template: ` -
    +
    @@ -151,7 +167,7 @@ export class TabsTest2Component {

    Tab 1 Content

    -
    +
    T2
    @@ -171,7 +187,10 @@ export class TabsTest2Component {
    -
    ` +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective] }) export class TemplatedTabsTestComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -180,13 +199,16 @@ export class TemplatedTabsTestComponent { @Component({ template: ` -
    - - - {{ tab.name }} - - -
    ` +
    + + + {{ tab.name }} + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective, NgFor] }) export class TabsTestSelectedTabComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -205,39 +227,45 @@ export class TabsTestSelectedTabComponent { @Component({ template: ` - - - Tab1 - Content 1 - - - Tab2 - Content 2 - - ` + + + Tab1 + Content 1 + + + Tab2 + Content 2 + + + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective] }) export class TabsTestCustomStylesComponent { } @Component({ template: ` - - -
    - - - tab2 - Tab content 1 - - - tab2 - Tab content 2 - - -
    -
    ` + + +
    + + + tab2 + Tab content 1 + + + tab2 + Tab content 2 + + +
    +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective, IgxDropDownComponent, IgxToggleActionDirective, IgxButtonDirective] }) export class TabsTestBug4420Component { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -245,23 +273,25 @@ export class TabsTestBug4420Component { @Component({ template: ` -
    - - - Tab 1 - - - Tab 2 - - - Tab 3 - - -
    - -
    +
    + + + Tab 1 + + + Tab 2 + + + Tab 3 + + +
    +
    - ` +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective, RouterLinkActive, RouterLink, RouterOutlet] }) export class TabsRoutingTestComponent { @ViewChild(IgxTabsComponent, { static: true }) @@ -270,32 +300,34 @@ export class TabsRoutingTestComponent { @Component({ template: ` -
    - - - Tab 1 - - - Tab 2 - - - Tab 3 - - - Tab 4 - - - Tab 5 - - -
    - -
    +
    + + + Tab 1 + + + Tab 2 + + + Tab 3 + + + Tab 4 + + + Tab 5 + + +
    +
    - ` +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective, RouterLink, RouterLinkActive, RouterOutlet] }) export class TabsRoutingDisabledTestComponent { @ViewChild(IgxTabsComponent, { static: true }) @@ -304,20 +336,22 @@ export class TabsRoutingDisabledTestComponent { @Component({ template: ` -
    - - - Tab 1 - - - Tab X - - -
    - -
    +
    + + + Tab 1 + + + Tab X + + +
    +
    - ` +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective, RouterLinkActive, RouterLink, RouterOutlet] }) export class TabsRoutingGuardTestComponent { @ViewChild(IgxTabsComponent, { static: true }) @@ -326,20 +360,22 @@ export class TabsRoutingGuardTestComponent { @Component({ template: ` -
    - - - Tab 1 - - - Tab 2 - - - Tab 3 - - -
    - ` +
    + + + Tab 1 + + + Tab 2 + + + Tab 3 + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective] }) export class TabsTabsOnlyModeTest1Component { @ViewChild(IgxTabsComponent, { static: true }) @@ -348,20 +384,22 @@ export class TabsTabsOnlyModeTest1Component { @Component({ template: ` -
    - - - Tab 1 - - - Tab 2 - - - Tab 3 - - -
    - ` +
    + + + Tab 1 + + + Tab 2 + + + Tab 3 + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective] }) export class TabsTabsOnlyModeTest2Component { @ViewChild(IgxTabsComponent, { static: true }) @@ -370,31 +408,33 @@ export class TabsTabsOnlyModeTest2Component { @Component({ template: ` -
    - - - Tab 1 - - - - Tab 2 - - - - Tab 3 - - - - Tab 4 - - - - Tab 5 - - - -
    - ` +
    + + + Tab 1 + + + + Tab 2 + + + + Tab 3 + + + + Tab 4 + + + + Tab 5 + + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective] }) export class TabsDisabledTestComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -402,38 +442,41 @@ export class TabsDisabledTestComponent { @Component({ template: ` -
    - - - Tab 1 -
    Content 1
    -
    - - Tab 2 -
    Content 2
    -
    - - Tab 3 -
    Content 3
    -
    -
    -
    -
    - - - Tab 4 -
    Content 4
    -
    - - Tab 5 -
    Content 5
    -
    - - Tab 6 -
    Content 6
    -
    -
    -
    ` +
    + + + Tab 1 +
    Content 1
    +
    + + Tab 2 +
    Content 2
    +
    + + Tab 3 +
    Content 3
    +
    +
    +
    +
    + + + Tab 4 +
    Content 4
    +
    + + Tab 5 +
    Content 5
    +
    + + Tab 6 +
    Content 6
    +
    +
    +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective] }) export class TabsTestHtmlAttributesComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -441,47 +484,50 @@ export class TabsTestHtmlAttributesComponent { @Component({ template: ` -
    - - - - Test: - library_music - Tab 1 - close - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - - - - Test: - video_library - Tab 2 - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - - - - library_books - Tab 3 - close - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Vivamus vitae malesuada odio. Praesent ante lectus, porta a eleifend vel, sodales eu nisl. - Vivamus sit amet purus eu lectus cursus rhoncus quis non ex. - Cras ac nulla sed arcu finibus volutpat. - Vivamus risus ipsum, pharetra a augue nec, euismod fringilla odio. - Integer id velit rutrum, accumsan ante a, semper nunc. - Phasellus ultrices tincidunt imperdiet. Nullam vulputate mauris diam. - Nullam elementum, libero vel varius fermentum, lorem ex bibendum nulla, - pretium lacinia erat nibh vel massa. - In hendrerit, sapien ac mollis iaculis, dolor tellus malesuada sem, - a accumsan lectus nisl facilisis leo. - Curabitur consequat sit amet nulla at consequat. Duis volutpat tristique luctus. - - - -
    ` +
    + + + + Test: + library_music + Tab 1 + close + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + + + Test: + video_library + Tab 2 + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + + + library_books + Tab 3 + close + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Vivamus vitae malesuada odio. Praesent ante lectus, porta a eleifend vel, sodales eu nisl. + Vivamus sit amet purus eu lectus cursus rhoncus quis non ex. + Cras ac nulla sed arcu finibus volutpat. + Vivamus risus ipsum, pharetra a augue nec, euismod fringilla odio. + Integer id velit rutrum, accumsan ante a, semper nunc. + Phasellus ultrices tincidunt imperdiet. Nullam vulputate mauris diam. + Nullam elementum, libero vel varius fermentum, lorem ex bibendum nulla, + pretium lacinia erat nibh vel massa. + In hendrerit, sapien ac mollis iaculis, dolor tellus malesuada sem, + a accumsan lectus nisl facilisis leo. + Curabitur consequat sit amet nulla at consequat. Duis volutpat tristique luctus. + + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective, IgxIconComponent, IgxTabHeaderIconDirective, IgxPrefixDirective, IgxSuffixDirective] }) export class TabsWithPrefixSuffixTestComponent extends TabsTestComponent { } @@ -489,16 +535,19 @@ export class TabsWithPrefixSuffixTestComponent extends TabsTestComponent { @Component({ template: `
    - - - - {{contact.Name}} - - - - - -
    ` + + + + {{contact.Name}} + + + + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective, NgFor] }) export class TabsContactsComponent extends TabsTestComponent { public contacts = SampleTestData.personAvatarData(); @@ -507,13 +556,16 @@ export class TabsContactsComponent extends TabsTestComponent { @Component({ template: `
    - - - {{ tab.name }} - - - -
    ` + + + {{ tab.name }} + + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective, NgFor] }) export class AddingSelectedTabComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; @@ -534,13 +586,16 @@ export class AddingSelectedTabComponent { @Component({ template: `
    - - - {{ tab.name }} - - - -
    ` + + + {{ tab.name }} + + + +
    + `, + standalone: true, + imports: [IgxTabsComponent, IgxTabItemComponent, IgxTabHeaderComponent, IgxTabContentComponent, IgxTabHeaderLabelDirective, NgFor] }) export class TabsRtlComponent { @ViewChild(IgxTabsComponent, { static: true }) public tabs: IgxTabsComponent; diff --git a/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts index 2b0d21296a9..244ec9a0e03 100644 --- a/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts @@ -1,21 +1,21 @@ import { Component, ViewChild } from '@angular/core'; -import { - IgxTooltipTargetDirective, IgxTooltipDirective, - ITooltipShowEventArgs, ITooltipHideEventArgs -} from '../directives/tooltip'; +import { IgxTooltipDirective } from '../directives/tooltip/tooltip.directive'; +import { ITooltipHideEventArgs, ITooltipShowEventArgs, IgxTooltipTargetDirective } from '../directives/tooltip/tooltip-target.directive'; @Component({ template: ` -
    dummy div for touch tests
    - -
    - Hello, I am a tooltip! -
    - ` +
    dummy div for touch tests
    + +
    + Hello, I am a tooltip! +
    + `, + standalone: true, + imports: [IgxTooltipDirective, IgxTooltipTargetDirective] }) export class IgxTooltipSingleTargetComponent { @ViewChild(IgxTooltipDirective, { static: true }) public tooltip: IgxTooltipDirective; @@ -38,18 +38,20 @@ export class IgxTooltipSingleTargetComponent { @Component({ template: ` - + - + -
    - Hello, I am a tooltip! -
    - ` +
    + Hello, I am a tooltip! +
    + `, + standalone: true, + imports: [IgxTooltipDirective, IgxTooltipTargetDirective] }) export class IgxTooltipMultipleTargetsComponent { @ViewChild('targetOne', { read: IgxTooltipTargetDirective, static: true }) public targetOne: IgxTooltipDirective; @@ -60,10 +62,12 @@ export class IgxTooltipMultipleTargetsComponent { @Component({ template: ` - - ` + + `, + standalone: true, + imports: [IgxTooltipTargetDirective] }) export class IgxTooltipPlainStringComponent { @ViewChild(IgxTooltipTargetDirective, { static: true }) public tooltipTarget: IgxTooltipTargetDirective; diff --git a/projects/igniteui-angular/src/lib/test-utils/tree-grid-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/tree-grid-components.spec.ts index 6136f3b48da..b37c0fafc92 100644 --- a/projects/igniteui-angular/src/lib/test-utils/tree-grid-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/tree-grid-components.spec.ts @@ -1,12 +1,22 @@ import { Component, ViewChild, OnInit } from '@angular/core'; +import { NgIf } from '@angular/common'; import { IgxTreeGridComponent } from '../grids/tree-grid/tree-grid.component'; import { SampleTestData } from './sample-test-data.spec'; -import { IgxSummaryOperand, IgxNumberSummaryOperand, IgxSummaryResult, IPinningConfig } from '../grids/public_api'; -import { DisplayDensity } from '../core/displayDensity'; -import { IgxActionStripComponent } from '../action-strip/action-strip.component'; -import { DefaultSortingStrategy, RowPinningPosition } from 'igniteui-angular'; +import { IgxSummaryOperand, IgxNumberSummaryOperand, IgxSummaryResult, IPinningConfig, IgxColumnComponent } from '../grids/public_api'; +import { DisplayDensity } from '../core/density'; +import { IgxActionStripComponent, IgxGridEditingActionsComponent, IgxGridPinningActionsComponent } from '../action-strip/public_api'; import { IGroupingExpression } from '../data-operations/grouping-expression.interface'; import { IgxTreeGridGroupByAreaComponent } from '../grids/grouping/tree-grid-group-by-area.component'; +import { IgxPaginatorComponent } from '../paginator/paginator.component'; +import { IgxHeadSelectorDirective, IgxRowSelectorDirective } from '../grids/selection/row-selectors'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleSearchComponent, IgxExcelStyleSortingComponent, IgxGridExcelStyleFilteringComponent } from '../grids/filtering/excel-style/public_api'; +import { IgxColumnGroupComponent } from '../grids/columns/column-group.component'; +import { GridSummaryCalculationMode, RowPinningPosition } from '../grids/common/enums'; +import { IgxCheckboxComponent } from '../checkbox/checkbox.component'; +import { IgxExcelStyleHeaderIconDirective, IgxRowCollapsedIndicatorDirective, IgxRowExpandedIndicatorDirective } from '../grids/grid/public_api'; +import { DefaultSortingStrategy } from '../data-operations/sorting-strategy'; +import { IgxTreeGridGroupingPipe } from '../grids/tree-grid/tree-grid.grouping.pipe'; @Component({ template: ` @@ -16,7 +26,9 @@ import { IgxTreeGridGroupByAreaComponent } from '../grids/grouping/tree-grid-gro - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSortingComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -25,13 +37,15 @@ export class IgxTreeGridSortingComponent { @Component({ template: ` - + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridFilteringComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -40,7 +54,7 @@ export class IgxTreeGridFilteringComponent { @Component({ template: ` - + @@ -59,7 +73,19 @@ export class IgxTreeGridFilteringComponent { - ` + `, + standalone: true, + imports: [ + IgxTreeGridComponent, + IgxColumnComponent, + IgxIconComponent, + IgxGridExcelStyleFilteringComponent, + IgxExcelStyleColumnOperationsTemplateDirective, + IgxExcelStyleSortingComponent, + IgxExcelStyleFilterOperationsTemplateDirective, + IgxExcelStyleSearchComponent, + IgxExcelStyleHeaderIconDirective + ] }) export class IgxTreeGridFilteringESFTemplatesComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -76,7 +102,9 @@ export class IgxTreeGridFilteringESFTemplatesComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class IgxTreeGridSimpleComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -95,7 +123,9 @@ export class IgxTreeGridSimpleComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridWithScrollsComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -111,7 +141,9 @@ export class IgxTreeGridWithScrollsComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridWithNoScrollsComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -128,7 +160,9 @@ export class IgxTreeGridWithNoScrollsComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class IgxTreeGridPrimaryForeignKeyComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -138,14 +172,16 @@ export class IgxTreeGridPrimaryForeignKeyComponent { @Component({ template: ` - + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent] }) export class IgxTreeGridExpandingComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -154,7 +190,7 @@ export class IgxTreeGridExpandingComponent { @Component({ template: ` - @@ -162,7 +198,9 @@ export class IgxTreeGridExpandingComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent] }) export class IgxTreeGridCellSelectionComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -171,7 +209,7 @@ export class IgxTreeGridCellSelectionComponent { @Component({ template: ` - @@ -179,7 +217,9 @@ export class IgxTreeGridCellSelectionComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent] }) export class IgxTreeGridNoDataComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -194,7 +234,9 @@ export class IgxTreeGridNoDataComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridStringTreeColumnComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -210,7 +252,9 @@ export class IgxTreeGridStringTreeColumnComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridDateTreeColumnComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -227,30 +271,15 @@ export class IgxTreeGridDateTreeColumnComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridBooleanTreeColumnComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; public data = SampleTestData.employeeAllTypesTreeData(); } -// Test Component for CRUD tests -@Component({ - template: ` - - - - - - - - ` -}) -export class IgxTreeGridCrudComponent { - @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; - public data = SampleTestData.employeeTreeData(); -} - // Test Component for tree-grid row editing @Component({ template: ` @@ -260,7 +289,9 @@ export class IgxTreeGridCrudComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridRowEditingComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -270,13 +301,15 @@ export class IgxTreeGridRowEditingComponent { // Test Component for tree-grid filtering and row editing @Component({ template: ` - - - - - - - ` + + + + + + + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridFilteringRowEditingComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -291,7 +324,9 @@ export class IgxTreeGridFilteringRowEditingComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSelectionRowEditingComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -310,7 +345,9 @@ export class IgxTreeGridSelectionRowEditingComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxColumnGroupComponent] }) export class IgxTreeGridMultiColHeadersComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -320,14 +357,16 @@ export class IgxTreeGridMultiColHeadersComponent { @Component({ template: ` - + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSummariesComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -338,7 +377,7 @@ export class IgxTreeGridSummariesComponent { @Component({ template: ` - @@ -347,7 +386,9 @@ export class IgxTreeGridSummariesComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSummariesKeyScroliingComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -364,7 +405,9 @@ export class IgxTreeGridSummariesKeyScroliingComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridWithNoForeignKeyComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -373,7 +416,7 @@ export class IgxTreeGridWithNoForeignKeyComponent { @Component({ template: ` - @@ -382,12 +425,14 @@ export class IgxTreeGridWithNoForeignKeyComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class IgxTreeGridSummariesKeyComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; public data = SampleTestData.employeeTreeDataPrimaryForeignKey(); - public calculationMode = 'rootAndChildLevels'; + public calculationMode: GridSummaryCalculationMode = 'rootAndChildLevels'; public ageSummary = AgeSummary; public ageSummaryTest = AgeSummaryTest; public paging = false; @@ -395,7 +440,7 @@ export class IgxTreeGridSummariesKeyComponent { @Component({ template: ` - @@ -404,12 +449,14 @@ export class IgxTreeGridSummariesKeyComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSummariesTransactionsComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; public data = SampleTestData.employeeTreeDataPrimaryForeignKey(); - public calculationMode = 'rootAndChildLevels'; + public calculationMode: GridSummaryCalculationMode = 'rootAndChildLevels'; public ageSummary = AgeSummaryMinMax; public ageSummaryTest = AgeSummaryTest; } @@ -498,7 +545,9 @@ class PTOSummary extends IgxSummaryOperand { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridRowEditingTransactionComponent { @ViewChild('treeGrid', { read: IgxTreeGridComponent, static: true }) public treeGrid: IgxTreeGridComponent; @@ -508,14 +557,16 @@ export class IgxTreeGridRowEditingTransactionComponent { @Component({ template: ` - + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridCustomSummariesComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -526,14 +577,17 @@ export class IgxTreeGridCustomSummariesComponent { } @Component({ - template: ` + template: ` + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridRowEditingHierarchicalDSTransactionComponent { @ViewChild('treeGrid', { read: IgxTreeGridComponent, static: true }) public treeGrid: IgxTreeGridComponent; @@ -542,15 +596,18 @@ export class IgxTreeGridRowEditingHierarchicalDSTransactionComponent { } @Component({ - template: ` + template: ` + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class IgxTreeGridRowPinningComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -559,16 +616,18 @@ export class IgxTreeGridRowPinningComponent { } @Component({ - template: - `
    - - - - - + template: ` +
    + + + + + -
    ` +
    `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridWrappedInContComponent { @@ -622,7 +681,9 @@ export class IgxTreeGridWrappedInContComponent {
    - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxPaginatorComponent, NgIf] }) export class IgxTreeGridSummariesScrollingComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -639,7 +700,9 @@ export class IgxTreeGridSummariesScrollingComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSearchComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -657,7 +720,9 @@ export class IgxTreeGridSearchComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridLoadOnDemandComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -681,7 +746,9 @@ export class IgxTreeGridLoadOnDemandComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSelectionKeyComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -699,7 +766,9 @@ export class IgxTreeGridSelectionKeyComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridLoadOnDemandChildDataComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -724,7 +793,9 @@ export class IgxTreeGridLoadOnDemandChildDataComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSelectionComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -742,7 +813,9 @@ export class IgxTreeGridSelectionComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridLoadOnDemandHasChildrenComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -780,7 +853,9 @@ export class IgxTreeGridLoadOnDemandHasChildrenComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridSelectionWithTransactionComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -790,14 +865,16 @@ export class IgxTreeGridSelectionWithTransactionComponent { @Component({ template: ` + [data]="data" primaryKey="ID" foreignKey="ParentID" width="500px" height="600px"columnWidth="150px" > - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridFKeySelectionWithTransactionComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -813,7 +890,9 @@ export class IgxTreeGridFKeySelectionWithTransactionComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent] }) export class IgxTreeGridDefaultLoadingComponent implements OnInit { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -849,7 +928,9 @@ export class IgxTreeGridDefaultLoadingComponent implements OnInit { (click)="onHeaderCheckboxClick($event, headContext)"> - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxCheckboxComponent, IgxPaginatorComponent, IgxHeadSelectorDirective, IgxRowSelectorDirective] }) export class IgxTreeGridCustomRowSelectorsComponent implements OnInit { @ViewChild(IgxTreeGridComponent, { static: true }) @@ -899,7 +980,9 @@ export class IgxTreeGridCustomRowSelectorsComponent implements OnInit { COLLAPSED - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxRowExpandedIndicatorDirective, IgxRowCollapsedIndicatorDirective] }) export class IgxTreeGridCustomExpandersTemplateComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -915,10 +998,12 @@ export class IgxTreeGridCustomExpandersTemplateComponent { - - + + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent] }) export class IgxTreeGridEditActionsComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -939,7 +1024,9 @@ export class IgxTreeGridEditActionsComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent] }) export class IgxTreeGridCascadingSelectionComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -950,17 +1037,19 @@ export class IgxTreeGridCascadingSelectionComponent { @Component({ template: ` - + [data]="data" childDataKey="Employees" [rowSelection]="'multipleCascade'" + width="800px" height="600px" columnWidth="150px" primaryKey="ID"> + - - + + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent] }) export class IgxTreeGridCascadingSelectionTransactionComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -972,7 +1061,7 @@ export class IgxTreeGridCascadingSelectionTransactionComponent { @Component({ template: ` + [childDataKey]="childDataKey" [expansionDepth]="0" width="900px" height="1000px"> - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxTreeGridGroupByAreaComponent, IgxTreeGridGroupingPipe] }) export class IgxTreeGridGroupingComponent { @ViewChild(IgxTreeGridGroupByAreaComponent, { static: true }) public groupByArea: IgxTreeGridGroupByAreaComponent; @@ -1011,7 +1102,9 @@ export class IgxTreeGridGroupingComponent {
    - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxTreeGridGroupByAreaComponent] }) export class IgxTreeGridGroupByAreaTestComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -1021,7 +1114,7 @@ export class IgxTreeGridGroupByAreaTestComponent { @Component({ template: ` + [rowSelection]="'multipleCascade'" [rowEditable]="true" width="900px" height="600px"> @@ -1030,7 +1123,9 @@ export class IgxTreeGridGroupByAreaTestComponent { - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridEditingActionsComponent] }) export class IgxTreeGridPrimaryForeignKeyCascadeSelectionComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; @@ -1048,11 +1143,13 @@ export class IgxTreeGridPrimaryForeignKeyCascadeSelectionComponent { - - - + + + - ` + `, + standalone: true, + imports: [IgxTreeGridComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, IgxGridEditingActionsComponent] }) export class IgxTreeGridEditActionsPinningComponent { @ViewChild(IgxTreeGridComponent, { static: true }) public treeGrid: IgxTreeGridComponent; diff --git a/projects/igniteui-angular/src/lib/test-utils/tree-grid-functions.spec.ts b/projects/igniteui-angular/src/lib/test-utils/tree-grid-functions.spec.ts index 0e092623da5..2f24db53759 100644 --- a/projects/igniteui-angular/src/lib/test-utils/tree-grid-functions.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/tree-grid-functions.spec.ts @@ -402,7 +402,7 @@ export class TreeGridFunctions { } public static verifyTreeGridCellSelected(treeGrid: IgxTreeGridComponent, - cell: IgxGridCellComponent | CellType, selected: boolean = true) { + cell: IgxGridCellComponent | CellType, selected = true) { expect(cell).toBeDefined(); if (cell) { expect(TreeGridFunctions.verifyGridCellHasSelectedClass(cell)).toBe(selected); @@ -434,7 +434,7 @@ export class TreeGridFunctions { } } - public static moveCellUpDown(fix, treeGrid: IgxTreeGridComponent, rowIndex: number, columnName: string, moveDown: boolean = true) { + public static moveCellUpDown(fix, treeGrid: IgxTreeGridComponent, rowIndex: number, columnName: string, moveDown = true) { const cell = treeGrid.gridAPI.get_cell_by_index(rowIndex, columnName); const newRowIndex = moveDown ? rowIndex + 1 : rowIndex - 1; const keyboardEventKey = moveDown ? 'ArrowDown' : 'ArrowUp'; @@ -450,7 +450,7 @@ export class TreeGridFunctions { } public static moveCellLeftRight(fix, treeGrid: IgxTreeGridComponent, rowIndex: number, - firstColumnName: string, nextColumnName: string, moveRight: boolean = true) { + firstColumnName: string, nextColumnName: string, moveRight = true) { const cell = treeGrid.gridAPI.get_cell_by_index(rowIndex, firstColumnName); const keyboardEventKey = moveRight ? 'ArrowRight' : 'ArrowLeft'; const gridContent = GridFunctions.getGridContent(fix); diff --git a/projects/igniteui-angular/src/lib/test-utils/ui-interactions.spec.ts b/projects/igniteui-angular/src/lib/test-utils/ui-interactions.spec.ts index 70083b667d4..0b24a16caaa 100644 --- a/projects/igniteui-angular/src/lib/test-utils/ui-interactions.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/ui-interactions.spec.ts @@ -426,11 +426,11 @@ export class UIInteractions { }; } - public static hoverElement(element: HTMLElement, bubbles: boolean = false) { + public static hoverElement(element: HTMLElement, bubbles = false) { element.dispatchEvent(new MouseEvent('mouseenter', { bubbles })); } - public static unhoverElement(element: HTMLElement, bubbles: boolean = false) { + public static unhoverElement(element: HTMLElement, bubbles = false) { element.dispatchEvent(new MouseEvent('mouseleave', { bubbles })); } diff --git a/projects/igniteui-angular/src/lib/time-picker/public_api.ts b/projects/igniteui-angular/src/lib/time-picker/public_api.ts new file mode 100644 index 00000000000..beab7f74080 --- /dev/null +++ b/projects/igniteui-angular/src/lib/time-picker/public_api.ts @@ -0,0 +1,21 @@ +import { IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent } from '../date-common/picker-icons.common'; +import { IgxHintDirective } from '../directives/hint/hint.directive'; +import { IgxLabelDirective } from '../directives/label/label.directive'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxTimePickerComponent } from './time-picker.component'; + +export * from './time-picker.component'; +export * from './time-picker.directives'; + +/* NOTE: Time picker directives collection for ease-of-use import in standalone components scenario */ +export const IGX_TIME_PICKER_DIRECTIVES = [ + IgxTimePickerComponent, + IgxPickerActionsDirective, + IgxPickerToggleComponent, + IgxPickerClearComponent, + IgxLabelDirective, + IgxPrefixDirective, + IgxSuffixDirective, + IgxHintDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/time-picker/time-picker.common.ts b/projects/igniteui-angular/src/lib/time-picker/time-picker.common.ts index f1b3dd40308..26dc9d68cc9 100644 --- a/projects/igniteui-angular/src/lib/time-picker/time-picker.common.ts +++ b/projects/igniteui-angular/src/lib/time-picker/time-picker.common.ts @@ -1,5 +1,6 @@ import { ElementRef } from '@angular/core'; import { DatePartDeltas } from '../directives/date-time-editor/public_api'; + /** @hidden */ export const IGX_TIME_PICKER_COMPONENT = 'IgxTimePickerComponentToken'; diff --git a/projects/igniteui-angular/src/lib/time-picker/time-picker.component.spec.ts b/projects/igniteui-angular/src/lib/time-picker/time-picker.component.spec.ts index 7699b23a4c0..940ad6ba140 100644 --- a/projects/igniteui-angular/src/lib/time-picker/time-picker.component.spec.ts +++ b/projects/igniteui-angular/src/lib/time-picker/time-picker.component.spec.ts @@ -3,14 +3,13 @@ import { TestBed, fakeAsync, tick, ComponentFixture, waitForAsync } from '@angul import { UntypedFormControl, UntypedFormGroup, FormsModule, NgForm, ReactiveFormsModule, Validators } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxTimePickerComponent, IgxTimePickerModule, IgxTimePickerValidationFailedEventArgs } from './time-picker.component'; +import { IgxTimePickerComponent, IgxTimePickerValidationFailedEventArgs } from './time-picker.component'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; import { - IgxHintDirective, IgxInputGroupComponent, IgxInputGroupModule, IgxInputState, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective + IgxHintDirective, IgxInputGroupComponent, IgxInputState, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective } from '../input-group/public_api'; import { configureTestSuite } from '../test-utils/configure-suite'; import { PickerInteractionMode } from '../date-common/types'; -import { IgxIconModule } from '../icon/public_api'; import { PlatformUtil } from '../core/utils'; import { DatePart, IgxDateTimeEditorDirective } from '../directives/date-time-editor/public_api'; import { DateTimeUtil } from '../date-common/util/date-time.util'; @@ -18,6 +17,7 @@ import { IgxItemListDirective, IgxTimeItemDirective } from './time-picker.direct import { IgxPickerClearComponent, IgxPickerToggleComponent } from '../date-common/public_api'; import { Subscription } from 'rxjs'; import { HammerGesturesManager } from '../core/touch'; +import { NgIf } from '@angular/common'; const CSS_CLASS_TIMEPICKER = 'igx-time-picker'; const CSS_CLASS_INPUTGROUP = 'igx-input-group'; @@ -477,14 +477,11 @@ describe('IgxTimePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + FormsModule, + NoopAnimationsModule, IgxTimePickerTestComponent ], - imports: [IgxTimePickerModule, - IgxInputGroupModule, - IgxIconModule, - FormsModule, - NoopAnimationsModule], providers: [PlatformUtil] }).compileComponents(); })); @@ -1084,13 +1081,7 @@ describe('IgxTimePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxTimePickerTestComponent - ], - imports: [IgxTimePickerModule, - IgxInputGroupModule, - IgxIconModule, - NoopAnimationsModule] + imports: [NoopAnimationsModule, IgxTimePickerTestComponent] }).compileComponents(); })); beforeEach(fakeAsync(() => { @@ -1449,13 +1440,7 @@ describe('IgxTimePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxTimePickerTestComponent - ], - imports: [IgxTimePickerModule, - IgxInputGroupModule, - IgxIconModule, - NoopAnimationsModule] + imports: [NoopAnimationsModule, IgxTimePickerTestComponent] }).compileComponents(); })); beforeEach(fakeAsync(() => { @@ -1532,13 +1517,7 @@ describe('IgxTimePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxTimePickerWithProjectionsComponent - ], - imports: [IgxTimePickerModule, - IgxInputGroupModule, - IgxIconModule, - NoopAnimationsModule] + imports: [NoopAnimationsModule, IgxTimePickerWithProjectionsComponent] }).compileComponents(); })); beforeEach(fakeAsync(() => { @@ -1639,11 +1618,11 @@ describe('IgxTimePicker', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxTimePickerInFormComponent, IgxTimePickerReactiveFormComponent - ], - imports: [IgxTimePickerModule, IgxInputGroupModule, FormsModule, NoopAnimationsModule, ReactiveFormsModule] + ] }).compileComponents(); })); beforeEach(fakeAsync(() => { @@ -1736,7 +1715,9 @@ describe('IgxTimePicker', () => { template: ` - ` + `, + standalone: true, + imports: [IgxTimePickerComponent, IgxLabelDirective] }) export class IgxTimePickerTestComponent { @ViewChild('picker', { read: IgxTimePickerComponent, static: true }) @@ -1757,7 +1738,9 @@ export class IgxTimePickerTestComponent { Suffix Hint -` +`, + standalone: true, + imports: [IgxTimePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective, IgxHintDirective, NgIf] }) export class IgxTimePickerWithProjectionsComponent { @ViewChild(IgxTimePickerComponent) public timePicker: IgxTimePickerComponent; @@ -1773,7 +1756,9 @@ export class IgxTimePickerWithProjectionsComponent {
    - ` + `, + standalone: true, + imports: [IgxTimePickerComponent, FormsModule] }) export class IgxTimePickerInFormComponent { @ViewChild('form') @@ -1783,7 +1768,7 @@ export class IgxTimePickerInFormComponent { public timePicker: IgxTimePickerComponent; public minValue = new Date(2010, 3, 3, 13, 0, 0); - public date: Date = new Date(2010, 3, 3, 12, 0, 0);; + public date: Date = new Date(2010, 3, 3, 12, 0, 0); } @Component({ @@ -1795,7 +1780,9 @@ export class IgxTimePickerInFormComponent { - ` + `, + standalone: true, + imports: [IgxTimePickerComponent, IgxLabelDirective, ReactiveFormsModule] }) export class IgxTimePickerReactiveFormComponent { @ViewChild(IgxTimePickerComponent) diff --git a/projects/igniteui-angular/src/lib/time-picker/time-picker.component.ts b/projects/igniteui-angular/src/lib/time-picker/time-picker.component.ts index bdfe691c9de..e18300d11f2 100644 --- a/projects/igniteui-angular/src/lib/time-picker/time-picker.component.ts +++ b/projects/igniteui-angular/src/lib/time-picker/time-picker.component.ts @@ -1,13 +1,10 @@ -import { - CommonModule -} from '@angular/common'; +import { NgIf, NgClass, NgFor, NgTemplateOutlet } from '@angular/common'; import { Component, ElementRef, EventEmitter, HostBinding, Input, - NgModule, OnDestroy, OnInit, Output, @@ -29,16 +26,14 @@ import { Validator, NG_VALIDATORS } from '@angular/forms'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxInputGroupModule, IgxInputGroupComponent } from '../input-group/input-group.component'; + +import { IgxInputGroupComponent } from '../input-group/input-group.component'; import { IgxInputDirective, IgxInputState } from '../directives/input/input.directive'; import { IgxInputGroupType, IGX_INPUT_GROUP_TYPE } from '../input-group/public_api'; import { DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { IgxItemListDirective, - IgxTimeItemDirective, - IgxTimePickerTemplateDirective, - IgxTimePickerActionsDirective + IgxTimeItemDirective } from './time-picker.directives'; import { Subscription, noop, fromEvent } from 'rxjs'; import { IgxTimePickerBase, IGX_TIME_PICKER_COMPONENT } from './time-picker.common'; @@ -46,22 +41,25 @@ import { AbsoluteScrollStrategy } from '../services/overlay/scroll'; import { AutoPositionStrategy } from '../services/overlay/position'; import { OverlaySettings } from '../services/overlay/utilities'; import { takeUntil } from 'rxjs/operators'; -import { IgxButtonModule } from '../directives/button/button.directive'; -import { IgxMaskModule } from '../directives/mask/mask.directive'; -import { IgxDateTimeEditorModule, IgxDateTimeEditorDirective } from '../directives/date-time-editor/date-time-editor.directive'; -import { IgxToggleModule, IgxToggleDirective } from '../directives/toggle/toggle.directive'; +import { IgxButtonDirective } from '../directives/button/button.directive'; + +import { IgxDateTimeEditorDirective } from '../directives/date-time-editor/date-time-editor.directive'; +import { IgxToggleDirective } from '../directives/toggle/toggle.directive'; import { ITimePickerResourceStrings } from '../core/i18n/time-picker-resources'; import { CurrentResourceStrings } from '../core/i18n/resources'; import { IBaseEventArgs, isEqual, isDate, PlatformUtil, IBaseCancelableBrowserEventArgs } from '../core/utils'; import { PickerInteractionMode } from '../date-common/types'; -import { IgxTextSelectionModule } from '../directives/text-selection/text-selection.directive'; +import { IgxTextSelectionDirective } from '../directives/text-selection/text-selection.directive'; import { IgxLabelDirective } from '../directives/label/label.directive'; import { PickerBaseDirective } from '../date-common/picker-base.directive'; import { DateTimeUtil } from '../date-common/util/date-time.util'; import { DatePart, DatePartDeltas } from '../directives/date-time-editor/public_api'; import { PickerHeaderOrientation } from '../date-common/types'; -import { IgxPickerClearComponent, IgxPickersCommonModule } from '../date-common/picker-icons.common'; +import { IgxPickerActionsDirective, IgxPickerClearComponent } from '../date-common/picker-icons.common'; import { TimeFormatPipe, TimeItemPipe } from './time-picker.pipes'; +import { IgxSuffixDirective } from '../directives/suffix/suffix.directive'; +import { IgxIconComponent } from '../icon/icon.component'; +import { IgxPrefixDirective } from '../directives/prefix/prefix.directive'; let NEXT_ID = 0; export interface IgxTimePickerValidationFailedEventArgs extends IBaseEventArgs { @@ -92,7 +90,9 @@ export interface IgxTimePickerValidationFailedEventArgs extends IBaseEventArgs { `:host { display: block; }` - ] + ], + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, IgxDateTimeEditorDirective, IgxTextSelectionDirective, NgIf, IgxPrefixDirective, IgxIconComponent, IgxSuffixDirective, IgxButtonDirective, IgxToggleDirective, NgClass, IgxItemListDirective, NgFor, IgxTimeItemDirective, NgTemplateOutlet, TimeFormatPipe, TimeItemPipe] }) export class IgxTimePickerComponent extends PickerBaseDirective implements @@ -318,8 +318,8 @@ export class IgxTimePickerComponent extends PickerBaseDirective public label: IgxLabelDirective; /** @hidden @internal */ - @ContentChild(IgxTimePickerActionsDirective) - public timePickerActionsDirective: IgxTimePickerActionsDirective; + @ContentChild(IgxPickerActionsDirective) + public timePickerActionsDirective: IgxPickerActionsDirective; @ViewChild(IgxInputDirective, { read: IgxInputDirective }) private inputDirective: IgxInputDirective; @@ -1270,37 +1270,3 @@ export class IgxTimePickerComponent extends PickerBaseDirective } } } - -/** - * @hidden - */ -@NgModule({ - declarations: [ - IgxTimePickerComponent, - IgxItemListDirective, - IgxTimeItemDirective, - IgxTimePickerTemplateDirective, - IgxTimePickerActionsDirective, - TimeFormatPipe, - TimeItemPipe - ], - exports: [ - IgxTimePickerComponent, - IgxTimePickerTemplateDirective, - IgxTimePickerActionsDirective, - IgxPickersCommonModule, - IgxInputGroupModule - ], - imports: [ - CommonModule, - IgxDateTimeEditorModule, - IgxInputGroupModule, - IgxIconModule, - IgxButtonModule, - IgxMaskModule, - IgxToggleModule, - IgxTextSelectionModule - ], - providers: [] -}) -export class IgxTimePickerModule { } diff --git a/projects/igniteui-angular/src/lib/time-picker/time-picker.directives.ts b/projects/igniteui-angular/src/lib/time-picker/time-picker.directives.ts index 091a69770e2..8a82181c64f 100644 --- a/projects/igniteui-angular/src/lib/time-picker/time-picker.directives.ts +++ b/projects/igniteui-angular/src/lib/time-picker/time-picker.directives.ts @@ -12,8 +12,7 @@ import { Inject, Input, OnDestroy, - OnInit, - TemplateRef + OnInit } from '@angular/core'; import { HammerGesturesManager } from '../core/touch'; import { DateTimeUtil } from '../date-common/util/date-time.util'; @@ -22,7 +21,8 @@ import { IgxTimePickerBase, IGX_TIME_PICKER_COMPONENT } from './time-picker.comm /** @hidden */ @Directive({ selector: '[igxItemList]', - providers: [HammerGesturesManager] + providers: [HammerGesturesManager], + standalone: true }) export class IgxItemListDirective implements OnInit, OnDestroy { @HostBinding('attr.tabindex') @@ -224,7 +224,8 @@ export class IgxItemListDirective implements OnInit, OnDestroy { */ @Directive({ selector: '[igxTimeItem]', - exportAs: 'timeItem' + exportAs: 'timeItem', + standalone: true }) export class IgxTimeItemDirective { @Input('igxTimeItem') @@ -362,23 +363,3 @@ export class IgxTimeItemDirective { return hour; } } - -/** - * This directive should be used to mark which ng-template will be used from IgxTimePicker when re-templating its input group. - */ -@Directive({ - selector: '[igxTimePickerTemplate]' -}) -export class IgxTimePickerTemplateDirective { - constructor(public template: TemplateRef) { } -} - -/** - * This directive can be used to add custom action buttons to the dropdown/dialog. - */ -@Directive({ - selector: '[igxTimePickerActions]' -}) -export class IgxTimePickerActionsDirective { - constructor(public template: TemplateRef) { } -} diff --git a/projects/igniteui-angular/src/lib/time-picker/time-picker.module.ts b/projects/igniteui-angular/src/lib/time-picker/time-picker.module.ts new file mode 100644 index 00000000000..2a3b62eaf35 --- /dev/null +++ b/projects/igniteui-angular/src/lib/time-picker/time-picker.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_TIME_PICKER_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_TIME_PICKER_DIRECTIVES + ], + exports: [ + ...IGX_TIME_PICKER_DIRECTIVES + ] +}) +export class IgxTimePickerModule { } diff --git a/projects/igniteui-angular/src/lib/time-picker/time-picker.pipes.ts b/projects/igniteui-angular/src/lib/time-picker/time-picker.pipes.ts index e9a0f847dd2..e79b3358b79 100644 --- a/projects/igniteui-angular/src/lib/time-picker/time-picker.pipes.ts +++ b/projects/igniteui-angular/src/lib/time-picker/time-picker.pipes.ts @@ -6,7 +6,8 @@ import { DatePart } from '../directives/date-time-editor/public_api'; const ITEMS_COUNT = 7; @Pipe({ - name: 'timeFormatPipe' + name: 'timeFormatPipe', + standalone: true }) export class TimeFormatPipe implements PipeTransform { constructor(@Inject(IGX_TIME_PICKER_COMPONENT) private timePicker: IgxTimePickerBase) { } @@ -19,7 +20,8 @@ export class TimeFormatPipe implements PipeTransform { } @Pipe({ - name: 'timeItemPipe' + name: 'timeItemPipe', + standalone: true }) export class TimeItemPipe implements PipeTransform { constructor(@Inject(IGX_TIME_PICKER_COMPONENT) private timePicker: IgxTimePickerBase) { } diff --git a/projects/igniteui-angular/src/lib/toast/toast.component.spec.ts b/projects/igniteui-angular/src/lib/toast/toast.component.spec.ts index 3141ec3d676..6e5e83a4da7 100644 --- a/projects/igniteui-angular/src/lib/toast/toast.component.spec.ts +++ b/projects/igniteui-angular/src/lib/toast/toast.component.spec.ts @@ -16,13 +16,13 @@ describe('IgxToast', () => { const baseId = 'igx-toast-'; let fixture: ComponentFixture; let toast: IgxToastComponent; - let firstPositionSettings: PositionSettings = { + const firstPositionSettings: PositionSettings = { horizontalDirection: HorizontalAlignment.Left, verticalDirection: VerticalAlignment.Middle, horizontalStartPoint: HorizontalAlignment.Left, verticalStartPoint: VerticalAlignment.Middle }; - let secondPositionSettings: PositionSettings = { + const secondPositionSettings: PositionSettings = { horizontalDirection: HorizontalAlignment.Center, verticalDirection: VerticalAlignment.Middle, horizontalStartPoint: HorizontalAlignment.Center, @@ -33,8 +33,7 @@ describe('IgxToast', () => { beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [IgxToastComponent], - imports: [NoopAnimationsModule] + imports: [NoopAnimationsModule, IgxToastComponent] }).compileComponents(); })); diff --git a/projects/igniteui-angular/src/lib/toast/toast.component.ts b/projects/igniteui-angular/src/lib/toast/toast.component.ts index fd37b859b5a..3a49e4a7479 100644 --- a/projects/igniteui-angular/src/lib/toast/toast.component.ts +++ b/projects/igniteui-angular/src/lib/toast/toast.component.ts @@ -1,4 +1,3 @@ -import { CommonModule } from '@angular/common'; import { ChangeDetectorRef, Component, @@ -7,7 +6,6 @@ import { HostBinding, Inject, Input, - NgModule, OnInit, Optional, Output @@ -45,7 +43,8 @@ let NEXT_ID = 0; */ @Component({ selector: 'igx-toast', - templateUrl: 'toast.component.html' + templateUrl: 'toast.component.html', + standalone: true }) export class IgxToastComponent extends IgxNotificationsDirective implements OnInit { /** @@ -203,13 +202,3 @@ export class IgxToastComponent extends IgxNotificationsDirective implements OnIn }); } } - -/** - * @hidden - */ -@NgModule({ - declarations: [IgxToastComponent], - exports: [IgxToastComponent], - imports: [CommonModule], -}) -export class IgxToastModule { } diff --git a/projects/igniteui-angular/src/lib/toast/toast.module.ts b/projects/igniteui-angular/src/lib/toast/toast.module.ts new file mode 100644 index 00000000000..bb8401b2dcd --- /dev/null +++ b/projects/igniteui-angular/src/lib/toast/toast.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IgxToastComponent } from './toast.component'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + IgxToastComponent + ], + exports: [ + IgxToastComponent + ] +}) +export class IgxToastModule { } diff --git a/projects/igniteui-angular/src/lib/tree/common.ts b/projects/igniteui-angular/src/lib/tree/common.ts index 8b3aba7992b..559a1dbe0b4 100644 --- a/projects/igniteui-angular/src/lib/tree/common.ts +++ b/projects/igniteui-angular/src/lib/tree/common.ts @@ -1,5 +1,5 @@ import { ElementRef, EventEmitter, InjectionToken, QueryList, TemplateRef } from '@angular/core'; -import { DisplayDensity } from '../core/displayDensity'; +import { DisplayDensity } from '../core/density'; import { IBaseCancelableBrowserEventArgs, IBaseEventArgs, mkenum } from '../core/utils'; import { ToggleAnimationSettings } from '../expansion-panel/toggle-animation-component'; diff --git a/projects/igniteui-angular/src/lib/tree/public_api.ts b/projects/igniteui-angular/src/lib/tree/public_api.ts index 08b8f6258c9..11f4ee984d6 100644 --- a/projects/igniteui-angular/src/lib/tree/public_api.ts +++ b/projects/igniteui-angular/src/lib/tree/public_api.ts @@ -1,5 +1,16 @@ -export * from './tree.component'; +import { IgxTreeNodeComponent, IgxTreeNodeLinkDirective } from './tree-node/tree-node.component'; +import { IgxTreeComponent } from './tree.component'; + +export { IgxTreeComponent } from './tree.component'; export * from './tree-node/tree-node.component'; export { IgxTreeSearchResolver, ITreeNodeSelectionEvent, ITreeNodeEditingEvent, ITreeNodeEditedEvent, ITreeNodeTogglingEventArgs, ITreeNodeToggledEventArgs, - IgxTreeSelectionType, IgxTree, IgxTreeNode } from './common'; + IgxTreeSelectionType, IgxTree, IgxTreeNode +} from './common'; + +/* NOTE: Tree directives collection for ease-of-use import in standalone components scenario */ +export const IGX_TREE_DIRECTIVES = [ + IgxTreeComponent, + IgxTreeNodeComponent, + IgxTreeNodeLinkDirective +] as const; diff --git a/projects/igniteui-angular/src/lib/tree/tree-functions.spec.ts b/projects/igniteui-angular/src/lib/tree/tree-functions.spec.ts index 874eb45da56..200ceca5439 100644 --- a/projects/igniteui-angular/src/lib/tree/tree-functions.spec.ts +++ b/projects/igniteui-angular/src/lib/tree/tree-functions.spec.ts @@ -84,5 +84,5 @@ export class TreeTestFunctions { mockQuery.filter.and.callFake((cb) => nodes.filter(cb)); mockQuery.forEach.and.callFake((cb) => nodes.forEach(cb)); return mockQuery; - }; + } } diff --git a/projects/igniteui-angular/src/lib/tree/tree-navigation.service.ts b/projects/igniteui-angular/src/lib/tree/tree-navigation.service.ts index ddc31d9cb0c..53687c548ad 100644 --- a/projects/igniteui-angular/src/lib/tree/tree-navigation.service.ts +++ b/projects/igniteui-angular/src/lib/tree/tree-navigation.service.ts @@ -105,7 +105,7 @@ export class IgxTreeNavigationService implements OnDestroy { * @param node target node * @param isActive if true, sets the node as active */ - public setFocusedAndActiveNode(node: IgxTreeNode, isActive: boolean = true): void { + public setFocusedAndActiveNode(node: IgxTreeNode, isActive = true): void { if (isActive) { this.activeNode = node; } diff --git a/projects/igniteui-angular/src/lib/tree/tree-navigation.spec.ts b/projects/igniteui-angular/src/lib/tree/tree-navigation.spec.ts index 1e2e1e27125..74e36e67741 100644 --- a/projects/igniteui-angular/src/lib/tree/tree-navigation.spec.ts +++ b/projects/igniteui-angular/src/lib/tree/tree-navigation.spec.ts @@ -8,7 +8,7 @@ import { ElementRef, EventEmitter } from '@angular/core'; import { IgxTreeSelectionService } from './tree-selection.service'; import { TreeTestFunctions } from './tree-functions.spec'; import { IgxTreeService } from './tree.service'; -import { IgxTreeComponent, IgxTreeModule } from './tree.component'; +import { IgxTreeComponent } from './tree.component'; import { IgxTree, IgxTreeNode, IgxTreeSelectionType } from './common'; import { IgxTreeNodeComponent } from './tree-node/tree-node.component'; @@ -20,11 +20,11 @@ describe('IgxTree - Navigation #treeView', () => { let tree: IgxTreeComponent; beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxTreeNavigationComponent, IgxTreeScrollComponent - ], - imports: [IgxTreeModule, NoopAnimationsModule] + ] }).compileComponents(); })); @@ -633,7 +633,7 @@ describe('IgxTree - Navigation #treeView', () => { expect(mockTree.activeNodeChanged.emit).toHaveBeenCalledWith(someNode2); // do not change active node when call w/ same node - navService.focusedNode = navService.focusedNode; + // navService.focusedNode = navService.focusedNode; expect(mockTree.activeNodeChanged.emit).toHaveBeenCalledTimes(1); // handle call w/ null diff --git a/projects/igniteui-angular/src/lib/tree/tree-node/tree-node.component.ts b/projects/igniteui-angular/src/lib/tree/tree-node/tree-node.component.ts index e860a9103e7..be550a8222d 100644 --- a/projects/igniteui-angular/src/lib/tree/tree-node/tree-node.component.ts +++ b/projects/igniteui-angular/src/lib/tree/tree-node/tree-node.component.ts @@ -19,7 +19,7 @@ import { ViewChild } from '@angular/core'; import { takeUntil } from 'rxjs/operators'; -import { DisplayDensity } from '../../core/displayDensity'; +import { DisplayDensity } from '../../core/density'; import { CurrentResourceStrings } from '../../core/i18n/resources'; import { ITreeResourceStrings } from '../../core/i18n/tree-resources'; import { ToggleAnimationPlayer, ToggleAnimationSettings } from '../../expansion-panel/toggle-animation-component'; @@ -36,6 +36,10 @@ import { import { IgxTreeNavigationService } from '../tree-navigation.service'; import { IgxTreeSelectionService } from '../tree-selection.service'; import { IgxTreeService } from '../tree.service'; +import { IgxCircularProgressBarComponent } from '../../progressbar/progressbar.component'; +import { IgxCheckboxComponent } from '../../checkbox/checkbox.component'; +import { IgxIconComponent } from '../../icon/icon.component'; +import { NgTemplateOutlet, NgIf, NgClass, NgFor } from '@angular/common'; // TODO: Implement aria functionality /** @@ -43,7 +47,8 @@ import { IgxTreeService } from '../tree.service'; * Used for links (`a` tags) in the body of an `igx-tree-node`. Handles aria and event dispatch. */ @Directive({ - selector: `[igxTreeNodeLink]` + selector: `[igxTreeNodeLink]`, + standalone: true }) export class IgxTreeNodeLinkDirective implements OnDestroy { @@ -147,7 +152,9 @@ export class IgxTreeNodeLinkDirective implements OnDestroy { templateUrl: 'tree-node.component.html', providers: [ { provide: IGX_TREE_NODE_COMPONENT, useExisting: IgxTreeNodeComponent } - ] + ], + standalone: true, + imports: [NgTemplateOutlet, NgIf, IgxIconComponent, IgxCheckboxComponent, NgClass, NgFor, IgxCircularProgressBarComponent] }) export class IgxTreeNodeComponent extends ToggleAnimationPlayer implements IgxTreeNode, OnInit, OnDestroy { /** @@ -323,7 +330,7 @@ export class IgxTreeNodeComponent extends ToggleAnimationPlayer implements Ig @HostBinding('attr.role') public get role() { return this.hasLinkChildren ? 'none' : 'treeitem'; - }; + } /** @hidden @internal */ @ContentChildren(IgxTreeNodeLinkDirective, { read: ElementRef }) @@ -700,7 +707,7 @@ export class IgxTreeNodeComponent extends ToggleAnimationPlayer implements Ig public addLinkChild(link: IgxTreeNodeLinkDirective) { this._tabIndex = -1; this.registeredChildren.push(link); - }; + } /** @hidden @internal */ public removeLinkChild(link: IgxTreeNodeLinkDirective) { diff --git a/projects/igniteui-angular/src/lib/tree/tree-samples.spec.ts b/projects/igniteui-angular/src/lib/tree/tree-samples.spec.ts index cb56b7f144a..42e0ee7c712 100644 --- a/projects/igniteui-angular/src/lib/tree/tree-samples.spec.ts +++ b/projects/igniteui-angular/src/lib/tree/tree-samples.spec.ts @@ -1,6 +1,7 @@ import { Component, ViewChild, ChangeDetectorRef } from '@angular/core'; -import { IgxTreeComponent } from './public_api'; +import { IgxTreeComponent, IgxTreeNodeComponent, IgxTreeNodeLinkDirective } from './public_api'; import { HIERARCHICAL_SAMPLE_DATA } from 'src/app/shared/sample-data'; +import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common'; @Component({ template: ` @@ -15,7 +16,9 @@ import { HIERARCHICAL_SAMPLE_DATA } from 'src/app/shared/sample-data'; - ` + `, + standalone: true, + imports: [IgxTreeComponent, IgxTreeNodeComponent, NgFor] }) export class IgxTreeSimpleComponent { @ViewChild(IgxTreeComponent, { static: true }) public tree: IgxTreeComponent; @@ -35,7 +38,9 @@ export class IgxTreeSimpleComponent { - ` + `, + standalone: true, + imports: [IgxTreeComponent, IgxTreeNodeComponent, NgFor] }) export class IgxTreeSelectionSampleComponent { @ViewChild(IgxTreeComponent, { static: true }) public tree: IgxTreeComponent; @@ -91,7 +96,9 @@ export class IgxTreeSelectionSampleComponent { Link to Infragistics
    - ` + `, + standalone: true, + imports: [IgxTreeComponent, IgxTreeNodeComponent, IgxTreeNodeLinkDirective, NgTemplateOutlet, NgFor, NgIf] }) export class IgxTreeNavigationComponent { @ViewChild(IgxTreeComponent, { static: true }) public tree: IgxTreeComponent; @@ -112,7 +119,9 @@ export class IgxTreeNavigationComponent { - ` + `, + standalone: true, + imports: [IgxTreeComponent, IgxTreeNodeComponent, NgFor] }) export class IgxTreeScrollComponent { @ViewChild(IgxTreeComponent, { static: true }) public tree: IgxTreeComponent; diff --git a/projects/igniteui-angular/src/lib/tree/tree-selection.service.ts b/projects/igniteui-angular/src/lib/tree/tree-selection.service.ts index 1c9bbc748c0..88b3a4aaf52 100644 --- a/projects/igniteui-angular/src/lib/tree/tree-selection.service.ts +++ b/projects/igniteui-angular/src/lib/tree/tree-selection.service.ts @@ -5,7 +5,7 @@ import { IgxTree, IgxTreeNode, IgxTreeSelectionType, ITreeNodeSelectionEvent } f interface CascadeSelectionNodeCollection { nodes: Set>; parents: Set>; -}; +} /** @hidden @internal */ @Injectable() diff --git a/projects/igniteui-angular/src/lib/tree/tree-selection.spec.ts b/projects/igniteui-angular/src/lib/tree/tree-selection.spec.ts index 172f99de3d7..765fb43cf21 100644 --- a/projects/igniteui-angular/src/lib/tree/tree-selection.spec.ts +++ b/projects/igniteui-angular/src/lib/tree/tree-selection.spec.ts @@ -2,7 +2,7 @@ import { TestBed, fakeAsync, waitForAsync } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { configureTestSuite } from '../test-utils/configure-suite'; import { EventEmitter, QueryList } from '@angular/core'; -import { IgxTreeComponent, IgxTreeModule } from './tree.component'; +import { IgxTreeComponent } from './tree.component'; import { UIInteractions } from '../test-utils/ui-interactions.spec'; import { TreeTestFunctions, TREE_NODE_DIV_SELECTION_CHECKBOX_CSS_CLASS } from './tree-functions.spec'; import { IgxTree, IgxTreeSelectionType, ITreeNodeSelectionEvent } from './common'; @@ -16,11 +16,11 @@ describe('IgxTree - Selection #treeView', () => { configureTestSuite(); beforeAll(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ + imports: [ + NoopAnimationsModule, IgxTreeSimpleComponent, IgxTreeSelectionSampleComponent - ], - imports: [IgxTreeModule, NoopAnimationsModule] + ] }).compileComponents(); })); @@ -596,7 +596,7 @@ describe('IgxTree - Selection #treeView', () => { const selectionService = new IgxTreeSelectionService(); const treeService = new IgxTreeService(); const navService = new IgxTreeNavigationService(treeService, selectionService); - const mockEmitter: EventEmitter = jasmine.createSpyObj('emitter', ['emit']);; + const mockEmitter: EventEmitter = jasmine.createSpyObj('emitter', ['emit']); const mockTree: IgxTree = jasmine.createSpyObj('tree', [''], { selection: IgxTreeSelectionType.BiState, nodeSelection: mockEmitter, nodes: { find: () => true diff --git a/projects/igniteui-angular/src/lib/tree/tree.component.ts b/projects/igniteui-angular/src/lib/tree/tree.component.ts index 983d4acbbd2..8ba0c9f4901 100644 --- a/projects/igniteui-angular/src/lib/tree/tree.component.ts +++ b/projects/igniteui-angular/src/lib/tree/tree.component.ts @@ -1,25 +1,20 @@ -import { CommonModule } from '@angular/common'; import { Component, QueryList, Input, Output, EventEmitter, ContentChild, Directive, - NgModule, TemplateRef, OnInit, AfterViewInit, ContentChildren, OnDestroy, HostBinding, ElementRef, Optional, Inject + TemplateRef, OnInit, AfterViewInit, ContentChildren, OnDestroy, HostBinding, ElementRef, Optional, Inject } from '@angular/core'; -import { FormsModule } from '@angular/forms'; + import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; + import { growVerIn, growVerOut } from '../animations/grow'; -import { IgxCheckboxModule } from '../checkbox/checkbox.component'; -import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/displayDensity'; -import { IgxExpansionPanelModule } from '../expansion-panel/public_api'; +import { DisplayDensityBase, DisplayDensityToken, IDisplayDensityOptions } from '../core/density'; import { ToggleAnimationSettings } from '../expansion-panel/toggle-animation-component'; -import { IgxIconModule } from '../icon/public_api'; -import { IgxInputGroupModule } from '../input-group/public_api'; -import { IgxProgressBarModule } from '../progressbar/progressbar.component'; import { IGX_TREE_COMPONENT, IgxTreeSelectionType, IgxTree, ITreeNodeToggledEventArgs, ITreeNodeTogglingEventArgs, ITreeNodeSelectionEvent, IgxTreeNode, IgxTreeSearchResolver } from './common'; import { IgxTreeNavigationService } from './tree-navigation.service'; -import { IgxTreeNodeComponent, IgxTreeNodeLinkDirective } from './tree-node/tree-node.component'; +import { IgxTreeNodeComponent } from './tree-node/tree-node.component'; import { IgxTreeSelectionService } from './tree-selection.service'; import { IgxTreeService } from './tree.service'; @@ -28,7 +23,8 @@ import { IgxTreeService } from './tree.service'; * Used for templating the select marker of the tree */ @Directive({ - selector: '[igxTreeSelectMarker]' + selector: '[igxTreeSelectMarker]', + standalone: true }) export class IgxTreeSelectMarkerDirective { } @@ -38,7 +34,8 @@ export class IgxTreeSelectMarkerDirective { * Used for templating the expand indicator of the tree */ @Directive({ - selector: '[igxTreeExpandIndicator]' + selector: '[igxTreeExpandIndicator]', + standalone: true }) export class IgxTreeExpandIndicatorDirective { } @@ -80,7 +77,8 @@ export class IgxTreeExpandIndicatorDirective { IgxTreeSelectionService, IgxTreeNavigationService, { provide: IGX_TREE_COMPONENT, useExisting: IgxTreeComponent }, - ] + ], + standalone: true }) export class IgxTreeComponent extends DisplayDensityBase implements IgxTree, OnInit, AfterViewInit, OnDestroy { @@ -506,39 +504,3 @@ export class IgxTreeComponent extends DisplayDensityBase implements IgxTree, OnI private _comparer = (data: T, node: IgxTreeNodeComponent) => node.data === data; } - -/** - * @hidden - * - * NgModule defining the components and directives needed for `igx-tree` - */ -@NgModule({ - declarations: [ - IgxTreeSelectMarkerDirective, - IgxTreeExpandIndicatorDirective, - IgxTreeNodeLinkDirective, - IgxTreeComponent, - IgxTreeNodeComponent - ], - imports: [ - CommonModule, - FormsModule, - IgxIconModule, - IgxInputGroupModule, - IgxCheckboxModule, - IgxProgressBarModule - ], - exports: [ - IgxTreeSelectMarkerDirective, - IgxTreeExpandIndicatorDirective, - IgxTreeNodeLinkDirective, - IgxTreeComponent, - IgxTreeNodeComponent, - IgxIconModule, - IgxInputGroupModule, - IgxCheckboxModule, - IgxExpansionPanelModule - ] -}) -export class IgxTreeModule { -} diff --git a/projects/igniteui-angular/src/lib/tree/tree.module.ts b/projects/igniteui-angular/src/lib/tree/tree.module.ts new file mode 100644 index 00000000000..b9aca17f843 --- /dev/null +++ b/projects/igniteui-angular/src/lib/tree/tree.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { IGX_TREE_DIRECTIVES } from './public_api'; + +/** + * @hidden + * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components + */ +@NgModule({ + imports: [ + ...IGX_TREE_DIRECTIVES + ], + exports: [ + ...IGX_TREE_DIRECTIVES + ] +}) +export class IgxTreeModule { } diff --git a/projects/igniteui-angular/src/lib/tree/tree.spec.ts b/projects/igniteui-angular/src/lib/tree/tree.spec.ts index 664b67e7954..da72c47b5b1 100644 --- a/projects/igniteui-angular/src/lib/tree/tree.spec.ts +++ b/projects/igniteui-angular/src/lib/tree/tree.spec.ts @@ -1,17 +1,18 @@ +import { NgFor, NgIf } from '@angular/common'; import { ChangeDetectorRef, Component, DebugElement, ElementRef, EventEmitter, QueryList, ViewChild } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; -import { DisplayDensity } from '../core/displayDensity'; +import { DisplayDensity } from '../core/density'; import { AnimationService } from '../services/animation/animation'; import { configureTestSuite } from '../test-utils/configure-suite'; import { TreeTestFunctions } from './tree-functions.spec'; import { IgxTreeNavigationService } from './tree-navigation.service'; import { IgxTreeNodeComponent } from './tree-node/tree-node.component'; import { IgxTreeSelectionService } from './tree-selection.service'; -import { IgxTreeComponent, IgxTreeModule } from './tree.component'; +import { IgxTreeComponent } from './tree.component'; import { IgxTreeService } from './tree.service'; const TREE_ROOT_CLASS = 'igx-tree__root'; @@ -488,18 +489,18 @@ describe('IgxTree #treeView', () => { describe('Rendering Tests', () => { let fix: ComponentFixture; let tree: IgxTreeComponent; + beforeAll( waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ - IgxTreeSampleComponent,], imports: [ NoopAnimationsModule, - IgxTreeModule + IgxTreeSampleComponent ] }).compileComponents(); }) ); + beforeEach(() => { fix = TestBed.createComponent(IgxTreeSampleComponent); fix.detectChanges(); @@ -708,7 +709,9 @@ describe('IgxTree #treeView', () => {
    - ` + `, + standalone: true, + imports: [IgxTreeComponent, NgIf, IgxTreeNodeComponent, NgFor] }) class IgxTreeSampleComponent { @ViewChild(IgxTreeComponent) diff --git a/projects/igniteui-angular/src/public_api.ts b/projects/igniteui-angular/src/public_api.ts index 7a9b6309819..ab35db3af16 100644 --- a/projects/igniteui-angular/src/public_api.ts +++ b/projects/igniteui-angular/src/public_api.ts @@ -1,4 +1,3 @@ - /* * Public API Surface of igniteui-angular */ @@ -8,7 +7,6 @@ */ export * from './lib/animations/main'; - /** * Directives */ @@ -16,8 +14,7 @@ export * from './lib/core/navigation'; export * from './lib/directives/autocomplete/autocomplete.directive'; export * from './lib/directives/button/button.directive'; export * from './lib/directives/divider/divider.directive'; -export * from './lib/directives/drag-drop/drag-drop.strategy'; -export * from './lib/directives/drag-drop/drag-drop.directive'; +export * from './lib/directives/drag-drop/public_api'; export * from './lib/directives/filter/filter.directive'; export * from './lib/directives/focus/focus.directive'; export * from './lib/directives/focus-trap/focus-trap.directive'; @@ -26,11 +23,12 @@ export * from './lib/directives/layout/layout.directive'; export * from './lib/directives/mask/mask.directive'; export * from './lib/directives/radio/radio-group.directive'; export * from './lib/directives/ripple/ripple.directive'; +export * from './lib/directives/scroll-inertia/scroll_inertia.directive'; export * from './lib/directives/text-highlight/text-highlight.directive'; export * from './lib/directives/text-selection/text-selection.directive'; export * from './lib/directives/template-outlet/template_outlet.directive'; export * from './lib/directives/toggle/toggle.directive'; -export * from './lib/directives/tooltip'; +export * from './lib/directives/tooltip/public_api'; export * from './lib/directives/date-time-editor/public_api'; export * from './lib/directives/form-control/form-control.directive'; @@ -43,8 +41,6 @@ export * from './lib/data-operations/filtering-expressions-tree'; export * from './lib/data-operations/filtering-condition'; export * from './lib/data-operations/filtering-state.interface'; export * from './lib/data-operations/filtering-strategy'; -export * from './lib/data-operations/pivot-sort-strategy'; -export * from './lib/data-operations/pivot-strategy'; export * from './lib/data-operations/groupby-expand-state.interface'; export * from './lib/data-operations/groupby-record.interface'; export * from './lib/data-operations/groupby-state.interface'; @@ -61,63 +57,54 @@ export * from './lib/accordion/public_api'; export * from './lib/avatar/avatar.component'; export * from './lib/badge/badge.component'; export * from './lib/banner/public_api'; -export * from './lib/buttonGroup/buttonGroup.component'; +export * from './lib/buttonGroup/public_api'; export * from './lib/calendar/public_api'; -export * from './lib/card/card.component'; +export * from './lib/card/public_api'; export * from './lib/carousel/public_api'; export * from './lib/checkbox/checkbox.component'; export * from './lib/chips/public_api'; export * from './lib/combo/public_api'; export * from './lib/simple-combo/public_api'; export * from './lib/date-picker/public_api'; -export * from './lib/dialog/dialog.component'; +export * from './lib/dialog/public_api'; export * from './lib/drop-down/public_api'; +export * from './lib/grids/public_api'; export * from './lib/grids/common/enums'; export * from './lib/grids/common/events'; export * from './lib/grids/filtering/excel-style/public_api'; +export * from './lib/grids/headers/public_api'; +export * from './lib/grids/selection/public_api'; +export * from './lib/grids/toolbar/public_api'; export * from './lib/grids/grid/public_api'; export * from './lib/grids/tree-grid/public_api'; export * from './lib/grids/hierarchical-grid/public_api'; -export * from './lib/grids/columns/templates.directive'; -export * from './lib/grids/columns/validators.directive'; -export * from './lib/grids/columns/column.component'; -export * from './lib/grids/columns/column-group.component'; -export * from './lib/grids/columns/column-layout.component'; -export * from './lib/grids/hierarchical-grid/hierarchical-grid.pipes'; +export * from './lib/grids/columns/public_api'; export * from './lib/icon/public_api'; export * from './lib/input-group/public_api'; export * from './lib/list/public_api'; export * from './lib/expansion-panel/public_api'; -export * from './lib/navbar/navbar.component'; +export * from './lib/navbar/public_api'; export * from './lib/navigation-drawer/public_api'; export * from './lib/paginator/public_api'; -export * from './lib/paginator/paginator-interfaces'; -export * from './lib/progressbar/progressbar.common'; -export * from './lib/progressbar/progressbar.component'; +export * from './lib/progressbar/public_api'; export * from './lib/radio/radio.component'; export * from './lib/slider/public_api'; export * from './lib/snackbar/snackbar.component'; export * from './lib/switch/switch.component'; -export * from './lib/tabs/public_api'; export * from './lib/tabs/bottom-nav/public_api'; export * from './lib/tabs/tabs/public_api'; -export * from './lib/time-picker/time-picker.directives'; -export * from './lib/time-picker/time-picker.component'; +export * from './lib/time-picker/public_api'; export * from './lib/toast/toast.component'; export * from './lib/select/public_api'; -export * from './lib/splitter/splitter-pane/splitter-pane.component'; -export * from './lib/splitter/splitter.component'; -export * from './lib/splitter/splitter.module'; +export * from './lib/splitter/public_api'; export * from './lib/stepper/public_api'; export * from './lib/date-range-picker/public_api'; export * from './lib/date-common/public_api'; - export * from './lib/grids/column-actions/column-actions-base.directive'; export * from './lib/grids/column-actions/column-actions.component'; export * from './lib/tree/public_api'; export * from './lib/grids/pivot-grid/public_api'; -export * from './lib/query-builder/query-builder.component' -export * from './lib/query-builder/query-builder-header.component' +export * from './lib/query-builder/public_api'; /** * Exporter services, classes, interfaces and enums @@ -125,7 +112,13 @@ export * from './lib/query-builder/query-builder-header.component' export * from './lib/services/public_api'; export * from './lib/core/dates'; export * from './lib/core/density'; +export { PickerInteractionMode } from './lib/date-common/types'; +export { GridSelectionRange } from './lib/grids/common/types'; export { CancelableEventArgs, CancelableBrowserEventArgs } from './lib/core/utils'; + +/** + * i18n + */ export { changei18n, getCurrentResourceStrings, IResourceStrings } from './lib/core/i18n/resources'; export { ICarouselResourceStrings } from './lib/core/i18n/carousel-resources'; export { IGridResourceStrings } from './lib/core/i18n/grid-resources'; @@ -141,7 +134,66 @@ export { IInputResourceStrings } from './lib/core/i18n/input-resources'; export { IChipResourceStrings } from './lib/core/i18n/chip-resources'; export { IActionStripResourceStrings } from './lib/core/i18n/action-strip-resources'; export { IQueryBuilderResourceStrings } from './lib/core/i18n/query-builder-resources'; -export { PickerInteractionMode } from './lib/date-common/types'; -export { SplitterType } from './lib/splitter/splitter.component'; -export { GridSelectionRange } from './lib/grids/common/types'; export { IBannerResourceStrings } from './lib/core/i18n/banner-resources'; + +/* IMPORTANT: The following are NgModules exported for backwards-compatibility before standalone components */ +export * from './lib/accordion/accordion.module'; +export * from './lib/action-strip/action-strip.module'; +export * from './lib/avatar/avatar.module'; +export * from './lib/badge/badge.module'; +export * from './lib/banner/banner.module'; +export * from './lib/buttonGroup/buttongroup.module'; +export * from './lib/calendar/calendar.module'; +export * from './lib/card/card.module'; +export * from './lib/carousel/carousel.module'; +export * from './lib/checkbox/checkbox.module'; +export * from './lib/chips/chips.module'; +export * from './lib/combo/combo.module'; +export * from './lib/date-picker/date-picker.module'; +export * from './lib/date-range-picker/date-range-picker.module'; +export * from './lib/dialog/dialog.module'; +export * from './lib/directives/autocomplete/autocomplete.module'; +export * from './lib/directives/button/button.module'; +export * from './lib/directives/date-time-editor/date-time-editor.module'; +export * from './lib/directives/divider/divider.module'; +export * from './lib/directives/drag-drop/drag-drop.module'; +export * from './lib/directives/filter/filter.module'; +export * from './lib/directives/focus/focus.module'; +export * from './lib/directives/focus-trap/focus-trap.module'; +export * from './lib/directives/for-of/for_of.module'; +export * from './lib/directives/form-control/form-control.module'; +export * from './lib/directives/layout/layout.module'; +export * from './lib/directives/mask/mask.module'; +export * from './lib/directives/radio/radio-group.module'; +export * from './lib/directives/ripple/ripple.module'; +export * from './lib/directives/scroll-inertia/scroll_inertia.module'; +export * from './lib/directives/text-highlight/text-highlight.module'; +export * from './lib/directives/text-selection/text-selection.module'; +export * from './lib/directives/toggle/toggle.module'; +export * from './lib/directives/tooltip/tooltip.module'; +export * from './lib/drop-down/drop-down.module'; +export * from './lib/expansion-panel/expansion-panel.module'; +export * from './lib/grids/grid/grid.module'; +export * from './lib/grids/tree-grid/tree-grid.module'; +export * from './lib/grids/hierarchical-grid/hierarchical-grid.module'; +export * from './lib/grids/pivot-grid/pivot-grid.module'; +export * from './lib/icon/icon.module'; +export * from './lib/input-group/input-group.module'; +export * from './lib/list/list.module'; +export * from './lib/navbar/navbar.module'; +export * from './lib/navigation-drawer/navigation-drawer.module'; +export * from './lib/paginator/paginator.module'; +export * from './lib/progressbar/progressbar.module'; +export * from './lib/query-builder/query-builder.module'; +export * from './lib/select/select.module'; +export * from './lib/simple-combo/simple-combo.module'; +export * from './lib/slider/slider.module'; +export * from './lib/snackbar/snackbar.module'; +export * from './lib/splitter/splitter.module'; +export * from './lib/stepper/stepper.module'; +export * from './lib/switch/switch.module'; +export * from './lib/tabs/bottom-nav/bottom-nav.module'; +export * from './lib/tabs/tabs/tabs.module'; +export * from './lib/time-picker/time-picker.module'; +export * from './lib/toast/toast.module'; +export * from './lib/tree/tree.module'; diff --git a/projects/igniteui-angular/tsconfig.lib.json b/projects/igniteui-angular/tsconfig.lib.json index 660a228617a..56b6e47ce1a 100644 --- a/projects/igniteui-angular/tsconfig.lib.json +++ b/projects/igniteui-angular/tsconfig.lib.json @@ -20,6 +20,7 @@ }, "angularCompilerOptions": { "skipTemplateCodegen": true, + "strictTemplates": true, "strictMetadataEmit": true, "fullTemplateTypeCheck": true, "strictInjectionParameters": true, diff --git a/src/app/accordion/accordion.sample.ts b/src/app/accordion/accordion.sample.ts index 63efd7b3df4..12af07267bb 100644 --- a/src/app/accordion/accordion.sample.ts +++ b/src/app/accordion/accordion.sample.ts @@ -1,10 +1,13 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxAccordionComponent, slideInLeft, slideOutRight } from 'igniteui-angular'; +import { FormsModule } from '@angular/forms'; +import { IGX_ACCORDION_DIRECTIVES, IgxAccordionComponent, IgxButtonDirective, IgxSwitchComponent, slideInLeft, slideOutRight } from 'igniteui-angular'; @Component({ selector: 'app-accordion-sample', templateUrl: 'accordion.sample.html', - styleUrls: ['accordion.sample.scss'] + styleUrls: ['accordion.sample.scss'], + standalone: true, + imports: [IgxSwitchComponent, FormsModule, IgxButtonDirective, IGX_ACCORDION_DIRECTIVES] }) export class AccordionSampleComponent { @ViewChild('accordion', { static: true }) public accordion: IgxAccordionComponent; diff --git a/src/app/action-strip/action-strip.sample.ts b/src/app/action-strip/action-strip.sample.ts index 74bb7d246d6..ec6b2d0ee09 100644 --- a/src/app/action-strip/action-strip.sample.ts +++ b/src/app/action-strip/action-strip.sample.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { DisplayDensity, IDataCloneStrategy, IGridEditEventArgs, IRowDataEventArgs } from 'igniteui-angular'; +import { NgIf, NgFor } from '@angular/common'; +import { DisplayDensity, IDataCloneStrategy, IGridEditEventArgs, IRowDataEventArgs, IgxActionStripComponent, IgxActionStripMenuItemDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxCellTemplateDirective, IgxColumnComponent, IgxGridComponent, IgxGridEditingActionsComponent, IgxGridPinningActionsComponent, IgxIconComponent } from 'igniteui-angular'; class MyClone implements IDataCloneStrategy { @@ -44,7 +45,22 @@ class User { @Component({ selector: 'app-action-strip-sample', styleUrls: ['action-strip.sample.scss'], - templateUrl: `action-strip.sample.html` + templateUrl: `action-strip.sample.html`, + standalone: true, + imports: [ + NgIf, + NgFor, + IgxButtonGroupComponent, + IgxButtonDirective, + IgxActionStripComponent, + IgxIconComponent, + IgxGridComponent, + IgxColumnComponent, + IgxGridPinningActionsComponent, + IgxCellTemplateDirective, + IgxGridEditingActionsComponent, + IgxActionStripMenuItemDirective + ] }) export class ActionStripSampleComponent implements OnInit { public result: string; diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 282e1129903..8029872c30c 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -318,6 +318,11 @@ export class AppComponent implements OnInit { icon: 'view_column', name: 'Grid Validation' }, + { + link: '/gridValidationTest', + icon: 'view_column', + name: 'Grid Validation Test' + }, { link: '/gridLocalization', icon: 'view_column', diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a5adc9ca56f..565acebdcd0 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -4,20 +4,9 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { NgModule } from '@angular/core'; -import { - IgxIconModule, IgxBottomNavModule, IgxGridModule, IgxOverlayService, - IgxDragDropModule, IgxDividerModule, IgxTreeGridModule, IgxHierarchicalGridModule, IgxInputGroupModule, - IgxIconService, DisplayDensityToken, DisplayDensity, - IgxDateTimeEditorModule, IgxDateRangePickerModule, IgxButtonModule, IgxActionStripModule, GridBaseAPIService, IgxButtonGroupModule, - IgxListModule, - IgxTextSelectionModule, - IgxPivotGridModule, - IgxQueryBuilderModule, - IgcFormsModule -} from 'igniteui-angular'; -import { SharedModule } from './shared/shared.module'; +import { IgxOverlayService, IgxIconService, DisplayDensityToken, DisplayDensity, IgxNavigationDrawerComponent, IgxNavDrawerItemDirective, IgxIconComponent, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective } from 'igniteui-angular'; -import { routing } from './routing'; +import { routing } from './app.routing'; import { ActionStripSampleComponent } from './action-strip/action-strip.sample'; import { AppComponent } from './app.component'; import { AvatarSampleComponent } from './avatar/avatar.sample'; @@ -133,7 +122,6 @@ import { HierarchicalGridRemoteVirtualizationComponent } from './hierarchical-grid-remote-virtualization/hierarchical-grid-remote-virtualization'; import { HierarchicalRemoteService } from './hierarchical-grid-remote-virtualization/hierarchical-remote.service'; -import { IgxGridHierarchicalPipe } from 'igniteui-angular'; import { GridVirtualizationScrollSampleComponent } from './grid-remote-virtualization-with-scroll/grid-remote-virtualization-scroll.sample'; import { GridNestedPropsSampleComponent } from './grid-nested-props/grid-nested-props.sample'; import { GridColumnActionsSampleComponent } from './grid-column-actions/grid-column-actions.sample'; @@ -147,7 +135,7 @@ import { MainComponent } from './grid-finjs/main.component'; import { ControllerComponent } from './grid-finjs/controllers.component'; import { CommonModule } from '@angular/common'; import { GridEventsComponent } from './grid-events/grid-events.component'; -import { IgxPickersCommonModule } from 'projects/igniteui-angular/src/lib/date-common/picker-icons.common'; + import { GridRowAPISampleComponent } from './grid-row-api/grid-row-api.sample'; import { GridUpdatesComponent } from './grid-updates-test/grid-updates.component'; import { TestInterceptorClass } from './interceptor.service'; @@ -172,7 +160,6 @@ import { GridExportComponent } from './grid-export/grid-export.sample'; const components = [ AccordionSampleComponent, ActionStripSampleComponent, - AppComponent, AutocompletePipeContains, AutocompleteGroupPipeContains, AutocompleteSampleComponent, @@ -318,7 +305,7 @@ const components = [ ]; @NgModule({ - declarations: components, + declarations: [AppComponent], imports: [ BrowserModule, BrowserAnimationsModule, @@ -327,35 +314,20 @@ const components = [ CommonModule, ReactiveFormsModule, HttpClientModule, - IgxBottomNavModule, - IgxIconModule, - IgxInputGroupModule, - IgxActionStripModule, - IgxGridModule, - IgxTreeGridModule, - IgxHierarchicalGridModule, - IgxDragDropModule, - IgxDateRangePickerModule, - IgxPickersCommonModule, - IgxDividerModule, - IgxButtonGroupModule, - IgxListModule, - IgxTextSelectionModule, - SharedModule, + PageHeaderComponent, + IgxNavigationDrawerComponent, + IgxNavDrawerItemDirective, + IgxNavDrawerMiniTemplateDirective, + IgxNavDrawerTemplateDirective, + IgxIconComponent, routing, HammerModule, - IgxDateTimeEditorModule, - IgxButtonModule, - IgxPivotGridModule, - IgxQueryBuilderModule, - IgcFormsModule + ...components ], providers: [ LocalService, RemoteService, HierarchicalRemoteService, - GridBaseAPIService, - IgxGridHierarchicalPipe, IgxIconService, IgxOverlayService, { provide: DisplayDensityToken, useFactory: () => ({ displayDensity: DisplayDensity.comfortable }) }, diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index 21d38ae48fe..3d299eec004 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -6,8 +6,11 @@ import { ButtonSampleComponent } from './button/button.sample'; import { CalendarSampleComponent } from './calendar/calendar.sample'; import { CardSampleComponent } from './card/card.sample'; import { CarouselSampleComponent } from './carousel/carousel.sample'; +import { ChipsSampleComponent } from './chips/chips.sample'; +import { ExpansionPanelSampleComponent } from './expansion-panel/expansion-panel-sample'; import { DatePickerSampleComponent } from './date-picker/date-picker.sample'; import { DialogSampleComponent } from './dialog/dialog.sample'; +import { DragDropSampleComponent } from './drag-drop/drag-drop.sample'; import { MaskSampleComponent } from './mask/mask.sample'; import { IconSampleComponent } from './icon/icon.sample'; import { InputSampleComponent } from './input/input.sample'; @@ -21,6 +24,7 @@ import { NavdrawerSampleComponent } from './navdrawer/navdrawer.sample'; import { ProgressbarSampleComponent } from './progressbar/progressbar.sample'; import { RippleSampleComponent } from './ripple/ripple.sample'; import { SliderSampleComponent } from './slider/slider.sample'; +import { SplitterSampleComponent } from './splitter/splitter.sample'; import { SnackbarSampleComponent } from './snackbar/snackbar.sample'; import { ColorsSampleComponent } from './styleguide/colors/color.sample'; import { ShadowsSampleComponent } from './styleguide/shadows/shadows.sample'; @@ -42,19 +46,32 @@ import { import { TimePickerSampleComponent } from './time-picker/time-picker.sample'; import { ToastSampleComponent } from './toast/toast.sample'; import { VirtualForSampleComponent } from './virtual-for-directive/virtual-for.sample'; +import { GridCellEditingComponent } from './grid-cellEditing/grid-cellEditing.component'; import { GridSampleComponent } from './grid/grid.sample'; +import { GridColumnMovingSampleComponent } from './grid-column-moving/grid-column-moving.sample'; +import { GridColumnSelectionSampleComponent } from './grid-column-selection/grid-column-selection.sample'; import { GridColumnPinningSampleComponent } from './grid-column-pinning/grid-column-pinning.sample'; import { GridColumnResizingSampleComponent } from './grid-column-resizing/grid-column-resizing.sample'; +import { GridGroupBySampleComponent } from './grid-groupby/grid-groupby.sample'; import { GridSummaryComponent } from './grid-summaries/grid-summaries.sample'; import { GridPerformanceSampleComponent } from './grid-performance/grid-performance.sample'; import { GridRemotePagingSampleComponent } from './grid-remote-paging/grid-remote-paging.sample'; import { GridSelectionComponent } from './grid-selection/grid-selection.sample'; import { GridRowDraggableComponent } from './grid-row-draggable/grid-row-draggable.sample'; +import { GridToolbarSampleComponent } from './grid-toolbar/grid-toolbar.sample'; +import { GridToolbarCustomSampleComponent } from './grid-toolbar/grid-toolbar-custom.sample'; import { GridVirtualizationSampleComponent } from './grid-remote-virtualization/grid-remote-virtualization.sample'; import { ButtonGroupSampleComponent } from './buttonGroup/buttonGroup.sample'; -import { GridGroupBySampleComponent } from './grid-groupby/grid-groupby.sample'; +import { GridColumnGroupsSampleComponent } from './grid-column-groups/grid-column-groups.sample'; +import { DropDownSampleComponent } from './drop-down/drop-down.sample'; +import { DisplayDensityDropDownComponent } from './drop-down/display-density/display-density.sample'; +import { DropDownVirtualComponent } from './drop-down/drop-down-virtual/drop-down-virtual.component'; +import { ComboSampleComponent } from './combo/combo.sample'; +import { OverlaySampleComponent } from './overlay/overlay.sample'; +import { OverlayAnimationSampleComponent } from './overlay/overlay-animation.sample'; +import { OverlayPresetsSampleComponent } from './overlay/overlay-presets.sample'; +import { RadioSampleComponent } from './radio/radio.sample'; import { TooltipSampleComponent } from './tooltip/tooltip.sample'; -import { ExpansionPanelSampleComponent } from './expansion-panel/expansion-panel-sample'; import { GridCellStylingSampleComponent } from './gird-cell-styling/grid-cell-styling.sample'; import { GridRowEditSampleComponent } from './grid-row-edit/grid-row-edit-sample.component'; import { TreeGridSampleComponent } from './tree-grid/tree-grid.sample'; @@ -65,15 +82,28 @@ import { HierarchicalGridUpdatingSampleComponent } from './hierarchical-grid-upd import { GridColumnPercentageWidthsSampleComponent } from './grid-percentage-columns/grid-percantge-widths.sample'; import { BannerSampleComponent } from './banner/banner.sample'; import { CalendarViewsSampleComponent } from './calendar-views/calendar-views.sample'; -import { AutocompleteSampleComponent } from './autocomplete/autocomplete.sample'; import { SelectSampleComponent } from './select/select.sample'; +import { GridSearchComponent } from './grid-search/grid-search.sample'; +import { AutocompleteSampleComponent } from './autocomplete/autocomplete.sample'; +import { GridMRLSampleComponent } from './grid-multi-row-layout/grid-mrl.sample'; import { TreeGridLoadOnDemandSampleComponent } from './tree-grid-load-on-demand/tree-grid-load-on-demand.sample'; +import { GridFilterTemplateSampleComponent } from './grid-filter-template/grid-filter-template.sample'; +import { GridMRLConfigSampleComponent } from './grid-multi-row-layout-config/grid-mrl-config.sample'; +import { GridMRLCustomNavigationSampleComponent } from './grid-mrl-custom-navigation/grid-mrl-custom-navigation'; +import { GridClipboardSampleComponent } from './grid-clipboard/grid-clipboard.sample'; import { GridAutoSizeSampleComponent } from './grid-auto-size/grid-auto-size.sample'; +import { GridFlexSampleComponent } from './grid-flex-layout/grid-flex.sample'; +import { GridEsfLoadOnDemandComponent } from './grid-esf-load-on-demand/grid-esf-load-on-demand.component'; +import { GridFilteringComponent } from './grid-filtering/grid-filtering.sample'; +import { GridExternalFilteringComponent } from './grid-external-filtering/grid-external-filtering.sample'; import { GridSaveStateComponent } from './grid-state/grid-state.component'; import { AboutComponent } from './grid-state/about.component'; import { GridMasterDetailSampleComponent } from './grid-master-detail/grid-master-detail.sample'; import { DateTimeEditorSampleComponent } from './date-time-editor/date-time-editor.sample'; import { GridRowPinningSampleComponent } from './grid-row-pinning/grid-row-pinning.sample'; +import { GridRowReorderComponent } from './grid-row-reorder/grid-row-reorder.sample'; +import { ReactiveFormSampleComponent } from './reactive-from/reactive-form-sample.component'; +import { DateRangeSampleComponent } from './date-range/date-range.sample'; import { ActionStripSampleComponent } from './action-strip/action-strip.sample'; import { HierarchicalGridRemoteVirtualizationComponent @@ -88,9 +118,9 @@ import { GridFormattingComponent } from './grid-formatting/grid-formatting.compo import { MainComponent } from './grid-finjs/main.component'; import { GridEventsComponent } from './grid-events/grid-events.component'; import { GridRowAPISampleComponent } from './grid-row-api/grid-row-api.sample'; -import { GridRowReorderComponent } from './grid-row-reorder/grid-row-reorder.sample'; import { GridUpdatesComponent } from './grid-updates-test/grid-updates.component'; import { TreeSampleComponent } from './tree/tree.sample'; +import { GridColumnTypesSampleComponent } from './grid-column-types/grid-column-types.sample'; import { AccordionSampleComponent } from './accordion/accordion.sample'; import { GridLocalizationSampleComponent } from './grid-localization/grid-localization.sample'; import { TreeGridGroupBySampleComponent } from './tree-grid-groupby/tree-grid-groupby.sample'; @@ -99,10 +129,13 @@ import { GridCellAPISampleComponent } from './grid-cell-api/grid-cell-api.sample import { PivotGridSampleComponent } from './pivot-grid/pivot-grid.sample'; import { PivotGridHierarchySampleComponent } from './pivot-grid-hierarchy/pivot-grid-hierarchy.sample'; import { PivotGridNoopSampleComponent } from './pivot-grid-noop/pivot-grid-noop.sample'; -import { IgxStepperSampleComponent } from './stepper/stepper.sample'; +import { IgxStepperSampleComponent as StepperSampleComponent } from './stepper/stepper.sample'; +import { RatingSampleComponent } from './rating/rating.sample'; import { RangeSliderComponent } from './slider/range-slider/range-slider.component'; +import { QueryBuilderComponent } from './query-builder/query-builder.sample'; import { PivotGridStateSampleComponent } from './pivot-grid-state/pivot-grid-state.sample'; import { GridValidationSampleComponent } from './grid-validation/grid-validation.sample.component'; +import { GridExportComponent } from './grid-export/grid-export.sample'; const appRoutes: Routes = [ { @@ -158,6 +191,18 @@ const appRoutes: Routes = [ path: 'carousel', component: CarouselSampleComponent }, + { + path: 'combo', + component: ComboSampleComponent + }, + { + path: 'expansionPanel', + component: ExpansionPanelSampleComponent + }, + { + path: 'chip', + component: ChipsSampleComponent + }, { path: 'datePicker', component: DatePickerSampleComponent @@ -167,13 +212,29 @@ const appRoutes: Routes = [ component: DialogSampleComponent }, { - path: 'expansion-panel', - component: ExpansionPanelSampleComponent + path: 'dropDown', + component: DropDownSampleComponent + }, + { + path: 'dropDown-density', + component: DisplayDensityDropDownComponent + }, + { + path: 'virtual-dropdown', + component: DropDownVirtualComponent + }, + { + path: 'drag-drop', + component: DragDropSampleComponent }, { path: 'icon', component: IconSampleComponent }, + { + path: 'lazyIconModule', + loadChildren: () => import('./icon/LazyModule/lazyIcon.module').then(m => m.LazyIconModule) + }, { path: 'inputs', component: InputSampleComponent @@ -214,10 +275,34 @@ const appRoutes: Routes = [ path: 'navdrawer', component: NavdrawerSampleComponent }, + { + path: 'overlay', + component: OverlaySampleComponent + }, + { + path: 'overlay-presets', + component: OverlayPresetsSampleComponent + }, + { + path: 'overlay-animation', + component: OverlayAnimationSampleComponent + }, { path: 'progressbar', component: ProgressbarSampleComponent }, + { + path: 'radio', + component: RadioSampleComponent + }, + { + path: 'rating', + component: RatingSampleComponent + }, + { + path: 'reactive', + component: ReactiveFormSampleComponent + }, { path: 'ripple', component: RippleSampleComponent @@ -230,6 +315,10 @@ const appRoutes: Routes = [ path: 'range-slider', component: RangeSliderComponent }, + { + path: 'splitter', + component: SplitterSampleComponent + }, { path: 'snackbar', component: SnackbarSampleComponent @@ -291,6 +380,14 @@ const appRoutes: Routes = [ path: 'virtualForDirective', component: VirtualForSampleComponent }, + { + path: 'gridCellEditing', + component: GridCellEditingComponent + }, + { + path: 'gridConditionalCellStyling', + component: GridCellStylingSampleComponent + }, { path: 'grid', component: GridSampleComponent @@ -307,6 +404,30 @@ const appRoutes: Routes = [ path: 'treeGridAddRow', component: TreeGridAddRowSampleComponent }, + { + path: 'gridFilterTemplate', + component: GridFilterTemplateSampleComponent + }, + { + path: 'gridEsfLoadOnDemand', + component: GridEsfLoadOnDemandComponent + }, + { + path: 'gridClipboard', + component: GridClipboardSampleComponent + }, + { + path: 'gridColumnMoving', + component: GridColumnMovingSampleComponent + }, + { + path: 'gridColumnTypes', + component: GridColumnTypesSampleComponent + }, + { + path: 'gridColumnSelecting', + component: GridColumnSelectionSampleComponent + }, { path: 'gridColumnPinning', component: GridColumnPinningSampleComponent @@ -323,21 +444,17 @@ const appRoutes: Routes = [ path: 'gridRowAPI', component: GridRowAPISampleComponent }, - { - path: 'gridRowReorder', - component: GridRowReorderComponent - }, { path: 'gridCellAPI', component: GridCellAPISampleComponent }, { - path: 'gridColumnResizing', - component: GridColumnResizingSampleComponent + path: 'gridRemotePaging', + component: GridRemotePagingSampleComponent }, { - path: 'gridConditionalCellStyling', - component: GridCellStylingSampleComponent + path: 'gridColumnResizing', + component: GridColumnResizingSampleComponent }, { path: 'gridSummary', @@ -347,10 +464,6 @@ const appRoutes: Routes = [ path: 'gridPerformance', component: GridPerformanceSampleComponent }, - { - path: 'gridRemotePaging', - component: GridRemotePagingSampleComponent - }, { path: 'gridSelection', component: GridSelectionComponent @@ -360,21 +473,41 @@ const appRoutes: Routes = [ component: GridRowDraggableComponent }, { - path: 'gridRemoteVirtualization', - component: GridVirtualizationSampleComponent + path: 'gridToolbar', + component: GridToolbarSampleComponent }, { - path: 'gridRowEdit', - component: GridRowEditSampleComponent + path: 'gridToolbarCustom', + component: GridToolbarCustomSampleComponent }, { - path: 'gridValidation', - component: GridValidationSampleComponent + path: 'gridRemoteVirtualization', + component: GridVirtualizationSampleComponent + }, + { + path: 'gridExport', + component: GridExportComponent }, { path: 'buttonGroup', component: ButtonGroupSampleComponent }, + { + path: 'gridColumnGroups', + component: GridColumnGroupsSampleComponent + }, + { + path: 'gridMRL', + component: GridMRLSampleComponent + }, + { + path: 'gridMRLConfig', + component: GridMRLConfigSampleComponent + }, + { + path: 'gridMRLCustomNav', + component: GridMRLCustomNavigationSampleComponent + }, { path: 'gridGroupBy', component: GridGroupBySampleComponent @@ -388,9 +521,36 @@ const appRoutes: Routes = [ component: GridLocalizationSampleComponent }, { + path: 'gridRowEdit', + component: GridRowEditSampleComponent + }, + { + path: 'gridRowReorder', + component: GridRowReorderComponent + }, + { + path: 'gridValidation', + component: GridValidationSampleComponent + }, + { + path: 'gridScrollVirtualization', + component: GridVirtualizationScrollSampleComponent + }, + { + path: 'gridFormatting', + component: GridFormattingComponent + }, + { + path: 'gridFinJS', + component: MainComponent + }, { path: 'tree', component: TreeSampleComponent }, + { + path: 'gridUpdates', + component: GridUpdatesComponent + }, { path: 'treeGrid', component: TreeGridSampleComponent @@ -431,6 +591,22 @@ const appRoutes: Routes = [ path: 'gridAutoSize', component: GridAutoSizeSampleComponent }, + { + path: 'gridFlex', + component: GridFlexSampleComponent + }, + { + path: 'gridSearch', + component: GridSearchComponent + }, + { + path: 'gridFiltering', + component: GridFilteringComponent + }, + { + path: 'gridExternalFiltering', + component: GridExternalFilteringComponent + }, { path: 'gridState', component: GridSaveStateComponent @@ -440,29 +616,17 @@ const appRoutes: Routes = [ component: AboutComponent }, { - path: 'gridScrollVirtualization', - component: GridVirtualizationScrollSampleComponent + path: 'dateRange', + component: DateRangeSampleComponent }, { path: 'grid-nested-props', component: GridNestedPropsSampleComponent }, - { - path: 'gridFormatting', - component: GridFormattingComponent - }, - { - path: 'gridFinJS', - component: MainComponent - }, { path: 'gridEvents', component: GridEventsComponent }, - { - path: 'gridUpdates', - component: GridUpdatesComponent - }, { path: 'pagination', component: PaginationSampleComponent @@ -472,21 +636,25 @@ const appRoutes: Routes = [ component: PivotGridSampleComponent }, { - path: 'pivotHierarchy', + path: 'pivot-hierarchy', component: PivotGridHierarchySampleComponent }, { - path: 'pivotState', + path: 'pivot-state', component: PivotGridStateSampleComponent }, - { + { path: 'pivot-noop', component: PivotGridNoopSampleComponent }, + { + path: 'query-builder', + component: QueryBuilderComponent + }, { path: 'stepper', - component: IgxStepperSampleComponent + component: StepperSampleComponent } ]; -export const routing = RouterModule.forRoot(appRoutes); +export const routing = RouterModule.forRoot(appRoutes, {}); diff --git a/src/app/autocomplete/autocomplete.sample.ts b/src/app/autocomplete/autocomplete.sample.ts index c73b957b69b..3b94607c39c 100644 --- a/src/app/autocomplete/autocomplete.sample.ts +++ b/src/app/autocomplete/autocomplete.sample.ts @@ -1,13 +1,50 @@ import { Component, PipeTransform, Pipe, ViewChild } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormControl, Validators, UntypedFormGroup } from '@angular/forms'; +import { NgFor } from '@angular/common'; +import { UntypedFormBuilder, UntypedFormControl, Validators, UntypedFormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms'; + import { worldInfo, attractions } from './data'; -import { IgxDialogComponent } from 'igniteui-angular'; +import { IgxAutocompleteDirective, IgxButtonDirective, IgxDialogComponent, IgxDropDownComponent, IgxDropDownGroupComponent, IgxDropDownItemComponent, IgxIconComponent, IgxInputDirective, IgxInputGroupComponent, IgxPrefixDirective, IgxSwitchComponent } from 'igniteui-angular'; const ATTRACTIONS_CUSTOM_WIDTH = '300px'; + +@Pipe({ + name: 'contains', + standalone: true +}) +export class AutocompletePipeContains implements PipeTransform { + public transform = (items: any[], term = '') => filterContains(items, term); +} + +@Pipe({ + name: 'groupContains', + standalone: true +}) +export class AutocompleteGroupPipeContains implements PipeTransform { + public transform = (continents: any[], term = '') => filterGroupContains(continents, term); +} @Component({ selector: 'app-autocomplete-sample', styleUrls: ['autocomplete.sample.scss'], - templateUrl: `autocomplete.sample.html` + templateUrl: `autocomplete.sample.html`, + standalone: true, + imports: [ + NgFor, + FormsModule, + ReactiveFormsModule, + IgxInputGroupComponent, + IgxPrefixDirective, + IgxIconComponent, + IgxInputDirective, + IgxAutocompleteDirective, + IgxDropDownComponent, + IgxDropDownGroupComponent, + IgxDropDownItemComponent, + IgxDialogComponent, + IgxButtonDirective, + IgxSwitchComponent, + AutocompletePipeContains, + AutocompleteGroupPipeContains + ] }) export class AutocompleteSampleComponent { @ViewChild('alert', { read: IgxDialogComponent, static: true }) @@ -44,16 +81,6 @@ export class AutocompleteSampleComponent { } } -@Pipe({ name: 'contains' }) -export class AutocompletePipeContains implements PipeTransform { - public transform = (items: any[], term = '') => filterContains(items, term); -} - -@Pipe({ name: 'groupContains' }) -export class AutocompleteGroupPipeContains implements PipeTransform { - public transform = (continents: any[], term = '') => filterGroupContains(continents, term); -} - const filterContains = (items: any[], term: string, exactMatch = false): any[] => items.filter((item) => { const itm = (item.name ? item.name : item).toString().toLowerCase(); const trm = term.toString().toLowerCase(); diff --git a/src/app/avatar/avatar.sample.ts b/src/app/avatar/avatar.sample.ts index ffd4b41a279..2772a19f967 100644 --- a/src/app/avatar/avatar.sample.ts +++ b/src/app/avatar/avatar.sample.ts @@ -1,9 +1,12 @@ import { Component } from '@angular/core'; +import { IgxAvatarComponent, IgxDragDirective } from 'igniteui-angular'; @Component({ selector: 'app-avatar-sample', styleUrls: ['avatar.sample.scss'], - templateUrl: `avatar.sample.html` + templateUrl: `avatar.sample.html`, + standalone: true, + imports: [IgxAvatarComponent, IgxDragDirective] }) export class AvatarSampleComponent { } diff --git a/src/app/badge/badge.sample.ts b/src/app/badge/badge.sample.ts index 720576ab2e1..476783d52e6 100644 --- a/src/app/badge/badge.sample.ts +++ b/src/app/badge/badge.sample.ts @@ -1,8 +1,11 @@ import { Component } from '@angular/core'; +import { IgxAvatarComponent, IgxBadgeComponent } from 'igniteui-angular'; @Component({ selector: 'app-badge-sample', styleUrls: ['badge.sample.scss'], - templateUrl: 'badge.sample.html' + templateUrl: 'badge.sample.html', + standalone: true, + imports: [IgxAvatarComponent, IgxBadgeComponent] }) export class BadgeSampleComponent {} diff --git a/src/app/banner/banner.sample.ts b/src/app/banner/banner.sample.ts index 6867ed8b340..e128b74cdff 100644 --- a/src/app/banner/banner.sample.ts +++ b/src/app/banner/banner.sample.ts @@ -1,11 +1,13 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxBannerComponent, growVerIn, growVerOut } from 'igniteui-angular'; import { useAnimation } from '@angular/animations'; +import { IgxBannerActionsDirective, IgxBannerComponent, IgxButtonDirective, IgxFlexDirective, IgxIconComponent, IgxLayoutDirective, IgxRippleDirective, growVerIn, growVerOut } from 'igniteui-angular'; @Component({ selector: 'app-banner-sample', templateUrl: `banner.sample.html`, - styleUrls: [`banner.sample.scss`] + styleUrls: [`banner.sample.scss`], + standalone: true, + imports: [IgxBannerComponent, IgxIconComponent, IgxBannerActionsDirective, IgxButtonDirective, IgxRippleDirective, IgxLayoutDirective, IgxFlexDirective] }) export class BannerSampleComponent { @ViewChild('bannerNoSafeConnection', { static: true }) diff --git a/src/app/bottomnav-routing/bottomnav-routing-views.sample.ts b/src/app/bottomnav-routing/bottomnav-routing-views.sample.ts index e81410c0233..4e5be49df4a 100644 --- a/src/app/bottomnav-routing/bottomnav-routing-views.sample.ts +++ b/src/app/bottomnav-routing/bottomnav-routing-views.sample.ts @@ -1,4 +1,6 @@ import { Component } from '@angular/core'; +import { NgFor } from '@angular/common'; +import { IgxAvatarComponent, IgxIconComponent, IgxListActionDirective, IgxListComponent, IgxListItemComponent, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListThumbnailDirective, IgxRippleDirective } from 'igniteui-angular'; @Component({ template: ` @@ -11,7 +13,20 @@ import { Component } from '@angular/core'; phone - ` + `, + standalone: true, + imports: [ + NgFor, + IgxListComponent, + IgxListItemComponent, + IgxRippleDirective, + IgxAvatarComponent, + IgxListThumbnailDirective, + IgxListLineTitleDirective, + IgxListLineSubTitleDirective, + IgxIconComponent, + IgxListActionDirective + ] }) export class BottomNavRoutingView1Component { @@ -57,7 +72,8 @@ export class BottomNavRoutingView1Component { a magna euismod volutpat id in mi. Etiam a nunc ut tellus dictum porta. Donec in ligula a arcu sollicitudin finibus. Vivamus id lorem pulvinar, accumsan justo vitae, vehicula diam. Mauris vel quam at velit venenatis vulputate in quis nisl.

    - ` + `, + standalone: true }) export class BottomNavRoutingView2Component { } @@ -69,7 +85,8 @@ export class BottomNavRoutingView2Component { consectetur accumsan suscipit. Praesent rutrum tellus blandit bibendum cursus. Vestibulum urna arcu, bibendum nec molestie ac, varius congue massa. Mauris porttitor viverra lacus. Donec efficitur purus id urna dapibus, vitae pharetra orci pellentesque.

    - ` + `, + standalone: true }) export class BottomNavRoutingView3Component { } diff --git a/src/app/bottomnav-routing/bottomnav-routing.sample.ts b/src/app/bottomnav-routing/bottomnav-routing.sample.ts index c053c5bbc00..ed5819ef509 100644 --- a/src/app/bottomnav-routing/bottomnav-routing.sample.ts +++ b/src/app/bottomnav-routing/bottomnav-routing.sample.ts @@ -1,9 +1,13 @@ import { Component } from '@angular/core'; +import { RouterOutlet, RouterLinkActive, RouterLink } from '@angular/router'; +import { IgxBottomNavComponent, IgxBottomNavHeaderComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, IgxBottomNavItemComponent, IgxIconComponent } from 'igniteui-angular'; @Component({ -selector: 'app-bottomnav-routing-sample', -styleUrls: ['bottomnav-routing.sample.scss'], -templateUrl: 'bottomnav-routing.sample.html' + selector: 'app-bottomnav-routing-sample', + styleUrls: ['bottomnav-routing.sample.scss'], + templateUrl: 'bottomnav-routing.sample.html', + standalone: true, + imports: [RouterOutlet, IgxBottomNavComponent, IgxBottomNavItemComponent, RouterLinkActive, IgxBottomNavHeaderComponent, RouterLink, IgxIconComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective] }) export class BottomNavRoutingSampleComponent { } diff --git a/src/app/bottomnav/bottomnav.sample.ts b/src/app/bottomnav/bottomnav.sample.ts index 39d0395c223..0f55beba397 100644 --- a/src/app/bottomnav/bottomnav.sample.ts +++ b/src/app/bottomnav/bottomnav.sample.ts @@ -1,14 +1,37 @@ -import { AfterViewInit, - Component, - ElementRef, - QueryList, - Renderer2, - ViewChildren } from '@angular/core'; +import { + AfterViewInit, + Component, + ElementRef, + QueryList, + Renderer2, + ViewChildren +} from '@angular/core'; +import { NgFor } from '@angular/common'; +import { IgxAvatarComponent, IgxBottomNavComponent, IgxBottomNavContentComponent, IgxBottomNavHeaderComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, IgxBottomNavItemComponent, IgxIconComponent, IgxListActionDirective, IgxListComponent, IgxListItemComponent, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListThumbnailDirective, IgxRippleDirective } from 'igniteui-angular'; @Component({ selector: 'app-bottomnav-sample', styleUrls: ['bottomnav.sample.scss'], - templateUrl: 'bottomnav.sample.html' + templateUrl: 'bottomnav.sample.html', + standalone: true, + imports: [ + NgFor, + IgxBottomNavComponent, + IgxBottomNavItemComponent, + IgxBottomNavHeaderComponent, + IgxIconComponent, + IgxBottomNavHeaderIconDirective, + IgxBottomNavHeaderLabelDirective, + IgxBottomNavContentComponent, + IgxListComponent, + IgxListItemComponent, + IgxRippleDirective, + IgxAvatarComponent, + IgxListThumbnailDirective, + IgxListLineTitleDirective, + IgxListLineSubTitleDirective, + IgxListActionDirective + ] }) export class BottomNavSampleComponent implements AfterViewInit { @ViewChildren('tabbarEl') @@ -79,7 +102,8 @@ export class BottomNavSampleComponent implements AfterViewInit { @Component({ selector: 'app-custom-content', - templateUrl: 'template.html' + templateUrl: 'template.html', + standalone: true }) export class CustomContentComponent { diff --git a/src/app/button/button.sample.ts b/src/app/button/button.sample.ts index f8994e7ba40..da6ab5f45c3 100644 --- a/src/app/button/button.sample.ts +++ b/src/app/button/button.sample.ts @@ -1,11 +1,13 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import { DisplayDensity } from 'igniteui-angular'; +import { DisplayDensity, IgxButtonDirective, IgxButtonGroupComponent, IgxIconComponent } from 'igniteui-angular'; @Component({ selector: 'app-button-sample', styleUrls: ['button.sample.scss'], templateUrl: 'button.sample.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone: true, + imports: [IgxButtonDirective, IgxIconComponent, IgxButtonGroupComponent] }) export class ButtonSampleComponent implements OnInit { public density: DisplayDensity = 'comfortable'; diff --git a/src/app/buttonGroup/buttonGroup.sample.ts b/src/app/buttonGroup/buttonGroup.sample.ts index a98214f1497..2d8941d462b 100644 --- a/src/app/buttonGroup/buttonGroup.sample.ts +++ b/src/app/buttonGroup/buttonGroup.sample.ts @@ -1,5 +1,7 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { ButtonGroupAlignment, IgxButtonGroupComponent } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; +import { ButtonGroupAlignment, IgxButtonDirective, IgxButtonGroupComponent, IgxIconComponent, IgxLayoutDirective } from 'igniteui-angular'; + interface IButton { ripple?: string; @@ -36,7 +38,9 @@ class Button { @Component({ selector: 'app-buttongroup-sample', - templateUrl: 'buttonGroup.sample.html' + templateUrl: 'buttonGroup.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxIconComponent, NgFor, IgxLayoutDirective] }) export class ButtonGroupSampleComponent implements OnInit { diff --git a/src/app/calendar-views/calendar-views.sample.ts b/src/app/calendar-views/calendar-views.sample.ts index 543e32756b4..f2212c5f3e5 100644 --- a/src/app/calendar-views/calendar-views.sample.ts +++ b/src/app/calendar-views/calendar-views.sample.ts @@ -1,18 +1,26 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { - IgxCalendarComponent, - DateRangeType, - IgxDaysViewComponent -} from 'igniteui-angular'; +import { FormsModule } from '@angular/forms'; +import { DateRangeType, IgxButtonDirective, IgxCardComponent, IgxDaysViewComponent, IgxMonthsViewComponent, IgxRippleDirective, IgxYearsViewComponent } from 'igniteui-angular'; + @Component({ selector: 'app-calendar-views-sample', templateUrl: 'calendar-views.sample.html', - styleUrls: ['calendar-views.sample.scss'] + styleUrls: ['calendar-views.sample.scss'], + standalone: true, + imports: [ + FormsModule, + IgxCardComponent, + IgxMonthsViewComponent, + IgxYearsViewComponent, + IgxDaysViewComponent, + IgxButtonDirective, + IgxRippleDirective + ] }) export class CalendarViewsSampleComponent implements OnInit { - @ViewChild('calendar', { static: true }) - private calendar: IgxCalendarComponent; + // @ViewChild('calendar', { static: true }) + // private calendar: IgxCalendarComponent; @ViewChild('daysView', { static: true }) private daysView: IgxDaysViewComponent; @@ -78,15 +86,15 @@ export class CalendarViewsSampleComponent implements OnInit { console.log(`selected date: ${date}`); } - public select() { - // this.calendar.selectDate(new Date(2019, 1, 13)); - this.calendar.selectDate([new Date(2019, 1, 13), new Date(2019, 1, 14)]); - } + // public select() { + // // this.calendar.selectDate(new Date(2019, 1, 13)); + // this.calendar.selectDate([new Date(2019, 1, 13), new Date(2019, 1, 14)]); + // } - public deselect() { - // this.calendar.deselectDate(new Date(2019, 1, 13)); - this.calendar.deselectDate([new Date(2019, 1, 7), new Date(2019, 1, 8), new Date(2019, 1, 13), new Date(2019, 1, 14)]); - } + // public deselect() { + // // this.calendar.deselectDate(new Date(2019, 1, 13)); + // this.calendar.deselectDate([new Date(2019, 1, 7), new Date(2019, 1, 8), new Date(2019, 1, 13), new Date(2019, 1, 14)]); + // } public selectDV() { this.daysView.selectDate(new Date(2019, 1, 13)); diff --git a/src/app/calendar/calendar.sample.ts b/src/app/calendar/calendar.sample.ts index f57627182a7..8586b683ac5 100644 --- a/src/app/calendar/calendar.sample.ts +++ b/src/app/calendar/calendar.sample.ts @@ -1,18 +1,21 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { IgxCalendarComponent, IgxDialogComponent, DateRangeType, IViewDateChangeEventArgs } from 'igniteui-angular'; +import { DateRangeType, IgxButtonDirective, IgxCalendarComponent, IgxCardComponent, IgxRippleDirective, IViewDateChangeEventArgs } from 'igniteui-angular'; + @Component({ selector: 'app-calendar-sample', templateUrl: 'calendar.sample.html', - styleUrls: ['calendar.sample.scss'] + styleUrls: ['calendar.sample.scss'], + standalone: true, + imports: [IgxButtonDirective, IgxRippleDirective, IgxCardComponent, IgxCalendarComponent] }) export class CalendarSampleComponent implements OnInit { @ViewChild('calendar', { static: true }) private calendar: IgxCalendarComponent; @ViewChild('calendar1', { static: true }) private calendar1: IgxCalendarComponent; - @ViewChild('alert', { static: true }) - private dialog: IgxDialogComponent; + // @ViewChild('alert', { static: true }) + // private dialog: IgxDialogComponent; public range = []; public today = new Date(); @@ -43,12 +46,12 @@ export class CalendarSampleComponent implements OnInit { this.calendar1.selectDate(item); }); - if (this.range.length === 0) { - this.dialog.message = 'Select dates from the Calendar first.'; - } else { - this.dialog.message = 'PTO days submitted.'; - } - this.dialog.open(); + // if (this.range.length === 0) { + // this.dialog.message = 'Select dates from the Calendar first.'; + // } else { + // this.dialog.message = 'PTO days submitted.'; + // } + // this.dialog.open(); } public showHide() { @@ -56,7 +59,7 @@ export class CalendarSampleComponent implements OnInit { } public onSelection(event: Date | Date []) { - console.log(`Selected date\s:${event}`); + console.log(`Selected dates: ${event}`); } public viewDateChanged(event: IViewDateChangeEventArgs) { diff --git a/src/app/card/card.sample.ts b/src/app/card/card.sample.ts index 8ea63239ceb..af3b7fad11c 100644 --- a/src/app/card/card.sample.ts +++ b/src/app/card/card.sample.ts @@ -1,7 +1,7 @@ import { Component, ViewChild, ViewEncapsulation } from '@angular/core'; -import { - IgxExpansionPanelComponent -} from 'igniteui-angular'; +import { NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IgxAvatarComponent, IgxButtonDirective, IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxChipComponent, IgxDividerDirective, IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxIconComponent, IgxListComponent, IgxListItemComponent, IgxListLineTitleDirective, IgxRippleDirective, IgxSliderComponent } from 'igniteui-angular'; export interface ICard { title: string; @@ -59,7 +59,31 @@ const detailsFactory = (params: any): Idetails => ({ encapsulation: ViewEncapsulation.None, selector: 'app-card-sample', styleUrls: ['card.sample.scss'], - templateUrl: 'card.sample.html' + templateUrl: 'card.sample.html', + standalone: true, + imports: [ + NgFor, + FormsModule, + IgxCardComponent, + IgxCardMediaDirective, + IgxCardHeaderComponent, + IgxCardContentDirective, + IgxDividerDirective, + IgxChipComponent, + IgxCardActionsComponent, + IgxButtonDirective, + IgxRippleDirective, + IgxIconComponent, + IgxSliderComponent, + IgxExpansionPanelComponent, + IgxExpansionPanelBodyComponent, + IgxListComponent, + IgxListItemComponent, + IgxListLineTitleDirective, + IgxAvatarComponent, + IgxCardHeaderTitleDirective, + IgxCardHeaderSubtitleDirective + ] }) export class CardSampleComponent { @ViewChild(IgxExpansionPanelComponent, { static: true }) diff --git a/src/app/carousel/carousel.sample.ts b/src/app/carousel/carousel.sample.ts index 41afb755366..7997f31f7c1 100644 --- a/src/app/carousel/carousel.sample.ts +++ b/src/app/carousel/carousel.sample.ts @@ -1,10 +1,15 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxCarouselComponent, CarouselIndicatorsOrientation } from 'igniteui-angular'; +import { NgFor, NgIf } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { CarouselIndicatorsOrientation, IgxButtonDirective, IgxCarouselComponent, IgxCarouselIndicatorDirective, IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, IgxSlideComponent, IgxSwitchComponent, IgxToggleActionDirective } from 'igniteui-angular'; + @Component({ selector: 'app-carousel-sample', styleUrls: ['carousel.sample.scss'], - templateUrl: 'carousel.sample.html' + templateUrl: 'carousel.sample.html', + standalone: true, + imports: [IgxSwitchComponent, FormsModule, IgxButtonDirective, IgxToggleActionDirective, IgxDropDownItemNavigationDirective, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxCarouselComponent, IgxSlideComponent, IgxCarouselIndicatorDirective, NgIf] }) export class CarouselSampleComponent { @ViewChild('car', { static: true }) diff --git a/src/app/chips/chips.sample.ts b/src/app/chips/chips.sample.ts index 759562833cd..d6ce40e346c 100644 --- a/src/app/chips/chips.sample.ts +++ b/src/app/chips/chips.sample.ts @@ -1,13 +1,14 @@ import { Component, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core'; -import { - IgxChipsAreaComponent, IgxChipComponent, - IChipsAreaReorderEventArgs, IBaseChipEventArgs, IChipsAreaSelectEventArgs -} from 'igniteui-angular'; +import { NgFor, NgIf } from '@angular/common'; +import { IBaseChipEventArgs, IChipsAreaReorderEventArgs, IChipsAreaSelectEventArgs, IgxAvatarComponent, IgxChipComponent, IgxChipsAreaComponent, IgxDropDirective, IgxIconComponent, IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular'; + @Component({ selector: 'app-chips-sample', styleUrls: ['chips.sample.scss', '../app.component.scss'], - templateUrl: 'chips.sample.html' + templateUrl: 'chips.sample.html', + standalone: true, + imports: [IgxChipComponent, IgxIconComponent, IgxPrefixDirective, IgxSuffixDirective, IgxChipsAreaComponent, NgFor, NgIf, IgxAvatarComponent, IgxDropDirective] }) export class ChipsSampleComponent { @ViewChild('chipsArea', { read: IgxChipsAreaComponent, static: true }) diff --git a/src/app/combo/combo.sample.ts b/src/app/combo/combo.sample.ts index 68f7efd39f7..6afed412986 100644 --- a/src/app/combo/combo.sample.ts +++ b/src/app/combo/combo.sample.ts @@ -1,35 +1,20 @@ import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnInit, TemplateRef, ViewChild } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'; -import { - ButtonGroupAlignment, - ConnectedPositioningStrategy, - DisplayDensity, - ElasticPositionStrategy, - GlobalPositionStrategy, - HorizontalAlignment, - IChangeSwitchEventArgs, - IComboSearchInputEventArgs, - IComboSelectionChangingEventArgs, - ISimpleComboSelectionChangingEventArgs, - IForOfState, - IgxComboComponent, - IgxSimpleComboComponent, - IgxToastComponent, - OverlaySettings, - scaleInCenter, - scaleOutCenter, - VerticalAlignment -} from 'igniteui-angular'; +import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { NgIf, AsyncPipe } from '@angular/common'; import { cloneDeep } from 'lodash-es'; -import { IComboFilteringOptions } from 'projects/igniteui-angular/src/lib/combo/combo.common'; import { take } from 'rxjs/operators'; + import { RemoteNWindService } from './remote-nwind.service'; +import { ButtonGroupAlignment, ConnectedPositioningStrategy, DisplayDensity, ElasticPositionStrategy, GlobalPositionStrategy, HorizontalAlignment, IChangeSwitchEventArgs, IComboFilteringOptions, IComboSearchInputEventArgs, IComboSelectionChangingEventArgs, IForOfState, ISimpleComboSelectionChangingEventArgs, IgxButtonDirective, IgxButtonGroupComponent, IgxComboAddItemDirective, IgxComboComponent, IgxComboFooterDirective, IgxComboHeaderDirective, IgxHintDirective, IgxIconComponent, IgxInputDirective, IgxInputGroupComponent, IgxLabelDirective, IgxPrefixDirective, IgxRippleDirective, IgxSimpleComboComponent, IgxSwitchComponent, IgxToastComponent, OverlaySettings, VerticalAlignment, scaleInCenter, scaleOutCenter } from 'igniteui-angular'; + @Component({ // eslint-disable-next-line @angular-eslint/component-selector selector: 'combo-sample', templateUrl: './combo.sample.html', - styleUrls: ['combo.sample.scss'] + styleUrls: ['combo.sample.scss'], + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, FormsModule, IgxSimpleComboComponent, IgxLabelDirective, IgxHintDirective, IgxComboComponent, IgxButtonDirective, ReactiveFormsModule, IgxToastComponent, NgIf, IgxComboHeaderDirective, IgxComboFooterDirective, IgxComboAddItemDirective, IgxRippleDirective, IgxPrefixDirective, IgxIconComponent, IgxSwitchComponent, IgxButtonGroupComponent, AsyncPipe] }) export class ComboSampleComponent implements OnInit, AfterViewInit { @ViewChild('playgroundCombo', { static: true }) @@ -73,13 +58,13 @@ export class ComboSampleComponent implements OnInit, AfterViewInit { public rData: any; public prevRequest: any; public simpleComboPrevRequest: any; - private searchText: string = ''; + private searchText = ''; private defaultVirtState: IForOfState = { chunkSize: 6, startIndex: 0 }; private currentVirtState: IForOfState = { chunkSize: 6, startIndex: 0 }; private hasSelection: boolean; - private additionalScroll: number = 0; + private additionalScroll = 0; private itemID = 1; - private itemCount: number = 0; + private itemCount = 0; public valueKeyVar = 'field'; public currentDataType = ''; diff --git a/src/app/date-picker/date-picker.sample.ts b/src/app/date-picker/date-picker.sample.ts index 7434bc3007c..56a3bb6cbc9 100644 --- a/src/app/date-picker/date-picker.sample.ts +++ b/src/app/date-picker/date-picker.sample.ts @@ -1,11 +1,20 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxDatePickerComponent } from 'igniteui-angular'; + import { DateRangeDescriptor, DateRangeType } from 'projects/igniteui-angular/src/lib/core/dates/dateRange'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxPickerActionsDirective } from '../../../projects/igniteui-angular/src/lib/date-common/picker-icons.common'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxDatePickerComponent } from '../../../projects/igniteui-angular/src/lib/date-picker/date-picker.component'; @Component({ selector: 'app-date-picker-sample', styleUrls: ['date-picker.sample.scss'], - templateUrl: 'date-picker.sample.html' + templateUrl: 'date-picker.sample.html', + standalone: true, + imports: [IgxDatePickerComponent, IgxLabelDirective, IgxSuffixDirective, IgxIconComponent, IgxPickerActionsDirective, IgxButtonDirective, IgxRippleDirective] }) export class DatePickerSampleComponent { diff --git a/src/app/date-range/date-range.sample.ts b/src/app/date-range/date-range.sample.ts index ee8ea9d852b..f3e47289b69 100644 --- a/src/app/date-range/date-range.sample.ts +++ b/src/app/date-range/date-range.sample.ts @@ -1,11 +1,26 @@ import { Component, ViewChild } from '@angular/core'; -import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl, ValidatorFn, AbstractControl } from '@angular/forms'; -import { DateRange, IChangeRadioEventArgs, IgxDateRangePickerComponent } from 'igniteui-angular'; +import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl, ValidatorFn, AbstractControl, FormsModule, ReactiveFormsModule } from '@angular/forms'; + +import { IChangeRadioEventArgs, IgxRadioComponent } from '../../../projects/igniteui-angular/src/lib/radio/radio.component'; +import { NgFor, JsonPipe } from '@angular/common'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxDateTimeEditorDirective } from '../../../projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxDateRangeStartComponent, IgxDateRangeEndComponent, DateRange } from '../../../projects/igniteui-angular/src/lib/date-range-picker/date-range-picker-inputs.common'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxPickerToggleComponent } from '../../../projects/igniteui-angular/src/lib/date-common/picker-icons.common'; +import { IgxDateRangePickerComponent } from '../../../projects/igniteui-angular/src/lib/date-range-picker/date-range-picker.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ selector: 'app-date-range', templateUrl: './date-range.sample.html', - styleUrls: ['./date-range.sample.scss'] + styleUrls: ['./date-range.sample.scss'], + standalone: true, + imports: [IgxButtonDirective, IgxRippleDirective, IgxDateRangePickerComponent, IgxPickerToggleComponent, IgxSuffixDirective, IgxIconComponent, IgxDateRangeStartComponent, IgxInputDirective, IgxDateTimeEditorDirective, IgxPrefixDirective, IgxDateRangeEndComponent, FormsModule, IgxLabelDirective, NgFor, IgxRadioComponent, ReactiveFormsModule, JsonPipe] }) export class DateRangeSampleComponent { @ViewChild('dr1', { static: true }) diff --git a/src/app/date-time-editor/date-time-editor.sample.ts b/src/app/date-time-editor/date-time-editor.sample.ts index cc94991360f..5f18a841858 100644 --- a/src/app/date-time-editor/date-time-editor.sample.ts +++ b/src/app/date-time-editor/date-time-editor.sample.ts @@ -1,10 +1,20 @@ import { Component } from '@angular/core'; import { IgxDateTimeEditorEventArgs } from 'igniteui-angular'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { FormsModule } from '@angular/forms'; +import { IgxDateTimeEditorDirective } from '../../../projects/igniteui-angular/src/lib/directives/date-time-editor/date-time-editor.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; @Component({ - selector: 'app-date-time-editor', - templateUrl: './date-time-editor.sample.html', - styleUrls: ['./date-time-editor.sample.css'] + selector: 'app-date-time-editor', + templateUrl: './date-time-editor.sample.html', + styleUrls: ['./date-time-editor.sample.css'], + standalone: true, + imports: [IgxInputGroupComponent, IgxInputDirective, IgxDateTimeEditorDirective, FormsModule, IgxSuffixDirective, IgxRippleDirective, IgxButtonDirective, IgxIconComponent] }) export class DateTimeEditorSampleComponent { public date = new Date(2020, 2, 23); diff --git a/src/app/dialog/dialog.sample.ts b/src/app/dialog/dialog.sample.ts index 85dcbcb457a..3be1bad4f91 100644 --- a/src/app/dialog/dialog.sample.ts +++ b/src/app/dialog/dialog.sample.ts @@ -1,12 +1,25 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { IgxDialogComponent, slideOutBottom, slideInTop, - PositionSettings, HorizontalAlignment, VerticalAlignment } from 'igniteui-angular'; import { useAnimation } from '@angular/animations'; +import { IgxDialogTitleDirective, IgxDialogActionsDirective } from '../../../projects/igniteui-angular/src/lib/dialog/dialog.directives'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxDialogComponent } from '../../../projects/igniteui-angular/src/lib/dialog/dialog.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { HorizontalAlignment, PositionSettings, VerticalAlignment } from '../../../projects/igniteui-angular/src/lib/services/public_api'; +import { slideInTop, slideOutBottom } from '../../../projects/igniteui-angular/src/lib/animations/slide'; + @Component({ selector: 'app-dialog-sample', styleUrls: ['dialog.sample.scss'], - templateUrl: 'dialog.sample.html' + templateUrl: 'dialog.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxRippleDirective, IgxSwitchComponent, IgxDialogComponent, IgxInputGroupComponent, IgxPrefixDirective, IgxIconComponent, IgxInputDirective, IgxLabelDirective, IgxDialogTitleDirective, IgxDialogActionsDirective] }) export class DialogSampleComponent implements OnInit { diff --git a/src/app/drag-drop/drag-drop.sample.ts b/src/app/drag-drop/drag-drop.sample.ts index bf4dbb25ec6..ca9f17bd8d0 100644 --- a/src/app/drag-drop/drag-drop.sample.ts +++ b/src/app/drag-drop/drag-drop.sample.ts @@ -1,21 +1,25 @@ import { ChangeDetectorRef, Component, ViewChild, ElementRef, ViewChildren, QueryList } from '@angular/core'; -import { - OverlaySettings, - GlobalPositionStrategy, - NoOpScrollStrategy, - IgxToggleDirective, - IgxDragDirective, - IgxInsertDropStrategy, - IDragBaseEventArgs, - IgxDragLocation, - DragDirection, - IDropDroppedEventArgs -} from 'igniteui-angular'; +import { NgIf, NgClass, NgFor, NgStyle } from '@angular/common'; + +import { ShadowGridSampleComponent } from './shadow-dom-grid/shadow-grid-sample'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxToggleDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxDragDirective, IgxDragIgnoreDirective, IgxDragHandleDirective, IgxDropDirective, DragDirection, IDragBaseEventArgs, IgxDragLocation, IDropDroppedEventArgs } from '../../../projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive'; +import { IgxInsertDropStrategy } from '../../../projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.strategy'; +import { GlobalPositionStrategy, NoOpScrollStrategy, OverlaySettings } from '../../../projects/igniteui-angular/src/lib/services/public_api'; @Component({ selector: 'app-drag-drop-sample', templateUrl: './drag-drop.sample.html', - styleUrls: ['drag-drop.sample.scss'] + styleUrls: ['drag-drop.sample.scss'], + standalone: true, + imports: [IgxDragDirective, NgIf, IgxIconComponent, IgxDragIgnoreDirective, NgClass, IgxButtonDirective, IgxRippleDirective, IgxToggleDirective, IgxDragHandleDirective, IgxInputGroupComponent, IgxPrefixDirective, IgxInputDirective, IgxLabelDirective, NgFor, IgxDropDirective, NgStyle, ShadowGridSampleComponent] }) export class DragDropSampleComponent { @ViewChild('dragNoGhostAnim', { read: IgxDragDirective, static: true }) diff --git a/src/app/drag-drop/shadow-dom-grid/shadow-grid-sample.ts b/src/app/drag-drop/shadow-dom-grid/shadow-grid-sample.ts index c43d6d51a6d..af574d57e4c 100644 --- a/src/app/drag-drop/shadow-dom-grid/shadow-grid-sample.ts +++ b/src/app/drag-drop/shadow-dom-grid/shadow-grid-sample.ts @@ -1,11 +1,14 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; import { IgxColumnComponent } from 'igniteui-angular'; +import { IgxGridComponent } from '../../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; @Component({ - selector: 'app-shadow-grid-sample', - templateUrl: './shadow-grid-sample.html', - styleUrls: ['./shadow-grid-sample.scss'], - encapsulation: ViewEncapsulation.ShadowDom + selector: 'app-shadow-grid-sample', + templateUrl: './shadow-grid-sample.html', + styleUrls: ['./shadow-grid-sample.scss'], + encapsulation: ViewEncapsulation.ShadowDom, + standalone: true, + imports: [IgxGridComponent] }) export class ShadowGridSampleComponent implements OnInit { public localData: any[]; diff --git a/src/app/drop-down/display-density/display-density.sample.ts b/src/app/drop-down/display-density/display-density.sample.ts index c8ed7d9518f..f324beb0605 100644 --- a/src/app/drop-down/display-density/display-density.sample.ts +++ b/src/app/drop-down/display-density/display-density.sample.ts @@ -1,5 +1,15 @@ import { Component } from '@angular/core'; import { DisplayDensity } from 'igniteui-angular'; +import { IgxSelectItemComponent } from '../../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { IgxLabelDirective } from '../../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxSelectComponent } from '../../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxDropDownItemComponent } from '../../../../projects/igniteui-angular/src/lib/drop-down/drop-down-item.component'; +import { NgFor } from '@angular/common'; +import { IgxDropDownComponent } from '../../../../projects/igniteui-angular/src/lib/drop-down/drop-down.component'; +import { IgxDropDownItemNavigationDirective } from '../../../../projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive'; +import { IgxToggleActionDirective } from '../../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxButtonDirective } from '../../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxComboComponent } from '../../../../projects/igniteui-angular/src/lib/combo/combo.component'; const data = Array.apply(null, { length: 57 }).map((e, i) => ({ valueKey: i, @@ -9,7 +19,9 @@ const data = Array.apply(null, { length: 57 }).map((e, i) => ({ @Component({ selector: 'app-display-density', templateUrl: 'display-density.sample.html', - styleUrls: ['display-density.sample.scss'] + styleUrls: ['display-density.sample.scss'], + standalone: true, + imports: [IgxComboComponent, IgxButtonDirective, IgxToggleActionDirective, IgxDropDownItemNavigationDirective, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxSelectComponent, IgxLabelDirective, IgxSelectItemComponent] }) export class DisplayDensityDropDownComponent { public data = data; diff --git a/src/app/drop-down/drop-down-virtual/drop-down-virtual.component.ts b/src/app/drop-down/drop-down-virtual/drop-down-virtual.component.ts index 5109a6e4e2f..edeff882052 100644 --- a/src/app/drop-down/drop-down-virtual/drop-down-virtual.component.ts +++ b/src/app/drop-down/drop-down-virtual/drop-down-virtual.component.ts @@ -1,16 +1,29 @@ import { Component, OnInit, ViewChild, AfterViewInit, ChangeDetectorRef } from '@angular/core'; -import { RemoteService } from 'src/app/shared/remote.service'; +import { AsyncPipe } from '@angular/common'; + import { Observable } from 'rxjs'; -import { IForOfState, IgxDropDownComponent, IgxToastComponent, IgxForOfDirective, DisplayDensity, VerticalAlignment } from 'igniteui-angular'; + +import { RemoteService } from 'src/app/shared/remote.service'; +import { IgxToastComponent } from '../../../../projects/igniteui-angular/src/lib/toast/toast.component'; +import { IgxDropDownItemComponent } from '../../../../projects/igniteui-angular/src/lib/drop-down/drop-down-item.component'; +import { IForOfState, IgxForOfDirective } from '../../../../projects/igniteui-angular/src/lib/directives/for-of/for_of.directive'; +import { IgxDropDownComponent } from '../../../../projects/igniteui-angular/src/lib/drop-down/drop-down.component'; +import { IgxDropDownItemNavigationDirective } from '../../../../projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive'; +import { IgxToggleActionDirective } from '../../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxButtonDirective } from '../../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { DisplayDensity } from '../../../../projects/igniteui-angular/src/lib/core/density'; +import { VerticalAlignment } from '../../../../projects/igniteui-angular/src/lib/services/public_api'; interface DataItem { name: string; id: number; } @Component({ - selector: 'app-drop-down-virtual', - templateUrl: './drop-down-virtual.component.html', - styleUrls: ['./drop-down-virtual.component.scss'] + selector: 'app-drop-down-virtual', + templateUrl: './drop-down-virtual.component.html', + styleUrls: ['./drop-down-virtual.component.scss'], + standalone: true, + imports: [IgxButtonDirective, IgxToggleActionDirective, IgxDropDownItemNavigationDirective, IgxDropDownComponent, IgxForOfDirective, IgxDropDownItemComponent, IgxToastComponent, AsyncPipe] }) export class DropDownVirtualComponent implements OnInit, AfterViewInit { @ViewChild('loadingToast', { read: IgxToastComponent, static: true }) diff --git a/src/app/drop-down/drop-down.sample.ts b/src/app/drop-down/drop-down.sample.ts index 21b55b573c0..c916d6441ef 100644 --- a/src/app/drop-down/drop-down.sample.ts +++ b/src/app/drop-down/drop-down.sample.ts @@ -1,18 +1,40 @@ import { Component, OnInit, ViewChild, ElementRef } from '@angular/core'; -import { - IgxDropDownComponent, - ConnectedPositioningStrategy, - OverlaySettings, - NoOpScrollStrategy, - IgxOverlayOutletDirective -} from 'igniteui-angular'; +import { NgFor } from '@angular/common'; + import { foods } from './foods'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxDropDownGroupComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-group.component'; +import { IgxDropDownItemComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-item.component'; +import { IgxDropDownComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down.component'; +import { IgxToggleActionDirective, IgxToggleDirective, IgxOverlayOutletDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxDropDownItemNavigationDirective } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { ConnectedPositioningStrategy, NoOpScrollStrategy, OverlaySettings } from '../../../projects/igniteui-angular/src/lib/services/public_api'; @Component({ // eslint-disable-next-line @angular-eslint/component-selector selector: 'drop-down-sample', templateUrl: './drop-down.sample.html', - styleUrls: ['drop-down.sample.scss'] + styleUrls: ['drop-down.sample.scss'], + standalone: true, + imports: [ + NgFor, + IgxButtonGroupComponent, + IgxButtonDirective, + IgxDropDownItemNavigationDirective, + IgxToggleActionDirective, + IgxDropDownComponent, + IgxDropDownItemComponent, + IgxToggleDirective, + IgxDropDownGroupComponent, + IgxInputGroupComponent, + IgxInputDirective, + IgxRippleDirective, + IgxOverlayOutletDirective + ] }) export class DropDownSampleComponent implements OnInit { @ViewChild(IgxDropDownComponent, { static: true }) diff --git a/src/app/expansion-panel/expansion-panel-sample.ts b/src/app/expansion-panel/expansion-panel-sample.ts index f188af129e0..dc7fa67ac1c 100644 --- a/src/app/expansion-panel/expansion-panel-sample.ts +++ b/src/app/expansion-panel/expansion-panel-sample.ts @@ -1,18 +1,28 @@ -import { - IgxExpansionPanelComponent, - growVerIn, - growVerOut, - IExpansionPanelEventArgs, - ExpansionPanelHeaderIconPosition -} from 'igniteui-angular'; import { Component, OnInit, ViewChild } from '@angular/core'; +import { NgIf } from '@angular/common'; import { AnimationReferenceMetadata, useAnimation } from '@angular/animations'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxExpansionPanelBodyComponent } from '../../../projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-body.component'; +import { IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelIconDirective } from '../../../projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.directives'; +import { ExpansionPanelHeaderIconPosition, IgxExpansionPanelHeaderComponent } from '../../../projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-header.component'; +import { IgxExpansionPanelComponent } from '../../../projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { growVerIn, growVerOut } from '../../../projects/igniteui-angular/src/lib/animations/main'; +import { IExpansionPanelEventArgs } from '../../../projects/igniteui-angular/src/lib/expansion-panel/public_api'; + @Component({ // eslint-disable-next-line @angular-eslint/component-selector selector: 'expansion-panel-sample', templateUrl: './expansion-panel-sample.html', - styleUrls: ['expansion-panel-sample.scss'] + styleUrls: ['expansion-panel-sample.scss'], + standalone: true, + imports: [IgxButtonDirective, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective, NgIf, IgxExpansionPanelIconDirective, IgxExpansionPanelBodyComponent, IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective, IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective] }) export class ExpansionPanelSampleComponent implements OnInit { @ViewChild(IgxExpansionPanelComponent, { static: true }) diff --git a/src/app/gird-cell-styling/grid-cell-styling.sample.ts b/src/app/gird-cell-styling/grid-cell-styling.sample.ts index 90fc29dd160..114f99c0efb 100644 --- a/src/app/gird-cell-styling/grid-cell-styling.sample.ts +++ b/src/app/gird-cell-styling/grid-cell-styling.sample.ts @@ -1,12 +1,27 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { IgxGridComponent, IPinningConfig, RowPinningPosition, RowType } from 'igniteui-angular'; +import { NgFor, JsonPipe } from '@angular/common'; + import { SAMPLE_DATA, HIERARCHICAL_SAMPLE_DATA } from '../shared/sample-data'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxGridEditingActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component'; +import { IgxActionStripComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/action-strip.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxHintDirective } from '../../../projects/igniteui-angular/src/lib/directives/hint/hint.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IPinningConfig, RowType } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { RowPinningPosition } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ providers: [], selector: 'app-grid-cell-styling.sample', styleUrls: ['grid-cell-styling.sample.scss'], templateUrl: 'grid-cell-styling.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxInputGroupComponent, IgxInputDirective, IgxHintDirective, IgxGridComponent, NgFor, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, IgxGridEditingActionsComponent, IgxTreeGridComponent, JsonPipe] }) export class GridCellStylingSampleComponent implements OnInit { diff --git a/src/app/grid-add-row/grid-add-row.sample.ts b/src/app/grid-add-row/grid-add-row.sample.ts index 6edce1304be..34b238d7d88 100644 --- a/src/app/grid-add-row/grid-add-row.sample.ts +++ b/src/app/grid-add-row/grid-add-row.sample.ts @@ -1,10 +1,27 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { IgxGridComponent } from 'igniteui-angular'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { FormsModule } from '@angular/forms'; +import { IgxSelectComponent } from '../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective } from '../../../projects/igniteui-angular/src/lib/card/card.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxGridEditingActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component'; +import { IgxActionStripComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/action-strip.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { NgFor, NgIf } from '@angular/common'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; @Component({ selector: 'app-grid-add-row', styleUrls: ['grid-add-row.sample.scss'], - templateUrl: `grid-add-row.sample.html` + templateUrl: `grid-add-row.sample.html`, + standalone: true, + imports: [IgxGridComponent_1, NgFor, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, IgxGridEditingActionsComponent, NgIf, IgxPaginatorComponent, IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective, IgxButtonDirective, IgxSelectComponent, FormsModule, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxLabelDirective] }) export class GridAddRowSampleComponent implements OnInit { diff --git a/src/app/grid-auto-size/grid-auto-size.sample.ts b/src/app/grid-auto-size/grid-auto-size.sample.ts index 729acb26926..cc3c45ed974 100644 --- a/src/app/grid-auto-size/grid-auto-size.sample.ts +++ b/src/app/grid-auto-size/grid-auto-size.sample.ts @@ -1,12 +1,25 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { IgxGridComponent, GridSelectionMode, DisplayDensity } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; + import { SAMPLE_DATA } from '../shared/sample-data'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ providers: [], selector: 'app-grid-column-moving-sample', styleUrls: ['grid-auto-size.sample.scss'], - templateUrl: 'grid-auto-size.sample.html' + templateUrl: 'grid-auto-size.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, NgFor, IgxColumnComponent] }) export class GridAutoSizeSampleComponent implements OnInit { diff --git a/src/app/grid-cell-api/grid-cell-api.sample.ts b/src/app/grid-cell-api/grid-cell-api.sample.ts index 83a5a23a738..87e34e44f12 100644 --- a/src/app/grid-cell-api/grid-cell-api.sample.ts +++ b/src/app/grid-cell-api/grid-cell-api.sample.ts @@ -6,14 +6,28 @@ import { CellType } from 'igniteui-angular'; import { HIERARCHICAL_SAMPLE_DATA } from '../shared/sample-data'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxHierarchicalGridComponent as IgxHierarchicalGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { IgxTreeGridComponent as IgxTreeGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { NgFor } from '@angular/common'; +import { IgxGridDetailTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.directives'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { FormsModule } from '@angular/forms'; @Component({ selector: 'app-grid-cell-api-sample', styleUrls: ['grid-cell-api.sample.scss'], templateUrl: 'grid-cell-api.sample.html', - // providers: [ - // { provide: IgxGridTransaction, useClass: IgxTransactionService } - // ], + standalone: true, + imports: [FormsModule, IgxGridComponent_1, IgxPaginatorComponent, IgxGridDetailTemplateDirective, NgFor, IgxColumnComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxButtonDirective, IgxIconComponent, IgxTreeGridComponent_1, IgxHierarchicalGridComponent_1, IgxRowIslandComponent] }) export class GridCellAPISampleComponent implements OnInit { diff --git a/src/app/grid-cellEditing/grid-cellEditing.component.ts b/src/app/grid-cellEditing/grid-cellEditing.component.ts index 7d2f5a56c32..acd84b59c7d 100644 --- a/src/app/grid-cellEditing/grid-cellEditing.component.ts +++ b/src/app/grid-cellEditing/grid-cellEditing.component.ts @@ -1,13 +1,22 @@ import { Component, ViewChild } from '@angular/core'; -import { data, dataWithoutPK } from '../shared/data'; +import { FormsModule } from '@angular/forms'; -import { - IgxGridComponent, GridSelectionMode, IgxDateSummaryOperand, IgxSummaryResult, DisplayDensity} from 'igniteui-angular'; +import { data, dataWithoutPK } from '../shared/data'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxCellTemplateDirective, IgxCellEditorTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnRequiredValidatorDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/validators.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { GridSelectionMode } from 'projects/igniteui-angular/src/lib/grids/common/enums'; +import { IgxDateSummaryOperand, IgxSummaryResult } from '../../../projects/igniteui-angular/src/lib/grids/summaries/grid-summary'; @Component({ selector: 'app-grid-cellediting', - styleUrls: ['grid-cellEditing.component.scss'], - templateUrl: 'grid-cellEditing.component.html' + templateUrl: 'grid-cellEditing.component.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent, IgxColumnComponent, IgxColumnRequiredValidatorDirective, IgxCellTemplateDirective, IgxPaginatorComponent, FormsModule, IgxCellEditorTemplateDirective] }) export class GridCellEditingComponent { @ViewChild('grid1', { read: IgxGridComponent, static: true }) diff --git a/src/app/grid-clipboard/grid-clipboard.sample.ts b/src/app/grid-clipboard/grid-clipboard.sample.ts index 8a5d0005c69..e1f86b5f2c4 100644 --- a/src/app/grid-clipboard/grid-clipboard.sample.ts +++ b/src/app/grid-clipboard/grid-clipboard.sample.ts @@ -1,10 +1,23 @@ import { Component } from '@angular/core'; +import { FormsModule } from '@angular/forms'; + import { SAMPLE_DATA } from '../shared/sample-data'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxLayoutDirective } from '../../../projects/igniteui-angular/src/lib/directives/layout/layout.directive'; +import { IgxHintDirective } from '../../../projects/igniteui-angular/src/lib/directives/hint/hint.directive'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; @Component({ selector: 'app-grid-clipboard-sample', - styleUrls: ['grid-clipboard.sample.scss'], - templateUrl: './grid-clipboard.sample.html' + templateUrl: './grid-clipboard.sample.html', + standalone: true, + imports: [IgxInputGroupComponent, IgxLabelDirective, FormsModule, IgxInputDirective, IgxSuffixDirective, IgxIconComponent, IgxHintDirective, IgxLayoutDirective, IgxSwitchComponent, IgxButtonDirective, IgxGridComponent] }) export class GridClipboardSampleComponent { public data: any[]; diff --git a/src/app/grid-column-actions/custom-action-directive.ts b/src/app/grid-column-actions/custom-action-directive.ts index 6e80fd58de0..e313e268cc1 100644 --- a/src/app/grid-column-actions/custom-action-directive.ts +++ b/src/app/grid-column-actions/custom-action-directive.ts @@ -4,7 +4,8 @@ import { IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnComp @Directive({ - selector: '[appColumnGrouping]' + selector: '[appColumnGrouping]', + standalone: true }) export class IgxColumnGroupingDirective extends IgxColumnActionsBaseDirective { diff --git a/src/app/grid-column-actions/grid-column-actions.sample.ts b/src/app/grid-column-actions/grid-column-actions.sample.ts index 7841c57523a..0b53412170b 100644 --- a/src/app/grid-column-actions/grid-column-actions.sample.ts +++ b/src/app/grid-column-actions/grid-column-actions.sample.ts @@ -1,11 +1,26 @@ import { Component, OnInit } from '@angular/core'; -import { IColumnToggledEventArgs } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; + +import { IgxColumnGroupingDirective } from './custom-action-directive'; +import { IgxColumnPinningDirective } from '../../../projects/igniteui-angular/src/lib/grids/column-actions/column-pinning.directive'; +import { IgxColumnHidingDirective } from '../../../projects/igniteui-angular/src/lib/grids/column-actions/column-hiding.directive'; +import { IgxColumnActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/column-actions/column-actions.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxColumnGroupComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-group.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IColumnToggledEventArgs } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; @Component({ providers: [], selector: 'app-grid-column-actions-sample', styleUrls: ['grid-column-actions.sample.scss'], - templateUrl: 'grid-column-actions.sample.html' + templateUrl: 'grid-column-actions.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxColumnGroupComponent, IgxColumnComponent, NgFor, IgxColumnActionsComponent, IgxColumnHidingDirective, IgxColumnPinningDirective, IgxColumnGroupingDirective] }) export class GridColumnActionsSampleComponent implements OnInit { diff --git a/src/app/grid-column-groups/grid-column-groups.sample.ts b/src/app/grid-column-groups/grid-column-groups.sample.ts index f9b8725ee17..4e4cebd42cc 100644 --- a/src/app/grid-column-groups/grid-column-groups.sample.ts +++ b/src/app/grid-column-groups/grid-column-groups.sample.ts @@ -1,10 +1,24 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxGridComponent, IgxColumnGroupComponent, GridSelectionMode, ColumnPinningPosition } from 'igniteui-angular'; + +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxColumnGroupComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-group.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxCollapsibleIndicatorTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { ColumnPinningPosition, GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ selector: 'app-grid-column-groups-sample', styleUrls: ['grid-column-groups.sample.scss'], - templateUrl: 'grid-column-groups.sample.html' + templateUrl: 'grid-column-groups.sample.html', + standalone: true, + imports: [IgxCollapsibleIndicatorTemplateDirective, IgxIconComponent, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, IgxColumnComponent, IgxColumnGroupComponent, IgxButtonDirective] }) export class GridColumnGroupsSampleComponent { @ViewChild('grid', { read: IgxGridComponent, static: true }) diff --git a/src/app/grid-column-moving/grid-column-moving.sample.ts b/src/app/grid-column-moving/grid-column-moving.sample.ts index 72c7824815b..f345fb86832 100644 --- a/src/app/grid-column-moving/grid-column-moving.sample.ts +++ b/src/app/grid-column-moving/grid-column-moving.sample.ts @@ -1,12 +1,34 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { DisplayDensity, IgxGridComponent } from 'igniteui-angular'; +import { NgFor, NgIf } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + import { SAMPLE_DATA } from '../shared/sample-data'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxColumnGroupComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-group.component'; +import { PageHeaderComponent } from '../pageHeading/pageHeading.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxCellTemplateDirective, IgxCellHeaderTemplateDirective, IgxCollapsibleIndicatorTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; @Component({ providers: [], selector: 'app-grid-column-moving-sample', styleUrls: ['grid-column-moving.sample.scss'], - templateUrl: 'grid-column-moving.sample.html' + templateUrl: 'grid-column-moving.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxLabelDirective, IgxButtonGroupComponent, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, NgFor, IgxColumnComponent, IgxCellTemplateDirective, NgIf, IgxPaginatorComponent, PageHeaderComponent, IgxColumnGroupComponent, IgxCellHeaderTemplateDirective, IgxCollapsibleIndicatorTemplateDirective, IgxIconComponent] }) export class GridColumnMovingSampleComponent implements OnInit { diff --git a/src/app/grid-column-pinning/grid-column-pinning.sample.ts b/src/app/grid-column-pinning/grid-column-pinning.sample.ts index 8e67efe7cb2..5294f273cdf 100644 --- a/src/app/grid-column-pinning/grid-column-pinning.sample.ts +++ b/src/app/grid-column-pinning/grid-column-pinning.sample.ts @@ -1,16 +1,24 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { IgxGridComponent, - ColumnPinningPosition, - RowPinningPosition, - GridSelectionMode, - IPinningConfig, - RowType } from 'igniteui-angular'; +import { NgIf, NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IPinningConfig, RowType } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { ColumnPinningPosition, GridSelectionMode, RowPinningPosition } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ providers: [], selector: 'app-grid-column-pinning-sample', styleUrls: ['grid-column-pinning.sample.scss'], - templateUrl: 'grid-column-pinning.sample.html' + templateUrl: 'grid-column-pinning.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxGridComponent, NgIf, IgxGridToolbarComponent, IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, NgFor, IgxColumnComponent, IgxSwitchComponent, FormsModule] }) export class GridColumnPinningSampleComponent implements OnInit { diff --git a/src/app/grid-column-resizing/grid-column-resizing.sample.ts b/src/app/grid-column-resizing/grid-column-resizing.sample.ts index 9bfef16cfb9..20b483248f4 100644 --- a/src/app/grid-column-resizing/grid-column-resizing.sample.ts +++ b/src/app/grid-column-resizing/grid-column-resizing.sample.ts @@ -1,11 +1,17 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { IgxGridComponent } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; + +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; @Component({ providers: [], selector: 'app-grid-column-resizing-sample', styleUrls: ['grid-column-resizing.sample.scss'], - templateUrl: 'grid-column-resizing.sample.html' + templateUrl: 'grid-column-resizing.sample.html', + standalone: true, + imports: [IgxGridComponent, NgFor, IgxColumnComponent, IgxButtonDirective] }) export class GridColumnResizingSampleComponent implements OnInit { diff --git a/src/app/grid-column-selection/grid-column-selection.sample.ts b/src/app/grid-column-selection/grid-column-selection.sample.ts index cb8ab7fc2fe..4b4a2b6c46b 100644 --- a/src/app/grid-column-selection/grid-column-selection.sample.ts +++ b/src/app/grid-column-selection/grid-column-selection.sample.ts @@ -1,24 +1,59 @@ import { Component, ViewChild, OnInit, Pipe, PipeTransform, AfterViewInit, ChangeDetectorRef } from '@angular/core'; -import { - IgxGridComponent, - OverlaySettings, - ConnectedPositioningStrategy, - AbsoluteScrollStrategy, - PositionSettings, - HorizontalAlignment, - VerticalAlignment, - IgxDropDownComponent, - IgxButtonDirective, - FilterMode, - DisplayDensity -} from 'igniteui-angular'; +import { NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + import { SAMPLE_DATA } from '../shared/sample-data'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxColumnGroupComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-group.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxCheckboxComponent } from '../../../projects/igniteui-angular/src/lib/checkbox/checkbox.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxDropDownItemComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-item.component'; +import { IgxDropDownComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down.component'; +import { IgxDropDownItemNavigationDirective } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive'; +import { IgxToggleActionDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { FilterMode } from 'projects/igniteui-angular/src/lib/grids/common/enums'; +import { DisplayDensity } from 'projects/igniteui-angular/src/lib/core/density'; +import { AbsoluteScrollStrategy, ConnectedPositioningStrategy, HorizontalAlignment, OverlaySettings, PositionSettings, VerticalAlignment } from 'projects/igniteui-angular/src/lib/services/public_api'; + +@Pipe({ + name: 'filterColumns', + standalone: true +}) +export class GridColumnSelectionFilterPipe implements PipeTransform { + public transform(items: any[], searchText: string): any[] { + if (!items || !items.length) { + return []; + } + + if (!searchText) { + return items; + } + + searchText = searchText.toLowerCase(); + const result = items.filter((it) => + it.field.toLowerCase().indexOf(searchText) > -1 ); + + return result; + } +} @Component({ providers: [], selector: 'app-grid-column-selection-sample', styleUrls: ['grid-column-selection.sample.scss'], - templateUrl: 'grid-column-selection.sample.html' + templateUrl: 'grid-column-selection.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxToggleActionDirective, IgxDropDownItemNavigationDirective, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxButtonGroupComponent, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxRippleDirective, IgxCheckboxComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxColumnComponent, IgxColumnGroupComponent, IgxSwitchComponent, GridColumnSelectionFilterPipe] }) export class GridColumnSelectionSampleComponent implements OnInit, AfterViewInit { @@ -149,25 +184,3 @@ export class GridColumnSelectionSampleComponent implements OnInit, AfterViewInit } } - -@Pipe({ - name: 'filterColumns' -}) -export class GridColumnSelectionFilterPipe implements PipeTransform { - public transform(items: any[], searchText: string): any[] { - if (!items || !items.length) { - return []; - } - - if (!searchText) { - return items; - } - - searchText = searchText.toLowerCase(); - const result = items.filter((it) => - it.field.toLowerCase().indexOf(searchText) > -1 ); - - return result; - } -} - diff --git a/src/app/grid-column-types/grid-column-types.sample.ts b/src/app/grid-column-types/grid-column-types.sample.ts index 25417944b9a..917c89f7467 100644 --- a/src/app/grid-column-types/grid-column-types.sample.ts +++ b/src/app/grid-column-types/grid-column-types.sample.ts @@ -1,12 +1,23 @@ import { Component, ViewChild, OnInit } from '@angular/core'; import { FilterMode, IgxGridComponent } from 'igniteui-angular'; import { SAMPLE_DATA } from '../shared/sample-data'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { NgFor } from '@angular/common'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; @Component({ providers: [], selector: 'app-grid-column-types-sample', styleUrls: ['grid-column-types.sample.scss'], - templateUrl: 'grid-column-types.sample.html' + templateUrl: 'grid-column-types.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent_1, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, NgFor, IgxColumnComponent] }) export class GridColumnTypesSampleComponent implements OnInit { diff --git a/src/app/grid-esf-load-on-demand/grid-esf-load-on-demand.component.ts b/src/app/grid-esf-load-on-demand/grid-esf-load-on-demand.component.ts index c2be1fcf30b..0c351d838ff 100644 --- a/src/app/grid-esf-load-on-demand/grid-esf-load-on-demand.component.ts +++ b/src/app/grid-esf-load-on-demand/grid-esf-load-on-demand.component.ts @@ -1,11 +1,20 @@ import { Component, ViewChild, OnInit } from '@angular/core'; import { IgxGridComponent, IgxColumnComponent, IFilteringExpressionsTree, GridSelectionMode, DisplayDensity } from 'igniteui-angular'; import { GridESFLoadOnDemandService } from './grid-esf-load-on-demand.service'; +import { IgxColumnComponent as IgxColumnComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; @Component({ - selector: 'app-grid-esf-load-on-demand', - templateUrl: './grid-esf-load-on-demand.component.html', - styleUrls: ['./grid-esf-load-on-demand.component.scss'] + selector: 'app-grid-esf-load-on-demand', + templateUrl: './grid-esf-load-on-demand.component.html', + styleUrls: ['./grid-esf-load-on-demand.component.scss'], + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent_1, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxColumnComponent_1] }) export class GridEsfLoadOnDemandComponent implements OnInit { @ViewChild('grid1', { static: true }) diff --git a/src/app/grid-events/grid-events.component.ts b/src/app/grid-events/grid-events.component.ts index 3fb51d356cd..0d9cf11ff26 100644 --- a/src/app/grid-events/grid-events.component.ts +++ b/src/app/grid-events/grid-events.component.ts @@ -9,11 +9,26 @@ import { IgxGridComponent, IColumnVisibilityChangedEventArgs } from 'igniteui-angular'; import { data } from '../shared/data'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; @Component({ selector: 'app-grid-events', styleUrls: ['grid-events.component.scss'], - templateUrl: 'grid-events.component.html' + templateUrl: 'grid-events.component.html', + standalone: true, + imports: [IgxSwitchComponent, IgxInputGroupComponent, IgxInputDirective, IgxGridComponent_1, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarAdvancedFilteringComponent, IgxColumnComponent, IgxPaginatorComponent, IgxButtonDirective, IgxIconComponent] }) export class GridEventsComponent { diff --git a/src/app/grid-export/grid-export.sample.ts b/src/app/grid-export/grid-export.sample.ts index 722f4daeea4..4bd0cf86418 100644 --- a/src/app/grid-export/grid-export.sample.ts +++ b/src/app/grid-export/grid-export.sample.ts @@ -1,15 +1,21 @@ import { Component, ViewChild } from '@angular/core'; -import { - ColumnType, - IgxNumberSummaryOperand, - IgxSummaryResult, - IGridToolbarExportEventArgs, - IgxGridComponent, - IgxTreeGridComponent -} from 'igniteui-angular'; +import { NgIf, DatePipe } from '@angular/common'; + import { HGRID_DATA } from './hGridData'; import { GRID_DATA } from './gridData'; import { TGRID_DATA } from './tGridData'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxHierarchicalGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxCellTemplateDirective, IgxCellHeaderTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxNumberSummaryOperand, IgxSummaryResult } from '../../../projects/igniteui-angular/src/lib/grids/summaries/grid-summary'; +import { ColumnType, IGridToolbarExportEventArgs } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; class GridSummary { public operate(data?: any[]): IgxSummaryResult[] { @@ -62,8 +68,9 @@ class HGridChildSummary { @Component({ selector: 'app-grid-export-sample', - styleUrls: ['grid-export.sample.scss'], - templateUrl: 'grid-export.sample.html' + templateUrl: 'grid-export.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxPaginatorComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxCellHeaderTemplateDirective, IgxIconComponent, NgIf, IgxTreeGridComponent, IgxHierarchicalGridComponent, IgxRowIslandComponent, DatePipe] }) export class GridExportComponent { @ViewChild('grid', { static: true }) diff --git a/src/app/grid-external-filtering/grid-external-filtering.sample.ts b/src/app/grid-external-filtering/grid-external-filtering.sample.ts index f1f09e4f2df..0cd848231ef 100644 --- a/src/app/grid-external-filtering/grid-external-filtering.sample.ts +++ b/src/app/grid-external-filtering/grid-external-filtering.sample.ts @@ -1,12 +1,36 @@ import { Component, ViewChild, OnInit, AfterViewInit, ChangeDetectorRef } from '@angular/core'; -import { IgxGridComponent, FilteringExpressionsTree, IgxStringFilteringOperand, - FilteringLogic, IgxCheckboxComponent, IChangeCheckboxEventArgs, FilterMode, GridSelectionMode, DisplayDensity } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IChangeCheckboxEventArgs, IgxCheckboxComponent } from '../../../projects/igniteui-angular/src/lib/checkbox/checkbox.component'; +import { IgxAdvancedFilteringDialogComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxGridExcelStyleFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxSelectComponent } from '../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxFlexDirective, IgxLayoutDirective } from '../../../projects/igniteui-angular/src/lib/directives/layout/layout.directive'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { FilteringExpressionsTree } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-expressions-tree'; +import { FilteringLogic } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-expression.interface'; +import { IgxStringFilteringOperand } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-condition'; +import { FilterMode, GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ providers: [], selector: 'app-grid-external-filtering-sample', styleUrls: ['grid-external-filtering.sample.scss'], - templateUrl: 'grid-external-filtering.sample.html' + templateUrl: 'grid-external-filtering.sample.html', + standalone: true, + imports: [IgxFlexDirective, IgxLayoutDirective, IgxButtonGroupComponent, IgxSelectComponent, IgxLabelDirective, NgFor, IgxSelectItemComponent, IgxGridExcelStyleFilteringComponent, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, IgxColumnComponent, IgxAdvancedFilteringDialogComponent, IgxCheckboxComponent, FormsModule, IgxButtonDirective] }) export class GridExternalFilteringComponent implements OnInit, AfterViewInit { @ViewChild('grid1', { static: true }) diff --git a/src/app/grid-filter-template/grid-filter-template.sample.ts b/src/app/grid-filter-template/grid-filter-template.sample.ts index 98d6ca331e3..06576605d65 100644 --- a/src/app/grid-filter-template/grid-filter-template.sample.ts +++ b/src/app/grid-filter-template/grid-filter-template.sample.ts @@ -1,19 +1,26 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { - IgxGridComponent, - GridColumnDataType, - IgxNumberFilteringOperand, - IgxDateFilteringOperand, - IgxStringFilteringOperand, - ColumnType, - GridSelectionMode -} from 'igniteui-angular'; +import { NgFor, NgIf } from '@angular/common'; + +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxFilterCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; +import { ColumnType } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { GridColumnDataType } from '../../../projects/igniteui-angular/src/lib/data-operations/data-util'; +import { IgxDateFilteringOperand, IgxNumberFilteringOperand, IgxStringFilteringOperand } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-condition'; @Component({ providers: [], selector: 'app-grid-filter-template-sample', styleUrls: ['grid-filter-template.sample.scss'], - templateUrl: 'grid-filter-template.sample.html' + templateUrl: 'grid-filter-template.sample.html', + standalone: true, + imports: [IgxGridComponent, NgFor, IgxColumnComponent, IgxFilterCellTemplateDirective, IgxInputGroupComponent, IgxPrefixDirective, IgxIconComponent, IgxInputDirective, NgIf, IgxSuffixDirective] }) export class GridFilterTemplateSampleComponent implements OnInit { diff --git a/src/app/grid-filtering/grid-filtering.sample.ts b/src/app/grid-filtering/grid-filtering.sample.ts index 1ca7d2aa7cb..8b6bba4725b 100644 --- a/src/app/grid-filtering/grid-filtering.sample.ts +++ b/src/app/grid-filtering/grid-filtering.sample.ts @@ -1,14 +1,44 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { IgxGridComponent, FilteringExpressionsTree, IgxStringFilteringOperand, - FilteringLogic, IgxCheckboxComponent, IChangeCheckboxEventArgs, FilterMode, GridSelectionMode, - FormattedValuesFilteringStrategy, - DisplayDensity} from 'igniteui-angular'; +import { NgIf, NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IgxExcelStyleSearchComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-search.component'; +import { IgxExcelStyleConditionalFilterComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-conditional-filter.component'; +import { IgxExcelStyleClearFiltersComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-clear-filters.component'; +import { IgxExcelStyleSelectingComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-selecting.component'; +import { IgxExcelStyleHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-hiding.component'; +import { IgxExcelStylePinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-pinning.component'; +import { IgxExcelStyleMovingComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-moving.component'; +import { IgxExcelStyleSortingComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-sorting.component'; +import { IgxExcelStyleHeaderComponent } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-header.component'; +import { IgxGridExcelStyleFilteringComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxExcelStyleHeaderIconDirective } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.directives'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IChangeCheckboxEventArgs, IgxCheckboxComponent } from '../../../projects/igniteui-angular/src/lib/checkbox/checkbox.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { FilteringExpressionsTree } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-expressions-tree'; +import { FormattedValuesFilteringStrategy } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-strategy'; +import { FilterMode, GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; +import { FilteringLogic } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-expression.interface'; +import { IgxStringFilteringOperand } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-condition'; @Component({ providers: [], selector: 'app-grid-filtering-sample', styleUrls: ['grid-filtering.sample.scss'], - templateUrl: 'grid-filtering.sample.html' + templateUrl: 'grid-filtering.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, NgIf, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, NgFor, IgxColumnComponent, IgxCheckboxComponent, FormsModule, IgxButtonDirective, IgxExcelStyleHeaderIconDirective, IgxIconComponent, IgxGridExcelStyleFilteringComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleHeaderComponent, IgxExcelStyleSortingComponent, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleHidingComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleClearFiltersComponent, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleSearchComponent] }) export class GridFilteringComponent implements OnInit { @ViewChild('grid1', { static: true }) diff --git a/src/app/grid-finjs/controllers.component.ts b/src/app/grid-finjs/controllers.component.ts index 39e09f747f1..046b2406030 100644 --- a/src/app/grid-finjs/controllers.component.ts +++ b/src/app/grid-finjs/controllers.component.ts @@ -3,11 +3,18 @@ import { IgxButtonGroupComponent, IgxSliderComponent, } from 'igniteui-angular'; import { timer } from 'rxjs'; import { debounce } from 'rxjs/operators'; +import { NgIf } from '@angular/common'; +import { IgxButtonGroupComponent as IgxButtonGroupComponent_1 } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { FormsModule } from '@angular/forms'; +import { IgxSliderComponent as IgxSliderComponent_1 } from '../../../projects/igniteui-angular/src/lib/slider/slider.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; @Component({ selector: 'app-finjs-controllers', styleUrls: ['./controllers.component.scss'], - templateUrl: './controllers.component.html' + templateUrl: './controllers.component.html', + standalone: true, + imports: [IgxSwitchComponent, IgxSliderComponent_1, FormsModule, IgxButtonGroupComponent_1, NgIf] }) export class ControllerComponent implements OnInit, OnDestroy { @ViewChild('buttonGroup1', { static: true }) public playButtons: IgxButtonGroupComponent; diff --git a/src/app/grid-finjs/grid-finjs.component.ts b/src/app/grid-finjs/grid-finjs.component.ts index 4a4a1df5543..57d6c87efc5 100644 --- a/src/app/grid-finjs/grid-finjs.component.ts +++ b/src/app/grid-finjs/grid-finjs.component.ts @@ -10,6 +10,22 @@ import { SortingDirection } from 'igniteui-angular'; import { Contract, REGIONS } from '../shared/financialData'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { IgxFocusDirective } from '../../../projects/igniteui-angular/src/lib/directives/focus/focus.directive'; +import { FormsModule } from '@angular/forms'; +import { IgxSelectComponent } from '../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxCellEditorTemplateDirective, IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { NgIf, NgFor, CurrencyPipe } from '@angular/common'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; const GROUPING_EXPRESSIONS: IGroupingExpression[] = [{ dir: SortingDirection.Desc, @@ -34,7 +50,9 @@ const GROUPING_EXPRESSIONS: IGroupingExpression[] = [{ @Component({ selector: 'app-finjs-grid', styleUrls: ['./grid-finjs.component.scss'], - templateUrl: './grid-finjs.component.html' + templateUrl: './grid-finjs.component.html', + standalone: true, + imports: [IgxGridComponent_1, NgIf, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarExporterComponent, IgxColumnComponent, IgxCellEditorTemplateDirective, IgxSelectComponent, FormsModule, IgxFocusDirective, NgFor, IgxSelectItemComponent, IgxCellTemplateDirective, IgxIconComponent, IgxButtonDirective, IgxRippleDirective, CurrencyPipe] }) export class GridFinJSComponent { @ViewChild('grid1', { static: true }) public grid: IgxGridComponent; diff --git a/src/app/grid-finjs/main.component.ts b/src/app/grid-finjs/main.component.ts index 70f20b91bc8..8b381098ff9 100644 --- a/src/app/grid-finjs/main.component.ts +++ b/src/app/grid-finjs/main.component.ts @@ -4,12 +4,15 @@ import { takeUntil } from 'rxjs/operators'; import { LocalService } from '../shared/local.service'; import { ControllerComponent } from './controllers.component'; import { GridFinJSComponent } from './grid-finjs.component'; +import { AsyncPipe } from '@angular/common'; @Component({ providers: [LocalService], selector: 'app-finjs-main', styleUrls: ['./main.component.scss'], - templateUrl: './main.component.html' + templateUrl: './main.component.html', + standalone: true, + imports: [ControllerComponent, GridFinJSComponent, AsyncPipe] }) export class MainComponent implements OnDestroy { @ViewChild('grid', { static: true }) public finGrid: GridFinJSComponent; diff --git a/src/app/grid-flex-layout/grid-flex.sample.ts b/src/app/grid-flex-layout/grid-flex.sample.ts index c2538bde5d1..d889e6d44bc 100644 --- a/src/app/grid-flex-layout/grid-flex.sample.ts +++ b/src/app/grid-flex-layout/grid-flex.sample.ts @@ -1,11 +1,25 @@ import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core'; -import { IgxGridComponent } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; + +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxHierarchicalGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxLayoutDirective, IgxFlexDirective } from '../../../projects/igniteui-angular/src/lib/directives/layout/layout.directive'; @Component({ providers: [], selector: 'app-grid-flex-sample', styleUrls: ['grid-flex.sample.scss'], - templateUrl: 'grid-flex.sample.html' + templateUrl: 'grid-flex.sample.html', + standalone: true, + imports: [IgxLayoutDirective, IgxFlexDirective, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, NgFor, IgxColumnComponent, IgxPaginatorComponent, IgxHierarchicalGridComponent, IgxRowIslandComponent, IgxTreeGridComponent] }) export class GridFlexSampleComponent implements OnInit, AfterViewInit { diff --git a/src/app/grid-formatting/grid-formatting.component.ts b/src/app/grid-formatting/grid-formatting.component.ts index 4e92a484df9..2a91e2c4b1f 100644 --- a/src/app/grid-formatting/grid-formatting.component.ts +++ b/src/app/grid-formatting/grid-formatting.component.ts @@ -1,19 +1,26 @@ import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core'; -import { DatePipe } from '@angular/common'; +import { DatePipe, NgFor, AsyncPipe } from '@angular/common'; + +import { Observable } from 'rxjs'; -import { IgxGridComponent, IgxDateSummaryOperand, IgxSummaryResult, IgxColumnComponent, - IFilteringExpressionsTree, FilteringStrategy, IgxSummaryOperand } from 'igniteui-angular'; import { RemoteService } from '../shared/remote.service'; import { data } from '../shared/data'; -import { Observable } from 'rxjs'; import { HIERARCHICAL_SAMPLE_DATA } from '../shared/sample-data'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxDateSummaryOperand, IgxSummaryOperand, IgxSummaryResult } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { IFilteringExpressionsTree } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-expressions-tree'; +import { FilteringStrategy } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-strategy'; const ORDERS_URl = 'https://services.odata.org/V4/Northwind/Northwind.svc/Orders'; @Component({ selector: 'app-grid-formatting', - styleUrls: ['grid-formatting.component.scss'], - templateUrl: 'grid-formatting.component.html' + templateUrl: 'grid-formatting.component.html', + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxPaginatorComponent, IgxTreeGridComponent, NgFor, AsyncPipe] }) export class GridFormattingComponent implements OnInit, AfterViewInit { diff --git a/src/app/grid-groupby/grid-groupby.sample.ts b/src/app/grid-groupby/grid-groupby.sample.ts index 9c1785d13c5..92a53b854bc 100644 --- a/src/app/grid-groupby/grid-groupby.sample.ts +++ b/src/app/grid-groupby/grid-groupby.sample.ts @@ -1,16 +1,29 @@ /* eslint-disable max-len */ import { Component, ViewChild, OnInit, Inject } from '@angular/core'; - -import { - IgxGridComponent, SortingDirection, ISortingExpression, - DefaultSortingStrategy, DisplayDensity, IDisplayDensityOptions, DisplayDensityToken, GridSummaryPosition, GridSummaryCalculationMode, IRowSelectionEventArgs, ISortingOptions, GroupMemberCountSortingStrategy -} from 'igniteui-angular'; +import { NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxDropDownItemComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-item.component'; +import { IgxDropDownComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down.component'; +import { IgxDropDownItemNavigationDirective } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive'; +import { IgxToggleActionDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { DisplayDensity, DisplayDensityToken, IDisplayDensityOptions } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { DefaultSortingStrategy, GroupMemberCountSortingStrategy, ISortingExpression, SortingDirection } from '../../../projects/igniteui-angular/src/lib/data-operations/sorting-strategy'; +import { GridSummaryCalculationMode, GridSummaryPosition } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; +import { IRowSelectionEventArgs, ISortingOptions } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; @Component({ providers: [{ provide: DisplayDensityToken, useValue: { displayDensity: DisplayDensity.compact } }], selector: 'app-grid-sample', styleUrls: ['grid-groupby.sample.scss'], - templateUrl: 'grid-groupby.sample.html' + templateUrl: 'grid-groupby.sample.html', + standalone: true, + imports: [IgxSwitchComponent, FormsModule, IgxButtonDirective, IgxToggleActionDirective, IgxDropDownItemNavigationDirective, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxButtonGroupComponent, IgxGridComponent, IgxColumnComponent] }) export class GridGroupBySampleComponent implements OnInit { @ViewChild('grid1', { static: true }) @@ -72,7 +85,7 @@ export class GridGroupBySampleComponent implements OnInit { { Salary: 800, ID: 'BLAUS', CompanyName: 'Blauer See Delikatessen', ContactName: 'Hanna Moos', ContactTitle: 'Sales Representative', Address: 'Forsterstr. 57', City: 'Mannheim', Region: null, PostalCode: '68306', Country: 'Germany', Phone: '0621-08460', Fax: '0621-08924' }, { Salary: 900, ID: 'BLONP', CompanyName: 'Blondesddsl père et fils', ContactName: 'Frédérique Citeaux', ContactTitle: 'Marketing Manager', Address: '24, place Kléber', City: 'Strasbourg', Region: null, PostalCode: '67000', Country: 'France', Phone: '88.60.15.31', Fax: '88.60.15.32' }, { Salary: 9000, ID: 'BOLID', CompanyName: 'Bólido Comidas preparadas', ContactName: 'Martín Sommer', ContactTitle: 'Owner', Address: 'C/ Araquil, 67', City: 'Madrid', Region: null, PostalCode: '28023', Country: 'Spain', Phone: '(91) 555 22 82', Fax: '(91) 555 91 99' }, - { Salary: 3300, ID: 'BONAP', CompanyName: 'Bon app\s', ContactName: 'Laurence Lebihan', ContactTitle: 'Owner', Address: '12, rue des Bouchers', City: 'Marseille', Region: null, PostalCode: '13008', Country: 'France', Phone: '91.24.45.40', Fax: '91.24.45.41' }, + { Salary: 3300, ID: 'BONAP', CompanyName: 'Bon app\'s', ContactName: 'Laurence Lebihan', ContactTitle: 'Owner', Address: '12, rue des Bouchers', City: 'Marseille', Region: null, PostalCode: '13008', Country: 'France', Phone: '91.24.45.40', Fax: '91.24.45.41' }, { Salary: 2500, ID: 'BOTTM', CompanyName: 'Bottom-Dollar Markets', ContactName: 'Elizabeth Lincoln', ContactTitle: 'Accounting Manager', Address: '23 Tsawassen Blvd.', City: 'Tsawassen', Region: 'BC', PostalCode: 'T2F 8M4', Country: 'Canada', Phone: '(604) 555-4729', Fax: '(604) 555-3745' }, { Salary: 4700, ID: 'BSBEV', CompanyName: 'B\'s Beverages', ContactName: 'Victoria Ashworth', ContactTitle: 'Sales Representative', Address: 'Fauntleroy Circus', City: 'London', Region: null, PostalCode: 'EC2 5NT', Country: 'UK', Phone: '(171) 555-1212', Fax: null }, { Salary: 4100, ID: 'CACTU', CompanyName: 'Cactus Comidas para llevar', ContactName: 'Patricio Simpson', ContactTitle: 'Sales Agent', Address: 'Cerrito 333', City: 'Buenos Aires', Region: null, PostalCode: '1010', Country: 'Argentina', Phone: '(1) 135-5555', Fax: '(1) 135-4892' }, @@ -188,4 +201,4 @@ export class GridGroupBySampleComponent implements OnInit { public rowSelectionChanged(e: IRowSelectionEventArgs) { console.log(e); } -} \ No newline at end of file +} diff --git a/src/app/grid-localization/grid-localization.sample.ts b/src/app/grid-localization/grid-localization.sample.ts index 896b55fc8af..40100060350 100644 --- a/src/app/grid-localization/grid-localization.sample.ts +++ b/src/app/grid-localization/grid-localization.sample.ts @@ -2,7 +2,9 @@ /* eslint-disable @typescript-eslint/member-delimiter-style */ /* eslint-disable @typescript-eslint/naming-convention */ import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { registerLocaleData } from '@angular/common'; +import { registerLocaleData, NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + import localeBG from '@angular/common/locales/bg'; import localeEN from '@angular/common/locales/en'; import localeDE from '@angular/common/locales/de'; @@ -16,16 +18,22 @@ import localeHant from '@angular/common/locales/zh-Hant'; import localeHI from '@angular/common/locales/hi'; import { DATA } from '../shared/financialData'; -import { IgxGridComponent, IResourceStrings, changei18n, getCurrentResourceStrings } from 'igniteui-angular'; import { IgxResourceStringsBG, IgxResourceStringsDE, IgxResourceStringsES, IgxResourceStringsFR, IgxResourceStringsIT, IgxResourceStringsJA, IgxResourceStringsKO, IgxResourceStringsZHHANS, IgxResourceStringsZHHANT } from 'igniteui-angular-i18n'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { IgxSelectComponent } from '../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { changei18n, getCurrentResourceStrings, IResourceStrings } from '../../../projects/igniteui-angular/src/lib/core/i18n/resources'; @Component({ selector: 'app-grid-localization', styleUrls: ['./grid-localization.sample.scss'], - templateUrl: 'grid-localization.sample.html' + templateUrl: 'grid-localization.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxSelectComponent, FormsModule, NgFor, IgxSelectItemComponent] }) export class GridLocalizationSampleComponent implements OnInit, OnDestroy { diff --git a/src/app/grid-master-detail/grid-master-detail.sample.ts b/src/app/grid-master-detail/grid-master-detail.sample.ts index 4170fd89794..93bf908cc3d 100644 --- a/src/app/grid-master-detail/grid-master-detail.sample.ts +++ b/src/app/grid-master-detail/grid-master-detail.sample.ts @@ -1,14 +1,22 @@ /* eslint-disable max-len */ import { Component, ViewChild, OnInit, Inject, TemplateRef } from '@angular/core'; +import { NgFor, NgIf } from '@angular/common'; -import { IgxGridComponent, IgxGridStateDirective } from 'igniteui-angular'; import { DisplayDensity, IDisplayDensityOptions, DisplayDensityToken } from 'projects/igniteui-angular/src/lib/core/density'; +import { IgxGridDetailTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.directives'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridStateDirective } from '../../../projects/igniteui-angular/src/lib/grids/state.directive'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ - providers: [{ provide: DisplayDensityToken, useValue: { displayDensity: DisplayDensity.compact} }], + providers: [{ provide: DisplayDensityToken, useValue: { displayDensity: DisplayDensity.compact } }], selector: 'app-grid-sample', styleUrls: ['grid-master-detail.sample.scss'], - templateUrl: 'grid-master-detail.sample.html' + templateUrl: 'grid-master-detail.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxGridComponent, IgxGridStateDirective, NgFor, IgxColumnComponent, IgxCellTemplateDirective, NgIf, IgxGridDetailTemplateDirective] }) export class GridMasterDetailSampleComponent implements OnInit { @ViewChild('grid1', { static: true }) public grid1: IgxGridComponent; @@ -34,7 +42,7 @@ export class GridMasterDetailSampleComponent implements OnInit { { Salary: '800',ID: 'BLAUS', CompanyName: 'Blauer See Delikatessen', ContactName: 'Hanna Moos', ContactTitle: 'Sales Representative', Address: 'Forsterstr. 57', City: 'Mannheim', Region: null, PostalCode: '68306', Country: 'Germany', Phone: '0621-08460', Fax: '0621-08924' }, { Salary: '900',ID: 'BLONP', CompanyName: 'Blondesddsl père et fils', ContactName: 'Frédérique Citeaux', ContactTitle: 'Marketing Manager', Address: '24, place Kléber', City: 'Strasbourg', Region: null, PostalCode: '67000', Country: 'France', Phone: '88.60.15.31', Fax: '88.60.15.32' }, { Salary: '9000',ID: 'BOLID', CompanyName: 'Bólido Comidas preparadas', ContactName: 'Martín Sommer', ContactTitle: 'Owner', Address: 'C/ Araquil, 67', City: 'Madrid', Region: null, PostalCode: '28023', Country: 'Spain', Phone: '(91) 555 22 82', Fax: '(91) 555 91 99' }, - { Salary: '3300',ID: 'BONAP', CompanyName: 'Bon app\s', ContactName: 'Laurence Lebihan', ContactTitle: 'Owner', Address: '12, rue des Bouchers', City: 'Marseille', Region: null, PostalCode: '13008', Country: 'France', Phone: '91.24.45.40', Fax: '91.24.45.41' }, + { Salary: '3300',ID: 'BONAP', CompanyName: 'Bon app\'s', ContactName: 'Laurence Lebihan', ContactTitle: 'Owner', Address: '12, rue des Bouchers', City: 'Marseille', Region: null, PostalCode: '13008', Country: 'France', Phone: '91.24.45.40', Fax: '91.24.45.41' }, { Salary: '2500',ID: 'BOTTM', CompanyName: 'Bottom-Dollar Markets', ContactName: 'Elizabeth Lincoln', ContactTitle: 'Accounting Manager', Address: '23 Tsawassen Blvd.', City: 'Tsawassen', Region: 'BC', PostalCode: 'T2F 8M4', Country: 'Canada', Phone: '(604) 555-4729', Fax: '(604) 555-3745' }, { Salary: '4700',ID: 'BSBEV', CompanyName: 'B\'s Beverages', ContactName: 'Victoria Ashworth', ContactTitle: 'Sales Representative', Address: 'Fauntleroy Circus', City: 'London', Region: null, PostalCode: 'EC2 5NT', Country: 'UK', Phone: '(171) 555-1212', Fax: null }, { Salary: '4100',ID: 'CACTU', CompanyName: 'Cactus Comidas para llevar', ContactName: 'Patricio Simpson', ContactTitle: 'Sales Agent', Address: 'Cerrito 333', City: 'Buenos Aires', Region: null, PostalCode: '1010', Country: 'Argentina', Phone: '(1) 135-5555', Fax: '(1) 135-4892' }, diff --git a/src/app/grid-mrl-custom-navigation/grid-mrl-custom-navigation.ts b/src/app/grid-mrl-custom-navigation/grid-mrl-custom-navigation.ts index d7d8e32fea3..fd8b5ca9f53 100644 --- a/src/app/grid-mrl-custom-navigation/grid-mrl-custom-navigation.ts +++ b/src/app/grid-mrl-custom-navigation/grid-mrl-custom-navigation.ts @@ -1,9 +1,19 @@ import { Component, ViewChild } from '@angular/core'; import { IgxGridComponent, GridSelectionMode, DisplayDensity } from 'igniteui-angular'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxColumnLayoutComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-layout.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; @Component({ selector: 'app-grid-mrl-custom-navigation-sample', - templateUrl: 'grid-mrl-custom-navigation.sample.html' + templateUrl: 'grid-mrl-custom-navigation.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent_1, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxColumnLayoutComponent, IgxColumnComponent] }) export class GridMRLCustomNavigationSampleComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) diff --git a/src/app/grid-multi-row-layout-config/grid-mrl-config.sample.ts b/src/app/grid-multi-row-layout-config/grid-mrl-config.sample.ts index caa89a1e413..d3abfa25554 100644 --- a/src/app/grid-multi-row-layout-config/grid-mrl-config.sample.ts +++ b/src/app/grid-multi-row-layout-config/grid-mrl-config.sample.ts @@ -1,6 +1,14 @@ import { Component, ViewChild, ElementRef, ChangeDetectorRef, ViewChildren, QueryList } from '@angular/core'; -import { IgxGridComponent, IDropBaseEventArgs, IgxDialogComponent, IDropDroppedEventArgs, GridSelectionMode} from 'igniteui-angular'; +import { NgFor, NgStyle, NgIf } from '@angular/common'; + import { SAMPLE_DATA } from '../shared/sample-data'; +import { IgxDialogComponent } from '../../../projects/igniteui-angular/src/lib/dialog/dialog.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxColumnLayoutComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-layout.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IDropBaseEventArgs, IDropDroppedEventArgs, IgxDragDirective, IgxDropDirective } from '../../../projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; interface ColumnConfig { key: string; @@ -15,8 +23,10 @@ interface ColumnConfig { @Component({ selector: 'app-grid-mrl-config-sample', + templateUrl: 'grid-mrl-config.sample.html', styleUrls: ['grid-mrl-config.sample.scss'], - templateUrl: 'grid-mrl-config.sample.html' + standalone: true, + imports: [NgFor, IgxDragDirective, NgStyle, IgxDropDirective, NgIf, IgxButtonDirective, IgxGridComponent, IgxColumnLayoutComponent, IgxColumnComponent, IgxDialogComponent] }) export class GridMRLConfigSampleComponent { diff --git a/src/app/grid-multi-row-layout/grid-mrl.sample.ts b/src/app/grid-multi-row-layout/grid-mrl.sample.ts index d704cb46920..5e390fa47b8 100644 --- a/src/app/grid-multi-row-layout/grid-mrl.sample.ts +++ b/src/app/grid-multi-row-layout/grid-mrl.sample.ts @@ -1,10 +1,25 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxGridComponent, GridSelectionMode, DisplayDensity } from 'igniteui-angular'; + +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxGridEditingActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component'; +import { IgxActionStripComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/action-strip.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxColumnLayoutComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-layout.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ selector: 'app-grid-mrl-sample', - styleUrls: ['grid-mrl.sample.scss'], - templateUrl: 'grid-mrl.sample.html' + templateUrl: 'grid-mrl.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxColumnLayoutComponent, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, IgxGridEditingActionsComponent, IgxButtonDirective] }) export class GridMRLSampleComponent { @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true }) diff --git a/src/app/grid-nested-props/grid-nested-props.sample.ts b/src/app/grid-nested-props/grid-nested-props.sample.ts index f8511609050..18d8cd5e0a3 100644 --- a/src/app/grid-nested-props/grid-nested-props.sample.ts +++ b/src/app/grid-nested-props/grid-nested-props.sample.ts @@ -1,5 +1,15 @@ import { Component } from '@angular/core'; import { GridColumnDataType } from 'igniteui-angular'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { NgFor } from '@angular/common'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; interface GridConfig { field: string; @@ -9,7 +19,9 @@ interface GridConfig { @Component({ selector: 'app-grid-nested-props', - templateUrl: 'grid-nested-props.sample.html' + templateUrl: 'grid-nested-props.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, NgFor, IgxColumnComponent, IgxTreeGridComponent] }) export class GridNestedPropsSampleComponent { public data = []; diff --git a/src/app/grid-percentage-columns/grid-percantge-widths.sample.ts b/src/app/grid-percentage-columns/grid-percantge-widths.sample.ts index 2e26c0410b2..61391d49bc4 100644 --- a/src/app/grid-percentage-columns/grid-percantge-widths.sample.ts +++ b/src/app/grid-percentage-columns/grid-percantge-widths.sample.ts @@ -1,11 +1,27 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { IColumnPipeArgs, IgxGridComponent, IgxStringFilteringOperand } from 'igniteui-angular'; +import { NgFor, NgIf, CurrencyPipe, DatePipe } from '@angular/common'; + import { data, dataWithoutPK } from '../shared/data'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { IgxSelectComponent } from '../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { FormsModule } from '@angular/forms'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective } from '../../../projects/igniteui-angular/src/lib/card/card.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IColumnPipeArgs } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { IgxStringFilteringOperand } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-condition'; @Component({ providers: [], selector: 'app-grid-percantge-widths.sample', - styleUrls: ['grid-percantge-widths.sample.scss'], - templateUrl: 'grid-percantge-widths.sample.html' + templateUrl: 'grid-percantge-widths.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxPaginatorComponent, IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective, IgxInputGroupComponent, IgxLabelDirective, FormsModule, IgxInputDirective, IgxSelectComponent, NgFor, IgxSelectItemComponent, IgxButtonDirective, NgIf, CurrencyPipe, DatePipe] }) export class GridColumnPercentageWidthsSampleComponent implements OnInit { @ViewChild('grid1', { read: IgxGridComponent, static: true }) diff --git a/src/app/grid-performance/grid-performance.sample.ts b/src/app/grid-performance/grid-performance.sample.ts index 72fc8ad4a79..e393e88821e 100644 --- a/src/app/grid-performance/grid-performance.sample.ts +++ b/src/app/grid-performance/grid-performance.sample.ts @@ -1,10 +1,19 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { IgxGridComponent, GridSelectionMode } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; + +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ selector: 'app-grid-performance-sample', - styleUrls: ['grid-performance.sample.scss'], - templateUrl: 'grid-performance.sample.html' + templateUrl: 'grid-performance.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, NgFor, IgxColumnComponent] }) export class GridPerformanceSampleComponent implements OnInit { diff --git a/src/app/grid-remote-paging/grid-remote-paging.sample.ts b/src/app/grid-remote-paging/grid-remote-paging.sample.ts index b4d7ad0d18f..812afbd073b 100644 --- a/src/app/grid-remote-paging/grid-remote-paging.sample.ts +++ b/src/app/grid-remote-paging/grid-remote-paging.sample.ts @@ -1,12 +1,24 @@ import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { GridPagingMode, IgxGridComponent } from 'igniteui-angular'; -import { RemoteService } from '../shared/remote.service'; +import { NgIf, NgFor, AsyncPipe } from '@angular/common'; + import { Observable } from 'rxjs'; +import { RemoteService } from '../shared/remote.service'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { FormsModule } from '@angular/forms'; +import { IgxSelectComponent } from '../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective } from '../../../projects/igniteui-angular/src/lib/card/card.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { GridPagingMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; + @Component({ selector: 'app-grid-remote-paging-sample', - styleUrls: ['grid-remote-paging.sample.scss'], - templateUrl: 'grid-remote-paging.sample.html' + templateUrl: 'grid-remote-paging.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, NgIf, IgxPaginatorComponent, IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective, IgxButtonDirective, IgxSelectComponent, FormsModule, NgFor, IgxSelectItemComponent, AsyncPipe] }) export class GridRemotePagingSampleComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild('grid1', { static: true }) public grid1: IgxGridComponent; @@ -18,7 +30,7 @@ export class GridRemotePagingSampleComponent implements OnInit, AfterViewInit, O public paging = true; public data: Observable; public selectOptions = [5, 10, 15, 25, 50]; - public areAllRowsSelected: boolean = false; + public areAllRowsSelected = false; private _perPage = 15; private _dataLengthSubscriber; diff --git a/src/app/grid-remote-virtualization-with-scroll/grid-remote-virtualization-scroll.sample.ts b/src/app/grid-remote-virtualization-with-scroll/grid-remote-virtualization-scroll.sample.ts index 58dafe41e8e..d41b305a408 100644 --- a/src/app/grid-remote-virtualization-with-scroll/grid-remote-virtualization-scroll.sample.ts +++ b/src/app/grid-remote-virtualization-with-scroll/grid-remote-virtualization-scroll.sample.ts @@ -2,11 +2,15 @@ import { Component, ViewChild, ChangeDetectorRef, OnInit, AfterViewInit } from ' import { IgxColumnComponent, IgxGridComponent } from 'igniteui-angular'; import { debounceTime } from 'rxjs/operators'; import { RemoteVirtService } from '../shared/remoteProductsData.service'; +import { AsyncPipe } from '@angular/common'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; @Component({ selector: 'app-grid-remote-virtualization-scroll', templateUrl: 'grid-remote-virtualization-scroll.sample.html', - providers: [RemoteVirtService] + providers: [RemoteVirtService], + standalone: true, + imports: [IgxGridComponent_1, AsyncPipe] }) export class GridVirtualizationScrollSampleComponent implements OnInit, AfterViewInit { @@ -17,7 +21,7 @@ export class GridVirtualizationScrollSampleComponent implements OnInit, AfterVie public prevRequest: any; public columns: any; public loading = true; - public areAllRowsSelected: boolean = false; + public areAllRowsSelected = false; public clipboardOptions = { enabled: true, diff --git a/src/app/grid-remote-virtualization/grid-remote-virtualization.sample.ts b/src/app/grid-remote-virtualization/grid-remote-virtualization.sample.ts index 7e45ff311e3..b06ba84ce4f 100644 --- a/src/app/grid-remote-virtualization/grid-remote-virtualization.sample.ts +++ b/src/app/grid-remote-virtualization/grid-remote-virtualization.sample.ts @@ -1,11 +1,15 @@ import { Component, ViewChild, ChangeDetectorRef, OnInit, AfterViewInit } from '@angular/core'; -import { IgxGridComponent } from 'igniteui-angular'; +import { AsyncPipe } from '@angular/common'; + import { RemoteService } from '../shared/remote.service'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; @Component({ selector: 'app-grid-remote-virtualization-sample', - styleUrls: ['grid-remote-virtualization.sample.html'], - templateUrl: 'grid-remote-virtualization.sample.html' + templateUrl: 'grid-remote-virtualization.sample.html', + standalone: true, + imports: [IgxGridComponent, IgxButtonDirective, AsyncPipe] }) export class GridVirtualizationSampleComponent implements OnInit, AfterViewInit { diff --git a/src/app/grid-row-api/grid-row-api.sample.ts b/src/app/grid-row-api/grid-row-api.sample.ts index cf3e3a00704..00abd03c687 100644 --- a/src/app/grid-row-api/grid-row-api.sample.ts +++ b/src/app/grid-row-api/grid-row-api.sample.ts @@ -1,20 +1,32 @@ import { Component, OnInit, Renderer2, ViewChild } from '@angular/core'; -import { - IgxGridComponent, - RowType, - IgxTreeGridComponent, - IgxHierarchicalGridComponent, - IPinningConfig, - RowPinningPosition, - GridSummaryCalculationMode, - GridSummaryPosition -} from 'igniteui-angular'; +import { NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + import { HIERARCHICAL_SAMPLE_DATA } from '../shared/sample-data'; +import { IgxPaginatorDirective } from '../../../projects/igniteui-angular/src/lib/paginator/paginator-interfaces'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxHierarchicalGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxRowDragGhostDirective } from '../../../projects/igniteui-angular/src/lib/grids/row-drag.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridDetailTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.directives'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IPinningConfig, RowType } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { GridSummaryCalculationMode, GridSummaryPosition, RowPinningPosition } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ selector: 'app-grid-row-api-sample', styleUrls: ['grid-row-api.sample.scss'], - templateUrl: 'grid-row-api.sample.html' + templateUrl: 'grid-row-api.sample.html', + standalone: true, + imports: [FormsModule, IgxGridComponent, IgxGridDetailTemplateDirective, NgFor, IgxColumnComponent, IgxRowDragGhostDirective, IgxIconComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxPaginatorComponent, IgxButtonDirective, IgxTreeGridComponent, IgxHierarchicalGridComponent, IgxRowIslandComponent, IgxPaginatorDirective] }) export class GridRowAPISampleComponent implements OnInit { diff --git a/src/app/grid-row-draggable/grid-row-draggable.sample.ts b/src/app/grid-row-draggable/grid-row-draggable.sample.ts index b58047e00e2..030028c38d1 100644 --- a/src/app/grid-row-draggable/grid-row-draggable.sample.ts +++ b/src/app/grid-row-draggable/grid-row-draggable.sample.ts @@ -1,7 +1,19 @@ import { AfterViewInit, ChangeDetectorRef, Component, ViewChild } from '@angular/core'; +import { AsyncPipe } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + import { Observable } from 'rxjs'; -import { DisplayDensity, IgxGridComponent } from 'igniteui-angular'; + import { RemoteService } from '../shared/remote.service'; +import { IgxDropDirective } from '../../../projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive'; +import { IgxRowDragDirective, IgxRowDragGhostDirective, IgxDragIndicatorIconDirective } from '../../../projects/igniteui-angular/src/lib/grids/row-drag.directive'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; enum DragIcon { DEFAULT = 'drag_indicator', @@ -11,8 +23,10 @@ enum DragIcon { @Component({ selector: 'app-grid-row-draggable-sample', + templateUrl: 'grid-row-draggable.sample.html', styleUrls: ['grid-row-draggable.sample.scss'], - templateUrl: 'grid-row-draggable.sample.html' + standalone: true, + imports: [IgxButtonGroupComponent, IgxSwitchComponent, FormsModule, IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxIconComponent, IgxRowDragDirective, IgxRowDragGhostDirective, IgxDropDirective, IgxDragIndicatorIconDirective, AsyncPipe] }) export class GridRowDraggableComponent implements AfterViewInit { diff --git a/src/app/grid-row-edit/grid-row-edit-sample.component.ts b/src/app/grid-row-edit/grid-row-edit-sample.component.ts index 0758320157b..b51a15e3cca 100644 --- a/src/app/grid-row-edit/grid-row-edit-sample.component.ts +++ b/src/app/grid-row-edit/grid-row-edit-sample.component.ts @@ -1,12 +1,27 @@ import { Component, ViewChild } from '@angular/core'; -import { data } from '../shared/data'; +import { NgFor, NgIf } from '@angular/common'; +import { FormsModule } from '@angular/forms'; -import { IgxGridComponent, IgxToggleDirective, GridSelectionMode, IRowDataEventArgs } from 'igniteui-angular'; +import { data } from '../shared/data'; +import { IgxToggleDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxCheckboxComponent } from '../../../projects/igniteui-angular/src/lib/checkbox/checkbox.component'; +import { IgxFocusDirective } from '../../../projects/igniteui-angular/src/lib/directives/focus/focus.directive'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; +import { IgxColumnComponent, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTextDirective, IRowDataEventArgs } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/public_api'; +import { IgxCellEditorTemplateDirective, IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnRequiredValidatorDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/validators.directive'; +import { IgxColumnGroupComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-group.component'; @Component({ selector: 'app-grid-row-edit', styleUrls: [`grid-row-edit-sample.component.scss`], - templateUrl: 'grid-row-edit-sample.component.html' + templateUrl: 'grid-row-edit-sample.component.html', + standalone: true, + imports: [IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective, IgxColumnRequiredValidatorDirective, IgxCellEditorTemplateDirective, FormsModule, IgxFocusDirective, IgxCheckboxComponent, NgFor, IgxButtonDirective, IgxSwitchComponent, IgxColumnGroupComponent, NgIf, IgxRowEditTabStopDirective, IgxRowEditTextDirective, IgxRowEditActionsDirective, IgxPaginatorComponent, IgxToggleDirective] }) export class GridRowEditSampleComponent { @ViewChild(IgxToggleDirective, { static: true }) @@ -224,7 +239,7 @@ export class GridRowEditSampleComponent { return null; } - private generatePerformanceData(rowsCount: number = 100000, colsCount: number = 300) { + private generatePerformanceData(rowsCount = 100000, colsCount = 300) { const cols = []; cols.push({ field: 'ID', diff --git a/src/app/grid-row-pinning/grid-row-pinning.sample.ts b/src/app/grid-row-pinning/grid-row-pinning.sample.ts index a1540ce2406..d9d6f2556bb 100644 --- a/src/app/grid-row-pinning/grid-row-pinning.sample.ts +++ b/src/app/grid-row-pinning/grid-row-pinning.sample.ts @@ -15,15 +15,36 @@ import { RowType } from 'igniteui-angular'; import { pinLeft, unpinLeft } from '@igniteui/material-icons-extended'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxHierarchicalGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { NgFor } from '@angular/common'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridDetailTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.directives'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { GridSearchBoxComponent } from '../grid-search-box/grid-search-box.component'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridStateDirective as IgxGridStateDirective_1 } from '../../../projects/igniteui-angular/src/lib/grids/state.directive'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ selector: 'app-grid-row-pinning-sample', styleUrls: ['grid-row-pinning.sample.scss'], templateUrl: 'grid-row-pinning.sample.html', providers: [ - { provide: DisplayDensityToken, useValue: { displayDensity: DisplayDensity.comfortable} }, + { provide: DisplayDensityToken, useValue: { displayDensity: DisplayDensity.comfortable } }, IgxIconService ], + standalone: true, + imports: [IgxButtonDirective, IgxSwitchComponent, IgxGridComponent_1, IgxGridStateDirective_1, IgxGridToolbarComponent, GridSearchBoxComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridDetailTemplateDirective, IgxColumnComponent, IgxCellTemplateDirective, IgxIconComponent, NgFor, IgxPaginatorComponent, IgxHierarchicalGridComponent, IgxRowIslandComponent, IgxTreeGridComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective] }) export class GridRowPinningSampleComponent implements OnInit, AfterViewInit { diff --git a/src/app/grid-row-reorder/grid-row-reorder.sample.ts b/src/app/grid-row-reorder/grid-row-reorder.sample.ts index fc8249f175d..d20d616d233 100644 --- a/src/app/grid-row-reorder/grid-row-reorder.sample.ts +++ b/src/app/grid-row-reorder/grid-row-reorder.sample.ts @@ -1,13 +1,18 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxGridComponent } from 'igniteui-angular'; + import { IgxRowDirective } from 'projects/igniteui-angular/src/lib/grids/row.directive'; import { DATA } from './nwindData'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxDropDirective } from '../../../projects/igniteui-angular/src/lib/directives/drag-drop/drag-drop.directive'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; @Component({ selector: 'app-grid-row-reorder-sample', + templateUrl: 'grid-row-reorder.sample.html', styleUrls: ['grid-row-reorder.sample.scss'], - templateUrl: 'grid-row-reorder.sample.html' + standalone: true, + imports: [IgxGridComponent, IgxDropDirective, IgxColumnComponent] }) export class GridRowReorderComponent { diff --git a/src/app/grid-search-box/grid-search-box.component.ts b/src/app/grid-search-box/grid-search-box.component.ts index 7b9936f5a20..de8aa44bb83 100644 --- a/src/app/grid-search-box/grid-search-box.component.ts +++ b/src/app/grid-search-box/grid-search-box.component.ts @@ -1,14 +1,27 @@ import { Component, Input } from '@angular/core'; -import { IgxGridBaseDirective } from 'igniteui-angular'; + +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxChipComponent } from '../../../projects/igniteui-angular/src/lib/chips/chip.component'; +import { IgxChipsAreaComponent } from '../../../projects/igniteui-angular/src/lib/chips/chips-area.component'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { FormsModule } from '@angular/forms'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { NgIf } from '@angular/common'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxGridComponent, IgxHierarchicalGridComponent, IgxTreeGridComponent } from 'igniteui-angular'; @Component({ selector: 'app-grid-search-box', styleUrls: ['./grid-search-box.component.scss'], - templateUrl: './grid-search-box.component.html' + templateUrl: './grid-search-box.component.html', + standalone: true, + imports: [IgxInputGroupComponent, IgxPrefixDirective, NgIf, IgxIconComponent, FormsModule, IgxInputDirective, IgxSuffixDirective, IgxChipsAreaComponent, IgxChipComponent, IgxRippleDirective] }) export class GridSearchBoxComponent { @Input() - public grid: IgxGridBaseDirective; + public grid: IgxGridComponent | IgxTreeGridComponent | IgxHierarchicalGridComponent; public searchText = ''; public caseSensitive = false; diff --git a/src/app/grid-search/grid-search.sample.ts b/src/app/grid-search/grid-search.sample.ts index 1ba96179b80..375f910f299 100644 --- a/src/app/grid-search/grid-search.sample.ts +++ b/src/app/grid-search/grid-search.sample.ts @@ -1,11 +1,27 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { IgxGridComponent, GridSelectionMode, DisplayDensity } from 'igniteui-angular'; +import { NgFor } from '@angular/common'; + +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { GridSearchBoxComponent } from '../grid-search-box/grid-search-box.component'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ providers: [], selector: 'app-grid-search-sample', styleUrls: ['grid-search.sample.scss'], - templateUrl: 'grid-search.sample.html' + templateUrl: 'grid-search.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent, IgxGridToolbarComponent, GridSearchBoxComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, NgFor, IgxColumnComponent, IgxButtonDirective] }) export class GridSearchComponent implements OnInit { diff --git a/src/app/grid-selection/grid-selection.sample.ts b/src/app/grid-selection/grid-selection.sample.ts index 22f6849c6fa..8ee3a5834fb 100644 --- a/src/app/grid-selection/grid-selection.sample.ts +++ b/src/app/grid-selection/grid-selection.sample.ts @@ -1,12 +1,26 @@ import { AfterViewInit, ChangeDetectorRef, Component, ViewChild } from '@angular/core'; +import { NgFor, NgIf, AsyncPipe } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + import { Observable } from 'rxjs'; -import { IgxGridComponent } from 'igniteui-angular'; + import { RemoteService } from '../shared/remote.service'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxDropDownItemComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-item.component'; +import { IgxDropDownComponent } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down.component'; +import { IgxDropDownItemNavigationDirective } from '../../../projects/igniteui-angular/src/lib/drop-down/drop-down-navigation.directive'; +import { IgxToggleActionDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; @Component({ selector: 'app-grid-selection-sample', + templateUrl: 'grid-selection.sample.html', styleUrls: ['grid-selection.sample.scss'], - templateUrl: 'grid-selection.sample.html' + standalone: true, + imports: [IgxSwitchComponent, FormsModule, IgxButtonDirective, IgxToggleActionDirective, IgxDropDownItemNavigationDirective, IgxDropDownComponent, NgFor, IgxDropDownItemComponent, IgxGridComponent, IgxColumnComponent, NgIf, IgxRippleDirective, AsyncPipe] }) export class GridSelectionComponent implements AfterViewInit { @ViewChild('grid1', { static: true }) diff --git a/src/app/grid-state/about.component.ts b/src/app/grid-state/about.component.ts index de279074fbb..581fc51ad3e 100644 --- a/src/app/grid-state/about.component.ts +++ b/src/app/grid-state/about.component.ts @@ -1,8 +1,12 @@ import { Component } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ - selector: 'app-about', - templateUrl: './about.component.html' + selector: 'app-about', + templateUrl: './about.component.html', + standalone: true, + imports: [IgxButtonDirective, RouterLink] }) export class AboutComponent { } diff --git a/src/app/grid-state/grid-state.component.ts b/src/app/grid-state/grid-state.component.ts index a51bb88fbc8..92529e711ad 100644 --- a/src/app/grid-state/grid-state.component.ts +++ b/src/app/grid-state/grid-state.component.ts @@ -1,11 +1,34 @@ import { Component, OnInit, ViewChild, QueryList, ViewChildren, TemplateRef } from '@angular/core'; import { FilteringExpressionsTree, FilteringLogic, IgxNumberSummaryOperand, IgxSummaryResult, IGridState, IgxGridStateDirective, - IgxExpansionPanelComponent, IgxGridBaseDirective, - IGridStateOptions, GridFeatures, GridColumnDataType, IgxColumnComponent } from 'igniteui-angular'; + IgxExpansionPanelComponent, + IGridStateOptions, GridFeatures, GridColumnDataType, IgxColumnComponent, GridType } from 'igniteui-angular'; import { take } from 'rxjs/operators'; -import { Router } from '@angular/router'; +import { Router, RouterLink } from '@angular/router'; import { TREEGRID_FLAT_DATA, EMPLOYEE_DATA, employeesData } from './data'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { FormsModule } from '@angular/forms'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxTooltipTargetDirective } from '../../../projects/igniteui-angular/src/lib/directives/tooltip/tooltip-target.directive'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxHierarchicalGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { IgxColumnGroupComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column-group.component'; +import { IgxTooltipDirective } from '../../../projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxGridDetailTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.directives'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxExpansionPanelBodyComponent } from '../../../projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-body.component'; +import { NgIf, NgTemplateOutlet, NgFor } from '@angular/common'; +import { IgxExpansionPanelTitleDirective, IgxExpansionPanelIconDirective } from '../../../projects/igniteui-angular/src/lib/expansion-panel/expansion-panel.directives'; +import { IgxExpansionPanelHeaderComponent } from '../../../projects/igniteui-angular/src/lib/expansion-panel/expansion-panel-header.component'; class MySummary extends IgxNumberSummaryOperand { @@ -43,9 +66,11 @@ interface GridState { } @Component({ - selector: 'app-grid', - styleUrls: ['./grid-state.component.scss'], - templateUrl: './grid-state.component.html' + selector: 'app-grid', + styleUrls: ['./grid-state.component.scss'], + templateUrl: './grid-state.component.html', + standalone: true, + imports: [IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, NgIf, IgxExpansionPanelIconDirective, IgxExpansionPanelBodyComponent, NgTemplateOutlet, IgxGridComponent, IgxGridStateDirective, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, NgFor, IgxColumnComponent, IgxGridDetailTemplateDirective, IgxPaginatorComponent, IgxTooltipDirective, IgxColumnGroupComponent, IgxHierarchicalGridComponent, IgxRowIslandComponent, IgxTreeGridComponent, RouterLink, IgxTooltipTargetDirective, IgxIconComponent, IgxSwitchComponent, FormsModule, IgxButtonDirective, IgxCellTemplateDirective] }) export class GridSaveStateComponent implements OnInit { @@ -127,7 +152,7 @@ export class GridSaveStateComponent implements OnInit { }); } - public getContext(grid: IgxGridBaseDirective) { + public getContext(grid: GridType) { if (this.state) { const stateDirective = this.state.find(st => st.grid.id === grid.id); return { $implicit: grid, stateDirective}; diff --git a/src/app/grid-summaries/grid-summaries.sample.ts b/src/app/grid-summaries/grid-summaries.sample.ts index d71ac262f88..d692321fc56 100644 --- a/src/app/grid-summaries/grid-summaries.sample.ts +++ b/src/app/grid-summaries/grid-summaries.sample.ts @@ -7,6 +7,19 @@ import { IPinningConfig, DisplayDensity } from 'igniteui-angular'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { FormsModule } from '@angular/forms'; +import { IgxCellTemplateDirective, IgxSummaryTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { NgIf } from '@angular/common'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; class MySummary extends IgxNumberSummaryOperand { @@ -29,7 +42,9 @@ class MySummary extends IgxNumberSummaryOperand { @Component({ selector: 'app-grid-summaries-sample', styleUrls: ['./grid-summaries.component.scss'], - templateUrl: 'grid-summaries.sample.html' + templateUrl: 'grid-summaries.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxGridComponent_1, NgIf, IgxGridToolbarComponent, IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, IgxColumnComponent, IgxCellTemplateDirective, IgxSummaryTemplateDirective, FormsModule, IgxSwitchComponent] }) export class GridSummaryComponent implements OnInit { diff --git a/src/app/grid-toolbar/grid-toolbar-custom.sample.ts b/src/app/grid-toolbar/grid-toolbar-custom.sample.ts index c047b3816c7..0db9d4026e5 100644 --- a/src/app/grid-toolbar/grid-toolbar-custom.sample.ts +++ b/src/app/grid-toolbar/grid-toolbar-custom.sample.ts @@ -1,11 +1,27 @@ import { Component } from '@angular/core'; -import { IgxColumnComponent } from 'igniteui-angular'; +import { NgIf } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; @Component({ selector: 'app-grid-toolbar-custom-sample', styleUrls: ['grid-toolbar-custom.sample.scss'], - templateUrl: 'grid-toolbar-custom.sample.html' + templateUrl: 'grid-toolbar-custom.sample.html', + standalone: true, + imports: [IgxGridComponent, NgIf, IgxGridToolbarComponent, IgxButtonDirective, IgxRippleDirective, IgxIconComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, IgxSwitchComponent, FormsModule] }) export class GridToolbarCustomSampleComponent { public showToolbar = true; diff --git a/src/app/grid-toolbar/grid-toolbar.sample.ts b/src/app/grid-toolbar/grid-toolbar.sample.ts index 9e898f4bace..b1f172adb86 100644 --- a/src/app/grid-toolbar/grid-toolbar.sample.ts +++ b/src/app/grid-toolbar/grid-toolbar.sample.ts @@ -1,10 +1,25 @@ import { Component } from '@angular/core'; -import { IgxCsvExporterService, IgxExcelExporterService, IgxColumnComponent, DisplayDensity } from 'igniteui-angular'; +import { NgIf } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; +import { IgxCsvExporterService, IgxExcelExporterService } from '../../../projects/igniteui-angular/src/lib/services/public_api'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; @Component({ selector: 'app-grid-toolbar-sample', styleUrls: ['grid-toolbar.sample.scss'], - templateUrl: 'grid-toolbar.sample.html' + templateUrl: 'grid-toolbar.sample.html', + standalone: true, + imports: [IgxGridComponent, NgIf, IgxGridToolbarComponent, IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, IgxSwitchComponent, FormsModule] }) export class GridToolbarSampleComponent { public showToolbar = true; diff --git a/src/app/grid-updates-test/grid-updates.component.ts b/src/app/grid-updates-test/grid-updates.component.ts index 877ac7f15ed..6ab83ad8d76 100644 --- a/src/app/grid-updates-test/grid-updates.component.ts +++ b/src/app/grid-updates-test/grid-updates.component.ts @@ -2,11 +2,16 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { IRowSelectionEventArgs } from 'igniteui-angular'; import { IgxGridComponent } from 'projects/igniteui-angular/src/lib/grids/grid/grid.component'; import { AMINO_DATA } from './aminoData'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { NgFor } from '@angular/common'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; @Component({ - selector: 'app-grid-updates', - styleUrls: ['./grid-updates.component.scss'], - templateUrl: './grid-updates.component.html' + selector: 'app-grid-updates', + styleUrls: ['./grid-updates.component.scss'], + templateUrl: './grid-updates.component.html', + standalone: true, + imports: [IgxGridComponent_1, NgFor, IgxColumnComponent] }) export class GridUpdatesComponent implements OnInit { @ViewChild('grid') public grid: IgxGridComponent; diff --git a/src/app/grid-validation/grid-validation.sample.component.html b/src/app/grid-validation/grid-validation.sample.component.html index bd068ab1c14..1f3ac7a17c2 100644 --- a/src/app/grid-validation/grid-validation.sample.component.html +++ b/src/app/grid-validation/grid-validation.sample.component.html @@ -3,61 +3,63 @@

    Grid without transactions

    Row edit - - - {{cell.row.validation.status}} - - - - - - - - - - -
    - This name is forbidden. -
    -
    -
    - - - - - - -
    - + [width]="'1000px'" [height]="'800px'"> + + + {{cell.row.validation.status}} + + + + + + + + + + +
    + This name is forbidden. +
    +
    +
    + + + + + + + + + +

    Grid with transactions

    Row edit - - - - - + + + +
    This name is forbidden.
    - - + +
    - - - - - + + + + +
    @@ -65,7 +67,7 @@

    Grid with transactions

    TreeGrid

    - + {{cell.row.validation.status}} @@ -85,19 +87,19 @@

    TreeGrid

    Hierarchical Grid

    - - - - - - - -
    - This name is forbidden. -
    -
    + [width]="'900px'" [height]="'550px'" [rowEditable]="true" [moving]="true"> + -
    -
    + + + + + +
    + This name is forbidden. +
    +
    +
    +
    +
    diff --git a/src/app/grid-validation/grid-validation.sample.component.ts b/src/app/grid-validation/grid-validation.sample.component.ts index b1b326ea6bd..7125e6bf658 100644 --- a/src/app/grid-validation/grid-validation.sample.component.ts +++ b/src/app/grid-validation/grid-validation.sample.component.ts @@ -1,9 +1,23 @@ import { Component, Directive, ViewChild, Input } from '@angular/core'; +import { NgTemplateOutlet, NgIf, NgFor } from '@angular/common'; +import { AbstractControl, NG_VALIDATORS, ValidationErrors, ValidatorFn, Validators, FormsModule } from '@angular/forms'; + import { data } from '../shared/data'; -import { IgxGridComponent, IRecordValidationState, IGridValidationStatusEventArgs, RowType, GridColumnDataType, IGridFormGroupCreatedEventArgs } from 'igniteui-angular'; -import { AbstractControl, NG_VALIDATORS, ValidationErrors, ValidatorFn, Validators } from '@angular/forms'; import { HIERARCHICAL_DATA } from '../shared/hierarchicalData'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxHierarchicalGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxGridEditingActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component'; +import { IgxActionStripComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/action-strip.component'; +import { IgxCellTemplateDirective, IgxCellEditorTemplateDirective, IgxCellValidationErrorDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IGridFormGroupCreatedEventArgs, IGridValidationStatusEventArgs, IRecordValidationState, RowType } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { GridColumnDataType } from '../../../projects/igniteui-angular/src/lib/data-operations/data-util'; +import { IGX_GRID_VALIDATION_DIRECTIVES } from '../../../projects/igniteui-angular/src/lib/grids/columns/public_api'; export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn { return (control: AbstractControl): ValidationErrors | null => { @@ -14,8 +28,9 @@ export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn { @Directive({ selector: '[appForbiddenName]', - providers: [{provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true}] - }) + providers: [{ provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true }], + standalone: true +}) export class ForbiddenValidatorDirective extends Validators { @Input('appForbiddenName') public forbiddenName = ''; @@ -31,6 +46,27 @@ export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn { selector: 'app-grid-row-edit', styleUrls: [`grid-validation.sample.component.scss`], templateUrl: 'grid-validation.sample.component.html', + standalone: true, + imports: [ + NgFor, + NgIf, + NgTemplateOutlet, + FormsModule, + IgxSwitchComponent, + IgxGridComponent, + IgxColumnComponent, + IgxCellTemplateDirective, + ForbiddenValidatorDirective, + IgxCellEditorTemplateDirective, + IgxCellValidationErrorDirective, + IgxActionStripComponent, + IgxGridPinningActionsComponent, + IgxGridEditingActionsComponent, + IgxTreeGridComponent, + IgxHierarchicalGridComponent, + IgxRowIslandComponent, + IGX_GRID_VALIDATION_DIRECTIVES + ] }) export class GridValidationSampleComponent { public rowEditWithTransactions = true; diff --git a/src/app/grid/grid.sample.ts b/src/app/grid/grid.sample.ts index 02e52110434..8e41d985330 100644 --- a/src/app/grid/grid.sample.ts +++ b/src/app/grid/grid.sample.ts @@ -1,31 +1,38 @@ import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core'; import { Observable } from 'rxjs'; -import { - IgxColumnComponent, - IgxGridComponent, - IgxSnackbarComponent, - IgxToastComponent, - SortingDirection, - CsvFileTypes, - IgxBaseExporter, - IgxCsvExporterOptions, - IgxCsvExporterService, - IgxExcelExporterOptions, - IgxExporterOptionsBase, - IgxExcelExporterService, - IgxStringFilteringOperand, - DefaultSortingStrategy, - GridSelectionMode, - VerticalAlignment -} from 'igniteui-angular'; +import { NgFor, AsyncPipe } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + import { RemoteService } from '../shared/remote.service'; import { LocalService } from '../shared/local.service'; +import { IgxSnackbarComponent } from '../../../projects/igniteui-angular/src/lib/snackbar/snackbar.component'; +import { IgxToastComponent } from '../../../projects/igniteui-angular/src/lib/toast/toast.component'; +import { IgxPaginatorComponent } from '../../../projects/igniteui-angular/src/lib/paginator/paginator.component'; +import { IgxCheckboxComponent } from '../../../projects/igniteui-angular/src/lib/checkbox/checkbox.component'; +import { IgxCellHeaderTemplateDirective, IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxColumnHidingDirective } from '../../../projects/igniteui-angular/src/lib/grids/column-actions/column-hiding.directive'; +import { IgxColumnActionsComponent } from '../../../projects/igniteui-angular/src/lib/grids/column-actions/column-actions.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxCardComponent, IgxCardHeaderComponent, IgxCardContentDirective, IgxCardActionsComponent } from '../../../projects/igniteui-angular/src/lib/card/card.component'; +import { IgxStringFilteringOperand } from '../../../projects/igniteui-angular/src/lib/data-operations/filtering-condition'; +import { CsvFileTypes, IgxBaseExporter, IgxCsvExporterOptions, IgxCsvExporterService, IgxExcelExporterOptions, IgxExcelExporterService, IgxExporterOptionsBase, VerticalAlignment } from '../../../projects/igniteui-angular/src/lib/services/public_api'; +import { DefaultSortingStrategy, SortingDirection } from '../../../projects/igniteui-angular/src/lib/data-operations/sorting-strategy'; +import { GridSelectionMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; @Component({ selector: 'app-grid-sample', - styleUrls: [ 'grid.sample.scss'], - templateUrl: 'grid.sample.html' + styleUrls: ['grid.sample.scss'], + templateUrl: 'grid.sample.html', + standalone: true, + imports: [IgxCardComponent, IgxCardHeaderComponent, IgxCardContentDirective, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxLabelDirective, IgxCardActionsComponent, IgxButtonDirective, IgxRippleDirective, IgxColumnActionsComponent, IgxColumnHidingDirective, NgFor, IgxSwitchComponent, IgxGridComponent, IgxColumnComponent, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCheckboxComponent, IgxPaginatorComponent, IgxToastComponent, IgxSnackbarComponent, AsyncPipe] }) export class GridSampleComponent implements OnInit, AfterViewInit { @ViewChild('grid1', { static: true }) diff --git a/src/app/hierarchical-grid-add-row/hierarchical-grid-add-row.sample.ts b/src/app/hierarchical-grid-add-row/hierarchical-grid-add-row.sample.ts index 088775c2e11..b3b03edcb6e 100644 --- a/src/app/hierarchical-grid-add-row/hierarchical-grid-add-row.sample.ts +++ b/src/app/hierarchical-grid-add-row/hierarchical-grid-add-row.sample.ts @@ -1,8 +1,15 @@ import { Component, ChangeDetectorRef, AfterViewInit } from '@angular/core'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxGridEditingActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component'; +import { IgxActionStripComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/action-strip.component'; +import { IgxHierarchicalGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; @Component({ selector: 'app-hierarchical-grid-add-row-sample', - templateUrl: 'hierarchical-grid-add-row.sample.html' + templateUrl: 'hierarchical-grid-add-row.sample.html', + standalone: true, + imports: [IgxHierarchicalGridComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, IgxGridEditingActionsComponent, IgxRowIslandComponent] }) export class HierarchicalGridAddRowSampleComponent implements AfterViewInit { public localData = []; diff --git a/src/app/hierarchical-grid-remote-virtualization/hierarchical-grid-remote-virtualization.ts b/src/app/hierarchical-grid-remote-virtualization/hierarchical-grid-remote-virtualization.ts index ce86bd863eb..961f698e7d6 100644 --- a/src/app/hierarchical-grid-remote-virtualization/hierarchical-grid-remote-virtualization.ts +++ b/src/app/hierarchical-grid-remote-virtualization/hierarchical-grid-remote-virtualization.ts @@ -5,12 +5,19 @@ import { import { RemoteService } from '../shared/remote.service'; import { HierarchicalRemoteService } from './hierarchical-remote.service'; import { debounceTime } from 'rxjs/operators'; +import { IgxRowIslandComponent } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxHierarchicalGridComponent as IgxHierarchicalGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; +import { NgIf } from '@angular/common'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; @Component({ selector: 'app-hierarchical-grid-remote-virtualization-sample', templateUrl: 'hierarchical-grid-remote-virtualization.html', styleUrls: ['hierarchical-grid-remote-virtualization.scss'], - providers: [RemoteService] + providers: [RemoteService], + standalone: true, + imports: [IgxCellTemplateDirective, NgIf, IgxHierarchicalGridComponent_1, IgxColumnComponent, IgxRowIslandComponent] }) export class HierarchicalGridRemoteVirtualizationComponent implements AfterViewInit { @ViewChild('hGrid', { static: true }) diff --git a/src/app/hierarchical-grid-remote/hierarchical-grid-remote.sample.ts b/src/app/hierarchical-grid-remote/hierarchical-grid-remote.sample.ts index c9732ee17a9..7abaac33f9e 100644 --- a/src/app/hierarchical-grid-remote/hierarchical-grid-remote.sample.ts +++ b/src/app/hierarchical-grid-remote/hierarchical-grid-remote.sample.ts @@ -6,11 +6,20 @@ import { GridSelectionMode } from 'igniteui-angular'; import { RemoteService } from '../shared/remote.service'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxRowIslandComponent as IgxRowIslandComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent, IgxGridToolbarDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxHierarchicalGridComponent as IgxHierarchicalGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.component'; @Component({ selector: 'app-hierarchical-grid-remote-sample', templateUrl: 'hierarchical-grid-remote.sample.html', - providers: [RemoteService] + providers: [RemoteService], + standalone: true, + imports: [IgxHierarchicalGridComponent_1, IgxGridToolbarComponent, IgxGridToolbarTitleComponent, IgxGridToolbarActionsComponent, IgxGridToolbarHidingComponent, IgxColumnComponent, IgxRowIslandComponent_1, IgxGridToolbarDirective, IgxGridToolbarPinningComponent] }) export class HierarchicalGridRemoteSampleComponent implements AfterViewInit { @ViewChild('rowIsland1', { static: true }) diff --git a/src/app/hierarchical-grid-updating/hierarchical-grid-updating.sample.ts b/src/app/hierarchical-grid-updating/hierarchical-grid-updating.sample.ts index 286d5eb8ce7..b7c275b0fdc 100644 --- a/src/app/hierarchical-grid-updating/hierarchical-grid-updating.sample.ts +++ b/src/app/hierarchical-grid-updating/hierarchical-grid-updating.sample.ts @@ -6,12 +6,16 @@ import { GridSelectionMode } from 'igniteui-angular'; import { RemoteService } from '../shared/remote.service'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ selector: 'app-hierarchical-grid-updating-sample', styleUrls: ['hierarchical-grid-updating.sample.scss'], templateUrl: 'hierarchical-grid-updating.sample.html', - providers: [ RemoteService ] + providers: [RemoteService], + standalone: true, + imports: [IgxButtonDirective, IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent] }) export class HierarchicalGridUpdatingSampleComponent implements AfterViewInit { @ViewChild('rowIsland1', { static: true }) diff --git a/src/app/hierarchical-grid/hierarchical-grid.sample.html b/src/app/hierarchical-grid/hierarchical-grid.sample.html index 9612e569b39..4956c3d1913 100644 --- a/src/app/hierarchical-grid/hierarchical-grid.sample.html +++ b/src/app/hierarchical-grid/hierarchical-grid.sample.html @@ -29,8 +29,6 @@

    Sample One

    Footer - - @@ -42,7 +46,9 @@ export class IgxTotalSaleAggregate { providers: [], selector: 'app-tree-grid-sample', styleUrls: ['pivot-grid-state.sample.scss'], - templateUrl: 'pivot-grid-state.sample.html' + templateUrl: 'pivot-grid-state.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxPivotGridComponent_1, IgxGridStateDirective_1, IgxPivotDataSelectorComponent] }) export class PivotGridStateSampleComponent { @ViewChild('grid1', { static: true }) public grid1: IgxPivotGridComponent; diff --git a/src/app/pivot-grid/pivot-grid.sample.html b/src/app/pivot-grid/pivot-grid.sample.html index 3d0fe6d1358..8f3848668f1 100644 --- a/src/app/pivot-grid/pivot-grid.sample.html +++ b/src/app/pivot-grid/pivot-grid.sample.html @@ -68,7 +68,7 @@ [displayDensity]="density" [superCompactMode]="gridDensity === 'superCompact'" [defaultExpandState]="true" - [rowSelection]='"single"' + [rowSelection]="'single'" [pivotConfiguration]="pivotConfigHierarchy" (dimensionsChange)="dimensionChange()" > diff --git a/src/app/pivot-grid/pivot-grid.sample.ts b/src/app/pivot-grid/pivot-grid.sample.ts index eca7ebc7bc0..cebad6acd58 100644 --- a/src/app/pivot-grid/pivot-grid.sample.ts +++ b/src/app/pivot-grid/pivot-grid.sample.ts @@ -16,6 +16,13 @@ import { IgxExcelExporterService, IgxExcelExporterOptions } from 'igniteui-angular'; +import { IgxPivotDataSelectorComponent } from '../../../projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-data-selector.component'; +import { IgxPivotValueChipTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.directives'; +import { IgxPivotGridComponent as IgxPivotGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { FormsModule } from '@angular/forms'; +import { IgxComboComponent } from '../../../projects/igniteui-angular/src/lib/combo/combo.component'; export class IgxTotalSaleAggregate { public static totalSale: PivotAggregation = (members, data: any) => @@ -48,7 +55,9 @@ export class IgxTotalSaleAggregate { providers: [], selector: 'app-tree-grid-sample', styleUrls: ['pivot-grid.sample.scss'], - templateUrl: 'pivot-grid.sample.html' + templateUrl: 'pivot-grid.sample.html', + standalone: true, + imports: [IgxComboComponent, FormsModule, IgxButtonGroupComponent, IgxButtonDirective, IgxPivotGridComponent_1, IgxPivotValueChipTemplateDirective, IgxPivotDataSelectorComponent] }) export class PivotGridSampleComponent { @ViewChild('grid1', { static: true }) public grid1: IgxPivotGridComponent; diff --git a/src/app/progressbar/progressbar.sample.html b/src/app/progressbar/progressbar.sample.html index 1c65b10f3a9..63d77fcd172 100644 --- a/src/app/progressbar/progressbar.sample.html +++ b/src/app/progressbar/progressbar.sample.html @@ -90,7 +90,7 @@

    Circular progress indicator

    - +
    {{process.value}}
    TOTAL%
    diff --git a/src/app/progressbar/progressbar.sample.ts b/src/app/progressbar/progressbar.sample.ts index 40e0df75d74..e8d7434b4a3 100644 --- a/src/app/progressbar/progressbar.sample.ts +++ b/src/app/progressbar/progressbar.sample.ts @@ -1,11 +1,18 @@ import { Component, ViewEncapsulation, OnInit } from '@angular/core'; import { IgxTextAlign } from 'igniteui-angular'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxProgressBarTextTemplateDirective, IgxProgressBarGradientDirective } from '../../../projects/igniteui-angular/src/lib/progressbar/progressbar.common'; +import { IgxLinearProgressBarComponent, IgxCircularProgressBarComponent } from '../../../projects/igniteui-angular/src/lib/progressbar/progressbar.component'; @Component({ encapsulation: ViewEncapsulation.None, selector: 'app-progressbar-sample', styleUrls: ['progressbar.sample.scss'], - templateUrl: 'progressbar.sample.html' + templateUrl: 'progressbar.sample.html', + standalone: true, + imports: [IgxLinearProgressBarComponent, IgxCircularProgressBarComponent, IgxProgressBarTextTemplateDirective, IgxProgressBarGradientDirective, IgxButtonDirective, IgxRippleDirective, IgxIconComponent] }) export class ProgressbarSampleComponent implements OnInit { diff --git a/src/app/query-builder/query-builder.sample.ts b/src/app/query-builder/query-builder.sample.ts index efd357e7389..ed3f01ff56c 100644 --- a/src/app/query-builder/query-builder.sample.ts +++ b/src/app/query-builder/query-builder.sample.ts @@ -6,12 +6,18 @@ import { FilteringExpressionsTree, IgxStringFilteringOperand, changei18n, IExpressionTree} from 'igniteui-angular'; import { IgxResourceStringsFR } from 'igniteui-angular-i18n'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxQueryBuilderComponent as IgxQueryBuilderComponent_1 } from '../../../projects/igniteui-angular/src/lib/query-builder/query-builder.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; @Component({ providers: [], selector: 'app-query-builder-sample', styleUrls: ['query-builder.sample.scss'], - templateUrl: 'query-builder.sample.html' + templateUrl: 'query-builder.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxQueryBuilderComponent_1, IgxButtonDirective, IgxRippleDirective] }) export class QueryBuilderComponent implements OnInit { @ViewChild('queryBuilder', { static: true }) diff --git a/src/app/radio/radio.sample.ts b/src/app/radio/radio.sample.ts index 81d903a0704..6173aa199e7 100644 --- a/src/app/radio/radio.sample.ts +++ b/src/app/radio/radio.sample.ts @@ -1,6 +1,13 @@ import { Component, ViewChild, AfterContentInit } from '@angular/core'; -import { IgxRadioGroupDirective, RadioGroupAlignment } from 'igniteui-angular'; -import { UntypedFormGroup, UntypedFormBuilder } from '@angular/forms'; +import { NgFor, JsonPipe } from '@angular/common'; +import { UntypedFormGroup, UntypedFormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms'; + +import { IgxRadioComponent } from '../../../projects/igniteui-angular/src/lib/radio/radio.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective, IgxCardActionsComponent } from '../../../projects/igniteui-angular/src/lib/card/card.component'; +import { IgxLayoutDirective } from '../../../projects/igniteui-angular/src/lib/directives/layout/layout.directive'; +import { IgxRadioGroupDirective, RadioGroupAlignment } from '../../../projects/igniteui-angular/src/lib/directives/radio/radio-group.directive'; class Person { public favoriteSeason: string; @@ -15,7 +22,9 @@ class Person { @Component({ selector: 'app-radio-sample', styleUrls: ['radio.sample.scss'], - templateUrl: 'radio.sample.html' + templateUrl: 'radio.sample.html', + standalone: true, + imports: [IgxRadioGroupDirective, FormsModule, IgxLayoutDirective, NgFor, IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective, IgxCardActionsComponent, IgxRippleDirective, IgxButtonDirective, IgxRadioComponent, ReactiveFormsModule, JsonPipe] }) export class RadioSampleComponent implements AfterContentInit { @ViewChild('radioGroupZZ', { read: IgxRadioGroupDirective, static: true }) diff --git a/src/app/rating/rating.sample.ts b/src/app/rating/rating.sample.ts index 420aa79f9a8..2c98ebf8d6a 100644 --- a/src/app/rating/rating.sample.ts +++ b/src/app/rating/rating.sample.ts @@ -1,5 +1,12 @@ import { Component } from '@angular/core'; import { defineComponents, IgcRatingComponent } from 'igniteui-webcomponents'; +import { IgcFormControlDirective } from '../../../projects/igniteui-angular/src/lib/directives/form-control/form-control.directive'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { FormsModule } from '@angular/forms'; +import { IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective } from '../../../projects/igniteui-angular/src/lib/card/card.component'; +import { NgFor } from '@angular/common'; defineComponents(IgcRatingComponent); @@ -7,7 +14,9 @@ defineComponents(IgcRatingComponent); @Component({ selector: 'app-rating-sample', styleUrls: ['rating.sample.scss'], - templateUrl: 'rating.sample.html' + templateUrl: 'rating.sample.html', + standalone: true, + imports: [NgFor, IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardContentDirective, FormsModule, IgxInputGroupComponent, IgxInputDirective, IgxLabelDirective, IgcFormControlDirective] }) export class RatingSampleComponent { public models = [{ diff --git a/src/app/reactive-from/reactive-form-sample.component.ts b/src/app/reactive-from/reactive-form-sample.component.ts index e7cf4519e00..a8e20d1837e 100644 --- a/src/app/reactive-from/reactive-form-sample.component.ts +++ b/src/app/reactive-from/reactive-form-sample.component.ts @@ -1,10 +1,28 @@ import { Component } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxTimePickerComponent } from '../../../projects/igniteui-angular/src/lib/time-picker/time-picker.component'; +import { IgxDatePickerComponent } from '../../../projects/igniteui-angular/src/lib/date-picker/date-picker.component'; +import { IgxComboComponent } from '../../../projects/igniteui-angular/src/lib/combo/combo.component'; +import { IgxHintDirective } from '../../../projects/igniteui-angular/src/lib/directives/hint/hint.directive'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { IgxSelectGroupComponent } from '../../../projects/igniteui-angular/src/lib/select/select-group.component'; +import { NgFor } from '@angular/common'; +import { IgxSelectComponent, IgxSelectToggleIconDirective } from '../../../projects/igniteui-angular/src/lib/select/select.component'; @Component({ selector: 'app-reactive-form', styleUrls: ['reactive-form-sample.component.scss'], - templateUrl: 'reactive-form-sample.component.html' + templateUrl: 'reactive-form-sample.component.html', + standalone: true, + imports: [FormsModule, ReactiveFormsModule, IgxSelectComponent, NgFor, IgxSelectGroupComponent, IgxSelectItemComponent, IgxLabelDirective, IgxSelectToggleIconDirective, IgxIconComponent, IgxInputGroupComponent, IgxInputDirective, IgxSuffixDirective, IgxPrefixDirective, IgxHintDirective, IgxComboComponent, IgxDatePickerComponent, IgxTimePickerComponent, IgxButtonDirective, IgxRippleDirective] }) export class ReactiveFormSampleComponent { public genres = []; diff --git a/src/app/ripple/ripple.sample.ts b/src/app/ripple/ripple.sample.ts index 91b3261f989..8373f4ced29 100644 --- a/src/app/ripple/ripple.sample.ts +++ b/src/app/ripple/ripple.sample.ts @@ -1,8 +1,11 @@ import { Component } from '@angular/core'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; @Component({ selector: 'app-ripple-sample', styleUrls: ['ripple.sample.scss'], - templateUrl: 'ripple.sample.html' + templateUrl: 'ripple.sample.html', + standalone: true, + imports: [IgxRippleDirective] }) export class RippleSampleComponent {} diff --git a/src/app/routing.ts b/src/app/routing.ts deleted file mode 100644 index 3d299eec004..00000000000 --- a/src/app/routing.ts +++ /dev/null @@ -1,660 +0,0 @@ -import { TreeGridAddRowSampleComponent } from './tree-grid-add-row/tree-grid-add-row.sample'; -import { RouterModule, Routes } from '@angular/router'; -import { AvatarSampleComponent } from './avatar/avatar.sample'; -import { BadgeSampleComponent } from './badge/badge.sample'; -import { ButtonSampleComponent } from './button/button.sample'; -import { CalendarSampleComponent } from './calendar/calendar.sample'; -import { CardSampleComponent } from './card/card.sample'; -import { CarouselSampleComponent } from './carousel/carousel.sample'; -import { ChipsSampleComponent } from './chips/chips.sample'; -import { ExpansionPanelSampleComponent } from './expansion-panel/expansion-panel-sample'; -import { DatePickerSampleComponent } from './date-picker/date-picker.sample'; -import { DialogSampleComponent } from './dialog/dialog.sample'; -import { DragDropSampleComponent } from './drag-drop/drag-drop.sample'; -import { MaskSampleComponent } from './mask/mask.sample'; -import { IconSampleComponent } from './icon/icon.sample'; -import { InputSampleComponent } from './input/input.sample'; -import { InputGroupSampleComponent } from './input-group/input-group.sample'; -import { LayoutSampleComponent } from './layout/layout.sample'; -import { ListSampleComponent } from './list/list.sample'; -import { ListPanningSampleComponent } from './list-panning/list-panning.sample'; -import { ListPerformanceSampleComponent } from './list-performance/list-performance.sample'; -import { NavbarSampleComponent } from './navbar/navbar.sample'; -import { NavdrawerSampleComponent } from './navdrawer/navdrawer.sample'; -import { ProgressbarSampleComponent } from './progressbar/progressbar.sample'; -import { RippleSampleComponent } from './ripple/ripple.sample'; -import { SliderSampleComponent } from './slider/slider.sample'; -import { SplitterSampleComponent } from './splitter/splitter.sample'; -import { SnackbarSampleComponent } from './snackbar/snackbar.sample'; -import { ColorsSampleComponent } from './styleguide/colors/color.sample'; -import { ShadowsSampleComponent } from './styleguide/shadows/shadows.sample'; -import { TypographySampleComponent } from './styleguide/typography/typography.sample'; -import { BottomNavSampleComponent, CustomContentComponent } from './bottomnav/bottomnav.sample'; -import { BottomNavRoutingSampleComponent } from './bottomnav-routing/bottomnav-routing.sample'; -import { - BottomNavRoutingView1Component, - BottomNavRoutingView2Component, - BottomNavRoutingView3Component -} from './bottomnav-routing/bottomnav-routing-views.sample'; -import { TabsSampleComponent } from './tabs/tabs.sample'; -import { TabsRoutingSampleComponent } from './tabs-routing/tabs-routing.sample'; -import { - TabsRoutingView1Component, - TabsRoutingView2Component, - TabsRoutingView3Component -} from './tabs-routing/tabs-routing-views.sample'; -import { TimePickerSampleComponent } from './time-picker/time-picker.sample'; -import { ToastSampleComponent } from './toast/toast.sample'; -import { VirtualForSampleComponent } from './virtual-for-directive/virtual-for.sample'; -import { GridCellEditingComponent } from './grid-cellEditing/grid-cellEditing.component'; -import { GridSampleComponent } from './grid/grid.sample'; -import { GridColumnMovingSampleComponent } from './grid-column-moving/grid-column-moving.sample'; -import { GridColumnSelectionSampleComponent } from './grid-column-selection/grid-column-selection.sample'; -import { GridColumnPinningSampleComponent } from './grid-column-pinning/grid-column-pinning.sample'; -import { GridColumnResizingSampleComponent } from './grid-column-resizing/grid-column-resizing.sample'; -import { GridGroupBySampleComponent } from './grid-groupby/grid-groupby.sample'; -import { GridSummaryComponent } from './grid-summaries/grid-summaries.sample'; -import { GridPerformanceSampleComponent } from './grid-performance/grid-performance.sample'; -import { GridRemotePagingSampleComponent } from './grid-remote-paging/grid-remote-paging.sample'; -import { GridSelectionComponent } from './grid-selection/grid-selection.sample'; -import { GridRowDraggableComponent } from './grid-row-draggable/grid-row-draggable.sample'; -import { GridToolbarSampleComponent } from './grid-toolbar/grid-toolbar.sample'; -import { GridToolbarCustomSampleComponent } from './grid-toolbar/grid-toolbar-custom.sample'; -import { GridVirtualizationSampleComponent } from './grid-remote-virtualization/grid-remote-virtualization.sample'; -import { ButtonGroupSampleComponent } from './buttonGroup/buttonGroup.sample'; -import { GridColumnGroupsSampleComponent } from './grid-column-groups/grid-column-groups.sample'; -import { DropDownSampleComponent } from './drop-down/drop-down.sample'; -import { DisplayDensityDropDownComponent } from './drop-down/display-density/display-density.sample'; -import { DropDownVirtualComponent } from './drop-down/drop-down-virtual/drop-down-virtual.component'; -import { ComboSampleComponent } from './combo/combo.sample'; -import { OverlaySampleComponent } from './overlay/overlay.sample'; -import { OverlayAnimationSampleComponent } from './overlay/overlay-animation.sample'; -import { OverlayPresetsSampleComponent } from './overlay/overlay-presets.sample'; -import { RadioSampleComponent } from './radio/radio.sample'; -import { TooltipSampleComponent } from './tooltip/tooltip.sample'; -import { GridCellStylingSampleComponent } from './gird-cell-styling/grid-cell-styling.sample'; -import { GridRowEditSampleComponent } from './grid-row-edit/grid-row-edit-sample.component'; -import { TreeGridSampleComponent } from './tree-grid/tree-grid.sample'; -import { TreeGridFlatDataSampleComponent } from './tree-grid-flat-data/tree-grid-flat-data.sample'; -import { HierarchicalGridSampleComponent } from './hierarchical-grid/hierarchical-grid.sample'; -import { HierarchicalGridRemoteSampleComponent } from './hierarchical-grid-remote/hierarchical-grid-remote.sample'; -import { HierarchicalGridUpdatingSampleComponent } from './hierarchical-grid-updating/hierarchical-grid-updating.sample'; -import { GridColumnPercentageWidthsSampleComponent } from './grid-percentage-columns/grid-percantge-widths.sample'; -import { BannerSampleComponent } from './banner/banner.sample'; -import { CalendarViewsSampleComponent } from './calendar-views/calendar-views.sample'; -import { SelectSampleComponent } from './select/select.sample'; -import { GridSearchComponent } from './grid-search/grid-search.sample'; -import { AutocompleteSampleComponent } from './autocomplete/autocomplete.sample'; -import { GridMRLSampleComponent } from './grid-multi-row-layout/grid-mrl.sample'; -import { TreeGridLoadOnDemandSampleComponent } from './tree-grid-load-on-demand/tree-grid-load-on-demand.sample'; -import { GridFilterTemplateSampleComponent } from './grid-filter-template/grid-filter-template.sample'; -import { GridMRLConfigSampleComponent } from './grid-multi-row-layout-config/grid-mrl-config.sample'; -import { GridMRLCustomNavigationSampleComponent } from './grid-mrl-custom-navigation/grid-mrl-custom-navigation'; -import { GridClipboardSampleComponent } from './grid-clipboard/grid-clipboard.sample'; -import { GridAutoSizeSampleComponent } from './grid-auto-size/grid-auto-size.sample'; -import { GridFlexSampleComponent } from './grid-flex-layout/grid-flex.sample'; -import { GridEsfLoadOnDemandComponent } from './grid-esf-load-on-demand/grid-esf-load-on-demand.component'; -import { GridFilteringComponent } from './grid-filtering/grid-filtering.sample'; -import { GridExternalFilteringComponent } from './grid-external-filtering/grid-external-filtering.sample'; -import { GridSaveStateComponent } from './grid-state/grid-state.component'; -import { AboutComponent } from './grid-state/about.component'; -import { GridMasterDetailSampleComponent } from './grid-master-detail/grid-master-detail.sample'; -import { DateTimeEditorSampleComponent } from './date-time-editor/date-time-editor.sample'; -import { GridRowPinningSampleComponent } from './grid-row-pinning/grid-row-pinning.sample'; -import { GridRowReorderComponent } from './grid-row-reorder/grid-row-reorder.sample'; -import { ReactiveFormSampleComponent } from './reactive-from/reactive-form-sample.component'; -import { DateRangeSampleComponent } from './date-range/date-range.sample'; -import { ActionStripSampleComponent } from './action-strip/action-strip.sample'; -import { - HierarchicalGridRemoteVirtualizationComponent -} from './hierarchical-grid-remote-virtualization/hierarchical-grid-remote-virtualization'; -import { GridVirtualizationScrollSampleComponent } from './grid-remote-virtualization-with-scroll/grid-remote-virtualization-scroll.sample'; -import { GridNestedPropsSampleComponent } from './grid-nested-props/grid-nested-props.sample'; -import { GridColumnActionsSampleComponent } from './grid-column-actions/grid-column-actions.sample'; -import { GridAddRowSampleComponent } from './grid-add-row/grid-add-row.sample'; -import { HierarchicalGridAddRowSampleComponent } from './hierarchical-grid-add-row/hierarchical-grid-add-row.sample'; -import { AnimationsSampleComponent } from './styleguide/animations/animations.sample'; -import { GridFormattingComponent } from './grid-formatting/grid-formatting.component'; -import { MainComponent } from './grid-finjs/main.component'; -import { GridEventsComponent } from './grid-events/grid-events.component'; -import { GridRowAPISampleComponent } from './grid-row-api/grid-row-api.sample'; -import { GridUpdatesComponent } from './grid-updates-test/grid-updates.component'; -import { TreeSampleComponent } from './tree/tree.sample'; -import { GridColumnTypesSampleComponent } from './grid-column-types/grid-column-types.sample'; -import { AccordionSampleComponent } from './accordion/accordion.sample'; -import { GridLocalizationSampleComponent } from './grid-localization/grid-localization.sample'; -import { TreeGridGroupBySampleComponent } from './tree-grid-groupby/tree-grid-groupby.sample'; -import { PaginationSampleComponent } from './pagination/pagination.component'; -import { GridCellAPISampleComponent } from './grid-cell-api/grid-cell-api.sample'; -import { PivotGridSampleComponent } from './pivot-grid/pivot-grid.sample'; -import { PivotGridHierarchySampleComponent } from './pivot-grid-hierarchy/pivot-grid-hierarchy.sample'; -import { PivotGridNoopSampleComponent } from './pivot-grid-noop/pivot-grid-noop.sample'; -import { IgxStepperSampleComponent as StepperSampleComponent } from './stepper/stepper.sample'; -import { RatingSampleComponent } from './rating/rating.sample'; -import { RangeSliderComponent } from './slider/range-slider/range-slider.component'; -import { QueryBuilderComponent } from './query-builder/query-builder.sample'; -import { PivotGridStateSampleComponent } from './pivot-grid-state/pivot-grid-state.sample'; -import { GridValidationSampleComponent } from './grid-validation/grid-validation.sample.component'; -import { GridExportComponent } from './grid-export/grid-export.sample'; - -const appRoutes: Routes = [ - { - path: '', - pathMatch: 'full', - redirectTo: '/avatar' - }, - { - path: 'accordion', - component: AccordionSampleComponent - }, - { - path: 'action-strip', - component: ActionStripSampleComponent - }, - { - path: 'autocomplete', - component: AutocompleteSampleComponent - }, - { - path: 'avatar', - component: AvatarSampleComponent - }, - { - path: 'badge', - component: BadgeSampleComponent - }, - { - path: 'banner', - component: BannerSampleComponent - }, - { - path: 'select', - component: SelectSampleComponent - }, - { - path: 'buttons', - component: ButtonSampleComponent - }, - { - path: 'calendar', - component: CalendarSampleComponent - }, - { - path: 'calendar-views', - component: CalendarViewsSampleComponent - }, - { - path: 'card', - component: CardSampleComponent - }, - { - path: 'carousel', - component: CarouselSampleComponent - }, - { - path: 'combo', - component: ComboSampleComponent - }, - { - path: 'expansionPanel', - component: ExpansionPanelSampleComponent - }, - { - path: 'chip', - component: ChipsSampleComponent - }, - { - path: 'datePicker', - component: DatePickerSampleComponent - }, - { - path: 'dialog', - component: DialogSampleComponent - }, - { - path: 'dropDown', - component: DropDownSampleComponent - }, - { - path: 'dropDown-density', - component: DisplayDensityDropDownComponent - }, - { - path: 'virtual-dropdown', - component: DropDownVirtualComponent - }, - { - path: 'drag-drop', - component: DragDropSampleComponent - }, - { - path: 'icon', - component: IconSampleComponent - }, - { - path: 'lazyIconModule', - loadChildren: () => import('./icon/LazyModule/lazyIcon.module').then(m => m.LazyIconModule) - }, - { - path: 'inputs', - component: InputSampleComponent - }, - { - path: 'input-group', - component: InputGroupSampleComponent - }, - { - path: 'layout', - component: LayoutSampleComponent - }, - { - path: 'list', - component: ListSampleComponent - }, - { - path: 'listPanning', - component: ListPanningSampleComponent - }, - { - path: 'listPerformance', - component: ListPerformanceSampleComponent - }, - { - path: 'mask', - component: MaskSampleComponent - }, - { - path: 'date-time-editor', - component: DateTimeEditorSampleComponent - }, - { - path: 'navbar', - component: NavbarSampleComponent - }, - { - path: 'navdrawer', - component: NavdrawerSampleComponent - }, - { - path: 'overlay', - component: OverlaySampleComponent - }, - { - path: 'overlay-presets', - component: OverlayPresetsSampleComponent - }, - { - path: 'overlay-animation', - component: OverlayAnimationSampleComponent - }, - { - path: 'progressbar', - component: ProgressbarSampleComponent - }, - { - path: 'radio', - component: RadioSampleComponent - }, - { - path: 'rating', - component: RatingSampleComponent - }, - { - path: 'reactive', - component: ReactiveFormSampleComponent - }, - { - path: 'ripple', - component: RippleSampleComponent - }, - { - path: 'slider', - component: SliderSampleComponent - }, - { - path: 'range-slider', - component: RangeSliderComponent - }, - { - path: 'splitter', - component: SplitterSampleComponent - }, - { - path: 'snackbar', - component: SnackbarSampleComponent - }, - { - path: 'colors', - component: ColorsSampleComponent - }, - { - path: 'animations', - component: AnimationsSampleComponent - }, - { - path: 'shadows', - component: ShadowsSampleComponent - }, - { - path: 'typography', - component: TypographySampleComponent - }, - { - path: 'bottom-navigation', - component: BottomNavSampleComponent, - children: [ - { path: 'tabContentPath', component: CustomContentComponent, outlet: 'tabPanelOutlet' } - ] - }, - { - path: 'bottom-navigation-routing', - component: BottomNavRoutingSampleComponent, - children: [ - { path: 'view1', component: BottomNavRoutingView1Component }, - { path: 'view2', component: BottomNavRoutingView2Component }, - { path: 'view3', component: BottomNavRoutingView3Component }, - ] - }, - { - path: 'tabs', - component: TabsSampleComponent - }, - { - path: 'tabs-routing', - component: TabsRoutingSampleComponent, - children: [ - { path: 'view1', component: TabsRoutingView1Component }, - { path: 'view2', component: TabsRoutingView2Component }, - { path: 'view3', component: TabsRoutingView3Component }, - ] - }, - { - path: 'timePicker', - component: TimePickerSampleComponent - }, - { - path: 'toast', - component: ToastSampleComponent - }, - { - path: 'virtualForDirective', - component: VirtualForSampleComponent - }, - { - path: 'gridCellEditing', - component: GridCellEditingComponent - }, - { - path: 'gridConditionalCellStyling', - component: GridCellStylingSampleComponent - }, - { - path: 'grid', - component: GridSampleComponent - }, - { - path: 'gridAddRow', - component: GridAddRowSampleComponent - }, - { - path: 'hierarchicalGridAddRow', - component: HierarchicalGridAddRowSampleComponent - }, - { - path: 'treeGridAddRow', - component: TreeGridAddRowSampleComponent - }, - { - path: 'gridFilterTemplate', - component: GridFilterTemplateSampleComponent - }, - { - path: 'gridEsfLoadOnDemand', - component: GridEsfLoadOnDemandComponent - }, - { - path: 'gridClipboard', - component: GridClipboardSampleComponent - }, - { - path: 'gridColumnMoving', - component: GridColumnMovingSampleComponent - }, - { - path: 'gridColumnTypes', - component: GridColumnTypesSampleComponent - }, - { - path: 'gridColumnSelecting', - component: GridColumnSelectionSampleComponent - }, - { - path: 'gridColumnPinning', - component: GridColumnPinningSampleComponent - }, - { - path: 'gridColumnActions', - component: GridColumnActionsSampleComponent - }, - { - path: 'gridRowPinning', - component: GridRowPinningSampleComponent - }, - { - path: 'gridRowAPI', - component: GridRowAPISampleComponent - }, - { - path: 'gridCellAPI', - component: GridCellAPISampleComponent - }, - { - path: 'gridRemotePaging', - component: GridRemotePagingSampleComponent - }, - { - path: 'gridColumnResizing', - component: GridColumnResizingSampleComponent - }, - { - path: 'gridSummary', - component: GridSummaryComponent - }, - { - path: 'gridPerformance', - component: GridPerformanceSampleComponent - }, - { - path: 'gridSelection', - component: GridSelectionComponent - }, - { - path: 'gridRowDrag', - component: GridRowDraggableComponent - }, - { - path: 'gridToolbar', - component: GridToolbarSampleComponent - }, - { - path: 'gridToolbarCustom', - component: GridToolbarCustomSampleComponent - }, - { - path: 'gridRemoteVirtualization', - component: GridVirtualizationSampleComponent - }, - { - path: 'gridExport', - component: GridExportComponent - }, - { - path: 'buttonGroup', - component: ButtonGroupSampleComponent - }, - { - path: 'gridColumnGroups', - component: GridColumnGroupsSampleComponent - }, - { - path: 'gridMRL', - component: GridMRLSampleComponent - }, - { - path: 'gridMRLConfig', - component: GridMRLConfigSampleComponent - }, - { - path: 'gridMRLCustomNav', - component: GridMRLCustomNavigationSampleComponent - }, - { - path: 'gridGroupBy', - component: GridGroupBySampleComponent - }, - { - path: 'gridMasterDetail', - component: GridMasterDetailSampleComponent - }, - { - path: 'gridLocalization', - component: GridLocalizationSampleComponent - }, - { - path: 'gridRowEdit', - component: GridRowEditSampleComponent - }, - { - path: 'gridRowReorder', - component: GridRowReorderComponent - }, - { - path: 'gridValidation', - component: GridValidationSampleComponent - }, - { - path: 'gridScrollVirtualization', - component: GridVirtualizationScrollSampleComponent - }, - { - path: 'gridFormatting', - component: GridFormattingComponent - }, - { - path: 'gridFinJS', - component: MainComponent - }, { - path: 'tree', - component: TreeSampleComponent - }, - { - path: 'gridUpdates', - component: GridUpdatesComponent - }, - { - path: 'treeGrid', - component: TreeGridSampleComponent - }, - { - path: 'treeGridFlatData', - component: TreeGridFlatDataSampleComponent - }, - { - path: 'treeGridGroupBy', - component: TreeGridGroupBySampleComponent - }, - { - path: 'treeGridLoadOnDemand', - component: TreeGridLoadOnDemandSampleComponent - }, - { - path: 'tooltip', - component: TooltipSampleComponent - }, { - path: 'hierarchicalGrid', - component: HierarchicalGridSampleComponent - }, { - path: 'hierarchicalGridRemote', - component: HierarchicalGridRemoteSampleComponent - }, { - path: 'hierarchicalGridRemoteVirtualization', - component: HierarchicalGridRemoteVirtualizationComponent - }, { - path: 'hierarchicalGridUpdating', - component: HierarchicalGridUpdatingSampleComponent - }, - { - path: 'gridPercentage', - component: GridColumnPercentageWidthsSampleComponent - }, - { - path: 'gridAutoSize', - component: GridAutoSizeSampleComponent - }, - { - path: 'gridFlex', - component: GridFlexSampleComponent - }, - { - path: 'gridSearch', - component: GridSearchComponent - }, - { - path: 'gridFiltering', - component: GridFilteringComponent - }, - { - path: 'gridExternalFiltering', - component: GridExternalFilteringComponent - }, - { - path: 'gridState', - component: GridSaveStateComponent - }, - { - path: 'gridAbout', - component: AboutComponent - }, - { - path: 'dateRange', - component: DateRangeSampleComponent - }, - { - path: 'grid-nested-props', - component: GridNestedPropsSampleComponent - }, - { - path: 'gridEvents', - component: GridEventsComponent - }, - { - path: 'pagination', - component: PaginationSampleComponent - }, - { - path: 'pivot', - component: PivotGridSampleComponent - }, - { - path: 'pivot-hierarchy', - component: PivotGridHierarchySampleComponent - }, - { - path: 'pivot-state', - component: PivotGridStateSampleComponent - }, - { - path: 'pivot-noop', - component: PivotGridNoopSampleComponent - }, - { - path: 'query-builder', - component: QueryBuilderComponent - }, - { - path: 'stepper', - component: StepperSampleComponent - } -]; - -export const routing = RouterModule.forRoot(appRoutes, {}); diff --git a/src/app/select/select.sample.ts b/src/app/select/select.sample.ts index da321f8acc1..f0aebb4fa69 100644 --- a/src/app/select/select.sample.ts +++ b/src/app/select/select.sample.ts @@ -1,18 +1,28 @@ import { Component, OnInit, ViewChildren, QueryList, ViewChild } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; -import { - ISelectionEventArgs, CancelableEventArgs, - HorizontalAlignment, VerticalAlignment, scaleInTop, scaleOutBottom, ConnectedPositioningStrategy, - AbsoluteScrollStrategy, - IgxSelectComponent, - IButtonGroupEventArgs -} from 'igniteui-angular'; +import { UntypedFormBuilder, UntypedFormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { NgFor } from '@angular/common'; + +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxHintDirective } from '../../../projects/igniteui-angular/src/lib/directives/hint/hint.directive'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IButtonGroupEventArgs, IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxSelectComponent, IgxSelectFooterDirective, IgxSelectGroupComponent, IgxSelectHeaderDirective, IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/public_api'; +import { ISelectionEventArgs } from '../../../projects/igniteui-angular/src/lib/drop-down/public_api'; +import { CancelableEventArgs } from '../../../projects/igniteui-angular/src/lib/core/utils'; +import { AbsoluteScrollStrategy, ConnectedPositioningStrategy, HorizontalAlignment, VerticalAlignment } from '../../../projects/igniteui-angular/src/lib/services/public_api'; +import { scaleInTop, scaleOutBottom } from '../../../projects/igniteui-angular/src/lib/animations/scale'; @Component({ // eslint-disable-next-line @angular-eslint/component-selector selector: 'app-select-sample', styleUrls: ['./select.sample.scss'], - templateUrl: './select.sample.html' + templateUrl: './select.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxSelectComponent, FormsModule, IgxLabelDirective, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, NgFor, IgxSelectHeaderDirective, IgxSelectFooterDirective, IgxButtonGroupComponent, IgxSuffixDirective, IgxHintDirective, IgxSelectGroupComponent, ReactiveFormsModule, IgxSwitchComponent] }) export class SelectSampleComponent implements OnInit { @ViewChild('selectReactive', { read: IgxSelectComponent, static: true }) diff --git a/src/app/shared/local.service.ts b/src/app/shared/local.service.ts index 033e23cacbd..d9e27effd89 100644 --- a/src/app/shared/local.service.ts +++ b/src/app/shared/local.service.ts @@ -24,7 +24,7 @@ export class LocalService { }); } - public getFinancialData(count: number = 10) { + public getFinancialData(count = 10) { this._records.next(FinancialData.generateData(count)); } diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts deleted file mode 100644 index 8ed2a6c8150..00000000000 --- a/src/app/shared/shared.module.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { NgModule } from '@angular/core'; -import { - IgxAccordionModule, - IgxActionStripModule, - IgxAutocompleteModule, - IgxAvatarModule, - IgxBadgeModule, - IgxBottomNavModule, - IgxButtonGroupModule, - IgxButtonModule, - IgxCalendarModule, - IgxBannerModule, - IgxCardModule, - IgxCarouselModule, - IgxCheckboxModule, - IgxChipsModule, - IgxComboModule, - IgxDatePickerModule, - IgxDialogModule, - IgxDropDownModule, - IgxExpansionPanelModule, - IgxFilterModule, - IgxFocusModule, - IgxFocusTrapModule, - IgxForOfModule, - IgxInputGroupModule, - IgxLayoutModule, - IgxListModule, - IgxMaskModule, - IgxNavbarModule, - IgxNavigationDrawerModule, - IgxProgressBarModule, - IgxRadioModule, - IgxRippleModule, - IgxSliderModule, - IgxSnackbarModule, - IgxStepperModule, - IgxSwitchModule, - IgxSplitterModule, - IgxTabsModule, - IgxTimePickerModule, - IgxToastModule, - IgxToggleModule, - IgxTooltipModule, - IgxSelectModule, - IgxDateRangePickerModule, - IgxTreeModule, - IgxSimpleComboModule -} from 'igniteui-angular'; - - -const igniteModules = [ - IgxAccordionModule, - IgxActionStripModule, - IgxAutocompleteModule, - IgxAvatarModule, - IgxBadgeModule, - IgxBottomNavModule, - IgxButtonGroupModule, - IgxButtonModule, - IgxCalendarModule, - IgxBannerModule, - IgxCardModule, - IgxCarouselModule, - IgxCheckboxModule, - IgxChipsModule, - IgxComboModule, - IgxSimpleComboModule, - IgxDatePickerModule, - IgxDialogModule, - IgxDropDownModule, - IgxExpansionPanelModule, - IgxFilterModule, - IgxFocusModule, - IgxFocusTrapModule, - IgxForOfModule, - IgxInputGroupModule, - IgxLayoutModule, - IgxListModule, - IgxMaskModule, - IgxNavbarModule, - IgxNavigationDrawerModule, - IgxProgressBarModule, - IgxRadioModule, - IgxRippleModule, - IgxSliderModule, - IgxSnackbarModule, - IgxStepperModule, - IgxSwitchModule, - IgxSplitterModule, - IgxTreeModule, - IgxTabsModule, - IgxTimePickerModule, - IgxToastModule, - IgxToggleModule, - IgxTooltipModule, - IgxSelectModule, - IgxDateRangePickerModule -]; - -@NgModule({ - imports: igniteModules, - exports: igniteModules -}) -export class SharedModule {} diff --git a/src/app/slider/range-slider/range-slider.component.ts b/src/app/slider/range-slider/range-slider.component.ts index 7925c6f18fa..fee6982ad7f 100644 --- a/src/app/slider/range-slider/range-slider.component.ts +++ b/src/app/slider/range-slider/range-slider.component.ts @@ -1,10 +1,18 @@ import { Component } from '@angular/core'; import { IgxSliderType, IRangeSliderValue } from 'igniteui-angular'; +import { IgxInputDirective } from '../../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxLabelDirective } from '../../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputGroupComponent } from '../../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { FormsModule } from '@angular/forms'; +import { IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective } from '../../../../projects/igniteui-angular/src/lib/slider/slider.common'; +import { IgxSliderComponent } from '../../../../projects/igniteui-angular/src/lib/slider/slider.component'; @Component({ - selector: 'app-range-slider', - templateUrl: './range-slider.component.html', - styleUrls: ['./range-slider.component.scss'] + selector: 'app-range-slider', + templateUrl: './range-slider.component.html', + styleUrls: ['./range-slider.component.scss'], + standalone: true, + imports: [IgxSliderComponent, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, FormsModule, IgxInputGroupComponent, IgxLabelDirective, IgxInputDirective] }) export class RangeSliderComponent { public sliderType: IgxSliderType = IgxSliderType.RANGE; diff --git a/src/app/slider/slider.sample.ts b/src/app/slider/slider.sample.ts index 777a75f57c0..be24f16569a 100644 --- a/src/app/slider/slider.sample.ts +++ b/src/app/slider/slider.sample.ts @@ -1,5 +1,9 @@ import { Component } from '@angular/core'; import { IgxSliderType, ISliderValueChangeEventArgs, IRangeSliderValue, TickLabelsOrientation, TicksOrientation } from 'igniteui-angular'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxTickLabelTemplateDirective } from '../../../projects/igniteui-angular/src/lib/slider/slider.common'; +import { FormsModule } from '@angular/forms'; +import { IgxSliderComponent } from '../../../projects/igniteui-angular/src/lib/slider/slider.component'; class Task { public title: string; @@ -14,7 +18,9 @@ class Task { @Component({ selector: 'app-slider-sample', styleUrls: ['slider.sample.scss'], - templateUrl: 'slider.sample.html' + templateUrl: 'slider.sample.html', + standalone: true, + imports: [IgxSliderComponent, FormsModule, IgxTickLabelTemplateDirective, IgxButtonDirective] }) export class SliderSampleComponent { public labelOrientaion: TickLabelsOrientation = TickLabelsOrientation.Horizontal; @@ -59,7 +65,7 @@ export class SliderSampleComponent { } public changeLabels() { - this.labels = new Array('08:00', '12:00', '16:00', '20:00', '00:00'); + this.labels = ['08:00', '12:00', '16:00', '20:00', '00:00']; } public changeLabelOrientation() { diff --git a/src/app/snackbar/snackbar.sample.ts b/src/app/snackbar/snackbar.sample.ts index 7c09796574b..f0de28cd33f 100644 --- a/src/app/snackbar/snackbar.sample.ts +++ b/src/app/snackbar/snackbar.sample.ts @@ -2,11 +2,16 @@ import { useAnimation } from '@angular/animations'; import { Component, OnInit, ViewChild } from '@angular/core'; // eslint-disable-next-line max-len import { HorizontalAlignment, IgxSnackbarComponent, PositionSettings, slideInLeft, slideInRight, VerticalAlignment } from 'igniteui-angular'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxOverlayOutletDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxSnackbarComponent as IgxSnackbarComponent_1 } from '../../../projects/igniteui-angular/src/lib/snackbar/snackbar.component'; @Component({ selector: 'app-snackbar-sample', styleUrls: ['snackbar.sample.css'], - templateUrl: 'snackbar.sample.html' + templateUrl: 'snackbar.sample.html', + standalone: true, + imports: [IgxSnackbarComponent_1, IgxOverlayOutletDirective, IgxButtonDirective] }) export class SnackbarSampleComponent implements OnInit { @ViewChild('snackbar') diff --git a/src/app/splitter/splitter.sample.ts b/src/app/splitter/splitter.sample.ts index 8f09e8e0253..fbc8a891fd5 100644 --- a/src/app/splitter/splitter.sample.ts +++ b/src/app/splitter/splitter.sample.ts @@ -1,12 +1,19 @@ import { Component, ViewChild, AfterViewInit } from '@angular/core'; import { RemoteService } from '../shared/remote.service'; import { IgxGridComponent, SplitterType } from 'igniteui-angular'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent as IgxGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxSplitterPaneComponent } from '../../../projects/igniteui-angular/src/lib/splitter/splitter-pane/splitter-pane.component'; +import { IgxSplitterComponent } from '../../../projects/igniteui-angular/src/lib/splitter/splitter.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; @Component({ selector: 'app-splitter-sample', styleUrls: ['splitter.sample.scss'], - templateUrl: 'splitter.sample.html' + templateUrl: 'splitter.sample.html', + standalone: true, + imports: [IgxSwitchComponent, IgxSplitterComponent, IgxSplitterPaneComponent, IgxGridComponent_1, IgxColumnComponent] }) export class SplitterSampleComponent implements AfterViewInit { @ViewChild('grid1', { static: true }) diff --git a/src/app/stepper/stepper.sample.ts b/src/app/stepper/stepper.sample.ts index 64468f176e2..ab992ecbfa3 100644 --- a/src/app/stepper/stepper.sample.ts +++ b/src/app/stepper/stepper.sample.ts @@ -1,14 +1,35 @@ import { ChangeDetectorRef, Component, ViewChild } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { HorizontalAnimationType } from 'projects/igniteui-angular/src/lib/carousel/carousel-base'; import { IgxStepperTitlePosition, IgxStepperOrientation, IgxStepType, VerticalAnimationType } from 'projects/igniteui-angular/src/lib/stepper/stepper.common'; import { IgxStepperComponent } from 'projects/igniteui-angular/src/lib/stepper/stepper.component'; +import { IgxHintDirective } from '../../../projects/igniteui-angular/src/lib/directives/hint/hint.directive'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxSelectItemComponent } from '../../../projects/igniteui-angular/src/lib/select/select-item.component'; +import { IgxSelectComponent } from '../../../projects/igniteui-angular/src/lib/select/select.component'; +import { IgxTimePickerComponent } from '../../../projects/igniteui-angular/src/lib/time-picker/time-picker.component'; +import { IgxBadgeComponent } from '../../../projects/igniteui-angular/src/lib/badge/badge.component'; +import { IgxAvatarComponent } from '../../../projects/igniteui-angular/src/lib/avatar/avatar.component'; +import { NgIf } from '@angular/common'; +import { IgxStepComponent } from '../../../projects/igniteui-angular/src/lib/stepper/step/step.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxStepActiveIndicatorDirective, IgxStepIndicatorDirective, IgxStepTitleDirective, IgxStepSubTitleDirective, IgxStepContentDirective } from '../../../projects/igniteui-angular/src/lib/stepper/stepper.directive'; +import { IgxStepperComponent as IgxStepperComponent_1 } from '../../../projects/igniteui-angular/src/lib/stepper/stepper.component'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ templateUrl: 'stepper.sample.html', - styleUrls: ['stepper.sample.scss'] + styleUrls: ['stepper.sample.scss'], + standalone: true, + imports: [IgxButtonDirective, IgxButtonGroupComponent, IgxInputGroupComponent, IgxLabelDirective, FormsModule, IgxInputDirective, IgxSuffixDirective, IgxSwitchComponent, IgxStepperComponent_1, IgxStepActiveIndicatorDirective, IgxIconComponent, IgxStepComponent, IgxStepIndicatorDirective, IgxStepTitleDirective, IgxStepSubTitleDirective, IgxStepContentDirective, NgIf, IgxAvatarComponent, IgxBadgeComponent, IgxTimePickerComponent, ReactiveFormsModule, IgxSelectComponent, IgxSelectItemComponent, IgxPrefixDirective, IgxHintDirective] }) export class IgxStepperSampleComponent { @ViewChild('stepper', { static: true }) public stepper: IgxStepperComponent; diff --git a/src/app/styleguide/animations/animations.sample.ts b/src/app/styleguide/animations/animations.sample.ts index f7c63f3ccf1..6db0c7c5dcf 100644 --- a/src/app/styleguide/animations/animations.sample.ts +++ b/src/app/styleguide/animations/animations.sample.ts @@ -23,11 +23,18 @@ import { swingOutLefttFwd, swingOutRightBck, swingOutRightFwd, swingOutTopBck, swingOutTopFwd } from 'igniteui-angular'; import { AbsolutePosition } from 'projects/igniteui-angular/src/lib/services/overlay/utilities'; +import { IgxDialogComponent as IgxDialogComponent_1 } from '../../../../projects/igniteui-angular/src/lib/dialog/dialog.component'; +import { IgxRippleDirective } from '../../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxListItemComponent } from '../../../../projects/igniteui-angular/src/lib/list/list-item.component'; +import { NgFor } from '@angular/common'; +import { IgxListComponent } from '../../../../projects/igniteui-angular/src/lib/list/list.component'; @Component({ selector: 'app-animations-sample', styleUrls: ['animations.sample.scss'], - templateUrl: 'animations.sample.html' + templateUrl: 'animations.sample.html', + standalone: true, + imports: [IgxListComponent, NgFor, IgxListItemComponent, IgxRippleDirective, IgxDialogComponent_1] }) export class AnimationsSampleComponent { @ViewChild('dialog', { static: true, read: IgxDialogComponent }) diff --git a/src/app/styleguide/colors/color.sample.ts b/src/app/styleguide/colors/color.sample.ts index b2614ba8ede..635d9a1eb64 100644 --- a/src/app/styleguide/colors/color.sample.ts +++ b/src/app/styleguide/colors/color.sample.ts @@ -1,9 +1,12 @@ import { Component } from '@angular/core'; +import { NgFor, NgIf } from '@angular/common'; @Component({ selector: 'app-colors-sample', styleUrls: ['color.sample.scss'], - templateUrl: 'color.sample.html' + templateUrl: 'color.sample.html', + standalone: true, + imports: [NgFor, NgIf] }) export class ColorsSampleComponent { public colors = [ diff --git a/src/app/styleguide/shadows/shadows.sample.ts b/src/app/styleguide/shadows/shadows.sample.ts index 46fccd1bdb1..8d7dd83b7fe 100644 --- a/src/app/styleguide/shadows/shadows.sample.ts +++ b/src/app/styleguide/shadows/shadows.sample.ts @@ -3,6 +3,7 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-shadows-sample', styleUrls: ['shadows.sample.css'], - templateUrl: 'shadows.sample.html' + templateUrl: 'shadows.sample.html', + standalone: true }) export class ShadowsSampleComponent {} diff --git a/src/app/styleguide/typography/typography.sample.ts b/src/app/styleguide/typography/typography.sample.ts index 437ac0ee5fb..9ec64ed0d22 100644 --- a/src/app/styleguide/typography/typography.sample.ts +++ b/src/app/styleguide/typography/typography.sample.ts @@ -3,6 +3,7 @@ import { Component } from '@angular/core'; @Component({ selector: 'app-typography-sample', styleUrls: ['typography.sample.css'], - templateUrl: 'typography.sample.html' + templateUrl: 'typography.sample.html', + standalone: true }) export class TypographySampleComponent {} diff --git a/src/app/tabs-routing/tabs-routing-views.sample.ts b/src/app/tabs-routing/tabs-routing-views.sample.ts index c652d970eb0..d4b29c3a869 100644 --- a/src/app/tabs-routing/tabs-routing-views.sample.ts +++ b/src/app/tabs-routing/tabs-routing-views.sample.ts @@ -1,4 +1,10 @@ import { Component } from '@angular/core'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxAvatarComponent } from '../../../projects/igniteui-angular/src/lib/avatar/avatar.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { NgFor } from '@angular/common'; +import { IgxListItemComponent } from '../../../projects/igniteui-angular/src/lib/list/list-item.component'; +import { IgxListComponent, IgxListThumbnailDirective, IgxListLineTitleDirective, IgxListLineSubTitleDirective, IgxListActionDirective } from '../../../projects/igniteui-angular/src/lib/list/list.component'; @Component({ template: ` @@ -11,7 +17,9 @@ import { Component } from '@angular/core'; phone - ` + `, + standalone: true, + imports: [IgxListComponent, IgxListItemComponent, NgFor, IgxRippleDirective, IgxAvatarComponent, IgxListThumbnailDirective, IgxListLineTitleDirective, IgxListLineSubTitleDirective, IgxIconComponent, IgxListActionDirective] }) export class TabsRoutingView1Component { public contacts = [{ @@ -55,7 +63,8 @@ export class TabsRoutingView1Component { a magna euismod volutpat id in mi. Etiam a nunc ut tellus dictum porta. Donec in ligula a arcu sollicitudin finibus. Vivamus id lorem pulvinar, accumsan justo vitae, vehicula diam. Mauris vel quam at velit venenatis vulputate in quis nisl.

    - ` + `, + standalone: true }) export class TabsRoutingView2Component { } @@ -67,7 +76,8 @@ export class TabsRoutingView2Component { consectetur accumsan suscipit. Praesent rutrum tellus blandit bibendum cursus. Vestibulum urna arcu, bibendum nec molestie ac, varius congue massa. Mauris porttitor viverra lacus. Donec efficitur purus id urna dapibus, vitae pharetra orci pellentesque.

    - ` + `, + standalone: true }) export class TabsRoutingView3Component { } diff --git a/src/app/tabs-routing/tabs-routing.sample.ts b/src/app/tabs-routing/tabs-routing.sample.ts index 4457e4f228a..f0cf15f6936 100644 --- a/src/app/tabs-routing/tabs-routing.sample.ts +++ b/src/app/tabs-routing/tabs-routing.sample.ts @@ -1,11 +1,14 @@ import { Component } from '@angular/core'; -import { Router } from '@angular/router'; -import { ITabsSelectedItemChangeEventArgs } from 'igniteui-angular'; +import { Router, RouterLinkActive, RouterLink, RouterOutlet } from '@angular/router'; +import { IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, IgxButtonGroupComponent, IgxIconComponent, IgxTabHeaderComponent, IgxTabItemComponent, IgxTabsComponent, ITabsSelectedItemChangeEventArgs } from 'igniteui-angular'; + @Component({ selector: 'app-tabs-routing-sample', styleUrls: ['tabs-routing.sample.scss'], - templateUrl: 'tabs-routing.sample.html' + templateUrl: 'tabs-routing.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxTabsComponent, IgxTabItemComponent, RouterLinkActive, IgxTabHeaderComponent, RouterLink, IgxIconComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, RouterOutlet] }) export class TabsRoutingSampleComponent { public contacts: any[] = [{ diff --git a/src/app/tabs/tabs.sample.ts b/src/app/tabs/tabs.sample.ts index e04dc378a8f..21e6babf948 100644 --- a/src/app/tabs/tabs.sample.ts +++ b/src/app/tabs/tabs.sample.ts @@ -1,11 +1,29 @@ import {Component, OnInit, ViewChild, ViewEncapsulation} from '@angular/core'; import { IgxTabsComponent, ITabsSelectedIndexChangingEventArgs, ITabsSelectedItemChangeEventArgs } from 'igniteui-angular'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxSuffixDirective } from '../../../projects/igniteui-angular/src/lib/directives/suffix/suffix.directive'; +import { IgxPrefixDirective } from '../../../projects/igniteui-angular/src/lib/directives/prefix/prefix.directive'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxAvatarComponent } from '../../../projects/igniteui-angular/src/lib/avatar/avatar.component'; +import { IgxListItemComponent } from '../../../projects/igniteui-angular/src/lib/list/list-item.component'; +import { NgFor } from '@angular/common'; +import { IgxListComponent, IgxListThumbnailDirective, IgxListLineTitleDirective, IgxListLineSubTitleDirective, IgxListActionDirective } from '../../../projects/igniteui-angular/src/lib/list/list.component'; +import { IgxTabContentComponent } from '../../../projects/igniteui-angular/src/lib/tabs/tabs/tab-content.component'; +import { IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective } from '../../../projects/igniteui-angular/src/lib/tabs/tabs/tabs.directives'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxTabHeaderComponent } from '../../../projects/igniteui-angular/src/lib/tabs/tabs/tab-header.component'; +import { IgxTabItemComponent } from '../../../projects/igniteui-angular/src/lib/tabs/tabs/tab-item.component'; +import { IgxTabsComponent as IgxTabsComponent_1 } from '../../../projects/igniteui-angular/src/lib/tabs/tabs/tabs.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ selector: 'app-tabs-sample', styleUrls: ['tabs.sample.scss'], templateUrl: 'tabs.sample.html', - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + standalone: true, + imports: [IgxButtonDirective, IgxTabsComponent_1, IgxTabItemComponent, IgxTabHeaderComponent, IgxRippleDirective, IgxIconComponent, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabContentComponent, IgxListComponent, NgFor, IgxListItemComponent, IgxAvatarComponent, IgxListThumbnailDirective, IgxListLineTitleDirective, IgxListLineSubTitleDirective, IgxListActionDirective, IgxButtonGroupComponent, IgxPrefixDirective, IgxSuffixDirective, IgxGridComponent] }) export class TabsSampleComponent implements OnInit { diff --git a/src/app/time-picker/time-picker.sample.html b/src/app/time-picker/time-picker.sample.html index 1938dbb8e64..4c19dccbfb3 100644 --- a/src/app/time-picker/time-picker.sample.html +++ b/src/app/time-picker/time-picker.sample.html @@ -50,7 +50,7 @@

    Templated Action Buttons Time Picker

    Time picker with custom action button

    - +
    diff --git a/src/app/time-picker/time-picker.sample.ts b/src/app/time-picker/time-picker.sample.ts index 8f429c3fbf6..59ffd893246 100644 --- a/src/app/time-picker/time-picker.sample.ts +++ b/src/app/time-picker/time-picker.sample.ts @@ -1,14 +1,28 @@ import { Component, ViewChild } from '@angular/core'; -import { IgxTimePickerComponent, +import { NgIf } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { + IgxTimePickerComponent, IgxInputDirective, AutoPositionStrategy, OverlaySettings, - DatePart } from 'igniteui-angular'; + DatePart, + IgxHintDirective, + IgxButtonDirective, + IgxPickerActionsDirective, + IgxPickerToggleComponent, + IgxPrefixDirective, + IgxIconComponent, + IgxPickerClearComponent, + IgxSuffixDirective +} from 'igniteui-angular'; @Component({ selector: 'app-time-picker-sample', styleUrls: ['time-picker.sample.scss'], - templateUrl: 'time-picker.sample.html' + templateUrl: 'time-picker.sample.html', + standalone: true, + imports: [IgxTimePickerComponent, FormsModule, NgIf, IgxHintDirective, IgxButtonDirective, IgxPickerActionsDirective, IgxPickerToggleComponent, IgxPrefixDirective, IgxIconComponent, IgxPickerClearComponent, IgxSuffixDirective] }) export class TimePickerSampleComponent { @ViewChild('tp', { read: IgxTimePickerComponent, static: true }) diff --git a/src/app/toast/toast.sample.ts b/src/app/toast/toast.sample.ts index 036198b24ee..3156c73e3be 100644 --- a/src/app/toast/toast.sample.ts +++ b/src/app/toast/toast.sample.ts @@ -1,10 +1,16 @@ import { Component, ViewChild } from '@angular/core'; import { IgxToastComponent, VerticalAlignment } from 'igniteui-angular'; +import { IgxToastComponent as IgxToastComponent_1 } from '../../../projects/igniteui-angular/src/lib/toast/toast.component'; +import { IgxOverlayOutletDirective } from '../../../projects/igniteui-angular/src/lib/directives/toggle/toggle.directive'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; @Component({ selector: 'app-toast-sample', styleUrls: ['toast.sample.scss'], templateUrl: 'toast.sample.html', + standalone: true, + imports: [IgxButtonDirective, IgxRippleDirective, IgxOverlayOutletDirective, IgxToastComponent_1] }) export class ToastSampleComponent { @ViewChild('toast') diff --git a/src/app/tooltip/tooltip.sample.ts b/src/app/tooltip/tooltip.sample.ts index 295b9084d16..9c5635bf697 100644 --- a/src/app/tooltip/tooltip.sample.ts +++ b/src/app/tooltip/tooltip.sample.ts @@ -2,11 +2,26 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { IgxTooltipTargetDirective, OverlaySettings } from 'igniteui-angular'; +import { IgxCellTemplateDirective } from '../../../projects/igniteui-angular/src/lib/grids/columns/templates.directive'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/grid/grid.component'; +import { IgxRippleDirective } from '../../../projects/igniteui-angular/src/lib/directives/ripple/ripple.directive'; +import { IgxCardComponent, IgxCardContentDirective, IgxCardActionsComponent } from '../../../projects/igniteui-angular/src/lib/card/card.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxSliderComponent } from '../../../projects/igniteui-angular/src/lib/slider/slider.component'; +import { FormsModule } from '@angular/forms'; +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxIconComponent } from '../../../projects/igniteui-angular/src/lib/icon/icon.component'; +import { IgxTooltipDirective } from '../../../projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive'; +import { IgxTooltipTargetDirective as IgxTooltipTargetDirective_1 } from '../../../projects/igniteui-angular/src/lib/directives/tooltip/tooltip-target.directive'; +import { IgxAvatarComponent } from '../../../projects/igniteui-angular/src/lib/avatar/avatar.component'; @Component({ selector: 'app-tooltip-sample', styleUrls: ['tooltip.sample.css'], - templateUrl: 'tooltip.sample.html' + templateUrl: 'tooltip.sample.html', + standalone: true, + imports: [IgxAvatarComponent, IgxTooltipTargetDirective_1, IgxTooltipDirective, IgxIconComponent, IgxSwitchComponent, FormsModule, IgxSliderComponent, IgxButtonDirective, IgxCardComponent, IgxCardContentDirective, IgxCardActionsComponent, IgxRippleDirective, IgxGridComponent, IgxColumnComponent, IgxCellTemplateDirective] }) export class TooltipSampleComponent implements OnInit { diff --git a/src/app/tree-grid-add-row/tree-grid-add-row.sample.ts b/src/app/tree-grid-add-row/tree-grid-add-row.sample.ts index 79d693e8c94..6964a31b874 100644 --- a/src/app/tree-grid-add-row/tree-grid-add-row.sample.ts +++ b/src/app/tree-grid-add-row/tree-grid-add-row.sample.ts @@ -1,10 +1,22 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { ColumnPinningPosition, IgxTreeGridComponent, RowPinningPosition } from 'igniteui-angular'; +import { IgxLabelDirective } from '../../../projects/igniteui-angular/src/lib/directives/label/label.directive'; +import { IgxInputDirective } from '../../../projects/igniteui-angular/src/lib/directives/input/input.directive'; +import { IgxInputGroupComponent } from '../../../projects/igniteui-angular/src/lib/input-group/input-group.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxGridEditingActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-editing-actions.component'; +import { IgxGridPinningActionsComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-pinning-actions.component'; +import { IgxActionStripComponent } from '../../../projects/igniteui-angular/src/lib/action-strip/action-strip.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { NgFor } from '@angular/common'; +import { IgxTreeGridComponent as IgxTreeGridComponent_1 } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; @Component({ selector: 'app-tree-grid-add-row', styleUrls: ['tree-grid-add-row.sample.scss'], - templateUrl: `tree-grid-add-row.sample.html` + templateUrl: `tree-grid-add-row.sample.html`, + standalone: true, + imports: [IgxTreeGridComponent_1, NgFor, IgxColumnComponent, IgxActionStripComponent, IgxGridPinningActionsComponent, IgxGridEditingActionsComponent, IgxButtonDirective, IgxInputGroupComponent, IgxInputDirective, IgxLabelDirective] }) export class TreeGridAddRowSampleComponent implements OnInit { @ViewChild(IgxTreeGridComponent) diff --git a/src/app/tree-grid-flat-data/tree-grid-flat-data.sample.ts b/src/app/tree-grid-flat-data/tree-grid-flat-data.sample.ts index e9737f6bb90..5554cfea061 100644 --- a/src/app/tree-grid-flat-data/tree-grid-flat-data.sample.ts +++ b/src/app/tree-grid-flat-data/tree-grid-flat-data.sample.ts @@ -1,9 +1,23 @@ import { Component, ViewChild, OnInit } from '@angular/core'; -import { IgxTreeGridComponent, IgxExcelExporterService, IgxCsvExporterService, - IgxExcelExporterOptions, IgxCsvExporterOptions, CsvFileTypes, IgxSummaryOperand, IgxSummaryResult, - GridSelectionMode, - GridSummaryCalculationMode, - DisplayDensity} from 'igniteui-angular'; +import { NgFor } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IgxSwitchComponent } from '../../../projects/igniteui-angular/src/lib/switch/switch.component'; +import { IgxGridToolbarExporterComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component'; +import { IgxGridToolbarAdvancedFilteringComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component'; +import { IgxGridToolbarHidingComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-hiding.component'; +import { IgxGridToolbarPinningComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-pinning.component'; +import { IgxGridToolbarActionsComponent, IgxExcelTextDirective, IgxCSVTextDirective } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/common'; +import { GridSearchBoxComponent } from '../grid-search-box/grid-search-box.component'; +import { IgxGridToolbarComponent } from '../../../projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component'; +import { IgxColumnComponent } from '../../../projects/igniteui-angular/src/lib/grids/columns/column.component'; +import { IgxTreeGridComponent } from '../../../projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.component'; +import { IgxButtonDirective } from '../../../projects/igniteui-angular/src/lib/directives/button/button.directive'; +import { IgxButtonGroupComponent } from '../../../projects/igniteui-angular/src/lib/buttonGroup/buttonGroup.component'; +import { IgxSummaryOperand, IgxSummaryResult } from '../../../projects/igniteui-angular/src/lib/grids/public_api'; +import { GridSelectionMode, GridSummaryCalculationMode } from '../../../projects/igniteui-angular/src/lib/grids/common/enums'; +import { CsvFileTypes, IgxCsvExporterOptions, IgxCsvExporterService, IgxExcelExporterOptions, IgxExcelExporterService } from '../../../projects/igniteui-angular/src/lib/services/public_api'; +import { DisplayDensity } from '../../../projects/igniteui-angular/src/lib/core/density'; export class MySummaryOperand extends IgxSummaryOperand { public override operate(data: any[] = []): IgxSummaryResult[] { @@ -22,7 +36,9 @@ export class MySummaryOperand extends IgxSummaryOperand { @Component({ selector: 'app-tree-grid-flat-data-sample', styleUrls: ['tree-grid-flat-data.sample.scss'], - templateUrl: 'tree-grid-flat-data.sample.html' + templateUrl: 'tree-grid-flat-data.sample.html', + standalone: true, + imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxTreeGridComponent, NgFor, IgxColumnComponent, IgxGridToolbarComponent, GridSearchBoxComponent, IgxGridToolbarActionsComponent, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarExporterComponent, IgxExcelTextDirective, IgxCSVTextDirective, IgxSwitchComponent, FormsModule] }) export class TreeGridFlatDataSampleComponent implements OnInit { @ViewChild('grid1', { static: true }) public grid1: IgxTreeGridComponent; diff --git a/src/app/tree-grid-groupby/tree-grid-groupby.sample.html b/src/app/tree-grid-groupby/tree-grid-groupby.sample.html index 1774c2011f4..74fbd64e061 100644 --- a/src/app/tree-grid-groupby/tree-grid-groupby.sample.html +++ b/src/app/tree-grid-groupby/tree-grid-groupby.sample.html @@ -8,7 +8,7 @@