diff --git a/.config/bundle-system.js b/.config/bundle-system.js deleted file mode 100755 index 1894fa21..00000000 --- a/.config/bundle-system.js +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -/*eslint no-console: 0, no-sync: 0*/ - -// System.js bundler -// simple and yet reusable system.js bundler -// bundles, minifies and gzips - -const fs = require('fs'); -const del = require('del'); -const path = require('path'); -const zlib = require('zlib'); -const async = require('async'); -const Builder = require('systemjs-builder'); - -const pkg = require('../package.json'); -const name = pkg.name; -const targetFolder = path.resolve('./bundles'); -console.log(targetFolder) -async.waterfall([ - cleanBundlesFolder, - getSystemJsBundleConfig, - buildSystemJs({minify: false, sourceMaps: true, mangle: false}), - getSystemJsBundleConfig, - buildSystemJs({minify: true, sourceMaps: true, mangle: false}), - gzipSystemJsBundle -], err => { - if (err) { - throw err; - } -}); - -function getSystemJsBundleConfig(cb) { - const config = { - baseURL: '..', - transpiler: 'typescript', - typescriptOptions: { - module: 'cjs' - }, - map: { - typescript: path.resolve('node_modules/typescript/lib/typescript.js'), - angular2: path.resolve('node_modules/angular2'), - rxjs: path.resolve('node_modules/rxjs') - }, - paths: { - '*': '*.js' - } - }; - - config.meta = ['angular2', 'rxjs'].reduce((memo, currentValue) => { - memo[path.resolve(`node_modules/${currentValue}/*`)] = {build: false}; - return memo; - }, {}); - config.meta.moment = {build: false}; - console.log(config.meta) - return cb(null, config); -} - -function cleanBundlesFolder(cb) { - return del(targetFolder) - .then(paths => { - console.log('Deleted files and folders:\n', paths.join('\n')); - cb(); - }); -} - -function buildSystemJs(options) { - return (config, cb) => { - const minPostFix = options && options.minify ? '.min' : ''; - const fileName = `${name}${minPostFix}.js`; - const dest = path.resolve(__dirname, targetFolder, fileName); - const builder = new Builder(); - - console.log('Bundling system.js file:', fileName, options); - builder.config(config); - return builder - .bundle([name, name].join('/'), dest, options) - .then(() => cb()) - .catch(cb); - }; -} - -function gzipSystemJsBundle(cb) { - const files = fs - .readdirSync(path.resolve(targetFolder)) - .map(file => path.resolve(targetFolder, file)) - .filter(file => fs.statSync(file).isFile()) - .filter(file => path.extname(file) !== 'gz'); - - return async.eachSeries(files, (file, gzipcb) => { - process.nextTick(() => { - console.log('Gzipping ', file); - const gzip = zlib.createGzip({level: 9}); - const inp = fs.createReadStream(file); - const out = fs.createWriteStream(`${file}.gz`); - - inp.on('end', () => gzipcb()); - inp.on('error', err => gzipcb(err)); - return inp.pipe(gzip).pipe(out); - }); - }, cb); -} diff --git a/.editorconfig b/.editorconfig index e20a9680..f166060d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,11 +1,17 @@ -# http://editorconfig.org - +# Editor configuration, see https://editorconfig.org root = true [*] charset = utf-8 indent_style = space indent_size = 2 -end_of_line = lf insert_final_newline = true -trim_trailing_whitespace = true \ No newline at end of file +trim_trailing_whitespace = true + +[*.ts] +quote_type = single +ij_typescript_use_double_quotes = false + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index f8afe993..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./node_modules/eslint-config-valorsoft/.eslintrc.json", - "env": { - "node": true - } -} diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..7bf70c54 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,18 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Please, make an online example to reproduce the bug and share a link to the example. +You can fork the blank project and make your own example: https://codesandbox.io/s/scratch-angular-11-ngx-select-ex-9upjp?file=/src/app/app.component.html + +**Expected behavior** +A clear and concise description of what you expected to happen. diff --git a/.gitignore b/.gitignore index faf02f93..cc7b1413 100644 --- a/.gitignore +++ b/.gitignore @@ -1,30 +1,42 @@ -# Dependency directory -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out + +# Node /node_modules npm-debug.log +yarn-error.log -# type script artifacts -/typings +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace -# WebStorm -.idea +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* -# ignore build and dist for now -/bundles -/demo-build -/dist +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock /coverage -/ts - - -/demo/**/*.js -/demo/**/*.js.map -/demo/**/*.d.ts -/components/**/*.js -/components/**/*.js.map -/components/**/*.d.ts -ng2-select.js -ng2-select.js.map -ng2-select.d.ts +/libpeerconnection.log +testem.log +/typings -/logs +# System files +.DS_Store +Thumbs.db diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..72c4429b --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npm test diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 8f189f28..00000000 --- a/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -.idea -gulp-tasks -logs - -# typings -typings - -# testing -karma.conf.js -test.bundle.js -coverage - -# demo build -demo -demo-build -webpack.config.js - -#typescript sources -*.ts -*.js.map -!*.d.ts -/components/**/*.ts -!/components/**/*.d.ts - diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1e9bb205..00000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: node_js -node_js: - - "5" - - "4" - -before_install: -- npm install -g npm@latest - -script: -- npm run flow.install:typings -- npm test - -addons: - # sauce labs tunel connector (read more https://docs.travis-ci.com/user/sauce-connect/ ) - sauce_connect: true - firefox: "42.0" - apt: - sources: - - ubuntu-toolchain-r-test - # required by node-gyp to build some packages - packages: - - g++-4.8 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..77b37457 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..925af837 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..a298b5bd --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..26e1c7f2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,519 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [19.0.5](https://github.com/optimistex/ngx-select-ex/compare/v19.0.4...v19.0.5) (2024-11-21) + + +### Bug Fixes + +* license ([e63d768](https://github.com/optimistex/ngx-select-ex/commit/e63d768d29d5a4bf64c28bef96f78cb3192b944c)) + +### [19.0.4](https://github.com/optimistex/ngx-select-ex/compare/v19.0.3...v19.0.4) (2024-11-21) + + +### Bug Fixes + +* license ([01078bd](https://github.com/optimistex/ngx-select-ex/commit/01078bda73453dc713311a6ef99bec8c4b5cb28c)) + +### [19.0.3](https://github.com/optimistex/ngx-select-ex/compare/v19.0.2...v19.0.3) (2024-11-21) + +### [19.0.2](https://github.com/optimistex/ngx-select-ex/compare/v19.0.1...v19.0.2) (2024-11-21) + +### [19.0.1](https://github.com/optimistex/ngx-select-ex/compare/v19.0.0...v19.0.1) (2024-11-21) + +## [19.0.0](https://github.com/optimistex/ngx-select-ex/compare/v18.0.1...v19.0.0) (2024-11-21) + +### [18.0.1](https://github.com/optimistex/ngx-select-ex/compare/v18.0.0...v18.0.1) (2024-11-21) + +## [18.0.0](https://github.com/optimistex/ngx-select-ex/compare/v9.0.0...v18.0.0) (2024-11-21) + +## [9.0.0](https://github.com/optimistex/ngx-select-ex/compare/v8.0.2...v9.0.0) (2024-11-20) + +### [8.0.2](https://github.com/optimistex/ngx-select-ex/compare/v8.0.1...v8.0.2) (2024-08-20) + + +### Bug Fixes + +* position choises on appendTo scrollable area ([7536b30](https://github.com/optimistex/ngx-select-ex/commit/7536b30c48b4a057ac60542f7b7f621c47c5aa28)) + +### [8.0.1](https://github.com/optimistex/ngx-select-ex/compare/v8.0.0...v8.0.1) (2022-01-20) + + +### Bug Fixes + +* add `lodash.isequal` to peerDependencies ([fbe2f6b](https://github.com/optimistex/ngx-select-ex/commit/fbe2f6b6e70e850f6ec751628667be42419c46c2)) + +## [8.0.0](https://github.com/optimistex/ngx-select-ex/compare/v7.0.1...v8.0.0) (2022-01-20) + + +### Bug Fixes + +* autoformat ([e900b6d](https://github.com/optimistex/ngx-select-ex/commit/e900b6dd9cc14e03dabcdf45f79a9a93160ea806)) +* inconsistent template data types ([afd52e5](https://github.com/optimistex/ngx-select-ex/commit/afd52e5692983ae0a2ee20b69df47b8d34910bfe)) +* move `lodash.isequal` to dev dependencies ([4ac6f55](https://github.com/optimistex/ngx-select-ex/commit/4ac6f557396fbcd41c83d595dc08089bd07a369a)) +* One or more import cycles would need to be created to compile this component, which is not supported by the current compiler configuration. ([3e20dd2](https://github.com/optimistex/ngx-select-ex/commit/3e20dd2b45e6fa317a94df40d395402175be2dbb)) + +### [7.0.1](https://github.com/optimistex/ngx-select-ex/compare/v7.0.0...v7.0.1) (2021-12-04) + +## [7.0.0](https://github.com/optimistex/ngx-select-ex/compare/v6.1.2...v7.0.0) (2021-12-03) + +### [6.1.2](https://github.com/optimistex/ngx-select-ex/compare/v6.1.1...v6.1.2) (2021-12-03) + +### [6.1.1](https://github.com/optimistex/ngx-select-ex/compare/v6.1.0...v6.1.1) (2021-07-29) + + +### Bug Fixes + +* declaration of NgxSelectComponent.keepSelectedItems ([b47263a](https://github.com/optimistex/ngx-select-ex/commit/b47263a36d1cc3c959fe119bd2e82eef09a0a56d)) + +## [6.1.0](https://github.com/optimistex/ngx-select-ex/compare/v6.0.2...v6.1.0) (2021-05-11) + + +### Features + +* add option to disable safe html ([7edb056](https://github.com/optimistex/ngx-select-ex/commit/7edb05673b42cc7f630ebe5906641e5deb0b27b5)) + + +### Bug Fixes + +* lint & invert boolean for noSanitize ([43c850e](https://github.com/optimistex/ngx-select-ex/commit/43c850ebc99e1ae45d56b53285657e1b8464b6cd)) + +### [6.0.2](https://github.com/optimistex/ngx-select-ex/compare/v6.0.1...v6.0.2) (2021-01-23) + + +### Bug Fixes + +* vulnerabilities ([4f261a3](https://github.com/optimistex/ngx-select-ex/commit/4f261a30eb5dd90f3780e61c28caea36bf6216cc)) + +### [6.0.1](https://github.com/optimistex/ngx-select-ex/compare/v5.0.3...v6.0.1) (2020-12-01) + +### [5.0.3](https://github.com/optimistex/ngx-select-ex/compare/v5.0.2...v5.0.3) (2020-11-30) + +### [5.0.2](https://github.com/optimistex/ngx-select-ex/compare/v5.0.1...v5.0.2) (2020-11-10) + +### [5.0.1](https://github.com/optimistex/ngx-select-ex/compare/v4.0.0...v5.0.1) (2020-11-10) + +### [3.7.8](https://github.com/optimistex/ngx-select-ex/compare/v3.7.7...v3.7.8) (2020-04-14) + +### [3.7.7](https://github.com/optimistex/ngx-select-ex/compare/v3.7.6...v3.7.7) (2020-03-11) + +### [3.7.6](https://github.com/optimistex/ngx-select-ex/compare/v3.7.5...v3.7.6) (2020-01-13) + + +### Bug Fixes + +* NgxSelectComponent.onMouseEnter ([a95d11a](https://github.com/optimistex/ngx-select-ex/commit/a95d11a)) + +### [3.7.5](https://github.com/optimistex/ngx-select-ex/compare/v3.7.4...v3.7.5) (2020-01-13) + +### [3.7.4](https://github.com/optimistex/ngx-select-ex/compare/v3.7.3...v3.7.4) (2019-12-07) + + +### Bug Fixes + +* removed whitespaces for linting ([cd0faae](https://github.com/optimistex/ngx-select-ex/commit/cd0faae)) +* ViewDestroyedError: detectChanges ([a4de144](https://github.com/optimistex/ngx-select-ex/commit/a4de144)) + +### [3.7.3](https://github.com/optimistex/ngx-select-ex/compare/v3.6.7...v3.7.3) (2019-10-08) + +### 3.7.2 (2019-08-06) + +### 3.7.1 (2019-08-06) + +## 3.7.0 (2019-06-29) + +### 3.6.12-dev (2019-05-14) + +### 3.6.11-dev (2019-05-14) + +### 3.6.10 (2019-05-14) + +### 3.6.9-dev (2019-01-24) + +### 3.6.8 (2018-12-17) + + +## [3.6.7](https://github.com/optimistex/ngx-select-ex/compare/v2.0.0...v3.6.7) (2018-11-02) + + +### Bug Fixes + +* ngx-select-ex enable() doesn't work ([b68aa6f](https://github.com/optimistex/ngx-select-ex/commit/b68aa6f)) + + + + +## 3.6.5-dev (2018-10-30) + + + + +## 3.6.4-dev (2018-10-30) + + + + +## 3.6.3 (2018-10-28) + + +### Bug Fixes + +* Multi selections are always sorted in alphabetical order. [#121](https://github.com/optimistex/ngx-select-ex/issues/121) ([be6badf](https://github.com/optimistex/ngx-select-ex/commit/be6badf)) + + + + +## 3.6.2-dev (2018-10-25) + + + + +## 3.6.1 (2018-10-25) + + +### Bug Fixes + +* highlighted text calculation ([ad2f9a1](https://github.com/optimistex/ngx-select-ex/commit/ad2f9a1)) +* improve performance ([512b87f](https://github.com/optimistex/ngx-select-ex/commit/512b87f)) +* improve the speed of the subjOptionsSelected calculation ([dd574d7](https://github.com/optimistex/ngx-select-ex/commit/dd574d7)) +* keyAction order ([35b920a](https://github.com/optimistex/ngx-select-ex/commit/35b920a)) + + + + +# 3.6.0-dev (2018-09-29) + + +### Bug Fixes + +* fixed inputElRef accessibility problem ([f0043ca](https://github.com/optimistex/ngx-select-ex/commit/f0043ca)) +* highlight selected item ([a660d86](https://github.com/optimistex/ngx-select-ex/commit/a660d86)) + + +### Features + +* add option to auto activate element on mouse enter ([0b70a1b](https://github.com/optimistex/ngx-select-ex/commit/0b70a1b)) +* use OnPush change detection ([73e15bb](https://github.com/optimistex/ngx-select-ex/commit/73e15bb)) + + + + +## 3.5.13-dev (2018-06-19) + + +### Bug Fixes + +* wrong behaviour with the keepSelectedItems option ([5eaf544](https://github.com/optimistex/ngx-select-ex/commit/5eaf544)) + + + + +## 3.5.12-dev (2018-06-19) + + + + +## 3.5.11-dev (2018-06-18) + + +### Bug Fixes + +* placeholder out of the edges https://github.com/optimistex/ngx-select-ex/issues/87 ([8feec36](https://github.com/optimistex/ngx-select-ex/commit/8feec36)) + + + + +## 3.5.10-dev (2018-06-18) + + + + +## 3.5.9 (2018-06-07) + + + + +## 3.5.8 (2018-06-07) + + + + +## 3.5.7-dev (2018-06-04) + + +### Bug Fixes + +* If 'items' contains no data, option-not-found template not showing https://github.com/optimistex/ngx-select-ex/issues/81 ([0bfddaa](https://github.com/optimistex/ngx-select-ex/commit/0bfddaa)) + + + + +## 3.5.6-dev (2018-05-29) + + + + +## 3.5.5-dev (2018-05-25) + + +### Bug Fixes + +* Selection causing page to scroll to top in IE https://github.com/optimistex/ngx-select-ex/issues/75 ([08ca700](https://github.com/optimistex/ngx-select-ex/commit/08ca700)) + + + + +## 3.5.4 (2018-04-14) + + +### Bug Fixes + +* The enter key works wrong when used immediately after filtering https://github.com/optimistex/ngx-select-ex/issues/60 ([f219709](https://github.com/optimistex/ngx-select-ex/commit/f219709)) + + + + +## 3.5.3 (2018-04-07) + + + + +## 3.5.2 (2018-04-03) + + + + +## 3.5.1 (2018-04-03) + + + + +# 3.5.0 (2018-04-03) + + + + +## 3.4.3 (2018-04-03) + + +### Bug Fixes + +* The text filter does not work in Chrome Mobile (Android Version) https://github.com/optimistex/ngx-select-ex/issues/41 ([e2fb6fc](https://github.com/optimistex/ngx-select-ex/commit/e2fb6fc)) + + + + +# 3.4.0 (2018-03-06) + + +### Bug Fixes + +* When the dropdown item is too long, the textbox breaks - https://github.com/optimistex/ngx-select-ex/issues/29 ([d8f7127](https://github.com/optimistex/ngx-select-ex/commit/d8f7127)) + + + + +## 3.3.12 (2018-02-15) + + +### Bug Fixes + +* error on pressing the key Enter when items is empty. ([fe79b3a](https://github.com/optimistex/ngx-select-ex/commit/fe79b3a)) + + + + +## 3.3.11 (2018-02-15) + + +### Bug Fixes + +* ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'open show: 58'. Current value: 'open show: false'. ([32ba202](https://github.com/optimistex/ngx-select-ex/commit/32ba202)) + + +### Features + +* Implement custom template for an option https://github.com/optimistex/ngx-select-ex/issues/20 ([0ad0271](https://github.com/optimistex/ngx-select-ex/commit/0ad0271)) +* implemented NgxSelectComponent.navigated - https://github.com/optimistex/ngx-select-ex/issues/21#issuecomment-365211682 ([034ae8e](https://github.com/optimistex/ngx-select-ex/commit/034ae8e)), closes [/github.com/optimistex/ngx-select-ex/issues/21#issuecomment-365211682](https://github.com//github.com/optimistex/ngx-select-ex/issues/21/issues/issuecomment-365211682) +* implemented templates for "option selected" and "option not found" ([633c73c](https://github.com/optimistex/ngx-select-ex/commit/633c73c)), closes [/github.com/optimistex/ngx-select-ex/issues/22#issuecomment-365724438](https://github.com//github.com/optimistex/ngx-select-ex/issues/22/issues/issuecomment-365724438) + + + + +## 3.3.10 (2018-02-10) + + +### Bug Fixes + +* Not working with custom getter https://github.com/optimistex/ngx-select-ex/issues/19 ([0710e0e](https://github.com/optimistex/ngx-select-ex/commit/0710e0e)) + + + + +## 3.3.9 (2018-02-09) + + +### Bug Fixes + +* show the message "No results found" only when the items contain some items but all of them are filtered ([26af3ab](https://github.com/optimistex/ngx-select-ex/commit/26af3ab)), closes [/github.com/optimistex/ngx-select-ex/issues/11#issuecomment-364243799](https://github.com//github.com/optimistex/ngx-select-ex/issues/11/issues/issuecomment-364243799) + + + + +## 3.3.7 (2018-02-08) + + +### Bug Fixes + +* Error on disabled option with an empty array https://github.com/optimistex/ngx-select-ex/issues/13 ([7904729](https://github.com/optimistex/ngx-select-ex/commit/7904729)) + + +### Features + +* **$browser:** add the `select` and `remove` events ([93cd4be](https://github.com/optimistex/ngx-select-ex/commit/93cd4be)) + + + + +## 3.3.6 (2018-02-07) + + + + +## 3.3.5 (2018-02-07) + + + + +## 3.3.3 (2018-02-06) + + + + +## 3.3.2 (2018-02-04) + + + + +# 3.3.0-rc2 (2018-02-03) + + + + +# 3.3.0-rc1 (2018-02-03) + + + + +## 3.2.2 (2018-02-01) + + + + +## 3.2.1 (2018-02-01) + + + + +## 3.1.1 (2018-01-25) + + + + +## 3.0.18-rc (2018-01-24) + + + + +## 3.0.17-rc (2018-01-19) + + + + +## 3.0.15-rc (2018-01-19) + + + + +## 3.0.13-rc (2018-01-12) + + + + +## 3.0.12-rc (2018-01-11) + + + + +## 3.0.11-rc (2018-01-11) + + + + +## 3.0.10-beta (2018-01-09) + + + + +## 3.0.4-beta (2017-12-28) + + +### Bug Fixes + +* should be disabled by FormControl.disable() ([ff4f42b](https://github.com/optimistex/ngx-select-ex/commit/ff4f42b)) + + + + +## 3.0.3-alpha (2017-12-27) + + + + +## 3.0.2-alpha (2017-12-27) + + + + +## 3.0.1-alpha (2017-12-27) + + + + +# 3.0.0-alpha (2017-12-26) + + + + +## 2.1.5 (2017-12-23) + + + + +## 2.1.4 (2017-12-23) + + + + +## 2.1.3 (2017-12-22) + + + + +## 2.1.2 (2017-12-20) + + + + +## 2.1.1 (2017-12-20) + + + + +# 2.1.0 (2017-12-17) + + +### Bug Fixes + +* **ci:** fix travis ([#906](https://github.com/optimistex/ngx-select-ex/issues/906)) ([855ac2f](https://github.com/optimistex/ngx-select-ex/commit/855ac2f)) diff --git a/LICENSE b/LICENSE index 901dcb19..bbba0337 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015-2016 Dmitriy Shekhovtsov -Copyright (c) 2015-2016 Valor Software +Copyright (c) 2017-2018 Konstantin Polyntsov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 54be6bce..6bdd60cc 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,248 @@ -# Native UI Select Angular2 component ([demo](http://valor-software.com/ng2-select/)) -## ng2-select [![npm version](https://badge.fury.io/js/ng2-select.svg)](http://badge.fury.io/js/ng2-select) [![npm downloads](https://img.shields.io/npm/dm/ng2-select.svg)](https://npmjs.org/ng2-select) +# Native UI Select Angular component ([demo](https://optimistex.github.io/ngx-select-ex/)) + +## ngx-select-ex + +[![npm version](https://badge.fury.io/js/ngx-select-ex.svg)](http://badge.fury.io/js/ngx-select-ex) +[![npm downloads](https://img.shields.io/npm/dm/ngx-select-ex.svg)](https://npmjs.org/ngx-select-ex) + +Native Angular component for Select + +- Requires [Angular](https://angular.dev/) version 18 or higher! +- Compatible with [Bootstrap 3](https://getbootstrap.com/docs/3.3/) and **[Bootstrap 4](https://getbootstrap.com/)** + +## Usage + +1. Install **ngx-select-ex** through [npm](https://www.npmjs.com/package/ngx-select-ex) package manager using the following command: + + ```bash + npm i ngx-select-ex --save + ``` + +2. Add NgxSelectModule into your AppModule class. app.module.ts would look like this: + + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule } from 'ngx-select-ex'; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + + If you want to change the default options then use next code: + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule, INgxSelectOptions } from 'ngx-select-ex'; + + const CustomSelectOptions: INgxSelectOptions = { // Check the interface for more options + optionValueField: 'id', + optionTextField: 'name' + }; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule.forRoot(CustomSelectOptions)], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + +3. Include Bootstrap styles. + For example add to your index.html + + ```html + + ``` + +4. Add the tag `` into some html + + ```html + + ``` + +5. More information regarding of using **ngx-select-ex** is located in [demo](https://optimistex.github.io/ngx-select-ex/). -Follow me [![twitter](https://img.shields.io/twitter/follow/valorkin.svg?style=social&label=%20valorkin)](https://twitter.com/valorkin) to be notified about new releases. - -[![Angular 2 Style Guide](https://mgechev.github.io/angular2-style-guide/images/badge.svg)](https://github.com/mgechev/angular2-style-guide) -[![Code Climate](https://codeclimate.com/github/valor-software/ng2-select/badges/gpa.svg)](https://codeclimate.com/github/valor-software/ng2-select) -[![Build Status](https://travis-ci.org/valor-software/ng2-select.svg?branch=master)](https://travis-ci.org/valor-software/ng2-select) -[![Join the chat at https://gitter.im/valor-software/ng2-bootstrap](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/valor-software/ng2-bootstrap?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![devDependency Status](https://david-dm.org/valor-software/ng2-select/dev-status.svg)](https://david-dm.org/valor-software/ng2-select#info=devDependencies) -[![Throughput Graph](https://graphs.waffle.io/valor-software/ng2-select/throughput.svg)](https://waffle.io/valor-software/ng2-select/metrics) - - - -## Quick start - -1. A recommended way to install ***ng2-select*** is through [npm](https://www.npmjs.com/search?q=ng2-select) package manager using the following command: - - `npm i ng2-select --save` - -2. Include `ng2-select.css` in your project +## API -3. More information regarding of using ***ng2-select*** is located in - [demo](http://valor-software.github.io/ng2-select/) and [demo sources](https://github.com/valor-software/ng2-select/tree/master/demo). +Any item can be `disabled` for prevent selection. For disable an item add the property `disabled` to the item. + +| Input | Type | Default | Description | +| -------- | -------- | -------- | ------------- | +| [items] | any[] | `[]` | Items array. Should be an array of objects with `id` and `text` properties. As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. Items may be nested by adding a `options` property to any item, whose value should be another array of items. Items that have children may omit to have an ID. | +| optionValueField | string | `'id'` | Provide an opportunity to change the name an `id` property of objects in the `items` | +| optionTextField | string | `'text'` | Provide an opportunity to change the name a `text` property of objects in the `items` | +| optGroupLabelField | string | `'label'` | Provide an opportunity to change the name a `label` property of objects with an `options` property in the `items` | +| optGroupOptionsField | string | `'options'` | Provide an opportunity to change the name of an `options` property of objects in the `items` | +| [multiple] | boolean | `false` | Mode of this component. If set `true` user can select more than one option | +| [allowClear] | boolean | `false` | Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs | +| [placeholder] | string | `''` | Set to `true` Placeholder text to display when the element has no focus and selected items | +| [noAutoComplete] | boolean | `false` | Set to `true` to hide the search input. This option only applies to single-value inputs | +| [keepSelectedItems] | boolean | `false` | Storing the selected items when the item list is changed | +| [disabled] | boolean | `false` | When `true`, it specifies that the component should be disabled | +| [defaultValue] | any[] | `[]` | Use to set default value | +| autoSelectSingleOption | boolean | `false` | Auto select a non disabled single option | +| autoClearSearch | boolean | `false` | Auto clear a search text after select an option. Has effect for `multiple = true` | +| noResultsFound | string | `'No results found'` | The default text showed when a search has no results | +| size | `'small'/'default'/'large'` | `'default'` | Adding bootstrap classes: form-control-sm, input-sm, form-control-lg input-lg, btn-sm, btn-lg | +| searchCallback | `(search: string, item: INgxSelectOption) => boolean` | `null` | The callback function for custom filtering the select list | +| autoActiveOnMouseEnter | boolean | true | Automatically activate item when mouse enter on it | +| isFocused | boolean | false | Makes the component focused | +| keepSelectMenuOpened | boolean | false | Keeps the select menu opened | +| autocomplete | string | `'off'` | Sets an autocomplete value for the input field | +| dropDownMenuOtherClasses | string | `''` | Add css classes to the element with `dropdown-menu` class. For example `dropdown-menu-right` | +| showOptionNotFoundForEmptyItems | boolean | false | Shows the "Not Found" menu option in case of out of items at all | +| noSanitize | boolean | false | Disables auto mark an HTML as safe. Turn it on for safety from XSS if you render untrusted content in the options | +| appendTo | string | `null` | Append dropdown menu to any element using css selector + +| Output | Description | +| ------------- | ------------- | +| (typed) | Fired on changing search input. Returns `string` with that value. | +| (focus) | Fired on select focus | +| (blur) | Fired on select blur | +| (open) | Fired on select dropdown open | +| (close) | Fired on select dropdown close | +| (select) | Fired on an item selected by user. Returns value of the selected item. | +| (remove) | Fired on an item removed by user. Returns value of the removed item. | +| (navigated) | Fired on navigate by the dropdown list. Returns: `INgxOptionNavigated`. | +| (selectionChanges) | Fired on change selected options. Returns: `INgxSelectOption[]`. | + +**Warning!** Although the component contains the `select` and the `remove` events, the better solution is using `valueChanges` of the `FormControl`. + +```typescript +import {Component} from '@angular/core'; +import {FormControl} from '@angular/forms'; + +@Component({ + selector: 'app-example', + template: `` +}) +class ExampleComponent { + public selectControl = new FormControl(); + + constructor() { + this.selectControl.valueChanges.subscribe(value => console.log(value)); + } +} +``` + +### Styles and customization + +Currently, the component contains CSS classes named within [BEM Methodology](https://en.bem.info/methodology/). +As well it contains the "Bootstrap classes". Recommended use BEM classes for style customization. + +List of styles for customization: + +- **`ngx-select`** - Main class of the component. +- **`ngx-select_multiple`** - Modifier of the multiple mode. It's available when the property multiple is true. +- **`ngx-select__disabled`** - Layer for the disabled mode. +- **`ngx-select__selected`** - The common container for displaying selected items. +- **`ngx-select__toggle`** - The toggle for single mode. It's available when the property multiple is false. +- **`ngx-select__placeholder`** - The placeholder item. It's available when the property multiple is false. +- **`ngx-select__selected-single`** - The selected item with single mode. It's available when the property multiple is false. +- **`ngx-select__selected-plural`** - The multiple selected item. It's available when the property multiple is true. +- **`ngx-select__allow-clear`** - The indicator that the selected single item can be removed. It's available while properties the multiple is false and the allowClear is true. +- **`ngx-select__toggle-buttons`** - The container of buttons such as the clear and the toggle. +- **`ngx-select__toggle-caret`** - The drop-down button of the single mode. It's available when the property multiple is false. +- **`ngx-select__clear`** - The button clear. +- **`ngx-select__clear-icon`** - The cross icon. +- **`ngx-select__search`** - The input field for full text lives searching. +- **`ngx-select__choices`** - The common container of items. +- **`ngx-select__item-group`** - The group of items. +- **`ngx-select__item`** - An item. +- **`ngx-select__item_disabled`** - Modifier of a disabled item. +- **`ngx-select__item_active`** - Modifier of the activated item. + +### Templates + +For extended rendering customisation you are can use the `ng-template`: + +```html + + + + + + ({{option.data.hex}}) + + + + + + ({{option.data.hex}}) + + + + Nothing found + + + +``` + +Also, you are can mix directives for reducing template: +```html + + + + + ({{option.data.hex}}) + + + + Not found + + +``` + +Description details of the directives: +1. `ngx-select-option-selected` - Customization rendering selected options. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The text defined by the property `optionTextField`. + - `index` - Number value of index the option in the select list. Always equal to zero for the single select. +2. `ngx-select-option` - Customization rendering options in the dropdown menu. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The highlighted text defined by the property `optionTextField`. It is highlighted in the search. + - `index` - Number value of index for the top level. + - `subIndex` - Number value of index for the second level. +3. `ngx-select-option-not-found` - Customization "not found text". Does not represent any variables. + +## Troubleshooting -## API +Please follow this guidelines when reporting bugs and feature requests: -### Properties +1. Use [GitHub Issues](https://github.com/optimistex/ngx-select-ex/issues) board to report bugs and feature requests (not our email address) +2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it. - - `items` - (`Array`) - Array of items from which to select. Should be an array of objects with `id` and `text` properties. - As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. - Items may be nested by adding a `children` property to any item, whose value should be another array of items. Items that have children may omit having an ID. - If `items` are specified, all items are expected to be available locally and all selection operations operate on this local array only. - If omitted, items are not available locally, and the `query` option should be provided to fetch data. - - `initData` (`?Array`) - Initial selection data to set. This should be an object with `id` and `text` properties in the case of input type 'Single', - or an array of such objects otherwise. This option is mutually exclusive with value. - - `allowClear` (`?boolean=false`) (*not yet supported*) - Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs. - - `placeholder` (`?string=''`) - Placeholder text to display when the element has no focus and selected items. - - `disabled` (`?boolean=false`) - When `true`, it specifies that the component should be disabled. - - `multiple` - (`?boolean=false`) - Mode of this component. If set `true` user can select more than one option. - This option only applies to single-value inputs, as multiple-value inputs don't have the search input in the dropdown to begin with. +Thanks for understanding! -### Events +## Contribute - - `data` - it fires during all events of this component; returns `Array` - current selected data - - `selected` - it fires after a new option selected; returns object with `id` and `text` properties that describes a new option. - - `removed` - it fires after an option removed; returns object with `id` and `text` properties that describes a removed option. - - `typed` - it fires after changing of search input; returns `string` with that value. +Start working: +- `npm install` +- `npm run build:package` - **NECESSARY** since DEMO uses the package from `./dist` folder! -# Troubleshooting +Other commands: +- `npm start` - Run demo for local debugging. +- `npm test` - Run unit tests only once. Use `ng test` for running tests with files watching. +- `npm run build` - Build the demo & package for release & publishing. -Please follow this guidelines when reporting bugs and feature requests: +After build you will be able: -1. Use [GitHub Issues](https://github.com/valor-software/ng2-select/issues) board to report bugs and feature requests (not our email address) -2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it. +- Install the component to another project by `npm install /path/to/ngx-select-ex/dist`. +- Link another project to the component `npm link /path/to/ngx-select-ex/dist`. **Warning!** Then use the flag [--preserve-symlinks](https://github.com/optimistex/ngx-select-ex/issues/4) -Thanks for understanding! +Do not forget make a pull request to the [ngx-select-ex](https://github.com/optimistex/ngx-select-ex) ### License -The MIT License (see the [LICENSE](https://github.com/valor-software/ng2-select/blob/master/LICENSE) file for the full text) +The MIT License (see the [LICENSE](https://github.com/optimistex/ngx-select-ex/blob/master/LICENSE) file for the full text) diff --git a/angular.json b/angular.json new file mode 100644 index 00000000..17731927 --- /dev/null +++ b/angular.json @@ -0,0 +1,158 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "ngx-select-ex": { + "projectType": "library", + "root": "projects/ngx-select-ex", + "sourceRoot": "projects/ngx-select-ex/src", + "prefix": "lib", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:ng-packagr", + "options": { + "project": "projects/ngx-select-ex/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "projects/ngx-select-ex/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "projects/ngx-select-ex/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "tsConfig": "projects/ngx-select-ex/tsconfig.spec.json", + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "karmaConfig": "projects/ngx-select-ex/karma.conf.js" + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "lintFilePatterns": [ + "projects/ngx-select-ex/**/*.ts", + "projects/ngx-select-ex/**/*.html" + ], + "eslintConfig": "projects/ngx-select-ex/eslint.config.js" + } + } + } + }, + "ngx-select-ex-demo": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "docs", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "@angular/material/prebuilt-themes/azure-blue.css", + "src/styles.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kB", + "maximumError": "1MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "4kB", + "maximumError": "8kB" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "ngx-select-ex-demo:build:production" + }, + "development": { + "buildTarget": "ngx-select-ex-demo:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n" + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": [ + { + "glob": "**/*", + "input": "public" + } + ], + "styles": [ + "@angular/material/prebuilt-themes/azure-blue.css", + "src/styles.scss" + ], + "scripts": [], + "karmaConfig": "karma.conf.js" + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "lintFilePatterns": [ + "src/**/*.ts", + "src/**/*.html" + ] + } + } + } + } + } +} diff --git a/components/css/ng2-select.css b/components/css/ng2-select.css deleted file mode 100644 index c0aac6a3..00000000 --- a/components/css/ng2-select.css +++ /dev/null @@ -1,273 +0,0 @@ - -/* Style when highlighting a search. */ -.ui-select-highlight { - font-weight: bold; -} - -.ui-select-offscreen { - clip: rect(0 0 0 0) !important; - width: 1px !important; - height: 1px !important; - border: 0 !important; - margin: 0 !important; - padding: 0 !important; - overflow: hidden !important; - position: absolute !important; - outline: 0 !important; - left: 0px !important; - top: 0px !important; -} - - -.ui-select-choices-row:hover { - background-color: #f5f5f5; -} - -/* Select2 theme */ - -/* Mark invalid Select2 */ -.ng-dirty.ng-invalid > a.select2-choice { - border-color: #D44950; -} - -.select2-result-single { - padding-left: 0; -} - -.select2-locked > .select2-search-choice-close{ - display:none; -} - -.select-locked > .ui-select-match-close{ - display:none; -} - -body > .select2-container.open { - z-index: 9999; /* The z-index Select2 applies to the select2-drop */ -} - -/* Handle up direction Select2 */ -.ui-select-container[theme="select2"].direction-up .ui-select-match { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - - border-top-width: 1px; /* FIXME hardcoded value :-/ */ - border-top-style: solid; - - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown .select2-search { - margin-top: 4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up.select2-dropdown-open .ui-select-match { - border-bottom-color: #5897fb; -} - -/* Selectize theme */ - -/* Helper class to show styles when focus */ -.selectize-input.selectize-focus{ - border-color: #007FBB !important; -} - -/* Fix input width for Selectize theme */ -.selectize-control > .selectize-input > input { - width: 100%; -} - -/* Fix dropdown width for Selectize theme */ -.selectize-control > .selectize-dropdown { - width: 100%; -} - -/* Mark invalid Selectize */ -.ng-dirty.ng-invalid > div.selectize-input { - border-color: #D44950; -} - -/* Handle up direction Selectize */ -.ui-select-container[theme="selectize"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -2px; /* FIXME hardcoded value :-/ */ -} - -/* Bootstrap theme */ - -/* Helper class to show styles when focus */ -.btn-default-focus { - color: #333; - background-color: #EBEBEB; - border-color: #ADADAD; - text-decoration: none; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -} - -.ui-select-bootstrap .ui-select-toggle { - position: relative; -} - -.ui-select-bootstrap .ui-select-toggle > .caret { - position: absolute; - height: 10px; - top: 50%; - right: 10px; - margin-top: -2px; -} - -/* Fix Bootstrap dropdown position when inside a input-group */ -.input-group > .ui-select-bootstrap.dropdown { - /* Instead of relative */ - position: static; -} - -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up { - border-radius: 4px !important; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -.ui-select-bootstrap > .ui-select-match > .btn{ - /* Instead of center because of .btn */ - text-align: left !important; -} - -.ui-select-bootstrap > .ui-select-match > .caret { - position: absolute; - top: 45%; - right: 15px; -} - -.ui-disabled { - background-color: #eceeef ; - border-radius: 4px; - position: absolute; - width: 100%; - height: 100%; - z-index: 5; - opacity: 0.6; - top: 0; - left: 0; - cursor: not-allowed; -} - -/* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */ -.ui-select-bootstrap > .ui-select-choices { - width: 100%; - height: auto; - max-height: 200px; - overflow-x: hidden; - margin-top: -1px; -} - -body > .ui-select-bootstrap.open { - z-index: 1000; /* Standard Bootstrap dropdown z-index */ -} - -.ui-select-multiple.ui-select-bootstrap { - height: auto; - padding: 3px 3px 0 3px; -} - -.ui-select-multiple.ui-select-bootstrap input.ui-select-search { - background-color: transparent !important; /* To prevent double background when disabled */ - border: none; - outline: none; - height: 1.666666em; - margin-bottom: 3px; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match .close { - font-size: 1.6em; - line-height: 0.75; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match-item { - outline: 0; - margin: 0 3px 3px 0; -} - -.ui-select-multiple .ui-select-match-item { - position: relative; -} - -.ui-select-multiple .ui-select-match-item.dropping-before:before { - content: ""; - position: absolute; - top: 0; - right: 100%; - height: 100%; - margin-right: 2px; - border-left: 1px solid #428bca; -} - -.ui-select-multiple .ui-select-match-item.dropping-after:after { - content: ""; - position: absolute; - top: 0; - left: 100%; - height: 100%; - margin-left: 2px; - border-right: 1px solid #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row>a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: 400; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} - -.ui-select-bootstrap .ui-select-choices-row>a:hover, .ui-select-bootstrap .ui-select-choices-row>a:focus { - text-decoration: none; - color: #262626; - background-color: #f5f5f5; -} - -.ui-select-bootstrap .ui-select-choices-row.active>a { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row.disabled>a, -.ui-select-bootstrap .ui-select-choices-row.active.disabled>a { - color: #777; - cursor: not-allowed; - background-color: #fff; -} - -/* fix hide/show angular animation */ -.ui-select-match.ng-hide-add, -.ui-select-search.ng-hide-add { - display: none !important; -} - -/* Mark invalid Bootstrap */ -.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match { - border-color: #D44950; -} - -/* Handle up direction Bootstrap */ -.ui-select-container[theme="bootstrap"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); -} diff --git a/components/select.ts b/components/select.ts deleted file mode 100644 index 43f35c6f..00000000 --- a/components/select.ts +++ /dev/null @@ -1,2 +0,0 @@ -import {Select} from './select/select'; -export const SELECT_DIRECTIVES:Array = [Select]; diff --git a/components/select/readme.md b/components/select/readme.md deleted file mode 100644 index fcf010b8..00000000 --- a/components/select/readme.md +++ /dev/null @@ -1,40 +0,0 @@ -### Usage -```typescript -import {SELECT_DIRECTIVES} from 'ng2-select/ng2-select'; -``` - -### Annotations -```typescript -// class Select -@Component({ - selector: 'ng-select', - properties: [ - 'allowClear', - 'placeholder', - 'items', - 'multiple', - 'showSearchInputInDropdown'] -}) -``` - -### Select properties - - - `items` - (`Array`) - Array of items from which to select. Should be an array of objects with `id` and `text` properties. - As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. - Items may be nested by adding a `children` property to any item, whose value should be another array of items. Items that have children may omit having an ID. - If `items` are specified, all items are expected to be available locally and all selection operations operate on this local array only. - If omitted, items are not available locally, and the `query` option should be provided to fetch data. - - `data` (`?Array`) - Initial selection data to set. This should be an object with `id` and `text` properties in the case of input type 'Single', - or an array of such objects otherwise. This option is mutually exclusive with value. - - `allowClear` (`?boolean=false`) (*not yet supported*) - Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs. - - `placeholder` (`?string=''`) - Placeholder text to display when the element has no focus and selected items. - - `disabled` (`?boolean=false`) - When `true`, it specifies that the component should be disabled. - - `multiple` - (`?boolean=false`) - Mode of this component. If set `true` user can select more than one option. - This option only applies to single-value inputs, as multiple-value inputs don't have the search input in the dropdown to begin with. - -### Select events - - - `data` - it fires during all events of this component; returns `Array` - current selected data - - `selected` - it fires after a new option selected; returns object with `id` and `text` properties that describes a new option. - - `removed` - it fires after an option removed; returns object with `id` and `text` properties that describes a removed option. - - `typed` - it fires after changing of search input; returns `string` with that value. diff --git a/components/select/select-interfaces.ts b/components/select/select-interfaces.ts deleted file mode 100644 index a1f1aa13..00000000 --- a/components/select/select-interfaces.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface IOptionsBehavior { - first():any; - last():any; - prev():any; - next():any; - filter(query:RegExp):any; -} diff --git a/components/select/select-item.ts b/components/select/select-item.ts deleted file mode 100644 index eff1efb9..00000000 --- a/components/select/select-item.ts +++ /dev/null @@ -1,47 +0,0 @@ -export class SelectItem { - public id:string; - public text:string; - public children:Array; - public parent:SelectItem; - - constructor(source:any) { - if (typeof source === 'string') { - this.id = this.text = source; - } - - if (typeof source === 'object') { - this.id = source.id || source.text; - this.text = source.text; - - if (source.children && source.text) { - this.children = source.children.map((c:any) => { - let r:SelectItem = new SelectItem(c); - r.parent = this; - return r; - }); - this.text = source.text; - } - } - } - - public fillChildrenHash(optionsMap:Map, startIndex:number):number { - let i = startIndex; - this.children.map(child => { - optionsMap.set(child.id, i++); - }); - - return i; - } - - public hasChildren():boolean { - return this.children && this.children.length > 0; - } - - public getSimilar():SelectItem { - let r:SelectItem = new SelectItem(false); - r.id = this.id; - r.text = this.text; - r.parent = this.parent; - return r; - } -} diff --git a/components/select/select-pipes.ts b/components/select/select-pipes.ts deleted file mode 100644 index 4ffb6eda..00000000 --- a/components/select/select-pipes.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {Pipe} from 'angular2/core'; - -@Pipe({ - name: 'hightlight' -}) -export class HightlightPipe { - transform(value:string, args:any[]) { - if (args.length < 1) { - return value; - } - - let query = args[0]; - - if ( query ) { - let tagRE = new RegExp('<[^<>]*>', 'ig'); - // get ist of tags - let tagList = value.match( tagRE ); - // Replace tags with token - let tmpValue = value.replace( tagRE, '$!$'); - // Replace search words - value = tmpValue.replace(new RegExp(this.escapeRegexp(query), 'gi'), '$&'); - // Reinsert HTML - for (let i = 0; value.indexOf('$!$') > -1; i++) { - value = value.replace('$!$', tagList[i]); - } - } - return value; - } - - private escapeRegexp(queryToEscape:string) { - return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'); - } -} - -export function stripTags(input:string) { - let tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi, - commentsAndPhpTags = /|<\?(?:php)?[\s\S]*?\?>/gi; - return input.replace(commentsAndPhpTags, '').replace(tags, ''); -} diff --git a/components/select/select.ts b/components/select/select.ts deleted file mode 100644 index 005e240b..00000000 --- a/components/select/select.ts +++ /dev/null @@ -1,630 +0,0 @@ -import { - Component, - Input, - Output, - EventEmitter, - ElementRef -} from 'angular2/core'; -import { - CORE_DIRECTIVES, - FORM_DIRECTIVES, - NgClass, - NgStyle -} from 'angular2/common'; -import {SelectItem} from './select-item'; -import { - HightlightPipe, - stripTags -} from './select-pipes'; -import {IOptionsBehavior} from './select-interfaces'; - -let optionsTemplate = ` - - - -`; - -@Component({ - selector: 'ng-select', - pipes: [HightlightPipe], - template: ` - - - - ` -}) -export class Select { - @Input() - allowClear:boolean = false; - @Input() - placeholder:string = ''; - @Input() - initData:Array = []; - @Input() - multiple:boolean = false; - - @Input() set items(value:Array) { - this._items = value; - this.itemObjects = this._items.map((item:any) => new SelectItem(item)); - } - - @Input() set disabled(value:boolean) { - this._disabled = value; - if (this._disabled === true) { - this.hideOptions(); - } - } - - @Output() - data:EventEmitter = new EventEmitter(); - @Output() - selected:EventEmitter = new EventEmitter(); - @Output() - removed:EventEmitter = new EventEmitter(); - @Output() - typed:EventEmitter = new EventEmitter(); - - public options:Array = []; - public itemObjects:Array = []; - public active:Array = []; - public activeOption:SelectItem; - private offSideClickHandler:any; - private inputMode:boolean = false; - private optionsOpened:boolean = false; - private behavior:IOptionsBehavior; - private inputValue:string = ''; - private _items:Array = []; - private _disabled:boolean = false; - - constructor(public element:ElementRef) { - } - - private focusToInput(value:string = '') { - setTimeout(() => { - let el = this.element.nativeElement.querySelector('div.ui-select-container > input'); - if (el) { - el.focus(); - el.value = value; - } - }, 0); - } - - private matchClick(e:any) { - if (this._disabled === true) { - return; - } - - this.inputMode = !this.inputMode; - if (this.inputMode === true && ((this.multiple === true && e) || this.multiple === false)) { - this.focusToInput(); - this.open(); - } - } - - private mainClick(e:any) { - if (this.inputMode === true || this._disabled === true) { - return; - } - - if (e.keyCode === 46) { - e.preventDefault(); - this.inputEvent(e); - return; - } - - if (e.keyCode === 8) { - e.preventDefault(); - this.inputEvent(e, true); - return; - } - - if (e.keyCode === 9 || e.keyCode === 13 || - e.keyCode === 27 || (e.keyCode >= 37 && e.keyCode <= 40)) { - e.preventDefault(); - return; - } - - this.inputMode = true; - let value = String - .fromCharCode(96 <= e.keyCode && e.keyCode <= 105 ? e.keyCode - 48 : e.keyCode) - .toLowerCase(); - this.focusToInput(value); - this.open(); - e.srcElement.value = value; - this.inputEvent(e); - } - - private open() { - this.options = this.itemObjects - .filter(option => (this.multiple === false || - this.multiple === true && !this.active.find(o => option.text === o.text))); - - if (this.options.length > 0) { - this.behavior.first(); - } - - this.optionsOpened = true; - } - - ngOnInit() { - this.behavior = this.itemObjects[0].hasChildren() ? - new ChildrenBehavior(this) : new GenericBehavior(this); - this.offSideClickHandler = this.getOffSideClickHandler(this); - document.addEventListener('click', this.offSideClickHandler); - - if (this.initData) { - this.active = this.initData.map(d => new SelectItem(d)); - this.data.emit(this.active); - } - } - - ngOnDestroy() { - document.removeEventListener('click', this.offSideClickHandler); - this.offSideClickHandler = null; - } - - private getOffSideClickHandler(context:any) { - return function (e:any) { - if (e.target && e.target.nodeName === 'INPUT' - && e.target.className && e.target.className.indexOf('ui-select') >= 0) { - return; - } - - if (e.srcElement.contains(context.element.nativeElement) - && e.srcElement && e.srcElement.className && - e.srcElement.className.indexOf('ui-select') >= 0) { - if (e.target.nodeName !== 'INPUT') { - context.matchClick(null); - } - return; - } - - context.inputMode = false; - context.optionsOpened = false; - }; - } - - public remove(item:SelectItem) { - if (this._disabled === true) { - return; - } - - if (this.multiple === true && this.active) { - let index = this.active.indexOf(item); - this.active.splice(index, 1); - this.data.next(this.active); - this.doEvent('removed', item); - } - - if (this.multiple === false) { - this.active = []; - this.data.next(this.active); - this.doEvent('removed', item); - } - } - - public doEvent(type:string, value:any) { - if ((this)[type] && value) { - (this)[type].next(value); - } - } - - private hideOptions() { - this.inputMode = false; - this.optionsOpened = false; - } - - public inputEvent(e:any, isUpMode:boolean = false) { - // tab - if (e.keyCode === 9) { - return; - } - - if (isUpMode && (e.keyCode === 37 || e.keyCode === 39 || e.keyCode === 38 || - e.keyCode === 40 || e.keyCode === 13)) { - e.preventDefault(); - return; - } - - // backspace - if (!isUpMode && e.keyCode === 8) { - let el:any = this.element.nativeElement - .querySelector('div.ui-select-container > input'); - - if (!el.value || el.value.length <= 0) { - if (this.active.length > 0) { - this.remove(this.active[this.active.length - 1]); - } - - e.preventDefault(); - } - } - - // esc - if (!isUpMode && e.keyCode === 27) { - this.hideOptions(); - this.element.nativeElement.children[0].focus(); - e.preventDefault(); - return; - } - - // del - if (!isUpMode && e.keyCode === 46) { - if (this.active.length > 0) { - this.remove(this.active[this.active.length - 1]); - } - e.preventDefault(); - } - - // left - if (!isUpMode && e.keyCode === 37 && this._items.length > 0) { - this.behavior.first(); - e.preventDefault(); - return; - } - - // right - if (!isUpMode && e.keyCode === 39 && this._items.length > 0) { - this.behavior.last(); - e.preventDefault(); - return; - } - - // up - if (!isUpMode && e.keyCode === 38) { - this.behavior.prev(); - e.preventDefault(); - return; - } - - // down - if (!isUpMode && e.keyCode === 40) { - this.behavior.next(); - e.preventDefault(); - return; - } - - // enter - if (!isUpMode && e.keyCode === 13) { - if (this.active.indexOf(this.activeOption) == -1) { - this.selectActiveMatch(); - this.behavior.next(); - } - e.preventDefault(); - return; - } - - if (e.srcElement) { - this.inputValue = e.srcElement.value; - this.behavior.filter(new RegExp(this.inputValue, 'ig')); - this.doEvent('typed', this.inputValue); - } - } - - private selectActiveMatch() { - this.selectMatch(this.activeOption); - } - - private selectMatch(value:SelectItem, e:Event = null) { - if (e) { - e.stopPropagation(); - e.preventDefault(); - } - - if (this.options.length <= 0) { - return; - } - - if (this.multiple === true) { - this.active.push(value); - this.data.next(this.active); - } - - if (this.multiple === false) { - this.active[0] = value; - this.data.next(this.active[0]); - } - - this.doEvent('selected', value); - this.hideOptions(); - - if (this.multiple === true) { - this.focusToInput(''); - } else { - this.focusToInput( stripTags(value.text) ); - this.element.nativeElement.querySelector('.ui-select-container').focus(); - } - } - - private selectActive(value:SelectItem) { - this.activeOption = value; - } - - private isActive(value:SelectItem):boolean { - return this.activeOption.text === value.text; - } -} - -export class Behavior { - public optionsMap:Map = new Map(); - - constructor(public actor:Select) { - } - - private getActiveIndex(optionsMap:Map = null):number { - let ai = this.actor.options.indexOf(this.actor.activeOption); - - if (ai < 0 && optionsMap !== null) { - ai = optionsMap.get(this.actor.activeOption.id); - } - - return ai; - } - - public fillOptionsMap() { - this.optionsMap.clear(); - let startPos = 0; - this.actor.itemObjects.map(i => { - startPos = i.fillChildrenHash(this.optionsMap, startPos); - }); - } - - public ensureHighlightVisible(optionsMap:Map = null) { - let container = this.actor.element.nativeElement.querySelector('.ui-select-choices-content'); - - if (!container) { - return; - } - - let choices = container.querySelectorAll('.ui-select-choices-row'); - if (choices.length < 1) { - return; - } - - let activeIndex = this.getActiveIndex(optionsMap); - if (activeIndex < 0) { - return; - } - - let highlighted:any = choices[activeIndex]; - if (!highlighted) { - return; - } - - let posY:number = highlighted.offsetTop + highlighted.clientHeight - container.scrollTop; - let height:number = container.offsetHeight; - - if (posY > height) { - container.scrollTop += posY - height; - } else if (posY < highlighted.clientHeight) { - container.scrollTop -= highlighted.clientHeight - posY; - } - } -} - -export class GenericBehavior extends Behavior implements IOptionsBehavior { - constructor(public actor:Select) { - super(actor); - } - - public first() { - this.actor.activeOption = this.actor.options[0]; - super.ensureHighlightVisible(); - } - - public last() { - this.actor.activeOption = this.actor.options[this.actor.options.length - 1]; - super.ensureHighlightVisible(); - } - - public prev() { - let index = this.actor.options.indexOf(this.actor.activeOption); - this.actor.activeOption = this.actor - .options[index - 1 < 0 ? this.actor.options.length - 1 : index - 1]; - super.ensureHighlightVisible(); - } - - public next() { - let index = this.actor.options.indexOf(this.actor.activeOption); - this.actor.activeOption = this.actor - .options[index + 1 > this.actor.options.length - 1 ? 0 : index + 1]; - super.ensureHighlightVisible(); - } - - public filter(query:RegExp) { - let options = this.actor.itemObjects - .filter(option => stripTags(option.text).match(query) && - (this.actor.multiple === false || - (this.actor.multiple === true && - this.actor.active.indexOf(option) < 0))); - this.actor.options = options; - - if (this.actor.options.length > 0) { - this.actor.activeOption = this.actor.options[0]; - super.ensureHighlightVisible(); - } - } - -} - -export class ChildrenBehavior extends Behavior implements IOptionsBehavior { - constructor(public actor:Select) { - super(actor); - } - - public first() { - this.actor.activeOption = this.actor.options[0].children[0]; - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public last() { - this.actor.activeOption = - this.actor - .options[this.actor.options.length - 1] - .children[this.actor.options[this.actor.options.length - 1].children.length - 1]; - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public prev() { - let indexParent = this.actor.options - .findIndex(a => this.actor.activeOption.parent && this.actor.activeOption.parent.id === a.id); - let index = this.actor.options[indexParent].children - .findIndex(a => this.actor.activeOption && this.actor.activeOption.id === a.id); - this.actor.activeOption = this.actor.options[indexParent].children[index - 1]; - - if (!this.actor.activeOption) { - if (this.actor.options[indexParent - 1]) { - this.actor.activeOption = this.actor - .options[indexParent - 1] - .children[this.actor.options[indexParent - 1].children.length - 1]; - } - } - - if (!this.actor.activeOption) { - this.last(); - } - - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public next() { - let indexParent = this.actor.options - .findIndex(a => this.actor.activeOption.parent && this.actor.activeOption.parent.id === a.id); - let index = this.actor.options[indexParent].children - .findIndex(a => this.actor.activeOption && this.actor.activeOption.id === a.id); - this.actor.activeOption = this.actor.options[indexParent].children[index + 1]; - if (!this.actor.activeOption) { - if (this.actor.options[indexParent + 1]) { - this.actor.activeOption = this.actor.options[indexParent + 1].children[0]; - } - } - - if (!this.actor.activeOption) { - this.first(); - } - - this.fillOptionsMap(); - this.ensureHighlightVisible(this.optionsMap); - } - - public filter(query:RegExp) { - let options:Array = []; - let optionsMap:Map = new Map(); - let startPos = 0; - - for (let si of this.actor.itemObjects) { - let children:Array = si.children.filter(option => query.test(option.text)); - startPos = si.fillChildrenHash(optionsMap, startPos); - - if (children.length > 0) { - let newSi = si.getSimilar(); - newSi.children = children; - options.push(newSi); - } - } - - this.actor.options = options; - - if (this.actor.options.length > 0) { - this.actor.activeOption = this.actor.options[0].children[0]; - super.ensureHighlightVisible(optionsMap); - } - } -} - - diff --git a/demo/assets/css/ng2-select.css b/demo/assets/css/ng2-select.css deleted file mode 100644 index c0aac6a3..00000000 --- a/demo/assets/css/ng2-select.css +++ /dev/null @@ -1,273 +0,0 @@ - -/* Style when highlighting a search. */ -.ui-select-highlight { - font-weight: bold; -} - -.ui-select-offscreen { - clip: rect(0 0 0 0) !important; - width: 1px !important; - height: 1px !important; - border: 0 !important; - margin: 0 !important; - padding: 0 !important; - overflow: hidden !important; - position: absolute !important; - outline: 0 !important; - left: 0px !important; - top: 0px !important; -} - - -.ui-select-choices-row:hover { - background-color: #f5f5f5; -} - -/* Select2 theme */ - -/* Mark invalid Select2 */ -.ng-dirty.ng-invalid > a.select2-choice { - border-color: #D44950; -} - -.select2-result-single { - padding-left: 0; -} - -.select2-locked > .select2-search-choice-close{ - display:none; -} - -.select-locked > .ui-select-match-close{ - display:none; -} - -body > .select2-container.open { - z-index: 9999; /* The z-index Select2 applies to the select2-drop */ -} - -/* Handle up direction Select2 */ -.ui-select-container[theme="select2"].direction-up .ui-select-match { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - - border-top-width: 1px; /* FIXME hardcoded value :-/ */ - border-top-style: solid; - - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown .select2-search { - margin-top: 4px; /* FIXME hardcoded value :-/ */ -} -.ui-select-container[theme="select2"].direction-up.select2-dropdown-open .ui-select-match { - border-bottom-color: #5897fb; -} - -/* Selectize theme */ - -/* Helper class to show styles when focus */ -.selectize-input.selectize-focus{ - border-color: #007FBB !important; -} - -/* Fix input width for Selectize theme */ -.selectize-control > .selectize-input > input { - width: 100%; -} - -/* Fix dropdown width for Selectize theme */ -.selectize-control > .selectize-dropdown { - width: 100%; -} - -/* Mark invalid Selectize */ -.ng-dirty.ng-invalid > div.selectize-input { - border-color: #D44950; -} - -/* Handle up direction Selectize */ -.ui-select-container[theme="selectize"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); - - margin-top: -2px; /* FIXME hardcoded value :-/ */ -} - -/* Bootstrap theme */ - -/* Helper class to show styles when focus */ -.btn-default-focus { - color: #333; - background-color: #EBEBEB; - border-color: #ADADAD; - text-decoration: none; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -} - -.ui-select-bootstrap .ui-select-toggle { - position: relative; -} - -.ui-select-bootstrap .ui-select-toggle > .caret { - position: absolute; - height: 10px; - top: 50%; - right: 10px; - margin-top: -2px; -} - -/* Fix Bootstrap dropdown position when inside a input-group */ -.input-group > .ui-select-bootstrap.dropdown { - /* Instead of relative */ - position: static; -} - -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control { - border-radius: 4px; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up { - border-radius: 4px !important; /* FIXME hardcoded value :-/ */ - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -.ui-select-bootstrap > .ui-select-match > .btn{ - /* Instead of center because of .btn */ - text-align: left !important; -} - -.ui-select-bootstrap > .ui-select-match > .caret { - position: absolute; - top: 45%; - right: 15px; -} - -.ui-disabled { - background-color: #eceeef ; - border-radius: 4px; - position: absolute; - width: 100%; - height: 100%; - z-index: 5; - opacity: 0.6; - top: 0; - left: 0; - cursor: not-allowed; -} - -/* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */ -.ui-select-bootstrap > .ui-select-choices { - width: 100%; - height: auto; - max-height: 200px; - overflow-x: hidden; - margin-top: -1px; -} - -body > .ui-select-bootstrap.open { - z-index: 1000; /* Standard Bootstrap dropdown z-index */ -} - -.ui-select-multiple.ui-select-bootstrap { - height: auto; - padding: 3px 3px 0 3px; -} - -.ui-select-multiple.ui-select-bootstrap input.ui-select-search { - background-color: transparent !important; /* To prevent double background when disabled */ - border: none; - outline: none; - height: 1.666666em; - margin-bottom: 3px; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match .close { - font-size: 1.6em; - line-height: 0.75; -} - -.ui-select-multiple.ui-select-bootstrap .ui-select-match-item { - outline: 0; - margin: 0 3px 3px 0; -} - -.ui-select-multiple .ui-select-match-item { - position: relative; -} - -.ui-select-multiple .ui-select-match-item.dropping-before:before { - content: ""; - position: absolute; - top: 0; - right: 100%; - height: 100%; - margin-right: 2px; - border-left: 1px solid #428bca; -} - -.ui-select-multiple .ui-select-match-item.dropping-after:after { - content: ""; - position: absolute; - top: 0; - left: 100%; - height: 100%; - margin-left: 2px; - border-right: 1px solid #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row>a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: 400; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} - -.ui-select-bootstrap .ui-select-choices-row>a:hover, .ui-select-bootstrap .ui-select-choices-row>a:focus { - text-decoration: none; - color: #262626; - background-color: #f5f5f5; -} - -.ui-select-bootstrap .ui-select-choices-row.active>a { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #428bca; -} - -.ui-select-bootstrap .ui-select-choices-row.disabled>a, -.ui-select-bootstrap .ui-select-choices-row.active.disabled>a { - color: #777; - cursor: not-allowed; - background-color: #fff; -} - -/* fix hide/show angular animation */ -.ui-select-match.ng-hide-add, -.ui-select-search.ng-hide-add { - display: none !important; -} - -/* Mark invalid Bootstrap */ -.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match { - border-color: #D44950; -} - -/* Handle up direction Bootstrap */ -.ui-select-container[theme="bootstrap"].direction-up .ui-select-dropdown { - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25); -} diff --git a/demo/assets/css/prism-okaidia.css b/demo/assets/css/prism-okaidia.css deleted file mode 100644 index 0fac6828..00000000 --- a/demo/assets/css/prism-okaidia.css +++ /dev/null @@ -1,119 +0,0 @@ -/** - * okaidia theme for JavaScript, CSS and HTML - * Loosely based on Monokai textmate theme by http://www.monokai.nl/ - * @author ocodia - */ - -code[class*="language-"], -pre[class*="language-"] { - color: #f8f8f2; - text-shadow: 0 1px rgba(0, 0, 0, 0.3); - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: .5em 0; - overflow: auto; - border-radius: 0.3em; -} - -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #272822; -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} - -.token.punctuation { - color: #f8f8f2; -} - -.namespace { - opacity: .7; -} - -.token.property, -.token.tag, -.token.constant, -.token.symbol, -.token.deleted { - color: #f92672; -} - -.token.boolean, -.token.number { - color: #ae81ff; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #a6e22e; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string, -.token.variable { - color: #f8f8f2; -} - -.token.atrule, -.token.attr-value, -.token.function { - color: #e6db74; -} - -.token.keyword { - color: #66d9ef; -} - -.token.regex, -.token.important { - color: #fd971f; -} - -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} diff --git a/demo/assets/css/style.css b/demo/assets/css/style.css deleted file mode 100644 index 224171bb..00000000 --- a/demo/assets/css/style.css +++ /dev/null @@ -1,278 +0,0 @@ -/*! - * Bootstrap Docs (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under the Creative Commons Attribution 3.0 Unported License. For - * details, see http://creativecommons.org/licenses/by/3.0/. - */ - -.h1, .h2, .h3, h1, h2, h3 { - margin-top: 20px; - margin-bottom: 10px; -} - -.h1, h1 { - font-size: 36px; -} - -.btn-group-lg > .btn, .btn-lg { - font-size: 18px; -} - -section { - padding-top: 30px; -} - -.bd-pageheader { - margin-top: 51px; -} - -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} - -.navbar-default .navbar-nav > li > a { - color: #777; -} - -.navbar { - padding: 0; -} - -.navbar-nav .nav-item { - margin-left: 0 !important; -} - -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} - -.nav .navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; - margin-right: 0 !important; -} - -.navbar-brand { - color: #777; - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} - -.navbar-toggler { - margin-top: 8px; - margin-right: 15px; -} - -.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover { - color: #333; - background-color: transparent; -} - -.bd-pageheader, .bs-docs-masthead { - position: relative; - padding: 30px 0; - color: #cdbfe3; - text-align: center; - text-shadow: 0 1px 0 rgba(0, 0, 0, .1); - background-color: #6f5499; - background-image: -webkit-gradient(linear, left top, left bottom, from(#563d7c), to(#6f5499)); - background-image: -webkit-linear-gradient(top, #563d7c 0, #6f5499 100%); - background-image: -o-linear-gradient(top, #563d7c 0, #6f5499 100%); - background-image: linear-gradient(to bottom, #563d7c 0, #6f5499 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#563d7c', endColorstr='#6F5499', GradientType=0); - background-repeat: repeat-x; -} - -.bd-pageheader { - margin-bottom: 40px; - font-size: 20px; -} - -.bd-pageheader h1 { - margin-top: 0; - color: #fff; -} - -.bd-pageheader p { - margin-bottom: 0; - font-weight: 300; - line-height: 1.4; -} - -.bd-pageheader .btn { - margin: 10px 0; -} - -.scrollable-menu .nav-link { - color: #337ab7; - font-size: 14px; -} - -.scrollable-menu .nav-link:hover { - color: #23527c; - background-color: #eee; -} - -@media (min-width: 992px) { - .bd-pageheader h1, .bd-pageheader p { - margin-right: 380px; - } -} - -@media (min-width: 768px) { - .bd-pageheader { - padding-top: 60px; - padding-bottom: 60px; - font-size: 24px; - text-align: left; - } - - .bd-pageheader h1 { - font-size: 60px; - line-height: 1; - } - - .navbar-nav > li > a.nav-link { - padding-top: 15px; - padding-bottom: 15px; - font-size: 14px; - } - - .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} - -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } - - .navbar .container { - width: 100%; - max-width: 100%; - } - .navbar .container, - .navbar .container .navbar-header { - padding: 0; - margin: 0; - } -} - -@media (max-width: 400px) { - code, kbd { - font-size: 60%; - } -} - -/** - * VH and VW units can cause issues on iOS devices: http://caniuse.com/#feat=viewport-units - * - * To overcome this, create media queries that target the width, height, and orientation of iOS devices. - * It isn't optimal, but there is really no other way to solve the problem. In this example, I am fixing - * the height of element '.scrollable-menu' —which is a full width and height cover image. - * - * iOS Resolution Quick Reference: http://www.iosres.com/ - */ - -.scrollable-menu { - height: 90vh !important; - width: 100vw; - overflow-x: hidden; - padding: 0 0 20px; -} - -/** - * iPad with portrait orientation. - */ -@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) { - .scrollable-menu { - height: 1024px !important; - } -} - -/** - * iPad with landscape orientation. - */ -@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: landscape) { - .scrollable-menu { - height: 768px !important; - } -} - -/** - * iPhone 5 - * You can also target devices with aspect ratio. - */ -@media screen and (device-aspect-ratio: 40/71) { - .scrollable-menu { - height: 500px !important; - } -} - -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} - -.navbar-toggle:focus { - outline: 0 -} - -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px -} - -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px -} - -pre { - white-space: pre-wrap; /* CSS 3 */ - white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - word-wrap: break-word; /* Internet Explorer 5.5+ */ -} - -.chart-legend, .bar-legend, .line-legend, .pie-legend, .radar-legend, .polararea-legend, .doughnut-legend { - list-style-type: none; - margin-top: 5px; - text-align: center; - -webkit-padding-start: 0; - -moz-padding-start: 0; - padding-left: 0 -} - -.chart-legend li, .bar-legend li, .line-legend li, .pie-legend li, .radar-legend li, .polararea-legend li, .doughnut-legend li { - display: inline-block; - white-space: nowrap; - position: relative; - margin-bottom: 4px; - border-radius: 5px; - padding: 2px 8px 2px 28px; - font-size: smaller; - cursor: default -} - -.chart-legend li span, .bar-legend li span, .line-legend li span, .pie-legend li span, .radar-legend li span, .polararea-legend li span, .doughnut-legend li span { - display: block; - position: absolute; - left: 0; - top: 0; - width: 20px; - height: 20px; - border-radius: 5px -} \ No newline at end of file diff --git a/demo/components/select-section.ts b/demo/components/select-section.ts deleted file mode 100644 index 6f432b14..00000000 --- a/demo/components/select-section.ts +++ /dev/null @@ -1,99 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES} from 'angular2/common'; - -import {TAB_DIRECTIVES} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SingleDemo} from './select/single-demo'; -import {MultipleDemo} from './select/multiple-demo'; -import {ChildrenDemo} from './select/children-demo'; -import {RichDemo} from './select/rich-demo'; - -let name = 'Select'; -// webpack html imports -let doc = require('../../components/select/readme.md'); - -let tabDesc:Array = [ - { - heading: 'Single', - ts: require('!!prismjs?lang=typescript!./select/single-demo.ts'), - html: require('!!prismjs?lang=markup!./select/single-demo.html') - }, - { - heading: 'Multiple', - ts: require('!!prismjs?lang=typescript!./select/multiple-demo.ts'), - html: require('!!prismjs?lang=markup!./select/multiple-demo.html') - }, - { - heading: 'Children', - ts: require('!!prismjs?lang=typescript!./select/children-demo.ts'), - html: require('!!prismjs?lang=markup!./select/children-demo.html') - }, - { - heading: 'Rich', - ts: require('!!prismjs?lang=typescript!./select/rich-demo.ts'), - html: require('!!prismjs?lang=markup!./select/rich-demo.html') - } -]; - -let tabsContent:string = ``; -tabDesc.forEach(desc => { - tabsContent += ` -
- <${desc.heading.toLowerCase()}-demo> - -
-
{{ currentHeading }}
- -
-
- -
- - -
-
${desc.html}
-
-
- -
-
-              ${desc.ts}
-            
-
-
-
-
-
-
- `; -}); - -@Component({ - selector: 'select-section', - template: ` -
-
- - - ${tabsContent} - - -
- -
-

API

-
${doc}
-
-
- `, - directives: [SingleDemo, MultipleDemo, ChildrenDemo, RichDemo, TAB_DIRECTIVES, CORE_DIRECTIVES] -}) -export class SelectSection { - public currentHeading:string = 'Single'; - - public select_zzz(e:any) { - if (e.heading) { - this.currentHeading = e.heading; - } - } -} diff --git a/demo/components/select/children-demo.html b/demo/components/select/children-demo.html deleted file mode 100644 index e38dade4..00000000 --- a/demo/components/select/children-demo.html +++ /dev/null @@ -1,20 +0,0 @@ -
-

Select a city by country

- -

-
{{value.text}}
-
- -
-
diff --git a/demo/components/select/children-demo.ts b/demo/components/select/children-demo.ts deleted file mode 100644 index a825a5b6..00000000 --- a/demo/components/select/children-demo.ts +++ /dev/null @@ -1,216 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -// webpack html imports -let template = require('./children-demo.html'); - -@Component({ - selector: 'children-demo', - template: template, - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox] -}) -export class ChildrenDemo { - private value:any = {}; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = [ - { - text: 'Austria', - children: [ - {id: 54, text: 'Vienna'} - ] - }, - { - text: 'Belgium', - children: [ - {id: 2, text: 'Antwerp'}, - {id: 9, text: 'Brussels'} - ] - }, - { - text: 'Bulgaria', - children: [ - {id: 48, text: 'Sofia'} - ] - }, - { - text: 'Croatia', - children: [ - {id: 58, text: 'Zagreb'} - ] - }, - { - text: 'Czech Republic', - children: [ - {id: 42, text: 'Prague'} - ] - }, - { - text: 'Denmark', - children: [ - {id: 13, text: 'Copenhagen'} - ] - }, - { - text: 'England', - children: [ - {id: 6, text: 'Birmingham'}, - {id: 7, text: 'Bradford'}, - {id: 26, text: 'Leeds'}, - {id: 30, text: 'London'}, - {id: 34, text: 'Manchester'}, - {id: 47, text: 'Sheffield'} - ] - }, - { - text: 'Finland', - children: [ - {id: 25, text: 'Helsinki'} - ] - }, - { - text: 'France', - children: [ - {id: 35, text: 'Marseille'}, - {id: 40, text: 'Paris'} - ] - }, - { - text: 'Germany', - children: [ - {id: 5, text: 'Berlin'}, - {id: 8, text: 'Bremen'}, - {id: 12, text: 'Cologne'}, - {id: 14, text: 'Dortmund'}, - {id: 15, text: 'Dresden'}, - {id: 17, text: 'Düsseldorf'}, - {id: 18, text: 'Essen'}, - {id: 19, text: 'Frankfurt'}, - {id: 23, text: 'Hamburg'}, - {id: 24, text: 'Hannover'}, - {id: 27, text: 'Leipzig'}, - {id: 37, text: 'Munich'}, - {id: 50, text: 'Stuttgart'} - ] - }, - { - text: 'Greece', - children: [ - {id: 3, text: 'Athens'} - ] - }, - { - text: 'Hungary', - children: [ - {id: 11, text: 'Budapest'} - ] - }, - { - text: 'Ireland', - children: [ - {id: 16, text: 'Dublin'} - ] - }, - { - text: 'Italy', - children: [ - {id: 20, text: 'Genoa'}, - {id: 36, text: 'Milan'}, - {id: 38, text: 'Naples'}, - {id: 39, text: 'Palermo'}, - {id: 44, text: 'Rome'}, - {id: 52, text: 'Turin'} - ] - }, - { - text: 'Latvia', - children: [ - {id: 43, text: 'Riga'} - ] - }, - { - text: 'Lithuania', - children: [ - {id: 55, text: 'Vilnius'} - ] - }, - { - text: 'Netherlands', - children: [ - {id: 1, text: 'Amsterdam'}, - {id: 45, text: 'Rotterdam'}, - {id: 51, text: 'The Hague'} - ] - }, - { - text: 'Poland', - children: [ - {id: 29, text: 'Łódź'}, - {id: 31, text: 'Kraków'}, - {id: 41, text: 'Poznań'}, - {id: 56, text: 'Warsaw'}, - {id: 57, text: 'Wrocław'} - ] - }, - { - text: 'Portugal', - children: [ - {id: 28, text: 'Lisbon'} - ] - }, - { - text: 'Romania', - children: [ - {id: 10, text: 'Bucharest'} - ] - }, - { - text: 'Scotland', - children: [ - {id: 21, text: 'Glasgow'} - ] - }, - { - text: 'Spain', - children: [ - {id: 4, text: 'Barcelona'}, - {id: 32, text: 'Madrid'}, - {id: 33, text: 'Málaga'}, - {id: 46, text: 'Seville'}, - {id: 53, text: 'Valencia'}, - {id: 59, text: 'Zaragoza'} - ] - }, - { - text: 'Sweden', - children: [ - {id: 22, text: 'Gothenburg'}, - {id: 49, text: 'Stockholm'} - ] - } - ]; - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } -} diff --git a/demo/components/select/multiple-demo.html b/demo/components/select/multiple-demo.html deleted file mode 100644 index 84a08a72..00000000 --- a/demo/components/select/multiple-demo.html +++ /dev/null @@ -1,19 +0,0 @@ -
-

Select multiple cities

- -
{{itemsToString(value)}}
-
- -
-
diff --git a/demo/components/select/multiple-demo.ts b/demo/components/select/multiple-demo.ts deleted file mode 100644 index c0877d31..00000000 --- a/demo/components/select/multiple-demo.ts +++ /dev/null @@ -1,56 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -// webpack html imports -let template = require('./multiple-demo.html'); - -@Component({ - selector: 'multiple-demo', - template: template, - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox] -}) -export class MultipleDemo { - private value:any = ['Athens']; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', - 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', - 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', 'Düsseldorf', - 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', 'Hamburg', 'Hannover', - 'Helsinki', 'Leeds', 'Leipzig', 'Lisbon', 'Łódź', 'London', 'Kraków', 'Madrid', - 'Málaga', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Naples', 'Palermo', - 'Paris', 'Poznań', 'Prague', 'Riga', 'Rome', 'Rotterdam', 'Seville', 'Sheffield', - 'Sofia', 'Stockholm', 'Stuttgart', 'The Hague', 'Turin', 'Valencia', 'Vienna', - 'Vilnius', 'Warsaw', 'Wrocław', 'Zagreb', 'Zaragoza']; - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } - - private itemsToString(value:Array = []) { - return value - .map(item => { - return item.text; - }).join(','); - } -} diff --git a/demo/components/select/rich-demo.html b/demo/components/select/rich-demo.html deleted file mode 100644 index 927711e1..00000000 --- a/demo/components/select/rich-demo.html +++ /dev/null @@ -1,21 +0,0 @@ -
-

Select a color

- - -

-
{{value.text}}
-
- -
-
diff --git a/demo/components/select/rich-demo.ts b/demo/components/select/rich-demo.ts deleted file mode 100644 index 677cac04..00000000 --- a/demo/components/select/rich-demo.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { - Component, - OnInit, - ViewEncapsulation -} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -const COLORS = [ - { 'name': 'Blue 10', 'hex': '#C0E6FF' }, - { 'name': 'Blue 20', 'hex': '#7CC7FF' }, - { 'name': 'Blue 30', 'hex': '#5AAAFA' }, - { 'name': 'Blue 40', 'hex': '#5596E6' }, - { 'name': 'Blue 50', 'hex': '#4178BE' }, - { 'name': 'Blue 60', 'hex': '#325C80' }, - { 'name': 'Blue 70', 'hex': '#264A60' }, - { 'name': 'Blue 80', 'hex': '#1D3649' }, - { 'name': 'Blue 90', 'hex': '#152935' }, - { 'name': 'Blue 100', 'hex': '#010205' }, - { 'name': 'Green 10', 'hex': '#C8F08F' }, - { 'name': 'Green 20', 'hex': '#B4E051' }, - { 'name': 'Green 30', 'hex': '#8CD211' }, - { 'name': 'Green 40', 'hex': '#5AA700' }, - { 'name': 'Green 50', 'hex': '#4B8400' }, - { 'name': 'Green 60', 'hex': '#2D660A' }, - { 'name': 'Green 70', 'hex': '#144D14' }, - { 'name': 'Green 80', 'hex': '#0A3C02' }, - { 'name': 'Green 90', 'hex': '#0C2808' }, - { 'name': 'Green 100', 'hex': '#010200' }, - { 'name': 'Red 10', 'hex': '#FFD2DD' }, - { 'name': 'Red 20', 'hex': '#FFA5B4' }, - { 'name': 'Red 30', 'hex': '#FF7D87' }, - { 'name': 'Red 40', 'hex': '#FF5050' }, - { 'name': 'Red 50', 'hex': '#E71D32' }, - { 'name': 'Red 60', 'hex': '#AD1625' }, - { 'name': 'Red 70', 'hex': '#8C101C' }, - { 'name': 'Red 80', 'hex': '#6E0A1E' }, - { 'name': 'Red 90', 'hex': '#4C0A17' }, - { 'name': 'Red 100', 'hex': '#040001' }, - { 'name': 'Yellow 10', 'hex': '#FDE876' }, - { 'name': 'Yellow 20', 'hex': '#FDD600' }, - { 'name': 'Yellow 30', 'hex': '#EFC100' }, - { 'name': 'Yellow 40', 'hex': '#BE9B00' }, - { 'name': 'Yellow 50', 'hex': '#8C7300' }, - { 'name': 'Yellow 60', 'hex': '#735F00' }, - { 'name': 'Yellow 70', 'hex': '#574A00' }, - { 'name': 'Yellow 80', 'hex': '#3C3200' }, - { 'name': 'Yellow 90', 'hex': '#281E00' }, - { 'name': 'Yellow 100', 'hex': '#020100' } -]; - -// webpack html imports -let template = require('./rich-demo.html'); - -@Component({ - selector: 'rich-demo', - template: template, - styles: [`colorbox,.colorbox { display:inline-block; height:14px; width:14px;margin-right:4px; border:1px solid #000;}`], - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox], - encapsulation: ViewEncapsulation.None // Enable dynamic HTML styles -}) -export class RichDemo implements OnInit { - private value:any = {}; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = []; - - ngOnInit() { - COLORS.forEach( c => { - this.items.push( { - id : c.hex, - text: `${c.name} (${c.hex})` - }); - }); - } - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private typed(value:any) { - console.log('New search input: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } -} - diff --git a/demo/components/select/single-demo.html b/demo/components/select/single-demo.html deleted file mode 100644 index 7c610da5..00000000 --- a/demo/components/select/single-demo.html +++ /dev/null @@ -1,21 +0,0 @@ -
-

Select a single city

- - -

-
{{value.text}}
-
- -
-
diff --git a/demo/components/select/single-demo.ts b/demo/components/select/single-demo.ts deleted file mode 100644 index 3da0ad80..00000000 --- a/demo/components/select/single-demo.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {Component} from 'angular2/core'; -import {CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass} from 'angular2/common'; -import {ButtonCheckbox} from 'ng2-bootstrap/ng2-bootstrap'; - -import {SELECT_DIRECTIVES} from '../../../ng2-select'; - -// webpack html imports -let template = require('./single-demo.html'); - -@Component({ - selector: 'single-demo', - template: template, - directives: [SELECT_DIRECTIVES, NgClass, CORE_DIRECTIVES, FORM_DIRECTIVES, ButtonCheckbox] -}) -export class SingleDemo { - private value:any = {}; - private _disabledV:string = '0'; - private disabled:boolean = false; - private items:Array = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', - 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', - 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', - 'Düsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', - 'Hamburg', 'Hannover', 'Helsinki', 'Kraków', 'Leeds', 'Leipzig', 'Lisbon', - 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Málaga', - 'Naples', 'Palermo', 'Paris', 'Poznań', 'Prague', 'Riga', 'Rome', - 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart', - 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wrocław', - 'Zagreb', 'Zaragoza', 'Łódź']; - - private get disabledV():string { - return this._disabledV; - } - - private set disabledV(value:string) { - this._disabledV = value; - this.disabled = this._disabledV === '1'; - } - - private selected(value:any) { - console.log('Selected value is: ', value); - } - - private removed(value:any) { - console.log('Removed value is: ', value); - } - - private typed(value:any) { - console.log('New search input: ', value); - } - - private refreshValue(value:any) { - this.value = value; - } -} diff --git a/demo/index.html b/demo/index.html deleted file mode 100644 index 266abc2b..00000000 --- a/demo/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - Angular2 Select - - - - - - - - - - - - - - - - - - - - Loading... - - - - diff --git a/demo/index.ts b/demo/index.ts deleted file mode 100644 index 0c7142af..00000000 --- a/demo/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -import {bootstrap} from 'angular2/platform/browser'; -import {Component} from 'angular2/core'; -import {NgClass} from 'angular2/common'; - -import {SelectSection} from './components/select-section'; - -let gettingStarted = require('./getting-started.md'); - -@Component({ - selector: 'app', - template: ` -
-
-

ng2-select

-

Native Angular2 component for Select

- View on GitHub -
-
-
-
-
-
- -
-
${gettingStarted}
- - -
- - - `, - directives: [ - NgClass, - SelectSection - ] -}) -export class Demo { -} - -bootstrap(Demo); diff --git a/docs/3rdpartylicenses.txt b/docs/3rdpartylicenses.txt new file mode 100644 index 00000000..a1e31aa4 --- /dev/null +++ b/docs/3rdpartylicenses.txt @@ -0,0 +1,493 @@ +@angular/animations +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/cdk +MIT +The MIT License + +Copyright (c) 2024 Google LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/common +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/core +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/forms +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/material +MIT +The MIT License + +Copyright (c) 2024 Google LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/platform-browser +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +escape-string-regexp +MIT +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +lodash.isequal +MIT +Copyright JS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + + +ngx-select-ex +MIT +The MIT License (MIT) + +Copyright (c) 2017-2018 Konstantin Polyntsov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +rxjs +Apache-2.0 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +zone.js +MIT +The MIT License + +Copyright (c) 2010-2024 Google LLC. https://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/docs/8.4ae02359ce54e594.js b/docs/8.4ae02359ce54e594.js new file mode 100644 index 00000000..8e7a4b48 --- /dev/null +++ b/docs/8.4ae02359ce54e594.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkngx_select_ex_demo=self.webpackChunkngx_select_ex_demo||[]).push([[8],{8:(gn,We,se)=>{se.r(We),se.d(We,{AnimationDriver:()=>fs,NoopAnimationDriver:()=>ve,\u0275Animation:()=>hn,\u0275AnimationEngine:()=>Be,\u0275AnimationRenderer:()=>wt,\u0275AnimationRendererFactory:()=>mn,\u0275AnimationStyleNormalizer:()=>xe,\u0275BaseAnimationRenderer:()=>$e,\u0275NoopAnimationStyleNormalizer:()=>Ze,\u0275WebAnimationsDriver:()=>Tt,\u0275WebAnimationsPlayer:()=>Qe,\u0275WebAnimationsStyleNormalizer:()=>rt,\u0275allowPreviousPlayerStylesMerge:()=>it,\u0275camelCaseToDashCase:()=>_s,\u0275containsElement:()=>Ee,\u0275createEngine:()=>cn,\u0275getParentElement:()=>ne,\u0275invokeQuery:()=>Te,\u0275normalizeKeyframes:()=>tt,\u0275validateStyleProperty:()=>Ye,\u0275validateWebAnimatableStyleProperty:()=>cs});var d=se(969),E=se(213);function je(i){return new E.wOt(3e3,!1)}const os=new Set(["-moz-outline-radius","-moz-outline-radius-bottomleft","-moz-outline-radius-bottomright","-moz-outline-radius-topleft","-moz-outline-radius-topright","-ms-grid-columns","-ms-grid-rows","-webkit-line-clamp","-webkit-text-fill-color","-webkit-text-stroke","-webkit-text-stroke-color","accent-color","all","backdrop-filter","background","background-color","background-position","background-size","block-size","border","border-block-end","border-block-end-color","border-block-end-width","border-block-start","border-block-start-color","border-block-start-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-width","border-color","border-end-end-radius","border-end-start-radius","border-image-outset","border-image-slice","border-image-width","border-inline-end","border-inline-end-color","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-width","border-left","border-left-color","border-left-width","border-radius","border-right","border-right-color","border-right-width","border-start-end-radius","border-start-start-radius","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-width","border-width","bottom","box-shadow","caret-color","clip","clip-path","color","column-count","column-gap","column-rule","column-rule-color","column-rule-width","column-width","columns","filter","flex","flex-basis","flex-grow","flex-shrink","font","font-size","font-size-adjust","font-stretch","font-variation-settings","font-weight","gap","grid-column-gap","grid-gap","grid-row-gap","grid-template-columns","grid-template-rows","height","inline-size","input-security","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","left","letter-spacing","line-clamp","line-height","margin","margin-block-end","margin-block-start","margin-bottom","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","mask","mask-border","mask-position","mask-size","max-block-size","max-height","max-inline-size","max-lines","max-width","min-block-size","min-height","min-inline-size","min-width","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","outline","outline-color","outline-offset","outline-width","padding","padding-block-end","padding-block-start","padding-bottom","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","perspective","perspective-origin","right","rotate","row-gap","scale","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-coordinate","scroll-snap-destination","scrollbar-color","shape-image-threshold","shape-margin","shape-outside","tab-size","text-decoration","text-decoration-color","text-decoration-thickness","text-emphasis","text-emphasis-color","text-indent","text-shadow","text-underline-offset","top","transform","transform-origin","translate","vertical-align","visibility","width","word-spacing","z-index","zoom"]);function $(i){switch(i.length){case 0:return new d.sf;case 1:return i[0];default:return new d.ui(i)}}function Ge(i,e,t=new Map,s=new Map){const n=[],r=[];let a=-1,o=null;if(e.forEach(l=>{const u=l.get("offset"),c=u==a,h=c&&o||new Map;l.forEach((S,_)=>{let m=_,y=S;if("offset"!==_)switch(m=i.normalizePropertyName(m,n),y){case d.FX:y=t.get(_);break;case d.kp:y=s.get(_);break;default:y=i.normalizeStyleValue(_,m,y,n)}h.set(m,y)}),c||r.push(h),o=h,a=u}),n.length)throw function Yt(){return new E.wOt(3502,!1)}();return r}function ye(i,e,t,s){switch(e){case"start":i.onStart(()=>s(t&&_e(t,"start",i)));break;case"done":i.onDone(()=>s(t&&_e(t,"done",i)));break;case"destroy":i.onDestroy(()=>s(t&&_e(t,"destroy",i)))}}function _e(i,e,t){const r=Se(i.element,i.triggerName,i.fromState,i.toState,e||i.phaseName,t.totalTime??i.totalTime,!!t.disabled),a=i._data;return null!=a&&(r._data=a),r}function Se(i,e,t,s,n="",r=0,a){return{element:i,triggerName:e,fromState:t,toState:s,phaseName:n,totalTime:r,disabled:!!a}}function O(i,e,t){let s=i.get(e);return s||i.set(e,s=t),s}function He(i){const e=i.indexOf(":");return[i.substring(1,e),i.slice(e+1)]}const ls=typeof document>"u"?null:document.documentElement;function ne(i){const e=i.parentNode||i.host||null;return e===ls?null:e}let U=null,Xe=!1;function Ye(i){U||(U=function hs(){return typeof document<"u"?document.body:null}()||{},Xe=!!U.style&&"WebkitAppearance"in U.style);let e=!0;return U.style&&!function us(i){return"ebkit"==i.substring(1,6)}(i)&&(e=i in U.style,!e&&Xe&&(e="Webkit"+i.charAt(0).toUpperCase()+i.slice(1)in U.style)),e}function cs(i){return os.has(i)}function Ee(i,e){for(;e;){if(e===i)return!0;e=ne(e)}return!1}function Te(i,e,t){if(t)return Array.from(i.querySelectorAll(e));const s=i.querySelector(e);return s?[s]:[]}let ve=(()=>{class i{validateStyleProperty(t){return Ye(t)}containsElement(t,s){return Ee(t,s)}getParentElement(t){return ne(t)}query(t,s,n){return Te(t,s,n)}computeStyle(t,s,n){return n||""}animate(t,s,n,r,a,o=[],l){return new d.sf(n,r)}static \u0275fac=function(s){return new(s||i)};static \u0275prov=E.jDH({token:i,factory:i.\u0275fac})}return i})();class fs{static NOOP=new ve}class xe{}class Ze{normalizePropertyName(e,t){return e}normalizeStyleValue(e,t,s,n){return s}}const we="ng-enter",ie="ng-leave",re="ng-trigger",ae=".ng-trigger",et="ng-animating",be=".ng-animating";function Q(i){if("number"==typeof i)return i;const e=i.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Ae(parseFloat(e[1]),e[2])}function Ae(i,e){return"s"===e?1e3*i:i}function oe(i,e,t){return i.hasOwnProperty("duration")?i:function ps(i,e,t){let n,r=0,a="";if("string"==typeof i){const o=i.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===o)return e.push(je()),{duration:0,delay:0,easing:""};n=Ae(parseFloat(o[1]),o[2]);const l=o[3];null!=l&&(r=Ae(parseFloat(l),o[4]));const u=o[5];u&&(a=u)}else n=i;if(!t){let o=!1,l=e.length;n<0&&(e.push(function Mt(){return new E.wOt(3100,!1)}()),o=!0),r<0&&(e.push(function Ct(){return new E.wOt(3101,!1)}()),o=!0),o&&e.splice(l,0,je())}return{duration:n,delay:r,easing:a}}(i,e,t)}function tt(i){return i.length?i[0]instanceof Map?i:i.map(e=>new Map(Object.entries(e))):[]}function st(i){return Array.isArray(i)?new Map(...i):new Map(i)}function K(i,e,t){e.forEach((s,n)=>{const r=Ne(n);t&&!t.has(n)&&t.set(n,i.style[r]),i.style[r]=s})}function W(i,e){e.forEach((t,s)=>{const n=Ne(s);i.style[n]=""})}function J(i){return Array.isArray(i)?1==i.length?i[0]:(0,d.K2)(i):i}const Pe=new RegExp("{{\\s*(.+?)\\s*}}","g");function nt(i){let e=[];if("string"==typeof i){let t;for(;t=Pe.exec(i);)e.push(t[1]);Pe.lastIndex=0}return e}function ee(i,e,t){const s=`${i}`,n=s.replace(Pe,(r,a)=>{let o=e[a];return null==o&&(t.push(function Dt(){return new E.wOt(3003,!1)}()),o=""),o.toString()});return n==s?i:n}const ys=/-+([a-z0-9])/g;function Ne(i){return i.replace(ys,(...e)=>e[1].toUpperCase())}function _s(i){return i.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function it(i,e){return 0===i||0===e}function I(i,e,t){switch(e.type){case d.If.Trigger:return i.visitTrigger(e,t);case d.If.State:return i.visitState(e,t);case d.If.Transition:return i.visitTransition(e,t);case d.If.Sequence:return i.visitSequence(e,t);case d.If.Group:return i.visitGroup(e,t);case d.If.Animate:return i.visitAnimate(e,t);case d.If.Keyframes:return i.visitKeyframes(e,t);case d.If.Style:return i.visitStyle(e,t);case d.If.Reference:return i.visitReference(e,t);case d.If.AnimateChild:return i.visitAnimateChild(e,t);case d.If.AnimateRef:return i.visitAnimateRef(e,t);case d.If.Query:return i.visitQuery(e,t);case d.If.Stagger:return i.visitStagger(e,t);default:throw function Ot(){return new E.wOt(3004,!1)}()}}function Me(i,e){return window.getComputedStyle(i)[e]}const Es=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class rt extends xe{normalizePropertyName(e,t){return Ne(e)}normalizeStyleValue(e,t,s,n){let r="";const a=s.toString().trim();if(Es.has(t)&&0!==s&&"0"!==s)if("number"==typeof s)r="px";else{const o=s.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&0==o[1].length&&n.push(function It(){return new E.wOt(3005,!1)}())}return a+r}}const ue=new Set(["true","1"]),ce=new Set(["false","0"]);function at(i,e){const t=ue.has(i)||ce.has(i),s=ue.has(e)||ce.has(e);return(n,r)=>{let a="*"==i||i==n,o="*"==e||e==r;return!a&&t&&"boolean"==typeof n&&(a=n?ue.has(i):ce.has(i)),!o&&s&&"boolean"==typeof r&&(o=r?ue.has(e):ce.has(e)),a&&o}}const bs=new RegExp("s*:selfs*,?","g");function Ce(i,e,t,s){return new As(i).build(e,t,s)}class As{_driver;constructor(e){this._driver=e}build(e,t,s){const n=new Ms(t);return this._resetContextStyleTimingState(n),I(this,J(e),n)}_resetContextStyleTimingState(e){e.currentQuerySelector="",e.collectedStyles=new Map,e.collectedStyles.set("",new Map),e.currentTime=0}visitTrigger(e,t){let s=t.queryCount=0,n=t.depCount=0;const r=[],a=[];return"@"==e.name.charAt(0)&&t.errors.push(function Rt(){return new E.wOt(3006,!1)}()),e.definitions.forEach(o=>{if(this._resetContextStyleTimingState(t),o.type==d.If.State){const l=o,u=l.name;u.toString().split(/\s*,\s*/).forEach(c=>{l.name=c,r.push(this.visitState(l,t))}),l.name=u}else if(o.type==d.If.Transition){const l=this.visitTransition(o,t);s+=l.queryCount,n+=l.depCount,a.push(l)}else t.errors.push(function Ft(){return new E.wOt(3007,!1)}())}),{type:d.If.Trigger,name:e.name,states:r,transitions:a,queryCount:s,depCount:n,options:null}}visitState(e,t){const s=this.visitStyle(e.styles,t),n=e.options&&e.options.params||null;if(s.containsDynamicStyles){const r=new Set,a=n||{};s.styles.forEach(o=>{o instanceof Map&&o.forEach(l=>{nt(l).forEach(u=>{a.hasOwnProperty(u)||r.add(u)})})}),r.size&&t.errors.push(function Lt(){return new E.wOt(3008,!1)}(0,r.values()))}return{type:d.If.State,name:e.name,style:s,options:n?{params:n}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;const s=I(this,J(e.animation),t),n=function Ts(i,e){const t=[];return"string"==typeof i?i.split(/\s*,\s*/).forEach(s=>function vs(i,e,t){if(":"==i[0]){const l=function ws(i,e){switch(i){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,s)=>parseFloat(s)>parseFloat(t);case":decrement":return(t,s)=>parseFloat(s) *"}}(i,t);if("function"==typeof l)return void e.push(l);i=l}const s=i.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==s||s.length<4)return t.push(function Wt(){return new E.wOt(3015,!1)}()),e;const n=s[1],r=s[2],a=s[3];e.push(at(n,a)),"<"==r[0]&&("*"!=n||"*"!=a)&&e.push(at(a,n))}(s,t,e)):t.push(i),t}(e.expr,t.errors);return{type:d.If.Transition,matchers:n,animation:s,queryCount:t.queryCount,depCount:t.depCount,options:j(e.options)}}visitSequence(e,t){return{type:d.If.Sequence,steps:e.steps.map(s=>I(this,s,t)),options:j(e.options)}}visitGroup(e,t){const s=t.currentTime;let n=0;const r=e.steps.map(a=>{t.currentTime=s;const o=I(this,a,t);return n=Math.max(n,t.currentTime),o});return t.currentTime=n,{type:d.If.Group,steps:r,options:j(e.options)}}visitAnimate(e,t){const s=function ks(i,e){if(i.hasOwnProperty("duration"))return i;if("number"==typeof i)return ke(oe(i,e).duration,0,"");const t=i;if(t.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=ke(0,0,"");return r.dynamic=!0,r.strValue=t,r}const n=oe(t,e);return ke(n.duration,n.delay,n.easing)}(e.timings,t.errors);t.currentAnimateTimings=s;let n,r=e.styles?e.styles:(0,d.iF)({});if(r.type==d.If.Keyframes)n=this.visitKeyframes(r,t);else{let a=e.styles,o=!1;if(!a){o=!0;const u={};s.easing&&(u.easing=s.easing),a=(0,d.iF)(u)}t.currentTime+=s.duration+s.delay;const l=this.visitStyle(a,t);l.isEmptyStep=o,n=l}return t.currentAnimateTimings=null,{type:d.If.Animate,timings:s,style:n,options:null}}visitStyle(e,t){const s=this._makeStyleAst(e,t);return this._validateStyleAst(s,t),s}_makeStyleAst(e,t){const s=[],n=Array.isArray(e.styles)?e.styles:[e.styles];for(let o of n)"string"==typeof o?o===d.kp?s.push(o):t.errors.push(new E.wOt(3002,!1)):s.push(new Map(Object.entries(o)));let r=!1,a=null;return s.forEach(o=>{if(o instanceof Map&&(o.has("easing")&&(a=o.get("easing"),o.delete("easing")),!r))for(let l of o.values())if(l.toString().indexOf("{{")>=0){r=!0;break}}),{type:d.If.Style,styles:s,easing:a,offset:e.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(e,t){const s=t.currentAnimateTimings;let n=t.currentTime,r=t.currentTime;s&&r>0&&(r-=s.duration+s.delay),e.styles.forEach(a=>{"string"!=typeof a&&a.forEach((o,l)=>{const u=t.collectedStyles.get(t.currentQuerySelector),c=u.get(l);let h=!0;c&&(r!=n&&r>=c.startTime&&n<=c.endTime&&(t.errors.push(function Kt(){return new E.wOt(3010,!1)}()),h=!1),r=c.startTime),h&&u.set(l,{startTime:r,endTime:n}),t.options&&function gs(i,e,t){const s=e.params||{},n=nt(i);n.length&&n.forEach(r=>{s.hasOwnProperty(r)||t.push(function kt(){return new E.wOt(3001,!1)}())})}(o,t.options,t.errors)})})}visitKeyframes(e,t){const s={type:d.If.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(function Bt(){return new E.wOt(3011,!1)}()),s;let r=0;const a=[];let o=!1,l=!1,u=0;const c=e.steps.map(b=>{const A=this._makeStyleAst(b,t);let C=null!=A.offset?A.offset:function Cs(i){if("string"==typeof i)return null;let e=null;if(Array.isArray(i))i.forEach(t=>{if(t instanceof Map&&t.has("offset")){const s=t;e=parseFloat(s.get("offset")),s.delete("offset")}});else if(i instanceof Map&&i.has("offset")){const t=i;e=parseFloat(t.get("offset")),t.delete("offset")}return e}(A.styles),N=0;return null!=C&&(r++,N=A.offset=C),l=l||N<0||N>1,o=o||N0&&r{const C=S>0?A==_?1:S*A:a[A],N=C*v;t.currentTime=m+y.delay+N,y.duration=N,this._validateStyleAst(b,t),b.offset=C,s.styles.push(b)}),s}visitReference(e,t){return{type:d.If.Reference,animation:I(this,J(e.animation),t),options:j(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:d.If.AnimateChild,options:j(e.options)}}visitAnimateRef(e,t){return{type:d.If.AnimateRef,animation:this.visitReference(e.animation,t),options:j(e.options)}}visitQuery(e,t){const s=t.currentQuerySelector,n=e.options||{};t.queryCount++,t.currentQuery=e;const[r,a]=function Ps(i){const e=!!i.split(/\s*,\s*/).find(t=>":self"==t);return e&&(i=i.replace(bs,"")),i=i.replace(/@\*/g,ae).replace(/@\w+/g,t=>ae+"-"+t.slice(1)).replace(/:animating/g,be),[i,e]}(e.selector);t.currentQuerySelector=s.length?s+" "+r:r,O(t.collectedStyles,t.currentQuerySelector,new Map);const o=I(this,J(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=s,{type:d.If.Query,selector:r,limit:n.limit||0,optional:!!n.optional,includeSelf:a,animation:o,originalSelector:e.selector,options:j(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push(function Vt(){return new E.wOt(3013,!1)}());const s="full"===e.timings?{duration:0,delay:0,easing:"full"}:oe(e.timings,t.errors,!0);return{type:d.If.Stagger,animation:I(this,J(e.animation),t),timings:s,options:null}}}class Ms{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}}function j(i){return i?(i={...i}).params&&(i.params=function Ns(i){return i?{...i}:null}(i.params)):i={},i}function ke(i,e,t){return{duration:i,delay:e,easing:t}}function De(i,e,t,s,n,r,a=null,o=!1){return{type:1,element:i,keyframes:e,preStyleProps:t,postStyleProps:s,duration:n,delay:r,totalTime:n+r,easing:a,subTimeline:o}}class he{_map=new Map;get(e){return this._map.get(e)||[]}append(e,t){let s=this._map.get(e);s||this._map.set(e,s=[]),s.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}}const Is=new RegExp(":enter","g"),Fs=new RegExp(":leave","g");function Oe(i,e,t,s,n,r=new Map,a=new Map,o,l,u=[]){return(new Ls).buildKeyframes(i,e,t,s,n,r,a,o,l,u)}class Ls{buildKeyframes(e,t,s,n,r,a,o,l,u,c=[]){u=u||new he;const h=new Ie(e,t,u,n,r,c,[]);h.options=l;const S=l.delay?Q(l.delay):0;h.currentTimeline.delayNextStep(S),h.currentTimeline.setStyles([a],null,h.errors,l),I(this,s,h);const _=h.timelines.filter(m=>m.containsAnimation());if(_.length&&o.size){let m;for(let y=_.length-1;y>=0;y--){const v=_[y];if(v.element===t){m=v;break}}m&&!m.allowOnlyTimelineStyles()&&m.setStyles([o],null,h.errors,l)}return _.length?_.map(m=>m.buildKeyframes()):[De(t,[],[],[],0,S,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){const s=t.subInstructions.get(t.element);if(s){const n=t.createSubContext(e.options),r=t.currentTimeline.currentTime,a=this._visitSubInstructions(s,n,n.options);r!=a&&t.transformIntoNewTimeline(a)}t.previousNode=e}visitAnimateRef(e,t){const s=t.createSubContext(e.options);s.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],t,s),this.visitReference(e.animation,s),t.transformIntoNewTimeline(s.currentTimeline.currentTime),t.previousNode=e}_applyAnimationRefDelays(e,t,s){for(const n of e){const r=n?.delay;if(r){const a="number"==typeof r?r:Q(ee(r,n?.params??{},t.errors));s.delayNextStep(a)}}}_visitSubInstructions(e,t,s){let r=t.currentTimeline.currentTime;const a=null!=s.duration?Q(s.duration):null,o=null!=s.delay?Q(s.delay):null;return 0!==a&&e.forEach(l=>{const u=t.appendInstructionToTimeline(l,a,o);r=Math.max(r,u.duration+u.delay)}),r}visitReference(e,t){t.updateOptions(e.options,!0),I(this,e.animation,t),t.previousNode=e}visitSequence(e,t){const s=t.subContextCount;let n=t;const r=e.options;if(r&&(r.params||r.delay)&&(n=t.createSubContext(r),n.transformIntoNewTimeline(),null!=r.delay)){n.previousNode.type==d.If.Style&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=fe);const a=Q(r.delay);n.delayNextStep(a)}e.steps.length&&(e.steps.forEach(a=>I(this,a,n)),n.currentTimeline.applyStylesToKeyframe(),n.subContextCount>s&&n.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){const s=[];let n=t.currentTimeline.currentTime;const r=e.options&&e.options.delay?Q(e.options.delay):0;e.steps.forEach(a=>{const o=t.createSubContext(e.options);r&&o.delayNextStep(r),I(this,a,o),n=Math.max(n,o.currentTimeline.currentTime),s.push(o.currentTimeline)}),s.forEach(a=>t.currentTimeline.mergeTimelineCollectedStyles(a)),t.transformIntoNewTimeline(n),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){const s=e.strValue;return oe(t.params?ee(s,t.params,t.errors):s,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){const s=t.currentAnimateTimings=this._visitTiming(e.timings,t),n=t.currentTimeline;s.delay&&(t.incrementTime(s.delay),n.snapshotCurrentStyles());const r=e.style;r.type==d.If.Keyframes?this.visitKeyframes(r,t):(t.incrementTime(s.duration),this.visitStyle(r,t),n.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){const s=t.currentTimeline,n=t.currentAnimateTimings;!n&&s.hasCurrentStyleProperties()&&s.forwardFrame();const r=n&&n.easing||e.easing;e.isEmptyStep?s.applyEmptyStep(r):s.setStyles(e.styles,r,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){const s=t.currentAnimateTimings,n=t.currentTimeline.duration,r=s.duration,o=t.createSubContext().currentTimeline;o.easing=s.easing,e.styles.forEach(l=>{o.forwardTime((l.offset||0)*r),o.setStyles(l.styles,l.easing,t.errors,t.options),o.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(o),t.transformIntoNewTimeline(n+r),t.previousNode=e}visitQuery(e,t){const s=t.currentTimeline.currentTime,n=e.options||{},r=n.delay?Q(n.delay):0;r&&(t.previousNode.type===d.If.Style||0==s&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=fe);let a=s;const o=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!n.optional,t.errors);t.currentQueryTotal=o.length;let l=null;o.forEach((u,c)=>{t.currentQueryIndex=c;const h=t.createSubContext(e.options,u);r&&h.delayNextStep(r),u===t.element&&(l=h.currentTimeline),I(this,e.animation,h),h.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,h.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(a),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){const s=t.parentContext,n=t.currentTimeline,r=e.timings,a=Math.abs(r.duration),o=a*(t.currentQueryTotal-1);let l=a*t.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=o-l;break;case"full":l=s.currentStaggerTime}const c=t.currentTimeline;l&&c.delayNextStep(l);const h=c.currentTime;I(this,e.animation,t),t.previousNode=e,s.currentStaggerTime=n.currentTime-h+(n.startTime-s.currentTimeline.startTime)}}const fe={};class Ie{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=fe;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,t,s,n,r,a,o,l){this._driver=e,this.element=t,this.subInstructions=s,this._enterClassName=n,this._leaveClassName=r,this.errors=a,this.timelines=o,this.currentTimeline=l||new de(this._driver,t,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;const s=e;let n=this.options;null!=s.duration&&(n.duration=Q(s.duration)),null!=s.delay&&(n.delay=Q(s.delay));const r=s.params;if(r){let a=n.params;a||(a=this.options.params={}),Object.keys(r).forEach(o=>{(!t||!a.hasOwnProperty(o))&&(a[o]=ee(r[o],a,this.errors))})}}_copyOptions(){const e={};if(this.options){const t=this.options.params;if(t){const s=e.params={};Object.keys(t).forEach(n=>{s[n]=t[n]})}}return e}createSubContext(e=null,t,s){const n=t||this.element,r=new Ie(this._driver,n,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(n,s||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(e),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(e){return this.previousNode=fe,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,s){const n={duration:t??e.duration,delay:this.currentTimeline.currentTime+(s??0)+e.delay,easing:""},r=new zs(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,n,e.stretchStartingKeyframe);return this.timelines.push(r),n}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,s,n,r,a){let o=[];if(n&&o.push(this.element),e.length>0){e=(e=e.replace(Is,"."+this._enterClassName)).replace(Fs,"."+this._leaveClassName);let u=this._driver.query(this.element,e,1!=s);0!==s&&(u=s<0?u.slice(u.length+s,u.length):u.slice(0,s)),o.push(...u)}return!r&&0==o.length&&a.push(function Ut(){return new E.wOt(3014,!1)}()),o}}class de{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,t,s,n){this._driver=e,this.element=t,this.startTime=s,this._elementTimelineStylesLookup=n,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){const t=1===this._keyframes.size&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new de(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles.set(e,t),this._globalTimelineStyles.set(e,t),this._styleSummary.set(e,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[t,s]of this._globalTimelineStyles)this._backFill.set(t,s||d.kp),this._currentKeyframe.set(t,d.kp);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,s,n){t&&this._previousKeyframe.set("easing",t);const r=n&&n.params||{},a=function Ks(i,e){const t=new Map;let s;return i.forEach(n=>{if("*"===n){s??=e.keys();for(let r of s)t.set(r,d.kp)}else for(let[r,a]of n)t.set(r,a)}),t}(e,this._globalTimelineStyles);for(let[o,l]of a){const u=ee(l,r,s);this._pendingStyles.set(o,u),this._localTimelineStyles.has(o)||this._backFill.set(o,this._globalTimelineStyles.get(o)??d.kp),this._updateStyle(o,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((e,t)=>{this._currentKeyframe.set(t,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,e)}))}snapshotCurrentStyles(){for(let[e,t]of this._localTimelineStyles)this._pendingStyles.set(e,t),this._updateStyle(e,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((t,s)=>{const n=this._styleSummary.get(s);(!n||t.time>n.time)&&this._updateStyle(s,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();const e=new Set,t=new Set,s=1===this._keyframes.size&&0===this.duration;let n=[];this._keyframes.forEach((o,l)=>{const u=new Map([...this._backFill,...o]);u.forEach((c,h)=>{c===d.FX?e.add(h):c===d.kp&&t.add(h)}),s||u.set("offset",l/this.duration),n.push(u)});const r=[...e.values()],a=[...t.values()];if(s){const o=n[0],l=new Map(o);o.set("offset",0),l.set("offset",1),n=[o,l]}return De(this.element,n,r,a,this.duration,this.startTime,this.easing,!1)}}class zs extends de{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,t,s,n,r,a,o=!1){super(e,t,a.delay),this.keyframes=s,this.preStyleProps=n,this.postStyleProps=r,this._stretchStartingKeyframe=o,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:s,easing:n}=this.timings;if(this._stretchStartingKeyframe&&t){const r=[],a=s+t,o=t/a,l=new Map(e[0]);l.set("offset",0),r.push(l);const u=new Map(e[0]);u.set("offset",ut(o)),r.push(u);const c=e.length-1;for(let h=1;h<=c;h++){let S=new Map(e[h]);const _=S.get("offset");S.set("offset",ut((t+_*s)/a)),r.push(S)}s=a,t=0,n="",e=r}return De(this.element,e,this.preStyleProps,this.postStyleProps,s,t,n,!0)}}function ut(i,e=3){const t=Math.pow(10,e-1);return Math.round(i*t)/t}function ct(i,e,t,s,n,r,a,o,l,u,c,h,S){return{type:0,element:i,triggerName:e,isRemovalTransition:n,fromState:t,fromStyles:r,toState:s,toStyles:a,timelines:o,queriedElements:l,preStyleProps:u,postStyleProps:c,totalTime:h,errors:S}}const Re={};class ht{_triggerName;ast;_stateStyles;constructor(e,t,s){this._triggerName=e,this.ast=t,this._stateStyles=s}match(e,t,s,n){return function Bs(i,e,t,s,n){return i.some(r=>r(e,t,s,n))}(this.ast.matchers,e,t,s,n)}buildStyles(e,t,s){let n=this._stateStyles.get("*");return void 0!==e&&(n=this._stateStyles.get(e?.toString())||n),n?n.buildStyles(t,s):new Map}build(e,t,s,n,r,a,o,l,u,c){const h=[],S=this.ast.options&&this.ast.options.params||Re,m=this.buildStyles(s,o&&o.params||Re,h),y=l&&l.params||Re,v=this.buildStyles(n,y,h),b=new Set,A=new Map,C=new Map,N="void"===n,x={params:ft(y,S),delay:this.ast.options?.delay},B=c?[]:Oe(e,t,this.ast.animation,r,a,m,v,x,u,h);let k=0;return B.forEach(D=>{k=Math.max(D.duration+D.delay,k)}),h.length?ct(t,this._triggerName,s,n,N,m,v,[],[],A,C,k,h):(B.forEach(D=>{const G=D.element,Z=O(A,G,new Set);D.preStyleProps.forEach(H=>Z.add(H));const bt=O(C,G,new Set);D.postStyleProps.forEach(H=>bt.add(H)),G!==t&&b.add(G)}),ct(t,this._triggerName,s,n,N,m,v,B,[...b.values()],A,C,k))}}function ft(i,e){const t={...e};return Object.entries(i).forEach(([s,n])=>{null!=n&&(t[s]=n)}),t}class qs{styles;defaultParams;normalizer;constructor(e,t,s){this.styles=e,this.defaultParams=t,this.normalizer=s}buildStyles(e,t){const s=new Map,n=ft(e,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((a,o)=>{a&&(a=ee(a,n,t));const l=this.normalizer.normalizePropertyName(o,t);a=this.normalizer.normalizeStyleValue(o,l,a,t),s.set(o,a)})}),s}}class $s{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,t,s){this.name=e,this.ast=t,this._normalizer=s,t.states.forEach(n=>{this.states.set(n.name,new qs(n.style,n.options&&n.options.params||{},s))}),dt(this.states,"true","1"),dt(this.states,"false","0"),t.transitions.forEach(n=>{this.transitionFactories.push(new ht(e,n,this.states))}),this.fallbackTransition=function Vs(i,e){return new ht(i,{type:d.If.Transition,animation:{type:d.If.Sequence,steps:[],options:null},matchers:[(a,o)=>!0],options:null,queryCount:0,depCount:0},e)}(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,s,n){return this.transitionFactories.find(a=>a.match(e,t,s,n))||null}matchStyles(e,t,s){return this.fallbackTransition.buildStyles(e,t,s)}}function dt(i,e,t){i.has(e)?i.has(t)||i.set(t,i.get(e)):i.has(t)&&i.set(e,i.get(t))}const Us=new he;class Ws{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,t,s){this.bodyNode=e,this._driver=t,this._normalizer=s}register(e,t){const s=[],r=Ce(this._driver,t,s,[]);if(s.length)throw function xt(){return new E.wOt(3503,!1)}();this._animations.set(e,r)}_buildPlayer(e,t,s){const n=e.element,r=Ge(this._normalizer,e.keyframes,t,s);return this._driver.animate(n,r,e.duration,e.delay,e.easing,[],!0)}create(e,t,s={}){const n=[],r=this._animations.get(e);let a;const o=new Map;if(r?(a=Oe(this._driver,t,r,we,ie,new Map,new Map,s,Us,n),a.forEach(c=>{const h=O(o,c.element,new Map);c.postStyleProps.forEach(S=>h.set(S,null))})):(n.push(function Zt(){return new E.wOt(3300,!1)}()),a=[]),n.length)throw function Jt(){return new E.wOt(3504,!1)}();o.forEach((c,h)=>{c.forEach((S,_)=>{c.set(_,this._driver.computeStyle(h,_,d.kp))})});const u=$(a.map(c=>{const h=o.get(c.element);return this._buildPlayer(c,new Map,h)}));return this._playersById.set(e,u),u.onDestroy(()=>this.destroy(e)),this.players.push(u),u}destroy(e){const t=this._getPlayer(e);t.destroy(),this._playersById.delete(e);const s=this.players.indexOf(t);s>=0&&this.players.splice(s,1)}_getPlayer(e){const t=this._playersById.get(e);if(!t)throw function es(){return new E.wOt(3301,!1)}();return t}listen(e,t,s,n){const r=Se(t,"","","");return ye(this._getPlayer(e),s,r,n),()=>{}}command(e,t,s,n){if("register"==s)return void this.register(e,n[0]);if("create"==s)return void this.create(e,t,n[0]||{});const r=this._getPlayer(e);switch(s){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(n[0]));break;case"destroy":this.destroy(e)}}}const mt="ng-animate-queued",Fe="ng-animate-disabled",Ys=[],pt={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},xs={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},z="__ng_removed";class Le{namespaceId;value;options;get params(){return this.options.params}constructor(e,t=""){this.namespaceId=t;const s=e&&e.hasOwnProperty("value");if(this.value=function tn(i){return i??null}(s?e.value:e),s){const{value:r,...a}=e;this.options=a}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){const t=e.params;if(t){const s=this.options.params;Object.keys(t).forEach(n=>{null==s[n]&&(s[n]=t[n])})}}}const te="void",ze=new Le(te);class Zs{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,t,s){this.id=e,this.hostElement=t,this._engine=s,this._hostClassName="ng-tns-"+e,F(t,this._hostClassName)}listen(e,t,s,n){if(!this._triggers.has(t))throw function ts(){return new E.wOt(3302,!1)}();if(null==s||0==s.length)throw function ss(){return new E.wOt(3303,!1)}();if(!function sn(i){return"start"==i||"done"==i}(s))throw function ns(){return new E.wOt(3400,!1)}();const r=O(this._elementListeners,e,[]),a={name:t,phase:s,callback:n};r.push(a);const o=O(this._engine.statesByElement,e,new Map);return o.has(t)||(F(e,re),F(e,re+"-"+t),o.set(t,ze)),()=>{this._engine.afterFlush(()=>{const l=r.indexOf(a);l>=0&&r.splice(l,1),this._triggers.has(t)||o.delete(t)})}}register(e,t){return!this._triggers.has(e)&&(this._triggers.set(e,t),!0)}_getTrigger(e){const t=this._triggers.get(e);if(!t)throw function is(){return new E.wOt(3401,!1)}();return t}trigger(e,t,s,n=!0){const r=this._getTrigger(t),a=new Ke(this.id,t,e);let o=this._engine.statesByElement.get(e);o||(F(e,re),F(e,re+"-"+t),this._engine.statesByElement.set(e,o=new Map));let l=o.get(t);const u=new Le(s,this.id);if(!(s&&s.hasOwnProperty("value"))&&l&&u.absorbOptions(l.options),o.set(t,u),l||(l=ze),u.value!==te&&l.value===u.value){if(!function an(i,e){const t=Object.keys(i),s=Object.keys(e);if(t.length!=s.length)return!1;for(let n=0;n{W(e,v),K(e,b)})}return}const S=O(this._engine.playersByElement,e,[]);S.forEach(y=>{y.namespaceId==this.id&&y.triggerName==t&&y.queued&&y.destroy()});let _=r.matchTransition(l.value,u.value,e,u.params),m=!1;if(!_){if(!n)return;_=r.fallbackTransition,m=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:_,fromState:l,toState:u,player:a,isFallbackTransition:m}),m||(F(e,mt),a.onStart(()=>{Y(e,mt)})),a.onDone(()=>{let y=this.players.indexOf(a);y>=0&&this.players.splice(y,1);const v=this._engine.playersByElement.get(e);if(v){let b=v.indexOf(a);b>=0&&v.splice(b,1)}}),this.players.push(a),S.push(a),a}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(t=>t.delete(e)),this._elementListeners.forEach((t,s)=>{this._elementListeners.set(s,t.filter(n=>n.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);const t=this._engine.playersByElement.get(e);t&&(t.forEach(s=>s.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){const s=this._engine.driver.query(e,ae,!0);s.forEach(n=>{if(n[z])return;const r=this._engine.fetchNamespacesByElement(n);r.size?r.forEach(a=>a.triggerLeaveAnimation(n,t,!1,!0)):this.clearElementCache(n)}),this._engine.afterFlushAnimationsDone(()=>s.forEach(n=>this.clearElementCache(n)))}triggerLeaveAnimation(e,t,s,n){const r=this._engine.statesByElement.get(e),a=new Map;if(r){const o=[];if(r.forEach((l,u)=>{if(a.set(u,l.value),this._triggers.has(u)){const c=this.trigger(e,u,te,n);c&&o.push(c)}}),o.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,a),s&&$(o).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){const t=this._elementListeners.get(e),s=this._engine.statesByElement.get(e);if(t&&s){const n=new Set;t.forEach(r=>{const a=r.name;if(n.has(a))return;n.add(a);const l=this._triggers.get(a).fallbackTransition,u=s.get(a)||ze,c=new Le(te),h=new Ke(this.id,a,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:a,transition:l,fromState:u,toState:c,player:h,isFallbackTransition:!0})})}}removeNode(e,t){const s=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let n=!1;if(s.totalAnimations){const r=s.players.length?s.playersByQueriedElement.get(e):[];if(r&&r.length)n=!0;else{let a=e;for(;a=a.parentNode;)if(s.statesByElement.get(a)){n=!0;break}}}if(this.prepareLeaveAnimationListeners(e),n)s.markElementAsRemoved(this.id,e,!1,t);else{const r=e[z];(!r||r===pt)&&(s.afterFlush(()=>this.clearElementCache(e)),s.destroyInnerAnimations(e),s._onRemovalComplete(e,t))}}insertNode(e,t){F(e,this._hostClassName)}drainQueuedTransitions(e){const t=[];return this._queue.forEach(s=>{const n=s.player;if(n.destroyed)return;const r=s.element,a=this._elementListeners.get(r);a&&a.forEach(o=>{if(o.name==s.triggerName){const l=Se(r,s.triggerName,s.fromState.value,s.toState.value);l._data=e,ye(s.player,o.phase,l,o.callback)}}),n.markedForDestroy?this._engine.afterFlush(()=>{n.destroy()}):t.push(s)}),this._queue=[],t.sort((s,n)=>{const r=s.transition.ast.depCount,a=n.transition.ast.depCount;return 0==r||0==a?r-a:this._engine.driver.containsElement(s.element,n.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}}class Js{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,t)=>{};_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}constructor(e,t,s){this.bodyNode=e,this.driver=t,this._normalizer=s}get queuedPlayers(){const e=[];return this._namespaceList.forEach(t=>{t.players.forEach(s=>{s.queued&&e.push(s)})}),e}createNamespace(e,t){const s=new Zs(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(s,t):(this.newHostElements.set(t,s),this.collectEnterElement(t)),this._namespaceLookup[e]=s}_balanceNamespaceList(e,t){const s=this._namespaceList,n=this.namespacesByHostElement;if(s.length-1>=0){let a=!1,o=this.driver.getParentElement(t);for(;o;){const l=n.get(o);if(l){const u=s.indexOf(l);s.splice(u+1,0,e),a=!0;break}o=this.driver.getParentElement(o)}a||s.unshift(e)}else s.push(e);return n.set(t,e),e}register(e,t){let s=this._namespaceLookup[e];return s||(s=this.createNamespace(e,t)),s}registerTrigger(e,t,s){let n=this._namespaceLookup[e];n&&n.register(t,s)&&this.totalAnimations++}destroy(e,t){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const s=this._fetchNamespace(e);this.namespacesByHostElement.delete(s.hostElement);const n=this._namespaceList.indexOf(s);n>=0&&this._namespaceList.splice(n,1),s.destroy(t),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){const t=new Set,s=this.statesByElement.get(e);if(s)for(let n of s.values())if(n.namespaceId){const r=this._fetchNamespace(n.namespaceId);r&&t.add(r)}return t}trigger(e,t,s,n){if(me(t)){const r=this._fetchNamespace(e);if(r)return r.trigger(t,s,n),!0}return!1}insertNode(e,t,s,n){if(!me(t))return;const r=t[z];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const a=this.collectedLeaveElements.indexOf(t);a>=0&&this.collectedLeaveElements.splice(a,1)}if(e){const a=this._fetchNamespace(e);a&&a.insertNode(t,s)}n&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),F(e,Fe)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Y(e,Fe))}removeNode(e,t,s){if(me(t)){const n=e?this._fetchNamespace(e):null;n?n.removeNode(t,s):this.markElementAsRemoved(e,t,!1,s);const r=this.namespacesByHostElement.get(t);r&&r.id!==e&&r.removeNode(t,s)}else this._onRemovalComplete(t,s)}markElementAsRemoved(e,t,s,n,r){this.collectedLeaveElements.push(t),t[z]={namespaceId:e,setForRemoval:n,hasAnimation:s,removedBeforeQueried:!1,previousTriggersValues:r}}listen(e,t,s,n,r){return me(t)?this._fetchNamespace(e).listen(t,s,n,r):()=>{}}_buildInstruction(e,t,s,n,r){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,s,n,e.fromState.options,e.toState.options,t,r)}destroyInnerAnimations(e){let t=this.driver.query(e,ae,!0);t.forEach(s=>this.destroyActiveAnimationsForElement(s)),0!=this.playersByQueriedElement.size&&(t=this.driver.query(e,be,!0),t.forEach(s=>this.finishActiveQueriedAnimationOnElement(s)))}destroyActiveAnimationsForElement(e){const t=this.playersByElement.get(e);t&&t.forEach(s=>{s.queued?s.markedForDestroy=!0:s.destroy()})}finishActiveQueriedAnimationOnElement(e){const t=this.playersByQueriedElement.get(e);t&&t.forEach(s=>s.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return $(this.players).onDone(()=>e());e()})}processLeaveNode(e){const t=e[z];if(t&&t.setForRemoval){if(e[z]=pt,t.namespaceId){this.destroyInnerAnimations(e);const s=this._fetchNamespace(t.namespaceId);s&&s.clearElementCache(e)}this._onRemovalComplete(e,t.setForRemoval)}e.classList?.contains(Fe)&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach(s=>{this.markElementAsDisabled(s,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((s,n)=>this._balanceNamespaceList(s,n)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let s=0;ss()),this._flushFns=[],this._whenQuietFns.length){const s=this._whenQuietFns;this._whenQuietFns=[],t.length?$(t).onDone(()=>{s.forEach(n=>n())}):s.forEach(n=>n())}}reportError(e){throw function rs(){return new E.wOt(3402,!1)}()}_flushAnimations(e,t){const s=new he,n=[],r=new Map,a=[],o=new Map,l=new Map,u=new Map,c=new Set;this.disabledNodes.forEach(f=>{c.add(f);const p=this.driver.query(f,".ng-animate-queued",!0);for(let g=0;g{const g=we+y++;m.set(p,g),f.forEach(T=>F(T,g))});const v=[],b=new Set,A=new Set;for(let f=0;fb.add(T)):A.add(p))}const C=new Map,N=_t(S,Array.from(b));N.forEach((f,p)=>{const g=ie+y++;C.set(p,g),f.forEach(T=>F(T,g))}),e.push(()=>{_.forEach((f,p)=>{const g=m.get(p);f.forEach(T=>Y(T,g))}),N.forEach((f,p)=>{const g=C.get(p);f.forEach(T=>Y(T,g))}),v.forEach(f=>{this.processLeaveNode(f)})});const x=[],B=[];for(let f=this._namespaceList.length-1;f>=0;f--)this._namespaceList[f].drainQueuedTransitions(t).forEach(g=>{const T=g.player,P=g.element;if(x.push(T),this.collectedEnterElements.length){const M=P[z];if(M&&M.setForMove){if(M.previousTriggersValues&&M.previousTriggersValues.has(g.triggerName)){const X=M.previousTriggersValues.get(g.triggerName),L=this.statesByElement.get(g.element);if(L&&L.has(g.triggerName)){const ge=L.get(g.triggerName);ge.value=X,L.set(g.triggerName,ge)}}return void T.destroy()}}const q=!h||!this.driver.containsElement(h,P),R=C.get(P),V=m.get(P),w=this._buildInstruction(g,s,V,R,q);if(w.errors&&w.errors.length)return void B.push(w);if(q)return T.onStart(()=>W(P,w.fromStyles)),T.onDestroy(()=>K(P,w.toStyles)),void n.push(T);if(g.isFallbackTransition)return T.onStart(()=>W(P,w.fromStyles)),T.onDestroy(()=>K(P,w.toStyles)),void n.push(T);const Nt=[];w.timelines.forEach(M=>{M.stretchStartingKeyframe=!0,this.disabledNodes.has(M.element)||Nt.push(M)}),w.timelines=Nt,s.append(P,w.timelines),a.push({instruction:w,player:T,element:P}),w.queriedElements.forEach(M=>O(o,M,[]).push(T)),w.preStyleProps.forEach((M,X)=>{if(M.size){let L=l.get(X);L||l.set(X,L=new Set),M.forEach((ge,Ue)=>L.add(Ue))}}),w.postStyleProps.forEach((M,X)=>{let L=u.get(X);L||u.set(X,L=new Set),M.forEach((ge,Ue)=>L.add(Ue))})});if(B.length){const f=[];B.forEach(p=>{f.push(function as(){return new E.wOt(3505,!1)}())}),x.forEach(p=>p.destroy()),this.reportError(f)}const k=new Map,D=new Map;a.forEach(f=>{const p=f.element;s.has(p)&&(D.set(p,p),this._beforeAnimationBuild(f.player.namespaceId,f.instruction,k))}),n.forEach(f=>{const p=f.element;this._getPreviousPlayers(p,!1,f.namespaceId,f.triggerName,null).forEach(T=>{O(k,p,[]).push(T),T.destroy()})});const G=v.filter(f=>Et(f,l,u)),Z=new Map;yt(Z,this.driver,A,u,d.kp).forEach(f=>{Et(f,l,u)&&G.push(f)});const H=new Map;_.forEach((f,p)=>{yt(H,this.driver,new Set(f),l,d.FX)}),G.forEach(f=>{const p=Z.get(f),g=H.get(f);Z.set(f,new Map([...p?.entries()??[],...g?.entries()??[]]))});const Ve=[],At=[],Pt={};a.forEach(f=>{const{element:p,player:g,instruction:T}=f;if(s.has(p)){if(c.has(p))return g.onDestroy(()=>K(p,T.toStyles)),g.disabled=!0,g.overrideTotalTime(T.totalTime),void n.push(g);let P=Pt;if(D.size>1){let R=p;const V=[];for(;R=R.parentNode;){const w=D.get(R);if(w){P=w;break}V.push(R)}V.forEach(w=>D.set(w,P))}const q=this._buildAnimation(g.namespaceId,T,k,r,H,Z);if(g.setRealPlayer(q),P===Pt)Ve.push(g);else{const R=this.playersByElement.get(P);R&&R.length&&(g.parentPlayer=$(R)),n.push(g)}}else W(p,T.fromStyles),g.onDestroy(()=>K(p,T.toStyles)),At.push(g),c.has(p)&&n.push(g)}),At.forEach(f=>{const p=r.get(f.element);if(p&&p.length){const g=$(p);f.setRealPlayer(g)}}),n.forEach(f=>{f.parentPlayer?f.syncPlayerEvents(f.parentPlayer):f.destroy()});for(let f=0;f!q.destroyed);P.length?nn(this,p,P):this.processLeaveNode(p)}return v.length=0,Ve.forEach(f=>{this.players.push(f),f.onDone(()=>{f.destroy();const p=this.players.indexOf(f);this.players.splice(p,1)}),f.play()}),Ve}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,s,n,r){let a=[];if(t){const o=this.playersByQueriedElement.get(e);o&&(a=o)}else{const o=this.playersByElement.get(e);if(o){const l=!r||r==te;o.forEach(u=>{u.queued||!l&&u.triggerName!=n||a.push(u)})}}return(s||n)&&(a=a.filter(o=>!(s&&s!=o.namespaceId||n&&n!=o.triggerName))),a}_beforeAnimationBuild(e,t,s){const r=t.element,a=t.isRemovalTransition?void 0:e,o=t.isRemovalTransition?void 0:t.triggerName;for(const l of t.timelines){const u=l.element,c=u!==r,h=O(s,u,[]);this._getPreviousPlayers(u,c,a,o,t.toState).forEach(_=>{const m=_.getRealPlayer();m.beforeDestroy&&m.beforeDestroy(),_.destroy(),h.push(_)})}W(r,t.fromStyles)}_buildAnimation(e,t,s,n,r,a){const o=t.triggerName,l=t.element,u=[],c=new Set,h=new Set,S=t.timelines.map(m=>{const y=m.element;c.add(y);const v=y[z];if(v&&v.removedBeforeQueried)return new d.sf(m.duration,m.delay);const b=y!==l,A=function rn(i){const e=[];return St(i,e),e}((s.get(y)||Ys).map(k=>k.getRealPlayer())).filter(k=>!!k.element&&k.element===y),C=r.get(y),N=a.get(y),x=Ge(this._normalizer,m.keyframes,C,N),B=this._buildPlayer(m,x,A);if(m.subTimeline&&n&&h.add(y),b){const k=new Ke(e,o,y);k.setRealPlayer(B),u.push(k)}return B});u.forEach(m=>{O(this.playersByQueriedElement,m.element,[]).push(m),m.onDone(()=>function en(i,e,t){let s=i.get(e);if(s){if(s.length){const n=s.indexOf(t);s.splice(n,1)}0==s.length&&i.delete(e)}return s}(this.playersByQueriedElement,m.element,m))}),c.forEach(m=>F(m,et));const _=$(S);return _.onDestroy(()=>{c.forEach(m=>Y(m,et)),K(l,t.toStyles)}),h.forEach(m=>{O(n,m,[]).push(_)}),_}_buildPlayer(e,t,s){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,s):new d.sf(e.duration,e.delay)}}class Ke{namespaceId;triggerName;element;_player=new d.sf;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,t,s){this.namespaceId=e,this.triggerName=t,this.element=s}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((t,s)=>{t.forEach(n=>ye(e,s,void 0,n))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){const t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){O(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){const t=this._player;t.triggerCallback&&t.triggerCallback(e)}}function me(i){return i&&1===i.nodeType}function gt(i,e){const t=i.style.display;return i.style.display=e??"none",t}function yt(i,e,t,s,n){const r=[];t.forEach(l=>r.push(gt(l)));const a=[];s.forEach((l,u)=>{const c=new Map;l.forEach(h=>{const S=e.computeStyle(u,h,n);c.set(h,S),(!S||0==S.length)&&(u[z]=xs,a.push(u))}),i.set(u,c)});let o=0;return t.forEach(l=>gt(l,r[o++])),a}function _t(i,e){const t=new Map;if(i.forEach(o=>t.set(o,[])),0==e.length)return t;const n=new Set(e),r=new Map;function a(o){if(!o)return 1;let l=r.get(o);if(l)return l;const u=o.parentNode;return l=t.has(u)?u:n.has(u)?1:a(u),r.set(o,l),l}return e.forEach(o=>{const l=a(o);1!==l&&t.get(l).push(o)}),t}function F(i,e){i.classList?.add(e)}function Y(i,e){i.classList?.remove(e)}function nn(i,e,t){$(t).onDone(()=>i.processLeaveNode(e))}function St(i,e){for(let t=0;tn.add(r)):e.set(i,s),t.delete(i),!0}class Be{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,t)=>{};constructor(e,t,s){this._driver=t,this._normalizer=s,this._transitionEngine=new Js(e.body,t,s),this._timelineEngine=new Ws(e.body,t,s),this._transitionEngine.onRemovalComplete=(n,r)=>this.onRemovalComplete(n,r)}registerTrigger(e,t,s,n,r){const a=e+"-"+n;let o=this._triggerCache[a];if(!o){const l=[],c=Ce(this._driver,r,l,[]);if(l.length)throw function Xt(){return new E.wOt(3404,!1)}();o=function Qs(i,e,t){return new $s(i,e,t)}(n,c,this._normalizer),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(t,n,o)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,s,n){this._transitionEngine.insertNode(e,t,s,n)}onRemove(e,t,s){this._transitionEngine.removeNode(e,t,s)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,s,n){if("@"==s.charAt(0)){const[r,a]=He(s);this._timelineEngine.command(r,t,a,n)}else this._transitionEngine.trigger(e,t,s,n)}listen(e,t,s,n,r){if("@"==s.charAt(0)){const[a,o]=He(s);return this._timelineEngine.listen(a,t,o,r)}return this._transitionEngine.listen(e,t,s,n,r)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}}let ln=(()=>{class i{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(t,s,n){this._element=t,this._startStyles=s,this._endStyles=n;let r=i.initialStylesByElement.get(t);r||i.initialStylesByElement.set(t,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&K(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(K(this._element,this._initialStyles),this._endStyles&&(K(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(i.initialStylesByElement.delete(this._element),this._startStyles&&(W(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(W(this._element,this._endStyles),this._endStyles=null),K(this._element,this._initialStyles),this._state=3)}}return i})();function qe(i){let e=null;return i.forEach((t,s)=>{(function un(i){return"display"===i||"position"===i})(s)&&(e=e||new Map,e.set(s,t))}),e}class Qe{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,t,s,n){this.element=e,this.keyframes=t,this.options=s,this._specialStyles=n,this._duration=s.duration,this._delay=s.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;const t=()=>this._onFinish();this.domPlayer.addEventListener("finish",t),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",t)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){const t=[];return e.forEach(s=>{t.push(Object.fromEntries(s))}),t}_triggerWebAnimation(e,t,s){return e.animate(this._convertKeyframesToObject(t),s)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((s,n)=>{"offset"!==n&&e.set(n,this._finished?s:Me(this.element,n))}),this.currentSnapshot=e}triggerCallback(e){const t="start"===e?this._onStartFns:this._onDoneFns;t.forEach(s=>s()),t.length=0}}class Tt{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,t){return Ee(e,t)}getParentElement(e){return ne(e)}query(e,t,s){return Te(e,t,s)}computeStyle(e,t,s){return Me(e,t)}animate(e,t,s,n,r,a=[]){const l={duration:s,delay:n,fill:0==n?"both":"forwards"};r&&(l.easing=r);const u=new Map,c=a.filter(_=>_ instanceof Qe);it(s,n)&&c.forEach(_=>{_.currentSnapshot.forEach((m,y)=>u.set(y,m))});let h=tt(t).map(_=>new Map(_));h=function Ss(i,e,t){if(t.size&&e.length){let s=e[0],n=[];if(t.forEach((r,a)=>{s.has(a)||n.push(a),s.set(a,r)}),n.length)for(let r=1;ra.set(o,Me(i,o)))}}return e}(e,h,u);const S=function on(i,e){let t=null,s=null;return Array.isArray(e)&&e.length?(t=qe(e[0]),e.length>1&&(s=qe(e[e.length-1]))):e instanceof Map&&(t=qe(e)),t||s?new ln(i,t,s):null}(e,h);return new Qe(e,h,l,S)}}function cn(i,e){return"noop"===i?new Be(e,new ve,new Ze):new Be(e,new Tt,new rt)}class hn{_driver;_animationAst;constructor(e,t){this._driver=e;const s=[],r=Ce(e,t,s,[]);if(s.length)throw function Gt(){return new E.wOt(3500,!1)}();this._animationAst=r}buildTimelines(e,t,s,n,r){const a=Array.isArray(t)?st(t):t,o=Array.isArray(s)?st(s):s,l=[];r=r||new he;const u=Oe(this._driver,e,this._animationAst,we,ie,a,o,n,r,l);if(l.length)throw function Ht(){return new E.wOt(3501,!1)}();return u}}const vt="@.disabled";class $e{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,t,s,n){this.namespaceId=e,this.delegate=t,this.engine=s,this._onDestroy=n}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,s,n=!0){this.delegate.insertBefore(e,t,s),this.engine.onInsert(this.namespaceId,t,e,n)}removeChild(e,t,s){this.parentNode(t)&&this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,s,n){this.delegate.setAttribute(e,t,s,n)}removeAttribute(e,t,s){this.delegate.removeAttribute(e,t,s)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,s,n){this.delegate.setStyle(e,t,s,n)}removeStyle(e,t,s){this.delegate.removeStyle(e,t,s)}setProperty(e,t,s){"@"==t.charAt(0)&&t==vt?this.disableAnimations(e,!!s):this.delegate.setProperty(e,t,s)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,s){return this.delegate.listen(e,t,s)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}}class wt extends $e{factory;constructor(e,t,s,n,r){super(t,s,n,r),this.factory=e,this.namespaceId=t}setProperty(e,t,s){"@"==t.charAt(0)?"."==t.charAt(1)&&t==vt?this.disableAnimations(e,s=void 0===s||!!s):this.engine.process(this.namespaceId,e,t.slice(1),s):this.delegate.setProperty(e,t,s)}listen(e,t,s){if("@"==t.charAt(0)){const n=function fn(i){switch(i){case"body":return document.body;case"document":return document;case"window":return window;default:return i}}(e);let r=t.slice(1),a="";return"@"!=r.charAt(0)&&([r,a]=function dn(i){const e=i.indexOf(".");return[i.substring(0,e),i.slice(e+1)]}(r)),this.engine.listen(this.namespaceId,n,r,a,o=>{this.factory.scheduleListenerCallback(o._data||-1,s,o)})}return this.delegate.listen(e,t,s)}}class mn{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,t,s){this.delegate=e,this.engine=t,this._zone=s,t.onRemovalComplete=(n,r)=>{r?.removeChild(null,n)}}createRenderer(e,t){const n=this.delegate.createRenderer(e,t);if(!e||!t?.data?.animation){const u=this._rendererCache;let c=u.get(n);return c||(c=new $e("",n,this.engine,()=>u.delete(n)),u.set(n,c)),c}const r=t.id,a=t.id+"-"+this._currentId;this._currentId++,this.engine.register(a,e);const o=u=>{Array.isArray(u)?u.forEach(o):this.engine.registerTrigger(r,a,e,u.name,u)};return t.data.animation.forEach(o),new wt(this,a,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,t,s){if(e>=0&&et(s));const n=this._animationCallbacksBuffer;0==n.length&&queueMicrotask(()=>{this._zone.run(()=>{n.forEach(r=>{const[a,o]=r;a(o)}),this._animationCallbacksBuffer=[]})}),n.push([t,s])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}}}]); \ No newline at end of file diff --git a/demo/assets/css/glyphicons.css b/docs/css/glyphicons.css similarity index 100% rename from demo/assets/css/glyphicons.css rename to docs/css/glyphicons.css diff --git a/docs/css/prettify-angulario.css b/docs/css/prettify-angulario.css new file mode 100644 index 00000000..2a0687d1 --- /dev/null +++ b/docs/css/prettify-angulario.css @@ -0,0 +1,215 @@ +.prettyprint { + white-space: pre-wrap; + background: #F5F6F7; + font-family: Monaco,"Lucida Console",monospace; + color: #5C707A; + width: auto; + overflow: auto; + position: relative; + font-size: 13px; + line-height: 24px; + border-radius: 4px; + padding: 16px 32px +} + +.prettyprint.linenums,.prettyprint[class^="linenums:"],.prettyprint[class*=" linenums:"] { + padding: 0 +} + +.prettyprint.is-showcase { + border: 4px solid #0273D4 +} + +.prettyprint code { + background: none; + font-size: 13px; + padding: 0 +} + +.prettyprint ol { + background: #F5F6F7; + padding: 16px 32px 16px 56px; + margin: 0; + overflow: auto; + font-size: 13px +} + +.prettyprint ol li,.prettyprint .tag { + color: #7a8b94; + background: none; + margin-bottom: 5px; + line-height: normal; + list-style-type: decimal; + font-size: 12px +} + +.prettyprint ol li:last-child { + margin-bottom: 0 +} + +.prettyprint ol li code { + background: none; + font-size: 13px +} + +.prettyprint .pnk,.prettyprint .blk { + border-radius: 4px; + padding: 2px 4px +} + +.prettyprint .pnk { + background: #CFD8DC; + color: #5C707A +} + +.prettyprint .blk { + background: #E0E0E0 +} + +.prettyprint .otl { + outline: 1px solid rgba(169,169,169,0.56) +} + +.prettyprint .kwd { + color: #D43669 +} + +.prettyprint .typ,.prettyprint .tag { + color: #D43669 +} + +.prettyprint .str,.prettyprint .atv { + color: #647f11 +} + +.prettyprint .atn { + /*color: #647f11*/ + color: #31708f +} + +.prettyprint .com { + color: #647f11 +} + +.prettyprint .lit { + color: #647f11 +} + +.prettyprint .pun { + color: #7a8b94 +} + +.prettyprint .pln { + color: #5C707A + /*color: #8a6d3b*/ +} + +.prettyprint .dec { + color: #647f11 +} + +@media print { + .prettyprint { + background: #F5F6F7; + border: none; + box-shadow: none + } + + .prettyprint ol { + background: #F5F6F7 + } + + .prettyprint .kwd { + color: #D43669 + } + + .prettyprint .typ,.prettyprint .tag { + color: #D43669 + } + + .prettyprint .str,.prettyprint .atv { + color: #647f11 + } + + .prettyprint .atn { + /*color: #647f11*/ + color: #31708f + } + + .prettyprint .com { + color: #647f11 + } + + .prettyprint .lit { + color: #647f11 + } + + .prettyprint .pun { + color: #7a8b94 + } + + .prettyprint .pln { + color: #5C707A + } + + .prettyprint .dec { + color: #647f11 + } +} + +h1 .prettyprint,h2 .prettyprint,h3 .prettyprint,h4 .prettyprint { + background: none; + font-family: Monaco,"Lucida Console",monospace; + color: #253238; + overflow: hidden; + position: relative; + font-size: 15px; + font-weight: 600; + line-height: 24px; + margin: 0; + border: none; + box-shadow: none; + padding: 0 +} + +h1 .prettyprint code,h2 .prettyprint code,h3 .prettyprint code,h4 .prettyprint code { + background: none; + font-size: 15px; + padding: 0 +} + +h1 .prettyprint .kwd,h2 .prettyprint .kwd,h3 .prettyprint .kwd,h4 .prettyprint .kwd { + color: #253238 +} + +h1 .prettyprint .typ,h1 .prettyprint .tag,h2 .prettyprint .typ,h2 .prettyprint .tag,h3 .prettyprint .typ,h3 .prettyprint .tag,h4 .prettyprint .typ,h4 .prettyprint .tag { + color: #B52E31 +} + +h1 .prettyprint .str,h1 .prettyprint .atv,h2 .prettyprint .str,h2 .prettyprint .atv,h3 .prettyprint .str,h3 .prettyprint .atv,h4 .prettyprint .str,h4 .prettyprint .atv { + color: #9d8d00 +} + +h1 .prettyprint .atn,h2 .prettyprint .atn,h3 .prettyprint .atn,h4 .prettyprint .atn { + color: #71a436 +} + +h1 .prettyprint .com,h2 .prettyprint .com,h3 .prettyprint .com,h4 .prettyprint .com { + color: #AFBEC5 +} + +h1 .prettyprint .lit,h2 .prettyprint .lit,h3 .prettyprint .lit,h4 .prettyprint .lit { + color: #9d8d00 +} + +h1 .prettyprint .pun,h2 .prettyprint .pun,h3 .prettyprint .pun,h4 .prettyprint .pun { + color: #000 +} + +h1 .prettyprint .pln,h2 .prettyprint .pln,h3 .prettyprint .pln,h4 .prettyprint .pln { + color: #000 +} + +h1 .prettyprint .dec,h2 .prettyprint .dec,h3 .prettyprint .dec,h4 .prettyprint .dec { + color: #8762c6 +} diff --git a/docs/css/style.css b/docs/css/style.css new file mode 100644 index 00000000..daa7b587 --- /dev/null +++ b/docs/css/style.css @@ -0,0 +1,332 @@ +/*! + * Bootstrap Docs (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under the Creative Commons Attribution 3.0 Unported License. For + * details, see http://creativecommons.org/licenses/by/3.0/. + */ + +.h1, .h2, .h3, h1, h2, h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +.h1, h1 { + font-size: 36px; +} + +.btn-group-lg > .btn, .btn-lg { + font-size: 18px; +} + +section { + padding-top: 30px; +} + +.bd-pageheader { + margin-top: 45px; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} + +.navbar-default .navbar-nav > li > a { + color: #777; +} + +.navbar { + padding: 0; +} + +.navbar-nav .nav-item { + margin-left: 0 !important; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav .navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; + margin-right: 0 !important; +} + +.navbar-brand { + color: #777; + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-toggler { + margin-top: 8px; + margin-right: 15px; +} + +.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover { + color: #333; + background-color: transparent; +} + +.bd-pageheader, .bs-docs-masthead { + position: relative; + padding: 25px 0; + color: #cdbfe3; + text-align: center; + text-shadow: 0 1px 0 rgba(0, 0, 0, .1); + background-color: #6f5499; + background-image: -webkit-gradient(linear, left top, left bottom, from(#563d7c), to(#6f5499)); + background-image: -webkit-linear-gradient(top, #563d7c 0, #6f5499 100%); + background-image: -o-linear-gradient(top, #563d7c 0, #6f5499 100%); + background-image: linear-gradient(to bottom, #563d7c 0, #6f5499 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#563d7c', endColorstr='#6F5499', GradientType=0); + background-repeat: repeat-x; +} + +.bd-pageheader { + margin-bottom: 40px; + font-size: 20px; +} + +.bd-pageheader h1 { + margin-top: 0; + color: #fff; +} + +.bd-pageheader p { + margin-bottom: 0; + font-weight: 300; + line-height: 1.4; +} + +.bd-pageheader .btn { + margin: 10px 0; +} + +.scrollable-menu .nav-link { + color: #337ab7; + font-size: 14px; +} + +.scrollable-menu .nav-link:hover { + color: #23527c; + background-color: #eee; +} + +@media (min-width: 992px) { + .bd-pageheader h1, .bd-pageheader p { + margin-right: 380px; + } +} + +@media (min-width: 768px) { + .bd-pageheader { + padding-top: 60px; + padding-bottom: 60px; + font-size: 24px; + text-align: left; + } + + .bd-pageheader h1 { + font-size: 60px; + line-height: 1; + } + + .navbar-nav > li > a.nav-link { + padding-top: 15px; + padding-bottom: 15px; + font-size: 14px; + } + + .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + + .navbar .container { + width: 100%; + max-width: 100%; + } + + .navbar .container, + .navbar .container .navbar-header { + padding: 0; + margin: 0; + } +} + +@media (max-width: 400px) { + code, kbd { + font-size: 60%; + } +} + +/** + * VH and VW units can cause issues on iOS devices: http://caniuse.com/#feat=viewport-units + * + * To overcome this, create media queries that target the width, height, and orientation of iOS devices. + * It isn't optimal, but there is really no other way to solve the problem. In this example, I am fixing + * the height of element '.scrollable-menu' —which is a full width and height cover image. + * + * iOS Resolution Quick Reference: http://www.iosres.com/ + */ + +.scrollable-menu { + height: 90vh !important; + width: 100vw; + overflow-x: hidden; + padding: 0 0 20px; +} + +/** + * iPad with portrait orientation. + */ +@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) { + .scrollable-menu { + height: 1024px !important; + } +} + +/** + * iPad with landscape orientation. + */ +@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: landscape) { + .scrollable-menu { + height: 768px !important; + } +} + +/** + * iPhone 5 + * You can also target devices with aspect ratio. + */ +@media screen and (device-aspect-ratio: 40/71) { + .scrollable-menu { + height: 500px !important; + } +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} + +.navbar-toggle:focus { + outline: 0 +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px +} + +pre { + margin: 0; + white-space: pre-wrap; /* CSS 3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ +} + +.chart-legend, .bar-legend, .line-legend, .pie-legend, .radar-legend, .polararea-legend, .doughnut-legend { + list-style-type: none; + margin-top: 5px; + text-align: center; + -webkit-padding-start: 0; + -moz-padding-start: 0; + padding-left: 0 +} + +.chart-legend li, .bar-legend li, .line-legend li, .pie-legend li, .radar-legend li, .polararea-legend li, .doughnut-legend li { + display: inline-block; + white-space: nowrap; + position: relative; + margin-bottom: 4px; + border-radius: 5px; + padding: 2px 8px 2px 28px; + font-size: smaller; + cursor: default +} + +.chart-legend li span, .bar-legend li span, .line-legend li span, .pie-legend li span, .radar-legend li span, .polararea-legend li span, .doughnut-legend li span { + display: block; + position: absolute; + left: 0; + top: 0; + width: 20px; + height: 20px; + border-radius: 5px +} + +.example-block { + display: flex; + margin-bottom: 20px; +} + +.example-block__item { + width: 400px; + border: lightgray; + margin: 5px; + border-radius: 5px; +} + +.doc-api pre { + color: #383d41; + background-color: #e2e3e5; + position: relative; + padding: .75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid #d6d8db; + border-radius: .25rem; +} + +.doc-api h3 { + margin: 10px 0; +} + +table { + display: block; + width: 100%; + overflow: auto; + margin-top: 0; + margin-bottom: 16px; +} + +table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +table th, table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +code { + word-break: normal; +} \ No newline at end of file diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 00000000..57614f9c Binary files /dev/null and b/docs/favicon.ico differ diff --git a/demo/assets/fonts/glyphicons-halflings-regular.eot b/docs/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.eot rename to docs/fonts/glyphicons-halflings-regular.eot diff --git a/demo/assets/fonts/glyphicons-halflings-regular.svg b/docs/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.svg rename to docs/fonts/glyphicons-halflings-regular.svg diff --git a/demo/assets/fonts/glyphicons-halflings-regular.ttf b/docs/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.ttf rename to docs/fonts/glyphicons-halflings-regular.ttf diff --git a/demo/assets/fonts/glyphicons-halflings-regular.woff b/docs/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.woff rename to docs/fonts/glyphicons-halflings-regular.woff diff --git a/demo/assets/fonts/glyphicons-halflings-regular.woff2 b/docs/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from demo/assets/fonts/glyphicons-halflings-regular.woff2 rename to docs/fonts/glyphicons-halflings-regular.woff2 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..4a2827b7 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,42 @@ + + + + Angular Select + + + + + + + + + + + + + + + + + + + + + + Loading... + + + + diff --git a/docs/js/prettify.min.js b/docs/js/prettify.min.js new file mode 100644 index 00000000..e83633dd --- /dev/null +++ b/docs/js/prettify.min.js @@ -0,0 +1,36 @@ +!function () { var q = null; window.PR_SHOULD_USE_CONTINUATION = !0; + (function () { function S(a) { function d(e) { var b = e.charCodeAt(0); if (b !== 92) return b; var a = e.charAt(1); return (b = r[a]) ? b : '0' <= a && a <= '7' ? parseInt(e.substring(1), 8) : a === 'u' || a === 'x' ? parseInt(e.substring(2), 16) : e.charCodeAt(1); } function g(e) { if (e < 32) return (e < 16 ? '\\x0' : '\\x') + e.toString(16); e = String.fromCharCode(e); return e === '\\' || e === '-' || e === ']' || e === '^' ? '\\' + e : e; } function b(e) { var b = e.substring(1, e.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), e = [], a = +b[0] === '^', c = ['[']; a && c.push('^'); for (var a = a ? 1 : 0, f = b.length; a < f; ++a) { var h = b[a]; if (/\\[bdsw]/i.test(h))c.push(h); else { var h = d(h), l; a + 2 < f && '-' === b[a + 1] ? (l = d(b[a + 2]), a += 2) : l = h; e.push([h, l]); l < 65 || h > 122 || (l < 65 || h > 90 || e.push([Math.max(65, h) | 32, Math.min(l, 90) | 32]), l < 97 || h > 122 || e.push([Math.max(97, h) & -33, Math.min(l, 122) & -33])); } }e.sort(function (e, a) { return e[0] - a[0] || a[1] - e[1]; }); b = []; f = []; for (a = 0; a < e.length; ++a)h = e[a], h[0] <= f[1] + 1 ? f[1] = Math.max(f[1], h[1]) : b.push(f = h); for (a = 0; a < b.length; ++a)h = b[a], c.push(g(h[0])), +h[1] > h[0] && (h[1] + 1 > h[0] && c.push('-'), c.push(g(h[1]))); c.push(']'); return c.join(''); } function s(e) { for (var a = e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), c = a.length, d = [], f = 0, h = 0; f < c; ++f) { var l = a[f]; l === '(' ? ++h : '\\' === l.charAt(0) && (l = +l.substring(1)) && (l <= h ? d[l] = -1 : a[f] = g(l)); } for (f = 1; f < d.length; ++f)-1 === d[f] && (d[f] = ++x); for (h = f = 0; f < c; ++f)l = a[f], l === '(' ? (++h, d[h] || (a[f] = '(?:')) : '\\' === l.charAt(0) && (l = +l.substring(1)) && l <= h && +(a[f] = '\\' + d[l]); for (f = 0; f < c; ++f)'^' === a[f] && '^' !== a[f + 1] && (a[f] = ''); if (e.ignoreCase && m) for (f = 0; f < c; ++f)l = a[f], e = l.charAt(0), l.length >= 2 && e === '[' ? a[f] = b(l) : e !== '\\' && (a[f] = l.replace(/[A-Za-z]/g, function (a) { a = a.charCodeAt(0); return '[' + String.fromCharCode(a & -33, a | 32) + ']'; })); return a.join(''); } for (var x = 0, m = !1, j = !1, k = 0, c = a.length; k < c; ++k) { var i = a[k]; if (i.ignoreCase)j = !0; else if (/[a-z]/i.test(i.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ''))) { m = !0; j = !1; break; } } for (var r = { + b: 8, t: 9, n: 10, v: 11, + f: 12, r: 13 + }, n = [], k = 0, c = a.length; k < c; ++k) { i = a[k]; if (i.global || i.multiline) throw Error('' + i); n.push('(?:' + s(i) + ')'); } return RegExp(n.join('|'), j ? 'gi' : 'g'); } function T(a, d) { function g(a) { var c = a.nodeType; if (c == 1) { if (!b.test(a.className)) { for (c = a.firstChild; c; c = c.nextSibling)g(c); c = a.nodeName.toLowerCase(); if ('br' === c || 'li' === c)s[j] = '\n', m[j << 1] = x++, m[j++ << 1 | 1] = a; } } else if (c == 3 || c == 4)c = a.nodeValue, c.length && (c = d ? c.replace(/\r\n?/g, '\n') : c.replace(/[\t\n\r ]+/g, ' '), s[j] = c, m[j << 1] = x, x += c.length, m[j++ << 1 | 1] = +a); } var b = /(?:^|\s)nocode(?:\s|$)/, s = [], x = 0, m = [], j = 0; g(a); return {a: s.join('').replace(/\n$/, ''), d: m}; } function H(a, d, g, b) { d && (a = {a: d, e: a}, g(a), b.push.apply(b, a.g)); } function U(a) { for (var d = void 0, g = a.firstChild; g; g = g.nextSibling) var b = g.nodeType, d = b === 1 ? d ? a : g : b === 3 ? V.test(g.nodeValue) ? a : d : d; return d === a ? void 0 : d; } function C(a, d) { function g(a) { for (var j = a.e, k = [j, 'pln'], c = 0, i = a.a.match(s) || [], r = {}, n = 0, e = i.length; n < e; ++n) { var z = i[n], w = r[z], t = void 0, f; if (typeof w === 'string')f = !1; else { var h = b[z.charAt(0)]; + if (h)t = z.match(h[1]), w = h[0]; else { for (f = 0; f < x; ++f) if (h = d[f], t = z.match(h[1])) { w = h[0]; break; }t || (w = 'pln'); } if ((f = w.length >= 5 && 'lang-' === w.substring(0, 5)) && !(t && typeof t[1] === 'string'))f = !1, w = 'src'; f || (r[z] = w); }h = c; c += z.length; if (f) { f = t[1]; var l = z.indexOf(f), B = l + f.length; t[2] && (B = z.length - t[2].length, l = B - f.length); w = w.substring(5); H(j + h, z.substring(0, l), g, k); H(j + h + l, f, I(w, f), k); H(j + h + B, z.substring(B), g, k); } else k.push(j + h, w); }a.g = k; } var b = {}, s; (function () { for (var g = a.concat(d), j = [], k = {}, c = 0, i = g.length; c < i; ++c) { var r = +g[c], n = r[3]; if (n) for (var e = n.length; --e >= 0;)b[n.charAt(e)] = r; r = r[1]; n = '' + r; k.hasOwnProperty(n) || (j.push(r), k[n] = q); }j.push(/[\S\s]/); s = S(j); })(); var x = d.length; return g; } function v(a) { var d = [], g = []; a.tripleQuotedStrings ? d.push(['str', /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, '\'"']) : a.multiLineStrings ? d.push(['str', /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q, '\'"`']) : d.push(['str', /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, '"\'']); a.verbatimStrings && g.push(['str', /^@"(?:[^"]|"")*(?:"|$)/, q]); var b = a.hashComments; b && (a.cStyleComments ? (b > 1 ? d.push(['com', /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, '#']) : d.push(['com', /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/, q, '#']), g.push(['str', /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, q])) : d.push(['com', +/^#[^\n\r]*/, q, '#'])); a.cStyleComments && (g.push(['com', /^\/\/[^\n\r]*/, q]), g.push(['com', /^\/\*[\S\s]*?(?:\*\/|$)/, q])); if (b = a.regexLiterals) { var s = (b = b > 1 ? '' : '\n\r') ? '.' : '[\\S\\s]'; g.push(['lang-regex', RegExp('^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(' + ('/(?=[^/*' + b + '])(?:[^/\\x5B\\x5C' + b + ']|\\x5C' + s + '|\\x5B(?:[^\\x5C\\x5D' + b + ']|\\x5C' + +s + ')*(?:\\x5D|$))+/') + ')')]); }(b = a.types) && g.push(['typ', b]); b = ('' + a.keywords).replace(/^ | $/g, ''); b.length && g.push(['kwd', RegExp('^(?:' + b.replace(/[\s,]+/g, '|') + ')\\b'), q]); d.push(['pln', /^\s+/, q, ' \r\n\t\u00a0']); b = '^.[^\\s\\w.$@\'"`/\\\\]*'; a.regexLiterals && (b += '(?!s*/)'); g.push(['lit', /^@[$_a-z][\w$@]*/i, q], ['typ', /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ['pln', /^[$_a-z][\w$@]*/i, q], ['lit', /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, '0123456789'], ['pln', /^\\[\S\s]?/, +q], ['pun', RegExp(b), q]); return C(d, g); } function J(a, d, g) { function b(a) { var c = a.nodeType; if (c == 1 && !x.test(a.className)) if ('br' === a.nodeName)s(a), a.parentNode && a.parentNode.removeChild(a); else for (a = a.firstChild; a; a = a.nextSibling)b(a); else if ((c == 3 || c == 4) && g) { var d = a.nodeValue, i = d.match(m); if (i)c = d.substring(0, i.index), a.nodeValue = c, (d = d.substring(i.index + i[0].length)) && a.parentNode.insertBefore(j.createTextNode(d), a.nextSibling), s(a), c || a.parentNode.removeChild(a); } } function s(a) { function b(a, c) { var d = +c ? a.cloneNode(!1) : a, e = a.parentNode; if (e) { var e = b(e, 1), g = a.nextSibling; e.appendChild(d); for (var i = g; i; i = g)g = i.nextSibling, e.appendChild(i); } return d; } for (;!a.nextSibling;) if (a = a.parentNode, !a) return; for (var a = b(a.nextSibling, 0), d; (d = a.parentNode) && d.nodeType === 1;)a = d; c.push(a); } for (var x = /(?:^|\s)nocode(?:\s|$)/, m = /\r\n?|\n/, j = a.ownerDocument, k = j.createElement('li'); a.firstChild;)k.appendChild(a.firstChild); for (var c = [k], i = 0; i < c.length; ++i)b(c[i]); d === (d | 0) && c[0].setAttribute('value', d); var r = j.createElement('ol'); + r.className = 'linenums'; for (var d = Math.max(0, d - 1 | 0) || 0, i = 0, n = c.length; i < n; ++i)k = c[i], k.className = 'L' + (i + d) % 10, k.firstChild || k.appendChild(j.createTextNode('\u00a0')), r.appendChild(k); a.appendChild(r); } function p(a, d) { for (var g = d.length; --g >= 0;) { var b = d[g]; F.hasOwnProperty(b) ? D.console && console.warn('cannot override language handler %s', b) : F[b] = a; } } function I(a, d) { if (!a || !F.hasOwnProperty(a))a = /^\s*= l && (b += 2); g >= B && (r += 2); } } finally { if (f)f.style.display = h; } } catch (u) { D.console && console.log(u && u.stack || u); } } var D = window, y = ['break,continue,do,else,for,if,return,while'], E = [[y, 'auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile'], +'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof'], M = [E, 'alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where'], N = [E, 'abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient'], + O = [N, 'as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where'], E = [E, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN'], P = [y, 'and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None'], + Q = [y, 'alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END'], W = [y, 'as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use'], y = [y, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until'], R = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, + V = /\S/, X = v({keywords: [M, O, E, 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END', P, Q, y], hashComments: !0, cStyleComments: !0, multiLineStrings: !0, regexLiterals: !0}), F = {}; p(X, ['default-code']); p(C([], [['pln', /^[^]*(?:>|$)/], ['com', /^<\!--[\S\s]*?(?:--\>|$)/], ['lang-', /^<\?([\S\s]+?)(?:\?>|$)/], ['lang-', /^<%([\S\s]+?)(?:%>|$)/], ['pun', /^(?:<[%?]|[%?]>)/], ['lang-', +/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i], ['lang-js', /^]*>([\S\s]*?)(<\/script\b[^>]*>)/i], ['lang-css', /^]*>([\S\s]*?)(<\/style\b[^>]*>)/i], ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i]]), ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']); p(C([['pln', /^\s+/, q, ' \t\r\n'], ['atv', /^(?:"[^"]*"?|'[^']*'?)/, q, '"\'']], [['tag', /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i], ['atn', /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], ['lang-uq.val', /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/], ['pun', /^[/<->]+/], +['lang-js', /^on\w+\s*=\s*"([^"]+)"/i], ['lang-js', /^on\w+\s*=\s*'([^']+)'/i], ['lang-js', /^on\w+\s*=\s*([^\s"'>]+)/i], ['lang-css', /^style\s*=\s*"([^"]+)"/i], ['lang-css', /^style\s*=\s*'([^']+)'/i], ['lang-css', /^style\s*=\s*([^\s"'>]+)/i]]), ['in.tag']); p(C([], [['atv', /^[\S\s]+/]]), ['uq.val']); p(v({keywords: M, hashComments: !0, cStyleComments: !0, types: R}), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']); p(v({keywords: 'null,true,false'}), ['json']); p(v({keywords: O, hashComments: !0, cStyleComments: !0, verbatimStrings: !0, types: R}), +['cs']); p(v({keywords: N, cStyleComments: !0}), ['java']); p(v({keywords: y, hashComments: !0, multiLineStrings: !0}), ['bash', 'bsh', 'csh', 'sh']); p(v({keywords: P, hashComments: !0, multiLineStrings: !0, tripleQuotedStrings: !0}), ['cv', 'py', 'python']); p(v({keywords: 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END', hashComments: !0, multiLineStrings: !0, regexLiterals: 2}), ['perl', 'pl', 'pm']); p(v({ + keywords: Q, + hashComments: !0, multiLineStrings: !0, regexLiterals: !0 +}), ['rb', 'ruby']); p(v({keywords: E, cStyleComments: !0, regexLiterals: !0}), ['javascript', 'js']); p(v({keywords: 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes', hashComments: 3, cStyleComments: !0, multilineStrings: !0, tripleQuotedStrings: !0, regexLiterals: !0}), ['coffee']); p(v({keywords: W, cStyleComments: !0, multilineStrings: !0}), ['rc', 'rs', 'rust']); + p(C([], [['str', /^[\S\s]+/]]), ['regex']); var Y = D.PR = { + createSimpleLexer: C, registerLangHandler: p, sourceDecorator: v, PR_ATTRIB_NAME: 'atn', PR_ATTRIB_VALUE: 'atv', PR_COMMENT: 'com', PR_DECLARATION: 'dec', PR_KEYWORD: 'kwd', PR_LITERAL: 'lit', PR_NOCODE: 'nocode', PR_PLAIN: 'pln', PR_PUNCTUATION: 'pun', PR_SOURCE: 'src', PR_STRING: 'str', PR_TAG: 'tag', PR_TYPE: 'typ', prettyPrintOne: D.prettyPrintOne = function (a, d, g) { var b = document.createElement('div'); b.innerHTML = '
' + a + '
'; b = b.firstChild; g && J(b, g, !0); K({h: d, j: g, c: b, i: 1}); + return b.innerHTML; }, prettyPrint: D.prettyPrint = function (a, d) { function g() { for (var b = D.PR_SHOULD_USE_CONTINUATION ? c.now() + 250 : Infinity; i < p.length && c.now() < b; i++) { for (var d = p[i], j = h, k = d; k = k.previousSibling;) { var m = k.nodeType, o = (m === 7 || m === 8) && k.nodeValue; if (o ? !/^\??prettify\b/.test(o) : m !== 3 || /\S/.test(k.nodeValue)) break; if (o) { j = {}; o.replace(/\b(\w+)=([\w%+\-.:]+)/g, function (a, b, c) { j[b] = c; }); break; } }k = d.className; if ((j !== h || e.test(k)) && !v.test(k)) { m = !1; for (o = d.parentNode; o; o = o.parentNode) if (f.test(o.tagName) && +o.className && e.test(o.className)) { m = !0; break; } if (!m) { d.className += ' prettyprinted'; m = j.lang; if (!m) { var m = k.match(n), y; if (!m && (y = U(d)) && t.test(y.tagName))m = y.className.match(n); m && (m = m[1]); } if (w.test(d.tagName))o = 1; else var o = d.currentStyle, u = s.defaultView, o = (o = o ? o.whiteSpace : u && u.getComputedStyle ? u.getComputedStyle(d, q).getPropertyValue('white-space') : 0) && 'pre' === o.substring(0, 3); u = j.linenums; if (!(u = u === 'true' || +u))u = (u = k.match(/\blinenums\b(?::(\d+))?/)) ? u[1] && u[1].length ? +u[1] : !0 : !1; u && J(d, u, o); r = +{h: m, c: d, j: u, i: o}; K(r); } } }i < p.length ? setTimeout(g, 250) : 'function' === typeof a && a(); } for (var b = d || document.body, s = b.ownerDocument || document, b = [b.getElementsByTagName('pre'), b.getElementsByTagName('code'), b.getElementsByTagName('xmp')], p = [], m = 0; m < b.length; ++m) for (var j = 0, k = b[m].length; j < k; ++j)p.push(b[m][j]); var b = q, c = Date; c.now || (c = {now() { return +new Date; }}); var i = 0, r, n = /\blang(?:uage)?-([\w.]+)(?!\S)/, e = /\bprettyprint\b/, v = /\bprettyprinted\b/, w = /pre|xmp/i, t = /^code$/i, f = /^(?:pre|code|xmp)$/i, + h = {}; g(); } + }; typeof define === 'function' && define.amd && define('google-code-prettify', [], function () { return Y; }); })(); }(); diff --git a/docs/main.7ad077ad2aacf437.js b/docs/main.7ad077ad2aacf437.js new file mode 100644 index 00000000..d6054da4 --- /dev/null +++ b/docs/main.7ad077ad2aacf437.js @@ -0,0 +1 @@ +(self.webpackChunkngx_select_ex_demo=self.webpackChunkngx_select_ex_demo||[]).push([[792],{538:(he,U,x)=>{"use strict";var u=x(213);let K=null;function se(){return K}class G{}const Q=new u.nKC(""),nl=/\s+/,ar=[];let du=(()=>{class i{_ngEl;_renderer;initialClasses=ar;rawClass;stateMap=new Map;constructor(r,s){this._ngEl=r,this._renderer=s}set klass(r){this.initialClasses=null!=r?r.trim().split(nl):ar}set ngClass(r){this.rawClass="string"==typeof r?r.trim().split(nl):r}ngDoCheck(){for(const s of this.initialClasses)this._updateState(s,!0);const r=this.rawClass;if(Array.isArray(r)||r instanceof Set)for(const s of r)this._updateState(s,!0);else if(null!=r)for(const s of Object.keys(r))this._updateState(s,!!r[s]);this._applyStateDiff()}_updateState(r,s){const d=this.stateMap.get(r);void 0!==d?(d.enabled!==s&&(d.changed=!0,d.enabled=s),d.touched=!0):this.stateMap.set(r,{enabled:s,changed:!0,touched:!0})}_applyStateDiff(){for(const r of this.stateMap){const s=r[0],d=r[1];d.changed?(this._toggleClass(s,d.enabled),d.changed=!1):d.touched||(d.enabled&&this._toggleClass(s,!1),this.stateMap.delete(s)),d.touched=!1}}_toggleClass(r,s){(r=r.trim()).length>0&&r.split(nl).forEach(d=>{s?this._renderer.addClass(this._ngEl.nativeElement,d):this._renderer.removeClass(this._ngEl.nativeElement,d)})}static \u0275fac=function(s){return new(s||i)(u.rXU(u.aKT),u.rXU(u.sFG))};static \u0275dir=u.FsC({type:i,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return i})();class Oe{$implicit;ngForOf;index;count;constructor(l,r,s,d){this.$implicit=l,this.ngForOf=r,this.index=s,this.count=d}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let hu=(()=>{class i{_viewContainer;_template;_differs;set ngForOf(r){this._ngForOf=r,this._ngForOfDirty=!0}set ngForTrackBy(r){this._trackByFn=r}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(r,s,d){this._viewContainer=r,this._template=s,this._differs=d}set ngForTemplate(r){r&&(this._template=r)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const r=this._ngForOf;!this._differ&&r&&(this._differ=this._differs.find(r).create(this.ngForTrackBy))}if(this._differ){const r=this._differ.diff(this._ngForOf);r&&this._applyChanges(r)}}_applyChanges(r){const s=this._viewContainer;r.forEachOperation((d,g,_)=>{if(null==d.previousIndex)s.createEmbeddedView(this._template,new Oe(d.item,this._ngForOf,-1,-1),null===_?void 0:_);else if(null==_)s.remove(null===g?void 0:g);else if(null!==g){const D=s.get(g);s.move(D,_),xo(D,d)}});for(let d=0,g=s.length;d{xo(s.get(d.currentIndex),d)})}static ngTemplateContextGuard(r,s){return!0}static \u0275fac=function(s){return new(s||i)(u.rXU(u.c1b),u.rXU(u.C4Q),u.rXU(u._q3))};static \u0275dir=u.FsC({type:i,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return i})();function xo(i,l){i.context.$implicit=l.item}let pu=(()=>{class i{_viewContainer;_context=new Jr;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(r,s){this._viewContainer=r,this._thenTemplateRef=s}set ngIf(r){this._context.$implicit=this._context.ngIf=r,this._updateView()}set ngIfThen(r){Es("ngIfThen",r),this._thenTemplateRef=r,this._thenViewRef=null,this._updateView()}set ngIfElse(r){Es("ngIfElse",r),this._elseTemplateRef=r,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(r,s){return!0}static \u0275fac=function(s){return new(s||i)(u.rXU(u.c1b),u.rXU(u.C4Q))};static \u0275dir=u.FsC({type:i,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return i})();class Jr{$implicit=null;ngIf=null}function Es(i,l){if(l&&!l.createEmbeddedView)throw new Error(`${i} must be a TemplateRef, but received '${(0,u.Tbb)(l)}'.`)}let Ir=(()=>{class i{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(r){this._viewContainerRef=r}ngOnChanges(r){if(this._shouldRecreateView(r)){const s=this._viewContainerRef;if(this._viewRef&&s.remove(s.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const d=this._createContextForwardProxy();this._viewRef=s.createEmbeddedView(this.ngTemplateOutlet,d,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(r){return!!r.ngTemplateOutlet||!!r.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(r,s,d)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,s,d),get:(r,s,d)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,s,d)}})}static \u0275fac=function(s){return new(s||i)(u.rXU(u.c1b))};static \u0275dir=u.FsC({type:i,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[u.OA$]})}return i})(),cr=(()=>{class i{transform(r){return JSON.stringify(r,null,2)}static \u0275fac=function(s){return new(s||i)};static \u0275pipe=u.EJ8({name:"json",type:i,pure:!1})}return i})(),ge=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({})}return i})();const qe="browser";function Ze(i){return"server"===i}class Ke extends G{supportsDOMEvents=!0}class Pe extends Ke{static makeCurrent(){!function $(i){K??=i}(new Pe)}onAndCancel(l,r,s){return l.addEventListener(r,s),()=>{l.removeEventListener(r,s)}}dispatchEvent(l,r){l.dispatchEvent(r)}remove(l){l.remove()}createElement(l,r){return(r=r||this.getDefaultDocument()).createElement(l)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(l){return l.nodeType===Node.ELEMENT_NODE}isShadowRoot(l){return l instanceof DocumentFragment}getGlobalEventTarget(l,r){return"window"===r?window:"document"===r?l:"body"===r?l.body:null}getBaseHref(l){const r=function de(){return ln=ln||document.querySelector("base"),ln?ln.getAttribute("href"):null}();return null==r?null:function Oo(i){return new URL(i,document.baseURI).pathname}(r)}resetBaseElement(){ln=null}getUserAgent(){return window.navigator.userAgent}getCookie(l){return function ie(i,l){l=encodeURIComponent(l);for(const r of i.split(";")){const s=r.indexOf("="),[d,g]=-1==s?[r,""]:[r.slice(0,s),r.slice(s+1)];if(d.trim()===l)return decodeURIComponent(g)}return null}(document.cookie,l)}}let ln=null,xi=(()=>{class i{build(){return new XMLHttpRequest}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac})}return i})();const Qe=new u.nKC("");let no=(()=>{class i{_zone;_plugins;_eventNameToPlugin=new Map;constructor(r,s){this._zone=s,r.forEach(d=>{d.manager=this}),this._plugins=r.slice().reverse()}addEventListener(r,s,d){return this._findPluginFor(s).addEventListener(r,s,d)}getZone(){return this._zone}_findPluginFor(r){let s=this._eventNameToPlugin.get(r);if(s)return s;if(s=this._plugins.find(g=>g.supports(r)),!s)throw new u.wOt(5101,!1);return this._eventNameToPlugin.set(r,s),s}static \u0275fac=function(s){return new(s||i)(u.KVO(Qe),u.KVO(u.SKi))};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac})}return i})();class Ro{_doc;constructor(l){this._doc=l}manager}const Zn="ng-app-id";function Po(i){for(const l of i)l.remove()}function Mu(i,l){const r=l.createElement("style");return r.textContent=i,r}function Si(i,l){const r=l.createElement("link");return r.setAttribute("rel","stylesheet"),r.setAttribute("href",i),r}let oo=(()=>{class i{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(r,s,d,g={}){this.doc=r,this.appId=s,this.nonce=d,this.isServer=Ze(g),function ro(i,l,r){const s=i.head?.querySelectorAll(`style[${Zn}="${l}"]`);if(s)for(const d of s)d.textContent&&(d.removeAttribute(Zn),r.set(d.textContent,{usage:0,elements:[d]}))}(r,s,this.inline),this.hosts.add(r.head)}addStyles(r,s){for(const d of r)this.addUsage(d,this.inline,Mu);s?.forEach(d=>this.addUsage(d,this.external,Si))}removeStyles(r,s){for(const d of r)this.removeUsage(d,this.inline);s?.forEach(d=>this.removeUsage(d,this.external))}addUsage(r,s,d){const g=s.get(r);g?g.usage++:s.set(r,{usage:1,elements:[...this.hosts].map(_=>this.addElement(_,d(r,this.doc)))})}removeUsage(r,s){const d=s.get(r);d&&(d.usage--,d.usage<=0&&(Po(d.elements),s.delete(r)))}ngOnDestroy(){for(const[,{elements:r}]of[...this.inline,...this.external])Po(r);this.hosts.clear()}addHost(r){this.hosts.add(r);for(const[s,{elements:d}]of this.inline)d.push(this.addElement(r,Mu(s,this.doc)));for(const[s,{elements:d}]of this.external)d.push(this.addElement(r,Si(s,this.doc)))}removeHost(r){this.hosts.delete(r)}addElement(r,s){return this.nonce&&s.setAttribute("nonce",this.nonce),this.isServer&&s.setAttribute(Zn,this.appId),r.appendChild(s)}static \u0275fac=function(s){return new(s||i)(u.KVO(Q),u.KVO(u.sZ2),u.KVO(u.BIS,8),u.KVO(u.Agw))};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac})}return i})();const Zt={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Z=/%COMP%/g,Ai=new u.nKC("",{providedIn:"root",factory:()=>!0});function it(i,l){return l.map(r=>r.replace(Z,i))}let pt=(()=>{class i{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(r,s,d,g,_,D,w,T=null){this.eventManager=r,this.sharedStylesHost=s,this.appId=d,this.removeStylesOnCompDestroy=g,this.doc=_,this.platformId=D,this.ngZone=w,this.nonce=T,this.platformIsServer=Ze(D),this.defaultRenderer=new Vs(r,_,w,this.platformIsServer)}createRenderer(r,s){if(!r||!s)return this.defaultRenderer;this.platformIsServer&&s.encapsulation===u.gXe.ShadowDom&&(s={...s,encapsulation:u.gXe.Emulated});const d=this.getOrCreateRenderer(r,s);return d instanceof xh?d.applyToHost(r):d instanceof ml&&d.applyStyles(),d}getOrCreateRenderer(r,s){const d=this.rendererByCompId;let g=d.get(s.id);if(!g){const _=this.doc,D=this.ngZone,w=this.eventManager,T=this.sharedStylesHost,O=this.removeStylesOnCompDestroy,j=this.platformIsServer;switch(s.encapsulation){case u.gXe.Emulated:g=new xh(w,T,s,this.appId,O,_,D,j);break;case u.gXe.ShadowDom:return new Bs(w,T,r,s,_,D,this.nonce,j);default:g=new ml(w,T,s,O,_,D,j)}d.set(s.id,g)}return g}ngOnDestroy(){this.rendererByCompId.clear()}static \u0275fac=function(s){return new(s||i)(u.KVO(no),u.KVO(oo),u.KVO(u.sZ2),u.KVO(Ai),u.KVO(Q),u.KVO(u.Agw),u.KVO(u.SKi),u.KVO(u.BIS))};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac})}return i})();class Vs{eventManager;doc;ngZone;platformIsServer;data=Object.create(null);throwOnSyntheticProps=!0;constructor(l,r,s,d){this.eventManager=l,this.doc=r,this.ngZone=s,this.platformIsServer=d}destroy(){}destroyNode=null;createElement(l,r){return r?this.doc.createElementNS(Zt[r]||r,l):this.doc.createElement(l)}createComment(l){return this.doc.createComment(l)}createText(l){return this.doc.createTextNode(l)}appendChild(l,r){(kn(l)?l.content:l).appendChild(r)}insertBefore(l,r,s){l&&(kn(l)?l.content:l).insertBefore(r,s)}removeChild(l,r){r.remove()}selectRootElement(l,r){let s="string"==typeof l?this.doc.querySelector(l):l;if(!s)throw new u.wOt(-5104,!1);return r||(s.textContent=""),s}parentNode(l){return l.parentNode}nextSibling(l){return l.nextSibling}setAttribute(l,r,s,d){if(d){r=d+":"+r;const g=Zt[d];g?l.setAttributeNS(g,r,s):l.setAttribute(r,s)}else l.setAttribute(r,s)}removeAttribute(l,r,s){if(s){const d=Zt[s];d?l.removeAttributeNS(d,r):l.removeAttribute(`${s}:${r}`)}else l.removeAttribute(r)}addClass(l,r){l.classList.add(r)}removeClass(l,r){l.classList.remove(r)}setStyle(l,r,s,d){d&(u.czy.DashCase|u.czy.Important)?l.style.setProperty(r,s,d&u.czy.Important?"important":""):l.style[r]=s}removeStyle(l,r,s){s&u.czy.DashCase?l.style.removeProperty(r):l.style[r]=""}setProperty(l,r,s){null!=l&&(l[r]=s)}setValue(l,r){l.nodeValue=r}listen(l,r,s){if("string"==typeof l&&!(l=se().getGlobalEventTarget(this.doc,l)))throw new Error(`Unsupported event target ${l} for event ${r}`);return this.eventManager.addEventListener(l,r,this.decoratePreventDefault(s))}decoratePreventDefault(l){return r=>{if("__ngUnwrap__"===r)return l;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>l(r)):l(r))&&r.preventDefault()}}}function kn(i){return"TEMPLATE"===i.tagName&&void 0!==i.content}class Bs extends Vs{sharedStylesHost;hostEl;shadowRoot;constructor(l,r,s,d,g,_,D,w){super(l,g,_,w),this.sharedStylesHost=r,this.hostEl=s,this.shadowRoot=s.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const T=it(d.id,d.styles);for(const j of T){const re=document.createElement("style");D&&re.setAttribute("nonce",D),re.textContent=j,this.shadowRoot.appendChild(re)}const O=d.getExternalStyles?.();if(O)for(const j of O){const re=Si(j,g);D&&re.setAttribute("nonce",D),this.shadowRoot.appendChild(re)}}nodeOrShadowRoot(l){return l===this.hostEl?this.shadowRoot:l}appendChild(l,r){return super.appendChild(this.nodeOrShadowRoot(l),r)}insertBefore(l,r,s){return super.insertBefore(this.nodeOrShadowRoot(l),r,s)}removeChild(l,r){return super.removeChild(null,r)}parentNode(l){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(l)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class ml extends Vs{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(l,r,s,d,g,_,D,w){super(l,g,_,D),this.sharedStylesHost=r,this.removeStylesOnCompDestroy=d,this.styles=w?it(w,s.styles):s.styles,this.styleUrls=s.getExternalStyles?.(w)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}}class xh extends ml{contentAttr;hostAttr;constructor(l,r,s,d,g,_,D,w){const T=d+"-"+s.id;super(l,r,s,g,_,D,w,T),this.contentAttr=function ut(i){return"_ngcontent-%COMP%".replace(Z,i)}(T),this.hostAttr=function gl(i){return"_nghost-%COMP%".replace(Z,i)}(T)}applyToHost(l){this.applyStyles(),this.setAttribute(l,this.hostAttr,"")}createElement(l,r){const s=super.createElement(l,r);return super.setAttribute(s,this.contentAttr,""),s}}let xu=(()=>{class i extends Ro{constructor(r){super(r)}supports(r){return!0}addEventListener(r,s,d){return r.addEventListener(s,d,!1),()=>this.removeEventListener(r,s,d)}removeEventListener(r,s,d){return r.removeEventListener(s,d)}static \u0275fac=function(s){return new(s||i)(u.KVO(Q))};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac})}return i})();const Su=["alt","control","meta","shift"],e_={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},Au={alt:i=>i.altKey,control:i=>i.ctrlKey,meta:i=>i.metaKey,shift:i=>i.shiftKey};let tC=(()=>{class i extends Ro{constructor(r){super(r)}supports(r){return null!=i.parseEventName(r)}addEventListener(r,s,d){const g=i.parseEventName(s),_=i.eventCallback(g.fullKey,d,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>se().onAndCancel(r,g.domEventName,_))}static parseEventName(r){const s=r.toLowerCase().split("."),d=s.shift();if(0===s.length||"keydown"!==d&&"keyup"!==d)return null;const g=i._normalizeKey(s.pop());let _="",D=s.indexOf("code");if(D>-1&&(s.splice(D,1),_="code."),Su.forEach(T=>{const O=s.indexOf(T);O>-1&&(s.splice(O,1),_+=T+".")}),_+=g,0!=s.length||0===g.length)return null;const w={};return w.domEventName=d,w.fullKey=_,w}static matchEventFullKeyCode(r,s){let d=e_[r.key]||r.key,g="";return s.indexOf("code.")>-1&&(d=r.code,g="code."),!(null==d||!d)&&(d=d.toLowerCase()," "===d?d="space":"."===d&&(d="dot"),Su.forEach(_=>{_!==d&&(0,Au[_])(r)&&(g+=_+".")}),g+=d,g===s)}static eventCallback(r,s,d){return g=>{i.matchEventFullKeyCode(g,r)&&d.runGuarded(()=>s(g))}}static _normalizeKey(r){return"esc"===r?"escape":r}static \u0275fac=function(s){return new(s||i)(u.KVO(Q))};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac})}return i})();function t_(i){return{appProviders:[...Sh,...i?.providers??[]],platformProviders:sC}}const sC=[{provide:u.Agw,useValue:qe},{provide:u.PLl,useValue:function rC(){Pe.makeCurrent()},multi:!0},{provide:Q,useFactory:function iC(){return(0,u.TL$)(document),document},deps:[]}],Sh=[{provide:u.H8p,useValue:"root"},{provide:u.zcH,useFactory:function oC(){return new u.zcH},deps:[]},{provide:Qe,useClass:xu,multi:!0,deps:[Q,u.SKi,u.Agw]},{provide:Qe,useClass:tC,multi:!0,deps:[Q]},pt,oo,no,{provide:u._9s,useExisting:pt},{provide:class ur{},useClass:xi,deps:[]},[]];let _l=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:function(s){let d=null;return d=s?new(s||i):u.KVO(Ae),d},providedIn:"root"})}return i})(),Ae=(()=>{class i extends _l{_doc;constructor(r){super(),this._doc=r}sanitize(r,s){if(null==s)return null;switch(r){case u.WPN.NONE:return s;case u.WPN.HTML:return(0,u.ZF7)(s,"HTML")?(0,u.rcV)(s):(0,u.h9k)(this._doc,String(s)).toString();case u.WPN.STYLE:return(0,u.ZF7)(s,"Style")?(0,u.rcV)(s):s;case u.WPN.SCRIPT:if((0,u.ZF7)(s,"Script"))return(0,u.rcV)(s);throw new u.wOt(5200,!1);case u.WPN.URL:return(0,u.ZF7)(s,"URL")?(0,u.rcV)(s):(0,u.$MX)(String(s));case u.WPN.RESOURCE_URL:if((0,u.ZF7)(s,"ResourceURL"))return(0,u.rcV)(s);throw new u.wOt(5201,!1);default:throw new u.wOt(5202,!1)}}bypassSecurityTrustHtml(r){return(0,u.Kcf)(r)}bypassSecurityTrustStyle(r){return(0,u.cWb)(r)}bypassSecurityTrustScript(r){return(0,u.UyX)(r)}bypassSecurityTrustUrl(r){return(0,u.osQ)(r)}bypassSecurityTrustResourceUrl(r){return(0,u.e5t)(r)}static \u0275fac=function(s){return new(s||i)(u.KVO(Q))};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Oh=(()=>{class i{doc;delegate;zone;animationType;moduleImpl;_rendererFactoryPromise=null;scheduler=(0,u.WQX)(u.An2,{optional:!0});loadingSchedulerFn=(0,u.WQX)(Rh,{optional:!0});_engine;constructor(r,s,d,g,_){this.doc=r,this.delegate=s,this.zone=d,this.animationType=g,this.moduleImpl=_}ngOnDestroy(){this._engine?.flush()}loadImpl(){const r=()=>this.moduleImpl??x.e(8).then(x.bind(x,8)).then(d=>d);let s;return s=this.loadingSchedulerFn?this.loadingSchedulerFn(r):r(),s.catch(d=>{throw new u.wOt(5300,!1)}).then(({\u0275createEngine:d,\u0275AnimationRendererFactory:g})=>{this._engine=d(this.animationType,this.doc);const _=new g(this.delegate,this._engine,this.zone);return this.delegate=_,_})}createRenderer(r,s){const d=this.delegate.createRenderer(r,s);if(0===d.\u0275type)return d;"boolean"==typeof d.throwOnSyntheticProps&&(d.throwOnSyntheticProps=!1);const g=new Fu(d);return s?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(_=>{const D=_.createRenderer(r,s);g.use(D),this.scheduler?.notify(11)}).catch(_=>{g.use(d)}),g}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}static \u0275fac=function(s){u.QTQ()};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac})}return i})();class Fu{delegate;replay=[];\u0275type=1;constructor(l){this.delegate=l}use(l){if(this.delegate=l,null!==this.replay){for(const r of this.replay)r(l);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(l,r){return this.delegate.createElement(l,r)}createComment(l){return this.delegate.createComment(l)}createText(l){return this.delegate.createText(l)}get destroyNode(){return this.delegate.destroyNode}appendChild(l,r){this.delegate.appendChild(l,r)}insertBefore(l,r,s,d){this.delegate.insertBefore(l,r,s,d)}removeChild(l,r,s){this.delegate.removeChild(l,r,s)}selectRootElement(l,r){return this.delegate.selectRootElement(l,r)}parentNode(l){return this.delegate.parentNode(l)}nextSibling(l){return this.delegate.nextSibling(l)}setAttribute(l,r,s,d){this.delegate.setAttribute(l,r,s,d)}removeAttribute(l,r,s){this.delegate.removeAttribute(l,r,s)}addClass(l,r){this.delegate.addClass(l,r)}removeClass(l,r){this.delegate.removeClass(l,r)}setStyle(l,r,s,d){this.delegate.setStyle(l,r,s,d)}removeStyle(l,r,s){this.delegate.removeStyle(l,r,s)}setProperty(l,r,s){this.shouldReplay(r)&&this.replay.push(d=>d.setProperty(l,r,s)),this.delegate.setProperty(l,r,s)}setValue(l,r){this.delegate.setValue(l,r)}listen(l,r,s){return this.shouldReplay(r)&&this.replay.push(d=>d.listen(l,r,s)),this.delegate.listen(l,r,s)}shouldReplay(l){return null!==this.replay&&l.startsWith("@")}}const Rh=new u.nKC(""),ku={providers:[(0,u.Jn2)({eventCoalescing:!0}),function yl(i="animations"){return(0,u.ngT)("NgAsyncAnimations"),(0,u.EmA)([{provide:u._9s,useFactory:(l,r,s)=>new Oh(l,r,s,i),deps:[Q,pt,u.SKi]},{provide:u.bc$,useValue:"noop"===i?"NoopAnimations":"BrowserAnimations"}])}()]};function ne(i){return this instanceof ne?(this.v=i,this):new ne(i)}function we(i){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,l=i[Symbol.asyncIterator];return l?l.call(i):(i=function Pu(i){var l="function"==typeof Symbol&&Symbol.iterator,r=l&&i[l],s=0;if(r)return r.call(i);if(i&&"number"==typeof i.length)return{next:function(){return i&&s>=i.length&&(i=void 0),{value:i&&i[s++],done:!i}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")}(i),r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r);function s(g){r[g]=i[g]&&function(_){return new Promise(function(D,w){!function d(g,_,D,w){Promise.resolve(w).then(function(T){g({value:T,done:D})},_)}(D,w,(_=i[g](_)).done,_.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Cl=i=>i&&"number"==typeof i.length&&"function"!=typeof i;var je=x(71);function gr(i){return(0,je.T)(i?.then)}var vt=x(226),ju=x(494);function Gh(i){return(0,je.T)(i[ju.s])}function zh(i){return Symbol.asyncIterator&&(0,je.T)(i?.[Symbol.asyncIterator])}function El(i){return new TypeError(`You provided ${null!==i&&"object"==typeof i?"an invalid object":`'${i}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const wl=function Hu(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function $s(i){return(0,je.T)(i?.[wl])}function Wh(i){return function Lu(i,l,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var d,s=r.apply(i,l||[]),g=[];return d=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),D("next"),D("throw"),D("return",function _(W){return function(_e){return Promise.resolve(_e).then(W,j)}}),d[Symbol.asyncIterator]=function(){return this},d;function D(W,_e){s[W]&&(d[W]=function(De){return new Promise(function(Le,Ve){g.push([W,De,Le,Ve])>1||w(W,De)})},_e&&(d[W]=_e(d[W])))}function w(W,_e){try{!function T(W){W.value instanceof ne?Promise.resolve(W.value.v).then(O,j):re(g[0][2],W)}(s[W](_e))}catch(De){re(g[0][3],De)}}function O(W){w("next",W)}function j(W){w("throw",W)}function re(W,_e){W(_e),g.shift(),g.length&&w(g[0][0],g[0][1])}}(this,arguments,function*(){const r=i.getReader();try{for(;;){const{value:s,done:d}=yield ne(r.read());if(d)return yield ne(void 0);yield yield ne(s)}}finally{r.releaseLock()}})}function Uu(i){return(0,je.T)(i?.getReader)}var $u=x(334);function un(i){if(i instanceof vt.c)return i;if(null!=i){if(Gh(i))return function qh(i){return new vt.c(l=>{const r=i[ju.s]();if((0,je.T)(r.subscribe))return r.subscribe(l);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(i);if(Cl(i))return function Kh(i){return new vt.c(l=>{for(let r=0;r{i.then(r=>{l.closed||(l.next(r),l.complete())},r=>l.error(r)).then(null,$u.m)})}(i);if(zh(i))return Qh(i);if($s(i))return function Gu(i){return new vt.c(l=>{for(const r of i)if(l.next(r),l.closed)return;l.complete()})}(i);if(Uu(i))return function Ot(i){return Qh(Wh(i))}(i)}throw El(i)}function Qh(i){return new vt.c(l=>{(function Vo(i,l){var r,s,d,g;return function Ph(i,l,r,s){return new(r||(r=Promise))(function(g,_){function D(O){try{T(s.next(O))}catch(j){_(j)}}function w(O){try{T(s.throw(O))}catch(j){_(j)}}function T(O){O.done?g(O.value):function d(g){return g instanceof r?g:new r(function(_){_(g)})}(O.value).then(D,w)}T((s=s.apply(i,l||[])).next())})}(this,void 0,void 0,function*(){try{for(r=we(i);!(s=yield r.next()).done;)if(l.next(s.value),l.closed)return}catch(_){d={error:_}}finally{try{s&&!s.done&&(g=r.return)&&(yield g.call(r))}finally{if(d)throw d.error}}l.complete()})})(i,l).catch(r=>l.error(r))})}function Me(i,l,r,s=0,d=!1){const g=l.schedule(function(){r(),d?i.add(this.schedule(null,s)):this.unsubscribe()},s);if(i.add(g),!d)return g}var bn=x(974),dn=x(360);function Xh(i,l=0){return(0,bn.N)((r,s)=>{r.subscribe((0,dn._)(s,d=>Me(s,i,()=>s.next(d),l),()=>Me(s,i,()=>s.complete(),l),d=>Me(s,i,()=>s.error(d),l)))})}function Yh(i,l=0){return(0,bn.N)((r,s)=>{s.add(i.schedule(()=>r.subscribe(s),l))})}function tp(i,l){if(!i)throw new Error("Iterable cannot be null");return new vt.c(r=>{Me(r,l,()=>{const s=i[Symbol.asyncIterator]();Me(r,l,()=>{s.next().then(d=>{d.done?r.complete():r.next(d.value)})},0,!0)})})}function Dn(i,l){return l?function Ml(i,l){if(null!=i){if(Gh(i))return function Jh(i,l){return un(i).pipe(Yh(l),Xh(l))}(i,l);if(Cl(i))return function Gs(i,l){return new vt.c(r=>{let s=0;return l.schedule(function(){s===i.length?r.complete():(r.next(i[s++]),r.closed||this.schedule())})})}(i,l);if(gr(i))return function ep(i,l){return un(i).pipe(Yh(l),Xh(l))}(i,l);if(zh(i))return tp(i,l);if($s(i))return function mr(i,l){return new vt.c(r=>{let s;return Me(r,l,()=>{s=i[wl](),Me(r,l,()=>{let d,g;try{({value:d,done:g}=s.next())}catch(_){return void r.error(_)}g?r.complete():r.next(d)},0,!0)}),()=>(0,je.T)(s?.return)&&s.return()})}(i,l);if(Uu(i))return function Il(i,l){return tp(Wh(i),l)}(i,l)}throw El(i)}(i,l):un(i)}const{isArray:zu}=Array,{getPrototypeOf:np,prototype:rp,keys:h_}=Object;function Bo(i){if(1===i.length){const l=i[0];if(zu(l))return{args:l,keys:null};if(function zs(i){return i&&"object"==typeof i&&np(i)===rp}(l)){const r=h_(l);return{args:r.map(s=>l[s]),keys:r}}}return{args:i,keys:null}}function op(i){return i&&(0,je.T)(i.schedule)}function Ws(i){return i[i.length-1]}function Tl(i){return(0,je.T)(Ws(i))?i.pop():void 0}function qs(i){return op(Ws(i))?i.pop():void 0}var Cn=x(354);const{isArray:yC}=Array;function Ks(i){return(0,Cn.T)(l=>function vC(i,l){return yC(l)?i(...l):i(l)}(i,l))}function Wu(i,l){return i.reduce((r,s,d)=>(r[s]=l[d],r),{})}var We=x(413);let qu=(()=>{class i{_renderer;_elementRef;onChange=r=>{};onTouched=()=>{};constructor(r,s){this._renderer=r,this._elementRef=s}setProperty(r,s){this._renderer.setProperty(this._elementRef.nativeElement,r,s)}registerOnTouched(r){this.onTouched=r}registerOnChange(r){this.onChange=r}setDisabledState(r){this.setProperty("disabled",r)}static \u0275fac=function(s){return new(s||i)(u.rXU(u.sFG),u.rXU(u.aKT))};static \u0275dir=u.FsC({type:i})}return i})(),kr=(()=>{class i extends qu{static \u0275fac=(()=>{let r;return function(d){return(r||(r=u.xGo(i)))(d||i)}})();static \u0275dir=u.FsC({type:i,features:[u.Vt3]})}return i})();const Rt=new u.nKC(""),g_={provide:Rt,useExisting:(0,u.Rfq)(()=>Qs),multi:!0},m_=new u.nKC("");let Qs=(()=>{class i extends qu{_compositionMode;_composing=!1;constructor(r,s,d){super(r,s),this._compositionMode=d,null==this._compositionMode&&(this._compositionMode=!function Zs(){const i=se()?se().getUserAgent():"";return/android (\d+)/.test(i.toLowerCase())}())}writeValue(r){this.setProperty("value",r??"")}_handleInput(r){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(r)}_compositionStart(){this._composing=!0}_compositionEnd(r){this._composing=!1,this._compositionMode&&this.onChange(r)}static \u0275fac=function(s){return new(s||i)(u.rXU(u.sFG),u.rXU(u.aKT),u.rXU(m_,8))};static \u0275dir=u.FsC({type:i,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(s,d){1&s&&u.bIt("input",function(_){return d._handleInput(_.target.value)})("blur",function(){return d.onTouched()})("compositionstart",function(){return d._compositionStart()})("compositionend",function(_){return d._compositionEnd(_.target.value)})},standalone:!1,features:[u.Jv_([g_]),u.Vt3]})}return i})();const Pt=new u.nKC(""),Or=new u.nKC("");function Xu(i){return null!=i}function Yu(i){return(0,u.jNT)(i)?Dn(i):i}function lp(i){let l={};return i.forEach(r=>{l=null!=r?{...l,...r}:l}),0===Object.keys(l).length?null:l}function ea(i,l){return l.map(r=>r(i))}function cp(i){return i.map(l=>function jo(i){return!i.validate}(l)?l:r=>l.validate(r))}function Al(i){return null!=i?function Ju(i){if(!i)return null;const l=i.filter(Xu);return 0==l.length?null:function(r){return lp(ea(r,l))}}(cp(i)):null}function ao(i){return null!=i?function Ho(i){if(!i)return null;const l=i.filter(Xu);return 0==l.length?null:function(r){return function ip(...i){const l=Tl(i),{args:r,keys:s}=Bo(i),d=new vt.c(g=>{const{length:_}=r;if(!_)return void g.complete();const D=new Array(_);let w=_,T=_;for(let O=0;O<_;O++){let j=!1;un(r[O]).subscribe((0,dn._)(g,re=>{j||(j=!0,T--),D[O]=re},()=>w--,void 0,()=>{(!w||!j)&&(T||g.next(s?Wu(s,D):D),g.complete())}))}});return l?d.pipe(Ks(l)):d}(ea(r,l).map(Yu)).pipe((0,Cn.T)(lp))}}(cp(i)):null}function bt(i,l){return null===i?[l]:Array.isArray(i)?[...i,l]:[i,l]}function up(i){return i._rawValidators}function ed(i){return i._rawAsyncValidators}function ta(i){return i?Array.isArray(i)?i:[i]:[]}function Nl(i,l){return Array.isArray(i)?i.includes(l):i===l}function td(i,l){const r=ta(l);return ta(i).forEach(d=>{Nl(r,d)||r.push(d)}),r}function na(i,l){return ta(l).filter(r=>!Nl(i,r))}class dp{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(l){this._rawValidators=l||[],this._composedValidatorFn=Al(this._rawValidators)}_setAsyncValidators(l){this._rawAsyncValidators=l||[],this._composedAsyncValidatorFn=ao(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(l){this._onDestroyCallbacks.push(l)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(l=>l()),this._onDestroyCallbacks=[]}reset(l=void 0){this.control&&this.control.reset(l)}hasError(l,r){return!!this.control&&this.control.hasError(l,r)}getError(l,r){return this.control?this.control.getError(l,r):null}}class $t extends dp{name;get formDirective(){return null}get path(){return null}}class _r extends dp{_parent=null;name=null;valueAccessor=null}class ra{_cd;constructor(l){this._cd=l}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let Uo=(()=>{class i extends ra{constructor(r){super(r)}static \u0275fac=function(s){return new(s||i)(u.rXU(_r,2))};static \u0275dir=u.FsC({type:i,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(s,d){2&s&&u.AVh("ng-untouched",d.isUntouched)("ng-touched",d.isTouched)("ng-pristine",d.isPristine)("ng-dirty",d.isDirty)("ng-valid",d.isValid)("ng-invalid",d.isInvalid)("ng-pending",d.isPending)},standalone:!1,features:[u.Vt3]})}return i})();const Rl="VALID",oa="INVALID",co="PENDING",Yn="DISABLED";class ki{}class pp extends ki{value;source;constructor(l,r){super(),this.value=l,this.source=r}}class Jn extends ki{pristine;source;constructor(l,r){super(),this.pristine=l,this.source=r}}class $o extends ki{touched;source;constructor(l,r){super(),this.touched=l,this.source=r}}class ia extends ki{status;source;constructor(l,r){super(),this.status=l,this.source=r}}function Ll(i){return null!=i&&!Array.isArray(i)&&"object"==typeof i}class id{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(l,r){this._assignValidators(l),this._assignAsyncValidators(r)}get validator(){return this._composedValidatorFn}set validator(l){this._rawValidators=this._composedValidatorFn=l}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(l){this._rawAsyncValidators=this._composedAsyncValidatorFn=l}get parent(){return this._parent}get status(){return(0,u.O8t)(this.statusReactive)}set status(l){(0,u.O8t)(()=>this.statusReactive.set(l))}_status=(0,u.EWP)(()=>this.statusReactive());statusReactive=(0,u.vPA)(void 0);get valid(){return this.status===Rl}get invalid(){return this.status===oa}get pending(){return this.status==co}get disabled(){return this.status===Yn}get enabled(){return this.status!==Yn}errors;get pristine(){return(0,u.O8t)(this.pristineReactive)}set pristine(l){(0,u.O8t)(()=>this.pristineReactive.set(l))}_pristine=(0,u.EWP)(()=>this.pristineReactive());pristineReactive=(0,u.vPA)(!0);get dirty(){return!this.pristine}get touched(){return(0,u.O8t)(this.touchedReactive)}set touched(l){(0,u.O8t)(()=>this.touchedReactive.set(l))}_touched=(0,u.EWP)(()=>this.touchedReactive());touchedReactive=(0,u.vPA)(!1);get untouched(){return!this.touched}_events=new We.B;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(l){this._assignValidators(l)}setAsyncValidators(l){this._assignAsyncValidators(l)}addValidators(l){this.setValidators(td(l,this._rawValidators))}addAsyncValidators(l){this.setAsyncValidators(td(l,this._rawAsyncValidators))}removeValidators(l){this.setValidators(na(l,this._rawValidators))}removeAsyncValidators(l){this.setAsyncValidators(na(l,this._rawAsyncValidators))}hasValidator(l){return Nl(this._rawValidators,l)}hasAsyncValidator(l){return Nl(this._rawAsyncValidators,l)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(l={}){const r=!1===this.touched;this.touched=!0;const s=l.sourceControl??this;this._parent&&!l.onlySelf&&this._parent.markAsTouched({...l,sourceControl:s}),r&&!1!==l.emitEvent&&this._events.next(new $o(!0,s))}markAllAsTouched(l={}){this.markAsTouched({onlySelf:!0,emitEvent:l.emitEvent,sourceControl:this}),this._forEachChild(r=>r.markAllAsTouched(l))}markAsUntouched(l={}){const r=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const s=l.sourceControl??this;this._forEachChild(d=>{d.markAsUntouched({onlySelf:!0,emitEvent:l.emitEvent,sourceControl:s})}),this._parent&&!l.onlySelf&&this._parent._updateTouched(l,s),r&&!1!==l.emitEvent&&this._events.next(new $o(!1,s))}markAsDirty(l={}){const r=!0===this.pristine;this.pristine=!1;const s=l.sourceControl??this;this._parent&&!l.onlySelf&&this._parent.markAsDirty({...l,sourceControl:s}),r&&!1!==l.emitEvent&&this._events.next(new Jn(!1,s))}markAsPristine(l={}){const r=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const s=l.sourceControl??this;this._forEachChild(d=>{d.markAsPristine({onlySelf:!0,emitEvent:l.emitEvent})}),this._parent&&!l.onlySelf&&this._parent._updatePristine(l,s),r&&!1!==l.emitEvent&&this._events.next(new Jn(!0,s))}markAsPending(l={}){this.status=co;const r=l.sourceControl??this;!1!==l.emitEvent&&(this._events.next(new ia(this.status,r)),this.statusChanges.emit(this.status)),this._parent&&!l.onlySelf&&this._parent.markAsPending({...l,sourceControl:r})}disable(l={}){const r=this._parentMarkedDirty(l.onlySelf);this.status=Yn,this.errors=null,this._forEachChild(d=>{d.disable({...l,onlySelf:!0})}),this._updateValue();const s=l.sourceControl??this;!1!==l.emitEvent&&(this._events.next(new pp(this.value,s)),this._events.next(new ia(this.status,s)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...l,skipPristineCheck:r},this),this._onDisabledChange.forEach(d=>d(!0))}enable(l={}){const r=this._parentMarkedDirty(l.onlySelf);this.status=Rl,this._forEachChild(s=>{s.enable({...l,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:l.emitEvent}),this._updateAncestors({...l,skipPristineCheck:r},this),this._onDisabledChange.forEach(s=>s(!1))}_updateAncestors(l,r){this._parent&&!l.onlySelf&&(this._parent.updateValueAndValidity(l),l.skipPristineCheck||this._parent._updatePristine({},r),this._parent._updateTouched({},r))}setParent(l){this._parent=l}getRawValue(){return this.value}updateValueAndValidity(l={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const s=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Rl||this.status===co)&&this._runAsyncValidator(s,l.emitEvent)}const r=l.sourceControl??this;!1!==l.emitEvent&&(this._events.next(new pp(this.value,r)),this._events.next(new ia(this.status,r)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!l.onlySelf&&this._parent.updateValueAndValidity({...l,sourceControl:r})}_updateTreeValidity(l={emitEvent:!0}){this._forEachChild(r=>r._updateTreeValidity(l)),this.updateValueAndValidity({onlySelf:!0,emitEvent:l.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Yn:Rl}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(l,r){if(this.asyncValidator){this.status=co,this._hasOwnPendingAsyncValidator={emitEvent:!1!==r};const s=Yu(this.asyncValidator(this));this._asyncValidationSubscription=s.subscribe(d=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(d,{emitEvent:r,shouldHaveEmitted:l})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const l=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,l}return!1}setErrors(l,r={}){this.errors=l,this._updateControlsErrors(!1!==r.emitEvent,this,r.shouldHaveEmitted)}get(l){let r=l;return null==r||(Array.isArray(r)||(r=r.split(".")),0===r.length)?null:r.reduce((s,d)=>s&&s._find(d),this)}getError(l,r){const s=r?this.get(r):this;return s&&s.errors?s.errors[l]:null}hasError(l,r){return!!this.getError(l,r)}get root(){let l=this;for(;l._parent;)l=l._parent;return l}_updateControlsErrors(l,r,s){this.status=this._calculateStatus(),l&&this.statusChanges.emit(this.status),(l||s)&&this._events.next(new ia(this.status,r)),this._parent&&this._parent._updateControlsErrors(l,r,s)}_initObservables(){this.valueChanges=new u.bkB,this.statusChanges=new u.bkB}_calculateStatus(){return this._allControlsDisabled()?Yn:this.errors?oa:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(co)?co:this._anyControlsHaveStatus(oa)?oa:Rl}_anyControlsHaveStatus(l){return this._anyControls(r=>r.status===l)}_anyControlsDirty(){return this._anyControls(l=>l.dirty)}_anyControlsTouched(){return this._anyControls(l=>l.touched)}_updatePristine(l,r){const s=!this._anyControlsDirty(),d=this.pristine!==s;this.pristine=s,this._parent&&!l.onlySelf&&this._parent._updatePristine(l,r),d&&this._events.next(new Jn(this.pristine,r))}_updateTouched(l={},r){this.touched=this._anyControlsTouched(),this._events.next(new $o(this.touched,r)),this._parent&&!l.onlySelf&&this._parent._updateTouched(l,r)}_onDisabledChange=[];_registerOnCollectionChange(l){this._onCollectionChange=l}_setUpdateStrategy(l){Ll(l)&&null!=l.updateOn&&(this._updateOn=l.updateOn)}_parentMarkedDirty(l){return!l&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(l){return null}_assignValidators(l){this._rawValidators=Array.isArray(l)?l.slice():l,this._composedValidatorFn=function Pl(i){return Array.isArray(i)?Al(i):i||null}(this._rawValidators)}_assignAsyncValidators(l){this._rawAsyncValidators=Array.isArray(l)?l.slice():l,this._composedAsyncValidatorFn=function tt(i){return Array.isArray(i)?ao(i):i||null}(this._rawAsyncValidators)}}const uo=new u.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>la}),la="always";function ca(i,l,r=la){(function yp(i,l){const r=up(i);null!==l.validator?i.setValidators(bt(r,l.validator)):"function"==typeof r&&i.setValidators([r]);const s=ed(i);null!==l.asyncValidator?i.setAsyncValidators(bt(s,l.asyncValidator)):"function"==typeof s&&i.setAsyncValidators([s]);const d=()=>i.updateValueAndValidity();sd(l._rawValidators,d),sd(l._rawAsyncValidators,d)})(i,l),l.valueAccessor.writeValue(i.value),(i.disabled||"always"===r)&&l.valueAccessor.setDisabledState?.(i.disabled),function MC(i,l){l.valueAccessor.registerOnChange(r=>{i._pendingValue=r,i._pendingChange=!0,i._pendingDirty=!0,"change"===i.updateOn&&Go(i,l)})}(i,l),function da(i,l){const r=(s,d)=>{l.valueAccessor.writeValue(s),d&&l.viewToModelUpdate(s)};i.registerOnChange(r),l._registerOnDestroy(()=>{i._unregisterOnChange(r)})}(i,l),function T_(i,l){l.valueAccessor.registerOnTouched(()=>{i._pendingTouched=!0,"blur"===i.updateOn&&i._pendingChange&&Go(i,l),"submit"!==i.updateOn&&i.markAsTouched()})}(i,l),function IC(i,l){if(l.valueAccessor.setDisabledState){const r=s=>{l.valueAccessor.setDisabledState(s)};i.registerOnDisabledChange(r),l._registerOnDestroy(()=>{i._unregisterOnDisabledChange(r)})}}(i,l)}function ua(i,l,r=!0){const s=()=>{};l.valueAccessor&&(l.valueAccessor.registerOnChange(s),l.valueAccessor.registerOnTouched(s)),function ad(i,l){let r=!1;if(null!==i){if(null!==l.validator){const d=up(i);if(Array.isArray(d)&&d.length>0){const g=d.filter(_=>_!==l.validator);g.length!==d.length&&(r=!0,i.setValidators(g))}}if(null!==l.asyncValidator){const d=ed(i);if(Array.isArray(d)&&d.length>0){const g=d.filter(_=>_!==l.asyncValidator);g.length!==d.length&&(r=!0,i.setAsyncValidators(g))}}}const s=()=>{};return sd(l._rawValidators,s),sd(l._rawAsyncValidators,s),r}(i,l),i&&(l._invokeOnDestroyCallbacks(),i._registerOnCollectionChange(()=>{}))}function sd(i,l){i.forEach(r=>{r.registerOnValidatorChange&&r.registerOnValidatorChange(l)})}function Go(i,l){i._pendingDirty&&i.markAsDirty(),i.setValue(i._pendingValue,{emitModelToViewChange:!1}),l.viewToModelUpdate(i._pendingValue),i._pendingChange=!1}function zo(i,l){if(!i.hasOwnProperty("model"))return!1;const r=i.model;return!!r.isFirstChange()||!Object.is(l,r.currentValue)}function Oi(i,l){if(!l)return null;let r,s,d;return Array.isArray(l),l.forEach(g=>{g.constructor===Qs?r=g:function ha(i){return Object.getPrototypeOf(i.constructor)===kr}(g)?s=g:d=g}),d||s||r||null}function Hl(i,l){const r=i.indexOf(l);r>-1&&i.splice(r,1)}function bp(i){return"object"==typeof i&&null!==i&&2===Object.keys(i).length&&"value"in i&&"disabled"in i}Promise.resolve();const dd=class extends id{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(l=null,r,s){super(function sa(i){return(Ll(i)?i.validators:i)||null}(r),function od(i,l){return(Ll(l)?l.asyncValidators:i)||null}(s,r)),this._applyFormState(l),this._setUpdateStrategy(r),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Ll(r)&&(r.nonNullable||r.initialValueIsDefault)&&(this.defaultValue=bp(l)?l.value:l)}setValue(l,r={}){this.value=this._pendingValue=l,this._onChange.length&&!1!==r.emitModelToViewChange&&this._onChange.forEach(s=>s(this.value,!1!==r.emitViewToModelChange)),this.updateValueAndValidity(r)}patchValue(l,r={}){this.setValue(l,r)}reset(l=this.defaultValue,r={}){this._applyFormState(l),this.markAsPristine(r),this.markAsUntouched(r),this.setValue(this.value,r),this._pendingChange=!1}_updateValue(){}_anyControls(l){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(l){this._onChange.push(l)}_unregisterOnChange(l){Hl(this._onChange,l)}registerOnDisabledChange(l){this._onDisabledChange.push(l)}_unregisterOnDisabledChange(l){Hl(this._onDisabledChange,l)}_forEachChild(l){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(l){bp(l)?(this.value=this._pendingValue=l.value,l.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=l}},Gt=dd,Dp={provide:_r,useExisting:(0,u.Rfq)(()=>Wo)},Cp=Promise.resolve();let Wo=(()=>{class i extends _r{_changeDetectorRef;callSetDisabledState;control=new dd;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new u.bkB;constructor(r,s,d,g,_,D){super(),this._changeDetectorRef=_,this.callSetDisabledState=D,this._parent=r,this._setValidators(s),this._setAsyncValidators(d),this.valueAccessor=Oi(0,g)}ngOnChanges(r){if(this._checkForErrors(),!this._registered||"name"in r){if(this._registered&&(this._checkName(),this.formDirective)){const s=r.name.previousValue;this.formDirective.removeControl({name:s,path:this._getPath(s)})}this._setUpControl()}"isDisabled"in r&&this._updateDisabled(r),zo(r,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(r){this.viewModel=r,this.update.emit(r)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){ca(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(r){Cp.then(()=>{this.control.setValue(r,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(r){const s=r.isDisabled.currentValue,d=0!==s&&(0,u.L39)(s);Cp.then(()=>{d&&!this.control.disabled?this.control.disable():!d&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(r){return this._parent?function Pn(i,l){return[...l.path,i]}(r,this._parent):[r]}static \u0275fac=function(s){return new(s||i)(u.rXU($t,9),u.rXU(Pt,10),u.rXU(Or,10),u.rXU(Rt,10),u.rXU(u.gRc,8),u.rXU(uo,8))};static \u0275dir=u.FsC({type:i,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[u.Jv_([Dp]),u.Vt3,u.OA$]})}return i})();const $l=new u.nKC(""),Tp={provide:_r,useExisting:(0,u.Rfq)(()=>qo)};let qo=(()=>{class i extends _r{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(r){}model;update=new u.bkB;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(r,s,d,g,_){super(),this._ngModelWarningConfig=g,this.callSetDisabledState=_,this._setValidators(r),this._setAsyncValidators(s),this.valueAccessor=Oi(0,d)}ngOnChanges(r){if(this._isControlChanged(r)){const s=r.form.previousValue;s&&ua(s,this,!1),ca(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}zo(r,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&ua(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(r){this.viewModel=r,this.update.emit(r)}_isControlChanged(r){return r.hasOwnProperty("form")}static \u0275fac=function(s){return new(s||i)(u.rXU(Pt,10),u.rXU(Or,10),u.rXU(Rt,10),u.rXU($l,8),u.rXU(uo,8))};static \u0275dir=u.FsC({type:i,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[u.Jv_([Tp]),u.Vt3,u.OA$]})}return i})(),Pi=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({})}return i})(),va=(()=>{class i{static withConfig(r){return{ngModule:i,providers:[{provide:uo,useValue:r.callSetDisabledState??la}]}}static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({imports:[Pi]})}return i})(),Td=(()=>{class i{static withConfig(r){return{ngModule:i,providers:[{provide:$l,useValue:r.warnOnNgModelWithFormControl??"always"},{provide:uo,useValue:r.callSetDisabledState??la}]}}static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({imports:[Pi]})}return i})();var fo=x(412),Li=x(669);function Vi(...i){const l=qs(i),r=Tl(i),{args:s,keys:d}=Bo(i);if(0===s.length)return Dn([],l);const g=new vt.c(function xd(i,l,r=Li.D){return s=>{Sd(l,()=>{const{length:d}=i,g=new Array(d);let _=d,D=d;for(let w=0;w{const T=Dn(i[w],l);let O=!1;T.subscribe((0,dn._)(s,j=>{g[w]=j,O||(O=!0,D--),D||s.next(r(g.slice()))},()=>{--_||s.complete()}))},s)},s)}}(s,l,d?_=>Wu(d,_):Li.D));return r?g.pipe(Ks(r)):g}function Sd(i,l,r){i?Me(r,i,l):l()}function Bi(i,l,r=1/0){return(0,je.T)(l)?Bi((s,d)=>(0,Cn.T)((g,_)=>l(s,g,d,_))(un(i(s,d))),r):("number"==typeof l&&(r=l),(0,bn.N)((s,d)=>function Mt(i,l,r,s,d,g,_,D){const w=[];let T=0,O=0,j=!1;const re=()=>{j&&!w.length&&!T&&l.complete()},W=De=>T{g&&l.next(De),T++;let Le=!1;un(r(De,O++)).subscribe((0,dn._)(l,Ve=>{d?.(Ve),g?W(Ve):l.next(Ve)},()=>{Le=!0},void 0,()=>{if(Le)try{for(T--;w.length&&T_e(Ve)):_e(Ve)}re()}catch(Ve){l.error(Ve)}}))};return i.subscribe((0,dn._)(l,W,()=>{j=!0,re()})),()=>{D?.()}}(s,d,i,r)))}function Xo(i=1/0){return Bi(Li.D,i)}var ji=x(983);function ba(...i){const l=qs(i),r=function p_(i,l){return"number"==typeof Ws(i)?i.pop():l}(i,1/0),s=i;return s.length?1===s.length?un(s[0]):Xo(r)(Dn(s,l)):ji.w}function Vr(...i){return Dn(i,qs(i))}var Lp=x(343);function Vn(i){return(0,bn.N)((l,r)=>{un(i).subscribe((0,dn._)(r,()=>r.complete(),Lp.l)),!r.closed&&l.subscribe(r)})}function Hi(i,l=Li.D){return i=i??G_,(0,bn.N)((r,s)=>{let d,g=!0;r.subscribe((0,dn._)(s,_=>{const D=l(_);(g||!i(d,D))&&(g=!1,d=D,s.next(_))}))})}function G_(i,l){return i===l}var Ad=x(707);function z_(i={}){const{connector:l=()=>new We.B,resetOnError:r=!0,resetOnComplete:s=!0,resetOnRefCountZero:d=!0}=i;return g=>{let _,D,w,T=0,O=!1,j=!1;const re=()=>{D?.unsubscribe(),D=void 0},W=()=>{re(),_=w=void 0,O=j=!1},_e=()=>{const De=_;W(),De?.unsubscribe()};return(0,bn.N)((De,Le)=>{T++,!j&&!O&&re();const Ve=w=w??l();Le.add(()=>{T--,0===T&&!j&&!O&&(D=st(_e,d))}),Ve.subscribe(Le),!_&&T>0&&(_=new Ad.Ms({next:Ft=>Ve.next(Ft),error:Ft=>{j=!0,re(),D=st(W,r,Ft),Ve.error(Ft)},complete:()=>{O=!0,re(),D=st(W,s),Ve.complete()}}),un(De).subscribe(_))})(g)}}function st(i,l,...r){if(!0===l)return void i();if(!1===l)return;const s=new Ad.Ms({next:()=>{s.unsubscribe(),i()}});return un(l(...r)).subscribe(s)}const nt=(i,l)=>(i.push(l),i);function Ui(){return(0,bn.N)((i,l)=>{(function W_(i,l){return(0,bn.N)(function Vp(i,l,r,s,d){return(g,_)=>{let D=r,w=l,T=0;g.subscribe((0,dn._)(_,O=>{const j=T++;w=D?i(w,O,j):(D=!0,O),s&&_.next(w)},d&&(()=>{D&&_.next(w),_.complete()})))}}(i,l,arguments.length>=2,!1,!0))})(nt,[])(i).subscribe(l)})}var fn=x(359);class Yo extends fn.yU{constructor(l,r){super()}schedule(l,r=0){return this}}const ho={setInterval(i,l,...r){const{delegate:s}=ho;return s?.setInterval?s.setInterval(i,l,...r):setInterval(i,l,...r)},clearInterval(i){const{delegate:l}=ho;return(l?.clearInterval||clearInterval)(i)},delegate:void 0};var Ql=x(908);class Nd extends Yo{constructor(l,r){super(l,r),this.scheduler=l,this.work=r,this.pending=!1}schedule(l,r=0){var s;if(this.closed)return this;this.state=l;const d=this.id,g=this.scheduler;return null!=d&&(this.id=this.recycleAsyncId(g,d,r)),this.pending=!0,this.delay=r,this.id=null!==(s=this.id)&&void 0!==s?s:this.requestAsyncId(g,this.id,r),this}requestAsyncId(l,r,s=0){return ho.setInterval(l.flush.bind(l,this),s)}recycleAsyncId(l,r,s=0){if(null!=s&&this.delay===s&&!1===this.pending)return r;null!=r&&ho.clearInterval(r)}execute(l,r){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const s=this._execute(l,r);if(s)return s;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(l,r){let d,s=!1;try{this.work(l)}catch(g){s=!0,d=g||new Error("Scheduled action threw falsy error")}if(s)return this.unsubscribe(),d}unsubscribe(){if(!this.closed){const{id:l,scheduler:r}=this,{actions:s}=r;this.work=this.state=this.scheduler=null,this.pending=!1,(0,Ql.o)(s,this),null!=l&&(this.id=this.recycleAsyncId(r,l,null)),this.delay=null,super.unsubscribe()}}}const Fd={now:()=>(Fd.delegate||Date).now(),delegate:void 0};class po{constructor(l,r=po.now){this.schedulerActionCtor=l,this.now=r}schedule(l,r=0,s){return new this.schedulerActionCtor(this,l).schedule(s,r)}}po.now=Fd.now;class Da extends po{constructor(l,r=po.now){super(l,r),this.actions=[],this._active=!1}flush(l){const{actions:r}=this;if(this._active)return void r.push(l);let s;this._active=!0;do{if(s=l.execute(l.state,l.delay))break}while(l=r.shift());if(this._active=!1,s){for(;l=r.shift();)l.unsubscribe();throw s}}}const er=new Da(Nd),q_=er;function $i(i,l=er){return(0,bn.N)((r,s)=>{let d=null,g=null,_=null;const D=()=>{if(d){d.unsubscribe(),d=null;const T=g;g=null,s.next(T)}};function w(){const T=_+i,O=l.now();if(O{g=T,_=l.now(),d||(d=l.schedule(w,i),s.add(d))},()=>{D(),s.complete()},void 0,()=>{g=d=null}))})}var Bn=x(964);function Ca(i,l,r){const s=(0,je.T)(i)||l||r?{next:i,error:l,complete:r}:i;return s?(0,bn.N)((d,g)=>{var _;null===(_=s.subscribe)||void 0===_||_.call(s);let D=!0;d.subscribe((0,dn._)(g,w=>{var T;null===(T=s.next)||void 0===T||T.call(s,w),g.next(w)},()=>{var w;D=!1,null===(w=s.complete)||void 0===w||w.call(s),g.complete()},w=>{var T;D=!1,null===(T=s.error)||void 0===T||T.call(s,w),g.error(w)},()=>{var w,T;D&&(null===(w=s.unsubscribe)||void 0===w||w.call(s)),null===(T=s.finalize)||void 0===T||T.call(s)}))}):Li.D}var Ea=x(667);function kd(i){if("string"!=typeof i)throw new TypeError("Expected a string");return i.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const wa=["*"],Lt=["main"],K_=["input"],at=["choiceMenu"],Z_=(i,l)=>({"ngx-select_multiple form-control":i,"open show":l}),Q_=i=>({"ngx-select__disabled":i}),Od=i=>({"ngx-select__allow-clear":i}),Bp=(i,l)=>({$implicit:i,index:0,text:l}),jp=(i,l,r)=>({$implicit:i,index:l,text:r}),X_=i=>[i],OC=(i,l)=>({"ngx-select__item_active active":i,"ngx-select__item_disabled disabled":l}),Hp=(i,l,r,s)=>({$implicit:i,text:l,index:r,subIndex:s}),Y_=i=>({$implicit:i});function Xl(i,l){if(1&i&&(u.j41(0,"span",20),u.nrm(1,"span",21),u.k0s()),2&i){const r=u.XpG(2);u.R7$(),u.Y8G("innerHtml",r.placeholder,u.npT)}}function Rd(i,l){if(1&i&&(u.j41(0,"span",22),u.eu8(1,23),u.k0s()),2&i){const r=u.XpG(2),s=u.sdS(8);u.Y8G("ngClass",u.eq3(3,Od,r.allowClear)),u.R7$(),u.Y8G("ngTemplateOutlet",r.templateSelectedOption||s)("ngTemplateOutletContext",u.l_i(5,Bp,r.optionsSelected[0],r.sanitize(r.optionsSelected[0].text)))}}function Pd(i,l){if(1&i){const r=u.RV6();u.j41(0,"a",24),u.bIt("click",function(d){u.eBV(r);const g=u.XpG(2);return u.Njj(g.optionRemove(g.optionsSelected[0],d))}),u.nrm(1,"i",25),u.k0s()}if(2&i){const r=u.XpG(2);u.Y8G("ngClass",r.setBtnSize())}}function Gi(i,l){if(1&i){const r=u.RV6();u.j41(0,"div",12)(1,"div",13),u.bIt("click",function(){u.eBV(r);const d=u.XpG();return u.Njj(d.optionsOpen())}),u.DNE(2,Xl,2,1,"span",14)(3,Rd,2,8,"span",15),u.j41(4,"span",16),u.DNE(5,Pd,2,1,"a",17),u.nrm(6,"i",18)(7,"i",19),u.k0s()()()}if(2&i){const r=u.XpG();u.R7$(),u.Y8G("ngClass",r.setFormControlSize(r.setBtnSize())),u.R7$(),u.Y8G("ngIf",!r.optionsSelected.length),u.R7$(),u.Y8G("ngIf",r.optionsSelected.length),u.R7$(2),u.Y8G("ngIf",r.canClearNotMultiple())}}function Yl(i,l){if(1&i){const r=u.RV6();u.j41(0,"span")(1,"span",28),u.bIt("click",function(d){return u.eBV(r),u.Njj(d.stopPropagation())}),u.eu8(2,23),u.j41(3,"a",29),u.bIt("click",function(d){const g=u.eBV(r).$implicit,_=u.XpG(2);return u.Njj(_.optionRemove(g,d))}),u.nrm(4,"i",25),u.k0s()()()}if(2&i){const r=l.$implicit,s=l.index,d=u.XpG(2),g=u.sdS(8);u.R7$(),u.Y8G("ngClass",d.setBtnSize()),u.R7$(),u.Y8G("ngTemplateOutlet",d.templateSelectedOption||g)("ngTemplateOutletContext",u.sMw(4,jp,r,s,d.sanitize(r.text))),u.R7$(),u.Y8G("ngClass",d.setBtnSize())}}function Jl(i,l){if(1&i){const r=u.RV6();u.j41(0,"div",26),u.bIt("click",function(){u.eBV(r);const d=u.XpG();return u.Njj(d.inputClick(d.inputElRef&&d.inputElRef.value))}),u.DNE(1,Yl,5,8,"span",27),u.k0s()}if(2&i){const r=u.XpG();u.R7$(),u.Y8G("ngForOf",r.optionsSelected)("ngForTrackBy",r.trackByOption)}}function zi(i,l){if(1&i){const r=u.RV6();u.j41(0,"input",30,3),u.bIt("keyup",function(d){u.eBV(r);const g=u.sdS(1),_=u.XpG();return u.Njj(_.inputKeyUp(g.value,d))})("click",function(){u.eBV(r);const d=u.sdS(1),g=u.XpG();return u.Njj(g.inputClick(d.value))}),u.k0s()}if(2&i){const r=u.XpG();u.Y8G("ngClass",r.setFormControlSize())("tabindex",!1===r.multiple?-1:0)("disabled",r.disabled)("placeholder",r.optionsSelected.length?"":r.placeholder)("autocomplete",r.autocomplete)}}function Ld(i,l){1&i&&u.nrm(0,"div",39)}function Vd(i,l){if(1&i&&(u.j41(0,"div",40),u.EFF(1),u.k0s()),2&i){const r=u.XpG().$implicit,s=u.XpG(2);u.R7$(),u.JRh(s.asGroup(r).label)}}function Up(i,l){if(1&i){const r=u.RV6();u.j41(0,"a",41,5),u.bIt("mouseenter",function(){const d=u.eBV(r).$implicit,g=u.XpG(3);return u.Njj(g.onMouseEnter({activeOption:g.asOpt(d),filteredOptionList:g.optionsFiltered,index:g.optionsFiltered.indexOf(d)}))})("click",function(d){const g=u.eBV(r).$implicit,_=u.XpG(3);return u.Njj(_.optionSelect(_.asOpt(g),d))}),u.eu8(2,23),u.k0s()}if(2&i){const r=l.$implicit,s=l.index,d=u.XpG().index,g=u.XpG(2),_=u.sdS(8);u.Y8G("ngClass",u.l_i(3,OC,g.asOpt(r).active,g.asOpt(r).disabled)),u.R7$(2),u.Y8G("ngTemplateOutlet",g.templateOption||_)("ngTemplateOutletContext",u.ziG(6,Hp,r,g.asOpt(r).highlightedText,d,s))}}function $p(i,l){if(1&i&&(u.j41(0,"li",35),u.DNE(1,Ld,1,0,"div",36)(2,Vd,2,1,"div",37)(3,Up,3,11,"a",38),u.k0s()),2&i){const r=l.$implicit,s=l.index,d=u.XpG(2);u.R7$(),u.Y8G("ngIf","optgroup"===r.type&&s>0),u.R7$(),u.Y8G("ngIf","optgroup"===r.type),u.R7$(),u.Y8G("ngForOf",d.asGroup(r).optionsFiltered||u.eq3(4,X_,r))("ngForTrackBy",d.trackByOption)}}function Bd(i,l){if(1&i&&(u.j41(0,"li",42),u.eu8(1,23),u.k0s()),2&i){const r=u.XpG(2),s=u.sdS(10);u.R7$(),u.Y8G("ngTemplateOutlet",r.templateOptionNotFound||s)("ngTemplateOutletContext",u.eq3(2,Y_,r.inputText))}}function J_(i,l){if(1&i){const r=u.RV6();u.j41(0,"ngx-select-choices",31),u.bIt("focusin",function(d){u.eBV(r);const g=u.XpG();return u.Njj(g.choiceMenuFocus(d))}),u.j41(1,"ul",32,4),u.DNE(3,$p,4,6,"li",33)(4,Bd,2,4,"li",34),u.k0s()()}if(2&i){const r=u.XpG();u.Y8G("appendTo",r.appendTo)("show",r.showChoiceMenu())("selectionChanges",r.selectionChanges),u.R7$(),u.AVh("show",r.showChoiceMenu()),u.Y8G("ngClass",r.dropDownMenuOtherClasses),u.R7$(2),u.Y8G("ngForOf",r.optionsFiltered)("ngForTrackBy",r.trackByOption),u.R7$(),u.Y8G("ngIf",!r.optionsFiltered.length)}}function ey(i,l){1&i&&u.nrm(0,"span",21),2&i&&u.Y8G("innerHtml",l.text,u.npT)}function Wi(i,l){if(1&i&&u.EFF(0),2&i){const r=u.XpG();u.SpI(" ",r.noResultsFound," ")}}class yr{value;text;disabled;data;_parent;type="option";highlightedText;active;constructor(l,r,s,d,g=null){this.value=l,this.text=r,this.disabled=s,this.data=d,this._parent=g}get parent(){return this._parent}cacheHighlightText;cacheRenderedText=null;renderText(l,r){return(this.cacheHighlightText!==r||null===this.cacheRenderedText)&&(this.cacheHighlightText=r,this.cacheRenderedText=l.bypassSecurityTrustHtml(this.cacheHighlightText?(this.text+"").replace(new RegExp(kd(this.cacheHighlightText),"gi"),"$&"):this.text)),this.cacheRenderedText}}class Ia{label;options;type="optgroup";optionsFiltered;constructor(l,r=[]){this.label=l,this.options=r,this.filter(()=>!0)}filter(l){this.optionsFiltered=this.options.filter(r=>l(r))}}let jd=(()=>{class i{template;constructor(r){this.template=r}static \u0275fac=function(s){return new(s||i)(u.rXU(u.C4Q))};static \u0275dir=u.FsC({type:i,selectors:[["","ngx-select-option",""]],standalone:!1})}return i})(),Gp=(()=>{class i{template;constructor(r){this.template=r}static \u0275fac=function(s){return new(s||i)(u.rXU(u.C4Q))};static \u0275dir=u.FsC({type:i,selectors:[["","ngx-select-option-selected",""]],standalone:!1})}return i})(),Hd=(()=>{class i{template;constructor(r){this.template=r}static \u0275fac=function(s){return new(s||i)(u.rXU(u.C4Q))};static \u0275dir=u.FsC({type:i,selectors:[["","ngx-select-option-not-found",""]],standalone:!1})}return i})(),RC=(()=>{class i{renderer;ngZone;appendTo;show;selectionChanges;choiceMenuEl;selectEl;destroy$=new We.B;disposeResizeListener;get position(){return this.appendTo?"absolute":""}constructor(r,s,d){this.renderer=r,this.ngZone=s,this.choiceMenuEl=d.nativeElement}ngOnInit(){this.selectionChanges.pipe(Vn(this.destroy$)).subscribe(()=>this.delayedPositionUpdate()),this.selectEl=this.choiceMenuEl.parentElement}ngOnChanges(r){r.show?.currentValue&&this.delayedPositionUpdate()}ngOnDestroy(){this.destroy$.next(),this.appendTo&&(this.renderer.removeChild(this.choiceMenuEl.parentNode,this.choiceMenuEl),this.disposeResizeListener&&this.disposeResizeListener())}ngAfterContentInit(){this.appendTo&&(this.appendChoiceMenu(),this.handleDocumentResize(),this.delayedPositionUpdate())}appendChoiceMenu(){const r=this.getAppendToElement();if(!r)throw new Error(`appendTo selector ${this.appendTo} did not found any element`);this.renderer.appendChild(r,this.choiceMenuEl)}getAppendToElement(){return document.querySelector(this.appendTo)}handleDocumentResize(){this.disposeResizeListener=this.renderer.listen("window","resize",()=>{this.updatePosition()})}delayedPositionUpdate(){this.appendTo&&this.ngZone.runOutsideAngular(()=>{window.requestAnimationFrame(()=>{this.updatePosition()})})}updatePosition(){if(this.show){const r=this.getViewportOffset(this.selectEl),s=this.getParentOffset(this.choiceMenuEl),d=this.getAppendToElement(),_=r.left+d.scrollLeft-s.left;this.choiceMenuEl.style.top=`${r.top+d.scrollTop-s.top+r.height}px`,this.choiceMenuEl.style.bottom="auto",this.choiceMenuEl.style.left=`${_}px`,this.choiceMenuEl.style.width=`${r.width}px`,this.choiceMenuEl.style.minWidth=`${r.width}px`}}getStyles(r){return window.getComputedStyle(r)}getStyleProp(r,s){return this.getStyles(r)[s]}isStatic(r){return"static"===(this.getStyleProp(r,"position")||"static")}getOffsetParent(r){let s=r.offsetParent;for(;s&&s!==document.documentElement&&this.isStatic(s);)s=s.offsetParent;return s||document.documentElement}getViewportOffset(r){const s=r.getBoundingClientRect(),d=window.scrollY-document.documentElement.clientTop,g=window.scrollX-document.documentElement.clientLeft;return{height:s.height||r.offsetHeight,width:s.width||r.offsetWidth,top:s.top+d,bottom:s.bottom+d,left:s.left+g,right:s.right+g}}getParentOffset(r){let s={width:0,height:0,top:0,left:0,right:0,bottom:0};if("fixed"===this.getStyleProp(r,"position"))return s;const d=this.getOffsetParent(r);return d!==document.documentElement&&(s=this.getViewportOffset(d)),s.top+=d.clientTop,s.left+=d.clientLeft,s}static \u0275fac=function(s){return new(s||i)(u.rXU(u.sFG),u.rXU(u.SKi),u.rXU(u.aKT))};static \u0275cmp=u.VBU({type:i,selectors:[["ngx-select-choices"]],hostVars:2,hostBindings:function(s,d){2&s&&u.xc7("position",d.position)},inputs:{appendTo:"appendTo",show:"show",selectionChanges:"selectionChanges"},standalone:!1,features:[u.OA$],ngContentSelectors:wa,decls:1,vars:0,template:function(s,d){1&s&&(u.NAR(),u.SdG(0))},encapsulation:2})}return i})();const Ud=new u.nKC("NGX_SELECT_OPTIONS");var Yt=function(i){return i[i.first=0]="first",i[i.previous=1]="previous",i[i.next=2]="next",i[i.last=3]="last",i[i.firstSelected=4]="firstSelected",i[i.firstIfOptionActiveInvisible=5]="firstIfOptionActiveInvisible",i}(Yt||{});function go(i,l){return l in i}let zp,En=(()=>{class i{sanitizer;cd;items;optionValueField="id";optionTextField="text";optGroupLabelField="label";optGroupOptionsField="options";multiple=!1;allowClear=!1;placeholder="";noAutoComplete=!1;disabled=!1;defaultValue=[];autoSelectSingleOption=!1;autoClearSearch=!1;noResultsFound="No results found";keepSelectedItems=!1;size="default";searchCallback;autoActiveOnMouseEnter=!0;showOptionNotFoundForEmptyItems=!1;isFocused=!1;keepSelectMenuOpened=!1;autocomplete="off";dropDownMenuOtherClasses="";noSanitize=!1;appendTo;keyCodeToRemoveSelected="Delete";keyCodeToOptionsOpen=["Enter","NumpadEnter"];keyCodeToOptionsClose="Escape";keyCodeToOptionsSelect=["Enter","NumpadEnter"];keyCodeToNavigateFirst="ArrowLeft";keyCodeToNavigatePrevious="ArrowUp";keyCodeToNavigateNext="ArrowDown";keyCodeToNavigateLast="ArrowRight";typed=new u.bkB;focus=new u.bkB;blur=new u.bkB;open=new u.bkB;close=new u.bkB;select=new u.bkB;remove=new u.bkB;navigated=new u.bkB;selectionChanges=new u.bkB;mainElRef;inputElRef;choiceMenuElRef;templateOption;templateSelectedOption;templateOptionNotFound;optionsOpened=!1;optionsFiltered;optionActive;itemsDiffer;defaultValueDiffer;actualValue=[];subjOptions=new fo.t([]);subjSearchText=new fo.t("");subjOptionsSelected=new fo.t([]);subjExternalValue=new fo.t([]);subjDefaultValue=new fo.t([]);subjRegisterOnChange=new We.B;cacheOptionsFilteredFlat;cacheElementOffsetTop;_focusToInput=!1;get inputText(){return this.inputElRef&&this.inputElRef.nativeElement?this.inputElRef.nativeElement.value:""}constructor(r,s,d,g){let _;this.sanitizer=s,this.cd=d,Object.assign(this,g),this.itemsDiffer=r.find([]).create(null),this.defaultValueDiffer=r.find([]).create(null),this.typed.subscribe(w=>this.subjSearchText.next(w)),this.subjOptionsSelected.subscribe(w=>this.selectionChanges.emit(w));const D=Vi([ba(this.subjExternalValue.pipe((0,Cn.T)(w=>_=null===w?[]:[].concat(w))),this.subjOptionsSelected.pipe((0,Cn.T)(w=>w.map(T=>T.value)))),this.subjDefaultValue]).pipe((0,Cn.T)(([w,T])=>{const O=Ea(w,T)?[]:w;return O.length?O:T}),Hi((w,T)=>Ea(w,T)),z_());Vi([D,this.subjRegisterOnChange]).pipe((0,Cn.T)(([w])=>w)).subscribe(w=>{this.actualValue=w,Ea(w,_)||(_=w,this.onChange(this.multiple?w:w.length?w[0]:null))}),Vi([this.subjOptions.pipe(Bi(w=>Dn(w).pipe(Bi(T=>T instanceof yr?Vr(T):T instanceof Ia?Dn(T.options):ji.w),Ui()))),D]).pipe($i(0)).subscribe(([w,T])=>{const O=[];if(T.forEach(j=>{const re=w.find(W=>W.value===j);re&&O.push(re)}),this.keepSelectedItems){const j=O.map(W=>W.value),re=this.subjOptionsSelected.value.filter(W=>-1===j.indexOf(W.value));O.push(...re)}Ea(O,this.subjOptionsSelected.value)||(this.subjOptionsSelected.next(O),this.cd.markForCheck())}),Vi([this.subjOptions,this.subjOptionsSelected,this.subjSearchText]).pipe((0,Cn.T)(([w,T,O])=>(this.optionsFiltered=this.filterOptions(O,w,T).map(j=>(j instanceof yr?j.highlightedText=this.highlightOption(j):j instanceof Ia&&j.options.map(re=>(re.highlightedText=this.highlightOption(re),re)),j)),this.cacheOptionsFilteredFlat=null,this.navigateOption(Yt.firstIfOptionActiveInvisible),this.cd.markForCheck(),T)),Bi(w=>this.optionsFilteredFlat().pipe((0,Bn.p)(T=>this.autoSelectSingleOption&&1===T.length&&!w.length)))).subscribe(w=>{this.subjOptionsSelected.next(w),this.cd.markForCheck()})}asGroup=r=>r;asOpt=r=>r;setFormControlSize(r={},s=!0){return Object.assign(s?{"form-control-sm input-sm":"small"===this.size,"form-control-lg input-lg":"large"===this.size}:{},r)}setBtnSize(){return{"btn-sm":"small"===this.size,"btn-lg":"large"===this.size}}get optionsSelected(){return this.subjOptionsSelected.value}mainClicked(r){r.clickedSelectComponent=this,this.isFocused||(this.isFocused=!0,this.focus.emit())}choiceMenuFocus(r){this.appendTo&&(r.clickedSelectComponent=this)}documentClick(r){r.clickedSelectComponent!==this&&(this.optionsOpened&&(this.optionsClose(),this.cd.detectChanges()),this.isFocused&&(this.isFocused=!1,this.blur.emit()))}optionsFilteredFlat(){return this.cacheOptionsFilteredFlat?Vr(this.cacheOptionsFilteredFlat):Dn(this.optionsFiltered).pipe(Bi(r=>r instanceof yr?Vr(r):r instanceof Ia?Dn(r.optionsFiltered):ji.w),(0,Bn.p)(r=>!r.disabled),Ui(),Ca(r=>this.cacheOptionsFilteredFlat=r))}navigateOption(r){this.optionsFilteredFlat().pipe((0,Cn.T)(s=>{const d={index:-1,activeOption:null,filteredOptionList:s};let g;switch(r){case Yt.first:d.index=0;break;case Yt.previous:g=s.indexOf(this.optionActive)-1,d.index=g>=0?g:s.length-1;break;case Yt.next:g=s.indexOf(this.optionActive)+1,d.index=gD.value===this.optionActive.value))),d.index=_>0?_:0}return d.activeOption=s[d.index],d})).subscribe(s=>this.optionActivate(s))}ngDoCheck(){this.itemsDiffer.diff(this.items)&&this.subjOptions.next(this.buildOptions(this.items));const r=this.defaultValue?[].concat(this.defaultValue):[];this.defaultValueDiffer.diff(r)&&this.subjDefaultValue.next(r)}ngAfterContentChecked(){if(this._focusToInput&&this.checkInputVisibility()&&this.inputElRef&&this.inputElRef.nativeElement!==document.activeElement&&(this._focusToInput=!1,this.inputElRef.nativeElement.focus()),this.choiceMenuElRef){const s=this.choiceMenuElRef.nativeElement.querySelector("a.ngx-select__item_active.active");s&&s.offsetHeight>0&&this.ensureVisibleElement(s)}}ngOnDestroy(){this.cd.detach()}canClearNotMultiple(){return this.allowClear&&!!this.subjOptionsSelected.value.length&&(!this.subjDefaultValue.value.length||this.subjDefaultValue.value[0]!==this.actualValue[0])}focusToInput(){this._focusToInput=!0}inputKeyDown(r){const s=[].concat(this.keyCodeToOptionsSelect,this.keyCodeToNavigateFirst,this.keyCodeToNavigatePrevious,this.keyCodeToNavigateNext,this.keyCodeToNavigateLast),d=[].concat(this.keyCodeToOptionsOpen,this.keyCodeToRemoveSelected);if(this.optionsOpened&&-1!==s.indexOf(r.code))switch(r.preventDefault(),r.stopPropagation(),r.code){case[].concat(this.keyCodeToOptionsSelect).indexOf(r.code)+1&&r.code:this.optionSelect(this.optionActive),this.navigateOption(Yt.next);break;case this.keyCodeToNavigateFirst:this.navigateOption(Yt.first);break;case this.keyCodeToNavigatePrevious:this.navigateOption(Yt.previous);break;case this.keyCodeToNavigateLast:this.navigateOption(Yt.last);break;case this.keyCodeToNavigateNext:this.navigateOption(Yt.next)}else if(!this.optionsOpened&&-1!==d.indexOf(r.code))switch(r.preventDefault(),r.stopPropagation(),r.code){case[].concat(this.keyCodeToOptionsOpen).indexOf(r.code)+1&&r.code:this.optionsOpen();break;case this.keyCodeToRemoveSelected:(this.multiple||this.canClearNotMultiple())&&this.optionRemove(this.subjOptionsSelected.value[this.subjOptionsSelected.value.length-1],r)}}trackByOption(r,s){return s instanceof yr?s.value:s instanceof Ia?s.label:s}checkInputVisibility(){return!0===this.multiple||this.optionsOpened&&!this.noAutoComplete}inputKeyUp(r="",s){s.code===this.keyCodeToOptionsClose?this.optionsClose():this.optionsOpened&&-1===["ArrowDown","ArrowUp","ArrowLeft","ArrowDown"].indexOf(s.code)?this.typed.emit(r):!this.optionsOpened&&r&&this.optionsOpen(r)}inputClick(r=""){this.optionsOpened||this.optionsOpen(r)}sanitize(r){return this.noSanitize?r||null:r?this.sanitizer.bypassSecurityTrustHtml(r):null}highlightOption(r){return r.renderText(this.sanitizer,this.inputElRef?this.inputElRef.nativeElement.value:"")}optionSelect(r,s=null){s&&(s.preventDefault(),s.stopPropagation()),r&&!r.disabled&&(this.subjOptionsSelected.next((this.multiple?this.subjOptionsSelected.value:[]).concat([r])),this.select.emit(r.value),this.keepSelectMenuOpened||this.optionsClose(),this.onTouched())}optionRemove(r,s){!this.disabled&&r&&(s.stopPropagation(),this.subjOptionsSelected.next((this.multiple?this.subjOptionsSelected.value:[]).filter(d=>d!==r)),this.remove.emit(r.value))}optionActivate(r){this.optionActive!==r.activeOption&&(!r.activeOption||!r.activeOption.disabled)&&(this.optionActive&&(this.optionActive.active=!1),this.optionActive=r.activeOption,this.optionActive&&(this.optionActive.active=!0),this.navigated.emit(r),this.cd.detectChanges())}onMouseEnter(r){this.autoActiveOnMouseEnter&&this.optionActivate(r)}filterOptions(r,s,d){const g=new RegExp(kd(r),"i"),_=D=>this.searchCallback?this.searchCallback(r,D):(!r||g.test(D.text))&&(!this.multiple||-1===d.indexOf(D));return s.filter(D=>{if(D instanceof yr)return _(D);if(D instanceof Ia){const w=D;return w.filter(T=>_(T)),w.optionsFiltered.length}})}ensureVisibleElement(r){if(this.choiceMenuElRef&&this.cacheElementOffsetTop!==r.offsetTop){this.cacheElementOffsetTop=r.offsetTop;const s=this.choiceMenuElRef.nativeElement;this.cacheElementOffsetTops.scrollTop+s.clientHeight&&(s.scrollTop=this.cacheElementOffsetTop+r.offsetHeight-s.clientHeight)}}showChoiceMenu(){return this.optionsOpened&&(!!this.subjOptions.value.length||this.showOptionNotFoundForEmptyItems)}optionsOpen(r=""){this.disabled||(this.optionsOpened=!0,this.subjSearchText.next(r),this.navigateOption(!this.multiple&&this.subjOptionsSelected.value.length?Yt.firstSelected:Yt.first),this.focusToInput(),this.open.emit(),this.cd.markForCheck())}optionsClose(){this.optionsOpened=!1,this.close.emit(),this.autoClearSearch&&this.multiple&&this.inputElRef&&(this.inputElRef.nativeElement.value=null)}buildOptions(r){const s=[];return Array.isArray(r)&&r.forEach(d=>{if("object"==typeof d&&null!==d&&go(d,this.optGroupLabelField)&&go(d,this.optGroupOptionsField)&&Array.isArray(d[this.optGroupOptionsField])){const _=new Ia(d[this.optGroupLabelField]);d[this.optGroupOptionsField].forEach(D=>{const w=this.buildOption(D,_);w&&_.options.push(w)}),s.push(_)}else{const _=this.buildOption(d,null);_&&s.push(_)}}),s}buildOption(r,s){let d,g,_;if("string"==typeof r||"number"==typeof r)d=g=r,_=!1;else{if("object"!=typeof r||null===r||!go(r,this.optionValueField)&&!go(r,this.optionTextField))return null;d=go(r,this.optionValueField)?r[this.optionValueField]:r[this.optionTextField],g=go(r,this.optionTextField)?r[this.optionTextField]:r[this.optionValueField],_=!!go(r,"disabled")&&r.disabled}return new yr(d,g,_,r,s)}onChange=r=>r;onTouched=()=>null;writeValue(r){this.subjExternalValue.next(r)}registerOnChange(r){this.onChange=r,this.subjRegisterOnChange.next()}registerOnTouched(r){this.onTouched=r}setDisabledState(r){this.disabled=r,this.cd.markForCheck()}static \u0275fac=function(s){return new(s||i)(u.rXU(u._q3),u.rXU(_l),u.rXU(u.gRc),u.rXU(Ud,8))};static \u0275cmp=u.VBU({type:i,selectors:[["ngx-select"]],contentQueries:function(s,d,g){if(1&s&&(u.wni(g,jd,7,u.C4Q),u.wni(g,Gp,7,u.C4Q),u.wni(g,Hd,7,u.C4Q)),2&s){let _;u.mGM(_=u.lsd())&&(d.templateOption=_.first),u.mGM(_=u.lsd())&&(d.templateSelectedOption=_.first),u.mGM(_=u.lsd())&&(d.templateOptionNotFound=_.first)}},viewQuery:function(s,d){if(1&s&&(u.GBs(Lt,7),u.GBs(K_,5),u.GBs(at,5)),2&s){let g;u.mGM(g=u.lsd())&&(d.mainElRef=g.first),u.mGM(g=u.lsd())&&(d.inputElRef=g.first),u.mGM(g=u.lsd())&&(d.choiceMenuElRef=g.first)}},hostBindings:function(s,d){1&s&&u.bIt("focusin",function(_){return d.documentClick(_)},!1,u.EBC)("click",function(_){return d.documentClick(_)},!1,u.EBC)},inputs:{items:"items",optionValueField:"optionValueField",optionTextField:"optionTextField",optGroupLabelField:"optGroupLabelField",optGroupOptionsField:"optGroupOptionsField",multiple:"multiple",allowClear:"allowClear",placeholder:"placeholder",noAutoComplete:"noAutoComplete",disabled:"disabled",defaultValue:"defaultValue",autoSelectSingleOption:"autoSelectSingleOption",autoClearSearch:"autoClearSearch",noResultsFound:"noResultsFound",keepSelectedItems:"keepSelectedItems",size:"size",searchCallback:"searchCallback",autoActiveOnMouseEnter:"autoActiveOnMouseEnter",showOptionNotFoundForEmptyItems:"showOptionNotFoundForEmptyItems",isFocused:"isFocused",keepSelectMenuOpened:"keepSelectMenuOpened",autocomplete:"autocomplete",dropDownMenuOtherClasses:"dropDownMenuOtherClasses",noSanitize:"noSanitize",appendTo:"appendTo"},outputs:{typed:"typed",focus:"focus",blur:"blur",open:"open",close:"close",select:"select",remove:"remove",navigated:"navigated",selectionChanges:"selectionChanges"},standalone:!1,features:[u.Jv_([{provide:Rt,useExisting:(0,u.Rfq)(()=>i),multi:!0}])],decls:11,vars:12,consts:[["main",""],["defaultTemplateOption",""],["defaultTemplateOptionNotFound",""],["input",""],["choiceMenu",""],["choiceItem",""],[1,"ngx-select","dropdown",3,"click","focusin","focus","keydown","tabindex","ngClass"],[3,"ngClass"],["class","ngx-select__selected",4,"ngIf"],["class","ngx-select__selected",3,"click",4,"ngIf"],["type","text","class","ngx-select__search form-control","autocorrect","off","autocapitalize","off","spellcheck","false","role","combobox",3,"ngClass","tabindex","disabled","placeholder","autocomplete","keyup","click",4,"ngIf"],[3,"appendTo","show","selectionChanges","focusin",4,"ngIf"],[1,"ngx-select__selected"],[1,"ngx-select__toggle","btn","form-control",3,"click","ngClass"],["class","ngx-select__placeholder text-muted",4,"ngIf"],["class","ngx-select__selected-single pull-left float-left",3,"ngClass",4,"ngIf"],[1,"ngx-select__toggle-buttons"],["class","ngx-select__clear btn btn-sm btn-link",3,"ngClass","click",4,"ngIf"],[1,"dropdown-toggle"],[1,"ngx-select__toggle-caret","caret"],[1,"ngx-select__placeholder","text-muted"],[3,"innerHtml"],[1,"ngx-select__selected-single","pull-left","float-left",3,"ngClass"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ngx-select__clear","btn","btn-sm","btn-link",3,"click","ngClass"],[1,"ngx-select__clear-icon"],[1,"ngx-select__selected",3,"click"],[4,"ngFor","ngForOf","ngForTrackBy"],["tabindex","-1",1,"ngx-select__selected-plural","btn","btn-default","btn-secondary","btn-sm","btn-xs",3,"click","ngClass"],[1,"ngx-select__clear","btn","btn-sm","btn-link","pull-right","float-right",3,"click","ngClass"],["type","text","autocorrect","off","autocapitalize","off","spellcheck","false","role","combobox",1,"ngx-select__search","form-control",3,"keyup","click","ngClass","tabindex","disabled","placeholder","autocomplete"],[3,"focusin","appendTo","show","selectionChanges"],["role","menu",1,"ngx-select__choices","dropdown-menu",3,"ngClass"],["class","ngx-select__item-group","role","menuitem",4,"ngFor","ngForOf","ngForTrackBy"],["class","ngx-select__item ngx-select__item_no-found dropdown-header",4,"ngIf"],["role","menuitem",1,"ngx-select__item-group"],["class","divider dropdown-divider",4,"ngIf"],["class","dropdown-header",4,"ngIf"],["href","#","class","ngx-select__item dropdown-item",3,"ngClass","mouseenter","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"divider","dropdown-divider"],[1,"dropdown-header"],["href","#",1,"ngx-select__item","dropdown-item",3,"mouseenter","click","ngClass"],[1,"ngx-select__item","ngx-select__item_no-found","dropdown-header"]],template:function(s,d){if(1&s){const g=u.RV6();u.j41(0,"div",6,0),u.bIt("click",function(D){return u.eBV(g),u.Njj(d.mainClicked(D))})("focusin",function(D){return u.eBV(g),u.Njj(d.mainClicked(D))})("focus",function(){return u.eBV(g),u.Njj(d.focusToInput())})("keydown",function(D){return u.eBV(g),u.Njj(d.inputKeyDown(D))}),u.nrm(2,"div",7),u.DNE(3,Gi,8,4,"div",8)(4,Jl,2,2,"div",9)(5,zi,2,5,"input",10)(6,J_,5,9,"ngx-select-choices",11)(7,ey,1,1,"ng-template",null,1,u.C5r)(9,Wi,1,1,"ng-template",null,2,u.C5r),u.k0s()}2&s&&(u.Y8G("tabindex",d.disabled?-1:0)("ngClass",d.setFormControlSize(u.l_i(7,Z_,!0===d.multiple,d.optionsOpened&&d.optionsFiltered.length),!0===d.multiple)),u.R7$(2),u.Y8G("ngClass",u.eq3(10,Q_,d.disabled)),u.R7$(),u.Y8G("ngIf",!1===d.multiple&&(!d.optionsOpened||d.noAutoComplete)),u.R7$(),u.Y8G("ngIf",!0===d.multiple),u.R7$(),u.Y8G("ngIf",d.checkInputVisibility()),u.R7$(),u.Y8G("ngIf",d.isFocused))},dependencies:[du,hu,pu,Ir,RC],styles:['.ngx-select_multiple[_ngcontent-%COMP%]{height:auto;padding:3px 3px 0}.ngx-select_multiple[_ngcontent-%COMP%] .ngx-select__search[_ngcontent-%COMP%]{background-color:transparent!important;border:none;outline:none;box-shadow:none;height:1.6666em;padding:0;margin-bottom:3px}.ngx-select__disabled[_ngcontent-%COMP%]{background-color:#eceeef;border-radius:4px;position:absolute;width:100%;height:100%;z-index:5;opacity:.6;top:0;left:0;cursor:not-allowed}.ngx-select__toggle[_ngcontent-%COMP%]{outline:0;position:relative;text-align:left!important;color:#333;background-color:#fff;border-color:#ccc;display:inline-flex;align-items:stretch;justify-content:space-between}.ngx-select__toggle[_ngcontent-%COMP%]:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.ngx-select__toggle-buttons[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center}.ngx-select__toggle-caret[_ngcontent-%COMP%]{position:absolute;height:10px;top:50%;right:10px;margin-top:-2px}.ngx-select__placeholder[_ngcontent-%COMP%]{float:left;max-width:100%;text-overflow:ellipsis;overflow:hidden}.ngx-select__clear[_ngcontent-%COMP%]{margin-right:10px;padding:0;border:none}.ngx-select_multiple[_ngcontent-%COMP%] .ngx-select__clear[_ngcontent-%COMP%]{line-height:initial;margin-left:5px;margin-right:0;color:#000;opacity:.5}.ngx-select__clear-icon[_ngcontent-%COMP%]{display:inline-block;font-size:inherit;cursor:pointer;position:relative;width:1em;height:.75em;padding:0}.ngx-select__clear-icon[_ngcontent-%COMP%]:before, .ngx-select__clear-icon[_ngcontent-%COMP%]:after{content:"";position:absolute;border-top:3px solid;width:100%;top:50%;left:0;margin-top:-1px}.ngx-select__clear-icon[_ngcontent-%COMP%]:before{transform:rotate(45deg)}.ngx-select__clear-icon[_ngcontent-%COMP%]:after{transform:rotate(-45deg)}.ngx-select__choices[_ngcontent-%COMP%]{width:100%;height:auto;max-height:200px;overflow-x:hidden;margin-top:0;position:absolute}.ngx-select_multiple[_ngcontent-%COMP%] .ngx-select__choices[_ngcontent-%COMP%]{margin-top:1px}.ngx-select__item[_ngcontent-%COMP%]{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;text-decoration:none}.ngx-select__item_disabled[_ngcontent-%COMP%], .ngx-select__item_no-found[_ngcontent-%COMP%]{cursor:default}.ngx-select__item_active[_ngcontent-%COMP%]{color:#fff;outline:0;background-color:#428bca}.ngx-select__selected-single[_ngcontent-%COMP%], .ngx-select__selected-plural[_ngcontent-%COMP%]{display:inline-flex;align-items:center;overflow:hidden}.ngx-select__selected-single[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .ngx-select__selected-plural[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis}.ngx-select__selected-plural[_ngcontent-%COMP%]{outline:0;margin:0 3px 3px 0}.input-group[_ngcontent-%COMP%] > .dropdown[_ngcontent-%COMP%]{position:static}'],changeDetection:0})}return i})(),Jo=(()=>{class i{static forRoot(r){return{ngModule:i,providers:[{provide:Ud,useValue:r}]}}static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({imports:[ge]})}return i})();try{zp=typeof Intl<"u"&&Intl.v8BreakIterator}catch{zp=!1}let Ki,tr=(()=>{class i{_platformId=(0,u.WQX)(u.Agw);isBrowser=this._platformId?function wt(i){return i===qe}(this._platformId):"object"==typeof document&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!(!window.chrome&&!zp)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();function Ma(i){return function ty(){if(null==Ki&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Ki=!0}))}finally{Ki=Ki||!1}return Ki}()?i:!!i.capture}var jn=function(i){return i[i.NORMAL=0]="NORMAL",i[i.NEGATED=1]="NEGATED",i[i.INVERTED=2]="INVERTED",i}(jn||{});let Ta,ei,ec;function jr(){if("object"!=typeof document||!document)return jn.NORMAL;if(null==Ta){const i=document.createElement("div"),l=i.style;i.dir="rtl",l.width="1px",l.overflow="auto",l.visibility="hidden",l.pointerEvents="none",l.position="absolute";const r=document.createElement("div"),s=r.style;s.width="2px",s.height="1px",i.appendChild(r),document.body.appendChild(i),Ta=jn.NORMAL,0===i.scrollLeft&&(i.scrollLeft=1,Ta=0===i.scrollLeft?jn.NEGATED:jn.INVERTED),i.remove()}return Ta}function xa(i){return i.composedPath?i.composedPath()[0]:i.target}function Na(i,...l){return l.length?l.some(r=>i[r]):i.altKey||i.shiftKey||i.ctrlKey||i.metaKey}var ac=x(697);function lc(i){return(0,Bn.p)((l,r)=>i<=r)}function hn(i){return Array.isArray(i)?i:[i]}function Xi(i){return i instanceof u.aKT?i.nativeElement:i}function sg(...i){return function kE(){return Xo(1)}()(Dn(i,qs(i)))}function Fa(...i){const l=qs(i);return(0,bn.N)((r,s)=>{(l?sg(i,r,l):sg(i,r)).subscribe(s)})}const Oy=new Set;let pn,cc=(()=>{class i{_platform=(0,u.WQX)(tr);_nonce=(0,u.WQX)(u.BIS,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):Xd}matchMedia(r){return(this._platform.WEBKIT||this._platform.BLINK)&&function Qd(i,l){if(!Oy.has(i))try{pn||(pn=document.createElement("style"),l&&pn.setAttribute("nonce",l),pn.setAttribute("type","text/css"),document.head.appendChild(pn)),pn.sheet&&(pn.sheet.insertRule(`@media ${i} {body{ }}`,0),Oy.add(i))}catch(r){console.error(r)}}(r,this._nonce),this._matchMedia(r)}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();function Xd(i){return{matches:"all"===i||""===i,media:i,addListener:()=>{},removeListener:()=>{}}}let Ry=(()=>{class i{_mediaMatcher=(0,u.WQX)(cc);_zone=(0,u.WQX)(u.SKi);_queries=new Map;_destroySubject=new We.B;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(r){return oi(hn(r)).some(d=>this._registerQuery(d).mql.matches)}observe(r){let g=Vi(oi(hn(r)).map(_=>this._registerQuery(_).observable));return g=sg(g.pipe((0,ac.s)(1)),g.pipe(lc(1),$i(0))),g.pipe((0,Cn.T)(_=>{const D={matches:!1,breakpoints:{}};return _.forEach(({matches:w,query:T})=>{D.matches=D.matches||w,D.breakpoints[T]=w}),D}))}_registerQuery(r){if(this._queries.has(r))return this._queries.get(r);const s=this._mediaMatcher.matchMedia(r),g={observable:new vt.c(_=>{const D=w=>this._zone.run(()=>_.next(w));return s.addListener(D),()=>{s.removeListener(D)}}).pipe(Fa(s),(0,Cn.T)(({matches:_})=>({query:r,matches:_})),Vn(this._destroySubject)),mql:s};return this._queries.set(r,g),g}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();function oi(i){return i.map(l=>l.split(",")).reduce((l,r)=>l.concat(r)).map(l=>l.trim())}class dc{_letterKeyStream=new We.B;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new We.B;selectedItem=this._selectedItem;constructor(l,r){const s="number"==typeof r?.debounceInterval?r.debounceInterval:200;r?.skipPredicate&&(this._skipPredicateFn=r.skipPredicate),this.setItems(l),this._setupKeyHandler(s)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(l){this._selectedItemIndex=l}setItems(l){this._items=l}handleKey(l){const r=l.keyCode;l.key&&1===l.key.length?this._letterKeyStream.next(l.key.toLocaleUpperCase()):(r>=65&&r<=90||r>=48&&r<=57)&&this._letterKeyStream.next(String.fromCharCode(r))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(l){this._letterKeyStream.pipe(Ca(r=>this._pressedLetters.push(r)),$i(l),(0,Bn.p)(()=>this._pressedLetters.length>0),(0,Cn.T)(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(r=>{for(let s=1;sl.disabled;constructor(l,r){this._items=l,l instanceof u.rOR?this._itemChangesSubscription=l.changes.subscribe(s=>this._itemsChanged(s.toArray())):(0,u.Hps)(l)&&(this._effectRef=(0,u.QZP)(()=>this._itemsChanged(l()),{injector:r}))}tabOut=new We.B;change=new We.B;skipPredicate(l){return this._skipPredicateFn=l,this}withWrap(l=!0){return this._wrap=l,this}withVerticalOrientation(l=!0){return this._vertical=l,this}withHorizontalOrientation(l){return this._horizontal=l,this}withAllowedModifierKeys(l){return this._allowedModifierKeys=l,this}withTypeAhead(l=200){this._typeaheadSubscription.unsubscribe();const r=this._getItemsArray();return this._typeahead=new dc(r,{debounceInterval:"number"==typeof l?l:void 0,skipPredicate:s=>this._skipPredicateFn(s)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(s=>{this.setActiveItem(s)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(l=!0){return this._homeAndEnd=l,this}withPageUpDown(l=!0,r=10){return this._pageUpAndDown={enabled:l,delta:r},this}setActiveItem(l){const r=this._activeItem();this.updateActiveItem(l),this._activeItem()!==r&&this.change.next(this._activeItemIndex)}onKeydown(l){const r=l.keyCode,d=["altKey","ctrlKey","metaKey","shiftKey"].every(g=>!l[g]||this._allowedModifierKeys.indexOf(g)>-1);switch(r){case 9:return void this.tabOut.next();case 40:if(this._vertical&&d){this.setNextItemActive();break}return;case 38:if(this._vertical&&d){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&d){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&d){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&d){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&d){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&d){const g=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(g>0?g:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&d){const g=this._activeItemIndex+this._pageUpAndDown.delta,_=this._getItemsArray().length;this._setActiveItemByIndex(g<_?g:_-1,-1);break}return;default:return void((d||Na(l,"shiftKey"))&&this._typeahead?.handleKey(l))}this._typeahead?.reset(),l.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem()}isTyping(){return!!this._typeahead&&this._typeahead.isTyping()}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._getItemsArray().length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(l){const r=this._getItemsArray(),s="number"==typeof l?l:r.indexOf(l);this._activeItem.set(r[s]??null),this._activeItemIndex=s,this._typeahead?.setCurrentSelectedItemIndex(s)}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._effectRef?.destroy(),this._typeahead?.destroy(),this.tabOut.complete(),this.change.complete()}_setActiveItemByDelta(l){this._wrap?this._setActiveInWrapMode(l):this._setActiveInDefaultMode(l)}_setActiveInWrapMode(l){const r=this._getItemsArray();for(let s=1;s<=r.length;s++){const d=(this._activeItemIndex+l*s+r.length)%r.length;if(!this._skipPredicateFn(r[d]))return void this.setActiveItem(d)}}_setActiveInDefaultMode(l){this._setActiveItemByIndex(this._activeItemIndex+l,l)}_setActiveItemByIndex(l,r){const s=this._getItemsArray();if(s[l]){for(;this._skipPredicateFn(s[l]);)if(!s[l+=r])return;this.setActiveItem(l)}}_getItemsArray(){return(0,u.Hps)(this._items)?this._items():this._items instanceof u.rOR?this._items.toArray():this._items}_itemsChanged(l){this._typeahead?.setItems(l);const r=this._activeItem();if(r){const s=l.indexOf(r);s>-1&&s!==this._activeItemIndex&&(this._activeItemIndex=s,this._typeahead?.setCurrentSelectedItemIndex(s))}}}class tf extends Vy{_origin="program";setFocusOrigin(l){return this._origin=l,this}setActiveItem(l){super.setActiveItem(l),this.activeItem&&this.activeItem.focus(this._origin)}}function hc(i){return 0===i.buttons||0===i.detail}function gg(i){const l=i.touches&&i.touches[0]||i.changedTouches&&i.changedTouches[0];return!(!l||-1!==l.identifier||null!=l.radiusX&&1!==l.radiusX||null!=l.radiusY&&1!==l.radiusY)}const Qy=new u.nKC("cdk-input-modality-detector-options"),nr={ignoreKeys:[18,17,224,91,16]},si=Ma({passive:!0,capture:!0});let Xy=(()=>{class i{_platform=(0,u.WQX)(tr);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new fo.t(null);_options;_lastTouchMs=0;_onKeydown=r=>{this._options?.ignoreKeys?.some(s=>s===r.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=xa(r))};_onMousedown=r=>{Date.now()-this._lastTouchMs<650||(this._modality.next(hc(r)?"keyboard":"mouse"),this._mostRecentTarget=xa(r))};_onTouchstart=r=>{gg(r)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=xa(r))};constructor(){const r=(0,u.WQX)(u.SKi),s=(0,u.WQX)(Q),d=(0,u.WQX)(Qy,{optional:!0});this._options={...nr,...d},this.modalityDetected=this._modality.pipe(lc(1)),this.modalityChanged=this.modalityDetected.pipe(Hi()),this._platform.isBrowser&&r.runOutsideAngular(()=>{s.addEventListener("keydown",this._onKeydown,si),s.addEventListener("mousedown",this._onMousedown,si),s.addEventListener("touchstart",this._onTouchstart,si)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,si),document.removeEventListener("mousedown",this._onMousedown,si),document.removeEventListener("touchstart",this._onTouchstart,si))}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();var pc=function(i){return i[i.IMMEDIATE=0]="IMMEDIATE",i[i.EVENTUAL=1]="EVENTUAL",i}(pc||{});const me=new u.nKC("cdk-focus-monitor-default-options"),Ra=Ma({passive:!0,capture:!0});let _g=(()=>{class i{_ngZone=(0,u.WQX)(u.SKi);_platform=(0,u.WQX)(tr);_inputModalityDetector=(0,u.WQX)(Xy);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)};_document=(0,u.WQX)(Q,{optional:!0});_stopInputModalityDetector=new We.B;constructor(){const r=(0,u.WQX)(me,{optional:!0});this._detectionMode=r?.detectionMode||pc.IMMEDIATE}_rootNodeFocusAndBlurListener=r=>{for(let d=xa(r);d;d=d.parentElement)"focus"===r.type?this._onFocus(r,d):this._onBlur(r,d)};monitor(r,s=!1){const d=Xi(r);if(!this._platform.isBrowser||1!==d.nodeType)return Vr();const g=function ry(i){if(function $d(){if(null==ec){const i=typeof document<"u"?document.head:null;ec=!(!i||!i.createShadowRoot&&!i.attachShadow)}return ec}()){const l=i.getRootNode?i.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&l instanceof ShadowRoot)return l}return null}(d)||this._getDocument(),_=this._elementInfo.get(d);if(_)return s&&(_.checkChildren=!0),_.subject;const D={checkChildren:s,subject:new We.B,rootNode:g};return this._elementInfo.set(d,D),this._registerGlobalListeners(D),D.subject}stopMonitoring(r){const s=Xi(r),d=this._elementInfo.get(s);d&&(d.subject.complete(),this._setClasses(s),this._elementInfo.delete(s),this._removeGlobalListeners(d))}focusVia(r,s,d){const g=Xi(r);g===this._getDocument().activeElement?this._getClosestElementsInfo(g).forEach(([D,w])=>this._originChanged(D,s,w)):(this._setOrigin(s),"function"==typeof g.focus&&g.focus(d))}ngOnDestroy(){this._elementInfo.forEach((r,s)=>this.stopMonitoring(s))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(r){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(r)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:r&&this._isLastInteractionFromInputLabel(r)?"mouse":"program"}_shouldBeAttributedToTouch(r){return this._detectionMode===pc.EVENTUAL||!!r?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(r,s){r.classList.toggle("cdk-focused",!!s),r.classList.toggle("cdk-touch-focused","touch"===s),r.classList.toggle("cdk-keyboard-focused","keyboard"===s),r.classList.toggle("cdk-mouse-focused","mouse"===s),r.classList.toggle("cdk-program-focused","program"===s)}_setOrigin(r,s=!1){this._ngZone.runOutsideAngular(()=>{this._origin=r,this._originFromTouchInteraction="touch"===r&&s,this._detectionMode===pc.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(r,s){const d=this._elementInfo.get(s),g=xa(r);!d||!d.checkChildren&&s!==g||this._originChanged(s,this._getFocusOrigin(g),d)}_onBlur(r,s){const d=this._elementInfo.get(s);!d||d.checkChildren&&r.relatedTarget instanceof Node&&s.contains(r.relatedTarget)||(this._setClasses(s),this._emitOrigin(d,null))}_emitOrigin(r,s){r.subject.observers.length&&this._ngZone.run(()=>r.subject.next(s))}_registerGlobalListeners(r){if(!this._platform.isBrowser)return;const s=r.rootNode,d=this._rootNodeFocusListenerCount.get(s)||0;d||this._ngZone.runOutsideAngular(()=>{s.addEventListener("focus",this._rootNodeFocusAndBlurListener,Ra),s.addEventListener("blur",this._rootNodeFocusAndBlurListener,Ra)}),this._rootNodeFocusListenerCount.set(s,d+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Vn(this._stopInputModalityDetector)).subscribe(g=>{this._setOrigin(g,!0)}))}_removeGlobalListeners(r){const s=r.rootNode;if(this._rootNodeFocusListenerCount.has(s)){const d=this._rootNodeFocusListenerCount.get(s);d>1?this._rootNodeFocusListenerCount.set(s,d-1):(s.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Ra),s.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Ra),this._rootNodeFocusListenerCount.delete(s))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(r,s,d){this._setClasses(r,s),this._emitOrigin(d,s),this._lastFocusOrigin=s}_getClosestElementsInfo(r){const s=[];return this._elementInfo.forEach((d,g)=>{(g===r||d.checkChildren&&g.contains(r))&&s.push([g,d])}),s}_isLastInteractionFromInputLabel(r){const{_mostRecentTarget:s,mostRecentModality:d}=this._inputModalityDetector;if("mouse"!==d||!s||s===r||"INPUT"!==r.nodeName&&"TEXTAREA"!==r.nodeName||r.disabled)return!1;const g=r.labels;if(g)for(let _=0;_{class i{_elementRef=(0,u.WQX)(u.aKT);_focusMonitor=(0,u.WQX)(_g);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new u.bkB;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const r=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(r,1===r.nodeType&&r.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(s=>{this._focusOrigin=s,this.cdkFocusChange.emit(s)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return i})();var vo=function(i){return i[i.NONE=0]="NONE",i[i.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",i[i.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",i}(vo||{});const cf="cdk-high-contrast-black-on-white",yg="cdk-high-contrast-white-on-black",ai="cdk-high-contrast-active";let li=(()=>{class i{_platform=(0,u.WQX)(tr);_hasCheckedHighContrastMode;_document=(0,u.WQX)(Q);_breakpointSubscription;constructor(){this._breakpointSubscription=(0,u.WQX)(Ry).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return vo.NONE;const r=this._document.createElement("div");r.style.backgroundColor="rgb(1,2,3)",r.style.position="absolute",this._document.body.appendChild(r);const s=this._document.defaultView||window,d=s&&s.getComputedStyle?s.getComputedStyle(r):null,g=(d&&d.backgroundColor||"").replace(/ /g,"");switch(r.remove(),g){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return vo.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return vo.BLACK_ON_WHITE}return vo.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const r=this._document.body.classList;r.remove(ai,cf,yg),this._hasCheckedHighContrastMode=!0;const s=this.getHighContrastMode();s===vo.BLACK_ON_WHITE?r.add(ai,cf):s===vo.WHITE_ON_BLACK&&r.add(ai,yg)}}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();const ci={};let bg=(()=>{class i{_appId=(0,u.WQX)(u.sZ2);getId(r){return"ng"!==this._appId&&(r+=this._appId),ci.hasOwnProperty(r)||(ci[r]=0),`${r}${ci[r]++}`}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();const uf=new u.nKC("cdk-dir-doc",{providedIn:"root",factory:function df(){return(0,u.WQX)(Q)}}),ff=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Pa=(()=>{class i{value="ltr";change=new u.bkB;constructor(){const r=(0,u.WQX)(uf,{optional:!0});r&&(this.value=function hf(i){const l=i?.toLowerCase()||"";return"auto"===l&&typeof navigator<"u"&&navigator?.language?ff.test(navigator.language)?"rtl":"ltr":"rtl"===l?"rtl":"ltr"}((r.body?r.body.dir:null)||(r.documentElement?r.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Dg=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({})}return i})();const gc=new WeakMap;let pf=(()=>{class i{_appRef;_injector=(0,u.WQX)(u.zZn);_environmentInjector=(0,u.WQX)(u.uvJ);load(r){const s=this._appRef=this._appRef||this._injector.get(u.o8S);let d=gc.get(s);d||(d={loaders:new Set,refs:[]},gc.set(s,d),s.onDestroy(()=>{gc.get(s)?.refs.forEach(g=>g.destroy()),gc.delete(s)})),d.loaders.has(r)||(d.loaders.add(r),d.refs.push((0,u.a0P)(r,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Eg=(()=>{class i{constructor(){(0,u.WQX)(li)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({imports:[Dg,Dg]})}return i})(),mc=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["structural-styles"]],decls:0,vars:0,template:function(s,d){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return i})();var In=function(i){return i[i.FADING_IN=0]="FADING_IN",i[i.VISIBLE=1]="VISIBLE",i[i.FADING_OUT=2]="FADING_OUT",i[i.HIDDEN=3]="HIDDEN",i}(In||{});class _c{_renderer;element;config;_animationForciblyDisabledThroughCss;state=In.HIDDEN;constructor(l,r,s,d=!1){this._renderer=l,this.element=r,this.config=s,this._animationForciblyDisabledThroughCss=d}fadeOut(){this._renderer.fadeOutRipple(this)}}const yc=Ma({passive:!0,capture:!0});class Hr{_events=new Map;addHandler(l,r,s,d){const g=this._events.get(r);if(g){const _=g.get(s);_?_.add(d):g.set(s,new Set([d]))}else this._events.set(r,new Map([[s,new Set([d])]])),l.runOutsideAngular(()=>{document.addEventListener(r,this._delegateEventHandler,yc)})}removeHandler(l,r,s){const d=this._events.get(l);if(!d)return;const g=d.get(r);g&&(g.delete(s),0===g.size&&d.delete(r),0===d.size&&(this._events.delete(l),document.removeEventListener(l,this._delegateEventHandler,yc)))}_delegateEventHandler=l=>{const r=xa(l);r&&this._events.get(l.type)?.forEach((s,d)=>{(d===r||d.contains(r))&&s.forEach(g=>g.handleEvent(l))})}}const Mg={enterDuration:225,exitDuration:150},La=Ma({passive:!0,capture:!0}),Tg=["mousedown","touchstart"],ui=["mouseup","mouseleave","touchend","touchcancel"];let xg=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(s,d){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return i})();class br{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Hr;constructor(l,r,s,d,g){this._target=l,this._ngZone=r,this._platform=d,d.isBrowser&&(this._containerElement=Xi(s)),g&&g.get(pf).load(xg)}fadeInRipple(l,r,s={}){const d=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),g={...Mg,...s.animation};s.centered&&(l=d.left+d.width/2,r=d.top+d.height/2);const _=s.radius||function ts(i,l,r){const s=Math.max(Math.abs(i-r.left),Math.abs(i-r.right)),d=Math.max(Math.abs(l-r.top),Math.abs(l-r.bottom));return Math.sqrt(s*s+d*d)}(l,r,d),D=l-d.left,w=r-d.top,T=g.enterDuration,O=document.createElement("div");O.classList.add("mat-ripple-element"),O.style.left=D-_+"px",O.style.top=w-_+"px",O.style.height=2*_+"px",O.style.width=2*_+"px",null!=s.color&&(O.style.backgroundColor=s.color),O.style.transitionDuration=`${T}ms`,this._containerElement.appendChild(O);const j=window.getComputedStyle(O),W=j.transitionDuration,_e="none"===j.transitionProperty||"0s"===W||"0s, 0s"===W||0===d.width&&0===d.height,De=new _c(this,O,s,_e);O.style.transform="scale3d(1, 1, 1)",De.state=In.FADING_IN,s.persistent||(this._mostRecentTransientRipple=De);let Le=null;return!_e&&(T||g.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const Ve=()=>{Le&&(Le.fallbackTimer=null),clearTimeout(Gr),this._finishRippleTransition(De)},Ft=()=>this._destroyRipple(De),Gr=setTimeout(Ft,T+100);O.addEventListener("transitionend",Ve),O.addEventListener("transitioncancel",Ft),Le={onTransitionEnd:Ve,onTransitionCancel:Ft,fallbackTimer:Gr}}),this._activeRipples.set(De,Le),(_e||!T)&&this._finishRippleTransition(De),De}fadeOutRipple(l){if(l.state===In.FADING_OUT||l.state===In.HIDDEN)return;const r=l.element,s={...Mg,...l.config.animation};r.style.transitionDuration=`${s.exitDuration}ms`,r.style.opacity="0",l.state=In.FADING_OUT,(l._animationForciblyDisabledThroughCss||!s.exitDuration)&&this._finishRippleTransition(l)}fadeOutAll(){this._getActiveRipples().forEach(l=>l.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(l=>{l.config.persistent||l.fadeOut()})}setupTriggerEvents(l){const r=Xi(l);!this._platform.isBrowser||!r||r===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=r,Tg.forEach(s=>{br._eventManager.addHandler(this._ngZone,s,r,this)}))}handleEvent(l){"mousedown"===l.type?this._onMousedown(l):"touchstart"===l.type?this._onTouchStart(l):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{ui.forEach(r=>{this._triggerElement.addEventListener(r,this,La)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(l){l.state===In.FADING_IN?this._startFadeOutTransition(l):l.state===In.FADING_OUT&&this._destroyRipple(l)}_startFadeOutTransition(l){const r=l===this._mostRecentTransientRipple,{persistent:s}=l.config;l.state=In.VISIBLE,!s&&(!r||!this._isPointerDown)&&l.fadeOut()}_destroyRipple(l){const r=this._activeRipples.get(l)??null;this._activeRipples.delete(l),this._activeRipples.size||(this._containerRect=null),l===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),l.state=In.HIDDEN,null!==r&&(l.element.removeEventListener("transitionend",r.onTransitionEnd),l.element.removeEventListener("transitioncancel",r.onTransitionCancel),null!==r.fallbackTimer&&clearTimeout(r.fallbackTimer)),l.element.remove()}_onMousedown(l){const r=hc(l),s=this._lastTouchStartEvent&&Date.now(){!l.config.persistent&&(l.state===In.VISIBLE||l.config.terminateOnPointerUp&&l.state===In.FADING_IN)&&l.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const l=this._triggerElement;l&&(Tg.forEach(r=>br._eventManager.removeHandler(r,l,this)),this._pointerUpEventsRegistered&&(ui.forEach(r=>l.removeEventListener(r,this,La)),this._pointerUpEventsRegistered=!1))}}const _f=new u.nKC("mat-ripple-global-options");let ns=(()=>{class i{_elementRef=(0,u.WQX)(u.aKT);_animationMode=(0,u.WQX)(u.bc$,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(r){r&&this.fadeOutAllNonPersistent(),this._disabled=r,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(r){this._trigger=r,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){const r=(0,u.WQX)(u.SKi),s=(0,u.WQX)(tr),d=(0,u.WQX)(_f,{optional:!0}),g=(0,u.WQX)(u.zZn);this._globalOptions=d||{},this._rippleRenderer=new br(this,r,this._elementRef,s,g)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(r,s=0,d){return"number"==typeof r?this._rippleRenderer.fadeInRipple(r,s,{...this.rippleConfig,...d}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...r})}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(s,d){2&s&&u.AVh("mat-ripple-unbounded",d.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return i})();class vf{_attachedHost;attach(l){return this._attachedHost=l,l.attach(this)}detach(){let l=this._attachedHost;null!=l&&(this._attachedHost=null,l.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(l){this._attachedHost=l}}class yv extends vf{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(l,r,s,d,g){super(),this.component=l,this.viewContainerRef=r,this.injector=s,this.projectableNodes=g}}class rs extends vf{templateRef;viewContainerRef;context;injector;constructor(l,r,s,d){super(),this.templateRef=l,this.viewContainerRef=r,this.context=s,this.injector=d}get origin(){return this.templateRef.elementRef}attach(l,r=this.context){return this.context=r,super.attach(l)}detach(){return this.context=void 0,super.detach()}}class bf extends vf{element;constructor(l){super(),this.element=l instanceof u.aKT?l.nativeElement:l}}class Ng{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(l){return l instanceof yv?(this._attachedPortal=l,this.attachComponentPortal(l)):l instanceof rs?(this._attachedPortal=l,this.attachTemplatePortal(l)):this.attachDomPortal&&l instanceof bf?(this._attachedPortal=l,this.attachDomPortal(l)):void 0}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(l){this._disposeFn=l}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}let vv=(()=>{class i extends rs{constructor(){super((0,u.WQX)(u.C4Q),(0,u.WQX)(u.c1b))}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[u.Vt3]})}return i})(),Df=(()=>{class i extends Ng{_moduleRef=(0,u.WQX)(u.Vns,{optional:!0});_document=(0,u.WQX)(Q);_viewContainerRef=(0,u.WQX)(u.c1b);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(r){this.hasAttached()&&!r&&!this._isInitialized||(this.hasAttached()&&super.detach(),r&&super.attach(r),this._attachedPortal=r||null)}attached=new u.bkB;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(r){r.setAttachedHost(this);const s=null!=r.viewContainerRef?r.viewContainerRef:this._viewContainerRef,d=s.createComponent(r.component,{index:s.length,injector:r.injector||s.injector,projectableNodes:r.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return s!==this._viewContainerRef&&this._getRootNode().appendChild(d.hostView.rootNodes[0]),super.setDisposeFn(()=>d.destroy()),this._attachedPortal=r,this._attachedRef=d,this.attached.emit(d),d}attachTemplatePortal(r){r.setAttachedHost(this);const s=this._viewContainerRef.createEmbeddedView(r.templateRef,r.context,{injector:r.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=r,this._attachedRef=s,this.attached.emit(s),s}attachDomPortal=r=>{const s=r.element,d=this._document.createComment("dom-portal");r.setAttachedHost(this),s.parentNode.insertBefore(d,s),this._getRootNode().appendChild(s),this._attachedPortal=r,super.setDisposeFn(()=>{d.parentNode&&d.parentNode.replaceChild(s,d)})};_getRootNode(){const r=this._viewContainerRef.element.nativeElement;return r.nodeType===r.ELEMENT_NODE?r:r.parentNode}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[u.Vt3]})}return i})();const bv=["addListener","removeListener"],Cf=["addEventListener","removeEventListener"],Va=["on","off"];function Ur(i,l,r,s){if((0,je.T)(r)&&(s=r,r=void 0),s)return Ur(i,l,r).pipe(Ks(s));const[d,g]=function kg(i){return(0,je.T)(i.addEventListener)&&(0,je.T)(i.removeEventListener)}(i)?Cf.map(_=>D=>i[_](l,D,r)):function Fg(i){return(0,je.T)(i.addListener)&&(0,je.T)(i.removeListener)}(i)?bv.map(Ba(i,l)):function ja(i){return(0,je.T)(i.on)&&(0,je.T)(i.off)}(i)?Va.map(Ba(i,l)):[];if(!d&&Cl(i))return Bi(_=>Ur(_,l,r))(un(i));if(!d)throw new TypeError("Invalid event target");return new vt.c(_=>{const D=(...w)=>_.next(1g(D)})}function Ba(i,l){return r=>s=>i[r](l,s)}function os(i=0,l,r=q_){let s=-1;return null!=l&&(op(l)?r=l:s=l),new vt.c(d=>{let g=function Dv(i){return i instanceof Date&&!isNaN(i)}(i)?+i-r.now():i;g<0&&(g=0);let _=0;return r.schedule(function(){d.closed||(d.next(_++),0<=s?this.schedule(void 0,s):d.complete())},g)})}class Cv extends We.B{constructor(l=1/0,r=1/0,s=Fd){super(),this._bufferSize=l,this._windowTime=r,this._timestampProvider=s,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=r===1/0,this._bufferSize=Math.max(1,l),this._windowTime=Math.max(1,r)}next(l){const{isStopped:r,_buffer:s,_infiniteTimeWindow:d,_timestampProvider:g,_windowTime:_}=this;r||(s.push(l),!d&&s.push(g.now()+_)),this._trimBuffer(),super.next(l)}_subscribe(l){this._throwIfClosed(),this._trimBuffer();const r=this._innerSubscribe(l),{_infiniteTimeWindow:s,_buffer:d}=this,g=d.slice();for(let _=0;_this._resizeSubject.next(r)))}observe(l){return this._elementObservables.has(l)||this._elementObservables.set(l,new vt.c(r=>{const s=this._resizeSubject.subscribe(r);return this._resizeObserver?.observe(l,{box:this._box}),()=>{this._resizeObserver?.unobserve(l),s.unsubscribe(),this._elementObservables.delete(l)}}).pipe((0,Bn.p)(r=>r.some(s=>s.target===l)),function Cc(i,l,r){let s,d=!1;return i&&"object"==typeof i?({bufferSize:s=1/0,windowTime:l=1/0,refCount:d=!1,scheduler:r}=i):s=i??1/0,z_({connector:()=>new Cv(s,l,r),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:d})}({bufferSize:1,refCount:!0}),Vn(this._destroyed))),this._elementObservables.get(l)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let wv=(()=>{class i{_observers=new Map;_ngZone=(0,u.WQX)(u.SKi);constructor(){}ngOnDestroy(){for(const[,r]of this._observers)r.destroy();this._observers.clear()}observe(r,s){const d=s?.box||"content-box";return this._observers.has(d)||this._observers.set(d,new Ev(d)),this._observers.get(d).observe(r)}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();const ss={schedule(i){let l=requestAnimationFrame,r=cancelAnimationFrame;const{delegate:s}=ss;s&&(l=s.requestAnimationFrame,r=s.cancelAnimationFrame);const d=l(g=>{r=void 0,i(g)});return new fn.yU(()=>r?.(d))},requestAnimationFrame(...i){const{delegate:l}=ss;return(l?.requestAnimationFrame||requestAnimationFrame)(...i)},cancelAnimationFrame(...i){const{delegate:l}=ss;return(l?.cancelAnimationFrame||cancelAnimationFrame)(...i)},delegate:void 0};new class Iv extends Da{flush(l){this._active=!0;const r=this._scheduled;this._scheduled=void 0;const{actions:s}=this;let d;l=l||s.shift();do{if(d=l.execute(l.state,l.delay))break}while((l=s[0])&&l.id===r&&s.shift());if(this._active=!1,d){for(;(l=s[0])&&l.id===r&&s.shift();)l.unsubscribe();throw d}}}(class Ef extends Nd{constructor(l,r){super(l,r),this.scheduler=l,this.work=r}requestAsyncId(l,r,s=0){return null!==s&&s>0?super.requestAsyncId(l,r,s):(l.actions.push(this),l._scheduled||(l._scheduled=ss.requestAnimationFrame(()=>l.flush(void 0))))}recycleAsyncId(l,r,s=0){var d;if(null!=s?s>0:this.delay>0)return super.recycleAsyncId(l,r,s);const{actions:g}=l;null!=r&&(null===(d=g[g.length-1])||void 0===d?void 0:d.id)!==r&&(ss.cancelAnimationFrame(r),l._scheduled=void 0)}});let $r,wf=1;const di={};function If(i){return i in di&&(delete di[i],!0)}const Ha={setImmediate(i){const l=wf++;return di[l]=!0,$r||($r=Promise.resolve()),$r.then(()=>If(l)&&i()),l},clearImmediate(i){If(i)}},{setImmediate:Tv,clearImmediate:Mf}=Ha,Ua={setImmediate(...i){const{delegate:l}=Ua;return(l?.setImmediate||Tv)(...i)},clearImmediate(i){const{delegate:l}=Ua;return(l?.clearImmediate||Mf)(i)},delegate:void 0};new class $a extends Da{flush(l){this._active=!0;const r=this._scheduled;this._scheduled=void 0;const{actions:s}=this;let d;l=l||s.shift();do{if(d=l.execute(l.state,l.delay))break}while((l=s[0])&&l.id===r&&s.shift());if(this._active=!1,d){for(;(l=s[0])&&l.id===r&&s.shift();)l.unsubscribe();throw d}}}(class bo extends Nd{constructor(l,r){super(l,r),this.scheduler=l,this.work=r}requestAsyncId(l,r,s=0){return null!==s&&s>0?super.requestAsyncId(l,r,s):(l.actions.push(this),l._scheduled||(l._scheduled=Ua.setImmediate(l.flush.bind(l,void 0))))}recycleAsyncId(l,r,s=0){var d;if(null!=s?s>0:this.delay>0)return super.recycleAsyncId(l,r,s);const{actions:g}=l;null!=r&&(null===(d=g[g.length-1])||void 0===d?void 0:d.id)!==r&&(Ua.clearImmediate(r),l._scheduled===r&&(l._scheduled=void 0))}});function xf(i,l=er){return function Og(i){return(0,bn.N)((l,r)=>{let s=!1,d=null,g=null,_=!1;const D=()=>{if(g?.unsubscribe(),g=null,s){s=!1;const T=d;d=null,r.next(T)}_&&r.complete()},w=()=>{g=null,_&&r.complete()};l.subscribe((0,dn._)(r,T=>{s=!0,d=T,g||un(i(T)).subscribe(g=(0,dn._)(r,D,w))},()=>{_=!0,(!s||!g||g.closed)&&r.complete()}))})}(()=>os(i,l))}let Sv=(()=>{class i{_ngZone=(0,u.WQX)(u.SKi);_platform=(0,u.WQX)(tr);_document=(0,u.WQX)(Q,{optional:!0});constructor(){}_scrolled=new We.B;_globalSubscription=null;_scrolledCount=0;scrollContainers=new Map;register(r){this.scrollContainers.has(r)||this.scrollContainers.set(r,r.elementScrolled().subscribe(()=>this._scrolled.next(r)))}deregister(r){const s=this.scrollContainers.get(r);s&&(s.unsubscribe(),this.scrollContainers.delete(r))}scrolled(r=20){return this._platform.isBrowser?new vt.c(s=>{this._globalSubscription||this._addGlobalListener();const d=r>0?this._scrolled.pipe(xf(r)).subscribe(s):this._scrolled.subscribe(s);return this._scrolledCount++,()=>{d.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Vr()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((r,s)=>this.deregister(s)),this._scrolled.complete()}ancestorScrolled(r,s){const d=this.getAncestorScrollContainers(r);return this.scrolled(s).pipe((0,Bn.p)(g=>!g||d.indexOf(g)>-1))}getAncestorScrollContainers(r){const s=[];return this.scrollContainers.forEach((d,g)=>{this._scrollableContainsElement(g,r)&&s.push(g)}),s}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(r,s){let d=Xi(s),g=r.getElementRef().nativeElement;do{if(d==g)return!0}while(d=d.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>Ur(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Av=(()=>{class i{elementRef=(0,u.WQX)(u.aKT);scrollDispatcher=(0,u.WQX)(Sv);ngZone=(0,u.WQX)(u.SKi);dir=(0,u.WQX)(Pa,{optional:!0});_destroyed=new We.B;_elementScrolled=new vt.c(r=>this.ngZone.runOutsideAngular(()=>Ur(this.elementRef.nativeElement,"scroll").pipe(Vn(this._destroyed)).subscribe(r)));constructor(){}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(r){const s=this.elementRef.nativeElement,d=this.dir&&"rtl"==this.dir.value;null==r.left&&(r.left=d?r.end:r.start),null==r.right&&(r.right=d?r.start:r.end),null!=r.bottom&&(r.top=s.scrollHeight-s.clientHeight-r.bottom),d&&jr()!=jn.NORMAL?(null!=r.left&&(r.right=s.scrollWidth-s.clientWidth-r.left),jr()==jn.INVERTED?r.left=r.right:jr()==jn.NEGATED&&(r.left=r.right?-r.right:r.right)):null!=r.right&&(r.left=s.scrollWidth-s.clientWidth-r.right),this._applyScrollToOptions(r)}_applyScrollToOptions(r){const s=this.elementRef.nativeElement;!function ny(){if(null==ei){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return ei=!1,ei;if("scrollBehavior"in document.documentElement.style)ei=!0;else{const i=Element.prototype.scrollTo;ei=!!i&&!/\{\s*\[native code\]\s*\}/.test(i.toString())}}return ei}()?(null!=r.top&&(s.scrollTop=r.top),null!=r.left&&(s.scrollLeft=r.left)):s.scrollTo(r)}measureScrollOffset(r){const s="left",d="right",g=this.elementRef.nativeElement;if("top"==r)return g.scrollTop;if("bottom"==r)return g.scrollHeight-g.clientHeight-g.scrollTop;const _=this.dir&&"rtl"==this.dir.value;return"start"==r?r=_?d:s:"end"==r&&(r=_?s:d),_&&jr()==jn.INVERTED?r==s?g.scrollWidth-g.clientWidth-g.scrollLeft:g.scrollLeft:_&&jr()==jn.NEGATED?r==s?g.scrollLeft+g.scrollWidth-g.clientWidth:-g.scrollLeft:r==s?g.scrollLeft:g.scrollWidth-g.clientWidth-g.scrollLeft}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return i})(),Fv=(()=>{class i{_platform=(0,u.WQX)(tr);_viewportSize;_change=new We.B;_changeListener=r=>{this._change.next(r)};_document=(0,u.WQX)(Q,{optional:!0});constructor(){(0,u.WQX)(u.SKi).runOutsideAngular(()=>{if(this._platform.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const r=this._getWindow();r.removeEventListener("resize",this._changeListener),r.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const r={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),r}getViewportRect(){const r=this.getViewportScrollPosition(),{width:s,height:d}=this.getViewportSize();return{top:r.top,left:r.left,bottom:r.top+d,right:r.left+s,height:d,width:s}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const r=this._document,s=this._getWindow(),d=r.documentElement,g=d.getBoundingClientRect();return{top:-g.top||r.body.scrollTop||s.scrollY||d.scrollTop||0,left:-g.left||r.body.scrollLeft||s.scrollX||d.scrollLeft||0}}change(r=20){return r>0?this._change.pipe(xf(r)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const r=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:r.innerWidth,height:r.innerHeight}:{width:0,height:0}}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),jg=(()=>{class i{create(r){return typeof MutationObserver>"u"?null:new MutationObserver(r)}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Hg=(()=>{class i{_mutationObserverFactory=(0,u.WQX)(jg);_observedElements=new Map;_ngZone=(0,u.WQX)(u.SKi);constructor(){}ngOnDestroy(){this._observedElements.forEach((r,s)=>this._cleanupObserver(s))}observe(r){const s=Xi(r);return new vt.c(d=>{const _=this._observeElement(s).pipe((0,Cn.T)(D=>D.filter(w=>!function Bg(i){if("characterData"===i.type&&i.target instanceof Comment)return!0;if("childList"===i.type){for(let l=0;l!!D.length)).subscribe(D=>{this._ngZone.run(()=>{d.next(D)})});return()=>{_.unsubscribe(),this._unobserveElement(s)}})}_observeElement(r){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(r))this._observedElements.get(r).count++;else{const s=new We.B,d=this._mutationObserverFactory.create(g=>s.next(g));d&&d.observe(r,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(r,{observer:d,stream:s,count:1})}return this._observedElements.get(r).stream})}_unobserveElement(r){this._observedElements.has(r)&&(this._observedElements.get(r).count--,this._observedElements.get(r).count||this._cleanupObserver(r))}_cleanupObserver(r){if(this._observedElements.has(r)){const{observer:s,stream:d}=this._observedElements.get(r);s&&s.disconnect(),d.complete(),this._observedElements.delete(r)}}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u.jDH({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})(),Ug=(()=>{class i{_contentObserver=(0,u.WQX)(Hg);_elementRef=(0,u.WQX)(u.aKT);event=new u.bkB;get disabled(){return this._disabled}set disabled(r){this._disabled=r,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(r){this._debounce=function ig(i,l=0){return function Qi(i){return!isNaN(parseFloat(i))&&!isNaN(Number(i))}(i)?Number(i):2===arguments.length?l:0}(r),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const r=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?r.pipe($i(this.debounce)):r).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",u.L39],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],features:[u.GFd]})}return i})();var Jt=x(969);const Af=["*"];function wc(i,l){1&i&&u.SdG(0)}const Rw=["tabListContainer"],Pv=["tabList"],$g=["tabListInner"],Pw=["nextPaginator"],Lv=["previousPaginator"],Vv=i=>({animationDuration:i}),Ga=(i,l)=>({value:i,params:l});function Ic(i,l){}const Bv=["tabBodyWrapper"],jv=["tabHeader"];function Hv(i,l){}function Uv(i,l){if(1&i&&u.DNE(0,Hv,0,0,"ng-template",12),2&i){const r=u.XpG().$implicit;u.Y8G("cdkPortalOutlet",r.templateLabel)}}function $v(i,l){if(1&i&&u.EFF(0),2&i){const r=u.XpG().$implicit;u.JRh(r.textLabel)}}function Gv(i,l){if(1&i){const r=u.RV6();u.j41(0,"div",7,2),u.bIt("click",function(){const d=u.eBV(r),g=d.$implicit,_=d.$index,D=u.XpG(),w=u.sdS(1);return u.Njj(D._handleClick(g,w,_))})("cdkFocusChange",function(d){const g=u.eBV(r).$index,_=u.XpG();return u.Njj(_._tabFocusChanged(d,g))}),u.nrm(2,"span",8)(3,"div",9),u.j41(4,"span",10)(5,"span",11),u.DNE(6,Uv,1,1,null,12)(7,$v,1,1),u.k0s()()()}if(2&i){const r=l.$implicit,s=l.$index,d=u.sdS(1),g=u.XpG();u.HbH(r.labelClass),u.AVh("mdc-tab--active",g.selectedIndex===s),u.Y8G("id",g._getTabLabelId(s))("disabled",r.disabled)("fitInkBarToContent",g.fitInkBarToContent),u.BMQ("tabIndex",g._getTabIndex(s))("aria-posinset",s+1)("aria-setsize",g._tabs.length)("aria-controls",g._getTabContentId(s))("aria-selected",g.selectedIndex===s)("aria-label",r.ariaLabel||null)("aria-labelledby",!r.ariaLabel&&r.ariaLabelledby?r.ariaLabelledby:null),u.R7$(3),u.Y8G("matRippleTrigger",d)("matRippleDisabled",r.disabled||g.disableRipple),u.R7$(3),u.vxM(r.templateLabel?6:7)}}function zv(i,l){1&i&&u.SdG(0)}function Gg(i,l){if(1&i){const r=u.RV6();u.j41(0,"mat-tab-body",13),u.bIt("_onCentered",function(){u.eBV(r);const d=u.XpG();return u.Njj(d._removeTabBodyWrapperHeight())})("_onCentering",function(d){u.eBV(r);const g=u.XpG();return u.Njj(g._setTabBodyWrapperHeight(d))}),u.k0s()}if(2&i){const r=l.$implicit,s=l.$index,d=u.XpG();u.HbH(r.bodyClass),u.AVh("mat-mdc-tab-body-active",d.selectedIndex===s),u.Y8G("id",d._getTabContentId(s))("content",r.content)("position",r.position)("origin",r.origin)("animationDuration",d.animationDuration)("preserveContent",d.preserveContent),u.BMQ("tabindex",null!=d.contentTabIndex&&d.selectedIndex===s?d.contentTabIndex:null)("aria-labelledby",d._getTabLabelId(s))("aria-hidden",d.selectedIndex!==s)}}const Wv=new u.nKC("MatTabContent");let qv=(()=>{class i{template=(0,u.WQX)(u.C4Q);constructor(){}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","matTabContent",""]],features:[u.Jv_([{provide:Wv,useExisting:i}])]})}return i})();const Kv=new u.nKC("MatTabLabel"),Wg=new u.nKC("MAT_TAB");let Zv=(()=>{class i extends vv{_closestTab=(0,u.WQX)(Wg,{optional:!0});static \u0275fac=(()=>{let r;return function(d){return(r||(r=u.xGo(i)))(d||i)}})();static \u0275dir=u.FsC({type:i,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[u.Jv_([{provide:Kv,useExisting:i}]),u.Vt3]})}return i})();const qg=new u.nKC("MAT_TAB_GROUP");let Nf=(()=>{class i{_viewContainerRef=(0,u.WQX)(u.c1b);_closestTabGroup=(0,u.WQX)(qg,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(r){this._setTemplateLabelInput(r)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new We.B;position=null;origin=null;isActive=!1;constructor(){(0,u.WQX)(pf).load(mc)}ngOnChanges(r){(r.hasOwnProperty("textLabel")||r.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new rs(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(r){r&&r._closestTab===this&&(this._templateLabel=r)}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["mat-tab"]],contentQueries:function(s,d,g){if(1&s&&(u.wni(g,Zv,5),u.wni(g,qv,7,u.C4Q)),2&s){let _;u.mGM(_=u.lsd())&&(d.templateLabel=_.first),u.mGM(_=u.lsd())&&(d._explicitContent=_.first)}},viewQuery:function(s,d){if(1&s&&u.GBs(u.C4Q,7),2&s){let g;u.mGM(g=u.lsd())&&(d._implicitContent=g.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",u.L39],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[u.Jv_([{provide:Wg,useExisting:i}]),u.GFd,u.OA$],ngContentSelectors:Af,decls:1,vars:0,template:function(s,d){1&s&&(u.NAR(),u.DNE(0,wc,1,0,"ng-template"))},encapsulation:2})}return i})();const Ff="mdc-tab-indicator--active",Kg="mdc-tab-indicator--no-transition";class Qv{_items;_currentItem;constructor(l){this._items=l}hide(){this._items.forEach(l=>l.deactivateInkBar())}alignToElement(l){const r=this._items.find(d=>d.elementRef.nativeElement===l),s=this._currentItem;if(r!==s&&(s?.deactivateInkBar(),r)){const d=s?.elementRef.nativeElement.getBoundingClientRect?.();r.activateInkBar(d),this._currentItem=r}}}let Xv=(()=>{class i{_elementRef=(0,u.WQX)(u.aKT);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(r){this._fitToContent!==r&&(this._fitToContent=r,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(r){const s=this._elementRef.nativeElement;if(!r||!s.getBoundingClientRect||!this._inkBarContentElement)return void s.classList.add(Ff);const d=s.getBoundingClientRect(),g=r.width/d.width,_=r.left-d.left;s.classList.add(Kg),this._inkBarContentElement.style.setProperty("transform",`translateX(${_}px) scaleX(${g})`),s.getBoundingClientRect(),s.classList.remove(Kg),s.classList.add(Ff),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Ff)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const r=this._elementRef.nativeElement.ownerDocument||document,s=this._inkBarElement=r.createElement("span"),d=this._inkBarContentElement=r.createElement("span");s.className="mdc-tab-indicator",d.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",s.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement).appendChild(this._inkBarElement)}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",u.L39]},features:[u.GFd]})}return i})(),Mc=(()=>{class i extends Xv{elementRef=(0,u.WQX)(u.aKT);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let r;return function(d){return(r||(r=u.xGo(i)))(d||i)}})();static \u0275dir=u.FsC({type:i,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(s,d){2&s&&(u.BMQ("aria-disabled",!!d.disabled),u.AVh("mat-mdc-tab-disabled",d.disabled))},inputs:{disabled:[2,"disabled","disabled",u.L39]},features:[u.GFd,u.Vt3]})}return i})();const Zg=Ma({passive:!0});let tb=(()=>{class i{_elementRef=(0,u.WQX)(u.aKT);_changeDetectorRef=(0,u.WQX)(u.gRc);_viewportRuler=(0,u.WQX)(Fv);_dir=(0,u.WQX)(Pa,{optional:!0});_ngZone=(0,u.WQX)(u.SKi);_platform=(0,u.WQX)(tr);_animationMode=(0,u.WQX)(u.bc$,{optional:!0});_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new We.B;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new We.B;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(r){const s=isNaN(r)?0:r;this._selectedIndex!=s&&(this._selectedIndexChanged=!0,this._selectedIndex=s,this._keyManager&&this._keyManager.updateActiveItem(s))}_selectedIndex=0;selectFocusedIndex=new u.bkB;indexFocused=new u.bkB;_sharedResizeObserver=(0,u.WQX)(wv);_injector=(0,u.WQX)(u.zZn);constructor(){this._ngZone.runOutsideAngular(()=>{Ur(this._elementRef.nativeElement,"mouseleave").pipe(Vn(this._destroyed)).subscribe(()=>this._stopInterval())})}ngAfterViewInit(){Ur(this._previousPaginator.nativeElement,"touchstart",Zg).pipe(Vn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),Ur(this._nextPaginator.nativeElement,"touchstart",Zg).pipe(Vn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const r=this._dir?this._dir.change:Vr("ltr"),s=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe($i(32),Vn(this._destroyed)),d=this._viewportRuler.change(150).pipe(Vn(this._destroyed)),g=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new tf(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),(0,u.mal)(g,{injector:this._injector}),ba(r,d,s,this._items.changes,this._itemsResized()).pipe(Vn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),g()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(_=>{this.indexFocused.emit(_),this._setTabFocus(_)})}_itemsResized(){return"function"!=typeof ResizeObserver?ji.w:this._items.changes.pipe(Fa(this._items),function Vg(i,l){return(0,bn.N)((r,s)=>{let d=null,g=0,_=!1;const D=()=>_&&!d&&s.complete();r.subscribe((0,dn._)(s,w=>{d?.unsubscribe();let T=0;const O=g++;un(i(w,O)).subscribe(d=(0,dn._)(s,j=>s.next(l?l(w,j,O,T++):j),()=>{d=null,D()}))},()=>{_=!0,D()}))})}(r=>new vt.c(s=>this._ngZone.runOutsideAngular(()=>{const d=new ResizeObserver(g=>s.next(g));return r.forEach(g=>d.observe(g.elementRef.nativeElement)),()=>{d.disconnect()}}))),lc(1),(0,Bn.p)(r=>r.some(s=>s.contentRect.width>0&&s.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(r){if(!Na(r))switch(r.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const s=this._items.get(this.focusIndex);s&&!s.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(r))}break;default:this._keyManager.onKeydown(r)}}_onContentChanges(){const r=this._elementRef.nativeElement.textContent;r!==this._currentTextContent&&(this._currentTextContent=r||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(r){!this._isValidIndex(r)||this.focusIndex===r||!this._keyManager||this._keyManager.setActiveItem(r)}_isValidIndex(r){return!this._items||!!this._items.toArray()[r]}_setTabFocus(r){if(this._showPaginationControls&&this._scrollToLabel(r),this._items&&this._items.length){this._items.toArray()[r].focus();const s=this._tabListContainer.nativeElement;s.scrollLeft="ltr"==this._getLayoutDirection()?0:s.scrollWidth-s.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const r=this.scrollDistance,s="ltr"===this._getLayoutDirection()?-r:r;this._tabList.nativeElement.style.transform=`translateX(${Math.round(s)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(r){this._scrollTo(r)}_scrollHeader(r){return this._scrollTo(this._scrollDistance+("before"==r?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(r){this._stopInterval(),this._scrollHeader(r)}_scrollToLabel(r){if(this.disablePagination)return;const s=this._items?this._items.toArray()[r]:null;if(!s)return;const d=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:g,offsetWidth:_}=s.elementRef.nativeElement;let D,w;"ltr"==this._getLayoutDirection()?(D=g,w=D+_):(w=this._tabListInner.nativeElement.offsetWidth-g,D=w-_);const T=this.scrollDistance,O=this.scrollDistance+d;DO&&(this.scrollDistance+=Math.min(w-O,D-T))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const d=this._tabListInner.nativeElement.scrollWidth-this._elementRef.nativeElement.offsetWidth>=5;d||(this.scrollDistance=0),d!==this._showPaginationControls&&(this._showPaginationControls=d,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const r=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,s=r?r.elementRef.nativeElement:null;s?this._inkBar.alignToElement(s):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(r,s){s&&null!=s.button&&0!==s.button||(this._stopInterval(),os(650,100).pipe(Vn(ba(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:d,distance:g}=this._scrollHeader(r);(0===g||g>=d)&&this._stopInterval()}))}_scrollTo(r){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const s=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(s,r)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:s,distance:this._scrollDistance}}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,inputs:{disablePagination:[2,"disablePagination","disablePagination",u.L39],selectedIndex:[2,"selectedIndex","selectedIndex",u.Udg]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[u.GFd]})}return i})(),Xg=(()=>{class i extends tb{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new Qv(this._items),super.ngAfterContentInit()}_itemSelected(r){r.preventDefault()}static \u0275fac=(()=>{let r;return function(d){return(r||(r=u.xGo(i)))(d||i)}})();static \u0275cmp=u.VBU({type:i,selectors:[["mat-tab-header"]],contentQueries:function(s,d,g){if(1&s&&u.wni(g,Mc,4),2&s){let _;u.mGM(_=u.lsd())&&(d._items=_)}},viewQuery:function(s,d){if(1&s&&(u.GBs(Rw,7),u.GBs(Pv,7),u.GBs($g,7),u.GBs(Pw,5),u.GBs(Lv,5)),2&s){let g;u.mGM(g=u.lsd())&&(d._tabListContainer=g.first),u.mGM(g=u.lsd())&&(d._tabList=g.first),u.mGM(g=u.lsd())&&(d._tabListInner=g.first),u.mGM(g=u.lsd())&&(d._nextPaginator=g.first),u.mGM(g=u.lsd())&&(d._previousPaginator=g.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(s,d){2&s&&u.AVh("mat-mdc-tab-header-pagination-controls-enabled",d._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==d._getLayoutDirection())},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",u.L39]},features:[u.GFd,u.Vt3],ngContentSelectors:Af,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(s,d){if(1&s){const g=u.RV6();u.NAR(),u.j41(0,"div",5,0),u.bIt("click",function(){return u.eBV(g),u.Njj(d._handlePaginatorClick("before"))})("mousedown",function(D){return u.eBV(g),u.Njj(d._handlePaginatorPress("before",D))})("touchend",function(){return u.eBV(g),u.Njj(d._stopInterval())}),u.nrm(2,"div",6),u.k0s(),u.j41(3,"div",7,1),u.bIt("keydown",function(D){return u.eBV(g),u.Njj(d._handleKeydown(D))}),u.j41(5,"div",8,2),u.bIt("cdkObserveContent",function(){return u.eBV(g),u.Njj(d._onContentChanges())}),u.j41(7,"div",9,3),u.SdG(9),u.k0s()()(),u.j41(10,"div",10,4),u.bIt("mousedown",function(D){return u.eBV(g),u.Njj(d._handlePaginatorPress("after",D))})("click",function(){return u.eBV(g),u.Njj(d._handlePaginatorClick("after"))})("touchend",function(){return u.eBV(g),u.Njj(d._stopInterval())}),u.nrm(12,"div",6),u.k0s()}2&s&&(u.AVh("mat-mdc-tab-header-pagination-disabled",d._disableScrollBefore),u.Y8G("matRippleDisabled",d._disableScrollBefore||d.disableRipple),u.R7$(3),u.AVh("_mat-animation-noopable","NoopAnimations"===d._animationMode),u.R7$(2),u.BMQ("aria-label",d.ariaLabel||null)("aria-labelledby",d.ariaLabelledby||null),u.R7$(5),u.AVh("mat-mdc-tab-header-pagination-disabled",d._disableScrollAfter),u.Y8G("matRippleDisabled",d._disableScrollAfter||d.disableRipple))},dependencies:[ns,Ug],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return i})();const Vw=new u.nKC("MAT_TABS_CONFIG"),nb={translateTab:(0,Jt.hZ)("translateTab",[(0,Jt.wk)("center, void, left-origin-center, right-origin-center",(0,Jt.iF)({transform:"none",visibility:"visible"})),(0,Jt.wk)("left",(0,Jt.iF)({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),(0,Jt.wk)("right",(0,Jt.iF)({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),(0,Jt.kY)("* => left, * => right, left => center, right => center",(0,Jt.i0)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),(0,Jt.kY)("void => left-origin-center",[(0,Jt.iF)({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),(0,Jt.i0)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),(0,Jt.kY)("void => right-origin-center",[(0,Jt.iF)({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),(0,Jt.i0)("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let Bw=(()=>{class i extends Df{_host=(0,u.WQX)(kf);_centeringSub=fn.yU.EMPTY;_leavingSub=fn.yU.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Fa(this._host._isCenterPosition(this._host._position))).subscribe(r=>{this._host._content&&r&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(s){return new(s||i)};static \u0275dir=u.FsC({type:i,selectors:[["","matTabBodyHost",""]],features:[u.Vt3]})}return i})(),kf=(()=>{class i{_elementRef=(0,u.WQX)(u.aKT);_dir=(0,u.WQX)(Pa,{optional:!0});_positionIndex;_dirChangeSubscription=fn.yU.EMPTY;_position;_translateTabComplete=new We.B;_onCentering=new u.bkB;_beforeCentering=new u.bkB;_afterLeavingCenter=new u.bkB;_onCentered=new u.bkB(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(r){this._positionIndex=r,this._computePositionAnimationState()}constructor(){if(this._dir){const r=(0,u.WQX)(u.gRc);this._dirChangeSubscription=this._dir.change.subscribe(s=>{this._computePositionAnimationState(s),r.markForCheck()})}this._translateTabComplete.subscribe(r=>{this._isCenterPosition(r.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(r.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(r){const s=this._isCenterPosition(r.toState);this._beforeCentering.emit(s),s&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(r){return"center"==r||"left-origin-center"==r||"right-origin-center"==r}_computePositionAnimationState(r=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==r?"left":"right":this._positionIndex>0?"ltr"==r?"right":"left":"center"}_computePositionFromOrigin(r){const s=this._getLayoutDirection();return"ltr"==s&&r<=0||"rtl"==s&&r>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["mat-tab-body"]],viewQuery:function(s,d){if(1&s&&u.GBs(Df,5),2&s){let g;u.mGM(g=u.lsd())&&(d._portalHost=g.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(s,d){if(1&s){const g=u.RV6();u.j41(0,"div",1,0),u.bIt("@translateTab.start",function(D){return u.eBV(g),u.Njj(d._onTranslateTabStarted(D))})("@translateTab.done",function(D){return u.eBV(g),u.Njj(d._translateTabComplete.next(D))}),u.DNE(2,Ic,0,0,"ng-template",2),u.k0s()}2&s&&u.Y8G("@translateTab",u.l_i(3,Ga,d._position,u.eq3(1,Vv,d.animationDuration)))},dependencies:[Bw,Av],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[nb.translateTab]}})}return i})(),Of=(()=>{class i{_elementRef=(0,u.WQX)(u.aKT);_changeDetectorRef=(0,u.WQX)(u.gRc);_animationMode=(0,u.WQX)(u.bc$,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new u.rOR;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=fn.yU.EMPTY;_tabLabelSubscription=fn.yU.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(r){this._fitInkBarToContent=r,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(r){this._indexToSelect=isNaN(r)?null:r}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(r){const s=r+"";this._animationDuration=/^\d+$/.test(s)?r+"ms":s}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(r){this._contentTabIndex=isNaN(r)?null:r}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(r){const s=this._elementRef.nativeElement.classList;s.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),r&&s.add("mat-tabs-with-background",`mat-background-${r}`),this._backgroundColor=r}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new u.bkB;focusChange=new u.bkB;animationDone=new u.bkB;selectedTabChange=new u.bkB(!0);_groupId;_isServer=!(0,u.WQX)(tr).isBrowser;constructor(){const r=(0,u.WQX)(Vw,{optional:!0});this._groupId=(0,u.WQX)(bg).getId("mat-tab-group-"),this.animationDuration=r&&r.animationDuration?r.animationDuration:"500ms",this.disablePagination=!(!r||null==r.disablePagination)&&r.disablePagination,this.dynamicHeight=!(!r||null==r.dynamicHeight)&&r.dynamicHeight,null!=r?.contentTabIndex&&(this.contentTabIndex=r.contentTabIndex),this.preserveContent=!!r?.preserveContent,this.fitInkBarToContent=!(!r||null==r.fitInkBarToContent)&&r.fitInkBarToContent,this.stretchTabs=!r||null==r.stretchTabs||r.stretchTabs,this.alignTabs=r&&null!=r.alignTabs?r.alignTabs:null}ngAfterContentChecked(){const r=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=r){const s=null==this._selectedIndex;if(!s){this.selectedTabChange.emit(this._createChangeEvent(r));const d=this._tabBodyWrapper.nativeElement;d.style.minHeight=d.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((d,g)=>d.isActive=g===r),s||(this.selectedIndexChange.emit(r),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((s,d)=>{s.position=d-r,null!=this._selectedIndex&&0==s.position&&!s.origin&&(s.origin=r-this._selectedIndex)}),this._selectedIndex!==r&&(this._selectedIndex=r,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const r=this._clampTabIndex(this._indexToSelect);if(r===this._selectedIndex){const s=this._tabs.toArray();let d;for(let g=0;g{s[r].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(r))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Fa(this._allTabs)).subscribe(r=>{this._tabs.reset(r.filter(s=>s._closestTabGroup===this||!s._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(r){const s=this._tabHeader;s&&(s.focusIndex=r)}_focusChanged(r){this._lastFocusedTabIndex=r,this.focusChange.emit(this._createChangeEvent(r))}_createChangeEvent(r){const s=new rb;return s.index=r,this._tabs&&this._tabs.length&&(s.tab=this._tabs.toArray()[r]),s}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=ba(...this._tabs.map(r=>r._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(r){return Math.min(this._tabs.length-1,Math.max(r||0,0))}_getTabLabelId(r){return`${this._groupId}-label-${r}`}_getTabContentId(r){return`${this._groupId}-content-${r}`}_setTabBodyWrapperHeight(r){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;const s=this._tabBodyWrapper.nativeElement;s.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(s.style.height=r+"px")}_removeTabBodyWrapperHeight(){const r=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=r.clientHeight,r.style.height="",this.animationDone.emit()}_handleClick(r,s,d){s.focusIndex=d,r.disabled||(this.selectedIndex=d)}_getTabIndex(r){return r===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(r,s){r&&"mouse"!==r&&"touch"!==r&&(this._tabHeader.focusIndex=s)}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["mat-tab-group"]],contentQueries:function(s,d,g){if(1&s&&u.wni(g,Nf,5),2&s){let _;u.mGM(_=u.lsd())&&(d._allTabs=_)}},viewQuery:function(s,d){if(1&s&&(u.GBs(Bv,5),u.GBs(jv,5)),2&s){let g;u.mGM(g=u.lsd())&&(d._tabBodyWrapper=g.first),u.mGM(g=u.lsd())&&(d._tabHeader=g.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(s,d){2&s&&(u.BMQ("mat-align-tabs",d.alignTabs),u.HbH("mat-"+(d.color||"primary")),u.xc7("--mat-tab-animation-duration",d.animationDuration),u.AVh("mat-mdc-tab-group-dynamic-height",d.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===d.headerPosition)("mat-mdc-tab-group-stretch-tabs",d.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",u.L39],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",u.L39],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",u.L39],selectedIndex:[2,"selectedIndex","selectedIndex",u.Udg],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",u.Udg],disablePagination:[2,"disablePagination","disablePagination",u.L39],disableRipple:[2,"disableRipple","disableRipple",u.L39],preserveContent:[2,"preserveContent","preserveContent",u.L39],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[u.Jv_([{provide:qg,useExisting:i}]),u.GFd],ngContentSelectors:Af,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(s,d){if(1&s){const g=u.RV6();u.NAR(),u.j41(0,"mat-tab-header",3,0),u.bIt("indexFocused",function(D){return u.eBV(g),u.Njj(d._focusChanged(D))})("selectFocusedIndex",function(D){return u.eBV(g),u.Njj(d.selectedIndex=D)}),u.Z7z(2,Gv,8,17,"div",4,u.fX1),u.k0s(),u.DNE(4,zv,1,0),u.j41(5,"div",5,1),u.Z7z(7,Gg,1,13,"mat-tab-body",6,u.fX1),u.k0s()}2&s&&(u.Y8G("selectedIndex",d.selectedIndex||0)("disableRipple",d.disableRipple)("disablePagination",d.disablePagination)("aria-label",d.ariaLabel)("aria-labelledby",d.ariaLabelledby),u.R7$(2),u.Dyx(d._tabs),u.R7$(2),u.vxM(d._isServer?4:-1),u.R7$(),u.AVh("_mat-animation-noopable","NoopAnimations"===d._animationMode),u.R7$(2),u.Dyx(d._tabs))},dependencies:[Xg,Mc,Yi,ns,Df,kf],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return i})();class rb{index;tab}let Tc=(()=>{class i{static \u0275fac=function(s){return new(s||i)};static \u0275mod=u.$C({type:i});static \u0275inj=u.G2t({imports:[Eg,Eg]})}return i})();const em=["*"];let tm=(()=>{class i{desc;static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-sample-section"]],inputs:{desc:"desc"},ngContentSelectors:em,decls:12,vars:2,consts:[[1,"card","card-block","panel","panel-default","panel-body"],[1,"card-body"],["label","Markup"],[1,"prettyprint","linenums","lang-html"],["label","TypeScript"],[1,"prettyprint","linenums","lang-js"]],template:function(s,d){1&s&&(u.NAR(),u.SdG(0),u.j41(1,"div",0)(2,"div",1)(3,"mat-tab-group")(4,"mat-tab",2)(5,"div",0)(6,"pre",3),u.EFF(7),u.k0s()()(),u.j41(8,"mat-tab",4)(9,"div",0)(10,"pre",5),u.EFF(11),u.k0s()()()()()()),2&s&&(u.R7$(7),u.JRh(d.desc.html.default),u.R7$(4),u.JRh(d.desc.ts.default))},dependencies:[Tc,Nf,Of],encapsulation:2})}return i})(),Hw=(()=>{class i{items=["Amsterdam","Antwerp","Athens","Barcelona","Berlin","Birmingham","Bradford","Bremen","Brussels","Bucharest","Budapest","Cologne","Copenhagen","Dortmund","Dresden","Dublin","D\xfcsseldorf","Essen","Frankfurt","Genoa","Glasgow","Gothenburg","Hamburg","Hannover","Helsinki","Krak\xf3w","Leeds","Leipzig","Lisbon","London","Madrid","Manchester","Marseille","Milan","Munich","M\xe1laga","Naples","Palermo","Paris","Pozna\u0144","Prague","Riga","Rome","Rotterdam","Seville","Sheffield","Sofia","Stockholm","Stuttgart","The Hague","Turin","Valencia","Vienna","Vilnius","Warsaw","Wroc\u0142aw","Zagreb","Zaragoza","\u0141\xf3d\u017a"];ngxControl=new Gt;_ngxDefaultTimeout;_ngxDefaultInterval;_ngxDefault;constructor(){this._ngxDefaultTimeout=setTimeout(()=>{this._ngxDefaultInterval=setInterval(()=>{const r=Math.floor(Math.random()*(this.items.length-1));this._ngxDefault=this.items[r]},2e3)},2e3)}ngOnDestroy(){clearTimeout(this._ngxDefaultTimeout),clearInterval(this._ngxDefaultInterval)}doNgxDefault(){return this._ngxDefault}inputTyped=(r,s)=>console.log("SingleDemoComponent.inputTyped",r,s);doFocus=()=>console.log("SingleDemoComponent.doFocus");doBlur=()=>console.log("SingleDemoComponent.doBlur");doOpen=()=>console.log("SingleDemoComponent.doOpen");doClose=()=>console.log("SingleDemoComponent.doClose");doSelect=r=>console.log("SingleDemoComponent.doSelect",r);doRemove=r=>console.log("SingleDemoComponent.doRemove",r);doSelectOptions=r=>console.log("SingleDemoComponent.doSelectOptions",r);static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-single-demo"]],decls:13,vars:8,consts:[[1,"example-block"],[1,"example-block__item"],["placeholder","No city selected",3,"typed","focus","blur","open","close","select","remove","selectionChanges","formControl","allowClear","defaultValue","items"],[1,"alert","alert-secondary"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(s,d){1&s&&(u.j41(0,"h3"),u.EFF(1,"Select a single city"),u.k0s(),u.j41(2,"div",0)(3,"div",1)(4,"ngx-select",2),u.bIt("typed",function(_){return d.inputTyped("ngx-select",_)})("focus",function(){return d.doFocus()})("blur",function(){return d.doBlur()})("open",function(){return d.doOpen()})("close",function(){return d.doClose()})("select",function(_){return d.doSelect(_)})("remove",function(_){return d.doRemove(_)})("selectionChanges",function(_){return d.doSelectOptions(_)}),u.k0s(),u.nrm(5,"p"),u.j41(6,"div",3)(7,"pre"),u.EFF(8),u.nI1(9,"json"),u.k0s()(),u.j41(10,"div")(11,"button",4),u.bIt("click",function(){return d.ngxControl.disabled?d.ngxControl.enable():d.ngxControl.disable()}),u.EFF(12),u.k0s()()()()),2&s&&(u.R7$(4),u.Y8G("formControl",d.ngxControl)("allowClear",!0)("defaultValue",d.doNgxDefault())("items",d.items),u.R7$(4),u.JRh(u.bMT(9,6,d.ngxControl.value)),u.R7$(4),u.SpI(" ",d.ngxControl.disabled?"Enable":"Disable"," "))},dependencies:[cr,Jo,En,Td,Uo,qo],encapsulation:2})}return i})(),nm=(()=>{class i{items=["Amsterdam","Antwerp","Athens","Barcelona","Berlin","Birmingham","Bradford","Bremen","Brussels","Bucharest","Budapest","Cologne","Copenhagen","Dortmund","Dresden","Dublin","D\xfcsseldorf","Essen","Frankfurt","Genoa","Glasgow","Gothenburg","Hamburg","Hannover","Helsinki","Leeds","Leipzig","Lisbon","\u0141\xf3d\u017a","London","Krak\xf3w","Madrid","M\xe1laga","Manchester","Marseille","Milan","Munich","Naples","Palermo","Paris","Pozna\u0144","Prague","Riga","Rome","Rotterdam","Seville","Sheffield","Sofia","Stockholm","Stuttgart","The Hague","Turin","Valencia","Vienna","Vilnius","Warsaw","Wroc\u0142aw","Zagreb","Zaragoza"];ngxValue=[];ngxDisabled=!1;doSelectOptions=r=>console.log("MultipleDemoComponent.doSelectOptions",r);static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-multiple-demo"]],decls:13,vars:9,consts:[[1,"example-block"],[1,"example-block__item"],["placeholder","No city selected",3,"ngModelChange","selectionChanges","multiple","items","disabled","ngModel","autoClearSearch"],[1,"alert","alert-secondary"],[1,"btn","btn-primary",3,"click"]],template:function(s,d){1&s&&(u.j41(0,"h3"),u.EFF(1,"Select multiple cities"),u.k0s(),u.j41(2,"div",0)(3,"div",1)(4,"ngx-select",2),u.mxI("ngModelChange",function(_){return u.DH7(d.ngxValue,_)||(d.ngxValue=_),_}),u.bIt("selectionChanges",function(_){return d.doSelectOptions(_)}),u.k0s(),u.nrm(5,"p"),u.j41(6,"div",3)(7,"pre"),u.EFF(8),u.nI1(9,"json"),u.k0s()(),u.j41(10,"div")(11,"button",4),u.bIt("click",function(){return d.ngxDisabled=!d.ngxDisabled}),u.EFF(12),u.k0s()()()()),2&s&&(u.R7$(4),u.Y8G("multiple",!0)("items",d.items)("disabled",d.ngxDisabled),u.R50("ngModel",d.ngxValue),u.Y8G("autoClearSearch",!0),u.R7$(4),u.JRh(u.bMT(9,7,d.ngxValue)),u.R7$(4),u.SpI(" ",d.ngxDisabled?"Enable":"Disable"," "))},dependencies:[Jo,En,va,Uo,Wo,cr],encapsulation:2})}return i})(),Rf=(()=>{class i{items=[{id:100,text:"Austria",children:[{id:54,text:"Vienna"}]},{id:200,text:"Belgium",children:[{id:2,text:"Antwerp"},{id:9,text:"Brussels"}]},{id:300,text:"Bulgaria",children:[{id:48,text:"Sofia"}]},{id:400,text:"Croatia",children:[{id:58,text:"Zagreb"}]},{id:500,text:"Czech Republic",children:[{id:42,text:"Prague"}]},{id:600,text:"Denmark",children:[{id:13,text:"Copenhagen"}]},{id:700,text:"England",children:[{id:6,text:"Birmingham"},{id:7,text:"Bradford"},{id:26,text:"Leeds",disabled:!0},{id:30,text:"London"},{id:34,text:"Manchester"},{id:47,text:"Sheffield"}]},{id:800,text:"Finland",children:[{id:25,text:"Helsinki"}]},{id:900,text:"France",children:[{id:35,text:"Marseille"},{id:40,text:"Paris"}]},{id:1e3,text:"Germany",children:[{id:5,text:"Berlin"},{id:8,text:"Bremen"},{id:12,text:"Cologne"},{id:14,text:"Dortmund"},{id:15,text:"Dresden"},{id:17,text:"D\xfcsseldorf"},{id:18,text:"Essen"},{id:19,text:"Frankfurt"},{id:23,text:"Hamburg"},{id:24,text:"Hannover"},{id:27,text:"Leipzig"},{id:37,text:"Munich"},{id:50,text:"Stuttgart"}]},{id:1100,text:"Greece",children:[{id:3,text:"Athens"}]},{id:1200,text:"Hungary",children:[{id:11,text:"Budapest"}]},{id:1300,text:"Ireland",children:[{id:16,text:"Dublin"}]},{id:1400,text:"Italy",children:[{id:20,text:"Genoa"},{id:36,text:"Milan"},{id:38,text:"Naples"},{id:39,text:"Palermo"},{id:44,text:"Rome"},{id:52,text:"Turin"}]},{id:1500,text:"Latvia",children:[{id:43,text:"Riga"}]},{id:1600,text:"Lithuania",children:[{id:55,text:"Vilnius"}]},{id:1700,text:"Netherlands",children:[{id:1,text:"Amsterdam"},{id:45,text:"Rotterdam"},{id:51,text:"The Hague"}]},{id:1800,text:"Poland",children:[{id:29,text:"\u0141\xf3d\u017a"},{id:31,text:"Krak\xf3w"},{id:41,text:"Pozna\u0144"},{id:56,text:"Warsaw"},{id:57,text:"Wroc\u0142aw"}]},{id:1900,text:"Portugal",children:[{id:28,text:"Lisbon"}]},{id:2e3,text:"Romania",children:[{id:10,text:"Bucharest"}]},{id:2100,text:"Scotland",children:[{id:21,text:"Glasgow"}]},{id:2200,text:"Spain",children:[{id:4,text:"Barcelona"},{id:32,text:"Madrid"},{id:33,text:"M\xe1laga"},{id:46,text:"Seville"},{id:53,text:"Valencia"},{id:59,text:"Zaragoza"}]},{id:2300,text:"Sweden",children:[{id:22,text:"Gothenburg"},{id:49,text:"Stockholm"}]}];ngxValue=[];ngxDisabled=!1;static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-children-demo"]],decls:13,vars:8,consts:[[1,"example-block"],[1,"example-block__item"],["optionValueField","id","optionTextField","text","optGroupLabelField","text","optGroupOptionsField","children","placeholder","No city selected",3,"ngModelChange","allowClear","items","disabled","ngModel"],[1,"alert","alert-secondary"],[1,"btn","btn-primary",3,"click"]],template:function(s,d){1&s&&(u.j41(0,"h3"),u.EFF(1,"Select a city by country"),u.k0s(),u.j41(2,"div",0)(3,"div",1)(4,"ngx-select",2),u.mxI("ngModelChange",function(_){return u.DH7(d.ngxValue,_)||(d.ngxValue=_),_}),u.k0s(),u.nrm(5,"p"),u.j41(6,"div",3)(7,"pre"),u.EFF(8),u.nI1(9,"json"),u.k0s()(),u.j41(10,"div")(11,"button",4),u.bIt("click",function(){return d.ngxDisabled=!d.ngxDisabled}),u.EFF(12),u.k0s()()()()),2&s&&(u.R7$(4),u.Y8G("allowClear",!0)("items",d.items)("disabled",d.ngxDisabled),u.R50("ngModel",d.ngxValue),u.R7$(4),u.JRh(u.bMT(9,6,d.ngxValue)),u.R7$(4),u.SpI(" ",d.ngxDisabled?"Enable":"Disable"," "))},dependencies:[Jo,En,va,Uo,Wo,cr],encapsulation:2})}return i})();function rm(i,l){if(1&i&&(u.nrm(0,"span",7)(1,"span",8),u.EFF(2)),2&i){const r=l.$implicit,s=l.text,d=u.XpG();u.Aen(d.style("background-color:"+r.value)),u.R7$(),u.Y8G("innerHtml",s,u.npT),u.R7$(),u.SpI(" (",r.data.hex,") ")}}function xc(i,l){1&i&&u.EFF(0),2&i&&u.SpI(' "',l.$implicit,'" not found ')}const Uw=[{name:"Blue 10",hex:"#C0E6FF"},{name:"Blue 20",hex:"#7CC7FF"},{name:"Blue 30",hex:"#5AAAFA",disabled:!0},{name:"Blue 40",hex:"#5596E6"},{name:"Blue 50",hex:"#4178BE"},{name:"Blue 60",hex:"#325C80"},{name:"Blue 70",hex:"#264A60"},{name:"Blue 80",hex:"#1D3649"},{name:"Blue 90",hex:"#152935"},{name:"Blue 100",hex:"#010205"},{name:"Green 10",hex:"#C8F08F"},{name:"Green 20",hex:"#B4E051"},{name:"Green 30",hex:"#8CD211"},{name:"Green 40",hex:"#5AA700"},{name:"Green 50",hex:"#4B8400"},{name:"Green 60",hex:"#2D660A"},{name:"Green 70",hex:"#144D14"},{name:"Green 80",hex:"#0A3C02"},{name:"Green 90",hex:"#0C2808"},{name:"Green 100",hex:"#010200"},{name:"Red 10",hex:"#FFD2DD"},{name:"Red 20",hex:"#FFA5B4"},{name:"Red 30",hex:"#FF7D87"},{name:"Red 40",hex:"#FF5050"},{name:"Red 50",hex:"#E71D32"},{name:"Red 60",hex:"#AD1625"},{name:"Red 70",hex:"#8C101C"},{name:"Red 80",hex:"#6E0A1E"},{name:"Red 90",hex:"#4C0A17"},{name:"Red 100",hex:"#040001"},{name:"Yellow 10",hex:"#FDE876"},{name:"Yellow 20",hex:"#FDD600"},{name:"Yellow 30",hex:"#EFC100"},{name:"Yellow 40",hex:"#BE9B00"},{name:"Yellow 50",hex:"#8C7300"},{name:"Yellow 60",hex:"#735F00"},{name:"Yellow 70",hex:"#574A00"},{name:"Yellow 80",hex:"#3C3200"},{name:"Yellow 90",hex:"#281E00"},{name:"Yellow 100",hex:"#020100"}];let om=(()=>{class i{sanitizer;items=Uw;ngxValue=[];ngxDisabled=!1;constructor(r){this.sanitizer=r}style(r){return this.sanitizer.bypassSecurityTrustStyle(r)}static \u0275fac=function(s){return new(s||i)(u.rXU(_l))};static \u0275cmp=u.VBU({type:i,selectors:[["app-rich-demo"]],decls:15,vars:8,consts:[[1,"example-block"],[1,"example-block__item"],["optionValueField","hex","optionTextField","name","placeholder","No city selected",3,"ngModelChange","allowClear","items","disabled","ngModel"],["ngx-select-option","","ngx-select-option-selected",""],["ngx-select-option-not-found",""],[1,"alert","alert-secondary"],[1,"btn","btn-primary",3,"click"],[1,"color-box"],[3,"innerHtml"]],template:function(s,d){1&s&&(u.j41(0,"h3"),u.EFF(1,"Select a color"),u.k0s(),u.j41(2,"div",0)(3,"div",1)(4,"ngx-select",2),u.mxI("ngModelChange",function(_){return u.DH7(d.ngxValue,_)||(d.ngxValue=_),_}),u.DNE(5,rm,3,4,"ng-template",3)(6,xc,1,1,"ng-template",4),u.k0s(),u.nrm(7,"p"),u.j41(8,"div",5)(9,"pre"),u.EFF(10),u.nI1(11,"json"),u.k0s()(),u.j41(12,"div")(13,"button",6),u.bIt("click",function(){return d.ngxDisabled=!d.ngxDisabled}),u.EFF(14),u.k0s()()()()),2&s&&(u.R7$(4),u.Y8G("allowClear",!0)("items",d.items)("disabled",d.ngxDisabled),u.R50("ngModel",d.ngxValue),u.R7$(6),u.JRh(u.bMT(11,6,d.ngxValue)),u.R7$(4),u.SpI(" ",d.ngxDisabled?"Enable":"Disable"," "))},dependencies:[Jo,En,jd,Gp,Hd,va,Uo,Wo,cr],styles:[".color-box{display:inline-block;height:14px;width:14px;margin-right:4px;border:1px solid #000}\n"],encapsulation:2})}return i})(),ib=(()=>{class i{_items=["Amsterdam","Antwerp","Athens","Barcelona","Berlin","Birmingham","Bradford","Bremen","Brussels","Bucharest","Budapest","Cologne","Copenhagen","Dortmund","Dresden","Dublin","D\xfcsseldorf","Essen","Frankfurt","Genoa","Glasgow","Gothenburg","Hamburg","Hannover","Helsinki","Krak\xf3w","Leeds","Leipzig","Lisbon","London","Madrid","Manchester","Marseille","Milan","Munich","M\xe1laga","Naples","Palermo","Paris","Pozna\u0144","Prague","Riga","Rome","Rotterdam","Seville","Sheffield","Sofia","Stockholm","Stuttgart","The Hague","Turin","Valencia","Vienna","Vilnius","Warsaw","Wroc\u0142aw","Zagreb","Zaragoza","\u0141\xf3d\u017a"];constructor(){const r=[];for(let s=1;s<=20;s++)this._items.forEach(d=>r.push(s+" "+d));this.items=r}items=[];ngxValue=[];ngxDisabled=!1;static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-no-autocomplete-demo"]],decls:13,vars:10,consts:[[1,"example-block"],[1,"example-block__item"],["placeholder","No city selected",3,"ngModelChange","allowClear","items","noAutoComplete","disabled","ngModel"],[1,"alert","alert-secondary"],[1,"btn","btn-primary",3,"click"]],template:function(s,d){1&s&&(u.j41(0,"h3"),u.EFF(1),u.k0s(),u.j41(2,"div",0)(3,"div",1)(4,"ngx-select",2),u.mxI("ngModelChange",function(_){return u.DH7(d.ngxValue,_)||(d.ngxValue=_),_}),u.k0s(),u.nrm(5,"p"),u.j41(6,"div",3)(7,"pre"),u.EFF(8),u.nI1(9,"json"),u.k0s()(),u.j41(10,"div")(11,"button",4),u.bIt("click",function(){return d.ngxDisabled=!d.ngxDisabled}),u.EFF(12),u.k0s()()()()),2&s&&(u.R7$(),u.SpI("Select a single city with ",d.items.length," items"),u.R7$(3),u.Y8G("allowClear",!0)("items",d.items)("noAutoComplete",!0)("disabled",d.ngxDisabled),u.R50("ngModel",d.ngxValue),u.R7$(4),u.JRh(u.bMT(9,8,d.ngxValue)),u.R7$(4),u.SpI(" ",d.ngxDisabled?"Enable":"Disable"," "))},dependencies:[Jo,En,va,Uo,Wo,cr],encapsulation:2})}return i})(),$w=(()=>{class i{items=["Amsterdam","Antwerp","Athens","Barcelona","Berlin","Birmingham","Bradford","Bremen","Brussels","Bucharest","Budapest","Cologne","Copenhagen"];ngxControl1=new Gt;ngxControl2=new Gt;static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-append-to-demo"]],decls:33,vars:12,consts:[[1,"example-block"],[1,"example-block__item"],[1,"card",2,"display","block","overflow","scroll","height","300px"],[2,"width","800px","height","800px","padding","200px"],[2,"padding","50px","overflow","hidden","border","1px solid black"],["placeholder","No city selected",3,"formControl","items"],[1,"alert","alert-secondary"],["type","button",1,"btn","btn-primary",3,"click"],["id","scrollable",1,"card",2,"display","block","overflow","scroll","height","300px"],["placeholder","No city selected","appendTo","#scrollable",3,"formControl","items"]],template:function(s,d){1&s&&(u.j41(0,"h3"),u.EFF(1,"Container with fixed height and hidden overflow"),u.k0s(),u.j41(2,"div",0)(3,"div",1)(4,"p"),u.EFF(5,"Default"),u.k0s(),u.j41(6,"div",2)(7,"div",3)(8,"div",4),u.nrm(9,"ngx-select",5),u.k0s()()(),u.nrm(10,"p"),u.j41(11,"div",6)(12,"pre"),u.EFF(13),u.nI1(14,"json"),u.k0s()(),u.j41(15,"div")(16,"button",7),u.bIt("click",function(){return d.ngxControl1.disabled?d.ngxControl1.enable():d.ngxControl1.disable()}),u.EFF(17),u.k0s()()(),u.j41(18,"div",1)(19,"p"),u.EFF(20,"Appended to scrollable"),u.k0s(),u.j41(21,"div",8)(22,"div",3)(23,"div",4),u.nrm(24,"ngx-select",9),u.k0s()()(),u.nrm(25,"p"),u.j41(26,"div",6)(27,"pre"),u.EFF(28),u.nI1(29,"json"),u.k0s()(),u.j41(30,"div")(31,"button",7),u.bIt("click",function(){return d.ngxControl2.disabled?d.ngxControl2.enable():d.ngxControl2.disable()}),u.EFF(32),u.k0s()()()()),2&s&&(u.R7$(9),u.Y8G("formControl",d.ngxControl1)("items",d.items),u.R7$(4),u.JRh(u.bMT(14,8,d.ngxControl1.value)),u.R7$(4),u.SpI(" ",d.ngxControl1.disabled?"Enable":"Disable"," "),u.R7$(7),u.Y8G("formControl",d.ngxControl2)("items",d.items),u.R7$(4),u.JRh(u.bMT(29,10,d.ngxControl2.value)),u.R7$(4),u.SpI(" ",d.ngxControl2.disabled?"Enable":"Disable"," "))},dependencies:[Jo,En,Td,Uo,qo,cr],encapsulation:2})}return i})();const sb=x(414).A,ab={single:{heading:"Single",ts:x(249),html:x(205)},multiple:{heading:"Multiple",ts:x(545),html:x(125)},children:{heading:"Children",ts:x(224),html:x(96)},rich:{heading:"Rich",ts:x(379),html:x(499)},noAutoComplete:{heading:"noAutoComplete",ts:x(203),html:x(3)},appendTo:{heading:"appendTo",ts:x(607),html:x(175)}};let im=(()=>{class i{currentHeading="Single";tabDesc=ab;doc=sb;static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-select-section"]],decls:24,vars:7,consts:[["label","Single"],[3,"desc"],["label","Multiple"],["label","Children"],["label","Rich"],["label","No autocomplete"],["label","Append to element"],[1,"card","card-block","panel","panel-default","panel-body"],[1,"card-body","doc-api",3,"innerHTML"]],template:function(s,d){1&s&&(u.j41(0,"section")(1,"mat-tab-group")(2,"mat-tab",0)(3,"app-sample-section",1),u.nrm(4,"app-single-demo"),u.k0s()(),u.j41(5,"mat-tab",2)(6,"app-sample-section",1),u.nrm(7,"app-multiple-demo"),u.k0s()(),u.j41(8,"mat-tab",3)(9,"app-sample-section",1),u.nrm(10,"app-children-demo"),u.k0s()(),u.j41(11,"mat-tab",4)(12,"app-sample-section",1),u.nrm(13,"app-rich-demo"),u.k0s()(),u.j41(14,"mat-tab",5)(15,"app-sample-section",1),u.nrm(16,"app-no-autocomplete-demo"),u.k0s()(),u.j41(17,"mat-tab",6)(18,"app-sample-section",1),u.nrm(19,"app-append-to-demo"),u.k0s()()(),u.j41(20,"h2"),u.EFF(21,"Documentation"),u.k0s(),u.j41(22,"div",7),u.nrm(23,"div",8),u.k0s()()),2&s&&(u.R7$(3),u.Y8G("desc",d.tabDesc.single),u.R7$(3),u.Y8G("desc",d.tabDesc.multiple),u.R7$(3),u.Y8G("desc",d.tabDesc.children),u.R7$(3),u.Y8G("desc",d.tabDesc.rich),u.R7$(3),u.Y8G("desc",d.tabDesc.noAutoComplete),u.R7$(3),u.Y8G("desc",d.tabDesc.appendTo),u.R7$(5),u.Y8G("innerHTML",d.doc,u.npT))},dependencies:[Tc,Nf,Of,tm,Hw,nm,Rf,om,ib,$w],styles:["[_nghost-%COMP%]{display:block}"]})}return i})();const Mn=x(330),Sc=x(48).A;(function nC(i,l){return(0,u.TL3)({rootComponent:i,...t_(l)})})((()=>{class i{gettingStarted=Sc;p=Mn;ngAfterContentInit(){setTimeout(()=>{},150)}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=u.VBU({type:i,selectors:[["app-root"]],decls:33,vars:2,consts:[[1,"bd-pageheader"],[1,"container"],["href","https://getbootstrap.com/docs/3.3/","target","_blank",1,"badge","badge-light"],["href","https://getbootstrap.com/","target","_blank",1,"badge","badge-light"],["href","https://github.com/optimistex/ngx-select-ex",1,"btn","btn-primary"],[1,"row"],[1,"col-lg-1"],["src",u.wXG`https://ghbtns.com/github-btn.html?user=optimistex&repo=ngx-select-ex&type=star&count=true`,"frameborder","0","scrolling","0","width","170px","height","20px"],["src",u.wXG`https://ghbtns.com/github-btn.html?user=optimistex&repo=ngx-select-ex&type=fork&count=true`,"frameborder","0","scrolling","0","width","170px","height","20px"],["id","getting-started",3,"innerHtml"],[1,"footer"],[1,"text-muted","text-center"],["href","https://github.com/optimistex/ngx-select-ex"],["href","https://github.com/optimistex"]],template:function(s,d){1&s&&(u.j41(0,"main",0)(1,"div",1)(2,"h1"),u.EFF(3),u.k0s(),u.j41(4,"p"),u.EFF(5,"Native Angular component for Select"),u.k0s(),u.j41(6,"p"),u.EFF(7," Compatible with "),u.j41(8,"a",2),u.EFF(9,"Bootstrap 3"),u.k0s(),u.EFF(10," and "),u.j41(11,"b")(12,"a",3),u.EFF(13,"Bootstrap 4"),u.k0s()()(),u.j41(14,"a",4),u.EFF(15,"View on GitHub"),u.k0s(),u.j41(16,"div",5)(17,"div",6),u.nrm(18,"iframe",7),u.k0s(),u.j41(19,"div",6),u.nrm(20,"iframe",8),u.k0s()()()(),u.j41(21,"div",1),u.nrm(22,"section",9)(23,"app-select-section"),u.k0s(),u.j41(24,"footer",10)(25,"div",1)(26,"p",11)(27,"a",12),u.EFF(28,"ngx-select-ex"),u.k0s(),u.EFF(29," is maintained by "),u.j41(30,"a",13),u.EFF(31,"optimistex"),u.k0s(),u.EFF(32,"."),u.k0s()()()),2&s&&(u.R7$(3),u.SpI("ngx-select-ex v",null==d.p?null:d.p.version,""),u.R7$(19),u.Y8G("innerHtml",d.gettingStarted,u.npT))},dependencies:[Jo,im],encapsulation:2})}return i})(),ku).catch(i=>console.error(i))},667:(he,U,x)=>{he=x.nmd(he);var K="__lodash_hash_undefined__",G=9007199254740991,be="[object Arguments]",Q="[object Array]",ve="[object Boolean]",Y="[object Date]",B="[object Error]",pe="[object Function]",ae="[object Map]",xt="[object Number]",Te="[object Object]",jt="[object Promise]",lt="[object RegExp]",xe="[object Set]",te="[object String]",mt="[object WeakMap]",He="[object ArrayBuffer]",L="[object DataView]",hi=/^\[object .+?Constructor\]$/,Cr=/^(?:0|[1-9]\d*)$/,Ue={};Ue["[object Float32Array]"]=Ue["[object Float64Array]"]=Ue["[object Int8Array]"]=Ue["[object Int16Array]"]=Ue["[object Int32Array]"]=Ue["[object Uint8Array]"]=Ue["[object Uint8ClampedArray]"]=Ue["[object Uint16Array]"]=Ue["[object Uint32Array]"]=!0,Ue[be]=Ue[Q]=Ue[He]=Ue[ve]=Ue[L]=Ue[Y]=Ue[B]=Ue[pe]=Ue[ae]=Ue[xt]=Ue[Te]=Ue[lt]=Ue[xe]=Ue[te]=Ue[mt]=!1;var tn="object"==typeof global&&global&&global.Object===Object&&global,Xa="object"==typeof self&&self&&self.Object===Object&&self,$n=tn||Xa||Function("return this")(),ru=U&&!U.nodeType&&U,ih=ru&&he&&!he.nodeType&&he,ps=ih&&ih.exports===ru,gs=ps&&tn.process,ms=function(){try{return gs&&gs.binding&&gs.binding("util")}catch{}}(),pi=ms&&ms.isTypedArray;function nn(b,I){for(var k=-1,X=null==b?0:b.length;++kot))return!1;var Ze=ge.get(b);if(Ze&&ge.get(I))return Ze==I;var rn=-1,mn=!0,ct=2&k?new St:void 0;for(ge.set(b,I),ge.set(I,b);++rn-1},Fn.prototype.set=function ch(b,I){var k=this.__data__,X=Yr(k,b);return X<0?(++this.size,k.push([b,I])):k[X][1]=I,this},Xr.prototype.clear=function uh(){this.size=0,this.__data__={hash:new Nn,map:new(zt||Fn),string:new Nn}},Xr.prototype.delete=function Cs(b){var I=Ir(this,b).delete(b);return this.size-=I?1:0,I},Xr.prototype.get=function el(b){return Ir(this,b).get(b)},Xr.prototype.has=function tl(b){return Ir(this,b).has(b)},Xr.prototype.set=function dh(b,I){var k=Ir(this,b),X=k.size;return k.set(b,I),this.size+=k.size==X?0:1,this},St.prototype.add=St.prototype.push=function ie(b){return this.__data__.set(b,K),this},St.prototype.has=function nl(b){return this.__data__.has(b)},ar.prototype.clear=function du(){this.__data__=new Fn,this.size=0},ar.prototype.delete=function fh(b){var I=this.__data__,k=I.delete(b);return this.size=I.size,k},ar.prototype.get=function fu(b){return this.__data__.get(b)},ar.prototype.has=function Oe(b){return this.__data__.has(b)},ar.prototype.set=function hu(b,I){var k=this.__data__;if(k instanceof Fn){var X=k.__data__;if(!zt||X.length<199)return X.push([b,I]),this.size=++k.size,this;k=this.__data__=new Xr(X)}return k.set(b,I),this.size=k.size,this};var ph=Zr?function(b){return null==b?[]:(b=Object(b),function ou(b,I){for(var k=-1,X=null==b?0:b.length,Ye=0,ge=[];++k-1&&b%1==0&&b-1&&b%1==0&&b<=G}function cr(b){var I=typeof b;return null!=b&&("object"==I||"function"==I)}function vi(b){return null!=b&&"object"==typeof b}var sl=pi?function _s(b){return function(I){return b(I)}}(pi):function rl(b){return vi(b)&&il(b.length)&&!!Ue[Jr(b)]};function bi(b){return function ol(b){return null!=b&&il(b.length)&&!gu(b)}(b)?function xo(b,I){var k=lr(b),X=!k&&Kn(b),Ye=!k&&!X&&ue(b),ge=!k&&!X&&!Ye&&sl(b),qe=k||X||Ye||ge,ot=qe?function Eo(b,I){for(var k=-1,X=Array(b);++k{"use strict";x.d(U,{t:()=>K});var u=x(413);class K extends u.B{constructor($){super(),this._value=$}get value(){return this.getValue()}_subscribe($){const G=super._subscribe($);return!G.closed&&$.next(this._value),G}getValue(){const{hasError:$,thrownError:G,_value:be}=this;if($)throw G;return this._throwIfClosed(),be}next($){super.next(this._value=$)}}},226:(he,U,x)=>{"use strict";x.d(U,{c:()=>Y});var u=x(707),K=x(359),se=x(494),$=x(669);var Q=x(26),q=x(71),ve=x(786);let Y=(()=>{class ae{constructor(Be){Be&&(this._subscribe=Be)}lift(Be){const Te=new ae;return Te.source=this,Te.operator=Be,Te}subscribe(Be,Te,jt){const gt=function Ct(ae){return ae&&ae instanceof u.vU||function pe(ae){return ae&&(0,q.T)(ae.next)&&(0,q.T)(ae.error)&&(0,q.T)(ae.complete)}(ae)&&(0,K.Uv)(ae)}(Be)?Be:new u.Ms(Be,Te,jt);return(0,ve.Y)(()=>{const{operator:lt,source:xe}=this;gt.add(lt?lt.call(gt,xe):xe?this._subscribe(gt):this._trySubscribe(gt))}),gt}_trySubscribe(Be){try{return this._subscribe(Be)}catch(Te){Be.error(Te)}}forEach(Be,Te){return new(Te=B(Te))((jt,gt)=>{const lt=new u.Ms({next:xe=>{try{Be(xe)}catch(te){gt(te),lt.unsubscribe()}},error:gt,complete:jt});this.subscribe(lt)})}_subscribe(Be){var Te;return null===(Te=this.source)||void 0===Te?void 0:Te.subscribe(Be)}[se.s](){return this}pipe(...Be){return function be(ae){return 0===ae.length?$.D:1===ae.length?ae[0]:function(Be){return ae.reduce((Te,jt)=>jt(Te),Be)}}(Be)(this)}toPromise(Be){return new(Be=B(Be))((Te,jt)=>{let gt;this.subscribe(lt=>gt=lt,lt=>jt(lt),()=>Te(gt))})}}return ae.create=xt=>new ae(xt),ae})();function B(ae){var xt;return null!==(xt=ae??Q.$.Promise)&&void 0!==xt?xt:Promise}},413:(he,U,x)=>{"use strict";x.d(U,{B:()=>Q});var u=x(226),K=x(359);const $=(0,x(853).L)(ve=>function(){ve(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var G=x(908),be=x(786);let Q=(()=>{class ve extends u.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(B){const pe=new q(this,this);return pe.operator=B,pe}_throwIfClosed(){if(this.closed)throw new $}next(B){(0,be.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const pe of this.currentObservers)pe.next(B)}})}error(B){(0,be.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=B;const{observers:pe}=this;for(;pe.length;)pe.shift().error(B)}})}complete(){(0,be.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:B}=this;for(;B.length;)B.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var B;return(null===(B=this.observers)||void 0===B?void 0:B.length)>0}_trySubscribe(B){return this._throwIfClosed(),super._trySubscribe(B)}_subscribe(B){return this._throwIfClosed(),this._checkFinalizedStatuses(B),this._innerSubscribe(B)}_innerSubscribe(B){const{hasError:pe,isStopped:Ct,observers:ae}=this;return pe||Ct?K.Kn:(this.currentObservers=null,ae.push(B),new K.yU(()=>{this.currentObservers=null,(0,G.o)(ae,B)}))}_checkFinalizedStatuses(B){const{hasError:pe,thrownError:Ct,isStopped:ae}=this;pe?B.error(Ct):ae&&B.complete()}asObservable(){const B=new u.c;return B.source=this,B}}return ve.create=(Y,B)=>new q(Y,B),ve})();class q extends Q{constructor(Y,B){super(),this.destination=Y,this.source=B}next(Y){var B,pe;null===(pe=null===(B=this.destination)||void 0===B?void 0:B.next)||void 0===pe||pe.call(B,Y)}error(Y){var B,pe;null===(pe=null===(B=this.destination)||void 0===B?void 0:B.error)||void 0===pe||pe.call(B,Y)}complete(){var Y,B;null===(B=null===(Y=this.destination)||void 0===Y?void 0:Y.complete)||void 0===B||B.call(Y)}_subscribe(Y){var B,pe;return null!==(pe=null===(B=this.source)||void 0===B?void 0:B.subscribe(Y))&&void 0!==pe?pe:K.Kn}}},707:(he,U,x)=>{"use strict";x.d(U,{Ms:()=>Be,vU:()=>pe});var u=x(71),K=x(359),se=x(26),$=x(334),G=x(343);const be=ve("C",void 0,void 0);function ve(xe,te,ze){return{kind:xe,value:te,error:ze}}var Y=x(270),B=x(786);class pe extends K.yU{constructor(te){super(),this.isStopped=!1,te?(this.destination=te,(0,K.Uv)(te)&&te.add(this)):this.destination=lt}static create(te,ze,Et){return new Be(te,ze,Et)}next(te){this.isStopped?gt(function q(xe){return ve("N",xe,void 0)}(te),this):this._next(te)}error(te){this.isStopped?gt(function Q(xe){return ve("E",void 0,xe)}(te),this):(this.isStopped=!0,this._error(te))}complete(){this.isStopped?gt(be,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(te){this.destination.next(te)}_error(te){try{this.destination.error(te)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Ct=Function.prototype.bind;function ae(xe,te){return Ct.call(xe,te)}class xt{constructor(te){this.partialObserver=te}next(te){const{partialObserver:ze}=this;if(ze.next)try{ze.next(te)}catch(Et){Te(Et)}}error(te){const{partialObserver:ze}=this;if(ze.error)try{ze.error(te)}catch(Et){Te(Et)}else Te(te)}complete(){const{partialObserver:te}=this;if(te.complete)try{te.complete()}catch(ze){Te(ze)}}}class Be extends pe{constructor(te,ze,Et){let mt;if(super(),(0,u.T)(te)||!te)mt={next:te??void 0,error:ze??void 0,complete:Et??void 0};else{let He;this&&se.$.useDeprecatedNextContext?(He=Object.create(te),He.unsubscribe=()=>this.unsubscribe(),mt={next:te.next&&ae(te.next,He),error:te.error&&ae(te.error,He),complete:te.complete&&ae(te.complete,He)}):mt=te}this.destination=new xt(mt)}}function Te(xe){se.$.useDeprecatedSynchronousErrorHandling?(0,B.l)(xe):(0,$.m)(xe)}function gt(xe,te){const{onStoppedNotification:ze}=se.$;ze&&Y.f.setTimeout(()=>ze(xe,te))}const lt={closed:!0,next:G.l,error:function jt(xe){throw xe},complete:G.l}},359:(he,U,x)=>{"use strict";x.d(U,{Kn:()=>be,yU:()=>G,Uv:()=>Q});var u=x(71);const se=(0,x(853).L)(ve=>function(B){ve(this),this.message=B?`${B.length} errors occurred during unsubscription:\n${B.map((pe,Ct)=>`${Ct+1}) ${pe.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=B});var $=x(908);class G{constructor(Y){this.initialTeardown=Y,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let Y;if(!this.closed){this.closed=!0;const{_parentage:B}=this;if(B)if(this._parentage=null,Array.isArray(B))for(const ae of B)ae.remove(this);else B.remove(this);const{initialTeardown:pe}=this;if((0,u.T)(pe))try{pe()}catch(ae){Y=ae instanceof se?ae.errors:[ae]}const{_finalizers:Ct}=this;if(Ct){this._finalizers=null;for(const ae of Ct)try{q(ae)}catch(xt){Y=Y??[],xt instanceof se?Y=[...Y,...xt.errors]:Y.push(xt)}}if(Y)throw new se(Y)}}add(Y){var B;if(Y&&Y!==this)if(this.closed)q(Y);else{if(Y instanceof G){if(Y.closed||Y._hasParent(this))return;Y._addParent(this)}(this._finalizers=null!==(B=this._finalizers)&&void 0!==B?B:[]).push(Y)}}_hasParent(Y){const{_parentage:B}=this;return B===Y||Array.isArray(B)&&B.includes(Y)}_addParent(Y){const{_parentage:B}=this;this._parentage=Array.isArray(B)?(B.push(Y),B):B?[B,Y]:Y}_removeParent(Y){const{_parentage:B}=this;B===Y?this._parentage=null:Array.isArray(B)&&(0,$.o)(B,Y)}remove(Y){const{_finalizers:B}=this;B&&(0,$.o)(B,Y),Y instanceof G&&Y._removeParent(this)}}G.EMPTY=(()=>{const ve=new G;return ve.closed=!0,ve})();const be=G.EMPTY;function Q(ve){return ve instanceof G||ve&&"closed"in ve&&(0,u.T)(ve.remove)&&(0,u.T)(ve.add)&&(0,u.T)(ve.unsubscribe)}function q(ve){(0,u.T)(ve)?ve():ve.unsubscribe()}},26:(he,U,x)=>{"use strict";x.d(U,{$:()=>u});const u={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},983:(he,U,x)=>{"use strict";x.d(U,{w:()=>K});const K=new(x(226).c)(G=>G.complete())},360:(he,U,x)=>{"use strict";x.d(U,{_:()=>K});var u=x(707);function K($,G,be,Q,q){return new se($,G,be,Q,q)}class se extends u.vU{constructor(G,be,Q,q,ve,Y){super(G),this.onFinalize=ve,this.shouldUnsubscribe=Y,this._next=be?function(B){try{be(B)}catch(pe){G.error(pe)}}:super._next,this._error=q?function(B){try{q(B)}catch(pe){G.error(pe)}finally{this.unsubscribe()}}:super._error,this._complete=Q?function(){try{Q()}catch(B){G.error(B)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var G;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:be}=this;super.unsubscribe(),!be&&(null===(G=this.onFinalize)||void 0===G||G.call(this))}}}},964:(he,U,x)=>{"use strict";x.d(U,{p:()=>se});var u=x(974),K=x(360);function se($,G){return(0,u.N)((be,Q)=>{let q=0;be.subscribe((0,K._)(Q,ve=>$.call(G,ve,q++)&&Q.next(ve)))})}},354:(he,U,x)=>{"use strict";x.d(U,{T:()=>se});var u=x(974),K=x(360);function se($,G){return(0,u.N)((be,Q)=>{let q=0;be.subscribe((0,K._)(Q,ve=>{Q.next($.call(G,ve,q++))}))})}},697:(he,U,x)=>{"use strict";x.d(U,{s:()=>$});var u=x(983),K=x(974),se=x(360);function $(G){return G<=0?()=>u.w:(0,K.N)((be,Q)=>{let q=0;be.subscribe((0,se._)(Q,ve=>{++q<=G&&(Q.next(ve),G<=q&&Q.complete())}))})}},270:(he,U,x)=>{"use strict";x.d(U,{f:()=>u});const u={setTimeout(K,se,...$){const{delegate:G}=u;return G?.setTimeout?G.setTimeout(K,se,...$):setTimeout(K,se,...$)},clearTimeout(K){const{delegate:se}=u;return(se?.clearTimeout||clearTimeout)(K)},delegate:void 0}},494:(he,U,x)=>{"use strict";x.d(U,{s:()=>u});const u="function"==typeof Symbol&&Symbol.observable||"@@observable"},908:(he,U,x)=>{"use strict";function u(K,se){if(K){const $=K.indexOf(se);0<=$&&K.splice($,1)}}x.d(U,{o:()=>u})},853:(he,U,x)=>{"use strict";function u(K){const $=K(G=>{Error.call(G),G.stack=(new Error).stack});return $.prototype=Object.create(Error.prototype),$.prototype.constructor=$,$}x.d(U,{L:()=>u})},786:(he,U,x)=>{"use strict";x.d(U,{Y:()=>se,l:()=>$});var u=x(26);let K=null;function se(G){if(u.$.useDeprecatedSynchronousErrorHandling){const be=!K;if(be&&(K={errorThrown:!1,error:null}),G(),be){const{errorThrown:Q,error:q}=K;if(K=null,Q)throw q}}else G()}function $(G){u.$.useDeprecatedSynchronousErrorHandling&&K&&(K.errorThrown=!0,K.error=G)}},669:(he,U,x)=>{"use strict";function u(K){return K}x.d(U,{D:()=>u})},71:(he,U,x)=>{"use strict";function u(K){return"function"==typeof K}x.d(U,{T:()=>u})},974:(he,U,x)=>{"use strict";x.d(U,{N:()=>se});var u=x(71);function se($){return G=>{if(function K($){return(0,u.T)($?.lift)}(G))return G.lift(function(be){try{return $(be,this)}catch(Q){this.error(Q)}});throw new TypeError("Unable to lift unknown Observable type")}}},343:(he,U,x)=>{"use strict";function u(){}x.d(U,{l:()=>u})},334:(he,U,x)=>{"use strict";x.d(U,{m:()=>se});var u=x(26),K=x(270);function se($){K.f.setTimeout(()=>{const{onUnhandledError:G}=u.$;if(!G)throw $;G($)})}},414:(he,U,x)=>{"use strict";x.d(U,{A:()=>K});const K='

Usage

  1. Install ngx-select-ex through npm package manager using the following command:

    npm i ngx-select-ex --save\n
  2. Add NgxSelectModule into your AppModule class. app.module.ts would look like this:

    import {NgModule} from '@angular/core';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {AppComponent} from './app.component';\nimport { NgxSelectModule } from 'ngx-select-ex';\n\n@NgModule({\n  imports: [BrowserModule, NgxSelectModule],\n  declarations: [AppComponent],\n  bootstrap: [AppComponent],\n})\nexport class AppModule {\n}\n

    If you want to change the default options then use next code:

    import {NgModule} from '@angular/core';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {AppComponent} from './app.component';\nimport { NgxSelectModule, INgxSelectOptions } from 'ngx-select-ex';\n\nconst CustomSelectOptions: INgxSelectOptions = { // Check the interface for more options\n    optionValueField: 'id',\n    optionTextField: 'name'\n};\n\n@NgModule({\n  imports: [BrowserModule, NgxSelectModule.forRoot(CustomSelectOptions)],\n  declarations: [AppComponent],\n  bootstrap: [AppComponent],\n})\nexport class AppModule {\n}\n
  3. Include Bootstrap styles. For example add to your index.html

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">\n
  4. Add the tag <ngx-select> into some html

    <ngx-select [items]="items" [(ngModel)]="itemId"></ngx-select>\n
  5. More information regarding of using ngx-select-ex is located in demo.

API

Any item can be disabled for prevent selection. For disable an item add the property disabled to the item.

Input Type Default Description
[items] any[] [] Items array. Should be an array of objects with id and text properties. As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. Items may be nested by adding a options property to any item, whose value should be another array of items. Items that have children may omit to have an ID.
optionValueField string 'id' Provide an opportunity to change the name an id property of objects in the items
optionTextField string 'text' Provide an opportunity to change the name a text property of objects in the items
optGroupLabelField string 'label' Provide an opportunity to change the name a label property of objects with an options property in the items
optGroupOptionsField string 'options' Provide an opportunity to change the name of an options property of objects in the items
[multiple] boolean false Mode of this component. If set true user can select more than one option
[allowClear] boolean false Set to true to allow the selection to be cleared. This option only applies to single-value inputs
[placeholder] string '' Set to true Placeholder text to display when the element has no focus and selected items
[noAutoComplete] boolean false Set to true to hide the search input. This option only applies to single-value inputs
[keepSelectedItems] boolean false Storing the selected items when the item list is changed
[disabled] boolean false When true, it specifies that the component should be disabled
[defaultValue] any[] [] Use to set default value
autoSelectSingleOption boolean false Auto select a non disabled single option
autoClearSearch boolean false Auto clear a search text after select an option. Has effect for multiple = true
noResultsFound string 'No results found' The default text showed when a search has no results
size 'small'/'default'/'large' 'default' Adding bootstrap classes: form-control-sm, input-sm, form-control-lg input-lg, btn-sm, btn-lg
searchCallback (search: string, item: INgxSelectOption) => boolean null The callback function for custom filtering the select list
autoActiveOnMouseEnter boolean true Automatically activate item when mouse enter on it
isFocused boolean false Makes the component focused
keepSelectMenuOpened boolean false Keeps the select menu opened
autocomplete string 'off' Sets an autocomplete value for the input field
dropDownMenuOtherClasses string '' Add css classes to the element with dropdown-menu class. For example dropdown-menu-right
showOptionNotFoundForEmptyItems boolean false Shows the "Not Found" menu option in case of out of items at all
noSanitize boolean false Disables auto mark an HTML as safe. Turn it on for safety from XSS if you render untrusted content in the options
appendTo string null Append dropdown menu to any element using css selector
Output Description
(typed) Fired on changing search input. Returns string with that value.
(focus) Fired on select focus
(blur) Fired on select blur
(open) Fired on select dropdown open
(close) Fired on select dropdown close
(select) Fired on an item selected by user. Returns value of the selected item.
(remove) Fired on an item removed by user. Returns value of the removed item.
(navigated) Fired on navigate by the dropdown list. Returns: INgxOptionNavigated.
(selectionChanges) Fired on change selected options. Returns: INgxSelectOption[].

Warning! Although the component contains the select and the remove events, the better solution is using valueChanges of the FormControl.

import {Component} from '@angular/core';\nimport {FormControl} from '@angular/forms';\n\n@Component({\n    selector: 'app-example',\n    template: `<ngx-select [items]="['111', '222']" [formControl]="selectControl"></ngx-select>`\n})\nclass ExampleComponent {\n    public selectControl = new FormControl();\n    \n    constructor() {\n        this.selectControl.valueChanges.subscribe(value => console.log(value));\n    }\n}\n

Styles and customization

Currently, the component contains CSS classes named within BEM Methodology. As well it contains the "Bootstrap classes". Recommended use BEM classes for style customization.

List of styles for customization:

  • ngx-select - Main class of the component.
  • ngx-select_multiple - Modifier of the multiple mode. It's available when the property multiple is true.
  • ngx-select__disabled - Layer for the disabled mode.
  • ngx-select__selected - The common container for displaying selected items.
  • ngx-select__toggle - The toggle for single mode. It's available when the property multiple is false.
  • ngx-select__placeholder - The placeholder item. It's available when the property multiple is false.
  • ngx-select__selected-single - The selected item with single mode. It's available when the property multiple is false.
  • ngx-select__selected-plural - The multiple selected item. It's available when the property multiple is true.
  • ngx-select__allow-clear - The indicator that the selected single item can be removed. It's available while properties the multiple is false and the allowClear is true.
  • ngx-select__toggle-buttons - The container of buttons such as the clear and the toggle.
  • ngx-select__toggle-caret - The drop-down button of the single mode. It's available when the property multiple is false.
  • ngx-select__clear - The button clear.
  • ngx-select__clear-icon - The cross icon.
  • ngx-select__search - The input field for full text lives searching.
  • ngx-select__choices - The common container of items.
  • ngx-select__item-group - The group of items.
  • ngx-select__item - An item.
  • ngx-select__item_disabled - Modifier of a disabled item.
  • ngx-select__item_active - Modifier of the activated item.

Templates

For extended rendering customisation you are can use the ng-template:

<ngx-select [items]="items" optionValueField="hex" optionTextField="name" [(ngModel)]="ngxValue">\n\n    <ng-template ngx-select-option-selected let-option let-text="text">\n        <span class="color-box" [style]="style('background-color:' + option.value)"></span>\n        <span [innerHtml]="text"></span>\n        ({{option.data.hex}})\n    </ng-template>\n\n    <ng-template ngx-select-option let-option let-text="text">\n        <span class="color-box" [style]="style('background-color:' + option.value)"></span>\n        <span [innerHtml]="text"></span>\n        ({{option.data.hex}})\n    </ng-template>\n\n    <ng-template ngx-select-option-not-found>\n        Nothing found\n    </ng-template>\n\n</ngx-select>\n

Also, you are can mix directives for reducing template:

<ngx-select [items]="items" optionValueField="hex" optionTextField="name" [(ngModel)]="ngxValue">\n    <ng-template ngx-select-option-selected ngx-select-option let-option let-text="text">\n        <span class="color-box" [style]="style('background-color:' + option.value)"></span>\n        <span [innerHtml]="text"></span>\n        ({{option.data.hex}})\n    </ng-template>\n\n    <ng-template ngx-select-option-not-found let-input>\n        Not found <button (click)="addItem(input)">(+) Add "{{input}}" as new item</button>\n    </ng-template>\n</ngx-select>\n

Description details of the directives:

  1. ngx-select-option-selected - Customization rendering selected options. Representing variables:
    • option (implicit) - object of type INgxSelectOption.
    • text - The text defined by the property optionTextField.
    • index - Number value of index the option in the select list. Always equal to zero for the single select.
  2. ngx-select-option - Customization rendering options in the dropdown menu. Representing variables:
    • option (implicit) - object of type INgxSelectOption.
    • text - The highlighted text defined by the property optionTextField. It is highlighted in the search.
    • index - Number value of index for the top level.
    • subIndex - Number value of index for the second level.
  3. ngx-select-option-not-found - Customization "not found text". Does not represent any variables.
'},48:(he,U,x)=>{"use strict";x.d(U,{A:()=>K});const K='

Getting started

First of all, Welcome!

'},175:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u='

Container with fixed height and hidden overflow

\n
\n
\n

Default

\n
\n
\n
\n \n \n
\n
\n
\n

\n
\n
{{ ngxControl1.value| json }}
\n
\n
\n \n
\n
\n\n
\n

Appended to scrollable

\n
\n
\n
\n \n \n
\n
\n
\n

\n
\n
{{ ngxControl2.value| json }}
\n
\n
\n \n
\n
\n
\n'},607:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u="import { Component } from '@angular/core';\nimport {ReactiveFormsModule, UntypedFormControl} from '@angular/forms';\nimport {NgxSelectModule} from \"ngx-select-ex\";\nimport {JsonPipe} from \"@angular/common\";\n\n@Component({\n selector: 'app-append-to-demo',\n templateUrl: './append-to-demo.html',\n imports: [\n NgxSelectModule,\n ReactiveFormsModule,\n JsonPipe\n ]\n})\nexport class AppendToDemoComponent {\n public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona',\n 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest',\n 'Budapest', 'Cologne', 'Copenhagen'];\n\n public ngxControl1 = new UntypedFormControl();\n public ngxControl2 = new UntypedFormControl();\n}\n"},96:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u='

Select a city by country

\n
\n
\n \n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
\n'},224:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u="import { Component } from '@angular/core';\nimport {NgxSelectModule} from 'ngx-select-ex';\nimport {FormsModule} from '@angular/forms';\nimport {JsonPipe} from '@angular/common';\n\n@Component({\n selector: 'app-children-demo',\n templateUrl: './children-demo.html',\n imports: [\n NgxSelectModule,\n FormsModule,\n JsonPipe\n ]\n})\nexport class ChildrenDemoComponent {\n public items: any[] = [\n {\n id: 100,\n text: 'Austria',\n children: [\n {id: 54, text: 'Vienna'},\n ],\n },\n {\n id: 200,\n text: 'Belgium',\n children: [\n {id: 2, text: 'Antwerp'},\n {id: 9, text: 'Brussels'},\n ],\n },\n {\n id: 300,\n text: 'Bulgaria',\n children: [\n {id: 48, text: 'Sofia'},\n ],\n },\n {\n id: 400,\n text: 'Croatia',\n children: [\n {id: 58, text: 'Zagreb'},\n ],\n },\n {\n id: 500,\n text: 'Czech Republic',\n children: [\n {id: 42, text: 'Prague'},\n ],\n },\n {\n id: 600,\n text: 'Denmark',\n children: [\n {id: 13, text: 'Copenhagen'},\n ],\n },\n {\n id: 700,\n text: 'England',\n children: [\n {id: 6, text: 'Birmingham'},\n {id: 7, text: 'Bradford'},\n {id: 26, text: 'Leeds', disabled: true},\n {id: 30, text: 'London'},\n {id: 34, text: 'Manchester'},\n {id: 47, text: 'Sheffield'},\n ],\n },\n {\n id: 800,\n text: 'Finland',\n children: [\n {id: 25, text: 'Helsinki'},\n ],\n },\n {\n id: 900,\n text: 'France',\n children: [\n {id: 35, text: 'Marseille'},\n {id: 40, text: 'Paris'},\n ],\n },\n {\n id: 1000,\n text: 'Germany',\n children: [\n {id: 5, text: 'Berlin'},\n {id: 8, text: 'Bremen'},\n {id: 12, text: 'Cologne'},\n {id: 14, text: 'Dortmund'},\n {id: 15, text: 'Dresden'},\n {id: 17, text: 'D\xfcsseldorf'},\n {id: 18, text: 'Essen'},\n {id: 19, text: 'Frankfurt'},\n {id: 23, text: 'Hamburg'},\n {id: 24, text: 'Hannover'},\n {id: 27, text: 'Leipzig'},\n {id: 37, text: 'Munich'},\n {id: 50, text: 'Stuttgart'},\n ],\n },\n {\n id: 1100,\n text: 'Greece',\n children: [\n {id: 3, text: 'Athens'},\n ],\n },\n {\n id: 1200,\n text: 'Hungary',\n children: [\n {id: 11, text: 'Budapest'},\n ],\n },\n {\n id: 1300,\n text: 'Ireland',\n children: [\n {id: 16, text: 'Dublin'},\n ],\n },\n {\n id: 1400,\n text: 'Italy',\n children: [\n {id: 20, text: 'Genoa'},\n {id: 36, text: 'Milan'},\n {id: 38, text: 'Naples'},\n {id: 39, text: 'Palermo'},\n {id: 44, text: 'Rome'},\n {id: 52, text: 'Turin'},\n ],\n },\n {\n id: 1500,\n text: 'Latvia',\n children: [\n {id: 43, text: 'Riga'},\n ],\n },\n {\n id: 1600,\n text: 'Lithuania',\n children: [\n {id: 55, text: 'Vilnius'},\n ],\n },\n {\n id: 1700,\n text: 'Netherlands',\n children: [\n {id: 1, text: 'Amsterdam'},\n {id: 45, text: 'Rotterdam'},\n {id: 51, text: 'The Hague'},\n ],\n },\n {\n id: 1800,\n text: 'Poland',\n children: [\n {id: 29, text: '\u0141\xf3d\u017a'},\n {id: 31, text: 'Krak\xf3w'},\n {id: 41, text: 'Pozna\u0144'},\n {id: 56, text: 'Warsaw'},\n {id: 57, text: 'Wroc\u0142aw'},\n ],\n },\n {\n id: 1900,\n text: 'Portugal',\n children: [\n {id: 28, text: 'Lisbon'},\n ],\n },\n {\n id: 2000,\n text: 'Romania',\n children: [\n {id: 10, text: 'Bucharest'},\n ],\n },\n {\n id: 2100,\n text: 'Scotland',\n children: [\n {id: 21, text: 'Glasgow'},\n ],\n },\n {\n id: 2200,\n text: 'Spain',\n children: [\n {id: 4, text: 'Barcelona'},\n {id: 32, text: 'Madrid'},\n {id: 33, text: 'M\xe1laga'},\n {id: 46, text: 'Seville'},\n {id: 53, text: 'Valencia'},\n {id: 59, text: 'Zaragoza'},\n ],\n },\n {\n id: 2300,\n text: 'Sweden',\n children: [\n {id: 22, text: 'Gothenburg'},\n {id: 49, text: 'Stockholm'},\n ],\n },\n ];\n\n public ngxValue: any[] = [];\n public ngxDisabled = false;\n}\n"},125:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u='

Select multiple cities

\n
\n
\n \n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
\n'},545:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u="import {Component} from '@angular/core';\nimport {INgxSelectOption, NgxSelectModule} from 'ngx-select-ex';\nimport {FormsModule} from '@angular/forms';\nimport {JsonPipe} from '@angular/common';\n\n@Component({\n selector: 'app-multiple-demo',\n templateUrl: './multiple-demo.html',\n imports: [\n NgxSelectModule,\n FormsModule,\n JsonPipe\n ]\n})\nexport class MultipleDemoComponent {\n public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona',\n 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest',\n 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', 'D\xfcsseldorf',\n 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', 'Hamburg', 'Hannover',\n 'Helsinki', 'Leeds', 'Leipzig', 'Lisbon', '\u0141\xf3d\u017a', 'London', 'Krak\xf3w', 'Madrid',\n 'M\xe1laga', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Naples', 'Palermo',\n 'Paris', 'Pozna\u0144', 'Prague', 'Riga', 'Rome', 'Rotterdam', 'Seville', 'Sheffield',\n 'Sofia', 'Stockholm', 'Stuttgart', 'The Hague', 'Turin', 'Valencia', 'Vienna',\n 'Vilnius', 'Warsaw', 'Wroc\u0142aw', 'Zagreb', 'Zaragoza'];\n\n public ngxValue: any = [];\n public ngxDisabled = false;\n\n public doSelectOptions = (options: INgxSelectOption[]) => console.log('MultipleDemoComponent.doSelectOptions', options);\n}\n"},3:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u='

Select a single city with {{items.length}} items

\n
\n
\n \n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
'},203:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u="import { Component } from '@angular/core';\nimport {NgxSelectModule} from 'ngx-select-ex';\nimport {FormsModule} from '@angular/forms';\nimport {JsonPipe} from '@angular/common';\n\n@Component({\n selector: 'app-no-autocomplete-demo',\n templateUrl: './no-autocomplete-demo.html',\n imports: [\n NgxSelectModule,\n FormsModule,\n JsonPipe\n ]\n})\nexport class NoAutoCompleteDemoComponent {\n public _items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona',\n 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest',\n 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin',\n 'D\xfcsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg',\n 'Hamburg', 'Hannover', 'Helsinki', 'Krak\xf3w', 'Leeds', 'Leipzig', 'Lisbon',\n 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'M\xe1laga',\n 'Naples', 'Palermo', 'Paris', 'Pozna\u0144', 'Prague', 'Riga', 'Rome',\n 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart',\n 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wroc\u0142aw',\n 'Zagreb', 'Zaragoza', '\u0141\xf3d\u017a'];\n\n constructor() {\n const a = [];\n for (let i = 1; i <= 20; i++) {\n this._items.forEach(v => a.push(i + ' ' + v));\n }\n this.items = a;\n }\n\n public items: string[] = [];\n public ngxValue: any = [];\n public ngxDisabled = false;\n}\n"},499:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u='

Select a color

\n
\n
\n \n\n \n \n \n ({{option.data.hex}})\n \n\n \n "{{input}}" not found\n \n\n \n

\n
\n
{{ngxValue | json}}
\n
\n
\n \n
\n
\n
\n'},379:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u="import { Component, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\nimport {NgxSelectModule} from 'ngx-select-ex';\nimport {FormsModule} from '@angular/forms';\nimport {JsonPipe} from '@angular/common';\n\nconst COLORS = [\n {name: 'Blue 10', hex: '#C0E6FF'},\n {name: 'Blue 20', hex: '#7CC7FF'},\n {name: 'Blue 30', hex: '#5AAAFA', disabled: true},\n {name: 'Blue 40', hex: '#5596E6'},\n {name: 'Blue 50', hex: '#4178BE'},\n {name: 'Blue 60', hex: '#325C80'},\n {name: 'Blue 70', hex: '#264A60'},\n {name: 'Blue 80', hex: '#1D3649'},\n {name: 'Blue 90', hex: '#152935'},\n {name: 'Blue 100', hex: '#010205'},\n {name: 'Green 10', hex: '#C8F08F'},\n {name: 'Green 20', hex: '#B4E051'},\n {name: 'Green 30', hex: '#8CD211'},\n {name: 'Green 40', hex: '#5AA700'},\n {name: 'Green 50', hex: '#4B8400'},\n {name: 'Green 60', hex: '#2D660A'},\n {name: 'Green 70', hex: '#144D14'},\n {name: 'Green 80', hex: '#0A3C02'},\n {name: 'Green 90', hex: '#0C2808'},\n {name: 'Green 100', hex: '#010200'},\n {name: 'Red 10', hex: '#FFD2DD'},\n {name: 'Red 20', hex: '#FFA5B4'},\n {name: 'Red 30', hex: '#FF7D87'},\n {name: 'Red 40', hex: '#FF5050'},\n {name: 'Red 50', hex: '#E71D32'},\n {name: 'Red 60', hex: '#AD1625'},\n {name: 'Red 70', hex: '#8C101C'},\n {name: 'Red 80', hex: '#6E0A1E'},\n {name: 'Red 90', hex: '#4C0A17'},\n {name: 'Red 100', hex: '#040001'},\n {name: 'Yellow 10', hex: '#FDE876'},\n {name: 'Yellow 20', hex: '#FDD600'},\n {name: 'Yellow 30', hex: '#EFC100'},\n {name: 'Yellow 40', hex: '#BE9B00'},\n {name: 'Yellow 50', hex: '#8C7300'},\n {name: 'Yellow 60', hex: '#735F00'},\n {name: 'Yellow 70', hex: '#574A00'},\n {name: 'Yellow 80', hex: '#3C3200'},\n {name: 'Yellow 90', hex: '#281E00'},\n {name: 'Yellow 100', hex: '#020100'},\n];\n\n@Component({\n selector: 'app-rich-demo',\n templateUrl: './rich-demo.html',\n styles: [`.color-box {\n display: inline-block;\n height: 14px;\n width: 14px;\n margin-right: 4px;\n border: 1px solid #000;\n }`],\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgxSelectModule,\n FormsModule,\n JsonPipe\n ],\n // Enable dynamic HTML styles\n})\nexport class RichDemoComponent {\n public items: any[] = COLORS;\n\n public ngxValue: any = [];\n public ngxDisabled = false;\n\n constructor(public sanitizer: DomSanitizer) {\n }\n\n public style(data: string): SafeStyle {\n return this.sanitizer.bypassSecurityTrustStyle(data);\n }\n}\n"},205:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u='

Select a single city

\n
\n
\n \n \n

\n
\n
{{ngxControl.value | json}}
\n
\n
\n \n
\n
\n
\n'},249:(he,U,x)=>{"use strict";x.r(U),x.d(U,{default:()=>u});const u="import { Component, OnDestroy } from '@angular/core';\nimport {ReactiveFormsModule, UntypedFormControl} from '@angular/forms';\nimport {INgxSelectOption, NgxSelectModule} from 'ngx-select-ex';\nimport {JsonPipe} from '@angular/common';\n\n@Component({\n selector: 'app-single-demo',\n templateUrl: './single-demo.html',\n imports: [\n JsonPipe,\n NgxSelectModule,\n ReactiveFormsModule\n ]\n})\nexport class SingleDemoComponent implements OnDestroy {\n public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona',\n 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest',\n 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin',\n 'D\xfcsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg',\n 'Hamburg', 'Hannover', 'Helsinki', 'Krak\xf3w', 'Leeds', 'Leipzig', 'Lisbon',\n 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'M\xe1laga',\n 'Naples', 'Palermo', 'Paris', 'Pozna\u0144', 'Prague', 'Riga', 'Rome',\n 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart',\n 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wroc\u0142aw',\n 'Zagreb', 'Zaragoza', '\u0141\xf3d\u017a'];\n\n public ngxControl = new UntypedFormControl();\n\n private _ngxDefaultTimeout;\n private _ngxDefaultInterval;\n private _ngxDefault;\n\n constructor() {\n this._ngxDefaultTimeout = setTimeout(() => {\n this._ngxDefaultInterval = setInterval(() => {\n const idx = Math.floor(Math.random() * (this.items.length - 1));\n this._ngxDefault = this.items[idx];\n // console.log('new default value = ', this._ngxDefault);\n }, 2000);\n }, 2000);\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this._ngxDefaultTimeout);\n clearInterval(this._ngxDefaultInterval);\n }\n\n public doNgxDefault(): any {\n return this._ngxDefault;\n }\n\n public inputTyped = (source: string, text: string) => console.log('SingleDemoComponent.inputTyped', source, text);\n\n public doFocus = () => console.log('SingleDemoComponent.doFocus');\n\n public doBlur = () => console.log('SingleDemoComponent.doBlur');\n\n public doOpen = () => console.log('SingleDemoComponent.doOpen');\n\n public doClose = () => console.log('SingleDemoComponent.doClose');\n\n public doSelect = (value: any) => console.log('SingleDemoComponent.doSelect', value);\n\n public doRemove = (value: any) => console.log('SingleDemoComponent.doRemove', value);\n\n public doSelectOptions = (options: INgxSelectOption[]) => console.log('SingleDemoComponent.doSelectOptions', options);\n}\n"},969:(he,U,x)=>{"use strict";x.d(U,{FX:()=>He,If:()=>u,K2:()=>be,hZ:()=>se,i0:()=>$,iF:()=>Q,kY:()=>Y,kp:()=>K,sf:()=>Et,ui:()=>mt,wk:()=>q});var u=function(L){return L[L.State=0]="State",L[L.Transition=1]="Transition",L[L.Sequence=2]="Sequence",L[L.Group=3]="Group",L[L.Animate=4]="Animate",L[L.Keyframes=5]="Keyframes",L[L.Style=6]="Style",L[L.Trigger=7]="Trigger",L[L.Reference=8]="Reference",L[L.AnimateChild=9]="AnimateChild",L[L.AnimateRef=10]="AnimateRef",L[L.Query=11]="Query",L[L.Stagger=12]="Stagger",L}(u||{});const K="*";function se(L,F){return{type:u.Trigger,name:L,definitions:F,options:{}}}function $(L,F=null){return{type:u.Animate,styles:F,timings:L}}function be(L,F=null){return{type:u.Sequence,steps:L,options:F}}function Q(L){return{type:u.Style,styles:L,offset:null}}function q(L,F,J){return{type:u.State,name:L,styles:F,options:J}}function Y(L,F,J=null){return{type:u.Transition,expr:L,animation:F,options:J}}class Et{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(F=0,J=0){this.totalTime=F+J}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(F=>F()),this._onDoneFns=[])}onStart(F){this._originalOnStartFns.push(F),this._onStartFns.push(F)}onDone(F){this._originalOnDoneFns.push(F),this._onDoneFns.push(F)}onDestroy(F){this._onDestroyFns.push(F)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(F=>F()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(F=>F()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(F){this._position=this.totalTime?F*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(F){const J="start"==F?this._onStartFns:this._onDoneFns;J.forEach(et=>et()),J.length=0}}class mt{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(F){this.players=F;let J=0,et=0,Ht=0;const or=this.players.length;0==or?queueMicrotask(()=>this._onFinish()):this.players.forEach(xn=>{xn.onDone(()=>{++J==or&&this._onFinish()}),xn.onDestroy(()=>{++et==or&&this._onDestroy()}),xn.onStart(()=>{++Ht==or&&this._onStart()})}),this.totalTime=this.players.reduce((xn,hs)=>Math.max(xn,hs.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(F=>F()),this._onDoneFns=[])}init(){this.players.forEach(F=>F.init())}onStart(F){this._onStartFns.push(F)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(F=>F()),this._onStartFns=[])}onDone(F){this._onDoneFns.push(F)}onDestroy(F){this._onDestroyFns.push(F)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(F=>F.play())}pause(){this.players.forEach(F=>F.pause())}restart(){this.players.forEach(F=>F.restart())}finish(){this._onFinish(),this.players.forEach(F=>F.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(F=>F.destroy()),this._onDestroyFns.forEach(F=>F()),this._onDestroyFns=[])}reset(){this.players.forEach(F=>F.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(F){const J=F*this.totalTime;this.players.forEach(et=>{const Ht=et.totalTime?Math.min(1,J/et.totalTime):1;et.setPosition(Ht)})}getPosition(){const F=this.players.reduce((J,et)=>null===J||et.totalTime>J.totalTime?et:J,null);return null!=F?F.getPosition():0}beforeDestroy(){this.players.forEach(F=>{F.beforeDestroy&&F.beforeDestroy()})}triggerCallback(F){const J="start"==F?this._onStartFns:this._onDoneFns;J.forEach(et=>et()),J.length=0}}const He="!"},213:(he,U,x)=>{"use strict";function se(e,t){return Object.is(e,t)}x.d(U,{bc$:()=>Fp,sZ2:()=>ga,o8S:()=>Mn,BIS:()=>B_,gRc:()=>vT,Ocv:()=>Uk,aKT:()=>da,uvJ:()=>yn,zcH:()=>Pn,bkB:()=>Jn,nKC:()=>le,zZn:()=>It,_q3:()=>ND,MKu:()=>FD,xe9:()=>ID,Vns:()=>is,SKi:()=>tt,Agw:()=>Lr,PLl:()=>Wl,rOR:()=>S_,sFG:()=>Iv,_9s:()=>Ef,czy:()=>cc,WPN:()=>Zi,C4Q:()=>Dc,NYb:()=>rb,giA:()=>ob,RxE:()=>lT,c1b:()=>lm,gXe:()=>ni,mal:()=>Hi,L39:()=>GO,EWP:()=>LD,a0P:()=>gR,w6W:()=>Fv,QZP:()=>BD,Rfq:()=>_i,WQX:()=>z,Hps:()=>zg,EmA:()=>Fo,Udg:()=>zO,Jn2:()=>Bk,vPA:()=>Fc,O8t:()=>Yc,An2:()=>Pr,H8p:()=>cl,KH2:()=>Zc,wOt:()=>V,WHO:()=>Yg,e01:()=>Of,lNU:()=>vs,h9k:()=>Iy,$MX:()=>qd,ZF7:()=>Aa,Kcf:()=>YC,e5t:()=>nE,UyX:()=>eE,cWb:()=>JC,osQ:()=>tE,H5H:()=>rD,mq5:()=>EI,JZv:()=>dt,TL3:()=>DO,jNT:()=>Tc,zjR:()=>em,ngT:()=>Mt,TL$:()=>NC,Tbb:()=>rt,rcV:()=>mo,Vt3:()=>Tb,GFd:()=>N0,OA$:()=>Nu,Jv_:()=>kM,R7$:()=>Ra,BMQ:()=>Hb,HbH:()=>oI,AVh:()=>Kb,vxM:()=>pI,wni:()=>iM,VBU:()=>Rv,FsC:()=>Bg,jDH:()=>Oe,G2t:()=>xo,$C:()=>Lg,EJ8:()=>jg,rXU:()=>Yi,nrm:()=>Jb,eu8:()=>nD,k0s:()=>vm,j41:()=>ym,RV6:()=>bI,xGo:()=>ed,KVO:()=>Ge,kS0:()=>na,QTQ:()=>vo,bIt:()=>sD,lsd:()=>lM,XpG:()=>qI,nI1:()=>GM,bMT:()=>zM,SdG:()=>ZI,NAR:()=>KI,Y8G:()=>zb,eq3:()=>RM,l_i:()=>PM,sMw:()=>LM,ziG:()=>VM,mGM:()=>aM,sdS:()=>cM,Dyx:()=>_I,Z7z:()=>mI,fX1:()=>gI,Njj:()=>Bh,EBC:()=>Ny,eBV:()=>Lu,npT:()=>My,Aen:()=>zr,xc7:()=>qb,DNE:()=>Ab,C5r:()=>WM,EFF:()=>vM,JRh:()=>uD,SpI:()=>wm,wXG:()=>Sy,DH7:()=>SM,mxI:()=>fD,R50:()=>dD,GBs:()=>sM});let $=null,G=!1,be=1;const Q=Symbol("SIGNAL");function q(e){const t=$;return $=e,t}const pe={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Ct(e){if(G)throw new Error("");if(null===$)return;$.consumerOnSignalRead(e);const t=$.nextProducerIndex++;L($),t<$.producerNode.length&&$.producerNode[t]!==e&&He($)&&mt($.producerNode[t],$.producerIndexOfThis[t]),$.producerNode[t]!==e&&($.producerNode[t]=e,$.producerIndexOfThis[t]=He($)?Et(e,$,t):0),$.producerLastReadVersion[t]=e.version}function xt(e){if((!He(e)||e.dirty)&&(e.dirty||e.lastCleanEpoch!==be)){if(!e.producerMustRecompute(e)&&!te(e))return void gt(e);e.producerRecomputeValue(e),gt(e)}}function Be(e){if(void 0===e.liveConsumerNode)return;const t=G;G=!0;try{for(const n of e.liveConsumerNode)n.dirty||jt(n)}finally{G=t}}function Te(){return!1!==$?.consumerAllowSignalWrites}function jt(e){e.dirty=!0,Be(e),e.consumerMarkedDirty?.(e)}function gt(e){e.dirty=!1,e.lastCleanEpoch=be}function lt(e){return e&&(e.nextProducerIndex=0),q(e)}function xe(e,t){if(q(t),e&&void 0!==e.producerNode&&void 0!==e.producerIndexOfThis&&void 0!==e.producerLastReadVersion){if(He(e))for(let n=e.nextProducerIndex;ne.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function te(e){L(e);for(let t=0;t0}function L(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function F(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function J(e){return void 0!==e.producerNode}const Ht=Symbol("UNSET"),or=Symbol("COMPUTING"),xn=Symbol("ERRORED"),hs={...pe,value:Ht,dirty:!0,error:null,equal:se,producerMustRecompute:e=>e.value===Ht||e.value===or,producerRecomputeValue(e){if(e.value===or)throw new Error("Detected cycle in computations.");const t=e.value;e.value=or;const n=lt(e);let o;try{o=e.computation()}catch(a){o=xn,e.error=a}finally{xe(e,n)}t!==Ht&&t!==xn&&o!==xn&&e.equal(t,o)?e.value=t:(e.value=o,e.version++)}};let tu=function eu(){throw new Error};function nu(){tu()}let Cr=null;function $n(e,t){Te()||nu(),e.equal(e.value,t)||(e.value=t,function gs(e){e.version++,function ae(){be++}(),Be(e),Cr?.()}(e))}const ps={...pe,equal:se,value:void 0};const pi=()=>{},ou={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:e=>{null!==e.schedule&&e.schedule(e.ref)},hasRun:!1,cleanupFn:pi};var nn=x(412),Eo=x(413),_s=x(359),iu=x(354);(0,x(853).L)(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}),x(964),x(697),x(974),x(360),x(669);const vs="https://g.co/ng/security#xss";class V extends Error{code;constructor(t,n){super(function Gn(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,n)),this.code=t}}function zn(e){return{toString:e}.toString()}const An="__parameters__";function Wn(e,t,n){return zn(()=>{const o=function Mo(e){return function(...n){if(e){const o=e(...n);for(const a in o)this[a]=o[a]}}}(t);function a(...c){if(this instanceof a)return o.apply(this,c),this;const f=new a(...c);return h.annotation=f,h;function h(p,m,y){const v=p.hasOwnProperty(An)?p[An]:Object.defineProperty(p,An,{value:[]})[An];for(;v.length<=y;)v.push(null);return(v[y]=v[y]||[]).push(f),p}}return n&&(a.prototype=Object.create(n.prototype)),a.prototype.ngMetadataName=e,a.annotationCls=a,a})}const dt=globalThis;function ke(e){for(let t in e)if(e[t]===ke)return t;throw Error("Could not find renamed property on target object.")}function lu(e,t){for(const n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function rt(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(rt).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function ir(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const cu=ke({__forward_ref__:ke});function _i(e){return e.__forward_ref__=_i,e.toString=function(){return rt(this())},e}function oe(e){return To(e)?e():e}function To(e){return"function"==typeof e&&e.hasOwnProperty(cu)&&e.__forward_ref__===_i}function Oe(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function xo(e){return{providers:e.providers||[],imports:e.imports||[]}}function Yr(e){return Jr(e,eo)||Jr(e,rl)}function Jr(e,t){return e.hasOwnProperty(t)?e[t]:null}function wr(e){return e&&(e.hasOwnProperty(ws)||e.hasOwnProperty(hh))?e[ws]:null}const eo=ke({\u0275prov:ke}),ws=ke({\u0275inj:ke}),rl=ke({ngInjectableDef:ke}),hh=ke({ngInjectorDef:ke});class le{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=Oe({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Ts(e){return e&&!!e.\u0275providers}const Ao=ke({\u0275cmp:ke}),xs=ke({\u0275dir:ke}),qn=ke({\u0275pipe:ke}),Ss=ke({\u0275mod:ke}),Kn=ke({\u0275fac:ke}),lr=ke({__NG_ELEMENT_ID__:ke}),ol=ke({__NG_ENV_ID__:ke});function ue(e){return"string"==typeof e?e:null==e?"":String(e)}function bi(e,t){throw new V(-201,!1)}var Ee=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(Ee||{});let As;function b(){return As}function I(e){const t=As;return As=e,t}function k(e,t,n){const o=Yr(e);return o&&"root"==o.providedIn?void 0===o.value?o.value=o.factory():o.value:n&Ee.Optional?null:void 0!==t?t:void bi()}const ge={},qe="__NG_DI_FLAG__",ot="ngTempTokenPath",Ze=/\n/gm,mn="__source";let ct;function yt(e){const t=ct;return ct=e,t}function ur(e,t=Ee.Default){if(void 0===ct)throw new V(-203,!1);return null===ct?k(e,void 0,t):ct.get(e,t&Ee.Optional?null:void 0,t)}function Ge(e,t=Ee.Default){return(b()||ur)(oe(e),t)}function z(e,t=Ee.Default){return Ge(e,to(t))}function to(e){return typeof e>"u"||"number"==typeof e?e:(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function xr(e){const t=[];for(let n=0;nArray.isArray(n)?ks(n,t):t(n))}function $m(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function al(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function _n(e,t,n){let o=Os(e,t);return o>=0?e[1|o]=n:(o=~o,function Gm(e,t,n,o){let a=e.length;if(a==t)e.push(n,o);else if(1===a)e.push(o,e[0]),e[0]=n;else{for(a--,e.push(e[a-1],e[a]);a>t;)e[a]=e[a-2],a--;e[t]=n,e[t+1]=o}}(e,o,t,n)),o}function yu(e,t){const n=Os(e,t);if(n>=0)return e[1|n]}function Os(e,t){return function vh(e,t,n){let o=0,a=e.length>>n;for(;a!==o;){const c=o+(a-o>>1),f=e[c<t?a=c:o=c+1}return~(a<{n.push(f)};return ks(t,f=>{const h=f;Du(h,c,[],o)&&(a||=[],a.push(h))}),void 0!==a&&Wm(a,c),n}function Wm(e,t){for(let n=0;n{t(c,o)})}}function Du(e,t,n,o){if(!(e=oe(e)))return!1;let a=null,c=wr(e);const f=!c&&Ce(e);if(c||f){if(f&&!f.standalone)return!1;a=e}else{const p=e.ngModule;if(c=wr(p),!c)return!1;a=p}const h=o.has(a);if(f){if(h)return!1;if(o.add(a),f.dependencies){const p="function"==typeof f.dependencies?f.dependencies():f.dependencies;for(const m of p)Du(m,t,n,o)}}else{if(!c)return!1;{if(null!=c.imports&&!h){let m;o.add(a);try{ks(c.imports,y=>{Du(y,t,n,o)&&(m||=[],m.push(y))})}finally{}void 0!==m&&Wm(m,t)}if(!h){const m=No(a)||(()=>new a);t({provide:a,useFactory:m,deps:Re},a),t({provide:bu,useValue:a,multi:!0},a),t({provide:fr,useValue:()=>Ge(a),multi:!0},a)}const p=c.providers;if(null!=p&&!h){const m=e;Cu(p,y=>{t(y,m)})}}}return a!==e&&void 0!==e.providers}function Cu(e,t){for(let n of e)Ts(n)&&(n=n.\u0275providers),Array.isArray(n)?Cu(n,t):t(n)}const Km=ke({provide:String,useValue:ke});function Rs(e){return null!==e&&"object"==typeof e&&Km in e}function Ei(e){return"function"==typeof e}const cl=new le(""),Eu={},GD={};let Ch;function wi(){return void 0===Ch&&(Ch=new $e),Ch}class yn{}class ko extends yn{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,n,o,a){super(),this.parent=n,this.source=o,this.scopes=a,wh(t,f=>this.processProvider(f)),this.records.set(vu,Ps(void 0,this)),a.has("environment")&&this.records.set(yn,Ps(void 0,this));const c=this.records.get(cl);null!=c&&"string"==typeof c.value&&this.scopes.add(c.value),this.injectorDefTypes=new Set(this.get(bu,Re,Ee.Self))}destroy(){ul(this),this._destroyed=!0;const t=q(null);try{for(const o of this._ngOnDestroyHooks)o.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const o of n)o()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),q(t)}}onDestroy(t){return ul(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){ul(this);const n=yt(this),o=I(void 0);try{return t()}finally{yt(n),I(o)}}get(t,n=ge,o=Ee.Default){if(ul(this),t.hasOwnProperty(ol))return t[ol](this);o=to(o);const c=yt(this),f=I(void 0);try{if(!(o&Ee.SkipSelf)){let p=this.records.get(t);if(void 0===p){const m=function qD(e){return"function"==typeof e||"object"==typeof e&&e instanceof le}(t)&&Yr(t);p=m&&this.injectableDefInScope(m)?Ps(wu(t),Eu):null,this.records.set(t,p)}if(null!=p)return this.hydrate(t,p)}return(o&Ee.Self?wi():this.parent).get(t,n=o&Ee.Optional&&n===ge?null:n)}catch(h){if("NullInjectorError"===h.name){if((h[ot]=h[ot]||[]).unshift(rt(t)),c)throw h;return function Fs(e,t,n,o){const a=e[ot];throw t[mn]&&a.unshift(t[mn]),e.message=function _h(e,t,n,o=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let a=rt(t);if(Array.isArray(t))a=t.map(rt).join(" -> ");else if("object"==typeof t){let c=[];for(let f in t)if(t.hasOwnProperty(f)){let h=t[f];c.push(f+":"+("string"==typeof h?JSON.stringify(h):rt(h)))}a=`{${c.join(", ")}}`}return`${n}${o?"("+o+")":""}[${a}]: ${e.replace(Ze,"\n ")}`}("\n"+e.message,a,n,o),e.ngTokenPath=a,e[ot]=null,e}(h,t,"R3InjectorError",this.source)}throw h}finally{I(f),yt(c)}}resolveInjectorInitializers(){const t=q(null),n=yt(this),o=I(void 0);try{const c=this.get(fr,Re,Ee.Self);for(const f of c)f()}finally{yt(n),I(o),q(t)}}toString(){const t=[],n=this.records;for(const o of n.keys())t.push(rt(o));return`R3Injector[${t.join(", ")}]`}processProvider(t){let n=Ei(t=oe(t))?t:oe(t&&t.provide);const o=function Ii(e){return Rs(e)?Ps(void 0,e.useValue):Ps(Qm(e),Eu)}(t);if(!Ei(t)&&!0===t.multi){let a=this.records.get(n);a||(a=Ps(void 0,Eu,!0),a.factory=()=>xr(a.multi),this.records.set(n,a)),n=t,a.multi.push(t)}this.records.set(n,o)}hydrate(t,n){const o=q(null);try{return n.value===Eu&&(n.value=GD,n.value=n.factory()),"object"==typeof n.value&&n.value&&function WD(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{q(o)}}injectableDefInScope(t){if(!t.providedIn)return!1;const n=oe(t.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){const n=this._onDestroyHooks.indexOf(t);-1!==n&&this._onDestroyHooks.splice(n,1)}}function wu(e){const t=Yr(e),n=null!==t?t.factory:No(e);if(null!==n)return n;if(e instanceof le)throw new V(204,!1);if(e instanceof Function)return function Eh(e){if(e.length>0)throw new V(204,!1);const n=function Es(e){return e&&(e[eo]||e[rl])||null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new V(204,!1)}function Qm(e,t,n){let o;if(Ei(e)){const a=oe(e);return No(a)||wu(a)}if(Rs(e))o=()=>oe(e.useValue);else if(function Zm(e){return!(!e||!e.useFactory)}(e))o=()=>e.useFactory(...xr(e.deps||[]));else if(function Ci(e){return!(!e||!e.useExisting)}(e))o=()=>Ge(oe(e.useExisting));else{const a=oe(e&&(e.useClass||e.provide));if(!function zD(e){return!!e.deps}(e))return No(a)||wu(a);o=()=>new a(...xr(e.deps))}return o}function ul(e){if(e.destroyed)throw new V(205,!1)}function Ps(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function wh(e,t){for(const n of e)Array.isArray(n)?wh(n,t):n&&Ts(n)?wh(n.\u0275providers,t):t(n)}function Xm(e,t){e instanceof ko&&ul(e);const o=yt(e),a=I(void 0);try{return t()}finally{yt(o),I(a)}}function Ih(){return void 0!==b()||null!=function on(){return ct}()}function Mi(e){if(!Ih())throw new V(-203,!1)}const Je=0,P=1,ee=2,ft=3,kt=4,ht=5,an=6,Ls=7,Ke=8,Pe=9,ln=10,de=11,Oo=12,fl=13,xi=14,Qe=15,no=16,Ro=17,Zn=18,Po=19,Mu=20,ro=21,Si=22,oo=23,Zt=24,Z=25,hl=1,hr=7,Ai=9,ut=10;var gl=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(gl||{});function it(e){return Array.isArray(e)&&"object"==typeof e[hl]}function pt(e){return Array.isArray(e)&&!0===e[hl]}function Vs(e){return!!(4&e.flags)}function io(e){return e.componentOffset>-1}function Tu(e){return!(1&~e.flags)}function kn(e){return!!e.template}function Bs(e){return!!(512&e[ee])}class o_{previousValue;currentValue;firstChange;constructor(t,n,o){this.previousValue=t,this.currentValue=n,this.firstChange=o}isFirstChange(){return this.firstChange}}function Ah(e,t,n,o){null!==t?t.applyValueToInputSignal(t,o):e[n]=o}const Nu=(()=>{const e=()=>i_;return e.ngInherit=!0,e})();function i_(e){return e.type.prototype.ngOnChanges&&(e.setInput=cC),lC}function lC(){const e=s_(this),t=e?.current;if(t){const n=e.previous;if(n===dr)e.previous=t;else for(let o in t)n[o]=t[o];e.current=null,this.ngOnChanges(t)}}function cC(e,t,n,o,a){const c=this.declaredInputs[o],f=s_(e)||function uC(e,t){return e[Nh]=t}(e,{previous:dr,current:null}),h=f.current||(f.current={}),p=f.previous,m=p[c];h[c]=new o_(m&&m.currentValue,n,p===dr),Ah(e,t,a,n)}const Nh="__ngSimpleChanges__";function s_(e){return e[Nh]||null}const Sr=function(e,t,n){};function Ae(e){for(;Array.isArray(e);)e=e[Je];return e}function Ar(e,t){return Ae(t[e])}function cn(e,t){return Ae(t[e.index])}function js(e,t){return e.data[t]}function Ni(e,t){return e[t]}function On(e,t){const n=t[e];return it(n)?n:n[Je]}function kh(e){return!(128&~e[ee])}function Rn(e,t){return null==t?null:e[t]}function Oh(e){e[Ro]=0}function Fu(e){1024&e[ee]||(e[ee]|=1024,kh(e)&&Lo(e))}function yl(e){return!!(9216&e[ee]||e[Zt]?.dirty)}function ku(e){e[ln].changeDetectionScheduler?.notify(9),64&e[ee]&&(e[ee]|=1024),yl(e)&&Lo(e)}function Lo(e){e[ln].changeDetectionScheduler?.notify(0);let t=Nr(e);for(;null!==t&&!(8192&t[ee])&&(t[ee]|=8192,kh(t));)t=Nr(t)}function vl(e,t){if(!(256&~e[ee]))throw new V(911,!1);null===e[ro]&&(e[ro]=[]),e[ro].push(t)}function Nr(e){const t=e[ft];return pt(t)?t[ft]:t}const fe={lFrame:qh(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let Ru=!1;function Lh(){return fe.bindingsEnabled}function Fr(){return null!==fe.skipHydrationRootTNode}function S(){return fe.lFrame.lView}function ne(){return fe.lFrame.tView}function Lu(e){return fe.lFrame.contextLView=e,e[Ke]}function Bh(e){return fe.lFrame.contextLView=null,e}function we(){let e=jh();for(;null!==e&&64===e.type;)e=e.parent;return e}function jh(){return fe.lFrame.currentTNode}function vn(e,t){const n=fe.lFrame;n.currentTNode=e,n.isParent=t}function Vu(){return fe.lFrame.isParent}function Bu(){fe.lFrame.isParent=!1}function $h(){return Ru}function Dl(e){const t=Ru;return Ru=e,t}function Qt(){const e=fe.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function je(){return fe.lFrame.bindingIndex++}function gr(e){const t=fe.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function Gh(e,t){const n=fe.lFrame;n.bindingIndex=n.bindingRootIndex=e,El(t)}function El(e){fe.lFrame.currentDirectiveIndex=e}function wl(){return fe.lFrame.currentQueryIndex}function $s(e){fe.lFrame.currentQueryIndex=e}function Wh(e){const t=e[P];return 2===t.type?t.declTNode:1===t.type?e[ht]:null}function Uu(e,t,n){if(n&Ee.SkipSelf){let a=t,c=e;for(;!(a=a.parent,null!==a||n&Ee.Host||(a=Wh(c),null===a||(c=c[xi],10&a.type))););if(null===a)return!1;t=a,e=c}const o=fe.lFrame=un();return o.currentTNode=t,o.lView=e,!0}function $u(e){const t=un(),n=e[P];fe.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function un(){const e=fe.lFrame,t=null===e?null:e.child;return null===t?qh(e):t}function qh(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function Kh(){const e=fe.lFrame;return fe.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Zh=Kh;function Gu(){const e=Kh();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ot(){return fe.lFrame.selectedIndex}function Vo(e){fe.lFrame.selectedIndex=e}function Me(){const e=fe.lFrame;return js(e.tView,e.selectedIndex)}let ep=!0;function Gs(){return ep}function mr(e){ep=e}function Il(e,t){for(let n=t.directiveStart,o=t.directiveEnd;n=o)break}else t[p]<0&&(e[Ro]+=65536),(h>14>16&&(3&e[ee])===t&&(e[ee]+=16384,rp(h,c)):rp(h,c)}const Bo=-1;class zs{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,n,o){this.factory=t,this.canSeeViewProviders=n,this.injectImpl=o}}function Ks(e,t,n){let o=0;for(;ot){f=c-1;break}}}for(;c>16}(e),o=t;for(;n>0;)o=o[xi],n--;return o}let Qs=!0;function Xn(e){const t=Qs;return Qs=e,t}const Pt=255,Or=5;let y_=0;const Rr={};function Xs(e,t){const n=Zu(e,t);if(-1!==n)return n;const o=t[P];o.firstCreatePass&&(e.injectorIndex=t.length,xl(o.data,e),xl(t,null),xl(o.blueprint,null));const a=Ys(e,t),c=e.injectorIndex;if(Ku(a)){const f=Fi(a),h=Zs(a,t),p=h[P].data;for(let m=0;m<8;m++)t[c+m]=h[f+m]|p[f+m]}return t[c+8]=a,c}function xl(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Zu(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function Ys(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,o=null,a=t;for(;null!==a;){if(o=td(a),null===o)return Bo;if(n++,a=a[xi],-1!==o.injectorIndex)return o.injectorIndex|n<<16}return Bo}function Sl(e,t,n){!function sp(e,t,n){let o;"string"==typeof n?o=n.charCodeAt(0)||0:n.hasOwnProperty(lr)&&(o=n[lr]),null==o&&(o=n[lr]=y_++);const a=o&Pt;t.data[e+(a>>Or)]|=1<=0?t&Pt:up:t}(n);if("function"==typeof c){if(!Uu(t,e,o))return o&Ee.Host?Qu(a,0,o):Js(t,n,o,a);try{let f;if(f=c(o),null!=f||o&Ee.Optional)return f;bi()}finally{Zh()}}else if("number"==typeof c){let f=null,h=Zu(e,t),p=Bo,m=o&Ee.Host?t[Qe][ht]:null;for((-1===h||o&Ee.SkipSelf)&&(p=-1===h?Ys(e,t):t[h+8],p!==Bo&&Al(o,!1)?(f=t[P],h=Fi(p),t=Zs(p,t)):h=-1);-1!==h;){const y=t[P];if(Ju(c,h,y.data)){const v=lp(h,t,n,f,o,m);if(v!==Rr)return v}p=t[h+8],p!==Bo&&Al(o,t[P].data[h+8]===m)&&Ju(c,h,t)?(f=y,h=Fi(p),t=Zs(p,t)):h=-1}}return a}function lp(e,t,n,o,a,c){const f=t[P],h=f.data[e+8],y=ea(h,f,n,null==o?io(h)&&Qs:o!=f&&!!(3&h.type),a&Ee.Host&&c===h);return null!==y?jo(t,f,y,h):Rr}function ea(e,t,n,o,a){const c=e.providerIndexes,f=t.data,h=1048575&c,p=e.directiveStart,y=c>>20,C=a?h+y:e.directiveEnd;for(let E=o?h:h+y;E=p&&M.type===n)return E}if(a){const E=f[p];if(E&&kn(E)&&E.type===n)return p}return null}function jo(e,t,n,o){let a=e[n];const c=t.data;if(function op(e){return e instanceof zs}(a)){const f=a;f.resolving&&function cr(e,t){throw t&&t.join(" > "),new V(-200,e)}(function Ne(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():ue(e)}(c[n]));const h=Xn(f.canSeeViewProviders);f.resolving=!0;const m=f.injectImpl?I(f.injectImpl):null;Uu(e,o,Ee.Default);try{a=e[n]=f.factory(void 0,c,e,o),t.firstCreatePass&&n>=o.directiveStart&&function tp(e,t,n){const{ngOnChanges:o,ngOnInit:a,ngDoCheck:c}=t.type.prototype;if(o){const f=i_(t);(n.preOrderHooks??=[]).push(e,f),(n.preOrderCheckHooks??=[]).push(e,f)}a&&(n.preOrderHooks??=[]).push(0-e,a),c&&((n.preOrderHooks??=[]).push(e,c),(n.preOrderCheckHooks??=[]).push(e,c))}(n,c[n],t)}finally{null!==m&&I(m),Xn(h),f.resolving=!1,Zh()}}return a}function Ju(e,t,n){return!!(n[t+(e>>Or)]&1<{const t=e.prototype.constructor,n=t[Kn]||ta(t),o=Object.prototype;let a=Object.getPrototypeOf(e.prototype).constructor;for(;a&&a!==o;){const c=a[Kn]||ta(a);if(c&&c!==n)return c;a=Object.getPrototypeOf(a)}return c=>new c})}function ta(e){return To(e)?()=>{const t=ta(oe(e));return t&&t()}:No(e)}function td(e){const t=e[P],n=t.type;return 2===n?t.declTNode:1===n?e[ht]:null}function na(e){return function ap(e,t){if("class"===t)return e.classes;if("style"===t)return e.styles;const n=e.attrs;if(n){const o=n.length;let a=0;for(;aGe(vu)});static __NG_ELEMENT_ID__=-1}new le("").__NG_ELEMENT_ID__=e=>{const t=we();if(null===t)throw new V(204,!1);if(2&t.type)return t.value;if(e&Ee.Optional)return null;throw new V(204,!1)};const E_=!1;let lo=(()=>class e{static __NG_ELEMENT_ID__=CC;static __NG_ENV_ID__=n=>n})();class rd extends lo{_lView;constructor(t){super(),this._lView=t}onDestroy(t){return vl(this._lView,t),()=>function Hs(e,t){if(null===e[ro])return;const n=e[ro].indexOf(t);-1!==n&&e[ro].splice(n,1)}(this._lView,t)}}function CC(){return new rd(S())}class Pr{}const Ol=new le("",{providedIn:"root",factory:()=>!1}),oa=new le(""),co=new le("");let Yn=(()=>{class e{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new nn.t(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const n=this.taskId++;return this.pendingTasks.add(n),n}has(n){return this.pendingTasks.has(n)}remove(n){this.pendingTasks.delete(n),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=Oe({token:e,providedIn:"root",factory:()=>new e})}return e})();const Jn=class pp extends Eo.B{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,Ih()&&(this.destroyRef=z(lo,{optional:!0})??void 0,this.pendingTasks=z(Yn,{optional:!0})??void 0)}emit(t){const n=q(null);try{super.next(t)}finally{q(n)}}subscribe(t,n,o){let a=t,c=n||(()=>null),f=o;if(t&&"object"==typeof t){const p=t;a=p.next?.bind(p),c=p.error?.bind(p),f=p.complete?.bind(p)}this.__isAsync&&(c=this.wrapInTimeout(c),a&&(a=this.wrapInTimeout(a)),f&&(f=this.wrapInTimeout(f)));const h=super.subscribe({next:a,error:c,complete:f});return t instanceof _s.yU&&t.add(h),h}wrapInTimeout(t){return n=>{const o=this.pendingTasks?.add();setTimeout(()=>{t(n),void 0!==o&&this.pendingTasks?.remove(o)})}}};function $o(...e){}function ia(e){let t,n;function o(){e=$o;try{void 0!==n&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(n),void 0!==t&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),o()}),"function"==typeof requestAnimationFrame&&(n=requestAnimationFrame(()=>{e(),o()})),()=>o()}function gp(e){return queueMicrotask(()=>e()),()=>{e=$o}}const sa="isAngularZone",Pl=sa+"_ID";let od=0;class tt{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Jn(!1);onMicrotaskEmpty=new Jn(!1);onStable=new Jn(!1);onError=new Jn(!1);constructor(t){const{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:o=!1,shouldCoalesceRunChangeDetection:a=!1,scheduleInRootZone:c=E_}=t;if(typeof Zone>"u")throw new V(908,!1);Zone.assertZonePatched();const f=this;f._nesting=0,f._outer=f._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(f._inner=f._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(f._inner=f._inner.fork(Zone.longStackTraceZoneSpec)),f.shouldCoalesceEventChangeDetection=!a&&o,f.shouldCoalesceRunChangeDetection=a,f.callbackScheduled=!1,f.scheduleInRootZone=c,function id(e){const t=()=>{!function mp(e){function t(){ia(()=>{e.callbackScheduled=!1,aa(e),e.isCheckStableRunning=!0,Vl(e),e.isCheckStableRunning=!1})}e.isCheckStableRunning||e.callbackScheduled||(e.callbackScheduled=!0,e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),aa(e))}(e)},n=od++;e._inner=e._inner.fork({name:"angular",properties:{[sa]:!0,[Pl]:n,[Pl+n]:!0},onInvokeTask:(o,a,c,f,h,p)=>{if(function M_(e){return uo(e,"__ignore_ng_zone__")}(p))return o.invokeTask(c,f,h,p);try{return w_(e),o.invokeTask(c,f,h,p)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===f.type||e.shouldCoalesceRunChangeDetection)&&t(),I_(e)}},onInvoke:(o,a,c,f,h,p,m)=>{try{return w_(e),o.invoke(c,f,h,p,m)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!function wC(e){return uo(e,"__scheduler_tick__")}(p)&&t(),I_(e)}},onHasTask:(o,a,c,f)=>{o.hasTask(c,f),a===c&&("microTask"==f.change?(e._hasPendingMicrotasks=f.microTask,aa(e),Vl(e)):"macroTask"==f.change&&(e.hasPendingMacrotasks=f.macroTask))},onHandleError:(o,a,c,f)=>(o.handleError(c,f),e.runOutsideAngular(()=>e.onError.emit(f)),!1)})}(f)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(sa)}static assertInAngularZone(){if(!tt.isInAngularZone())throw new V(909,!1)}static assertNotInAngularZone(){if(tt.isInAngularZone())throw new V(909,!1)}run(t,n,o){return this._inner.run(t,n,o)}runTask(t,n,o,a){const c=this._inner,f=c.scheduleEventTask("NgZoneEvent: "+a,t,Ll,$o,$o);try{return c.runTask(f,n,o)}finally{c.cancelTask(f)}}runGuarded(t,n,o){return this._inner.runGuarded(t,n,o)}runOutsideAngular(t){return this._outer.run(t)}}const Ll={};function Vl(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function aa(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&!0===e.callbackScheduled)}function w_(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function I_(e){e._nesting--,Vl(e)}class _p{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Jn;onMicrotaskEmpty=new Jn;onStable=new Jn;onError=new Jn;run(t,n,o){return t.apply(n,o)}runGuarded(t,n,o){return t.apply(n,o)}runOutsideAngular(t){return t()}runTask(t,n,o,a){return t.apply(n,o)}}function uo(e,t){return!(!Array.isArray(e)||1!==e.length)&&!0===e[0]?.data?.[t]}class Pn{_console=console;handleError(t){this._console.error("ERROR",t)}}const ca=new le("",{providedIn:"root",factory:()=>{const e=z(tt),t=z(Pn);return n=>e.runOutsideAngular(()=>t.handleError(n))}});function T_(){return Go(we(),S())}function Go(e,t){return new da(cn(e,t))}let da=(()=>class e{nativeElement;constructor(n){this.nativeElement=n}static __NG_ELEMENT_ID__=T_})();function ld(e){return e instanceof da?e.nativeElement:e}function x_(){return this._results[Symbol.iterator]()}class S_{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new Eo.B}constructor(t=!1){this._emitDistinctChangesOnly=t}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){this.dirty=!1;const o=function sn(e){return e.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function Um(e,t,n){if(e.length!==t.length)return!1;for(let o=0;oNp}),Np="ng",Wl=new le(""),Lr=new le("",{providedIn:"platform",factory:()=>"unknown"}),Fp=new le(""),B_=new le("",{providedIn:"root",factory:()=>Ln().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),va=new le("",{providedIn:"root",factory:()=>!1}),Sd=new Set;function Mt(e){Sd.has(e)||(Sd.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var Xo=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(Xo||{});let ji=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=Oe({token:e,providedIn:"root",factory:()=>new e})}return e})();const ba=[Xo.EarlyRead,Xo.Write,Xo.MixedReadWrite,Xo.Read];let Vr=(()=>{class e{ngZone=z(tt);scheduler=z(Pr);errorHandler=z(Pn,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;execute(){this.executing=!0;for(const n of ba)for(const o of this.sequences)if(!o.erroredOrDestroyed&&o.hooks[n])try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>o.hooks[n](o.pipelinedValue))}catch(a){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(a)}this.executing=!1;for(const n of this.sequences)n.afterRun(),n.once&&(this.sequences.delete(n),n.destroy());for(const n of this.deferredRegistrations)this.sequences.add(n);this.deferredRegistrations.size>0&&this.scheduler.notify(8),this.deferredRegistrations.clear()}register(n){this.executing?this.deferredRegistrations.add(n):(this.sequences.add(n),this.scheduler.notify(7))}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}static \u0275prov=Oe({token:e,providedIn:"root",factory:()=>new e})}return e})();class Lp{impl;hooks;once;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,n,o,a){this.impl=t,this.hooks=n,this.once=o,this.unregisterOnDestroy=a?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.()}}function Hi(e,t){!t?.injector&&Mi();const n=t?.injector??z(It);return Mt("NgAfterNextRender"),function Ad(e,t,n,o){const a=t.get(ji);a.impl??=t.get(Vr);const c=n?.phase??Xo.MixedReadWrite,f=!0!==n?.manualCleanup?t.get(lo):null,h=new Lp(a.impl,function G_(e,t){if(e instanceof Function){const n=[void 0,void 0,void 0,void 0];return n[t]=e,n}return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}(e,c),o,f);return a.impl.register(h),h}(e,n,t,!0)}let Ki=()=>null;function jn(e,t,n=!1){return Ki(e,t,n)}var ni=function(e){return e[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",e}(ni||{});let Wd,rc;function Xp(){if(void 0===Wd&&(Wd=null,dt.trustedTypes))try{Wd=dt.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return Wd}function Sa(e){return Xp()?.createHTML(e)||e}function py(e){return function Yp(){if(void 0===rc&&(rc=null,dt.trustedTypes))try{rc=dt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return rc}()?.createHTML(e)||e}class ri{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${vs})`}}class WC extends ri{getTypeName(){return"HTML"}}class qC extends ri{getTypeName(){return"Style"}}class KC extends ri{getTypeName(){return"Script"}}class ZC extends ri{getTypeName(){return"URL"}}class QC extends ri{getTypeName(){return"ResourceURL"}}function mo(e){return e instanceof ri?e.changingThisBreaksApplicationSecurity:e}function Aa(e,t){const n=function XC(e){return e instanceof ri&&e.getTypeName()||null}(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${vs})`)}return n===t}function YC(e){return new WC(e)}function JC(e){return new qC(e)}function eE(e){return new KC(e)}function tE(e){return new ZC(e)}function nE(e){return new QC(e)}class rE{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const n=(new window.DOMParser).parseFromString(Sa(t),"text/html").body;return null===n?this.inertDocumentHelper.getInertBodyElement(t):(n.firstChild?.remove(),n)}catch{return null}}}class oE{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){const n=this.inertDocument.createElement("template");return n.innerHTML=Sa(t),n}}const sE=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function qd(e){return(e=String(e)).match(sE)?e:"unsafe:"+e}function _o(e){const t={};for(const n of e.split(","))t[n]=!0;return t}function oc(...e){const t={};for(const n of e)for(const o in n)n.hasOwnProperty(o)&&(t[o]=!0);return t}const yy=_o("area,br,col,hr,img,wbr"),vy=_o("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),by=_o("rp,rt"),Jp=oc(yy,oc(vy,_o("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),oc(by,_o("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),oc(by,vy)),eg=_o("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Dy=oc(eg,_o("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),_o("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),cE=_o("script,style,template");class uE{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let n=t.firstChild,o=!0,a=[];for(;n;)if(n.nodeType===Node.ELEMENT_NODE?o=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,o&&n.firstChild)a.push(n),n=hE(n);else for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let c=fE(n);if(c){n=c;break}n=a.pop()}return this.buf.join("")}startElement(t){const n=Cy(t).toLowerCase();if(!Jp.hasOwnProperty(n))return this.sanitizedSomething=!0,!cE.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);const o=t.attributes;for(let a=0;a"),!0}endElement(t){const n=Cy(t).toLowerCase();Jp.hasOwnProperty(n)&&!yy.hasOwnProperty(n)&&(this.buf.push(""))}chars(t){this.buf.push(wy(t))}}function fE(e){const t=e.nextSibling;if(t&&e!==t.previousSibling)throw Ey(t);return t}function hE(e){const t=e.firstChild;if(t&&function dE(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(e,t))throw Ey(t);return t}function Cy(e){const t=e.nodeName;return"string"==typeof t?t:"FORM"}function Ey(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}const pE=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,gE=/([^\#-~ |!])/g;function wy(e){return e.replace(/&/g,"&").replace(pE,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(gE,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let Kd;function Iy(e,t){let n=null;try{Kd=Kd||function _y(e){const t=new oE(e);return function iE(){try{return!!(new window.DOMParser).parseFromString(Sa(""),"text/html")}catch{return!1}}()?new rE(t):t}(e);let o=t?String(t):"";n=Kd.getInertBodyElement(o);let a=5,c=o;do{if(0===a)throw new Error("Failed to sanitize html because the input is unstable");a--,o=c,c=n.innerHTML,n=Kd.getInertBodyElement(o)}while(o!==c);return Sa((new uE).sanitizeChildren(tg(n)||n))}finally{if(n){const o=tg(n)||n;for(;o.firstChild;)o.firstChild.remove()}}}function tg(e){return"content"in e&&function mE(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var Zi=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Zi||{});function My(e){const t=function ic(){const e=S();return e&&e[ln].sanitizer}();return t?py(t.sanitize(Zi.HTML,e)||""):Aa(e,"HTML")?py(mo(e)):Iy(Ln(),ue(e))}function Sy(e){return function zC(e){return Xp()?.createScriptURL(e)||e}(e[0])}const CE=/^>|^->||--!>|)/g;function Ny(e){return e.ownerDocument}var pn=function(e){return e[e.None=0]="None",e[e.SignalBased=1]="SignalBased",e[e.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",e}(pn||{}),cc=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(cc||{});let Qd;function Xd(e,t){return Qd(e,t)}function oi(e,t,n,o,a){if(null!=o){let c,f=!1;pt(o)?c=o:it(o)&&(f=!0,o=o[Je]);const h=Ae(o);0===e&&null!==n?null==a?nf(t,n,h):yo(t,n,h,a||null,!0):1===e&&null!==n?yo(t,n,h,a||null,!0):2===e?function Oa(e,t,n){e.removeChild(null,t,n)}(t,h,f):3===e&&t.destroyNode(h),null!=c&&function Wy(e,t,n,o,a){const c=n[hr];c!==Ae(n)&&oi(t,e,o,c,a);for(let h=ut;ht.replace(EE,"\u200b$1\u200b"))}(t))}function Jd(e,t,n){return e.createElement(t,n)}function cg(e,t){t[ln].changeDetectionScheduler?.notify(10),lf(e,t,t[de],2,null,null)}function Ly(e,t){const n=e[Ai],o=t[ft];(it(o)||t[Qe]!==o[ft][Qe])&&(e[ee]|=gl.HasTransplantedViews),null===n?e[Ai]=[t]:n.push(t)}function ug(e,t){const n=e[Ai],o=n.indexOf(t);n.splice(o,1)}function uc(e,t){if(e.length<=ut)return;const n=ut+t,o=e[n];if(o){const a=o[no];null!==a&&a!==e&&ug(a,o),t>0&&(e[n-1][kt]=o[kt]);const c=al(e,ut+t);!function ef(e,t){cg(e,t),t[Je]=null,t[ht]=null}(o[P],o);const f=c[Zn];null!==f&&f.detachView(c[P]),o[ft]=null,o[kt]=null,o[ee]&=-129}return o}function ka(e,t){if(!(256&t[ee])){const n=t[de];n.destroyNode&&lf(e,t,n,3,null,null),function RE(e){let t=e[Oo];if(!t)return dc(e[P],e);for(;t;){let n=null;if(it(t))n=t[Oo];else{const o=t[ut];o&&(n=o)}if(!n){for(;t&&!t[kt]&&t!==e;)it(t)&&dc(t[P],t),t=t[ft];null===t&&(t=e),it(t)&&dc(t[P],t),n=t&&t[kt]}t=n}}(t)}}function dc(e,t){if(256&t[ee])return;const n=q(null);try{t[ee]&=-129,t[ee]|=256,t[Zt]&&ze(t[Zt]),function PE(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let o=0;o=0?o[h]():o[-h].unsubscribe(),f+=2}else n[f].call(o[n[f+1]]);null!==o&&(t[Ls]=null);const a=t[ro];if(null!==a){t[ro]=null;for(let f=0;f-1){const{encapsulation:c}=e.data[o.directiveStart+a];if(c===ni.None||c===ni.Emulated)return null}return cn(o,n)}}(e,t.parent,n)}function yo(e,t,n,o,a){e.insertBefore(t,n,o,a)}function nf(e,t,n){e.appendChild(t,n)}function By(e,t,n,o,a){null!==o?yo(e,t,n,o,a):nf(e,t,n)}function rf(e,t){return e.parentNode(t)}function Hy(e,t,n){return $y(e,t,n)}let fg,$y=function Uy(e,t,n){return 40&e.type?cn(e,n):null};function fc(e,t,n,o){const a=tf(e,o,t),c=t[de],h=Hy(o.parent||t[ht],o,t);if(null!=a)if(Array.isArray(n))for(let p=0;p-1){let c;for(;++ac?"":a[y+1].toLowerCase(),2&o&&m!==v){if(nr(o))return!1;f=!0}}}}else{if(!f&&!nr(o)&&!nr(p))return!1;if(f&&nr(p))continue;f=!1,o=p|1&o}}return nr(o)||f}function nr(e){return!(1&e)}function mg(e,t,n,o){if(null===t)return-1;let a=0;if(o||!n){let c=!1;for(;a-1)for(n++;n0?'="'+h+'"':"")+"]"}else 8&o?a+="."+f:4&o&&(a+=" "+f);else""!==a&&!nr(f)&&(t+=Jy(c,a),a=""),o=f,c=c||!nr(o);n++}return""!==a&&(t+=Jy(c,a)),t}const me={};function Ra(e=1){_g(ne(),S(),Ot()+e,!1)}function _g(e,t,n,o){if(!o)if(3&~t[ee]){const c=e.preOrderHooks;null!==c&&Dn(t,c,0,n)}else{const c=e.preOrderCheckHooks;null!==c&&Ml(t,c,n)}Vo(n)}function Yi(e,t=Ee.Default){const n=S();return null===n?Ge(e,t):Xu(we(),n,oe(e),t)}function vo(){throw new Error("invalid")}function cf(e,t,n,o,a,c){const f=q(null);try{let h=null;a&pn.SignalBased&&(h=t[o][Q]),null!==h&&void 0!==h.transformFn&&(c=h.transformFn(c)),a&pn.HasDecoratorInputTransform&&(c=e.inputTransforms[o].call(t,c)),null!==e.setInput?e.setInput(t,h,c,n,o):Ah(t,h,o,c)}finally{q(f)}}function ai(e,t,n,o,a,c,f,h,p,m,y){const v=t.blueprint.slice();return v[Je]=a,v[ee]=1228|o,(null!==m||e&&2048&e[ee])&&(v[ee]|=2048),Oh(v),v[ft]=v[xi]=e,v[Ke]=n,v[ln]=f||e&&e[ln],v[de]=h||e&&e[de],v[Pe]=p||e&&e[Pe]||null,v[ht]=c,v[Po]=function N_(){return TC++}(),v[an]=y,v[Mu]=m,v[Qe]=2==t.type?e[Qe]:v,v}function li(e,t,n,o,a){let c=e.data[t];if(null===c)c=function vg(e,t,n,o,a){const c=jh(),f=Vu(),p=e.data[t]=function QE(e,t,n,o,a,c){let f=t?t.injectorIndex:-1,h=0;return Fr()&&(h|=128),{type:n,index:o,insertBeforeIndex:null,injectorIndex:f,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:h,providerIndexes:0,value:a,attrs:c,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,f?c:c&&c.parent,n,t,o,a);return null===e.firstChild&&(e.firstChild=p),null!==c&&(f?null==c.child&&null!==p.parent&&(c.child=p):null===c.next&&(c.next=p,p.prev=c)),p}(e,t,n,o,a),function vt(){return fe.lFrame.inI18n}()&&(c.flags|=32);else if(64&c.type){c.type=n,c.value=o,c.attrs=a;const f=function Us(){const e=fe.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();c.injectorIndex=null===f?-1:f.injectorIndex}return vn(c,!0),c}function ci(e,t,n,o){if(0===n)return-1;const a=t.length;for(let c=0;cZ&&_g(e,t,Z,!1),Sr(f?2:0,a),n(o,a)}finally{Vo(c),Sr(f?3:1,a)}}function uf(e,t,n){if(Vs(t)){const o=q(null);try{const c=t.directiveEnd;for(let f=t.directiveStart;fnull;function ev(e,t,n,o,a){for(let c in t){if(!t.hasOwnProperty(c))continue;const f=t[c];if(void 0===f)continue;o??={};let h,p=pn.None;Array.isArray(f)?(h=f[0],p=f[1]):h=f;let m=c;if(null!==a){if(!a.hasOwnProperty(c))continue;m=a[c]}0===e?tv(o,n,m,h,p):tv(o,n,m,h)}return o}function tv(e,t,n,o,a){let c;e.hasOwnProperty(n)?(c=e[n]).push(t,o):c=e[n]=[t,o],void 0!==a&&c.push(a)}function wn(e,t,n,o,a,c,f,h){const p=cn(t,n);let y,m=t.inputs;!h&&null!=m&&(y=m[o])?(yc(e,n,y,o,a),io(t)&&function JE(e,t){const n=On(t,e);16&n[ee]||(n[ee]|=64)}(n,t.index)):3&t.type&&(o=function YE(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(o),a=null!=f?f(a,t.value||"",o):a,c.setProperty(p,o,a))}function Cg(e,t,n,o){if(Lh()){const a=null===o?null:{"":-1},c=function Ji(e,t){const n=e.directiveRegistry;let o=null,a=null;if(n)for(let c=0;c0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(f)!=h&&f.push(h),f.push(n,o,c)}}(e,t,o,ci(e,n,a.hostVars,me),a)}function mf(e){let t=16;return e.signals?t=4096:e.onPush&&(t=64),t}function vr(e,t,n,o,a,c){const f=cn(e,t);!function wg(e,t,n,o,a,c,f){if(null==c)e.removeAttribute(t,a,n);else{const h=null==f?ue(c):f(c,o||"",a);e.setAttribute(t,a,h,n)}}(t[de],f,c,e.value,n,o,a)}function aw(e,t,n,o,a,c){const f=c[t];if(null!==f)for(let h=0;h0&&(n[a-1][kt]=t),o{Lo(e.lView)},consumerOnSignalRead(){this.lView[Zt]=this}},pw={...pe,consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{let t=Nr(e.lView);for(;t&&!dv(t[P]);)t=Nr(t);t&&Fu(t)},consumerOnSignalRead(){this.lView[Zt]=this}};function dv(e){return 2!==e.type}function fv(e){if(null===e[oo])return;let t=!0;for(;t;){let n=!1;for(const o of e[oo])o.dirty&&(n=!0,null===o.zone||Zone.current===o.zone?o.run():o.zone.run(()=>o.run()));t=n&&!!(8192&e[ee])}}function yf(e,t=!0,n=0){const a=e[ln].rendererFactory;a.begin?.();try{!function mw(e,t){const n=$h();try{Dl(!0),Ag(e,t);let o=0;for(;yl(e);){if(100===o)throw new V(103,!1);o++,Ag(e,1)}}finally{Dl(n)}}(e,n)}catch(f){throw t&&_c(e,f),f}finally{a.end?.()}}function pv(e,t,n,o){const a=t[ee];if(!(256&~a))return;$u(t);let h=!0,p=null,m=null;dv(e)?(m=function cw(e){return e[Zt]??function uw(e){const t=uv.pop()??Object.create(fw);return t.lView=e,t}(e)}(t),p=lt(m)):null===function ve(){return $}()?(h=!1,m=function hw(e){const t=e[Zt]??Object.create(pw);return t.lView=e,t}(t),p=lt(m)):t[Zt]&&(ze(t[Zt]),t[Zt]=null);try{Oh(t),function Cl(e){return fe.lFrame.bindingIndex=e}(e.bindingStartIndex),null!==n&&bg(e,t,n,2,o);const y=!(3&~a);if(y){const E=e.preOrderCheckHooks;null!==E&&Ml(t,E,null)}else{const E=e.preOrderHooks;null!==E&&Dn(t,E,0,null),zu(t,0)}if(function _w(e){for(let t=gd(e);null!==t;t=$l(t)){if(!(t[ee]&gl.HasTransplantedViews))continue;const n=t[Ai];for(let o=0;o-1&&(uc(t,o),al(n,o))}this._attachedToViewContainer=!1}ka(this._lView[P],this._lView)}onDestroy(t){vl(this._lView,t)}markForCheck(){vc(this._cdRefInjectingView||this._lView,4)}markForRefresh(){Fu(this._cdRefInjectingView||this._lView)}detach(){this._lView[ee]&=-129}reattach(){ku(this._lView),this._lView[ee]|=128}detectChanges(){this._lView[ee]|=1024,yf(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new V(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const t=Bs(this._lView),n=this._lView[no];null!==n&&!t&&ug(n,this._lView),cg(this._lView[P],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new V(902,!1);this._appRef=t;const n=Bs(this._lView),o=this._lView[no];null!==o&&!n&&Ly(o,this._lView),ku(this._lView)}}let Dc=(()=>class e{static __NG_ELEMENT_ID__=yv})();const vw=Dc,vf=class extends vw{_declarationLView;_declarationTContainer;elementRef;constructor(t,n,o){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,o){const a=ui(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:n,dehydratedView:o});return new bc(a)}};function yv(){return rs(we(),S())}function rs(e,t){return 4&e.type?new vf(t,e,Go(e,t)):null}class Cv{resolveComponentFactory(t){throw Error(`No component factory found for ${rt(t)}.`)}}class Cc{static NULL=new Cv}class is{}class wv{}class ss{}class Ef{}let Iv=(()=>class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>function Mv(){const e=S(),n=On(we().index,e);return(it(n)?n:e)[de]}()})(),Ew=(()=>{class e{static \u0275prov=Oe({token:e,providedIn:"root",factory:()=>null})}return e})();function Tf(e,t,n){let o=n?e.styles:null,a=n?e.classes:null,c=0;if(null!==t)for(let f=0;f0&&qy(e,n,c.join(" "))}}(C,Tt,M,o),void 0!==n&&function Av(e,t,n){const o=e.projection=[];for(let a=0;an()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class kv extends is{injector;componentFactoryResolver=new Og(this);instance=null;constructor(t){super();const n=new ko([...t.providers,{provide:is,useValue:this},{provide:Cc,useValue:this.componentFactoryResolver}],t.parent||wi(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}let Fw=(()=>{class e{_injector;cachedInjectors=new Map;constructor(n){this._injector=n}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){const o=bh(0,n.type),a=o.length>0?function Ov(e,t,n=null){return new kv({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}([o],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,a)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=Oe({token:e,providedIn:"environment",factory:()=>new e(Ge(yn))})}return e})();function Rv(e){return zn(()=>{const t=Hg(e),n={...t,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Oi.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?a=>a.get(Fw).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||ni.Emulated,styles:e.styles||Re,_:null,schemas:e.schemas||null,tView:null,id:""};t.standalone&&Mt("NgStandalone"),Ug(n);const o=e.dependencies;return n.directiveDefs=Sf(o,!1),n.pipeDefs=Sf(o,!0),n.id=function Af(e){let t=0;const n=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(const a of n)t=Math.imul(31,t)+a.charCodeAt(0)|0;return t+=2147483648,"c"+t}(n),n})}function kw(e){return Ce(e)||At(e)}function Ow(e){return null!==e}function Lg(e){return zn(()=>({type:e.type,bootstrap:e.bootstrap||Re,declarations:e.declarations||Re,imports:e.imports||Re,exports:e.exports||Re,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Vg(e,t){if(null==e)return dr;const n={};for(const o in e)if(e.hasOwnProperty(o)){const a=e[o];let c,f,h=pn.None;Array.isArray(a)?(h=a[0],c=a[1],f=a[2]??c):(c=a,f=a),t?(n[c]=h!==pn.None?[o,h]:o,t[c]=f):n[c]=o}return n}function Bg(e){return zn(()=>{const t=Hg(e);return Ug(t),t})}function jg(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function Hg(e){const t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:e.inputs||dr,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:!0===e.signals,selectors:e.selectors||Re,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Vg(e.inputs,t),outputs:Vg(e.outputs),debugInfo:null}}function Ug(e){e.features?.forEach(t=>t(e))}function Sf(e,t){if(!e)return null;const n=t?Ut:kw;return()=>("function"==typeof e?e():e).map(o=>n(o)).filter(Ow)}function zg(e){return"function"==typeof e&&void 0!==e[Q]}const Yg=new le(""),Of=new le("");let Jg,rb=(()=>{class e{_ngZone;registry;_isZoneStable=!0;_callbacks=[];taskTrackingZone=null;constructor(n,o,a){this._ngZone=n,this.registry=o,Jg||(function jw(e){Jg=e}(a),a.addToWindow(o)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{tt.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb()}});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(o=>!o.updateCb||!o.updateCb(n)||(clearTimeout(o.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,o,a){let c=-1;o&&o>0&&(c=setTimeout(()=>{this._callbacks=this._callbacks.filter(f=>f.timeoutId!==c),n()},o)),this._callbacks.push({doneCb:n,timeoutId:c,updateCb:a})}whenStable(n,o,a){if(a&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,o,a),this._runCallbacksIfReady()}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,o,a){return[]}static \u0275fac=function(o){return new(o||e)(Ge(tt),Ge(ob),Ge(Of))};static \u0275prov=Oe({token:e,factory:e.\u0275fac})}return e})(),ob=(()=>{class e{_applications=new Map;registerApplication(n,o){this._applications.set(n,o)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,o=!0){return Jg?.findTestabilityInTree(this,n,o)??null}static \u0275fac=function(o){return new(o||e)};static \u0275prov=Oe({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function Tc(e){return!!e&&"function"==typeof e.then}function em(e){return!!e&&"function"==typeof e.subscribe}const tm=new le("");let nm=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((n,o)=>{this.resolve=n,this.reject=o});appInits=z(tm,{optional:!0})??[];injector=z(It);constructor(){}runInitializers(){if(this.initialized)return;const n=[];for(const a of this.appInits){const c=Xm(this.injector,a);if(Tc(c))n.push(c);else if(em(c)){const f=new Promise((h,p)=>{c.subscribe({complete:h,error:p})});n.push(f)}}const o=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{o()}).catch(a=>{this.reject(a)}),0===n.length&&o(),this.initialized=!0}static \u0275fac=function(o){return new(o||e)};static \u0275prov=Oe({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Rf=(()=>{class e{static \u0275prov=Oe({token:e,providedIn:"root",factory:()=>new rm})}return e})();class rm{queuedEffectCount=0;queues=new Map;schedule(t){this.enqueue(t)}enqueue(t){const n=t.zone;this.queues.has(n)||this.queues.set(n,new Set);const o=this.queues.get(n);o.has(t)||(this.queuedEffectCount++,o.add(t))}flush(){for(;this.queuedEffectCount>0;)for(const[t,n]of this.queues)null===t?this.flushQueue(n):t.run(()=>this.flushQueue(n))}flushQueue(t){for(const n of t)t.delete(n),this.queuedEffectCount--,n.run()}}const xc=new le("");let Mn=(()=>{class e{_bootstrapListeners=[];_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=z(ca);afterRenderManager=z(ji);zonelessEnabled=z(Ol);rootEffectScheduler=z(Rf);dirtyFlags=0;deferredDirtyFlags=0;externalTestViews=new Set;afterTick=new Eo.B;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=z(Yn).hasPendingTasks.pipe((0,iu.T)(n=>!n));whenStable(){let n;return new Promise(o=>{n=this.isStable.subscribe({next:a=>{a&&o()}})}).finally(()=>{n.unsubscribe()})}_injector=z(yn);get injector(){return this._injector}bootstrap(n,o){const a=n instanceof ss;if(!this._injector.get(nm).done)throw!a&&function Di(e){const t=Ce(e)||At(e)||Ut(e);return null!==t&&t.standalone}(n),new V(405,!1);let f;f=a?n:this._injector.get(Cc).resolveComponentFactory(n),this.componentTypes.push(f.componentType);const h=function ib(e){return e.isBoundToModule}(f)?void 0:this._injector.get(is),m=f.create(It.NULL,[],o||f.selector,h),y=m.location.nativeElement,v=m.injector.get(Yg,null);return v?.registerApplication(y),m.onDestroy(()=>{this.detachView(m.hostView),Sc(this.components,m),v?.unregisterApplication(y)}),this._loadComponent(m),m}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){if(this._runningTick)throw new V(101,!1);const n=q(null);try{this._runningTick=!0,this.synchronize()}catch(o){this.internalErrorHandler(o)}finally{this._runningTick=!1,q(n),this.afterTick.next()}}synchronize(){let n=null;this._injector.destroyed||(n=this._injector.get(Ef,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let o=0;for(;0!==this.dirtyFlags&&o++<10;)this.synchronizeOnce(n)}synchronizeOnce(n){if(this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0,16&this.dirtyFlags&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush()),7&this.dirtyFlags){const o=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:a,notifyErrorHandler:c}of this.allViews)l(a,c,o,this.zonelessEnabled);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),23&this.dirtyFlags)return}else n?.begin?.(),n?.end?.();8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:n})=>yl(n))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(n){const o=n;this._views.push(o),o.attachToAppRef(this)}detachView(n){const o=n;Sc(this._views,o),o.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const o=this._injector.get(xc,[]);[...this._bootstrapListeners,...o].forEach(a=>a(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Sc(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new V(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static \u0275fac=function(o){return new(o||e)};static \u0275prov=Oe({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Sc(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}function l(e,t,n,o){(n||yl(e))&&yf(e,t,n&&!o?0:1)}let e0=()=>null;function Nc(e,t){return e0(e,t)}let lm=(()=>class e{static __NG_ELEMENT_ID__=vS})();function vS(){return r0(we(),S())}const bS=lm,t0=class extends bS{_lContainer;_hostTNode;_hostLView;constructor(t,n,o){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=o}get element(){return Go(this._hostTNode,this._hostLView)}get injector(){return new bt(this._hostTNode,this._hostLView)}get parentInjector(){const t=Ys(this._hostTNode,this._hostLView);if(Ku(t)){const n=Zs(t,this._hostLView),o=Fi(t);return new bt(n[P].data[o+8],n)}return new bt(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=n0(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-ut}createEmbeddedView(t,n,o){let a,c;"number"==typeof o?a=o:null!=o&&(a=o.index,c=o.injector);const f=Nc(this._lContainer,t.ssrId),h=t.createEmbeddedViewImpl(n||{},c,f);return this.insertImpl(h,a,br(this._hostTNode,f)),h}createComponent(t,n,o,a,c){const f=t&&!function dl(e){return"function"==typeof e}(t);let h;if(f)h=n;else{const M=n||{};h=M.index,o=M.injector,a=M.projectableNodes,c=M.environmentInjector||M.ngModuleRef}const p=f?t:new Ec(Ce(t)),m=o||this.parentInjector;if(!c&&null==p.ngModule){const A=(f?m:this.parentInjector).get(yn,null);A&&(c=A)}const y=Ce(p.componentType??{}),v=Nc(this._lContainer,y?.id??null),E=p.create(m,a,v?.firstChild??null,c);return this.insertImpl(E.hostView,h,br(this._hostTNode,v)),E}insert(t,n){return this.insertImpl(t,n,!0)}insertImpl(t,n,o){const a=t._lView;if(function pC(e){return pt(e[ft])}(a)){const h=this.indexOf(t);if(-1!==h)this.detach(h);else{const p=a[ft],m=new t0(p,p[ht],p[ft]);m.detach(m.indexOf(t))}}const c=this._adjustIndex(n),f=this._lContainer;return ts(f,a,c,o),t.attachToViewContainerRef(),$m(mb(f),c,t),t}move(t,n){return this.insert(t,n)}indexOf(t){const n=n0(this._lContainer);return null!==n?n.indexOf(t):-1}remove(t){const n=this._adjustIndex(t,-1),o=uc(this._lContainer,n);o&&(al(mb(this._lContainer),n),ka(o[P],o))}detach(t){const n=this._adjustIndex(t,-1),o=uc(this._lContainer,n);return o&&null!=al(mb(this._lContainer),n)?new bc(o):null}_adjustIndex(t,n=0){return t??this.length+n}};function n0(e){return e[8]}function mb(e){return e[8]||(e[8]=[])}function r0(e,t){let n;const o=t[e.index];return pt(o)?n=o:(n=sv(o,t,null,e),t[e.index]=n,mc(t,n)),o0(n,t,e,o),new t0(n,e,t)}let o0=function a0(e,t,n,o){if(e[hr])return;let a;a=8&n.type?Ae(o):function DS(e,t){const n=e[de],o=n.createComment(""),a=cn(t,e);return yo(n,rf(n,a),o,function jy(e,t){return e.nextSibling(t)}(n,a),!1),o}(t,n),e[hr]=a},_b=()=>!1;class yb{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new yb(this.queryList)}setDirty(){this.queryList.setDirty()}}class vb{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){const n=t.queries;if(null!==n){const o=null!==t.contentQueries?t.contentQueries[0]:n.length,a=[];for(let c=0;ct.trim())}(t):t}}class bb{queries;constructor(t=[]){this.queries=t}elementStart(t,n){for(let o=0;o0)o.push(f[h/2]);else{const m=c[h+1],y=t[-p];for(let v=ut;v(Ct(t),t.value);return n[Q]=t,n}(e),o=n[Q];return t?.equal&&(o.equal=t.equal),n.set=a=>$n(o,a),n.update=a=>function ru(e,t){Te()||nu(),$n(e,t(e.value))}(o,a),n.asReadonly=Ib.bind(n),n}function Ib(){const e=this[Q];if(void 0===e.readonlyFn){const t=()=>this();t[Q]=e,e.readonlyFn=t}return e.readonlyFn}function g0(e){return zg(e)&&"function"==typeof e.set}function Tb(e){let t=function M0(e){return Object.getPrototypeOf(e.prototype).constructor}(e.type),n=!0;const o=[e];for(;t;){let a;if(kn(e))a=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new V(903,!1);a=t.\u0275dir}if(a){if(n){o.push(a);const f=e;f.inputs=um(e.inputs),f.inputTransforms=um(e.inputTransforms),f.declaredInputs=um(e.declaredInputs),f.outputs=um(e.outputs);const h=a.hostBindings;h&&GS(e,h);const p=a.viewQuery,m=a.contentQueries;if(p&&US(e,p),m&&$S(e,m),jS(e,a),lu(e.outputs,a.outputs),kn(a)&&a.data.animation){const y=e.data;y.animation=(y.animation||[]).concat(a.data.animation)}}const c=a.features;if(c)for(let f=0;f=0;o--){const a=e[o];a.hostVars=t+=a.hostVars,a.hostAttrs=We(a.hostAttrs,n=We(n,a.hostAttrs))}}(o)}function jS(e,t){for(const n in t.inputs){if(!t.inputs.hasOwnProperty(n)||e.inputs.hasOwnProperty(n))continue;const o=t.inputs[n];if(void 0!==o&&(e.inputs[n]=o,e.declaredInputs[n]=t.declaredInputs[n],null!==t.inputTransforms)){const a=Array.isArray(o)?o[0]:o;if(!t.inputTransforms.hasOwnProperty(a))continue;e.inputTransforms??={},e.inputTransforms[a]=t.inputTransforms[a]}}}function um(e){return e===dr?{}:e===Re?[]:e}function US(e,t){const n=e.viewQuery;e.viewQuery=n?(o,a)=>{t(o,a),n(o,a)}:t}function $S(e,t){const n=e.contentQueries;e.contentQueries=n?(o,a,c)=>{t(o,a,c),n(o,a,c)}:t}function GS(e,t){const n=e.hostBindings;e.hostBindings=n?(o,a)=>{t(o,a),n(o,a)}:t}function N0(e){const t=e.inputConfig,n={};for(const o in t)if(t.hasOwnProperty(o)){const a=t[o];Array.isArray(a)&&a[3]&&(n[o]=a[3])}e.inputTransforms=n}function dm(e){return!!Sb(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}function Sb(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function Do(e,t,n){return e[t]=n}function Dt(e,t,n){return!Object.is(e[t],n)&&(e[t]=n,!0)}function Wa(e,t,n,o){const a=Dt(e,t,n);return Dt(e,t+1,o)||a}function Gf(e,t,n,o,a,c,f,h,p,m){const y=n+Z,v=t.firstCreatePass?function JS(e,t,n,o,a,c,f,h,p){const m=t.consts,y=li(t,e,4,f||null,h||null);Cg(t,n,y,Rn(m,p)),Il(t,y);const v=y.tView=Pa(2,y,o,a,c,t.directiveRegistry,t.pipeRegistry,null,t.schemas,m,null);return null!==t.queries&&(t.queries.template(t,y),v.queries=t.queries.embeddedTView(y)),y}(y,t,e,o,a,c,f,h,p):t.data[y];vn(v,!1);const C=F0(t,e,v,n);Gs()&&fc(t,e,C,v),Xt(C,e);const E=sv(C,e,C,v);return e[y]=E,mc(e,E),function s0(e,t,n){return _b(e,t,n)}(E,v,e),Tu(v)&&df(t,e,v),null!=p&&ff(e,v,m),v}function Ab(e,t,n,o,a,c,f,h){const p=S(),m=ne();return Gf(p,m,e,t,n,o,a,Rn(m.consts,c),f,h),Ab}let F0=function k0(e,t,n,o){return mr(!0),t[de].createComment("")};function Hb(e,t,n,o){const a=S();return Dt(a,je(),t)&&(ne(),vr(Me(),a,e,t,n,o)),Hb}function gm(e,t){return e<<17|t<<2}function ds(e){return e>>17&32767}function Ub(e){return 2|e}function Ka(e){return(131068&e)>>2}function $b(e,t){return-131069&e|t<<2}function Gb(e){return 1|e}function X0(e,t,n,o){const a=e[n+1],c=null===t;let f=o?ds(a):Ka(a),h=!1;for(;0!==f&&(!1===h||c);){const m=e[f+1];KA(e[f],t)&&(h=!0,e[f+1]=o?Gb(m):Ub(m)),f=o?ds(m):Ka(m)}h&&(e[n+1]=o?Ub(a):Gb(a))}function KA(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Os(e,t)>=0}const Vt={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Y0(e){return e.substring(Vt.key,Vt.keyEnd)}function ZA(e){return e.substring(Vt.value,Vt.valueEnd)}function J0(e,t){const n=Vt.textEnd;return n===t?-1:(t=Vt.keyEnd=function YA(e,t,n){for(;t32;)t++;return t}(e,Vt.key=t,n),qc(e,t,n))}function eI(e,t){const n=Vt.textEnd;let o=Vt.key=qc(e,t,n);return n===o?-1:(o=Vt.keyEnd=function JA(e,t,n){let o;for(;t=65&&(-33&o)<=90||o>=48&&o<=57);)t++;return t}(e,o,n),o=nI(e,o,n),o=Vt.value=qc(e,o,n),o=Vt.valueEnd=function eN(e,t,n){let o=-1,a=-1,c=-1,f=t,h=f;for(;f32&&(h=f),c=a,a=o,o=-33&p}return h}(e,o,n),nI(e,o,n))}function tI(e){Vt.key=0,Vt.keyEnd=0,Vt.value=0,Vt.valueEnd=0,Vt.textEnd=e.length}function qc(e,t,n){for(;t=0;n=eI(t,n))aI(e,Y0(t),ZA(t))}function oI(e){qr(aN,Co,e,!0)}function Co(e,t){for(let n=function QA(e){return tI(e),J0(e,qc(e,0,Vt.textEnd))}(t);n>=0;n=J0(t,n))_n(e,Y0(t),!0)}function Wr(e,t,n,o){const a=S(),c=ne(),f=gr(2);c.firstUpdatePass&&sI(c,e,f,o),t!==me&&Dt(a,f,t)&&lI(c,c.data[Ot()],a,a[de],e,a[f+1]=function cN(e,t){return null==e||""===e||("string"==typeof t?e+=t:"object"==typeof e&&(e=rt(mo(e)))),e}(t,n),o,f)}function qr(e,t,n,o){const a=ne(),c=gr(2);a.firstUpdatePass&&sI(a,null,c,o);const f=S();if(n!==me&&Dt(f,c,n)){const h=a.data[Ot()];if(uI(h,o)&&!iI(a,c)){let p=o?h.classesWithoutHost:h.stylesWithoutHost;null!==p&&(n=ir(p,n||"")),Wb(a,h,f,n,o)}else!function lN(e,t,n,o,a,c,f,h){a===me&&(a=Re);let p=0,m=0,y=0=e.expandoStartIndex}function sI(e,t,n,o){const a=e.data;if(null===a[n+1]){const c=a[Ot()],f=iI(e,n);uI(c,o)&&null===t&&!f&&(t=!1),t=function nN(e,t,n,o){const a=function Hu(e){const t=fe.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let c=o?t.residualClasses:t.residualStyles;if(null===a)0===(o?t.classBindings:t.styleBindings)&&(n=Wf(n=Zb(null,e,t,n,o),t.attrs,o),c=null);else{const f=t.directiveStylingLast;if(-1===f||e[f]!==a)if(n=Zb(a,e,t,n,o),null===c){let p=function rN(e,t,n){const o=n?t.classBindings:t.styleBindings;if(0!==Ka(o))return e[ds(o)]}(e,t,o);void 0!==p&&Array.isArray(p)&&(p=Zb(null,e,t,p[1],o),p=Wf(p,t.attrs,o),function oN(e,t,n,o){e[ds(n?t.classBindings:t.styleBindings)]=o}(e,t,o,p))}else c=function iN(e,t,n){let o;const a=t.directiveEnd;for(let c=1+t.directiveStylingLast;c0)&&(m=!0)):y=n,a)if(0!==p){const C=ds(e[h+1]);e[o+1]=gm(C,h),0!==C&&(e[C+1]=$b(e[C+1],o)),e[h+1]=function GA(e,t){return 131071&e|t<<17}(e[h+1],o)}else e[o+1]=gm(h,0),0!==h&&(e[h+1]=$b(e[h+1],o)),h=o;else e[o+1]=gm(p,0),0===h?h=o:e[p+1]=$b(e[p+1],o),p=o;m&&(e[o+1]=Ub(e[o+1])),X0(e,y,o,!0),X0(e,y,o,!1),function qA(e,t,n,o,a){const c=a?e.residualClasses:e.residualStyles;null!=c&&"string"==typeof t&&Os(c,t)>=0&&(n[o+1]=Gb(n[o+1]))}(t,y,e,o,c),f=gm(h,p),c?t.classBindings=f:t.styleBindings=f}(a,c,t,n,f,o)}}function Zb(e,t,n,o,a){let c=null;const f=n.directiveEnd;let h=n.directiveStylingLast;for(-1===h?h=n.directiveStart:h++;h0;){const p=e[a],m=Array.isArray(p),y=m?p[1]:p,v=null===y;let C=n[a+1];C===me&&(C=v?Re:void 0);let E=v?yu(C,o):y===o?C:void 0;if(m&&!mm(E)&&(E=yu(p,o)),mm(E)&&(h=E,f))return h;const M=e[a+1];a=f?ds(M):Ka(M)}if(null!==t){let p=c?t.residualClasses:t.residualStyles;null!=p&&(h=yu(p,o))}return h}function mm(e){return void 0!==e}function uI(e,t){return!!(e.flags&(t?8:16))}class bN{destroy(t){}updateValue(t,n){}swap(t,n){const o=Math.min(t,n),a=Math.max(t,n),c=this.detach(a);if(a-o>1){const f=this.detach(o);this.attach(o,c),this.attach(a,f)}else this.attach(o,c)}move(t,n){this.attach(n,this.detach(t))}}function Qb(e,t,n,o,a){return e===n&&Object.is(t,o)?1:Object.is(a(e,t),a(n,o))?-1:0}function Xb(e,t,n,o){return!(void 0===t||!t.has(o)||(e.attach(n,t.get(o)),t.delete(o),0))}function dI(e,t,n,o,a){if(Xb(e,t,o,n(o,a)))e.updateValue(o,a);else{const c=e.create(o,a);e.attach(o,c)}}function fI(e,t,n,o){const a=new Set;for(let c=t;c<=n;c++)a.add(o(c,e.at(c)));return a}class hI{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;const n=this.kvMap.get(t);return void 0!==this._vMap&&this._vMap.has(n)?(this.kvMap.set(t,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,n){if(this.kvMap.has(t)){let o=this.kvMap.get(t);void 0===this._vMap&&(this._vMap=new Map);const a=this._vMap;for(;a.has(o);)o=a.get(o);a.set(o,n)}else this.kvMap.set(t,n)}forEach(t){for(let[n,o]of this.kvMap)if(t(o,n),void 0!==this._vMap){const a=this._vMap;for(;a.has(o);)o=a.get(o),t(o,n)}}}function pI(e,t){Mt("NgControlFlow");const n=S(),o=je(),a=n[o]!==me?n[o]:-1,c=-1!==a?_m(n,Z+a):void 0;if(Dt(n,o,e)){const h=q(null);try{if(void 0!==c&&_f(c,0),-1!==e){const p=Z+e,m=_m(n,p),y=Yb(n[P],p),v=Nc(m,y.tView.ssrId);ts(m,ui(n,y,t,{dehydratedView:v}),0,br(y,v))}}finally{q(h)}}else if(void 0!==c){const h=xg(c,0);void 0!==h&&(h[Ke]=t)}}class CN{lContainer;$implicit;$index;constructor(t,n,o){this.lContainer=t,this.$implicit=n,this.$index=o}get $count(){return this.lContainer.length-ut}}function gI(e,t){return t}class wN{hasEmptyBlock;trackByFn;liveCollection;constructor(t,n,o){this.hasEmptyBlock=t,this.trackByFn=n,this.liveCollection=o}}function mI(e,t,n,o,a,c,f,h,p,m,y,v,C){Mt("NgControlFlow");const E=S(),M=ne(),A=void 0!==p,R=S(),H=h?f.bind(R[Qe][Ke]):f,N=new wN(A,H);R[Z+e]=N,Gf(E,M,e+1,t,n,o,a,Rn(M.consts,c)),A&&Gf(E,M,e+2,p,m,y,v,Rn(M.consts,C))}class IN extends bN{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,n,o){super(),this.lContainer=t,this.hostLView=n,this.templateTNode=o}get length(){return this.lContainer.length-ut}at(t){return this.getLView(t)[Ke].$implicit}attach(t,n){const o=n[an];this.needsIndexUpdate||=t!==this.length,ts(this.lContainer,n,t,br(this.templateTNode,o))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,function MN(e,t){return uc(e,t)}(this.lContainer,t)}create(t,n){const o=Nc(this.lContainer,this.templateTNode.tView.ssrId),a=ui(this.hostLView,this.templateTNode,new CN(this.lContainer,n,t),{dehydratedView:o});return this.operationsCounter?.recordCreate(),a}destroy(t){ka(t[P],t),this.operationsCounter?.recordDestroy()}updateValue(t,n){this.getLView(t)[Ke].$implicit=n}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t{e.destroy(p)})}(p,e,c.trackByFn),p.updateIndexes(),c.hasEmptyBlock){const m=je(),y=0===p.length;if(Dt(o,m,y)){const v=n+2,C=_m(o,v);if(y){const E=Yb(a,v),M=Nc(C,E.tView.ssrId);ts(C,ui(o,E,void 0,{dehydratedView:M}),0,br(E,M))}else _f(C,0)}}}finally{q(t)}}function _m(e,t){return e[t]}function Yb(e,t){return js(e,t)}function ym(e,t,n,o){const a=S(),c=ne(),f=Z+e,h=a[de],p=c.firstCreatePass?function xN(e,t,n,o,a,c){const f=t.consts,p=li(t,e,2,o,Rn(f,a));return Cg(t,n,p,Rn(f,c)),null!==p.attrs&&Tf(p,p.attrs,!1),null!==p.mergedAttrs&&Tf(p,p.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,p),p}(f,c,a,t,n,o):c.data[f],m=yI(c,a,p,h,t,e);a[f]=m;const y=Tu(p);return vn(p,!0),Ky(h,m,p),!function Oc(e){return!(32&~e.flags)}(p)&&Gs()&&fc(c,a,m,p),0===function l_(){return fe.lFrame.elementDepthCount}()&&Xt(m,a),function c_(){fe.lFrame.elementDepthCount++}(),y&&(df(c,a,p),uf(c,p,a)),null!==o&&ff(a,p),ym}function vm(){let e=we();Vu()?Bu():(e=e.parent,vn(e,!1));const t=e;(function u_(e){return fe.skipHydrationRootTNode===e})(t)&&function f_(){fe.skipHydrationRootTNode=null}(),function Ph(){fe.lFrame.elementDepthCount--}();const n=ne();return n.firstCreatePass&&(Il(n,e),Vs(e)&&n.queries.elementEnd(e)),null!=t.classesWithoutHost&&function p_(e){return!!(8&e.flags)}(t)&&Wb(n,t,S(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function Cn(e){return!!(16&e.flags)}(t)&&Wb(n,t,S(),t.stylesWithoutHost,!1),vm}function Jb(e,t,n,o){return ym(e,t,n,o),vm(),Jb}let yI=(e,t,n,o,a,c)=>(mr(!0),Jd(o,a,function Jh(){return fe.lFrame.currentNamespace}()));function eD(e,t,n){const o=S(),a=ne(),c=e+Z,f=a.firstCreatePass?function NN(e,t,n,o,a){const c=t.consts,f=Rn(c,o),h=li(t,e,8,"ng-container",f);return null!==f&&Tf(h,f,!0),Cg(t,n,h,Rn(c,a)),null!==t.queries&&t.queries.elementStart(t,h),h}(c,a,o,t,n):a.data[c];vn(f,!0);const h=vI(a,o,f,e);return o[c]=h,Gs()&&fc(a,o,h,f),Xt(h,o),Tu(f)&&(df(a,o,f),uf(a,f,o)),null!=n&&ff(o,f),eD}function tD(){let e=we();const t=ne();return Vu()?Bu():(e=e.parent,vn(e,!1)),t.firstCreatePass&&(Il(t,e),Vs(e)&&t.queries.elementEnd(e)),tD}function nD(e,t,n){return eD(e,t,n),tD(),nD}let vI=(e,t,n,o)=>(mr(!0),lg(t[de],""));function bI(){return S()}const Za=void 0;var RN=["en",[["a","p"],["AM","PM"],Za],[["AM","PM"],Za,Za],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Za,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Za,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Za,"{1} 'at' {0}",Za],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function ON(e){const n=Math.floor(Math.abs(e)),o=e.toString().replace(/^[^.]*\.?/,"").length;return 1===n&&0===o?1:5}];let Kc={};function rD(e){const t=function PN(e){return e.toLowerCase().replace(/_/g,"-")}(e);let n=wI(t);if(n)return n;const o=t.split("-")[0];if(n=wI(o),n)return n;if("en"===o)return RN;throw new V(701,!1)}function EI(e){return rD(e)[Zc.PluralCase]}function wI(e){return e in Kc||(Kc[e]=dt.ng&&dt.ng.common&&dt.ng.common.locales&&dt.ng.common.locales[e]),Kc[e]}var Zc=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}(Zc||{});const bm="en-US";let II=bm,$I=(e,t,n)=>{};function sD(e,t,n,o){const a=S(),c=ne(),f=we();return aD(c,a,a[de],f,e,t,o),sD}function aD(e,t,n,o,a,c,f){const h=Tu(o),m=e.firstCreatePass&&lv(e),y=t[Ke],v=es(t);let C=!0;if(3&o.type||f){const A=cn(o,t),R=f?f(A):A,H=v.length,N=f?ye=>f(Ae(ye[o.index])):o.index;let ce=null;if(!f&&h&&(ce=function IF(e,t,n,o){const a=e.cleanup;if(null!=a)for(let c=0;cp?h[p]:null}"string"==typeof f&&(c+=2)}return null}(e,t,a,o.index)),null!==ce)(ce.__ngLastListenerFn__||ce).__ngNextListenerFn__=c,ce.__ngLastListenerFn__=c,C=!1;else{c=WI(o,t,y,c),$I(A,a,c);const ye=n.listen(R,a,c);v.push(c,ye),m&&m.push(a,N,H,H+1)}}else c=WI(o,t,y,c);const E=o.outputs;let M;if(C&&null!==E&&(M=E[a])){const A=M.length;if(A)for(let R=0;R-1?On(e.index,t):t,5);let h=zI(t,n,o,c),p=a.__ngNextListenerFn__;for(;p;)h=zI(t,n,p,c)&&h,p=p.__ngNextListenerFn__;return h}}function qI(e=1){return function Qh(e){return(fe.lFrame.contextLView=function Rh(e,t){for(;e>0;)t=t[xi],e--;return t}(e,fe.lFrame.contextLView))[Ke]}(e)}function MF(e,t){let n=null;const o=function Xy(e){const t=e.attrs;if(null!=t){const n=t.indexOf(5);if(!(1&n))return t[n+1]}return null}(e);for(let a=0;a(mr(!0),function ag(e,t){return e.createText(t)}(t[de],o));function uD(e){return wm("",e,""),uD}function wm(e,t,n){const o=S(),a=function Bc(e,t,n,o){return Dt(e,je(),n)?t+ue(n)+o:me}(o,e,t,n);return a!==me&&function Hr(e,t,n){const o=Ar(t,e);!function Yd(e,t,n){e.setValue(t,n)}(e[de],o,n)}(o,Ot(),a),wm}function dD(e,t,n){g0(t)&&(t=t());const o=S();return Dt(o,je(),t)&&wn(ne(),Me(),o,e,t,o[de],n,!1),dD}function SM(e,t){const n=g0(e);return n&&e.set(t),n}function fD(e,t){const n=S(),o=ne(),a=we();return aD(o,n,n[de],a,e,t),fD}function hD(e,t,n,o,a){if(e=oe(e),Array.isArray(e))for(let c=0;c>20;if(Ei(e)||!e.multi){const E=new zs(m,a,Yi),M=gD(p,t,a?y:y+C,v);-1===M?(Sl(Xs(h,f),c,p),pD(c,e,t.length),t.push(p),h.directiveStart++,h.directiveEnd++,a&&(h.providerIndexes+=1048576),n.push(E),f.push(E)):(n[M]=E,f[M]=E)}else{const E=gD(p,t,y+C,v),M=gD(p,t,y,y+C),R=M>=0&&n[M];if(a&&!R||!a&&!(E>=0&&n[E])){Sl(Xs(h,f),c,p);const H=function qF(e,t,n,o,a){const c=new zs(e,n,Yi);return c.multi=[],c.index=t,c.componentProviders=0,FM(c,a,o&&!n),c}(a?WF:zF,n.length,a,o,m);!a&&R&&(n[M].providerFactory=H),pD(c,e,t.length,0),t.push(p),h.directiveStart++,h.directiveEnd++,a&&(h.providerIndexes+=1048576),n.push(H),f.push(H)}else pD(c,e,E>-1?E:M,FM(n[a?M:E],m,!a&&o));!a&&o&&R&&n[M].componentProviders++}}}function pD(e,t,n,o){const a=Ei(t),c=function Dh(e){return!!e.useClass}(t);if(a||c){const p=(c?oe(t.useClass):t).prototype.ngOnDestroy;if(p){const m=e.destroyHooks||(e.destroyHooks=[]);if(!a&&t.multi){const y=m.indexOf(n);-1===y?m.push(n,[o,p]):m[y+1].push(o,p)}else m.push(n,p)}}}function FM(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function gD(e,t,n,o){for(let a=n;a{n.providersResolver=(o,a)=>function GF(e,t,n){const o=ne();if(o.firstCreatePass){const a=kn(e);hD(n,o.data,o.blueprint,a,!0),hD(t,o.data,o.blueprint,a,!1)}}(o,a?a(e):e,t)}}function RM(e,t,n,o){return BM(S(),Qt(),e,t,n,o)}function PM(e,t,n,o,a){return function jM(e,t,n,o,a,c,f){const h=t+n;return Wa(e,h,a,c)?Do(e,h+2,f?o.call(f,a,c):o(a,c)):Yf(e,h+2)}(S(),Qt(),e,t,n,o,a)}function LM(e,t,n,o,a,c){return function HM(e,t,n,o,a,c,f,h){const p=t+n;return function fm(e,t,n,o,a){const c=Wa(e,t,n,o);return Dt(e,t+2,a)||c}(e,p,a,c,f)?Do(e,p+3,h?o.call(h,a,c,f):o(a,c,f)):Yf(e,p+3)}(S(),Qt(),e,t,n,o,a,c)}function VM(e,t,n,o,a,c,f){return function UM(e,t,n,o,a,c,f,h,p){const m=t+n;return function Dr(e,t,n,o,a,c){const f=Wa(e,t,n,o);return Wa(e,t+2,a,c)||f}(e,m,a,c,f,h)?Do(e,m+4,p?o.call(p,a,c,f,h):o(a,c,f,h)):Yf(e,m+4)}(S(),Qt(),e,t,n,o,a,c,f)}function Yf(e,t){const n=e[t];return n===me?void 0:n}function BM(e,t,n,o,a,c){const f=t+n;return Dt(e,f,a)?Do(e,f+1,c?o.call(c,a):o(a)):Yf(e,f+1)}function GM(e,t){const n=ne();let o;const a=e+Z;n.firstCreatePass?(o=function rk(e,t){if(t)for(let n=t.length-1;n>=0;n--){const o=t[n];if(e===o.name)return o}}(t,n.pipeRegistry),n.data[a]=o,o.onDestroy&&(n.destroyHooks??=[]).push(a,o.onDestroy)):o=n.data[a];const c=o.factory||(o.factory=No(o.type)),h=I(Yi);try{const p=Xn(!1),m=c();return Xn(p),function cD(e,t,n,o){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=o}(n,S(),a,m),m}finally{I(h)}}function zM(e,t,n){const o=e+Z,a=S(),c=Ni(a,o);return function Jf(e,t){return e[P].data[t].pure}(a,o)?BM(a,Qt(),t,c.transform,n,c):c.transform(n)}function WM(e,t){return rs(e,t)}class lT{full;major;minor;patch;constructor(t){this.full=t;const n=t.split(".");this.major=n[0],this.minor=n[1],this.patch=n.slice(2).join(".")}}let Lk=(()=>{class e{zone=z(tt);changeDetectionScheduler=z(Pr);applicationRef=z(Mn);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(o){return new(o||e)};static \u0275prov=Oe({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Vk=new le("",{factory:()=>!1});function CD({ngZoneFactory:e,ignoreChangesOutsideZone:t,scheduleInRootZone:n}){return e??=()=>new tt({...ED(),scheduleInRootZone:n}),[{provide:tt,useFactory:e},{provide:fr,multi:!0,useFactory:()=>{const o=z(Lk,{optional:!0});return()=>o.initialize()}},{provide:fr,multi:!0,useFactory:()=>{const o=z(jk);return()=>{o.initialize()}}},!0===t?{provide:oa,useValue:!0}:[],{provide:co,useValue:n??E_}]}function Bk(e){const t=e?.ignoreChangesOutsideZone,n=e?.scheduleInRootZone,o=CD({ngZoneFactory:()=>{const a=ED(e);return a.scheduleInRootZone=n,a.shouldCoalesceEventChangeDetection&&Mt("NgZone_CoalesceEvent"),new tt(a)},ignoreChangesOutsideZone:t,scheduleInRootZone:n});return Fo([{provide:Vk,useValue:!0},{provide:Ol,useValue:!1},o])}function ED(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}let jk=(()=>{class e{subscription=new _s.yU;initialized=!1;zone=z(tt);pendingTasks=z(Yn);initialize(){if(this.initialized)return;this.initialized=!0;let n=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(n=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{tt.assertNotInAngularZone(),queueMicrotask(()=>{null!==n&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(n),n=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{tt.assertInAngularZone(),n??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(o){return new(o||e)};static \u0275prov=Oe({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),th=(()=>{class e{appRef=z(Mn);taskService=z(Yn);ngZone=z(tt);zonelessEnabled=z(Ol);disableScheduling=z(oa,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new _s.yU;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Pl):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(z(co,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof _p||!this.zoneIsDefined)}notify(n){if(!this.zonelessEnabled&&5===n)return;let o=!1;switch(n){case 0:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 8:this.appRef.deferredDirtyFlags|=8;break;case 6:case 14:this.appRef.dirtyFlags|=2,o=!0;break;case 13:this.appRef.dirtyFlags|=16,o=!0;break;case 12:o=!0;break;default:this.appRef.dirtyFlags|=8}if(!this.shouldScheduleTick(o))return;const a=this.useMicrotaskScheduler?gp:ia;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>a(()=>this.tick())):this.ngZone.runOutsideAngular(()=>a(()=>this.tick()))}shouldScheduleTick(n){return!(this.disableScheduling&&!n||this.appRef.destroyed||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Pl+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(0===this.appRef.dirtyFlags)return void this.cleanup();!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const n=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(o){throw this.taskService.remove(n),o}finally{this.cleanup()}this.useMicrotaskScheduler=!0,gp(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(n)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const n=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(n)}}static \u0275fac=function(o){return new(o||e)};static \u0275prov=Oe({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const ID=new le("",{providedIn:"root",factory:()=>z(ID,Ee.Optional|Ee.SkipSelf)||function Hk(){return typeof $localize<"u"&&$localize.locale||bm}()}),Uk=new le("",{providedIn:"root",factory:()=>"USD"}),Tm=new le("");function xm(e){return!e.moduleRef}let fs=null;let vT=(()=>class e{static __NG_ELEMENT_ID__=Xk})();function Xk(e){return function Yk(e,t,n){if(io(e)&&!n){const o=On(e.index,t);return new bc(o,o)}return 175&e.type?new bc(t[Qe],t):null}(we(),S(),!(16&~e))}class ET{constructor(){}supports(t){return dm(t)}create(t){return new rO(t)}}const nO=(e,t)=>t;class rO{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(t){this._trackByFn=t||nO}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,o=this._removalsHead,a=0,c=null;for(;n||o;){const f=!o||n&&n.currentIndex{f=this._trackByFn(a,h),null!==n&&Object.is(n.trackById,f)?(o&&(n=this._verifyReinsertion(n,h,f,a)),Object.is(n.item,h)||this._addIdentityChange(n,h)):(n=this._mismatch(n,h,f,a),o=!0),n=n._next,a++}),this.length=a;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,o,a){let c;return null===t?c=this._itTail:(c=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(o,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,c,a)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(o,a))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,c,a)):t=this._addAfter(new oO(n,o),c,a),t}_verifyReinsertion(t,n,o,a){let c=null===this._unlinkedRecords?null:this._unlinkedRecords.get(o,null);return null!==c?t=this._reinsertAfter(c,t._prev,a):t.currentIndex!=a&&(t.currentIndex=a,this._addToMoves(t,a)),t}_truncate(t){for(;null!==t;){const n=t._next;this._addToRemovals(this._unlink(t)),t=n}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,o){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const a=t._prevRemoved,c=t._nextRemoved;return null===a?this._removalsHead=c:a._nextRemoved=c,null===c?this._removalsTail=a:c._prevRemoved=a,this._insertAfter(t,n,o),this._addToMoves(t,o),t}_moveAfter(t,n,o){return this._unlink(t),this._insertAfter(t,n,o),this._addToMoves(t,o),t}_addAfter(t,n,o){return this._insertAfter(t,n,o),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,o){const a=null===n?this._itHead:n._next;return t._next=a,t._prev=n,null===a?this._itTail=t:a._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new wT),this._linkedRecords.put(t),t.currentIndex=o,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,o=t._next;return null===n?this._itHead=o:n._next=o,null===o?this._itTail=n:o._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new wT),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class oO{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(t,n){this.item=t,this.trackById=n}}class iO{_head=null;_tail=null;add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let o;for(o=this._head;null!==o;o=o._nextDup)if((null===n||n<=o.currentIndex)&&Object.is(o.trackById,t))return o;return null}remove(t){const n=t._prevDup,o=t._nextDup;return null===n?this._head=o:n._nextDup=o,null===o?this._tail=n:o._prevDup=n,null===this._head}}class wT{map=new Map;put(t){const n=t.trackById;let o=this.map.get(n);o||(o=new iO,this.map.set(n,o)),o.add(t)}get(t,n){const a=this.map.get(t);return a?a.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function IT(e,t,n){const o=e.previousIndex;if(null===o)return o;let a=0;return n&&o{if(n&&n.key===a)this._maybeAddToChanges(n,o),this._appendAfter=n,n=n._next;else{const c=this._getOrCreateRecordForKey(a,o);n=this._insertBeforeOrAppend(n,c)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let o=n;null!==o;o=o._nextRemoved)o===this._mapHead&&(this._mapHead=null),this._records.delete(o.key),o._nextRemoved=o._next,o.previousValue=o.currentValue,o.currentValue=null,o._prev=null,o._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){const o=t._prev;return n._next=t,n._prev=o,t._prev=n,o&&(o._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){const a=this._records.get(t);this._maybeAddToChanges(a,n);const c=a._prev,f=a._next;return c&&(c._next=f),f&&(f._prev=c),a._next=null,a._prev=null,a}const o=new aO(t);return this._records.set(t,o),o.currentValue=n,this._addToAdditions(o),o}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(o=>n(t[o],o))}}class aO{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(t){this.key=t}}function TT(){return new ND([new ET])}let ND=(()=>{class e{factories;static \u0275prov=Oe({token:e,providedIn:"root",factory:TT});constructor(n){this.factories=n}static create(n,o){if(null!=o){const a=o.factories.slice();n=n.concat(a)}return new e(n)}static extend(n){return{provide:e,useFactory:o=>e.create(n,o||TT()),deps:[[e,new yh,new mu]]}}find(n){const o=this.factories.find(a=>a.supports(n));if(null!=o)return o;throw new V(901,!1)}}return e})();function xT(){return new FD([new MT])}let FD=(()=>{class e{static \u0275prov=Oe({token:e,providedIn:"root",factory:xT});factories;constructor(n){this.factories=n}static create(n,o){if(o){const a=o.factories.slice();n=n.concat(a)}return new e(n)}static extend(n){return{provide:e,useFactory:o=>e.create(n,o||xT()),deps:[[e,new yh,new mu]]}}find(n){const o=this.factories.find(a=>a.supports(n));if(o)return o;throw new V(901,!1)}}return e})();function DO(e){try{const{rootComponent:t,appProviders:n,platformProviders:o}=e,a=function Qk(e=[]){if(fs)return fs;const t=function mT(e=[],t){return It.create({name:t,providers:[{provide:cl,useValue:"platform"},{provide:Tm,useValue:new Set([()=>fs=null])},...e]})}(e);return fs=t,function om(){!function hi(e){tu=e}(()=>{throw new V(600,!1)})}(),function _T(e){const t=e.get(Wl,null);Xm(e,()=>{t?.forEach(n=>n())})}(t),t}(o),c=[CD({}),{provide:Pr,useExisting:th},...n||[]];return function hT(e){const t=xm(e)?e.r3Injector:e.moduleRef.injector,n=t.get(tt);return n.run(()=>{xm(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();const o=t.get(Pn,null);let a;if(n.runOutsideAngular(()=>{a=n.onError.subscribe({next:c=>{o.handleError(c)}})}),xm(e)){const c=()=>t.destroy(),f=e.platformInjector.get(Tm);f.add(c),t.onDestroy(()=>{a.unsubscribe(),f.delete(c)})}else{const c=()=>e.moduleRef.destroy(),f=e.platformInjector.get(Tm);f.add(c),e.moduleRef.onDestroy(()=>{Sc(e.allPlatformModules,e.moduleRef),a.unsubscribe(),f.delete(c)})}return function ab(e,t,n){try{const o=n();return Tc(o)?o.catch(a=>{throw t.runOutsideAngular(()=>e.handleError(a)),a}):o}catch(o){throw t.runOutsideAngular(()=>e.handleError(o)),o}}(o,n,()=>{const c=t.get(nm);return c.runInitializers(),c.donePromise.then(()=>{if(function jN(e){"string"==typeof e&&(II=e.toLowerCase().replace(/_/g,"-"))}(t.get(ID,bm)||bm),xm(e)){const h=t.get(Mn);return void 0!==e.rootComponent&&h.bootstrap(e.rootComponent),h}return function qk(e,t){const n=e.injector.get(Mn);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>n.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new V(-403,!1);e.instance.ngDoBootstrap(n)}t.push(e)}(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}({r3Injector:new kv({providers:c,parent:a,debugName:"",runEnvironmentInitializers:!1}).injector,platformInjector:a,rootComponent:t})}catch(t){return Promise.reject(t)}}function GO(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}function zO(e,t=NaN){return isNaN(parseFloat(e))||isNaN(Number(e))?t:Number(e)}function LD(e,t){Mt("NgSignals");const n=function et(e){const t=Object.create(hs);t.computation=e;const n=()=>{if(xt(t),Ct(t),t.value===xn)throw t.error;return t.value};return n[Q]=t,n}(e);return t?.equal&&(n[Q].equal=t.equal),n}function Yc(e){const t=q(null);try{return e()}finally{q(t)}}let nx=(()=>class e{view;node;constructor(n,o){this.view=n,this.node=o}static __NG_ELEMENT_ID__=XO})();function XO(){return new nx(S(),we())}let JO=(()=>{class e extends rm{pendingTasks=z(Yn);taskId=null;schedule(n){super.schedule(n),null===this.taskId&&(this.taskId=this.pendingTasks.add(),queueMicrotask(()=>this.flush()))}flush(){try{super.flush()}finally{null!==this.taskId&&(this.pendingTasks.remove(this.taskId),this.taskId=null)}}static \u0275prov=Oe({token:e,providedIn:"root",factory:()=>new e})}return e})();class eR{scheduler;effectFn;zone;injector;unregisterOnDestroy;watcher;constructor(t,n,o,a,c,f){this.scheduler=t,this.effectFn=n,this.zone=o,this.injector=c,this.watcher=function ms(e,t,n){const o=Object.create(ou);n&&(o.consumerAllowSignalWrites=!0),o.fn=e,o.schedule=t;const a=p=>{o.cleanupFn=p};return o.ref={notify:()=>jt(o),run:()=>{if(null===o.fn)return;if(function Y(){return G}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(o.dirty=!1,o.hasRun&&!te(o))return;o.hasRun=!0;const p=lt(o);try{o.cleanupFn(),o.cleanupFn=pi,o.fn(a)}finally{xe(o,p)}},cleanup:()=>o.cleanupFn(),destroy:()=>function f(p){(function c(p){return null===p.fn&&null===p.schedule})(p)||(ze(p),p.cleanupFn(),p.fn=null,p.schedule=null,p.cleanupFn=pi)}(o),[Q]:o},o.ref}(h=>this.runEffect(h),()=>this.schedule(),f),this.unregisterOnDestroy=a?.onDestroy(()=>this.destroy())}runEffect(t){try{this.effectFn(t)}catch(n){this.injector.get(Pn,null,{optional:!0})?.handleError(n)}}run(){this.watcher.run()}schedule(){this.scheduler.schedule(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}let VD=!1;class rR{[Q];constructor(t){this[Q]=t}destroy(){this[Q].destroy()}}function BD(e,t){if(VD)return function nR(e,t){Mt("NgSignals"),!t?.injector&&Mi();const n=t?.injector??z(It),o=!0!==t?.manualCleanup?n.get(lo):null,a=new eR(n.get(JO),e,typeof Zone>"u"?null:Zone.current,o,n,t?.allowSignalWrites??!1),c=n.get(vT,null,{optional:!0});return c&&8&c._lView[ee]?(c._lView[Si]??=[]).push(a.watcher.notify):a.watcher.notify(),a}(e,t);Mt("NgSignals"),!t?.injector&&Mi();const n=t?.injector??z(It);let a,o=!0!==t?.manualCleanup?n.get(lo):null;const c=n.get(nx,null,{optional:!0}),f=n.get(Pr);return null===c||t?.forceRoot?a=function aR(e,t,n){const o=Object.create(oR);return o.fn=e,o.scheduler=t,o.notifier=n,o.zone=typeof Zone<"u"?Zone.current:null,o.scheduler.schedule(o),o.notifier.notify(13),o}(e,n.get(Rf),f):(a=function sR(e,t,n){const o=Object.create(iR);return o.view=e,o.zone=typeof Zone<"u"?Zone.current:null,o.notifier=t,o.fn=n,e[oo]??=new Set,e[oo].add(o),o.consumerMarkedDirty(o),o}(c.view,f,e),o instanceof rd&&o._lView===c.view&&(o=null)),a.injector=n,null!==o&&(a.onDestroyFn=o.onDestroy(()=>a.destroy())),new rR(a)}const rx={...pe,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,onDestroyFn:$o,run(){if(this.dirty=!1,this.hasRun&&!te(this))return;this.hasRun=!0;const e=o=>(this.cleanupFns??=[]).push(o),t=lt(this),n=Dl(!1);try{this.maybeCleanup(),this.fn(e)}finally{Dl(n),xe(this,t)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}},oR={...rx,consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(13)},destroy(){ze(this),this.onDestroyFn(),this.maybeCleanup()}},iR={...rx,consumerMarkedDirty(){this.view[ee]|=8192,Lo(this.view),this.notifier.notify(14)},destroy(){ze(this),this.onDestroyFn(),this.maybeCleanup(),this.view[oo]?.delete(this)}};function gR(e,t){const n=Ce(e),o=t.elementInjector||wi();return new Ec(n).create(o,t.projectableNodes,t.hostElement,t.environmentInjector)}},330:he=>{"use strict";he.exports=JSON.parse('{"name":"ngx-select-ex","version":"19.0.5","description":"Angular based replacement for select boxes","license":"MIT","private":false,"author":"Konstantin Polyntsov ","repository":{"type":"git","url":"git+ssh://git@github.com:optimistex/ngx-select-ex.git"},"bugs":{"url":"https://github.com/optimistex/ngx-select-ex/issues"},"homepage":"https://github.com/optimistex/ngx-select-ex#readme","scripts":{"build":"npm run lint && npm run sync && npm run build:package && npm run test && npm run build:demo && git add -A","build:demo":"ng build ngx-select-ex-demo","build:package":"ng build ngx-select-ex","lint":"ng lint","lint:quiet":"ng lint --quiet","lint:fix":"ng lint --fix","lint:ngx-select-ex:quiet":"ng lint ngx-select-ex --quiet","lint:ngx-select-ex-demo:quiet":"ng lint ngx-select-ex-demo --quiet","ng":"ng","release":"standard-version --commit-all","release:major":"standard-version --release-as major --commit-all","sync":"npm run sync:version && npm run sync:readme && npm run sync:license","sync:version":"npm --prefix=projects/ngx-select-ex pkg set version=$(npm pkg get version | xargs)","sync:readme":"cp README.md projects/ngx-select-ex/README.md","sync:license":"cp LICENSE projects/ngx-select-ex/LICENSE","publish":"npm publish ./dist/ngx-select-ex","publish-dev":"npm publish ./dist/ngx-select-ex --tag dev","start":"ng serve","test":"ng test --browsers=ChromeHeadlessNoSandbox --watch false","test:ngx-select-ex":"ng test ngx-select-ex --browsers=ChromeHeadlessNoSandbox --watch false","test:ngx-select-ex-demo":"ng test ngx-select-ex-demo --browsers=ChromeHeadlessNoSandbox --watch false","prepare":"husky"},"standard-version":{"scripts":{"postbump":"npm run build"}},"keywords":["ngx-select","ngx-select-ex","angular","angular18","angular19","select","select2","ui-select","multiselect","multi-select"],"dependencies":{"@angular/animations":"^19.0.0","@angular/cdk":"^19.0.0","@angular/common":"^19.0.0","@angular/compiler":"^19.0.0","@angular/core":"^19.0.0","@angular/forms":"^19.0.0","@angular/material":"^19.0.0","@angular/platform-browser":"^19.0.0","@angular/platform-browser-dynamic":"^19.0.0","@angular/router":"^19.0.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.15.0"},"devDependencies":{"@angular-devkit/build-angular":"^19.0.0","@angular/cli":"^19.0.0","@angular/compiler-cli":"^19.0.0","@types/jasmine":"~5.1.0","angular-eslint":"18.4.1","eslint":"^9.15.0","html-loader":"^5.1.0","husky":"^9.1.7","jasmine-core":"~5.4.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.1.0","markdown-loader":"^8.0.0","ng-packagr":"^19.0.0","raw-loader":"^4.0.2","standard-version":"^9.5.0","typescript":"~5.6.2","typescript-eslint":"8.15.0"},"contributors":[{"name":"Konstantin Polyntsov","email":"optimistex@gmail.com","url":"https://github.com/optimistex"},{"name":"Vyacheslav Chub","email":"vyacheslav.chub@valor-software.com","url":"https://github.com/buchslava"},{"name":"Dmitriy Shekhovtsov","email":"valorkin@gmail.com","url":"https://github.com/valorkin"},{"name":"Oleksandr Telnov","email":"otelnov@gmail.com","url":"https://github.com/otelnov"}]}')}},he=>{he(he.s=538)}]); \ No newline at end of file diff --git a/docs/polyfills.a334141288ea3a9c.js b/docs/polyfills.a334141288ea3a9c.js new file mode 100644 index 00000000..b89c524b --- /dev/null +++ b/docs/polyfills.a334141288ea3a9c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkngx_select_ex_demo=self.webpackChunkngx_select_ex_demo||[]).push([[461],{935:()=>{const te=globalThis;function ee(e){return(te.__Zone_symbol_prefix||"__zone_symbol__")+e}const ke=Object.getOwnPropertyDescriptor,Ne=Object.defineProperty,Le=Object.getPrototypeOf,_t=Object.create,Et=Array.prototype.slice,Ie="addEventListener",Me="removeEventListener",Ze=ee(Ie),Ae=ee(Me),ae="true",le="false",ve=ee("");function je(e,r){return Zone.current.wrap(e,r)}function He(e,r,c,t,i){return Zone.current.scheduleMacroTask(e,r,c,t,i)}const j=ee,we=typeof window<"u",Te=we?window:void 0,$=we&&Te||globalThis;function xe(e,r){for(let c=e.length-1;c>=0;c--)"function"==typeof e[c]&&(e[c]=je(e[c],r+"_"+c));return e}function We(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const qe=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"===$.process.toString(),Ve=!Re&&!qe&&!(!we||!Te.HTMLElement),Xe=typeof $.process<"u"&&"[object process]"===$.process.toString()&&!qe&&!(!we||!Te.HTMLElement),Ce={},mt=j("enable_beforeunload"),Ye=function(e){if(!(e=e||$.event))return;let r=Ce[e.type];r||(r=Ce[e.type]=j("ON_PROPERTY"+e.type));const c=this||e.target||$,t=c[r];let i;return Ve&&c===Te&&"error"===e.type?(i=t&&t.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===i&&e.preventDefault()):(i=t&&t.apply(this,arguments),"beforeunload"===e.type&&$[mt]&&"string"==typeof i?e.returnValue=i:null!=i&&!i&&e.preventDefault()),i};function $e(e,r,c){let t=ke(e,r);if(!t&&c&&ke(c,r)&&(t={enumerable:!0,configurable:!0}),!t||!t.configurable)return;const i=j("on"+r+"patched");if(e.hasOwnProperty(i)&&e[i])return;delete t.writable,delete t.value;const u=t.get,E=t.set,T=r.slice(2);let y=Ce[T];y||(y=Ce[T]=j("ON_PROPERTY"+T)),t.set=function(D){let d=this;!d&&e===$&&(d=$),d&&("function"==typeof d[y]&&d.removeEventListener(T,Ye),E&&E.call(d,null),d[y]=D,"function"==typeof D&&d.addEventListener(T,Ye,!1))},t.get=function(){let D=this;if(!D&&e===$&&(D=$),!D)return null;const d=D[y];if(d)return d;if(u){let w=u.call(this);if(w)return t.set.call(this,w),"function"==typeof D.removeAttribute&&D.removeAttribute(r),w}return null},Ne(e,r,t),e[i]=!0}function Je(e,r,c){if(r)for(let t=0;tfunction(E,T){const y=c(E,T);return y.cbIdx>=0&&"function"==typeof T[y.cbIdx]?He(y.name,T[y.cbIdx],y,i):u.apply(E,T)})}function fe(e,r){e[j("OriginalDelegate")]=r}let Ke=!1,Ge=!1;function kt(){if(Ke)return Ge;Ke=!0;try{const e=Te.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(Ge=!0)}catch{}return Ge}function Qe(e){return"function"==typeof e}function et(e){return"number"==typeof e}let ge=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){ge=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{ge=!1}const vt={useG:!0},ne={},tt={},nt=new RegExp("^"+ve+"(\\w+)(true|false)$"),rt=j("propagationStopped");function ot(e,r){const c=(r?r(e):e)+le,t=(r?r(e):e)+ae,i=ve+c,u=ve+t;ne[e]={},ne[e][le]=i,ne[e][ae]=u}function bt(e,r,c,t){const i=t&&t.add||Ie,u=t&&t.rm||Me,E=t&&t.listeners||"eventListeners",T=t&&t.rmAll||"removeAllListeners",y=j(i),D="."+i+":",d="prependListener",w="."+d+":",Z=function(k,h,H){if(k.isRemoved)return;const V=k.callback;let Y;"object"==typeof V&&V.handleEvent&&(k.callback=g=>V.handleEvent(g),k.originalDelegate=V);try{k.invoke(k,h,[H])}catch(g){Y=g}const G=k.options;return G&&"object"==typeof G&&G.once&&h[u].call(h,H.type,k.originalDelegate?k.originalDelegate:k.callback,G),Y};function x(k,h,H){if(!(h=h||e.event))return;const V=k||h.target||e,Y=V[ne[h.type][H?ae:le]];if(Y){const G=[];if(1===Y.length){const g=Z(Y[0],V,h);g&&G.push(g)}else{const g=Y.slice();for(let z=0;z{throw z})}}}const U=function(k){return x(this,k,!1)},J=function(k){return x(this,k,!0)};function K(k,h){if(!k)return!1;let H=!0;h&&void 0!==h.useG&&(H=h.useG);const V=h&&h.vh;let Y=!0;h&&void 0!==h.chkDup&&(Y=h.chkDup);let G=!1;h&&void 0!==h.rt&&(G=h.rt);let g=k;for(;g&&!g.hasOwnProperty(i);)g=Le(g);if(!g&&k[i]&&(g=k),!g||g[y])return!1;const z=h&&h.eventNameToString,O={},R=g[y]=g[i],b=g[j(u)]=g[u],S=g[j(E)]=g[E],Q=g[j(T)]=g[T];let W;h&&h.prepend&&(W=g[j(h.prepend)]=g[h.prepend]);const q=H?function(s){if(!O.isExisting)return R.call(O.target,O.eventName,O.capture?J:U,O.options)}:function(s){return R.call(O.target,O.eventName,s.invoke,O.options)},A=H?function(s){if(!s.isRemoved){const l=ne[s.eventName];let v;l&&(v=l[s.capture?ae:le]);const C=v&&s.target[v];if(C)for(let m=0;mse.zone.cancelTask(se);s.call(ye,"abort",ce,{once:!0}),se.removeAbortListener=()=>ye.removeEventListener("abort",ce)}return O.target=null,Pe&&(Pe.taskData=null),lt&&(O.options.once=!0),!ge&&"boolean"==typeof se.options||(se.options=ie),se.target=I,se.capture=Be,se.eventName=M,B&&(se.originalDelegate=F),L?pe.unshift(se):pe.push(se),m?I:void 0}};return g[i]=a(R,D,q,A,G),W&&(g[d]=a(W,w,function(s){return W.call(O.target,O.eventName,s.invoke,O.options)},A,G,!0)),g[u]=function(){const s=this||e;let l=arguments[0];h&&h.transferEventName&&(l=h.transferEventName(l));const v=arguments[2],C=!!v&&("boolean"==typeof v||v.capture),m=arguments[1];if(!m)return b.apply(this,arguments);if(V&&!V(b,m,s,arguments))return;const L=ne[l];let I;L&&(I=L[C?ae:le]);const M=I&&s[I];if(M)for(let F=0;Ffunction(i,u){i[rt]=!0,t&&t.apply(i,u)})}const De=j("zoneTask");function me(e,r,c,t){let i=null,u=null;c+=t;const E={};function T(D){const d=D.data;d.args[0]=function(){return D.invoke.apply(this,arguments)};const w=i.apply(e,d.args);return et(w)?d.handleId=w:(d.handle=w,d.isRefreshable=Qe(w.refresh)),D}function y(D){const{handle:d,handleId:w}=D.data;return u.call(e,d??w)}i=ue(e,r+=t,D=>function(d,w){if(Qe(w[0])){const Z={isRefreshable:!1,isPeriodic:"Interval"===t,delay:"Timeout"===t||"Interval"===t?w[1]||0:void 0,args:w},x=w[0];w[0]=function(){try{return x.apply(this,arguments)}finally{const{handle:H,handleId:V,isPeriodic:Y,isRefreshable:G}=Z;!Y&&!G&&(V?delete E[V]:H&&(H[De]=null))}};const U=He(r,w[0],Z,T,y);if(!U)return U;const{handleId:J,handle:K,isRefreshable:X,isPeriodic:k}=U.data;if(J)E[J]=U;else if(K&&(K[De]=U,X&&!k)){const h=K.refresh;K.refresh=function(){const{zone:H,state:V}=U;return"notScheduled"===V?(U._state="scheduled",H._updateTaskCount(U,1)):"running"===V&&(U._state="scheduling"),h.call(this)}}return K??J??U}return D.apply(e,w)}),u=ue(e,c,D=>function(d,w){const Z=w[0];let x;et(Z)?(x=E[Z],delete E[Z]):(x=Z?.[De],x?Z[De]=null:x=Z),x?.type?x.cancelFn&&x.zone.cancelTask(x):D.apply(e,w)})}function it(e,r,c){if(!c||0===c.length)return r;const t=c.filter(u=>u.target===e);if(!t||0===t.length)return r;const i=t[0].ignoreProperties;return r.filter(u=>-1===i.indexOf(u))}function ct(e,r,c,t){e&&Je(e,it(e,r,c),t)}function Fe(e){return Object.getOwnPropertyNames(e).filter(r=>r.startsWith("on")&&r.length>2).map(r=>r.substring(2))}function It(e,r,c,t,i){const u=Zone.__symbol__(t);if(r[u])return;const E=r[u]=r[t];r[t]=function(T,y,D){return y&&y.prototype&&i.forEach(function(d){const w=`${c}.${t}::`+d,Z=y.prototype;try{if(Z.hasOwnProperty(d)){const x=e.ObjectGetOwnPropertyDescriptor(Z,d);x&&x.value?(x.value=e.wrapWithCurrentZone(x.value,w),e._redefineProperty(y.prototype,d,x)):Z[d]&&(Z[d]=e.wrapWithCurrentZone(Z[d],w))}else Z[d]&&(Z[d]=e.wrapWithCurrentZone(Z[d],w))}catch{}}),E.call(r,T,y,D)},e.attachOriginToPatched(r[t],E)}const at=function Oe(){const e=globalThis,r=!0===e[ee("forceDuplicateZoneCheck")];if(e.Zone&&(r||"function"!=typeof e.Zone.__symbol__))throw new Error("Zone already loaded.");return e.Zone??=function ze(){const e=te.performance;function r(N){e&&e.mark&&e.mark(N)}function c(N,_){e&&e.measure&&e.measure(N,_)}r("Zone");let t=(()=>{class N{static{this.__symbol__=ee}static assertZonePatched(){if(te.Promise!==O.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let n=N.current;for(;n.parent;)n=n.parent;return n}static get current(){return b.zone}static get currentTask(){return S}static __load_patch(n,o,p=!1){if(O.hasOwnProperty(n)){const P=!0===te[ee("forceDuplicateZoneCheck")];if(!p&&P)throw Error("Already loaded patch: "+n)}else if(!te["__Zone_disable_"+n]){const P="Zone:"+n;r(P),O[n]=o(te,N,R),c(P,P)}}get parent(){return this._parent}get name(){return this._name}constructor(n,o){this._parent=n,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new u(this,this._parent&&this._parent._zoneDelegate,o)}get(n){const o=this.getZoneWith(n);if(o)return o._properties[n]}getZoneWith(n){let o=this;for(;o;){if(o._properties.hasOwnProperty(n))return o;o=o._parent}return null}fork(n){if(!n)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,n)}wrap(n,o){if("function"!=typeof n)throw new Error("Expecting function got: "+n);const p=this._zoneDelegate.intercept(this,n,o),P=this;return function(){return P.runGuarded(p,this,arguments,o)}}run(n,o,p,P){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,n,o,p,P)}finally{b=b.parent}}runGuarded(n,o=null,p,P){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,n,o,p,P)}catch(q){if(this._zoneDelegate.handleError(this,q))throw q}}finally{b=b.parent}}runTask(n,o,p){if(n.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(n.zone||K).name+"; Execution: "+this.name+")");const P=n,{type:q,data:{isPeriodic:A=!1,isRefreshable:_e=!1}={}}=n;if(n.state===X&&(q===z||q===g))return;const he=n.state!=H;he&&P._transitionTo(H,h);const de=S;S=P,b={parent:b,zone:this};try{q==g&&n.data&&!A&&!_e&&(n.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,P,o,p)}catch(oe){if(this._zoneDelegate.handleError(this,oe))throw oe}}finally{const oe=n.state;if(oe!==X&&oe!==Y)if(q==z||A||_e&&oe===k)he&&P._transitionTo(h,H,k);else{const f=P._zoneDelegates;this._updateTaskCount(P,-1),he&&P._transitionTo(X,H,X),_e&&(P._zoneDelegates=f)}b=b.parent,S=de}}scheduleTask(n){if(n.zone&&n.zone!==this){let p=this;for(;p;){if(p===n.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${n.zone.name}`);p=p.parent}}n._transitionTo(k,X);const o=[];n._zoneDelegates=o,n._zone=this;try{n=this._zoneDelegate.scheduleTask(this,n)}catch(p){throw n._transitionTo(Y,k,X),this._zoneDelegate.handleError(this,p),p}return n._zoneDelegates===o&&this._updateTaskCount(n,1),n.state==k&&n._transitionTo(h,k),n}scheduleMicroTask(n,o,p,P){return this.scheduleTask(new E(G,n,o,p,P,void 0))}scheduleMacroTask(n,o,p,P,q){return this.scheduleTask(new E(g,n,o,p,P,q))}scheduleEventTask(n,o,p,P,q){return this.scheduleTask(new E(z,n,o,p,P,q))}cancelTask(n){if(n.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(n.zone||K).name+"; Execution: "+this.name+")");if(n.state===h||n.state===H){n._transitionTo(V,h,H);try{this._zoneDelegate.cancelTask(this,n)}catch(o){throw n._transitionTo(Y,V),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(n,-1),n._transitionTo(X,V),n.runCount=-1,n}}_updateTaskCount(n,o){const p=n._zoneDelegates;-1==o&&(n._zoneDelegates=null);for(let P=0;PN.hasTask(n,o),onScheduleTask:(N,_,n,o)=>N.scheduleTask(n,o),onInvokeTask:(N,_,n,o,p,P)=>N.invokeTask(n,o,p,P),onCancelTask:(N,_,n,o)=>N.cancelTask(n,o)};class u{get zone(){return this._zone}constructor(_,n,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=_,this._parentDelegate=n,this._forkZS=o&&(o&&o.onFork?o:n._forkZS),this._forkDlgt=o&&(o.onFork?n:n._forkDlgt),this._forkCurrZone=o&&(o.onFork?this._zone:n._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:n._interceptZS),this._interceptDlgt=o&&(o.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this._zone:n._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:n._invokeZS),this._invokeDlgt=o&&(o.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this._zone:n._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:n._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this._zone:n._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:n._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this._zone:n._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:n._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this._zone:n._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:n._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this._zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const p=o&&o.onHasTask;(p||n&&n._hasTaskZS)&&(this._hasTaskZS=p?o:i,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,o.onScheduleTask||(this._scheduleTaskZS=i,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this._zone),o.onInvokeTask||(this._invokeTaskZS=i,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this._zone),o.onCancelTask||(this._cancelTaskZS=i,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this._zone))}fork(_,n){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,_,n):new t(_,n)}intercept(_,n,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,_,n,o):n}invoke(_,n,o,p,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,_,n,o,p,P):n.apply(o,p)}handleError(_,n){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,_,n)}scheduleTask(_,n){let o=n;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,_,n),o||(o=n);else if(n.scheduleFn)n.scheduleFn(n);else{if(n.type!=G)throw new Error("Task is missing scheduleFn.");U(n)}return o}invokeTask(_,n,o,p){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,_,n,o,p):n.callback.apply(o,p)}cancelTask(_,n){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,_,n);else{if(!n.cancelFn)throw Error("Task is not cancelable");o=n.cancelFn(n)}return o}hasTask(_,n){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,_,n)}catch(o){this.handleError(_,o)}}_updateTaskCount(_,n){const o=this._taskCounts,p=o[_],P=o[_]=p+n;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=p&&0!=P||this.hasTask(this._zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:_})}}class E{constructor(_,n,o,p,P,q){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=_,this.source=n,this.data=p,this.scheduleFn=P,this.cancelFn=q,!o)throw new Error("callback is not defined");this.callback=o;const A=this;this.invoke=_===z&&p&&p.useG?E.invokeTask:function(){return E.invokeTask.call(te,A,this,arguments)}}static invokeTask(_,n,o){_||(_=this),Q++;try{return _.runCount++,_.zone.runTask(_,n,o)}finally{1==Q&&J(),Q--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(X,k)}_transitionTo(_,n,o){if(this._state!==n&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${_}', expecting state '${n}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=_,_==X&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const T=ee("setTimeout"),y=ee("Promise"),D=ee("then");let Z,d=[],w=!1;function x(N){if(Z||te[y]&&(Z=te[y].resolve(0)),Z){let _=Z[D];_||(_=Z.then),_.call(Z,N)}else te[T](N,0)}function U(N){0===Q&&0===d.length&&x(J),N&&d.push(N)}function J(){if(!w){for(w=!0;d.length;){const N=d;d=[];for(let _=0;_b,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:U,showUncaughtError:()=>!t[ee("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:x};let b={parent:null,zone:new t(null,null)},S=null,Q=0;function W(){}return c("Zone","Zone"),t}(),e.Zone}();(function Zt(e){(function Nt(e){e.__load_patch("ZoneAwarePromise",(r,c,t)=>{const i=Object.getOwnPropertyDescriptor,u=Object.defineProperty,T=t.symbol,y=[],D=!1!==r[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],d=T("Promise"),w=T("then");t.onUnhandledError=f=>{if(t.showUncaughtError()){const a=f&&f.rejection;a?console.error("Unhandled Promise rejection:",a instanceof Error?a.message:a,"; Zone:",f.zone.name,"; Task:",f.task&&f.task.source,"; Value:",a,a instanceof Error?a.stack:void 0):console.error(f)}},t.microtaskDrainDone=()=>{for(;y.length;){const f=y.shift();try{f.zone.runGuarded(()=>{throw f.throwOriginal?f.rejection:f})}catch(a){U(a)}}};const x=T("unhandledPromiseRejectionHandler");function U(f){t.onUnhandledError(f);try{const a=c[x];"function"==typeof a&&a.call(this,f)}catch{}}function J(f){return f&&f.then}function K(f){return f}function X(f){return A.reject(f)}const k=T("state"),h=T("value"),H=T("finally"),V=T("parentPromiseValue"),Y=T("parentPromiseState"),g=null,z=!0,O=!1;function b(f,a){return s=>{try{N(f,a,s)}catch(l){N(f,!1,l)}}}const S=function(){let f=!1;return function(s){return function(){f||(f=!0,s.apply(null,arguments))}}},Q="Promise resolved with itself",W=T("currentTaskTrace");function N(f,a,s){const l=S();if(f===s)throw new TypeError(Q);if(f[k]===g){let v=null;try{("object"==typeof s||"function"==typeof s)&&(v=s&&s.then)}catch(C){return l(()=>{N(f,!1,C)})(),f}if(a!==O&&s instanceof A&&s.hasOwnProperty(k)&&s.hasOwnProperty(h)&&s[k]!==g)n(s),N(f,s[k],s[h]);else if(a!==O&&"function"==typeof v)try{v.call(s,l(b(f,a)),l(b(f,!1)))}catch(C){l(()=>{N(f,!1,C)})()}else{f[k]=a;const C=f[h];if(f[h]=s,f[H]===H&&a===z&&(f[k]=f[Y],f[h]=f[V]),a===O&&s instanceof Error){const m=c.currentTask&&c.currentTask.data&&c.currentTask.data.__creationTrace__;m&&u(s,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{const L=f[h],I=!!s&&H===s[H];I&&(s[V]=L,s[Y]=C);const M=a.run(m,void 0,I&&m!==X&&m!==K?[]:[L]);N(s,!0,M)}catch(L){N(s,!1,L)}},s)}const P=function(){},q=r.AggregateError;class A{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(a){return a instanceof A?a:N(new this(null),z,a)}static reject(a){return N(new this(null),O,a)}static withResolvers(){const a={};return a.promise=new A((s,l)=>{a.resolve=s,a.reject=l}),a}static any(a){if(!a||"function"!=typeof a[Symbol.iterator])return Promise.reject(new q([],"All promises were rejected"));const s=[];let l=0;try{for(let m of a)l++,s.push(A.resolve(m))}catch{return Promise.reject(new q([],"All promises were rejected"))}if(0===l)return Promise.reject(new q([],"All promises were rejected"));let v=!1;const C=[];return new A((m,L)=>{for(let I=0;I{v||(v=!0,m(M))},M=>{C.push(M),l--,0===l&&(v=!0,L(new q(C,"All promises were rejected")))})})}static race(a){let s,l,v=new this((L,I)=>{s=L,l=I});function C(L){s(L)}function m(L){l(L)}for(let L of a)J(L)||(L=this.resolve(L)),L.then(C,m);return v}static all(a){return A.allWithCallback(a)}static allSettled(a){return(this&&this.prototype instanceof A?this:A).allWithCallback(a,{thenCallback:l=>({status:"fulfilled",value:l}),errorCallback:l=>({status:"rejected",reason:l})})}static allWithCallback(a,s){let l,v,C=new this((M,F)=>{l=M,v=F}),m=2,L=0;const I=[];for(let M of a){J(M)||(M=this.resolve(M));const F=L;try{M.then(B=>{I[F]=s?s.thenCallback(B):B,m--,0===m&&l(I)},B=>{s?(I[F]=s.errorCallback(B),m--,0===m&&l(I)):v(B)})}catch(B){v(B)}m++,L++}return m-=2,0===m&&l(I),C}constructor(a){const s=this;if(!(s instanceof A))throw new Error("Must be an instanceof Promise.");s[k]=g,s[h]=[];try{const l=S();a&&a(l(b(s,z)),l(b(s,O)))}catch(l){N(s,!1,l)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return A}then(a,s){let l=this.constructor?.[Symbol.species];(!l||"function"!=typeof l)&&(l=this.constructor||A);const v=new l(P),C=c.current;return this[k]==g?this[h].push(C,v,a,s):o(this,C,v,a,s),v}catch(a){return this.then(null,a)}finally(a){let s=this.constructor?.[Symbol.species];(!s||"function"!=typeof s)&&(s=A);const l=new s(P);l[H]=H;const v=c.current;return this[k]==g?this[h].push(v,l,a,a):o(this,v,l,a,a),l}}A.resolve=A.resolve,A.reject=A.reject,A.race=A.race,A.all=A.all;const _e=r[d]=r.Promise;r.Promise=A;const he=T("thenPatched");function de(f){const a=f.prototype,s=i(a,"then");if(s&&(!1===s.writable||!s.configurable))return;const l=a.then;a[w]=l,f.prototype.then=function(v,C){return new A((L,I)=>{l.call(this,L,I)}).then(v,C)},f[he]=!0}return t.patchThen=de,_e&&(de(_e),ue(r,"fetch",f=>function oe(f){return function(a,s){let l=f.apply(a,s);if(l instanceof A)return l;let v=l.constructor;return v[he]||de(v),l}}(f))),Promise[c.__symbol__("uncaughtPromiseErrors")]=y,A})})(e),function Lt(e){e.__load_patch("toString",r=>{const c=Function.prototype.toString,t=j("OriginalDelegate"),i=j("Promise"),u=j("Error"),E=function(){if("function"==typeof this){const d=this[t];if(d)return"function"==typeof d?c.call(d):Object.prototype.toString.call(d);if(this===Promise){const w=r[i];if(w)return c.call(w)}if(this===Error){const w=r[u];if(w)return c.call(w)}}return c.call(this)};E[t]=c,Function.prototype.toString=E;const T=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":T.call(this)}})}(e),function Mt(e){e.__load_patch("util",(r,c,t)=>{const i=Fe(r);t.patchOnProperties=Je,t.patchMethod=ue,t.bindArguments=xe,t.patchMacroTask=yt;const u=c.__symbol__("BLACK_LISTED_EVENTS"),E=c.__symbol__("UNPATCHED_EVENTS");r[E]&&(r[u]=r[E]),r[u]&&(c[u]=c[E]=r[u]),t.patchEventPrototype=Pt,t.patchEventTarget=bt,t.isIEOrEdge=kt,t.ObjectDefineProperty=Ne,t.ObjectGetOwnPropertyDescriptor=ke,t.ObjectCreate=_t,t.ArraySlice=Et,t.patchClass=be,t.wrapWithCurrentZone=je,t.filterProperties=it,t.attachOriginToPatched=fe,t._redefineProperty=Object.defineProperty,t.patchCallbacks=It,t.getGlobalObjects=()=>({globalSources:tt,zoneSymbolEventNames:ne,eventNames:i,isBrowser:Ve,isMix:Xe,isNode:Re,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:ve,ADD_EVENT_LISTENER_STR:Ie,REMOVE_EVENT_LISTENER_STR:Me})})}(e)})(at),function Ot(e){e.__load_patch("legacy",r=>{const c=r[e.__symbol__("legacyPatch")];c&&c()}),e.__load_patch("timers",r=>{const c="set",t="clear";me(r,c,t,"Timeout"),me(r,c,t,"Interval"),me(r,c,t,"Immediate")}),e.__load_patch("requestAnimationFrame",r=>{me(r,"request","cancel","AnimationFrame"),me(r,"mozRequest","mozCancel","AnimationFrame"),me(r,"webkitRequest","webkitCancel","AnimationFrame")}),e.__load_patch("blocking",(r,c)=>{const t=["alert","prompt","confirm"];for(let i=0;ifunction(D,d){return c.current.run(E,r,d,y)})}),e.__load_patch("EventTarget",(r,c,t)=>{(function Dt(e,r){r.patchEventPrototype(e,r)})(r,t),function Ct(e,r){if(Zone[r.symbol("patchEventTarget")])return;const{eventNames:c,zoneSymbolEventNames:t,TRUE_STR:i,FALSE_STR:u,ZONE_SYMBOL_PREFIX:E}=r.getGlobalObjects();for(let y=0;y{be("MutationObserver"),be("WebKitMutationObserver")}),e.__load_patch("IntersectionObserver",(r,c,t)=>{be("IntersectionObserver")}),e.__load_patch("FileReader",(r,c,t)=>{be("FileReader")}),e.__load_patch("on_property",(r,c,t)=>{!function St(e,r){if(Re&&!Xe||Zone[e.symbol("patchEvents")])return;const c=r.__Zone_ignore_on_properties;let t=[];if(Ve){const i=window;t=t.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const u=function pt(){try{const e=Te.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:i,ignoreProperties:["error"]}]:[];ct(i,Fe(i),c&&c.concat(u),Le(i))}t=t.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let i=0;i{!function Rt(e,r){const{isBrowser:c,isMix:t}=r.getGlobalObjects();(c||t)&&e.customElements&&"customElements"in e&&r.patchCallbacks(r,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(r,t)}),e.__load_patch("XHR",(r,c)=>{!function D(d){const w=d.XMLHttpRequest;if(!w)return;const Z=w.prototype;let U=Z[Ze],J=Z[Ae];if(!U){const R=d.XMLHttpRequestEventTarget;if(R){const b=R.prototype;U=b[Ze],J=b[Ae]}}const K="readystatechange",X="scheduled";function k(R){const b=R.data,S=b.target;S[E]=!1,S[y]=!1;const Q=S[u];U||(U=S[Ze],J=S[Ae]),Q&&J.call(S,K,Q);const W=S[u]=()=>{if(S.readyState===S.DONE)if(!b.aborted&&S[E]&&R.state===X){const _=S[c.__symbol__("loadfalse")];if(0!==S.status&&_&&_.length>0){const n=R.invoke;R.invoke=function(){const o=S[c.__symbol__("loadfalse")];for(let p=0;pfunction(R,b){return R[i]=0==b[2],R[T]=b[1],V.apply(R,b)}),G=j("fetchTaskAborting"),g=j("fetchTaskScheduling"),z=ue(Z,"send",()=>function(R,b){if(!0===c.current[g]||R[i])return z.apply(R,b);{const S={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},Q=He("XMLHttpRequest.send",h,S,k,H);R&&!0===R[y]&&!S.aborted&&Q.state===X&&Q.invoke()}}),O=ue(Z,"abort",()=>function(R,b){const S=function x(R){return R[t]}(R);if(S&&"string"==typeof S.type){if(null==S.cancelFn||S.data&&S.data.aborted)return;S.zone.cancelTask(S)}else if(!0===c.current[G])return O.apply(R,b)})}(r);const t=j("xhrTask"),i=j("xhrSync"),u=j("xhrListener"),E=j("xhrScheduled"),T=j("xhrURL"),y=j("xhrErrorBeforeScheduled")}),e.__load_patch("geolocation",r=>{r.navigator&&r.navigator.geolocation&&function gt(e,r){const c=e.constructor.name;for(let t=0;t{const y=function(){return T.apply(this,xe(arguments,c+"."+i))};return fe(y,T),y})(u)}}}(r.navigator.geolocation,["getCurrentPosition","watchPosition"])}),e.__load_patch("PromiseRejectionEvent",(r,c)=>{function t(i){return function(u){st(r,i).forEach(T=>{const y=r.PromiseRejectionEvent;if(y){const D=new y(i,{promise:u.promise,reason:u.rejection});T.invoke(D)}})}}r.PromiseRejectionEvent&&(c[j("unhandledPromiseRejectionHandler")]=t("unhandledrejection"),c[j("rejectionHandledHandler")]=t("rejectionhandled"))}),e.__load_patch("queueMicrotask",(r,c,t)=>{!function wt(e,r){r.patchMethod(e,"queueMicrotask",c=>function(t,i){Zone.current.scheduleMicroTask("queueMicrotask",i[0])})}(r,t)})}(at)}},te=>{te(te.s=935)}]); \ No newline at end of file diff --git a/docs/runtime.d7858bd0f2a6c26c.js b/docs/runtime.d7858bd0f2a6c26c.js new file mode 100644 index 00000000..1327edff --- /dev/null +++ b/docs/runtime.d7858bd0f2a6c26c.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,v={},m={};function r(e){var o=m[e];if(void 0!==o)return o.exports;var t=m[e]={id:e,loaded:!1,exports:{}};return v[e](t,t.exports,r),t.loaded=!0,t.exports}r.m=v,e=[],r.O=(o,t,i,f)=>{if(!t){var a=1/0;for(n=0;n=f)&&Object.keys(r.O).every(b=>r.O[b](t[l]))?t.splice(l--,1):(s=!1,f0&&e[n-1][2]>f;n--)e[n]=e[n-1];e[n]=[t,i,f]},r.d=(e,o)=>{for(var t in o)r.o(o,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((o,t)=>(r.f[t](e,o),o),[])),r.u=e=>e+".4ae02359ce54e594.js",r.miniCssF=e=>{},r.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),(()=>{var e={},o="ngx-select-ex-demo:";r.l=(t,i,f,n)=>{if(e[t])e[t].push(i);else{var a,s;if(void 0!==f)for(var l=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(p);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(h=>h(b)),g)return g(b)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=c.bind(null,a.onerror),a.onload=c.bind(null,a.onload),s&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:o=>o},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={121:0};r.f.j=(i,f)=>{var n=r.o(e,i)?e[i]:void 0;if(0!==n)if(n)f.push(n[2]);else if(121!=i){var a=new Promise((u,c)=>n=e[i]=[u,c]);f.push(n[2]=a);var s=r.p+r.u(i),l=new Error;r.l(s,u=>{if(r.o(e,i)&&(0!==(n=e[i])&&(e[i]=void 0),n)){var c=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;l.message="Loading chunk "+i+" failed.\n("+c+": "+p+")",l.name="ChunkLoadError",l.type=c,l.request=p,n[1](l)}},"chunk-"+i,i)}else e[i]=0},r.O.j=i=>0===e[i];var o=(i,f)=>{var l,d,[n,a,s]=f,u=0;if(n.some(p=>0!==e[p])){for(l in a)r.o(a,l)&&(r.m[l]=a[l]);if(s)var c=s(r)}for(i&&i(f);u - gulp - .src(paths.tssrc) - .pipe(tslint(tslintConf)) - .pipe(tslint.report('prose', { - emitError: true, - summarizeFailureOutput: true, - reportLimit: 50 - })) -); - -gulp.task('lint', ['tslint']); diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index c56b8414..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,16 +0,0 @@ -var gulp = require('gulp'); - -gulp.paths = { - tssrc: [ - '**/*.ts', - '!**/*.d.ts', - '!node_modules/**/*', - '!bundles/**/*', - '!typings/**/*'] -}; - -require('require-dir')('./gulp-tasks'); - -gulp.task('default', function () { - gulp.start('lint'); -}); diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 00000000..fda3f2c1 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/ngx-select-ex-demo'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + browsers: ['Chrome'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: ['--no-sandbox'] + } + }, + restartOnFileChange: true + }); +}; diff --git a/ng2-select.ts b/ng2-select.ts deleted file mode 100644 index 21216aff..00000000 --- a/ng2-select.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {SELECT_DIRECTIVES} from './components/select'; - -export * from './components/select/select'; -export * from './components/select'; - -export default { - directives: [ - SELECT_DIRECTIVES - ] -} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..e6e05d1b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,19170 @@ +{ + "name": "ngx-select-ex", + "version": "19.0.5", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ngx-select-ex", + "version": "19.0.5", + "license": "MIT", + "dependencies": { + "@angular/animations": "^19.0.0", + "@angular/cdk": "^19.0.0", + "@angular/common": "^19.0.0", + "@angular/compiler": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/forms": "^19.0.0", + "@angular/material": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/router": "^19.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.15.0" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^19.0.0", + "@angular/cli": "^19.0.0", + "@angular/compiler-cli": "^19.0.0", + "@types/jasmine": "~5.1.0", + "angular-eslint": "18.4.1", + "eslint": "^9.15.0", + "html-loader": "^5.1.0", + "husky": "^9.1.7", + "jasmine-core": "~5.4.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "markdown-loader": "^8.0.0", + "ng-packagr": "^19.0.0", + "raw-loader": "^4.0.2", + "standard-version": "^9.5.0", + "typescript": "~5.6.2", + "typescript-eslint": "8.15.0" + }, + "peerDependencies": { + "escape-string-regexp": "^5.0.0", + "lodash.isequal": "^4.5.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1900.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.0.tgz", + "integrity": "sha512-oC2CyKf9olKvthEwp2wmkKw+H9NhpnK9cWYHvajWeCRJ8A4DLaKwfMuZ9lioi92QPourrJzoikgp7C6m2AuuZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.0.0", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.0.tgz", + "integrity": "sha512-/EJQOKVFb9vsFbPR+57C7fJHFVr7le9Ru6aormIKw24xyZZHtt5X4rwdeN7l6Zkv8F0cJ2EoTSiQoY17090DLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/architect/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular-devkit/architect/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.0.0.tgz", + "integrity": "sha512-Q4owTwm4bLK5qYHvPehx1/55O0vWRShDGsoHOYgm8mMLc++hr7xWpF8HptVG7AP9O8Qq95Cpz9+N4iMqyWlyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1900.0", + "@angular-devkit/build-webpack": "0.1900.0", + "@angular-devkit/core": "19.0.0", + "@angular/build": "19.0.0", + "@babel/core": "7.26.0", + "@babel/generator": "7.26.2", + "@babel/helper-annotate-as-pure": "7.25.9", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.25.9", + "@babel/plugin-transform-async-to-generator": "7.25.9", + "@babel/plugin-transform-runtime": "7.25.9", + "@babel/preset-env": "7.26.0", + "@babel/runtime": "7.26.0", + "@discoveryjs/json-ext": "0.6.3", + "@ngtools/webpack": "19.0.0", + "@vitejs/plugin-basic-ssl": "1.1.0", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.20", + "babel-loader": "9.2.1", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "12.0.2", + "css-loader": "7.1.2", + "esbuild-wasm": "0.24.0", + "fast-glob": "3.3.2", + "http-proxy-middleware": "3.0.3", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "12.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.3.1", + "mini-css-extract-plugin": "2.9.2", + "open": "10.1.0", + "ora": "5.4.1", + "picomatch": "4.0.2", + "piscina": "4.7.0", + "postcss": "8.4.49", + "postcss-loader": "8.1.1", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.80.7", + "sass-loader": "16.0.3", + "semver": "7.6.3", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.36.0", + "tree-kill": "1.2.2", + "tslib": "2.8.1", + "webpack": "5.96.1", + "webpack-dev-middleware": "7.4.2", + "webpack-dev-server": "5.1.0", + "webpack-merge": "6.0.1", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.24.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0", + "@angular/localize": "^19.0.0", + "@angular/platform-server": "^19.0.0", + "@angular/service-worker": "^19.0.0", + "@angular/ssr": "^19.0.0", + "@web/test-runner": "^0.19.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^19.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.5 <5.7" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@angular/ssr": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.0.tgz", + "integrity": "sha512-/EJQOKVFb9vsFbPR+57C7fJHFVr7le9Ru6aormIKw24xyZZHtt5X4rwdeN7l6Zkv8F0cJ2EoTSiQoY17090DLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1900.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1900.0.tgz", + "integrity": "sha512-mpsjpkp+SBd/16zmRTNDUiTXvcuMObGpcssOGqjf9MhaeSECYpU2J1MyXO+uXqnQ5ECAc/UK954Lv6bWwbusEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1900.0", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/core": { + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.12.tgz", + "integrity": "sha512-NtB6ypsaDyPE6/fqWOdfTmACs+yK5RqfH5tStEzWFeeDsIEDYKsJ06ypuRep7qTjYus5Rmttk0Ds+cFgz8JdUQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "18.2.12", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.12.tgz", + "integrity": "sha512-mMea9txHbnCX5lXLHlo0RAgfhFHDio45/jMsREM2PA8UtVf2S8ltXz7ZwUrUyMQRv8vaSfn4ijDstF4hDMnRgQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@angular-devkit/core": "18.2.12", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.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.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/@angular-eslint/builder": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.4.1.tgz", + "integrity": "sha512-Ofkwd9Rg52K+AgvnV1RXYXVBGJvl5jD7+4dqwoprqXG7YKNTdHy5vqNZ5XDSMb26qjoZF7JC+IKruKFaON/ZaA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/bundled-angular-compiler": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.1.tgz", + "integrity": "sha512-gCQC0mgBO1bwHDXL9CUgHW+Rf1XGZCLAopoXnggwxGkBCx+oww507t+jrSOxdh+4OTKU4ZfmbtWd7Y8AeXns8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular-eslint/eslint-plugin": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.1.tgz", + "integrity": "sha512-FoHwj+AFo8ONKb8wEK5qpo6uefuyklZlDqErJxeC3fpNIJzDe8PWBcJsuZt7Wwm/HeggWgt0Au6h+3IEa0V3BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.1", + "@angular-eslint/utils": "18.4.1" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/eslint-plugin-template": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.1.tgz", + "integrity": "sha512-sofnKpi6wOZ6avVfYYqB7sCgGgWF2HgCZfW+IAp1MtVD2FBa1zTSbbfIZ1I8Akpd22UXa4LKJd0TLwm5XHHkiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.1", + "@angular-eslint/utils": "18.4.1", + "aria-query": "5.3.2", + "axobject-query": "4.1.0" + }, + "peerDependencies": { + "@typescript-eslint/types": "^7.11.0 || ^8.0.0", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/schematics": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.4.1.tgz", + "integrity": "sha512-1+gGodwh+UevtEx9mzZbzP1uY/9NAGEbsn8jisG1TEPDby2wKScQj6U6JwGxoW/Dd/4SIeSdilruZPALkqha7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-eslint/eslint-plugin": "18.4.1", + "@angular-eslint/eslint-plugin-template": "18.4.1", + "ignore": "6.0.2", + "semver": "7.6.3", + "strip-json-comments": "3.1.1" + }, + "peerDependencies": { + "@angular-devkit/core": ">= 18.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@angular-eslint/template-parser": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.1.tgz", + "integrity": "sha512-LsStXVyso/89gQU5eiJebB/b1j+wrRtTLjk+ODVUTa7NGCCT7B7xI6ToTchkBEpSTHLT9pEQXHsHer3FymsQRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.1", + "eslint-scope": "^8.0.2" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/template-parser/node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@angular-eslint/template-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@angular-eslint/utils": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.1.tgz", + "integrity": "sha512-F5UGE1J/CRmTbl8vjexQRwRglNqnJwdXCUejaG+qlGssSHoWcRB+ubbR/na3PdnzeJdBE6DkLYElXnOQZ6YKfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.4.1" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular/animations": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.0.tgz", + "integrity": "sha512-+uZTvEXjYh8PZKB4ijk8uuH1K+Tz/A67mUlltFv9pYKtnmbZAeS/PI66g/7pigRYDvEgid1fvlAANeBShAiPZQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "19.0.0" + } + }, + "node_modules/@angular/build": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.0.0.tgz", + "integrity": "sha512-OLyUwAVCSqW589l19g19aP2O1NpBMRPsqKmYLaTYvYSIcZkNRJPxOcsCIDGB3FUQUEjpouYtzPA3RtBuJWsCwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1900.0", + "@babel/core": "7.26.0", + "@babel/helper-annotate-as-pure": "7.25.9", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.26.0", + "@inquirer/confirm": "5.0.2", + "@vitejs/plugin-basic-ssl": "1.1.0", + "beasties": "0.1.0", + "browserslist": "^4.23.0", + "esbuild": "0.24.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "istanbul-lib-instrument": "6.0.3", + "listr2": "8.2.5", + "magic-string": "0.30.12", + "mrmime": "2.0.0", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.7.0", + "rollup": "4.26.0", + "sass": "1.80.7", + "semver": "7.6.3", + "vite": "5.4.11", + "watchpack": "2.4.2" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "lmdb": "3.1.5" + }, + "peerDependencies": { + "@angular/compiler": "^19.0.0", + "@angular/compiler-cli": "^19.0.0", + "@angular/localize": "^19.0.0", + "@angular/platform-server": "^19.0.0", + "@angular/service-worker": "^19.0.0", + "@angular/ssr": "^19.0.0", + "less": "^4.2.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.5 <5.7" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@angular/ssr": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular/cdk": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.0.tgz", + "integrity": "sha512-KcOYhCwN4Bw3L4+W4ymTfPGqRjrkwD8M5jX8GM7YsZ5DsX9OEd/gNrwRvjn+8JItzimXLXdGrcqXrMTxkq7QPA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.0.tgz", + "integrity": "sha512-7FTNkMtTuaXp4CCWZlRIwFZtnkDJg+YjqAuloDNGhIXDjDsb9gWihepWpWXSMBTg4XI1OdsT+oYt38Z0YMck0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1900.0", + "@angular-devkit/core": "19.0.0", + "@angular-devkit/schematics": "19.0.0", + "@inquirer/prompts": "7.1.0", + "@listr2/prompt-adapter-inquirer": "2.0.18", + "@schematics/angular": "19.0.0", + "@yarnpkg/lockfile": "1.1.0", + "ini": "5.0.0", + "jsonc-parser": "3.3.1", + "listr2": "8.2.5", + "npm-package-arg": "12.0.0", + "npm-pick-manifest": "10.0.0", + "pacote": "20.0.0", + "resolve": "1.22.8", + "semver": "7.6.3", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.0.tgz", + "integrity": "sha512-/EJQOKVFb9vsFbPR+57C7fJHFVr7le9Ru6aormIKw24xyZZHtt5X4rwdeN7l6Zkv8F0cJ2EoTSiQoY17090DLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.0.tgz", + "integrity": "sha512-90pGZtpZgjDk1UgRBatfeqYP6qUZL9fLh+8zIpavOr2ey5bW2lADO7mS2Qrc7U1SmGqnxQXQQ7uIS+50gYm0tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.0.0", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.12", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/common": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.0.0.tgz", + "integrity": "sha512-kb2iS26GZS0vyR3emAQbIiQifnK5M5vnbclEHni+pApDEU5V9FufbdRP3vCxs28UHZvAZKB0LrxkTrnT6T+z5g==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.0.0.tgz", + "integrity": "sha512-Uw2Yy25pdqfzKsS9WofnIq1zvknlVYyy03LYO7NMKHlFWiy8q8SIXN7WKPFhiHlOfyACXipp4eZb9m3+IbOfSA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "19.0.0" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.0.0.tgz", + "integrity": "sha512-2PxpsIeppoDLAx7A6i0GE10WjC+Fkz8tTQioa7r4y/+eYnniEjJFIQM/8lbkOnRVcuYoeXoNyYWr3fEQAyO4LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "7.26.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^4.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/compiler": "19.0.0", + "typescript": ">=5.5 <5.7" + } + }, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/core": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.0.0.tgz", + "integrity": "sha512-aNG2kd30BOM/zf0jC+aEVG8OA27IwqCki9EkmyRNYnaP2O5Mj1n7JpCyZGI+0LrWTJ2UUCfRNZiZdZwmNThr1Q==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0" + } + }, + "node_modules/@angular/forms": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.0.tgz", + "integrity": "sha512-gM4bUdlIJ0uRYNwoVMbXiZt4+bZzPXzyQ7ByNIOVKEAI0PN9Jz1dR1pSeQgIoUvKQbhwsVKVUoa7Tn1hoqwvTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.0.0", + "@angular/core": "19.0.0", + "@angular/platform-browser": "19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.0.0.tgz", + "integrity": "sha512-j7dDFUh8dqiysuWu32biukDTHScajUYHFR9Srhn98kBwnXMob5y1paMoOx5RQO5DU4KCxKaKx8HcHJBJeTKHjw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^19.0.0 || ^20.0.0", + "@angular/cdk": "19.0.0", + "@angular/common": "^19.0.0 || ^20.0.0", + "@angular/core": "^19.0.0 || ^20.0.0", + "@angular/forms": "^19.0.0 || ^20.0.0", + "@angular/platform-browser": "^19.0.0 || ^20.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.0.0.tgz", + "integrity": "sha512-g9Qkv+KgEmXLVeg+dw1edmWsRBspUGeJMOBf2UX1kUCw6txeco+pzCMimouB5LQYHfs6cD6oC+FwINm0HNwrhg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/animations": "19.0.0", + "@angular/common": "19.0.0", + "@angular/core": "19.0.0" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.0.tgz", + "integrity": "sha512-ljvycDe0etmTBDzbCFakpsItywddpKEyCZGMKRvz5TdND1N1qqXydxAF1kLzP5H7F/QOMdP4/T/T1HS+6AUpkw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.0.0", + "@angular/compiler": "19.0.0", + "@angular/core": "19.0.0", + "@angular/platform-browser": "19.0.0" + } + }, + "node_modules/@angular/router": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.0.0.tgz", + "integrity": "sha512-uFyT8DWVLGY8k0AZjpK7iyMO/WwT4/+b09Ax0uUEbdcRxTXSOg8/U/AVzQWtxzxI80/vJE2WZMmhIJFUTYwhKA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "19.0.0", + "@angular/core": "19.0.0", + "@angular/platform-browser": "19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/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, + "license": "MIT" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "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.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@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, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.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" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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, + "license": "MIT", + "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/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/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, + "license": "MIT" + }, + "node_modules/@eslint/js": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", + "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@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, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.2.tgz", + "integrity": "sha512-+gznPl8ip8P8HYHYecDtUtdsh1t2jvb+sWCD72GAiZ9m45RqwrLmReDaqdC0umQfamtFXVRoMVJ2/qINKGm9Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", + "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.0.tgz", + "integrity": "sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/editor": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.1.0.tgz", + "integrity": "sha512-K1gGWsxEqO23tVdp5MT3H799OZ4ER1za7Dlc8F4um0W7lwSv0KGR/YyrUEyimj0g7dXZd8XknM/5QA2/Uy+TbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.2.tgz", + "integrity": "sha512-WdgCX1cUtinz+syKyZdJomovULYlKUWZbVYZzhf+ZeeYf4htAQ3jLymoNs3koIAKfZZl3HUBb819ClCBfyznaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", + "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.0.2.tgz", + "integrity": "sha512-yCLCraigU085EcdpIVEDgyfGv4vBiE4I+k1qRkc9C5dMjWF42ADMGy1RFU94+eZlz4YlkmFsiyHZy0W1wdhaNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.2.tgz", + "integrity": "sha512-MKQhYofdUNk7eqJtz52KvM1dH6R93OMrqHduXCvuefKrsiMjHiMwjc3NZw5Imm2nqY7gWd9xdhYrtcHMJQZUxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.2.tgz", + "integrity": "sha512-tQXGSu7IO07gsYlGy3VgXRVsbOWqFBMbqAUrJSc1PDTQQ5Qdm+QVwkP0OC0jnUZ62D19iPgXOMO+tnWG+HhjNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.1.0.tgz", + "integrity": "sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.0.2", + "@inquirer/confirm": "^5.0.2", + "@inquirer/editor": "^4.1.0", + "@inquirer/expand": "^4.0.2", + "@inquirer/input": "^4.0.2", + "@inquirer/number": "^3.0.2", + "@inquirer/password": "^4.0.2", + "@inquirer/rawlist": "^4.0.2", + "@inquirer/search": "^3.0.2", + "@inquirer/select": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.2.tgz", + "integrity": "sha512-3XGcskMoVF8H0Dl1S5TSZ3rMPPBWXRcM0VeNVsS4ByWeWjSeb0lPqfnBg6N7T0608I1B2bSVnbi2cwCrmOD1Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.2.tgz", + "integrity": "sha512-Zv4FC7w4dJ13BOJfKRQCICQfShinGjb1bCEIHxTSnjj2telu3+3RHwHubPG9HyD4aix5s+lyAMEK/wSFD75HLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.2.tgz", + "integrity": "sha512-uSWUzaSYAEj0hlzxa1mUB6VqrKaYx0QxGBLZzU4xWFxaSyGaXxsSE4OSOwdU24j0xl8OajgayqFXW0l2bkl2kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.0", + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.1.tgz", + "integrity": "sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "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, + "license": "ISC", + "dependencies": { + "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": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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, + "license": "MIT", + "dependencies": { + "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/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.18.tgz", + "integrity": "sha512-0hz44rAcrphyXcA8IS7EJ2SCoaBZD2u5goE8S/e+q/DL+dOGpqpcLidVOFeLG3VgML62SXmfRLAhWt0zL1oW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/type": "^1.5.5" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 8" + } + }, + "node_modules/@listr2/prompt-adapter-inquirer/node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@listr2/prompt-adapter-inquirer/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.1.5.tgz", + "integrity": "sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.1.5.tgz", + "integrity": "sha512-CGhsb0R5vE6mMNCoSfxHFD8QTvBHM51gs4DBeigTYHWnYv2V5YpJkC4rMo5qAAFifuUcc0+a8a3SIU0c9NrfNw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.1.5.tgz", + "integrity": "sha512-3WeW328DN+xB5PZdhSWmqE+t3+44xWXEbqQ+caWJEZfOFdLp9yklBZEbVqVdqzznkoaXJYxTCp996KD6HmANeg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.1.5.tgz", + "integrity": "sha512-LAjaoOcBHGj6fiYB8ureiqPoph4eygbXu4vcOF+hsxiY74n8ilA7rJMmGUT0K0JOB5lmRQHSmor3mytRjS4qeQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.1.5.tgz", + "integrity": "sha512-k/IklElP70qdCXOQixclSl2GPLFiopynGoKX1FqDd1/H0E3Fo1oPwjY2rEVu+0nS3AOw1sryStdXk8CW3cVIsw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.1.5.tgz", + "integrity": "sha512-KYar6W8nraZfSJspcK7Kp7hdj238X/FNauYbZyrqPBrtsXI1hvI4/KcRcRGP50aQoV7fkKDyJERlrQGMGTZUsA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@napi-rs/nice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", + "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/nice-android-arm-eabi": "1.0.1", + "@napi-rs/nice-android-arm64": "1.0.1", + "@napi-rs/nice-darwin-arm64": "1.0.1", + "@napi-rs/nice-darwin-x64": "1.0.1", + "@napi-rs/nice-freebsd-x64": "1.0.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", + "@napi-rs/nice-linux-arm64-gnu": "1.0.1", + "@napi-rs/nice-linux-arm64-musl": "1.0.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", + "@napi-rs/nice-linux-s390x-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-gnu": "1.0.1", + "@napi-rs/nice-linux-x64-musl": "1.0.1", + "@napi-rs/nice-win32-arm64-msvc": "1.0.1", + "@napi-rs/nice-win32-ia32-msvc": "1.0.1", + "@napi-rs/nice-win32-x64-msvc": "1.0.1" + } + }, + "node_modules/@napi-rs/nice-android-arm-eabi": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", + "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-android-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", + "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", + "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-freebsd-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", + "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", + "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", + "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-arm64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", + "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-ppc64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", + "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-riscv64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", + "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-s390x-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", + "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", + "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-linux-x64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", + "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-arm64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", + "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-ia32-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", + "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/nice-win32-x64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", + "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ngtools/webpack": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.0.0.tgz", + "integrity": "sha512-UuLK1P184R12l6obaVzGk5yzCMQNwfahlkhNapbntvvFw27O76nEYVFM5y8tPkhC3XrsH4v6Ag21q+WADkR9jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0", + "typescript": ">=5.5 <5.7", + "webpack": "^5.54.0" + } + }, + "node_modules/@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, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/git": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", + "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.0.1.tgz", + "integrity": "sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", + "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", + "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.1.tgz", + "integrity": "sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": 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, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.26.0.tgz", + "integrity": "sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.26.0.tgz", + "integrity": "sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz", + "integrity": "sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.26.0.tgz", + "integrity": "sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.26.0.tgz", + "integrity": "sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.26.0.tgz", + "integrity": "sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.26.0.tgz", + "integrity": "sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.26.0.tgz", + "integrity": "sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.26.0.tgz", + "integrity": "sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.26.0.tgz", + "integrity": "sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.26.0.tgz", + "integrity": "sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.26.0.tgz", + "integrity": "sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.26.0.tgz", + "integrity": "sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.26.0.tgz", + "integrity": "sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.26.0.tgz", + "integrity": "sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.26.0.tgz", + "integrity": "sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.26.0.tgz", + "integrity": "sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.26.0.tgz", + "integrity": "sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/wasm-node": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.27.3.tgz", + "integrity": "sha512-HlaetiNZq+cdDeebt6KagcsKeAWDTs+LZVBYBLIq+m6POIUXPMexJ+KwCU/cgqdtDhzUj7e8a144Gzo1YB58Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@schematics/angular": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.0.tgz", + "integrity": "sha512-2U8dlhURoQfS99ZF67RVeARFeJn4Z0Lg2dfYbGj+ooRH5YMtAZq8zAIRCfyC3OMiJEZM6BbGigCD6gNoAhP0RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.0.0", + "@angular-devkit/schematics": "19.0.0", + "jsonc-parser": "3.3.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.0.tgz", + "integrity": "sha512-/EJQOKVFb9vsFbPR+57C7fJHFVr7le9Ru6aormIKw24xyZZHtt5X4rwdeN7l6Zkv8F0cJ2EoTSiQoY17090DLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.0.tgz", + "integrity": "sha512-90pGZtpZgjDk1UgRBatfeqYP6qUZL9fLh+8zIpavOr2ey5bW2lADO7mS2Qrc7U1SmGqnxQXQQ7uIS+50gYm0tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.0.0", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.12", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/angular/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@schematics/angular/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sigstore/bundle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz", + "integrity": "sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-2.0.0.tgz", + "integrity": "sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz", + "integrity": "sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^14.0.1", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign/node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@sigstore/sign/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@sigstore/sign/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/sign/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@sigstore/sign/node_modules/minipass-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/@sigstore/sign/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@sigstore/sign/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@sigstore/sign/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@sigstore/tuf": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz", + "integrity": "sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz", + "integrity": "sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-3.0.1.tgz", + "integrity": "sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "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.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "license": "MIT", + "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": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz", + "integrity": "sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz", + "integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.15.0.tgz", + "integrity": "sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.15.0", + "@typescript-eslint/type-utils": "8.15.0", + "@typescript-eslint/utils": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.15.0.tgz", + "integrity": "sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.15.0", + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/typescript-estree": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz", + "integrity": "sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.15.0.tgz", + "integrity": "sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.15.0", + "@typescript-eslint/utils": "8.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.15.0.tgz", + "integrity": "sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz", + "integrity": "sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.15.0.tgz", + "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.15.0", + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/typescript-estree": "8.15.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", + "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.15.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@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, + "license": "BSD-3-Clause" + }, + "node_modules/@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, + "license": "Apache-2.0" + }, + "node_modules/@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, + "license": "BSD-2-Clause" + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/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, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/angular-eslint": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/angular-eslint/-/angular-eslint-18.4.1.tgz", + "integrity": "sha512-tRy0SeWC2zoftEYTlUU6WLtzyxF7cjlodnnG40EO2PGPwRN2m+EWQn7de0RZz0MIYPl36px8gj9CztiHO2risA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-eslint/builder": "18.4.1", + "@angular-eslint/eslint-plugin": "18.4.1", + "@angular-eslint/eslint-plugin-template": "18.4.1", + "@angular-eslint/schematics": "18.4.1", + "@angular-eslint/template-parser": "18.4.1" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*", + "typescript-eslint": "^8.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/beasties": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.1.0.tgz", + "integrity": "sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "htmlparser2": "^9.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-media-query-parser": "^0.2.3" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "license": "MIT", + "dependencies": { + "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.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001683", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", + "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "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, + "license": "MIT", + "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/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "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, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/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, + "license": "MIT" + }, + "node_modules/cliui/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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, + "license": "MIT", + "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/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/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, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/conventional-changelog": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", + "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-config-spec": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/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, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/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, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/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, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/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, + "license": "ISC" + }, + "node_modules/conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", + "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.1", + "globby": "^14.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/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, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/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, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotgitignore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", + "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", + "dev": true, + "license": "ISC", + "dependencies": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotgitignore/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotgitignore/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.63", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.63.tgz", + "integrity": "sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/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, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", + "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@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.7.2", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.1.tgz", + "integrity": "sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz", + "integrity": "sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg==", + "dev": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", + "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.15.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.5", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "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/eslint/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/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, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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, + "license": "MIT" + }, + "node_modules/eslint/node_modules/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, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/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, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/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, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "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.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/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, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/finalhandler/node_modules/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, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/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, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/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, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/get-pkg-repo/node_modules/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, + "license": "MIT" + }, + "node_modules/get-pkg-repo/node_modules/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, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/get-pkg-repo/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, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/node_modules/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, + "license": "MIT", + "dependencies": { + "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" + } + }, + "node_modules/get-pkg-repo/node_modules/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, + "license": "MIT" + }, + "node_modules/get-pkg-repo/node_modules/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/get-pkg-repo/node_modules/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/get-pkg-repo/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, + "license": "MIT", + "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/get-pkg-repo/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, + "license": "ISC" + }, + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "license": "BSD", + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/gitconfiglocal/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/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, + "license": "BSD-2-Clause" + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.1.tgz", + "integrity": "sha512-/rLVQvNpQDQ2wG90ooueQe3hsRuoNBT3kh/vwcjgPjWCEODZbm44YwrShVr4Pnb9tNCIJlI6Q+OKxXLngV591g==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/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, + "license": "MIT", + "dependencies": { + "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" + } + }, + "node_modules/hpack.js/node_modules/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, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/html-loader": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-5.1.0.tgz", + "integrity": "sha512-Jb3xwDbsm0W3qlXrCZwcYqYGnYz55hb6aoKQTlzyZPXsPpi6tHXzAfqalecglMQgNvtEfxrCQPaKT90Irt5XDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "html-minifier-terser": "^7.2.0", + "parse5": "^7.1.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/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, + "license": "BSD-2-Clause" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", + "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", + "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/ignore-walk/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.4.0.tgz", + "integrity": "sha512-T4fio3W++llLd7LGSGsioriDHgWyhoL6YTu4k37uwJLF7DzOzspz7mNxRoM3cQdLWtL/ebazQpIf/yZGJx/gzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "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, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/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, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/karma": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", + "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@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.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-coverage/node_modules/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, + "license": "BSD-3-Clause", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma-coverage/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.1.tgz", + "integrity": "sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "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, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/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, + "license": "MIT" + }, + "node_modules/karma/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/karma/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, + "license": "MIT", + "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/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "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", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/less/node_modules/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, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/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, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": 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, + "license": "MIT" + }, + "node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.1.5.tgz", + "integrity": "sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "msgpackr": "^1.11.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.5.3", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.1.5", + "@lmdb/lmdb-darwin-x64": "3.1.5", + "@lmdb/lmdb-linux-arm": "3.1.5", + "@lmdb/lmdb-linux-arm64": "3.1.5", + "@lmdb/lmdb-linux-x64": "3.1.5", + "@lmdb/lmdb-win32-x64": "3.1.5" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-fetch-happen/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/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, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/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, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/markdown-loader/-/markdown-loader-8.0.0.tgz", + "integrity": "sha512-dxrR3WhK/hERbStPFb/yeNdEeWCKa2qUDdXiq3VTruBUWufOtERX04X0K44K4dnlN2i9pjSEzYIQJ3LjH0xkEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "marked": "^4.0.12" + }, + "engines": { + "node": ">=12.22.9" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", + "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/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, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/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, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/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, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/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, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/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, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/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, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/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, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/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, + "license": "ISC" + }, + "node_modules/meow/node_modules/read-pkg/node_modules/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, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/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, + "license": "ISC" + }, + "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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/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, + "license": "ISC" + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/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, + "license": "ISC" + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/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, + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/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, + "license": "ISC" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "dev": true, + "license": "MIT", + "optional": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/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, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/ng-packagr": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-19.0.0.tgz", + "integrity": "sha512-CKJlpZO6sL3+RpXbmtH7wEHnqgktOkmvmoUpTUUuNOA6m3JRypvDZHW29hFzvgFkxTJI13QHuBWauuG42rtIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-json": "^6.1.0", + "@rollup/wasm-node": "^4.24.0", + "ajv": "^8.17.1", + "ansi-colors": "^4.1.3", + "browserslist": "^4.22.1", + "chokidar": "^4.0.1", + "commander": "^12.1.0", + "convert-source-map": "^2.0.0", + "dependency-graph": "^1.0.0", + "esbuild": "^0.24.0", + "fast-glob": "^3.3.2", + "find-cache-dir": "^3.3.2", + "injection-js": "^2.4.0", + "jsonc-parser": "^3.3.1", + "less": "^4.2.0", + "ora": "^5.1.0", + "piscina": "^4.7.0", + "postcss": "^8.4.47", + "rxjs": "^7.8.1", + "sass": "^1.79.5" + }, + "bin": { + "ng-packagr": "cli/main.js" + }, + "engines": { + "node": "^18.19.1 || >=20.11.1" + }, + "optionalDependencies": { + "rollup": "^4.24.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^19.0.0-next.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "tslib": "^2.3.0", + "typescript": ">=5.5 <5.7" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/ng-packagr/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ng-packagr/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "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", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ng-packagr/node_modules/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, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ng-packagr/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ng-packagr/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/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, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.0.tgz", + "integrity": "sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^8.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-install-checks": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.0.tgz", + "integrity": "sha512-bkTildVlofeMX7wiOaWk3PlW7YcBXAuEc7TWpOxwUgalG5ZvgT/ms+6OX9zt7iGLv4+VhKbRZhpOfgQJzk1YAw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-package-arg": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", + "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-packlist": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", + "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz", + "integrity": "sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/npm-registry-fetch/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm-registry-fetch/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "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.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/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, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/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, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/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, + "license": "ISC" + }, + "node_modules/ordered-binary": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", + "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pacote": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-20.0.0.tgz", + "integrity": "sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.7.0.tgz", + "integrity": "sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "@napi-rs/nice": "^1.0.1" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/proc-log": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "ISC" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "license": "MIT", + "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/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/raw-loader/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, + "license": "MIT", + "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/raw-loader/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, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/raw-loader/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, + "license": "MIT" + }, + "node_modules/raw-loader/node_modules/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, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/raw-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "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/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/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, + "license": "ISC" + }, + "node_modules/read-pkg/node_modules/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, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "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, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true, + "license": "MIT" + }, + "node_modules/regexpu-core": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", + "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/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, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.26.0.tgz", + "integrity": "sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.26.0", + "@rollup/rollup-android-arm64": "4.26.0", + "@rollup/rollup-darwin-arm64": "4.26.0", + "@rollup/rollup-darwin-x64": "4.26.0", + "@rollup/rollup-freebsd-arm64": "4.26.0", + "@rollup/rollup-freebsd-x64": "4.26.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.26.0", + "@rollup/rollup-linux-arm-musleabihf": "4.26.0", + "@rollup/rollup-linux-arm64-gnu": "4.26.0", + "@rollup/rollup-linux-arm64-musl": "4.26.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.26.0", + "@rollup/rollup-linux-riscv64-gnu": "4.26.0", + "@rollup/rollup-linux-s390x-gnu": "4.26.0", + "@rollup/rollup-linux-x64-gnu": "4.26.0", + "@rollup/rollup-linux-x64-musl": "4.26.0", + "@rollup/rollup-win32-arm64-msvc": "4.26.0", + "@rollup/rollup-win32-ia32-msvc": "4.26.0", + "@rollup/rollup-win32-x64-msvc": "4.26.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "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==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.80.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.7.tgz", + "integrity": "sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass-loader": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.3.tgz", + "integrity": "sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/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, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/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, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "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, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sigstore": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", + "integrity": "sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^3.0.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^3.0.0", + "@sigstore/tuf": "^3.0.0", + "@sigstore/verify": "^2.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.17.1" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/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, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "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" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/standard-version": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", + "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/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, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT" + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT" + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/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, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/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, + "license": "MIT", + "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/standard-version/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/standard-version/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, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/standard-version/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, + "license": "MIT" + }, + "node_modules/standard-version/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/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, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/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, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json", + "dev": true, + "license": "ISC" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "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": ">=10" + } + }, + "node_modules/tar/node_modules/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, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/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, + "license": "ISC" + }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "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/terser-webpack-plugin/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, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "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/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/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, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tuf-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", + "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/tuf-js/node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/tuf-js/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tuf-js/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/tuf-js/node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/tuf-js/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tuf-js/node_modules/minipass-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/tuf-js/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/tuf-js/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/tuf-js/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.15.0.tgz", + "integrity": "sha512-wY4FRGl0ZI+ZU4Jo/yjdBu0lVTSML58pu6PgGtJmCufvzfV565pUF6iACQt092uFOd49iLOTX/sEVmHtbSrS+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.15.0", + "@typescript-eslint/parser": "8.15.0", + "@typescript-eslint/utils": "8.15.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz", + "integrity": "sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-filename": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/unique-slug": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "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, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "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, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "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.11", + "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.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "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": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.6.0", + "mime-types": "^2.1.31", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz", + "integrity": "sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.19.2", + "graceful-fs": "^4.2.6", + "html-entities": "^2.4.0", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@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" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "license": "MIT", + "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": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "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, + "license": "Apache-2.0", + "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, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "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, + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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/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, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "license": "MIT", + "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/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "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, + "license": "ISC", + "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, + "license": "ISC" + }, + "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, + "license": "MIT", + "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, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/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, + "license": "MIT" + }, + "node_modules/yargs/node_modules/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/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, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", + "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", + "license": "MIT" + } + } +} diff --git a/package.json b/package.json index 45d399a0..978fc89e 100644 --- a/package.json +++ b/package.json @@ -1,98 +1,102 @@ { - "name": "ng2-select", - "version": "1.0.1-beta.0", - "description": "Angular2 based replacement for select boxes", - "scripts": { - "flow.install:typings": "./node_modules/.bin/typings install", - "flow.compile": "npm run flow.install:typings && npm run flow.compile:common && npm run flow.compile:system ", - "flow.compile:common": "./node_modules/.bin/tsc", - "flow.compile:system": "./.config/bundle-system.js", - "flow.copy:src": "./node_modules/.bin/cpy ng2-select.ts \"components/*.ts\" ts --parents", - "flow.clean": "./node_modules/.bin/del bundles coverage demo-build typings \"components/**/*.+(js|d.ts|js.map)\" dist \"ng2-select.+(js|d.ts|js.map)\"", - "flow.deploy:gh-pages": "npm run flow.build:prod && ./node_modules/.bin/gh-pages -d demo-build", - "flow.eslint": "./node_modules/.bin/eslint --ignore-path .gitignore --ext js --fix . .config", - "flow.tslint": "./node_modules/.bin/gulp lint", - "flow.lint": "npm run flow.eslint && npm run flow.tslint", - "flow.changelog": "./node_modules/.bin/conventional-changelog -i CHANGELOG.md -s -p angular -v", - "flow.github-release": "conventional-github-releaser -p angular", - "flow.build:prod": "NODE_ENV=production ./node_modules/.bin/webpack --progress --color", - "flow.build:dev": "./node_modules/.bin/webpack --progress --color", - "flow.serve:dev": "./node_modules/.bin/webpack-dev-server --hot --inline --colors --display-error-details --display-cached", - "flow.serve:prod": "NODE_ENV=production ./node_modules/.bin/webpack-dev-server --hot --inline --colors --display-error-details --display-cached", - "prepublish": "npm run flow.clean && npm run flow.compile", - "postpublish": "npm run flow.deploy:gh-pages", - "start": "npm run flow.serve:dev", - "pretest": "npm run flow.lint", - "preversion": "npm test", - "version": "npm run flow.changelog && git add -A", - "postversion": "git push origin development && git push --tags" - }, - "main": "ng2-select.js", - "typings": "ng2-select.d.ts", - "keywords": [ - "angular2", - "select", - "selectify", - "angularjs" - ], - "author": "Vyacheslav Chub ", + "name": "ngx-select-ex", + "version": "19.0.5", + "description": "Angular based replacement for select boxes", "license": "MIT", + "private": false, + "author": "Konstantin Polyntsov ", "repository": { "type": "git", - "url": "git+ssh://git@github.com/valor-software/ng2-select.git" + "url": "git+ssh://git@github.com:optimistex/ngx-select-ex.git" }, "bugs": { - "url": "https://github.com/valor-software/ng2-select/issues" + "url": "https://github.com/optimistex/ngx-select-ex/issues" + }, + "homepage": "https://github.com/optimistex/ngx-select-ex#readme", + "scripts": { + "build": "npm run lint && npm run sync && npm run build:package && npm run test && npm run build:demo && git add -A", + "build:demo": "ng build ngx-select-ex-demo", + "build:package": "ng build ngx-select-ex", + "lint": "ng lint", + "lint:quiet": "ng lint --quiet", + "lint:fix": "ng lint --fix", + "lint:ngx-select-ex:quiet": "ng lint ngx-select-ex --quiet", + "lint:ngx-select-ex-demo:quiet": "ng lint ngx-select-ex-demo --quiet", + "ng": "ng", + "release": "standard-version --commit-all", + "release:major": "standard-version --release-as major --commit-all", + "sync": "npm run sync:version && npm run sync:readme && npm run sync:license", + "sync:version": "npm --prefix=projects/ngx-select-ex pkg set version=$(npm pkg get version | xargs)", + "sync:readme": "cp README.md projects/ngx-select-ex/README.md", + "sync:license": "cp LICENSE projects/ngx-select-ex/LICENSE", + "publish": "npm publish ./dist/ngx-select-ex", + "publish-dev": "npm publish ./dist/ngx-select-ex --tag dev", + "start": "ng serve", + "test": "ng test --browsers=ChromeHeadlessNoSandbox --watch false", + "test:ngx-select-ex": "ng test ngx-select-ex --browsers=ChromeHeadlessNoSandbox --watch false", + "test:ngx-select-ex-demo": "ng test ngx-select-ex-demo --browsers=ChromeHeadlessNoSandbox --watch false", + "prepare": "husky" + }, + "standard-version": { + "scripts": { + "postbump": "npm run build" + } }, - "homepage": "https://github.com/valor-software/ng2-select#readme", - "peerDependencies": { - "angular2": "2.0.0-beta.15" + "keywords": [ + "ngx-select", + "ngx-select-ex", + "angular", + "angular18", + "angular19", + "select", + "select2", + "ui-select", + "multiselect", + "multi-select" + ], + "dependencies": { + "@angular/animations": "^19.0.0", + "@angular/cdk": "^19.0.0", + "@angular/common": "^19.0.0", + "@angular/compiler": "^19.0.0", + "@angular/core": "^19.0.0", + "@angular/forms": "^19.0.0", + "@angular/material": "^19.0.0", + "@angular/platform-browser": "^19.0.0", + "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/router": "^19.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.15.0" }, - "dependencies": {}, "devDependencies": { - "angular2": "2.0.0-beta.15", - "bootstrap": "3.3.6", - "clean-webpack-plugin": "0.1.8", - "compression-webpack-plugin": "0.3.1", - "conventional-changelog-cli": "1.1.1", - "conventional-github-releaser": "1.1.2", - "copy-webpack-plugin": "2.1.1", - "cpy-cli": "1.0.0", - "del-cli": "0.2.0", - "es6-promise": "3.1.2", - "es6-shim": "0.35.0", - "es7-reflect-metadata": "1.6.0", - "eslint-config-valorsoft": "0.0.10", - "exports-loader": "0.6.3", - "file-loader": "0.8.5", - "gh-pages": "0.11.0", - "gulp": "3.9.1", - "gulp-size": "2.1.0", - "gulp-tslint": "github:valorkin/gulp-tslint", - "html-loader": "0.4.3", - "html-webpack-plugin": "2.16.0", - "markdown-loader": "0.1.7", - "marked": "0.3.5", - "moment": "2.13.0", - "ng2-bootstrap": "1.0.13", - "pre-commit": "1.1.2", - "prismjs": "valorkin/prism", - "prismjs-loader": "0.0.2", - "raw-loader": "0.5.1", - "reflect-metadata": "0.1.3", - "require-dir": "0.3.0", - "rxjs": "5.0.0-beta.2", - "systemjs-builder": "0.15.15", - "ts-loader": "0.8.2", - "tslint": "3.7.4", - "tslint-config-valorsoft": "0.0.4", - "typescript": "1.8.10", - "typings": "0.8.1", - "webpack": "1.13.0", - "webpack-dev-server": "1.14.1", - "zone.js": "0.6.12" + "@angular-devkit/build-angular": "^19.0.0", + "@angular/cli": "^19.0.0", + "@angular/compiler-cli": "^19.0.0", + "@types/jasmine": "~5.1.0", + "angular-eslint": "18.4.1", + "eslint": "^9.15.0", + "html-loader": "^5.1.0", + "husky": "^9.1.7", + "jasmine-core": "~5.4.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "markdown-loader": "^8.0.0", + "ng-packagr": "^19.0.0", + "raw-loader": "^4.0.2", + "standard-version": "^9.5.0", + "typescript": "~5.6.2", + "typescript-eslint": "8.15.0" }, "contributors": [ + { + "name": "Konstantin Polyntsov", + "email": "optimistex@gmail.com", + "url": "https://github.com/optimistex" + }, { "name": "Vyacheslav Chub", "email": "vyacheslav.chub@valor-software.com", @@ -102,6 +106,11 @@ "name": "Dmitriy Shekhovtsov", "email": "valorkin@gmail.com", "url": "https://github.com/valorkin" + }, + { + "name": "Oleksandr Telnov", + "email": "otelnov@gmail.com", + "url": "https://github.com/otelnov" } ] } diff --git a/projects/ngx-select-ex/LICENSE b/projects/ngx-select-ex/LICENSE new file mode 100644 index 00000000..bbba0337 --- /dev/null +++ b/projects/ngx-select-ex/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017-2018 Konstantin Polyntsov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/projects/ngx-select-ex/README.md b/projects/ngx-select-ex/README.md new file mode 100644 index 00000000..6bdd60cc --- /dev/null +++ b/projects/ngx-select-ex/README.md @@ -0,0 +1,248 @@ +# Native UI Select Angular component ([demo](https://optimistex.github.io/ngx-select-ex/)) + +## ngx-select-ex + +[![npm version](https://badge.fury.io/js/ngx-select-ex.svg)](http://badge.fury.io/js/ngx-select-ex) +[![npm downloads](https://img.shields.io/npm/dm/ngx-select-ex.svg)](https://npmjs.org/ngx-select-ex) + +Native Angular component for Select + +- Requires [Angular](https://angular.dev/) version 18 or higher! +- Compatible with [Bootstrap 3](https://getbootstrap.com/docs/3.3/) and **[Bootstrap 4](https://getbootstrap.com/)** + +## Usage + +1. Install **ngx-select-ex** through [npm](https://www.npmjs.com/package/ngx-select-ex) package manager using the following command: + + ```bash + npm i ngx-select-ex --save + ``` + +2. Add NgxSelectModule into your AppModule class. app.module.ts would look like this: + + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule } from 'ngx-select-ex'; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + + If you want to change the default options then use next code: + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule, INgxSelectOptions } from 'ngx-select-ex'; + + const CustomSelectOptions: INgxSelectOptions = { // Check the interface for more options + optionValueField: 'id', + optionTextField: 'name' + }; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule.forRoot(CustomSelectOptions)], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + +3. Include Bootstrap styles. + For example add to your index.html + + ```html + + ``` + +4. Add the tag `` into some html + + ```html + + ``` + +5. More information regarding of using **ngx-select-ex** is located in [demo](https://optimistex.github.io/ngx-select-ex/). + +## API + +Any item can be `disabled` for prevent selection. For disable an item add the property `disabled` to the item. + +| Input | Type | Default | Description | +| -------- | -------- | -------- | ------------- | +| [items] | any[] | `[]` | Items array. Should be an array of objects with `id` and `text` properties. As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. Items may be nested by adding a `options` property to any item, whose value should be another array of items. Items that have children may omit to have an ID. | +| optionValueField | string | `'id'` | Provide an opportunity to change the name an `id` property of objects in the `items` | +| optionTextField | string | `'text'` | Provide an opportunity to change the name a `text` property of objects in the `items` | +| optGroupLabelField | string | `'label'` | Provide an opportunity to change the name a `label` property of objects with an `options` property in the `items` | +| optGroupOptionsField | string | `'options'` | Provide an opportunity to change the name of an `options` property of objects in the `items` | +| [multiple] | boolean | `false` | Mode of this component. If set `true` user can select more than one option | +| [allowClear] | boolean | `false` | Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs | +| [placeholder] | string | `''` | Set to `true` Placeholder text to display when the element has no focus and selected items | +| [noAutoComplete] | boolean | `false` | Set to `true` to hide the search input. This option only applies to single-value inputs | +| [keepSelectedItems] | boolean | `false` | Storing the selected items when the item list is changed | +| [disabled] | boolean | `false` | When `true`, it specifies that the component should be disabled | +| [defaultValue] | any[] | `[]` | Use to set default value | +| autoSelectSingleOption | boolean | `false` | Auto select a non disabled single option | +| autoClearSearch | boolean | `false` | Auto clear a search text after select an option. Has effect for `multiple = true` | +| noResultsFound | string | `'No results found'` | The default text showed when a search has no results | +| size | `'small'/'default'/'large'` | `'default'` | Adding bootstrap classes: form-control-sm, input-sm, form-control-lg input-lg, btn-sm, btn-lg | +| searchCallback | `(search: string, item: INgxSelectOption) => boolean` | `null` | The callback function for custom filtering the select list | +| autoActiveOnMouseEnter | boolean | true | Automatically activate item when mouse enter on it | +| isFocused | boolean | false | Makes the component focused | +| keepSelectMenuOpened | boolean | false | Keeps the select menu opened | +| autocomplete | string | `'off'` | Sets an autocomplete value for the input field | +| dropDownMenuOtherClasses | string | `''` | Add css classes to the element with `dropdown-menu` class. For example `dropdown-menu-right` | +| showOptionNotFoundForEmptyItems | boolean | false | Shows the "Not Found" menu option in case of out of items at all | +| noSanitize | boolean | false | Disables auto mark an HTML as safe. Turn it on for safety from XSS if you render untrusted content in the options | +| appendTo | string | `null` | Append dropdown menu to any element using css selector + +| Output | Description | +| ------------- | ------------- | +| (typed) | Fired on changing search input. Returns `string` with that value. | +| (focus) | Fired on select focus | +| (blur) | Fired on select blur | +| (open) | Fired on select dropdown open | +| (close) | Fired on select dropdown close | +| (select) | Fired on an item selected by user. Returns value of the selected item. | +| (remove) | Fired on an item removed by user. Returns value of the removed item. | +| (navigated) | Fired on navigate by the dropdown list. Returns: `INgxOptionNavigated`. | +| (selectionChanges) | Fired on change selected options. Returns: `INgxSelectOption[]`. | + +**Warning!** Although the component contains the `select` and the `remove` events, the better solution is using `valueChanges` of the `FormControl`. + +```typescript +import {Component} from '@angular/core'; +import {FormControl} from '@angular/forms'; + +@Component({ + selector: 'app-example', + template: `` +}) +class ExampleComponent { + public selectControl = new FormControl(); + + constructor() { + this.selectControl.valueChanges.subscribe(value => console.log(value)); + } +} +``` + +### Styles and customization + +Currently, the component contains CSS classes named within [BEM Methodology](https://en.bem.info/methodology/). +As well it contains the "Bootstrap classes". Recommended use BEM classes for style customization. + +List of styles for customization: + +- **`ngx-select`** - Main class of the component. +- **`ngx-select_multiple`** - Modifier of the multiple mode. It's available when the property multiple is true. +- **`ngx-select__disabled`** - Layer for the disabled mode. +- **`ngx-select__selected`** - The common container for displaying selected items. +- **`ngx-select__toggle`** - The toggle for single mode. It's available when the property multiple is false. +- **`ngx-select__placeholder`** - The placeholder item. It's available when the property multiple is false. +- **`ngx-select__selected-single`** - The selected item with single mode. It's available when the property multiple is false. +- **`ngx-select__selected-plural`** - The multiple selected item. It's available when the property multiple is true. +- **`ngx-select__allow-clear`** - The indicator that the selected single item can be removed. It's available while properties the multiple is false and the allowClear is true. +- **`ngx-select__toggle-buttons`** - The container of buttons such as the clear and the toggle. +- **`ngx-select__toggle-caret`** - The drop-down button of the single mode. It's available when the property multiple is false. +- **`ngx-select__clear`** - The button clear. +- **`ngx-select__clear-icon`** - The cross icon. +- **`ngx-select__search`** - The input field for full text lives searching. +- **`ngx-select__choices`** - The common container of items. +- **`ngx-select__item-group`** - The group of items. +- **`ngx-select__item`** - An item. +- **`ngx-select__item_disabled`** - Modifier of a disabled item. +- **`ngx-select__item_active`** - Modifier of the activated item. + +### Templates + +For extended rendering customisation you are can use the `ng-template`: + +```html + + + + + + ({{option.data.hex}}) + + + + + + ({{option.data.hex}}) + + + + Nothing found + + + +``` + +Also, you are can mix directives for reducing template: +```html + + + + + ({{option.data.hex}}) + + + + Not found + + +``` + +Description details of the directives: +1. `ngx-select-option-selected` - Customization rendering selected options. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The text defined by the property `optionTextField`. + - `index` - Number value of index the option in the select list. Always equal to zero for the single select. +2. `ngx-select-option` - Customization rendering options in the dropdown menu. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The highlighted text defined by the property `optionTextField`. It is highlighted in the search. + - `index` - Number value of index for the top level. + - `subIndex` - Number value of index for the second level. +3. `ngx-select-option-not-found` - Customization "not found text". Does not represent any variables. + +## Troubleshooting + +Please follow this guidelines when reporting bugs and feature requests: + +1. Use [GitHub Issues](https://github.com/optimistex/ngx-select-ex/issues) board to report bugs and feature requests (not our email address) +2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it. + +Thanks for understanding! + +## Contribute + +Start working: +- `npm install` +- `npm run build:package` - **NECESSARY** since DEMO uses the package from `./dist` folder! + +Other commands: +- `npm start` - Run demo for local debugging. +- `npm test` - Run unit tests only once. Use `ng test` for running tests with files watching. +- `npm run build` - Build the demo & package for release & publishing. + +After build you will be able: + +- Install the component to another project by `npm install /path/to/ngx-select-ex/dist`. +- Link another project to the component `npm link /path/to/ngx-select-ex/dist`. **Warning!** Then use the flag [--preserve-symlinks](https://github.com/optimistex/ngx-select-ex/issues/4) + +Do not forget make a pull request to the [ngx-select-ex](https://github.com/optimistex/ngx-select-ex) + +### License + +The MIT License (see the [LICENSE](https://github.com/optimistex/ngx-select-ex/blob/master/LICENSE) file for the full text) diff --git a/projects/ngx-select-ex/eslint.config.js b/projects/ngx-select-ex/eslint.config.js new file mode 100644 index 00000000..e1c42e4c --- /dev/null +++ b/projects/ngx-select-ex/eslint.config.js @@ -0,0 +1,41 @@ +// @ts-check +const tseslint = require("typescript-eslint"); +const rootConfig = require("../../eslint.config.js"); + +module.exports = tseslint.config( + ...rootConfig, + { + files: ["**/*.ts"], + rules: { + "@typescript-eslint/no-explicit-any": "warn", + "@angular-eslint/no-output-native": "warn", + "@typescript-eslint/no-unused-vars": "warn", + "no-case-declarations": "warn", + "@typescript-eslint/no-empty-object-type": "warn", + "@angular-eslint/directive-selector": [ + "error", + { + type: "attribute", + prefix: "ngx-select", + style: "kebab-case", + }, + ], + "@angular-eslint/component-selector": [ + "error", + { + type: "element", + prefix: "ngx-select", + style: "kebab-case", + }, + ], + }, + }, + { + files: ["**/*.html"], + rules: { + "@angular-eslint/template/click-events-have-key-events": "warn", + "@angular-eslint/template/interactive-supports-focus": "warn", + "@angular-eslint/template/role-has-required-aria": "warn", + }, + } +); diff --git a/projects/ngx-select-ex/karma.conf.js b/projects/ngx-select-ex/karma.conf.js new file mode 100644 index 00000000..da21f355 --- /dev/null +++ b/projects/ngx-select-ex/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, '../../coverage/ngx-select-ex'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + browsers: ['Chrome'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: ['--no-sandbox'] + } + }, + restartOnFileChange: true + }); +}; diff --git a/projects/ngx-select-ex/ng-package.json b/projects/ngx-select-ex/ng-package.json new file mode 100644 index 00000000..5abe8a66 --- /dev/null +++ b/projects/ngx-select-ex/ng-package.json @@ -0,0 +1,7 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/ngx-select-ex", + "lib": { + "entryFile": "src/public-api.ts" + } +} \ No newline at end of file diff --git a/projects/ngx-select-ex/package.json b/projects/ngx-select-ex/package.json new file mode 100644 index 00000000..0a8ffcfc --- /dev/null +++ b/projects/ngx-select-ex/package.json @@ -0,0 +1,15 @@ +{ + "name": "ngx-select-ex", + "version": "19.0.5", + "license": "MIT", + "peerDependencies": { + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "escape-string-regexp": "^5.0.0", + "lodash.isequal": "^4.5.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false +} diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select-choices.component.ts b/projects/ngx-select-ex/src/ngx-select/ngx-select-choices.component.ts new file mode 100644 index 00000000..11c4db4c --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select-choices.component.ts @@ -0,0 +1,170 @@ +import { AfterContentInit, Component, ElementRef, HostBinding, Input, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core'; +import { Subject, Observable } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { INgxSelectOption } from './ngx-select.interfaces'; + +export interface NgxElementPosition { + top: number; + left: number; + right: number; + bottom: number; + width: number; + height: number; +} + +@Component({ + selector: 'ngx-select-choices', + standalone:false, + template: '', +}) +export class NgxSelectChoicesComponent implements OnInit, OnDestroy, OnChanges, AfterContentInit { + @Input() public appendTo: string; + @Input() public show: boolean; + @Input() public selectionChanges: Observable; + + private choiceMenuEl: HTMLElement; + private selectEl: HTMLElement; + private destroy$ = new Subject(); + private disposeResizeListener: () => void; + + @HostBinding('style.position') + public get position(): string { + return this.appendTo ? 'absolute' : ''; + } + + constructor(private renderer: Renderer2, private ngZone: NgZone, elementRef: ElementRef) { + this.choiceMenuEl = elementRef.nativeElement; + } + + public ngOnInit(): void { + this.selectionChanges.pipe(takeUntil(this.destroy$)).subscribe(() => this.delayedPositionUpdate()); + this.selectEl = this.choiceMenuEl.parentElement; + } + + public ngOnChanges(changes: SimpleChanges): void { + if (changes.show?.currentValue) { + this.delayedPositionUpdate(); + } + } + + public ngOnDestroy(): void { + this.destroy$.next(); + + if (this.appendTo) { + this.renderer.removeChild(this.choiceMenuEl.parentNode, this.choiceMenuEl); + + if (this.disposeResizeListener) { + this.disposeResizeListener(); + } + } + } + + public ngAfterContentInit(): void { + if (this.appendTo) { + this.appendChoiceMenu(); + this.handleDocumentResize(); + this.delayedPositionUpdate(); + } + } + + private appendChoiceMenu(): void { + const target = this.getAppendToElement(); + if (!target) { + throw new Error(`appendTo selector ${this.appendTo} did not found any element`); + } + this.renderer.appendChild(target, this.choiceMenuEl); + } + + private getAppendToElement() { + return document.querySelector(this.appendTo) as HTMLElement; + } + + private handleDocumentResize() { + this.disposeResizeListener = this.renderer.listen('window', 'resize', () => { + this.updatePosition(); + }); + } + + private delayedPositionUpdate(): void { + if (this.appendTo) { + this.ngZone.runOutsideAngular(() => { + window.requestAnimationFrame(() => { + this.updatePosition(); + }); + }); + } + } + + private updatePosition() { + if (this.show) { + const selectOffset = this.getViewportOffset(this.selectEl); + const relativeParentOffset = this.getParentOffset(this.choiceMenuEl); + const appendToOffset = this.getAppendToElement(); + + const offsetTop = selectOffset.top + appendToOffset.scrollTop - relativeParentOffset.top; + const offsetLeft = selectOffset.left + appendToOffset.scrollLeft - relativeParentOffset.left; + + this.choiceMenuEl.style.top = `${offsetTop + selectOffset.height}px`; + this.choiceMenuEl.style.bottom = 'auto'; + this.choiceMenuEl.style.left = `${offsetLeft}px`; + this.choiceMenuEl.style.width = `${selectOffset.width}px`; + this.choiceMenuEl.style.minWidth = `${selectOffset.width}px`; + } + } + + private getStyles(element: HTMLElement): CSSStyleDeclaration { + return window.getComputedStyle(element); + } + + private getStyleProp(element: HTMLElement, prop: keyof CSSStyleDeclaration) { + return this.getStyles(element)[prop]; + } + + private isStatic(element: HTMLElement): boolean { + return (this.getStyleProp(element, 'position') || 'static') === 'static'; + } + + private getOffsetParent(element: HTMLElement): HTMLElement { + let offsetParentEl = element.offsetParent as HTMLElement; + + while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStatic(offsetParentEl)) { + offsetParentEl = offsetParentEl.offsetParent as HTMLElement; + } + + return offsetParentEl || document.documentElement; + } + + private getViewportOffset(element: HTMLElement): NgxElementPosition { + const rect = element.getBoundingClientRect(); + const offsetTop = window.scrollY - document.documentElement.clientTop; + const offsetLeft = window.scrollX - document.documentElement.clientLeft; + + const elOffset = { + height: rect.height || element.offsetHeight, + width: rect.width || element.offsetWidth, + top: rect.top + offsetTop, + bottom: rect.bottom + offsetTop, + left: rect.left + offsetLeft, + right: rect.right + offsetLeft, + }; + + return elOffset; + } + + private getParentOffset(element: HTMLElement): NgxElementPosition { + let parentOffset: NgxElementPosition = { width: 0, height: 0, top: 0, left: 0, right: 0, bottom: 0 }; + if (this.getStyleProp(element, 'position') === 'fixed') { + return parentOffset; + } + + const offsetParentEl = this.getOffsetParent(element); + if (offsetParentEl !== document.documentElement) { + parentOffset = this.getViewportOffset(offsetParentEl); + } + + parentOffset.top += offsetParentEl.clientTop; + parentOffset.left += offsetParentEl.clientLeft; + + return parentOffset; + } +} diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select.classes.ts b/projects/ngx-select-ex/src/ngx-select/ngx-select.classes.ts new file mode 100644 index 00000000..2bd953d7 --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select.classes.ts @@ -0,0 +1,55 @@ +import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; +import escapeStringRegexp from 'escape-string-regexp'; +import { INgxSelectOptGroup, INgxSelectOption, INgxSelectOptionBase, TNgxSelectOptionType } from './ngx-select.interfaces'; + +export class NgxSelectOption implements INgxSelectOption, INgxSelectOptionBase { + public readonly type: TNgxSelectOptionType = 'option'; + + public highlightedText: SafeHtml; + public active: boolean; + + constructor(public value: number | string, + public text: string, + public disabled: boolean, + public data: any, + private _parent: NgxSelectOptGroup = null) { + } + + public get parent(): NgxSelectOptGroup { + return this._parent; + } + + private cacheHighlightText: string; + private cacheRenderedText: SafeHtml = null; + + public renderText(sanitizer: DomSanitizer, highlightText: string): SafeHtml { + if (this.cacheHighlightText !== highlightText || this.cacheRenderedText === null) { + this.cacheHighlightText = highlightText; + if (this.cacheHighlightText) { + this.cacheRenderedText = sanitizer.bypassSecurityTrustHtml((this.text + '').replace( + new RegExp(escapeStringRegexp(this.cacheHighlightText), 'gi'), '$&' + )); + } else { + this.cacheRenderedText = sanitizer.bypassSecurityTrustHtml(this.text); + } + } + return this.cacheRenderedText; + } +} + +export class NgxSelectOptGroup implements INgxSelectOptGroup, INgxSelectOptionBase { + public readonly type: TNgxSelectOptionType = 'optgroup'; + + public optionsFiltered: NgxSelectOption[]; + + constructor(public label: string, + public options: NgxSelectOption[] = []) { + this.filter(() => true); + } + + public filter(callbackFn: (value: NgxSelectOption) => any): void { + this.optionsFiltered = this.options.filter((option: NgxSelectOption) => callbackFn(option)); + } +} + +export type TSelectOption = NgxSelectOptGroup | NgxSelectOption; diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select.component.html b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.html new file mode 100644 index 00000000..86f041b7 --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.html @@ -0,0 +1,115 @@ + diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select.component.scss b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.scss new file mode 100644 index 00000000..8b21b76c --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.scss @@ -0,0 +1,169 @@ +.ngx-select { + &_multiple { + height: auto; + padding: 3px 3px 0 3px; + } + + &_multiple &__search { + background-color: transparent !important; /* To prevent double background when disabled */ + border: none; + outline: none; + box-shadow: none; + height: 1.6666em; + padding: 0; + margin-bottom: 3px; + } + + &__disabled { + background-color: #eceeef; + border-radius: 4px; + position: absolute; + width: 100%; + height: 100%; + z-index: 5; + opacity: 0.6; + top: 0; + left: 0; + cursor: not-allowed; + } + + &__toggle { + outline: 0; + position: relative; + text-align: left !important; /* Instead of center because of .btn */ + + color: #333; + background-color: #fff; + border-color: #ccc; + display: inline-flex; + align-items: stretch; + justify-content: space-between; + + &:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; + } + } + + &__toggle-buttons { + flex-shrink: 0; + display: flex; + align-items: center; + } + + &__toggle-caret { + position: absolute; + height: 10px; + top: 50%; + right: 10px; + margin-top: -2px; + } + + /* Fix caret going into new line in Firefox */ + &__placeholder { + float: left; + max-width: 100%; + text-overflow: ellipsis; + overflow: hidden; + //color: inherit !important; + } + + &__clear { + margin-right: 10px; + padding: 0; + border: none; + } + + &_multiple &__clear { + line-height: initial; + margin-left: 5px; + margin-right: 0; + color: #000; + opacity: .5; + } + + &__clear-icon { + display: inline-block; + font-size: inherit; + cursor: pointer; + position: relative; + width: 1em; + height: .75em; + padding: 0; + + &:before, &:after { + content: ''; + position: absolute; + border-top: 3px solid; + width: 100%; + top: 50%; + left: 0; + margin-top: -1px; + } + + &:before { + transform: rotate(45deg); + } + + &:after { + transform: rotate(-45deg); + } + } + + &__choices { + width: 100%; + height: auto; + max-height: 200px; + overflow-x: hidden; + margin-top: 0; + position: absolute; + } + + &_multiple &__choices { + margin-top: 1px; + } + + &__item { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + white-space: nowrap; + cursor: pointer; + text-decoration: none; + } + + &__item_disabled, &__item_no-found { + cursor: default; + } + + &__item_active { + color: #fff; + outline: 0; + background-color: #428bca; + } + + &__selected-single, &__selected-plural { + display: inline-flex; + align-items: center; + overflow: hidden; + + & span { + overflow: hidden; + text-overflow: ellipsis; + } + } + + &__selected-plural { + outline: 0; + margin: 0 3px 3px 0; + } +} + +/* Fix Bootstrap dropdown position when inside a input-group */ +.input-group > .dropdown { + /* Instead of relative */ + position: static; +} diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select.component.spec.ts b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.spec.ts new file mode 100644 index 00000000..39aa5fb1 --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.spec.ts @@ -0,0 +1,1411 @@ +import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing'; +import { Component, ViewChild } from '@angular/core'; +import { UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { BehaviorSubject } from 'rxjs'; +import { NgxSelectModule } from './ngx-select.module'; +import { NgxSelectComponent } from './ngx-select.component'; +import createSpy = jasmine.createSpy; + +@Component({ + selector: 'ngx-select-test', + standalone:false, + template: ` + + + + + +
+ `, +}) +class TestNgxSelectComponent { + @ViewChild('component1', {static: true}) public component1: NgxSelectComponent; + @ViewChild('component2', {static: true}) public component2: NgxSelectComponent; + @ViewChild('component3', {static: true}) public component3: NgxSelectComponent; + @ViewChild('component4', {static: true}) public component4: NgxSelectComponent; + + public select1 = { + value: null, + defaultValue: [], + + allowClear: false, + placeholder: '', + optionValueField: 'value', + optionTextField: 'text', + optGroupLabelField: 'label', + optGroupOptionsField: 'options', + multiple: false, + noAutoComplete: false, + keepSelectedItems: false, + items: [], + disabled: false, + autoSelectSingleOption: false, + autoClearSearch: false, + showOptionNotFoundForEmptyItems: false, + + doFocus: () => null, + doBlur: () => null, + doOpen: () => null, + doClose: () => null, + doSelect: event => null, + doRemove: event => null, + }; + + public select2 = { + formControl: new UntypedFormControl(), + defaultValue: [], + + allowClear: false, + placeholder: '', + optionValueField: 'value', + optionTextField: 'text', + optGroupLabelField: 'label', + optGroupOptionsField: 'options', + multiple: false, + noAutoComplete: false, + items: [], + + doSelect: event => null, + doRemove: event => null, + }; + + public select3 = { + formControl: new UntypedFormControl(), + items$: new BehaviorSubject([]), + }; + + public select4 = { + formControl: new UntypedFormControl(), + items: [], + appendTo: null, + }; +} + +const items1 = [ + {value: 0, text: 'item zero'}, + {value: 1, text: 'item one'}, + {value: 2, text: 'item two'}, + {value: 3, text: 'item three'}, + {value: 4, text: 'item four'}, +]; +const items2 = [ + {uuid: 'uuid-6', name: 'v6'}, + {uuid: 'uuid-7', name: 'v7'}, + {uuid: 'uuid-8', name: 'v8'}, + {uuid: 'uuid-9', name: 'v9'}, + {uuid: 'uuid-10', name: 'v10'}, +]; + +const createKeyboardEvent = (typeArg: string, code: string) => { + const customEvent = new CustomEvent(typeArg, {bubbles: true, cancelable: true}); + (customEvent as any).code = code; + // customEvent['key'] = key; + return customEvent; +}; + +const createKeyupEvent = (key: string) => { + return new KeyboardEvent('keyup', { + key, + }); +}; + +const createMouseEvent = (typeArg: string, clientX: number, clientY: number) => { + return new MouseEvent(typeArg, {bubbles: true, cancelable: true, clientX, clientY}); +}; + +describe('NgxSelectComponent', () => { + let fixture: ComponentFixture; + const querySelector = (element: HTMLElement, selector: string) => element.querySelector(selector) as HTMLElement; + const querySelectorAll = (element: HTMLElement, selector: string) => element.querySelectorAll(selector) as NodeListOf; + + const el = (id: number) => querySelector(fixture.debugElement.nativeElement, `#sel-${id} .ngx-select`); + const formControl = (id: number) => querySelector(el(id), '.ngx-select__toggle, .ngx-select__search'); + const formControlInput = (id: number) => querySelector(el(id), '.ngx-select__search') as HTMLInputElement; + const selectChoicesContainer = (id: number) => querySelector(el(id), '.ngx-select__choices'); + const selectItemList = (id: number) => querySelectorAll(fixture.debugElement.nativeElement, `#sel-${id} .ngx-select.open .ngx-select__item`); + const selectItemActive = (id: number) => querySelector(el(id), '.ngx-select__item_active'); + const selectItemNoFound = (id: number) => querySelector(el(id), '.ngx-select__item_no-found'); + const selectedItem = (id: number) => querySelector(el(id), '.ngx-select__selected-single'); // select multiple = false + const selectedItems = (id: number) => querySelectorAll(el(id), '.ngx-select__selected-plural'); // select multiple = true + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [FormsModule, ReactiveFormsModule, NgxSelectModule], + declarations: [TestNgxSelectComponent], + }).compileComponents(); + })); + + beforeEach(waitForAsync(() => { + fixture = TestBed.createComponent(TestNgxSelectComponent); + fixture.detectChanges(); + // tick(200); + })); + + it('should create', () => { + expect(fixture).toBeTruthy(); + expect(fixture.componentInstance.component1).toBeTruthy(); + expect(fixture.componentInstance.component2).toBeTruthy(); + }); + + it('should create with closed menu', () => { + expect(selectItemList(1).length).toBe(0); + expect(selectItemList(2).length).toBe(0); + }); + + it('should NOT show "no found message" for empty items by default', () => { + fixture.componentInstance.select1.items = []; + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + expect(selectItemNoFound(2)).toBeTruthy(); + expect(selectChoicesContainer(2).classList.contains('show')).toBeFalsy(); + }); + + it('should show "no found message" for empty items', () => { + fixture.componentInstance.select1.showOptionNotFoundForEmptyItems = true; + fixture.componentInstance.select1.items = []; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemNoFound(1)).toBeTruthy(); + expect(selectChoicesContainer(1).classList.contains('show')).toBeTruthy(); + }); + + describe('should have value', () => { + beforeEach(() => { + fixture = TestBed.createComponent(TestNgxSelectComponent); + }); + + it('equal empty by ngModel', () => { + expect(fixture.componentInstance.select1.value).toEqual(null); + }); + + it('equal empty by FormControl', () => { + expect(fixture.componentInstance.select2.formControl.value).toEqual(null); + }); + + it('equal default value by FormControl', () => { + const valueChanged = createSpy('valueChanged'); + fixture.componentInstance.select2.formControl.valueChanges.subscribe(v => valueChanged(v)); + + fixture.componentInstance.select2.defaultValue = 3 as any; + fixture.componentInstance.select2.multiple = false; + fixture.componentInstance.select2.items = items1; + fixture.componentInstance.select2.formControl.setValue(null, {emitEvent: false}); + fixture.detectChanges(); + expect(fixture.componentInstance.select2.formControl.value).toEqual(3); + expect(valueChanged).toHaveBeenCalledTimes(1); + }); + + it('equal default value by ngModel', () => { + fixture.detectChanges(); + fixture.componentInstance.select1.defaultValue = 3 as any; + fixture.componentInstance.select1.multiple = false; + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.value = null; + + fixture.detectChanges(false); + expect(fixture.componentInstance.select1.value).toEqual(3); + }); + }); + + describe('should change value by change defaultValue', () => { + let valueChanged; + + beforeEach(() => { + fixture = TestBed.createComponent(TestNgxSelectComponent); + fixture.componentInstance.select2.items = items1; + + valueChanged = createSpy('valueChanged'); + fixture.componentInstance.select2.formControl.valueChanges.subscribe(v => valueChanged(v)); + + fixture.detectChanges(); + }); + + it('with not multiple', () => { + expect(fixture.componentInstance.select2.formControl.value).toEqual(null); + + fixture.componentInstance.select2.defaultValue = [3]; + fixture.detectChanges(); + expect(fixture.componentInstance.select2.formControl.value).toEqual(3); + + fixture.componentInstance.select2.formControl.setValue(2); + fixture.detectChanges(); + expect(fixture.componentInstance.select2.formControl.value).toEqual(2); + + fixture.componentInstance.select2.defaultValue = 1 as any; + fixture.detectChanges(); + expect(fixture.componentInstance.select2.formControl.value).toEqual(2); + + fixture.componentInstance.select2.defaultValue = 2 as any; + fixture.detectChanges(); + expect(fixture.componentInstance.select2.formControl.value).toEqual(2); + + fixture.componentInstance.select2.defaultValue = [4]; + fixture.detectChanges(); + expect(fixture.componentInstance.select2.formControl.value).toEqual(2); + }); + + afterEach(() => { + expect(valueChanged).toHaveBeenCalledTimes(2); + }); + }); + + describe('should return values from items only when items is not contain some values', () => { + const createItems = (values: number[]) => values.map(v => { + return {value: v, text: 'val ' + v}; + }); + + it('by ngModel', fakeAsync(() => { + fixture.componentInstance.select1.multiple = true; + fixture.componentInstance.select1.items = createItems([1, 2, 3, 4, 5]); + fixture.componentInstance.select1.value = [1, 3, 4]; + fixture.detectChanges(); + tick(); + + expect(fixture.componentInstance.select1.value).toEqual([1, 3, 4]); + + fixture.componentInstance.select1.items = createItems([1, 2, 4, 5, 6]); + fixture.detectChanges(false); + tick(); + + expect(fixture.componentInstance.select1.value).toEqual([1, 4]); + })); + + it('by FormControl', fakeAsync(() => { + fixture.componentInstance.select2.multiple = true; + fixture.detectChanges(); + fixture.componentInstance.select2.items = createItems([1, 2, 3, 4, 5]); + fixture.componentInstance.select2.formControl.setValue([1, 3, 4]); + fixture.detectChanges(); + tick(); + + expect(fixture.componentInstance.select2.formControl.value).toEqual([1, 3, 4]); + + fixture.componentInstance.select2.items = createItems([1, 2, 4, 5, 6]); + fixture.detectChanges(); + tick(); + + expect(fixture.componentInstance.select2.formControl.value).toEqual([1, 4]); + })); + }); + + describe('should create with default property', () => { + it('"allowClear" should be false', () => { + expect(fixture.componentInstance.component2.allowClear).toBeFalsy(); + }); + + it('"placeholder" should be empty string', () => { + expect(fixture.componentInstance.component2.placeholder).toEqual(''); + }); + + it('"optionValueField" should be "id"', () => { + expect(fixture.componentInstance.component2.optionValueField).toBe('value'); + }); + + it('"optionTextField" should be "text"', () => { + expect(fixture.componentInstance.component2.optionTextField).toBe('text'); + }); + + it('"optGroupLabelField" should be "children"', () => { + expect(fixture.componentInstance.component2.optGroupLabelField).toBe('label'); + }); + + it('"optGroupOptionsField" should be "children"', () => { + expect(fixture.componentInstance.component2.optGroupOptionsField).toBe('options'); + }); + + it('"multiple" should be false', () => { + expect(fixture.componentInstance.component2.multiple).toBeFalsy(); + }); + + it('"noAutoComplete" should be false', () => { + expect(fixture.componentInstance.component2.noAutoComplete).toBeFalsy(); + }); + + it('"disabled" should be false', () => { + expect(fixture.componentInstance.component2.disabled).toBeFalsy(); + }); + }); + + describe('property noAutoComplete should', () => { + beforeEach(() => { + fixture.componentInstance.select1.noAutoComplete = true; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + }); + + it('hide an input control', () => { + expect(formControlInput(1)).toBeFalsy(); + }); + }); + + describe('menu should be opened', () => { + beforeEach(fakeAsync(() => { + fixture.componentInstance.component1.items = items1; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + })); + + it('by click', () => { + // expect(fixture.componentInstance.component1.itemObjects.length).toBeGreaterThan(0); + expect(selectItemList(1).length).toBeGreaterThan(0); + }); + }); + + describe('menu should be closed', () => { + beforeEach(() => { + fixture.componentInstance.component1.items = items1; + fixture.componentInstance.component2.items = items1; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBeGreaterThan(0); + }); + + it('by off click', () => { + fixture.debugElement.nativeElement.click(); + }); + + it('by select item', () => { + selectItemList(1)[0].click(); + }); + + it('by press button Escape', () => { + formControl(1).dispatchEvent(createKeyboardEvent('keyup', 'Escape')); + }); + + it('by open other menu', () => { + formControl(2).click(); + }); + + afterEach(() => { + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(0); + }); + }); + + describe('after open menu with no selected item', () => { + beforeEach(() => { + fixture.componentInstance.component1.items = items1; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBeGreaterThan(0); + }); + + it('first item is active', () => { + expect(selectItemActive(1).innerHTML).toContain('item zero'); + }); + }); + + describe('menu should have navigation and active item should be visible', () => { + beforeEach(() => { + const items: { id: number; text: string }[] = []; + for (let i = 1; i <= 100; i++) { + items.push({id: i, text: 'item ' + i}); + } + fixture.componentInstance.component1.items = items; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBeGreaterThan(0); + }); + + it('activate last item by press the button arrow right', () => { + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowRight')); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 100'); + }); + + it('activate previous item by press the button arrow up', () => { + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowRight')); + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowUp')); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 99'); + }); + + it('activate first item by press the button arrow left', () => { + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowRight')); + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowLeft')); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 1'); + }); + + it('activate next item by press the button arrow down', () => { + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 2'); + }); + + it('should activate items by mouse enter/move', () => { + selectItemList(1)[10].dispatchEvent(createMouseEvent('mouseenter', 5, 4)); + selectItemList(1)[10].dispatchEvent(createMouseEvent('mousemove', 5, 4)); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 11'); + + selectItemList(1)[9].dispatchEvent(createMouseEvent('mouseenter', 5, 4)); + selectItemList(1)[9].dispatchEvent(createMouseEvent('mousemove', 5, 4)); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 10'); + }); + + it('should not activate items by mouse enter/move', () => { + fixture.componentInstance.component1.autoActiveOnMouseEnter = false; + + selectItemList(1)[10].dispatchEvent(createMouseEvent('mouseenter', 5, 4)); + selectItemList(1)[10].dispatchEvent(createMouseEvent('mousemove', 5, 4)); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).not.toContain('item 11'); + + selectItemList(1)[9].dispatchEvent(createMouseEvent('mouseenter', 5, 4)); + selectItemList(1)[9].dispatchEvent(createMouseEvent('mousemove', 5, 4)); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).not.toContain('item 10'); + }); + + it('should keep active element when dynamically add/remove items', () => { + selectItemList(1)[10].dispatchEvent(createMouseEvent('mouseenter', 5, 4)); + selectItemList(1)[10].dispatchEvent(createMouseEvent('mousemove', 5, 4)); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 11'); + expect(selectItemList(1).length).toBe(100); + + fixture.componentInstance.component1.items.length = 12; + + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 11'); + expect(selectItemList(1).length).toBe(12); + selectItemList(1)[10].dispatchEvent(createMouseEvent('mousemove', 6, 4)); + expect(selectItemActive(1).innerHTML).toContain('item 11'); + expect(selectItemList(1).length).toBe(12); + + const items = fixture.componentInstance.component1.items; + fixture.componentInstance.component1.items = items.concat([ + {id: items.length + 1, text: 'item ' + items.length + 1}, + {id: items.length + 2, text: 'item ' + items.length + 2}, + {id: items.length + 3, text: 'item ' + items.length + 3}, + {id: items.length + 4, text: 'item ' + items.length + 4}, + ]); + + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain('item 11'); + expect(selectItemList(1).length).toBe(16); + selectItemList(1)[10].dispatchEvent(createMouseEvent('mousemove', 7, 4)); + expect(selectItemActive(1).innerHTML).toContain('item 11'); + expect(selectItemList(1).length).toBe(16); + }); + + afterEach(() => { + const viewPortHeight = selectChoicesContainer(1).clientHeight; + const scrollTop = selectChoicesContainer(1).scrollTop; + const activeItemTop = selectItemActive(1).offsetTop; + expect((scrollTop <= activeItemTop) && (activeItemTop <= scrollTop + viewPortHeight)).toBeTruthy(); + }); + }); + + describe('test activating menu items for async items', () => { + beforeEach(() => { + const items: { id: number; text: string }[] = []; + for (let i = 1; i <= 100; i++) { + items.push({id: i, text: 'item ' + i}); + } + fixture.componentInstance.select3.items$.next(items); + fixture.detectChanges(); + formControl(3).click(); + fixture.detectChanges(); + expect(selectItemList(3).length).toBeGreaterThan(0); + }); + + it('should keep active element when dynamically add/remove items', () => { + selectItemList(3)[10].dispatchEvent(createMouseEvent('mouseenter', 5, 4)); + selectItemList(3)[10].dispatchEvent(createMouseEvent('mousemove', 5, 4)); + fixture.detectChanges(); + expect(selectItemList(3).length).toBe(100); + expect(selectItemActive(3).innerHTML).toContain('item 11'); + + { + const items = fixture.componentInstance.select3.items$.value; + items.length = 12; + fixture.componentInstance.select3.items$.next(items); + } + + fixture.detectChanges(); + expect(selectItemList(3).length).toBe(12); + expect(selectItemActive(3).innerHTML).toContain('item 11'); + selectItemList(3)[10].dispatchEvent(createMouseEvent('mousemove', 6, 4)); + fixture.detectChanges(); + expect(selectItemList(3).length).toBe(12); + expect(selectItemActive(3).innerHTML).toContain('item 11'); + + { + const items = fixture.componentInstance.select3.items$.value; + fixture.componentInstance.select3.items$.next(items.concat([ + {id: items.length + 1, text: 'item ' + items.length + 1}, + {id: items.length + 2, text: 'item ' + items.length + 2}, + ])); + } + + fixture.detectChanges(); + expect(selectItemList(3).length).toBe(14); + expect(selectItemActive(3).innerHTML).toContain('item 11'); + selectItemList(3)[10].dispatchEvent(createMouseEvent('mousemove', 7, 4)); + fixture.detectChanges(); + expect(selectItemList(3).length).toBe(14); + expect(selectItemActive(3).innerHTML).toContain('item 11'); + }); + + afterEach(() => { + const viewPortHeight = selectChoicesContainer(3).clientHeight; + const scrollTop = selectChoicesContainer(3).scrollTop; + const activeItemTop = selectItemActive(3).offsetTop; + expect((scrollTop <= activeItemTop) && (activeItemTop <= scrollTop + viewPortHeight)).toBeTruthy(); + }); + }); + + describe('should select', () => { + describe('a single item with ngModel', () => { + beforeEach(() => { + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.multiple = false; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBeGreaterThan(0); + }); + + it('by click on choice item', () => { + selectItemList(1)[1].click(); + }); + + it('by press the key Enter on a choice item', () => { + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'Enter')); + }); + + afterEach(() => { + fixture.detectChanges(); + expect(selectedItem(1).innerHTML).toContain('item one'); + expect(fixture.componentInstance.select1.value).toEqual(1); + }); + }); + + describe('a single item with FormControl', () => { + beforeEach(() => { + fixture.componentInstance.select2.items = items1; + fixture.componentInstance.select2.multiple = false; + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + expect(selectItemList(2).length).toBeGreaterThan(0); + }); + + it('by click on choice item', () => { + selectItemList(2)[1].click(); + }); + + it('by press the key Enter on a choice item', () => { + formControlInput(2).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(2).dispatchEvent(createKeyboardEvent('keydown', 'Enter')); + }); + + afterEach(() => { + fixture.detectChanges(); + expect(selectedItem(2).innerHTML).toContain('item one'); + expect(fixture.componentInstance.select2.formControl.value).toEqual(1); + }); + }); + + describe('multiple items with ngModel', () => { + beforeEach(() => { + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.multiple = true; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBeGreaterThan(0); + }); + + it('by clicking on choice items', () => { + selectItemList(1)[1].click(); + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + selectItemList(1)[2].click(); + }); + + it('by press the key Enter on choice items', () => { + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'Enter')); + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(1).dispatchEvent(createKeyboardEvent('keydown', 'Enter')); + }); + + afterEach(() => { + fixture.detectChanges(); + expect(selectedItems(1).length).toBe(2); + expect(selectedItems(1)[0].querySelector(' span').innerHTML).toBe('item one'); + expect(selectedItems(1)[1].querySelector(' span').innerHTML).toBe('item three'); + expect(fixture.componentInstance.select1.value).toEqual([1, 3]); + }); + }); + + describe('multiple items with FormControl', () => { + beforeEach(() => { + fixture.componentInstance.select2.items = items1; + fixture.componentInstance.select2.multiple = true; + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + expect(selectItemList(2).length).toBeGreaterThan(0); + }); + + it('by clicking on choice items', () => { + selectItemList(2)[1].click(); + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + selectItemList(2)[2].click(); + }); + + it('by press the key Enter on choice items', () => { + formControlInput(2).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(2).dispatchEvent(createKeyboardEvent('keydown', 'Enter')); + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + formControlInput(2).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(2).dispatchEvent(createKeyboardEvent('keydown', 'ArrowDown')); + formControlInput(2).dispatchEvent(createKeyboardEvent('keydown', 'Enter')); + }); + + afterEach(() => { + fixture.detectChanges(); + expect(selectedItems(2).length).toBe(2); + expect(selectedItems(2)[0].querySelector(' span').innerHTML).toBe('item one'); + expect(selectedItems(2)[1].querySelector(' span').innerHTML).toBe('item three'); + expect(fixture.componentInstance.select2.formControl.value).toEqual([1, 3]); + }); + }); + }); + + describe('should remove selected', () => { + let doSelect; + let doRemove; + + describe('from select with ngModel', () => { + beforeEach(() => { + doSelect = spyOn(fixture.componentInstance.select1, 'doSelect'); + doRemove = spyOn(fixture.componentInstance.select1, 'doRemove'); + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.allowClear = true; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + selectItemList(1)[0].click(); + fixture.detectChanges(); + expect(selectedItem(1).innerHTML).toContain('item zero'); + expect(fixture.componentInstance.select1.value).toEqual(0); + }); + + it('a single item', () => { + querySelector(el(1), '.ngx-select__clear').click(); + fixture.detectChanges(); + expect(selectedItem(1)).toBeFalsy(); + expect(fixture.componentInstance.select1.value).toEqual(null); + }); + + it('multiple items', () => { + fixture.componentInstance.select1.multiple = true; + fixture.detectChanges(); + querySelector(selectedItems(1)[0], '.ngx-select__clear').click(); + fixture.detectChanges(); + expect(selectedItems(1).length).toBe(0); + expect(fixture.componentInstance.select1.value).toEqual([]); + }); + + afterEach(() => { + expect(doSelect).toHaveBeenCalledTimes(1); + expect(doSelect).toHaveBeenCalledWith(0); + expect(doRemove).toHaveBeenCalledTimes(1); + expect(doRemove).toHaveBeenCalledWith(0); + }); + }); + + describe('from select with FormControl', () => { + beforeEach(() => { + doSelect = spyOn(fixture.componentInstance.select2, 'doSelect'); + doRemove = spyOn(fixture.componentInstance.select2, 'doRemove'); + fixture.componentInstance.select2.items = items1; + fixture.componentInstance.select2.allowClear = true; + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + selectItemList(2)[0].click(); + fixture.detectChanges(); + expect(selectedItem(2).innerHTML).toContain('item zero'); + expect(fixture.componentInstance.select2.formControl.value).toEqual(0); + }); + + it('a single item', () => { + querySelector(el(2), '.ngx-select__clear').click(); + fixture.detectChanges(); + expect(selectedItem(2)).toBeFalsy(); + expect(fixture.componentInstance.select2.formControl.value).toEqual(null); + }); + + it('multiple items', () => { + fixture.componentInstance.select2.multiple = true; + fixture.detectChanges(); + querySelector(selectedItems(2)[0], '.ngx-select__clear').click(); + fixture.detectChanges(); + expect(selectedItems(2).length).toBe(0); + expect(fixture.componentInstance.select2.formControl.value).toEqual([]); + }); + + afterEach(() => { + expect(doSelect).toHaveBeenCalledTimes(1); + expect(doSelect).toHaveBeenCalledWith(0); + expect(doRemove).toHaveBeenCalledTimes(1); + expect(doRemove).toHaveBeenCalledWith(0); + }); + }); + + it('should not remove items on `allowClear=false` for non multiselect', () => { + // issue: https://github.com/optimistex/ngx-select-ex/issues/191 + + doRemove = spyOn(fixture.componentInstance.select2, 'doRemove'); + fixture.componentInstance.select2.items = items1; + fixture.componentInstance.select2.allowClear = false; + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + selectItemList(2)[0].click(); + fixture.detectChanges(); + expect(selectedItem(2).innerHTML).toContain('item zero'); + expect(fixture.componentInstance.select2.formControl.value).toEqual(0); + + el(2).dispatchEvent(createKeyboardEvent('keydown', 'Delete')); + fixture.detectChanges(); + expect(selectedItem(2).innerHTML).toContain('item zero'); + expect(fixture.componentInstance.select2.formControl.value).toEqual(0); + + expect(doRemove).not.toHaveBeenCalled(); + }); + }); + + describe('after click', () => { + beforeEach(() => { + fixture.componentInstance.select1.items = items1; + fixture.detectChanges(); + }); + + it('single select should focus the input field', () => { + fixture.componentInstance.select1.multiple = false; + }); + + it('multiple select should focus the input field', () => { + fixture.componentInstance.select1.multiple = true; + }); + + afterEach(() => { + formControl(1).click(); + fixture.detectChanges(); + fixture.detectChanges(); + expect(formControlInput(1)).toBeTruthy(); + expect(formControlInput(1) as Element).toBe(document.activeElement); + }); + }); + + describe('choice items should be filtered by input text', () => { + const items = ['Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest']; + + it('with preload items', () => { + fixture.componentInstance.select1.items = items; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + formControlInput(1).value = 'br'; + formControlInput(1).dispatchEvent(createKeyupEvent('')); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(3); + expect(selectItemList(1)[0]).toEqual(selectItemActive(1)); + }); + + it('with lazy load items', () => { + fixture.componentInstance.select1.items = []; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + formControlInput(1).value = 'br'; + formControlInput(1).dispatchEvent(createKeyupEvent('')); + fixture.detectChanges(); + fixture.componentInstance.select1.items = items; + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(3); + }); + + it('with items contained numbers for texts', () => { + fixture.componentInstance.select1.items = [40, 50, 65, 70, 80]; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + formControlInput(1).value = '5'; + formControlInput(1).dispatchEvent(createKeyupEvent('')); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(2); + }); + }); + + describe('test autoClearSearch', () => { + beforeEach(() => { + fixture.componentInstance.select1.multiple = true; + fixture.componentInstance.select1.items = ['Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest']; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + formControlInput(1).value = 'br'; + formControlInput(1).dispatchEvent(createKeyupEvent('')); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(3); + }); + + it('should not clear input after select', () => { + selectItemList(1)[0].click(); + fixture.detectChanges(); + expect(formControlInput(1).value).toBe('br'); + }); + + it('should clear input after select', () => { + fixture.componentInstance.select1.autoClearSearch = true; + fixture.detectChanges(); + selectItemList(1)[0].click(); + fixture.detectChanges(); + expect(formControlInput(1).value).toEqual(''); + }); + }); + + describe('should be disabled', () => { + beforeEach(() => { + fixture.componentInstance.select1.disabled = true; + fixture.componentInstance.select2.formControl.disable(); + fixture.detectChanges(); + }); + + it('single select by attribute', () => { + formControl(1).click(); + fixture.detectChanges(); + expect(formControlInput(1)).toBeFalsy(); + expect(selectItemList(1).length).toBe(0); + }); + + it('multiple select by attribute', () => { + fixture.componentInstance.select1.multiple = true; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(formControlInput(1)).toBeTruthy(); + expect(formControlInput(1).disabled).toBeTruthy(); + expect(selectItemList(1).length).toBe(0); + }); + + it('single select by FormControl.disable()', () => { + formControl(2).click(); + fixture.detectChanges(); + expect(formControlInput(2)).toBeFalsy(); + expect(selectItemList(2).length).toBe(0); + }); + + it('multiple select by FormControl.disable()', () => { + fixture.componentInstance.select2.multiple = true; + fixture.detectChanges(); + formControl(2).click(); + fixture.detectChanges(); + expect(formControlInput(2)).toBeTruthy(); + expect(formControlInput(2).disabled).toBeTruthy(); + expect(selectItemList(2).length).toBe(0); + }); + }); + + describe('should setup items from array of', () => { + it('objects with default id & text fields', () => { + fixture.componentInstance.select1.items = items1; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(items1.length); + }); + + it('objects without default id & text fields ', () => { + fixture.componentInstance.select1.optionTextField = 'name'; + fixture.componentInstance.select1.items = items2; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(items2.length); + }); + + it('objects with mixed id & text fields', () => { + fixture.componentInstance.select1.optionValueField = 'id'; + fixture.componentInstance.select1.items = [ + {id: 0, text: 'i0'}, {xId: 1, text: 'i1'}, {id: 2, xText: 'i2'}, + {xId: 3, xText: 'i3'}, {id: 4, text: 'i4'}, + ]; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(4); + expect(selectItemList(1)[0].innerHTML).toContain('i0'); + expect(selectItemList(1)[1].innerHTML).toContain('i1'); + }); + + it('objects with children fields by default field names', () => { + fixture.componentInstance.select1.items = [ + {label: '1', options: [{value: 11, text: '11'}]}, + {label: '2', options: [{value: 21, text: '21'}, {value: 22, text: '22'}]}, + ]; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(3); + }); + + it('objects with children fields by not default field names', () => { + fixture.componentInstance.select1.optGroupLabelField = 'xText'; + fixture.componentInstance.select1.optGroupOptionsField = 'xChildren'; + fixture.componentInstance.select1.optionValueField = 'xId'; + fixture.componentInstance.select1.optionTextField = 'xText'; + fixture.componentInstance.select1.items = [ + {xText: '1', xChildren: {xId: 11, xText: '11'}}, + {xText: '2', xChildren: [{xId: 21, xText: '21'}, {xId: 22, xText: '22'}]}, + ]; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(3); + }); + + it('strings', () => { + fixture.componentInstance.select1.items = ['one', 'two', 'three']; + fixture.detectChanges(); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemList(1).length).toBe(3); + }); + }); + + describe('should set selected items ', () => { + describe('for single select with preload items', () => { + beforeEach(fakeAsync(() => { + fixture.componentInstance.select1.multiple = false; + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.value = items1[0].value; + + fixture.componentInstance.select2.multiple = false; + fixture.componentInstance.select2.items = items1; + fixture.componentInstance.select2.formControl.setValue(items1[0].value); + + fixture.detectChanges(); + tick(); + fixture.detectChanges(); + })); + + it('by a ngModel attribute and selected item must be active in menu', () => { + expect(selectedItem(1).innerHTML).toContain(items1[0].text); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain(items1[0].text); + }); + + it('by a FormControl attribute and selected item must be active in menu', () => { + expect(selectedItem(2).innerHTML).toContain(items1[0].text); + formControl(2).click(); + fixture.detectChanges(); + expect(selectItemActive(2).innerHTML).toContain(items1[0].text); + }); + }); + + describe('for multiple select with preload items', () => { + beforeEach(fakeAsync(() => { + fixture.componentInstance.select1.multiple = true; + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.value = [items1[0].value, items1[1].value]; + + fixture.componentInstance.select2.multiple = true; + fixture.componentInstance.select2.items = items1; + fixture.componentInstance.select2.formControl.setValue([items1[0].value, items1[1].value]); + + fixture.detectChanges(); + tick(); + fixture.detectChanges(); + })); + + it('by a ngModel attribute', () => { + expect(selectedItems(1)[0].querySelector('span').innerHTML).toBe(items1[0].text); + expect(selectedItems(1)[1].querySelector('span').innerHTML).toBe(items1[1].text); + }); + + it('by a FormControl attribute', () => { + expect(selectedItems(2)[0].querySelector('span').innerHTML).toBe(items1[0].text); + expect(selectedItems(2)[1].querySelector('span').innerHTML).toBe(items1[1].text); + }); + }); + + describe('for single select with lazy loading items', () => { + beforeEach(fakeAsync(() => { + const lazyItems = []; + + fixture.componentInstance.select1.multiple = false; + fixture.componentInstance.select1.items = lazyItems; + fixture.componentInstance.select1.value = [items1[1].value]; + + fixture.componentInstance.select2.multiple = false; + fixture.componentInstance.select2.items = lazyItems; + fixture.componentInstance.select2.formControl.setValue([items1[1].value]); + + fixture.detectChanges(); + tick(); + + setTimeout(() => lazyItems.push(...items1), 2000); + tick(2100); + fixture.detectChanges(); + tick(); + fixture.detectChanges(); + })); + + it('by a ngModel attribute and selected item must be active in menu', () => { + expect(selectedItem(1).innerHTML).toContain(items1[1].text); + formControl(1).click(); + fixture.detectChanges(); + expect(selectItemActive(1).innerHTML).toContain(items1[1].text); + }); + + it('by a FormControl attribute and selected item must be active in menu', () => { + expect(selectedItem(2).innerHTML).toContain(items1[1].text); + formControl(2).click(); + fixture.detectChanges(); + expect(selectItemActive(2).innerHTML).toContain(items1[1].text); + }); + }); + + describe('for multiple select with lazy loading items', () => { + beforeEach(fakeAsync(() => { + const lazyItems = []; + + fixture.componentInstance.select1.multiple = true; + fixture.componentInstance.select1.items = lazyItems; + fixture.componentInstance.select1.value = [items1[0].value, items1[1].value]; + + fixture.componentInstance.select2.multiple = true; + fixture.componentInstance.select2.items = lazyItems; + fixture.componentInstance.select2.formControl.setValue([items1[0].value, items1[1].value]); + + fixture.detectChanges(); + tick(); + + setTimeout(() => items1.forEach(item => lazyItems.push(item)), 2000); + tick(2100); + fixture.detectChanges(); + tick(); + })); + + it('by a ngModel attribute', () => { + expect(selectedItems(1)[0].querySelector('span').innerHTML).toBe(items1[0].text); + expect(selectedItems(1)[1].querySelector('span').innerHTML).toBe(items1[1].text); + }); + + it('by a FormControl attribute', () => { + expect(selectedItems(2)[0].querySelector('span').innerHTML).toBe(items1[0].text); + expect(selectedItems(2)[1].querySelector('span').innerHTML).toBe(items1[1].text); + }); + }); + }); + + describe('should not emit value after lazy load items', () => { + const valueChanged = createSpy('valueChanged'); + let lazyItems: any[] = []; + + beforeEach(fakeAsync(() => { + fixture.componentInstance.select2.items = lazyItems; + fixture.componentInstance.select2.formControl.valueChanges.subscribe(v => valueChanged(v)); + fixture.detectChanges(); + tick(); + + fixture.componentInstance.select2.formControl.setValue(3); + fixture.detectChanges(); + tick(); + })); + + it('for single mode', fakeAsync(() => { + lazyItems = items1; + fixture.detectChanges(); + tick(); + + expect(valueChanged).toHaveBeenCalledTimes(1); + expect(valueChanged).toHaveBeenCalledWith(3); + })); + }); + + describe('should emit events focus & blur', () => { + let doFocus; + let doBlur; + let doOpen; + let doClose; + + beforeEach(() => { + doFocus = spyOn(fixture.componentInstance.select1, 'doFocus'); + doBlur = spyOn(fixture.componentInstance.select1, 'doBlur'); + doOpen = spyOn(fixture.componentInstance.select1, 'doOpen'); + doClose = spyOn(fixture.componentInstance.select1, 'doClose'); + fixture.componentInstance.select1.items = items1; + fixture.detectChanges(); + }); + + it('for single select', () => { + fixture.componentInstance.select1.multiple = false; + }); + + it('for multiple select', () => { + fixture.componentInstance.select1.multiple = true; + }); + + afterEach(() => { + expect(doFocus).toHaveBeenCalledTimes(0); + expect(doBlur).toHaveBeenCalledTimes(0); + expect(doOpen).toHaveBeenCalledTimes(0); + expect(doClose).toHaveBeenCalledTimes(0); + formControl(1).click(); + fixture.detectChanges(); + fixture.detectChanges(); + expect(doFocus).toHaveBeenCalledTimes(1); + expect(doOpen).toHaveBeenCalledTimes(1); + fixture.debugElement.nativeElement.click(); + fixture.detectChanges(); + expect(doBlur).toHaveBeenCalledTimes(1); + expect(doClose).toHaveBeenCalledTimes(1); + }); + }); + + describe('should auto selecting a single option', () => { + const itemList = [{value: 1, text: 't1', disabled: true}, {value: 2, text: 't2'}]; + + beforeEach(() => { + fixture.componentInstance.select1.autoSelectSingleOption = true; + }); + + it('for single select', () => { + fixture.componentInstance.select1.multiple = false; + fixture.componentInstance.select1.items = itemList; + fixture.detectChanges(false); + expect(fixture.componentInstance.select1.value).toBe(2); + }); + + it('for multiple select', () => { + fixture.componentInstance.select1.multiple = true; + fixture.componentInstance.select1.items = itemList; + fixture.detectChanges(false); + expect(fixture.componentInstance.select1.value).toEqual([2]); + }); + }); + + describe('should not auto selecting a disable single option', () => { + const itemList = [{value: 1, text: 't1', disabled: true}]; + + beforeEach(() => { + fixture.componentInstance.select1.autoSelectSingleOption = true; + }); + + it('for single select when single option does not exists', () => { + fixture.componentInstance.select1.multiple = false; + fixture.componentInstance.select1.items = itemList; + fixture.detectChanges(); + expect(fixture.componentInstance.select1.value).toBeNull(); + }); + + it('for multiple select when single option does not exists', () => { + fixture.componentInstance.select1.multiple = true; + fixture.componentInstance.select1.items = itemList; + fixture.detectChanges(); + expect(fixture.componentInstance.select1.value).toBeNull(); + }); + }); + + describe('the selected item should be kept on change items', () => { + beforeEach(fakeAsync(() => { + fixture.componentInstance.select1.keepSelectedItems = true; + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.value = 2; + fixture.detectChanges(); + tick(); + fixture.detectChanges(); + + expect(selectedItem(1).innerHTML).toContain('item two'); + expect(fixture.componentInstance.select1.value).toEqual(2); + + formControl(1).click(); + fixture.detectChanges(); + tick(); + + expect(selectItemList(1).length).toBeGreaterThan(0); + + selectItemList(1)[1].click(); + fixture.detectChanges(); + tick(); + })); + + it('for single option', fakeAsync(() => { + fixture.componentInstance.select1.multiple = false; + fixture.componentInstance.select1.items = items2; + fixture.detectChanges(); + tick(); + + expect(selectedItem(1).innerHTML).toContain('item one'); + expect(fixture.componentInstance.select1.value).toEqual(1); + })); + + it('for multiple options', fakeAsync(() => { + fixture.componentInstance.select1.multiple = true; + fixture.componentInstance.select1.items = items2; + fixture.detectChanges(); + tick(); + + expect(selectedItems(1)[0].querySelector('span').innerHTML).toContain('item one'); + expect(fixture.componentInstance.select1.value).toEqual(1); + })); + }); + + it('For the multiple mode the selection order has to be kept', fakeAsync(() => { + fixture.componentInstance.select1.items = items1; + fixture.componentInstance.select1.multiple = true; + fixture.detectChanges(); + tick(); + + formControl(1).click(); + fixture.detectChanges(); + selectItemList(1)[2].click(); + fixture.detectChanges(); + tick(); + + expect(fixture.componentInstance.select1.value).toEqual([2]); + + formControl(1).click(); + fixture.detectChanges(); + selectItemList(1)[1].click(); + fixture.detectChanges(); + tick(); + + expect(fixture.componentInstance.select1.value).toEqual([2, 1]); + })); + + it('should manage multiple changes of the item list', fakeAsync(() => { + const valueKeeper: number[] = []; + fixture.componentInstance.select3.formControl.valueChanges.subscribe(value => valueKeeper.push(value)); + + fixture.detectChanges(); + tick(1000); + fixture.detectChanges(); + + // Set 1 + fixture.componentInstance.select3.items$.next([{id: 1, text: 'item 1'}, {id: 2, text: 'item 2'}, {id: 3, text: 'item 3'}]); + fixture.componentInstance.select3.formControl.setValue(2); + fixture.detectChanges(); + tick(1000); + fixture.detectChanges(); + + expect(JSON.stringify(valueKeeper)).toBe('[2]'); + expect(fixture.componentInstance.select3.formControl.value).toBe(2); + expect(selectedItem(3).innerHTML).toContain('item 2'); + + // Set 2 + fixture.componentInstance.select3.items$.next([{id: 4, text: 'item 4'}, {id: 5, text: 'item 5'}, {id: 6, text: 'item 6'}]); + fixture.componentInstance.select3.formControl.setValue(4); + fixture.detectChanges(); + tick(1000); + fixture.detectChanges(); + + expect(JSON.stringify(valueKeeper)).toBe('[2,4]'); + expect(fixture.componentInstance.select3.formControl.value).toBe(4); + expect(selectedItem(3).innerHTML).toContain('item 4'); + + // Set 3 + fixture.componentInstance.select3.items$.next([{id: 7, text: 'item 7'}, {id: 8, text: 'item 8'}, {id: 9, text: 'item 9'}]); + fixture.componentInstance.select3.formControl.setValue(9); + fixture.detectChanges(); + tick(1000); + fixture.detectChanges(); + + expect(JSON.stringify(valueKeeper)).toBe('[2,4,9]'); + expect(fixture.componentInstance.select3.formControl.value).toBe(9); + expect(selectedItem(3).innerHTML).toContain('item 9'); + })); + + describe('test appendTo', () => { + it('should keep choices menu inside select container', () => { + fixture.componentInstance.select4.items = items1; + fixture.componentInstance.select4.appendTo = null; + fixture.detectChanges(); + + formControl(4).click(); + fixture.detectChanges(); + + expect(selectChoicesContainer(4)).toBeTruthy(); + }); + + it('should append choices menu outside select container', fakeAsync(() => { + const appendTo = '#sel-4-container'; + const appendToEl = querySelector(fixture.debugElement.nativeElement, appendTo); + fixture.componentInstance.select4.items = items1; + fixture.componentInstance.select4.appendTo = appendTo; + fixture.detectChanges(); + + formControl(4).click(); + fixture.detectChanges(); + tick(16); + fixture.detectChanges(); + + expect(selectChoicesContainer(4)).toBeFalsy(); + expect(querySelector(appendToEl, '.ngx-select__choices')).toBeTruthy(); + })); + }); +}); diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select.component.ts b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.ts new file mode 100644 index 00000000..095a3331 --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select.component.ts @@ -0,0 +1,680 @@ +import { + AfterContentChecked, + DoCheck, + Input, + Output, + ViewChild, + Component, + ElementRef, + EventEmitter, + forwardRef, + HostListener, + IterableDiffer, + IterableDiffers, + ChangeDetectorRef, + ContentChild, + TemplateRef, + Optional, + Inject, + InjectionToken, + ChangeDetectionStrategy, + OnDestroy +} from '@angular/core'; +import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; +import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; +import { Observable, Subject, BehaviorSubject, EMPTY, of, from, merge, combineLatest } from 'rxjs'; +import { tap, filter, map, share, toArray, distinctUntilChanged, mergeMap, debounceTime } from 'rxjs/operators'; +import isEqual from 'lodash.isequal'; +import escapeStringRegexp from 'escape-string-regexp'; +import { NgxSelectOptGroup, NgxSelectOption, TSelectOption } from './ngx-select.classes'; +import { NgxSelectOptionDirective, NgxSelectOptionNotFoundDirective, NgxSelectOptionSelectedDirective } from './ngx-templates.directive'; +import { INgxOptionNavigated, INgxSelectOption, INgxSelectOptions, INgxSelectOptGroup } from './ngx-select.interfaces'; + +export const NGX_SELECT_OPTIONS = new InjectionToken('NGX_SELECT_OPTIONS'); + +export interface INgxSelectComponentMouseEvent extends FocusEvent { + clickedSelectComponent?: NgxSelectComponent; +} + +enum ENavigation { + first, previous, next, last, + firstSelected, firstIfOptionActiveInvisible, +} + +function propertyExists(obj: object, propertyName: string) { + return propertyName in obj; +} + +@Component({ + selector: 'ngx-select', + standalone:false, + templateUrl: './ngx-select.component.html', + styleUrls: ['./ngx-select.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + providers: [ + { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(() => NgxSelectComponent), + multi: true, + }, + ], +}) +export class NgxSelectComponent implements INgxSelectOptions, ControlValueAccessor, DoCheck, AfterContentChecked, OnDestroy { + @Input() public items: any[]; + @Input() public optionValueField = 'id'; + @Input() public optionTextField = 'text'; + @Input() public optGroupLabelField = 'label'; + @Input() public optGroupOptionsField = 'options'; + @Input() public multiple = false; + @Input() public allowClear = false; + @Input() public placeholder = ''; + @Input() public noAutoComplete = false; + @Input() public disabled = false; + @Input() public defaultValue: any[] = []; + @Input() public autoSelectSingleOption = false; + @Input() public autoClearSearch = false; + @Input() public noResultsFound = 'No results found'; + @Input() public keepSelectedItems = false; + @Input() public size: 'small' | 'default' | 'large' = 'default'; + @Input() public searchCallback: (search: string, item: INgxSelectOption) => boolean; + @Input() public autoActiveOnMouseEnter = true; + @Input() public showOptionNotFoundForEmptyItems = false; + @Input() public isFocused = false; + @Input() public keepSelectMenuOpened = false; + @Input() public autocomplete = 'off'; + @Input() public dropDownMenuOtherClasses = ''; + @Input() public noSanitize = false; + @Input() public appendTo: string; + + public keyCodeToRemoveSelected = 'Delete'; + public keyCodeToOptionsOpen = ['Enter', 'NumpadEnter']; + public keyCodeToOptionsClose = 'Escape'; + public keyCodeToOptionsSelect = ['Enter', 'NumpadEnter']; + public keyCodeToNavigateFirst = 'ArrowLeft'; + public keyCodeToNavigatePrevious = 'ArrowUp'; + public keyCodeToNavigateNext = 'ArrowDown'; + public keyCodeToNavigateLast = 'ArrowRight'; + + @Output() public typed = new EventEmitter(); + @Output() public focus = new EventEmitter(); + @Output() public blur = new EventEmitter(); + @Output() public open = new EventEmitter(); + @Output() public close = new EventEmitter(); + @Output() public select = new EventEmitter(); + @Output() public remove = new EventEmitter(); + @Output() public navigated = new EventEmitter(); + @Output() public selectionChanges = new EventEmitter(); + + @ViewChild('main', {static: true}) protected mainElRef: ElementRef; + @ViewChild('input') public inputElRef: ElementRef; + @ViewChild('choiceMenu') protected choiceMenuElRef: ElementRef; + + @ContentChild(NgxSelectOptionDirective, {read: TemplateRef, static: true}) public templateOption: TemplateRef; + + @ContentChild(NgxSelectOptionSelectedDirective, {read: TemplateRef, static: true}) + public templateSelectedOption: TemplateRef; + + @ContentChild(NgxSelectOptionNotFoundDirective, {read: TemplateRef, static: true}) + public templateOptionNotFound: TemplateRef; + + public optionsOpened = false; + public optionsFiltered: TSelectOption[]; + + private optionActive: NgxSelectOption; + private itemsDiffer: IterableDiffer; + private defaultValueDiffer: IterableDiffer; + private actualValue: any[] = []; + + public subjOptions = new BehaviorSubject([]); + private subjSearchText = new BehaviorSubject(''); + + private subjOptionsSelected = new BehaviorSubject([]); + private subjExternalValue = new BehaviorSubject([]); + private subjDefaultValue = new BehaviorSubject([]); + private subjRegisterOnChange = new Subject(); + + private cacheOptionsFilteredFlat: NgxSelectOption[]; + private cacheElementOffsetTop: number; + + private _focusToInput = false; + + /** @internal */ + public get inputText() { + if (this.inputElRef && this.inputElRef.nativeElement) { + return this.inputElRef.nativeElement.value; + } + return ''; + } + + constructor(iterableDiffers: IterableDiffers, private sanitizer: DomSanitizer, private cd: ChangeDetectorRef, + @Inject(NGX_SELECT_OPTIONS) @Optional() defaultOptions: INgxSelectOptions) { + Object.assign(this, defaultOptions); + + // DIFFERS + this.itemsDiffer = iterableDiffers.find([]).create(null); + this.defaultValueDiffer = iterableDiffers.find([]).create(null); + + // OBSERVERS + this.typed.subscribe((text: string) => this.subjSearchText.next(text)); + this.subjOptionsSelected.subscribe((options: NgxSelectOption[]) => this.selectionChanges.emit(options)); + let cacheExternalValue: any[]; + + // Get actual value + const subjActualValue = combineLatest([ + merge( + this.subjExternalValue.pipe(map( + (v: any[]) => cacheExternalValue = v === null ? [] : [].concat(v) + )), + this.subjOptionsSelected.pipe(map( + (options: NgxSelectOption[]) => options.map((o: NgxSelectOption) => o.value) + )) + ), + this.subjDefaultValue, + ]).pipe( + map(([eVal, dVal]: [any[], any[]]) => { + const newVal = isEqual(eVal, dVal) ? [] : eVal; + return newVal.length ? newVal : dVal; + }), + distinctUntilChanged((x, y) => isEqual(x, y)), + share() + ); + + // Export actual value + combineLatest([subjActualValue, this.subjRegisterOnChange]) + .pipe(map(([actualValue]: [any[], void]) => actualValue)) + .subscribe((actualValue: any[]) => { + this.actualValue = actualValue; + if (!isEqual(actualValue, cacheExternalValue)) { + cacheExternalValue = actualValue; + if (this.multiple) { + this.onChange(actualValue); + } else { + this.onChange(actualValue.length ? actualValue[0] : null); + } + } + }); + + // Correct selected options when the options changed + combineLatest([ + this.subjOptions.pipe( + mergeMap((options: TSelectOption[]) => from(options).pipe( + mergeMap((option: TSelectOption) => option instanceof NgxSelectOption + ? of(option) + : (option instanceof NgxSelectOptGroup ? from(option.options) : EMPTY) + ), + toArray() + )) + ), + subjActualValue, + ]).pipe( + debounceTime(0) // For a case when optionsFlat, actualValue came at the same time + ).subscribe(([optionsFlat, actualValue]: [NgxSelectOption[], any[]]) => { + const optionsSelected = []; + + actualValue.forEach((value: any) => { + const selectedOption = optionsFlat.find((option: NgxSelectOption) => option.value === value); + if (selectedOption) { + optionsSelected.push(selectedOption); + } + }); + + if (this.keepSelectedItems) { + const optionValues = optionsSelected.map((option: NgxSelectOption) => option.value); + const keptSelectedOptions = this.subjOptionsSelected.value + .filter((selOption: NgxSelectOption) => optionValues.indexOf(selOption.value) === -1); + optionsSelected.push(...keptSelectedOptions); + } + + if (!isEqual(optionsSelected, this.subjOptionsSelected.value)) { + this.subjOptionsSelected.next(optionsSelected); + this.cd.markForCheck(); + } + }); + + // Ensure working filter by a search text + combineLatest([this.subjOptions, this.subjOptionsSelected, this.subjSearchText]).pipe( + map(([options, selectedOptions, search]: [TSelectOption[], NgxSelectOption[], string]) => { + this.optionsFiltered = this.filterOptions(search, options, selectedOptions).map(option => { + if (option instanceof NgxSelectOption) { + option.highlightedText = this.highlightOption(option); + } else if (option instanceof NgxSelectOptGroup) { + option.options.map(subOption => { + subOption.highlightedText = this.highlightOption(subOption); + return subOption; + }); + } + return option; + }); + this.cacheOptionsFilteredFlat = null; + this.navigateOption(ENavigation.firstIfOptionActiveInvisible); + this.cd.markForCheck(); + return selectedOptions; + }), + mergeMap((selectedOptions: NgxSelectOption[]) => this.optionsFilteredFlat().pipe(filter( + (flatOptions: NgxSelectOption[]) => this.autoSelectSingleOption && flatOptions.length === 1 && !selectedOptions.length + ))) + ).subscribe((flatOptions: NgxSelectOption[]) => { + this.subjOptionsSelected.next(flatOptions); + this.cd.markForCheck(); + }); + } + + public asGroup: (item: INgxSelectOption | INgxSelectOptGroup) => NgxSelectOptGroup = item => item as NgxSelectOptGroup; + public asOpt: (item: INgxSelectOption | INgxSelectOptGroup) => NgxSelectOption = item => item as NgxSelectOption; + + public setFormControlSize(otherClassNames: object = {}, useFormControl = true) { + const formControlExtraClasses = useFormControl ? { + 'form-control-sm input-sm': this.size === 'small', + 'form-control-lg input-lg': this.size === 'large', + } : {}; + return Object.assign(formControlExtraClasses, otherClassNames); + } + + public setBtnSize() { + return {'btn-sm': this.size === 'small', 'btn-lg': this.size === 'large'}; + } + + public get optionsSelected(): NgxSelectOption[] { + return this.subjOptionsSelected.value; + } + + public mainClicked(event: INgxSelectComponentMouseEvent) { + event.clickedSelectComponent = this; + if (!this.isFocused) { + this.isFocused = true; + this.focus.emit(); + } + } + + public choiceMenuFocus(event: INgxSelectComponentMouseEvent) { + if (this.appendTo) { + event.clickedSelectComponent = this; + } + } + + @HostListener('document:focusin', ['$event']) + @HostListener('document:click', ['$event']) + public documentClick(event: INgxSelectComponentMouseEvent) { + if (event.clickedSelectComponent !== this) { + if (this.optionsOpened) { + this.optionsClose(); + this.cd.detectChanges(); // fix error because of delay between different events + } + if (this.isFocused) { + this.isFocused = false; + this.blur.emit(); + } + } + } + + private optionsFilteredFlat(): Observable { + if (this.cacheOptionsFilteredFlat) { + return of(this.cacheOptionsFilteredFlat); + } + + return from(this.optionsFiltered).pipe( + mergeMap((option: TSelectOption) => + option instanceof NgxSelectOption ? of(option) : + (option instanceof NgxSelectOptGroup ? from(option.optionsFiltered) : EMPTY) + ), + filter((optionsFilteredFlat: NgxSelectOption) => !optionsFilteredFlat.disabled), + toArray(), + tap((optionsFilteredFlat: NgxSelectOption[]) => this.cacheOptionsFilteredFlat = optionsFilteredFlat) + ); + } + + private navigateOption(navigation: ENavigation) { + this.optionsFilteredFlat().pipe( + map((options: NgxSelectOption[]) => { + const navigated: INgxOptionNavigated = {index: -1, activeOption: null, filteredOptionList: options}; + let newActiveIdx; + switch (navigation) { + case ENavigation.first: + navigated.index = 0; + break; + case ENavigation.previous: + newActiveIdx = options.indexOf(this.optionActive) - 1; + navigated.index = newActiveIdx >= 0 ? newActiveIdx : options.length - 1; + break; + case ENavigation.next: + newActiveIdx = options.indexOf(this.optionActive) + 1; + navigated.index = newActiveIdx < options.length ? newActiveIdx : 0; + break; + case ENavigation.last: + navigated.index = options.length - 1; + break; + case ENavigation.firstSelected: + if (this.subjOptionsSelected.value.length) { + navigated.index = options.indexOf(this.subjOptionsSelected.value[0]); + } + break; + case ENavigation.firstIfOptionActiveInvisible: + let idxOfOptionActive = -1; + if (this.optionActive) { + idxOfOptionActive = options.indexOf(options.find(x => x.value === this.optionActive.value)); + } + navigated.index = idxOfOptionActive > 0 ? idxOfOptionActive : 0; + break; + } + navigated.activeOption = options[navigated.index]; + return navigated; + }) + ).subscribe((newNavigated: INgxOptionNavigated) => this.optionActivate(newNavigated)); + } + + public ngDoCheck(): void { + if (this.itemsDiffer.diff(this.items)) { + this.subjOptions.next(this.buildOptions(this.items)); + } + + const defVal = this.defaultValue ? [].concat(this.defaultValue) : []; + if (this.defaultValueDiffer.diff(defVal)) { + this.subjDefaultValue.next(defVal); + } + } + + public ngAfterContentChecked(): void { + if (this._focusToInput && this.checkInputVisibility() && this.inputElRef && + this.inputElRef.nativeElement !== document.activeElement) { + this._focusToInput = false; + this.inputElRef.nativeElement.focus(); + } + + if (this.choiceMenuElRef) { + const ulElement = this.choiceMenuElRef.nativeElement as HTMLUListElement; + const element = ulElement.querySelector('a.ngx-select__item_active.active') as HTMLLinkElement; + + if (element && element.offsetHeight > 0) { + this.ensureVisibleElement(element); + } + + } + } + + public ngOnDestroy(): void { + this.cd.detach(); + } + + public canClearNotMultiple(): boolean { + return this.allowClear && !!this.subjOptionsSelected.value.length && + (!this.subjDefaultValue.value.length || this.subjDefaultValue.value[0] !== this.actualValue[0]); + } + + public focusToInput(): void { + this._focusToInput = true; + } + + public inputKeyDown(event: KeyboardEvent) { + const keysForOpenedState = [].concat( + this.keyCodeToOptionsSelect, + this.keyCodeToNavigateFirst, + this.keyCodeToNavigatePrevious, + this.keyCodeToNavigateNext, + this.keyCodeToNavigateLast + ); + const keysForClosedState = [].concat(this.keyCodeToOptionsOpen, this.keyCodeToRemoveSelected); + + if (this.optionsOpened && keysForOpenedState.indexOf(event.code) !== -1) { + event.preventDefault(); + event.stopPropagation(); + switch (event.code) { + case ([].concat(this.keyCodeToOptionsSelect).indexOf(event.code) + 1) && event.code: + this.optionSelect(this.optionActive); + this.navigateOption(ENavigation.next); + break; + case this.keyCodeToNavigateFirst: + this.navigateOption(ENavigation.first); + break; + case this.keyCodeToNavigatePrevious: + this.navigateOption(ENavigation.previous); + break; + case this.keyCodeToNavigateLast: + this.navigateOption(ENavigation.last); + break; + case this.keyCodeToNavigateNext: + this.navigateOption(ENavigation.next); + break; + } + } else if (!this.optionsOpened && keysForClosedState.indexOf(event.code) !== -1) { + event.preventDefault(); + event.stopPropagation(); + switch (event.code) { + case ([].concat(this.keyCodeToOptionsOpen).indexOf(event.code) + 1) && event.code: + this.optionsOpen(); + break; + case this.keyCodeToRemoveSelected: + if (this.multiple || this.canClearNotMultiple()) { + this.optionRemove(this.subjOptionsSelected.value[this.subjOptionsSelected.value.length - 1], event); + } + break; + } + } + } + + public trackByOption(index: number, option: TSelectOption) { + return option instanceof NgxSelectOption ? option.value : + (option instanceof NgxSelectOptGroup ? option.label : option); + } + + public checkInputVisibility(): boolean { + return (this.multiple === true) || (this.optionsOpened && !this.noAutoComplete); + } + + /** @internal */ + public inputKeyUp(value = '', event: KeyboardEvent) { + if (event.code === this.keyCodeToOptionsClose) { + this.optionsClose(/*true*/); + } else if (this.optionsOpened && (['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowDown'].indexOf(event.code) === -1)/*ignore arrows*/) { + this.typed.emit(value); + } else if (!this.optionsOpened && value) { + this.optionsOpen(value); + } + } + + /** @internal */ + public inputClick(value = '') { + if (!this.optionsOpened) { + this.optionsOpen(value); + } + } + + /** @internal */ + public sanitize(html: string): SafeHtml { + if (this.noSanitize) { + return html || null; + } + + return html ? this.sanitizer.bypassSecurityTrustHtml(html) : null; + } + + /** @internal */ + public highlightOption(option: NgxSelectOption): SafeHtml { + if (this.inputElRef) { + return option.renderText(this.sanitizer, this.inputElRef.nativeElement.value); + } + return option.renderText(this.sanitizer, ''); + } + + /** @internal */ + public optionSelect(option: NgxSelectOption, event: Event = null): void { + if (event) { + event.preventDefault(); + event.stopPropagation(); + } + if (option && !option.disabled) { + this.subjOptionsSelected.next((this.multiple ? this.subjOptionsSelected.value : []).concat([option])); + this.select.emit(option.value); + if (!this.keepSelectMenuOpened) { + this.optionsClose(/*true*/); + } + this.onTouched(); + } + } + + /** @internal */ + public optionRemove(option: NgxSelectOption, event: Event): void { + if (!this.disabled && option) { + event.stopPropagation(); + this.subjOptionsSelected.next((this.multiple ? this.subjOptionsSelected.value : []).filter(o => o !== option)); + this.remove.emit(option.value); + } + } + + /** @internal */ + public optionActivate(navigated: INgxOptionNavigated): void { + if ((this.optionActive !== navigated.activeOption) && + (!navigated.activeOption || !navigated.activeOption.disabled)) { + if (this.optionActive) { + this.optionActive.active = false; + } + + this.optionActive = navigated.activeOption; + + if (this.optionActive) { + this.optionActive.active = true; + } + this.navigated.emit(navigated); + this.cd.detectChanges(); + } + } + + /** @internal */ + public onMouseEnter(navigated: INgxOptionNavigated): void { + if (this.autoActiveOnMouseEnter) { + this.optionActivate(navigated); + } + } + + private filterOptions(search: string, options: TSelectOption[], selectedOptions: NgxSelectOption[]): TSelectOption[] { + const regExp = new RegExp(escapeStringRegexp(search), 'i'); + const filterOption = (option: NgxSelectOption) => { + if (this.searchCallback) { + return this.searchCallback(search, option); + } + return (!search || regExp.test(option.text)) && (!this.multiple || selectedOptions.indexOf(option) === -1); + }; + + return options.filter((option: TSelectOption) => { + if (option instanceof NgxSelectOption) { + return filterOption(option as NgxSelectOption); + } else if (option instanceof NgxSelectOptGroup) { + const subOp = option as NgxSelectOptGroup; + subOp.filter((subOption: NgxSelectOption) => filterOption(subOption)); + return subOp.optionsFiltered.length; + } + }); + } + + private ensureVisibleElement(element: HTMLElement) { + if (this.choiceMenuElRef && this.cacheElementOffsetTop !== element.offsetTop) { + this.cacheElementOffsetTop = element.offsetTop; + const container: HTMLElement = this.choiceMenuElRef.nativeElement; + if (this.cacheElementOffsetTop < container.scrollTop) { + container.scrollTop = this.cacheElementOffsetTop; + } else if (this.cacheElementOffsetTop + element.offsetHeight > container.scrollTop + container.clientHeight) { + container.scrollTop = this.cacheElementOffsetTop + element.offsetHeight - container.clientHeight; + } + } + } + + public showChoiceMenu(): boolean { + return this.optionsOpened && (!!this.subjOptions.value.length || this.showOptionNotFoundForEmptyItems); + } + + public optionsOpen(search = '') { + if (!this.disabled) { + this.optionsOpened = true; + this.subjSearchText.next(search); + if (!this.multiple && this.subjOptionsSelected.value.length) { + this.navigateOption(ENavigation.firstSelected); + } else { + this.navigateOption(ENavigation.first); + } + this.focusToInput(); + this.open.emit(); + this.cd.markForCheck(); + } + } + + public optionsClose(/*focusToHost: boolean = false*/) { + this.optionsOpened = false; + // if (focusToHost) { + // const x = window.scrollX, y = window.scrollY; + // this.mainElRef.nativeElement.focus(); + // window.scrollTo(x, y); + // } + this.close.emit(); + + if (this.autoClearSearch && this.multiple && this.inputElRef) { + this.inputElRef.nativeElement.value = null; + } + } + + private buildOptions(data: any[]): (NgxSelectOption | NgxSelectOptGroup)[] { + const result: (NgxSelectOption | NgxSelectOptGroup)[] = []; + if (Array.isArray(data)) { + data.forEach((item: any) => { + const isOptGroup = typeof item === 'object' && item !== null && + propertyExists(item, this.optGroupLabelField) && propertyExists(item, this.optGroupOptionsField) && + Array.isArray(item[this.optGroupOptionsField]); + if (isOptGroup) { + const optGroup = new NgxSelectOptGroup(item[this.optGroupLabelField]); + item[this.optGroupOptionsField].forEach((subOption: NgxSelectOption) => { + const opt = this.buildOption(subOption, optGroup); + if (opt) { + optGroup.options.push(opt); + } + }); + result.push(optGroup); + } else { + const option = this.buildOption(item, null); + if (option) { + result.push(option); + } + } + }); + } + return result; + } + + private buildOption(data: any, parent: NgxSelectOptGroup): NgxSelectOption { + let value; + let text; + let disabled; + if (typeof data === 'string' || typeof data === 'number') { + value = text = data; + disabled = false; + } else if (typeof data === 'object' && data !== null && + (propertyExists(data, this.optionValueField) || propertyExists(data, this.optionTextField))) { + value = propertyExists(data, this.optionValueField) ? data[this.optionValueField] : data[this.optionTextField]; + text = propertyExists(data, this.optionTextField) ? data[this.optionTextField] : data[this.optionValueField]; + disabled = propertyExists(data, 'disabled') ? data.disabled : false; + } else { + return null; + } + return new NgxSelectOption(value, text, disabled, data, parent); + } + + //////////// interface ControlValueAccessor //////////// + public onChange = (v: any) => v; + + public onTouched: () => void = () => null; + + public writeValue(obj: any): void { + this.subjExternalValue.next(obj); + } + + public registerOnChange(fn: (_: any) => {}): void { + this.onChange = fn; + this.subjRegisterOnChange.next(); + } + + public registerOnTouched(fn: () => {}): void { + this.onTouched = fn; + } + + public setDisabledState(isDisabled: boolean): void { + this.disabled = isDisabled; + this.cd.markForCheck(); + } +} diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select.interfaces.ts b/projects/ngx-select-ex/src/ngx-select/ngx-select.interfaces.ts new file mode 100644 index 00000000..45fb0573 --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select.interfaces.ts @@ -0,0 +1,54 @@ +import { NgxSelectOption, TSelectOption } from './ngx-select.classes'; + +export type TNgxSelectOptionType = 'option' | 'optgroup'; + +export interface INgxSelectOptionBase { + type: TNgxSelectOptionType; +} + +export interface INgxSelectOption { + value: number | string; + text: string; // text for displaying and searching + disabled: boolean; + data: any; // original data +} + +export interface INgxSelectOptGroup { + label: string; + options: INgxSelectOption[]; +} + +export interface INgxOptionNavigated { + index: number; + activeOption: NgxSelectOption; + filteredOptionList: TSelectOption[]; +} + +export interface INgxSelectOptions { + optionValueField?: string; + optionTextField?: string; + optGroupLabelField?: string; + optGroupOptionsField?: string; + multiple?: boolean; + allowClear?: boolean; + placeholder?: string; + noAutoComplete?: boolean; + disabled?: boolean; + autoSelectSingleOption?: boolean; + autoClearSearch?: boolean; + noResultsFound?: string; + keepSelectedItems?: boolean; + size?: 'small' | 'default' | 'large'; + keyCodeToRemoveSelected?: string; + keyCodeToOptionsOpen?: string | string[]; + keyCodeToOptionsClose?: string; + keyCodeToOptionsSelect?: string | string[]; + keyCodeToNavigateFirst?: string; + keyCodeToNavigatePrevious?: string; + keyCodeToNavigateNext?: string; + keyCodeToNavigateLast?: string; + isFocused?: boolean; + autocomplete?: string; + dropDownMenuOtherClasses?: string; + appendTo?: string; +} diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-select.module.ts b/projects/ngx-select-ex/src/ngx-select/ngx-select.module.ts new file mode 100644 index 00000000..b7a0550a --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-select.module.ts @@ -0,0 +1,26 @@ +import { ModuleWithProviders, NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { NGX_SELECT_OPTIONS, NgxSelectComponent } from './ngx-select.component'; +import { NgxSelectOptionDirective, NgxSelectOptionNotFoundDirective, NgxSelectOptionSelectedDirective } from './ngx-templates.directive'; +import { INgxSelectOptions } from './ngx-select.interfaces'; +import { NgxSelectChoicesComponent } from './ngx-select-choices.component'; + +@NgModule({ + imports: [ + CommonModule, + ], + declarations: [NgxSelectComponent, + NgxSelectOptionDirective, NgxSelectOptionSelectedDirective, NgxSelectOptionNotFoundDirective, NgxSelectChoicesComponent, + ], + exports: [NgxSelectComponent, + NgxSelectOptionDirective, NgxSelectOptionSelectedDirective, NgxSelectOptionNotFoundDirective, + ], +}) +export class NgxSelectModule { + public static forRoot(options: INgxSelectOptions): ModuleWithProviders { + return { + ngModule: NgxSelectModule, + providers: [{provide: NGX_SELECT_OPTIONS, useValue: options}], + }; + } +} diff --git a/projects/ngx-select-ex/src/ngx-select/ngx-templates.directive.ts b/projects/ngx-select-ex/src/ngx-select/ngx-templates.directive.ts new file mode 100644 index 00000000..20dceb01 --- /dev/null +++ b/projects/ngx-select-ex/src/ngx-select/ngx-templates.directive.ts @@ -0,0 +1,28 @@ +import { Directive, TemplateRef } from '@angular/core'; + +@Directive({ + selector: '[ngx-select-option]', + standalone: false +}) +export class NgxSelectOptionDirective { + constructor(public template: TemplateRef) { + } +} + +@Directive({ + selector: '[ngx-select-option-selected]', + standalone: false +}) +export class NgxSelectOptionSelectedDirective { + constructor(public template: TemplateRef) { + } +} + +@Directive({ + selector: '[ngx-select-option-not-found]', + standalone: false +}) +export class NgxSelectOptionNotFoundDirective { + constructor(public template: TemplateRef) { + } +} diff --git a/projects/ngx-select-ex/src/public-api.ts b/projects/ngx-select-ex/src/public-api.ts new file mode 100644 index 00000000..5f9300d4 --- /dev/null +++ b/projects/ngx-select-ex/src/public-api.ts @@ -0,0 +1,7 @@ +export * from './ngx-select/ngx-select.module'; + +export * from './ngx-select/ngx-select.component'; +export * from './ngx-select/ngx-select.interfaces'; +export * from './ngx-select/ngx-select.classes'; + +export * from './ngx-select/ngx-templates.directive'; diff --git a/projects/ngx-select-ex/tsconfig.lib.json b/projects/ngx-select-ex/tsconfig.lib.json new file mode 100644 index 00000000..2359bf66 --- /dev/null +++ b/projects/ngx-select-ex/tsconfig.lib.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "exclude": [ + "**/*.spec.ts" + ] +} diff --git a/projects/ngx-select-ex/tsconfig.lib.prod.json b/projects/ngx-select-ex/tsconfig.lib.prod.json new file mode 100644 index 00000000..9215caac --- /dev/null +++ b/projects/ngx-select-ex/tsconfig.lib.prod.json @@ -0,0 +1,11 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "angularCompilerOptions": { + "compilationMode": "partial" + } +} diff --git a/projects/ngx-select-ex/tsconfig.spec.json b/projects/ngx-select-ex/tsconfig.spec.json new file mode 100644 index 00000000..254686d5 --- /dev/null +++ b/projects/ngx-select-ex/tsconfig.spec.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/public/css/glyphicons.css b/public/css/glyphicons.css new file mode 100644 index 00000000..6e518b9c --- /dev/null +++ b/public/css/glyphicons.css @@ -0,0 +1,805 @@ +@font-face { + font-family: 'Glyphicons Halflings'; + + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} diff --git a/public/css/prettify-angulario.css b/public/css/prettify-angulario.css new file mode 100644 index 00000000..2a0687d1 --- /dev/null +++ b/public/css/prettify-angulario.css @@ -0,0 +1,215 @@ +.prettyprint { + white-space: pre-wrap; + background: #F5F6F7; + font-family: Monaco,"Lucida Console",monospace; + color: #5C707A; + width: auto; + overflow: auto; + position: relative; + font-size: 13px; + line-height: 24px; + border-radius: 4px; + padding: 16px 32px +} + +.prettyprint.linenums,.prettyprint[class^="linenums:"],.prettyprint[class*=" linenums:"] { + padding: 0 +} + +.prettyprint.is-showcase { + border: 4px solid #0273D4 +} + +.prettyprint code { + background: none; + font-size: 13px; + padding: 0 +} + +.prettyprint ol { + background: #F5F6F7; + padding: 16px 32px 16px 56px; + margin: 0; + overflow: auto; + font-size: 13px +} + +.prettyprint ol li,.prettyprint .tag { + color: #7a8b94; + background: none; + margin-bottom: 5px; + line-height: normal; + list-style-type: decimal; + font-size: 12px +} + +.prettyprint ol li:last-child { + margin-bottom: 0 +} + +.prettyprint ol li code { + background: none; + font-size: 13px +} + +.prettyprint .pnk,.prettyprint .blk { + border-radius: 4px; + padding: 2px 4px +} + +.prettyprint .pnk { + background: #CFD8DC; + color: #5C707A +} + +.prettyprint .blk { + background: #E0E0E0 +} + +.prettyprint .otl { + outline: 1px solid rgba(169,169,169,0.56) +} + +.prettyprint .kwd { + color: #D43669 +} + +.prettyprint .typ,.prettyprint .tag { + color: #D43669 +} + +.prettyprint .str,.prettyprint .atv { + color: #647f11 +} + +.prettyprint .atn { + /*color: #647f11*/ + color: #31708f +} + +.prettyprint .com { + color: #647f11 +} + +.prettyprint .lit { + color: #647f11 +} + +.prettyprint .pun { + color: #7a8b94 +} + +.prettyprint .pln { + color: #5C707A + /*color: #8a6d3b*/ +} + +.prettyprint .dec { + color: #647f11 +} + +@media print { + .prettyprint { + background: #F5F6F7; + border: none; + box-shadow: none + } + + .prettyprint ol { + background: #F5F6F7 + } + + .prettyprint .kwd { + color: #D43669 + } + + .prettyprint .typ,.prettyprint .tag { + color: #D43669 + } + + .prettyprint .str,.prettyprint .atv { + color: #647f11 + } + + .prettyprint .atn { + /*color: #647f11*/ + color: #31708f + } + + .prettyprint .com { + color: #647f11 + } + + .prettyprint .lit { + color: #647f11 + } + + .prettyprint .pun { + color: #7a8b94 + } + + .prettyprint .pln { + color: #5C707A + } + + .prettyprint .dec { + color: #647f11 + } +} + +h1 .prettyprint,h2 .prettyprint,h3 .prettyprint,h4 .prettyprint { + background: none; + font-family: Monaco,"Lucida Console",monospace; + color: #253238; + overflow: hidden; + position: relative; + font-size: 15px; + font-weight: 600; + line-height: 24px; + margin: 0; + border: none; + box-shadow: none; + padding: 0 +} + +h1 .prettyprint code,h2 .prettyprint code,h3 .prettyprint code,h4 .prettyprint code { + background: none; + font-size: 15px; + padding: 0 +} + +h1 .prettyprint .kwd,h2 .prettyprint .kwd,h3 .prettyprint .kwd,h4 .prettyprint .kwd { + color: #253238 +} + +h1 .prettyprint .typ,h1 .prettyprint .tag,h2 .prettyprint .typ,h2 .prettyprint .tag,h3 .prettyprint .typ,h3 .prettyprint .tag,h4 .prettyprint .typ,h4 .prettyprint .tag { + color: #B52E31 +} + +h1 .prettyprint .str,h1 .prettyprint .atv,h2 .prettyprint .str,h2 .prettyprint .atv,h3 .prettyprint .str,h3 .prettyprint .atv,h4 .prettyprint .str,h4 .prettyprint .atv { + color: #9d8d00 +} + +h1 .prettyprint .atn,h2 .prettyprint .atn,h3 .prettyprint .atn,h4 .prettyprint .atn { + color: #71a436 +} + +h1 .prettyprint .com,h2 .prettyprint .com,h3 .prettyprint .com,h4 .prettyprint .com { + color: #AFBEC5 +} + +h1 .prettyprint .lit,h2 .prettyprint .lit,h3 .prettyprint .lit,h4 .prettyprint .lit { + color: #9d8d00 +} + +h1 .prettyprint .pun,h2 .prettyprint .pun,h3 .prettyprint .pun,h4 .prettyprint .pun { + color: #000 +} + +h1 .prettyprint .pln,h2 .prettyprint .pln,h3 .prettyprint .pln,h4 .prettyprint .pln { + color: #000 +} + +h1 .prettyprint .dec,h2 .prettyprint .dec,h3 .prettyprint .dec,h4 .prettyprint .dec { + color: #8762c6 +} diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 00000000..daa7b587 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,332 @@ +/*! + * Bootstrap Docs (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under the Creative Commons Attribution 3.0 Unported License. For + * details, see http://creativecommons.org/licenses/by/3.0/. + */ + +.h1, .h2, .h3, h1, h2, h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +.h1, h1 { + font-size: 36px; +} + +.btn-group-lg > .btn, .btn-lg { + font-size: 18px; +} + +section { + padding-top: 30px; +} + +.bd-pageheader { + margin-top: 45px; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} + +.navbar-default .navbar-nav > li > a { + color: #777; +} + +.navbar { + padding: 0; +} + +.navbar-nav .nav-item { + margin-left: 0 !important; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav .navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; + margin-right: 0 !important; +} + +.navbar-brand { + color: #777; + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-toggler { + margin-top: 8px; + margin-right: 15px; +} + +.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover { + color: #333; + background-color: transparent; +} + +.bd-pageheader, .bs-docs-masthead { + position: relative; + padding: 25px 0; + color: #cdbfe3; + text-align: center; + text-shadow: 0 1px 0 rgba(0, 0, 0, .1); + background-color: #6f5499; + background-image: -webkit-gradient(linear, left top, left bottom, from(#563d7c), to(#6f5499)); + background-image: -webkit-linear-gradient(top, #563d7c 0, #6f5499 100%); + background-image: -o-linear-gradient(top, #563d7c 0, #6f5499 100%); + background-image: linear-gradient(to bottom, #563d7c 0, #6f5499 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#563d7c', endColorstr='#6F5499', GradientType=0); + background-repeat: repeat-x; +} + +.bd-pageheader { + margin-bottom: 40px; + font-size: 20px; +} + +.bd-pageheader h1 { + margin-top: 0; + color: #fff; +} + +.bd-pageheader p { + margin-bottom: 0; + font-weight: 300; + line-height: 1.4; +} + +.bd-pageheader .btn { + margin: 10px 0; +} + +.scrollable-menu .nav-link { + color: #337ab7; + font-size: 14px; +} + +.scrollable-menu .nav-link:hover { + color: #23527c; + background-color: #eee; +} + +@media (min-width: 992px) { + .bd-pageheader h1, .bd-pageheader p { + margin-right: 380px; + } +} + +@media (min-width: 768px) { + .bd-pageheader { + padding-top: 60px; + padding-bottom: 60px; + font-size: 24px; + text-align: left; + } + + .bd-pageheader h1 { + font-size: 60px; + line-height: 1; + } + + .navbar-nav > li > a.nav-link { + padding-top: 15px; + padding-bottom: 15px; + font-size: 14px; + } + + .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + + .navbar .container { + width: 100%; + max-width: 100%; + } + + .navbar .container, + .navbar .container .navbar-header { + padding: 0; + margin: 0; + } +} + +@media (max-width: 400px) { + code, kbd { + font-size: 60%; + } +} + +/** + * VH and VW units can cause issues on iOS devices: http://caniuse.com/#feat=viewport-units + * + * To overcome this, create media queries that target the width, height, and orientation of iOS devices. + * It isn't optimal, but there is really no other way to solve the problem. In this example, I am fixing + * the height of element '.scrollable-menu' —which is a full width and height cover image. + * + * iOS Resolution Quick Reference: http://www.iosres.com/ + */ + +.scrollable-menu { + height: 90vh !important; + width: 100vw; + overflow-x: hidden; + padding: 0 0 20px; +} + +/** + * iPad with portrait orientation. + */ +@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) { + .scrollable-menu { + height: 1024px !important; + } +} + +/** + * iPad with landscape orientation. + */ +@media all and (device-width: 768px) and (device-height: 1024px) and (orientation: landscape) { + .scrollable-menu { + height: 768px !important; + } +} + +/** + * iPhone 5 + * You can also target devices with aspect ratio. + */ +@media screen and (device-aspect-ratio: 40/71) { + .scrollable-menu { + height: 500px !important; + } +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} + +.navbar-toggle:focus { + outline: 0 +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px +} + +pre { + margin: 0; + white-space: pre-wrap; /* CSS 3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ +} + +.chart-legend, .bar-legend, .line-legend, .pie-legend, .radar-legend, .polararea-legend, .doughnut-legend { + list-style-type: none; + margin-top: 5px; + text-align: center; + -webkit-padding-start: 0; + -moz-padding-start: 0; + padding-left: 0 +} + +.chart-legend li, .bar-legend li, .line-legend li, .pie-legend li, .radar-legend li, .polararea-legend li, .doughnut-legend li { + display: inline-block; + white-space: nowrap; + position: relative; + margin-bottom: 4px; + border-radius: 5px; + padding: 2px 8px 2px 28px; + font-size: smaller; + cursor: default +} + +.chart-legend li span, .bar-legend li span, .line-legend li span, .pie-legend li span, .radar-legend li span, .polararea-legend li span, .doughnut-legend li span { + display: block; + position: absolute; + left: 0; + top: 0; + width: 20px; + height: 20px; + border-radius: 5px +} + +.example-block { + display: flex; + margin-bottom: 20px; +} + +.example-block__item { + width: 400px; + border: lightgray; + margin: 5px; + border-radius: 5px; +} + +.doc-api pre { + color: #383d41; + background-color: #e2e3e5; + position: relative; + padding: .75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid #d6d8db; + border-radius: .25rem; +} + +.doc-api h3 { + margin: 10px 0; +} + +table { + display: block; + width: 100%; + overflow: auto; + margin-top: 0; + margin-bottom: 16px; +} + +table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +table th, table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +code { + word-break: normal; +} \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 00000000..57614f9c Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/fonts/glyphicons-halflings-regular.eot b/public/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 00000000..b93a4953 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.eot differ diff --git a/public/fonts/glyphicons-halflings-regular.svg b/public/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 00000000..94fb5490 --- /dev/null +++ b/public/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/glyphicons-halflings-regular.ttf b/public/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 00000000..1413fc60 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.ttf differ diff --git a/public/fonts/glyphicons-halflings-regular.woff b/public/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 00000000..9e612858 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.woff differ diff --git a/public/fonts/glyphicons-halflings-regular.woff2 b/public/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 00000000..64539b54 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/public/js/prettify.min.js b/public/js/prettify.min.js new file mode 100644 index 00000000..e83633dd --- /dev/null +++ b/public/js/prettify.min.js @@ -0,0 +1,36 @@ +!function () { var q = null; window.PR_SHOULD_USE_CONTINUATION = !0; + (function () { function S(a) { function d(e) { var b = e.charCodeAt(0); if (b !== 92) return b; var a = e.charAt(1); return (b = r[a]) ? b : '0' <= a && a <= '7' ? parseInt(e.substring(1), 8) : a === 'u' || a === 'x' ? parseInt(e.substring(2), 16) : e.charCodeAt(1); } function g(e) { if (e < 32) return (e < 16 ? '\\x0' : '\\x') + e.toString(16); e = String.fromCharCode(e); return e === '\\' || e === '-' || e === ']' || e === '^' ? '\\' + e : e; } function b(e) { var b = e.substring(1, e.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), e = [], a = +b[0] === '^', c = ['[']; a && c.push('^'); for (var a = a ? 1 : 0, f = b.length; a < f; ++a) { var h = b[a]; if (/\\[bdsw]/i.test(h))c.push(h); else { var h = d(h), l; a + 2 < f && '-' === b[a + 1] ? (l = d(b[a + 2]), a += 2) : l = h; e.push([h, l]); l < 65 || h > 122 || (l < 65 || h > 90 || e.push([Math.max(65, h) | 32, Math.min(l, 90) | 32]), l < 97 || h > 122 || e.push([Math.max(97, h) & -33, Math.min(l, 122) & -33])); } }e.sort(function (e, a) { return e[0] - a[0] || a[1] - e[1]; }); b = []; f = []; for (a = 0; a < e.length; ++a)h = e[a], h[0] <= f[1] + 1 ? f[1] = Math.max(f[1], h[1]) : b.push(f = h); for (a = 0; a < b.length; ++a)h = b[a], c.push(g(h[0])), +h[1] > h[0] && (h[1] + 1 > h[0] && c.push('-'), c.push(g(h[1]))); c.push(']'); return c.join(''); } function s(e) { for (var a = e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), c = a.length, d = [], f = 0, h = 0; f < c; ++f) { var l = a[f]; l === '(' ? ++h : '\\' === l.charAt(0) && (l = +l.substring(1)) && (l <= h ? d[l] = -1 : a[f] = g(l)); } for (f = 1; f < d.length; ++f)-1 === d[f] && (d[f] = ++x); for (h = f = 0; f < c; ++f)l = a[f], l === '(' ? (++h, d[h] || (a[f] = '(?:')) : '\\' === l.charAt(0) && (l = +l.substring(1)) && l <= h && +(a[f] = '\\' + d[l]); for (f = 0; f < c; ++f)'^' === a[f] && '^' !== a[f + 1] && (a[f] = ''); if (e.ignoreCase && m) for (f = 0; f < c; ++f)l = a[f], e = l.charAt(0), l.length >= 2 && e === '[' ? a[f] = b(l) : e !== '\\' && (a[f] = l.replace(/[A-Za-z]/g, function (a) { a = a.charCodeAt(0); return '[' + String.fromCharCode(a & -33, a | 32) + ']'; })); return a.join(''); } for (var x = 0, m = !1, j = !1, k = 0, c = a.length; k < c; ++k) { var i = a[k]; if (i.ignoreCase)j = !0; else if (/[a-z]/i.test(i.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ''))) { m = !0; j = !1; break; } } for (var r = { + b: 8, t: 9, n: 10, v: 11, + f: 12, r: 13 + }, n = [], k = 0, c = a.length; k < c; ++k) { i = a[k]; if (i.global || i.multiline) throw Error('' + i); n.push('(?:' + s(i) + ')'); } return RegExp(n.join('|'), j ? 'gi' : 'g'); } function T(a, d) { function g(a) { var c = a.nodeType; if (c == 1) { if (!b.test(a.className)) { for (c = a.firstChild; c; c = c.nextSibling)g(c); c = a.nodeName.toLowerCase(); if ('br' === c || 'li' === c)s[j] = '\n', m[j << 1] = x++, m[j++ << 1 | 1] = a; } } else if (c == 3 || c == 4)c = a.nodeValue, c.length && (c = d ? c.replace(/\r\n?/g, '\n') : c.replace(/[\t\n\r ]+/g, ' '), s[j] = c, m[j << 1] = x, x += c.length, m[j++ << 1 | 1] = +a); } var b = /(?:^|\s)nocode(?:\s|$)/, s = [], x = 0, m = [], j = 0; g(a); return {a: s.join('').replace(/\n$/, ''), d: m}; } function H(a, d, g, b) { d && (a = {a: d, e: a}, g(a), b.push.apply(b, a.g)); } function U(a) { for (var d = void 0, g = a.firstChild; g; g = g.nextSibling) var b = g.nodeType, d = b === 1 ? d ? a : g : b === 3 ? V.test(g.nodeValue) ? a : d : d; return d === a ? void 0 : d; } function C(a, d) { function g(a) { for (var j = a.e, k = [j, 'pln'], c = 0, i = a.a.match(s) || [], r = {}, n = 0, e = i.length; n < e; ++n) { var z = i[n], w = r[z], t = void 0, f; if (typeof w === 'string')f = !1; else { var h = b[z.charAt(0)]; + if (h)t = z.match(h[1]), w = h[0]; else { for (f = 0; f < x; ++f) if (h = d[f], t = z.match(h[1])) { w = h[0]; break; }t || (w = 'pln'); } if ((f = w.length >= 5 && 'lang-' === w.substring(0, 5)) && !(t && typeof t[1] === 'string'))f = !1, w = 'src'; f || (r[z] = w); }h = c; c += z.length; if (f) { f = t[1]; var l = z.indexOf(f), B = l + f.length; t[2] && (B = z.length - t[2].length, l = B - f.length); w = w.substring(5); H(j + h, z.substring(0, l), g, k); H(j + h + l, f, I(w, f), k); H(j + h + B, z.substring(B), g, k); } else k.push(j + h, w); }a.g = k; } var b = {}, s; (function () { for (var g = a.concat(d), j = [], k = {}, c = 0, i = g.length; c < i; ++c) { var r = +g[c], n = r[3]; if (n) for (var e = n.length; --e >= 0;)b[n.charAt(e)] = r; r = r[1]; n = '' + r; k.hasOwnProperty(n) || (j.push(r), k[n] = q); }j.push(/[\S\s]/); s = S(j); })(); var x = d.length; return g; } function v(a) { var d = [], g = []; a.tripleQuotedStrings ? d.push(['str', /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, '\'"']) : a.multiLineStrings ? d.push(['str', /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q, '\'"`']) : d.push(['str', /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, '"\'']); a.verbatimStrings && g.push(['str', /^@"(?:[^"]|"")*(?:"|$)/, q]); var b = a.hashComments; b && (a.cStyleComments ? (b > 1 ? d.push(['com', /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, '#']) : d.push(['com', /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/, q, '#']), g.push(['str', /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/, q])) : d.push(['com', +/^#[^\n\r]*/, q, '#'])); a.cStyleComments && (g.push(['com', /^\/\/[^\n\r]*/, q]), g.push(['com', /^\/\*[\S\s]*?(?:\*\/|$)/, q])); if (b = a.regexLiterals) { var s = (b = b > 1 ? '' : '\n\r') ? '.' : '[\\S\\s]'; g.push(['lang-regex', RegExp('^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(' + ('/(?=[^/*' + b + '])(?:[^/\\x5B\\x5C' + b + ']|\\x5C' + s + '|\\x5B(?:[^\\x5C\\x5D' + b + ']|\\x5C' + +s + ')*(?:\\x5D|$))+/') + ')')]); }(b = a.types) && g.push(['typ', b]); b = ('' + a.keywords).replace(/^ | $/g, ''); b.length && g.push(['kwd', RegExp('^(?:' + b.replace(/[\s,]+/g, '|') + ')\\b'), q]); d.push(['pln', /^\s+/, q, ' \r\n\t\u00a0']); b = '^.[^\\s\\w.$@\'"`/\\\\]*'; a.regexLiterals && (b += '(?!s*/)'); g.push(['lit', /^@[$_a-z][\w$@]*/i, q], ['typ', /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ['pln', /^[$_a-z][\w$@]*/i, q], ['lit', /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, '0123456789'], ['pln', /^\\[\S\s]?/, +q], ['pun', RegExp(b), q]); return C(d, g); } function J(a, d, g) { function b(a) { var c = a.nodeType; if (c == 1 && !x.test(a.className)) if ('br' === a.nodeName)s(a), a.parentNode && a.parentNode.removeChild(a); else for (a = a.firstChild; a; a = a.nextSibling)b(a); else if ((c == 3 || c == 4) && g) { var d = a.nodeValue, i = d.match(m); if (i)c = d.substring(0, i.index), a.nodeValue = c, (d = d.substring(i.index + i[0].length)) && a.parentNode.insertBefore(j.createTextNode(d), a.nextSibling), s(a), c || a.parentNode.removeChild(a); } } function s(a) { function b(a, c) { var d = +c ? a.cloneNode(!1) : a, e = a.parentNode; if (e) { var e = b(e, 1), g = a.nextSibling; e.appendChild(d); for (var i = g; i; i = g)g = i.nextSibling, e.appendChild(i); } return d; } for (;!a.nextSibling;) if (a = a.parentNode, !a) return; for (var a = b(a.nextSibling, 0), d; (d = a.parentNode) && d.nodeType === 1;)a = d; c.push(a); } for (var x = /(?:^|\s)nocode(?:\s|$)/, m = /\r\n?|\n/, j = a.ownerDocument, k = j.createElement('li'); a.firstChild;)k.appendChild(a.firstChild); for (var c = [k], i = 0; i < c.length; ++i)b(c[i]); d === (d | 0) && c[0].setAttribute('value', d); var r = j.createElement('ol'); + r.className = 'linenums'; for (var d = Math.max(0, d - 1 | 0) || 0, i = 0, n = c.length; i < n; ++i)k = c[i], k.className = 'L' + (i + d) % 10, k.firstChild || k.appendChild(j.createTextNode('\u00a0')), r.appendChild(k); a.appendChild(r); } function p(a, d) { for (var g = d.length; --g >= 0;) { var b = d[g]; F.hasOwnProperty(b) ? D.console && console.warn('cannot override language handler %s', b) : F[b] = a; } } function I(a, d) { if (!a || !F.hasOwnProperty(a))a = /^\s*= l && (b += 2); g >= B && (r += 2); } } finally { if (f)f.style.display = h; } } catch (u) { D.console && console.log(u && u.stack || u); } } var D = window, y = ['break,continue,do,else,for,if,return,while'], E = [[y, 'auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile'], +'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof'], M = [E, 'alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where'], N = [E, 'abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient'], + O = [N, 'as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where'], E = [E, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN'], P = [y, 'and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None'], + Q = [y, 'alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END'], W = [y, 'as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use'], y = [y, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until'], R = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, + V = /\S/, X = v({keywords: [M, O, E, 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END', P, Q, y], hashComments: !0, cStyleComments: !0, multiLineStrings: !0, regexLiterals: !0}), F = {}; p(X, ['default-code']); p(C([], [['pln', /^[^]*(?:>|$)/], ['com', /^<\!--[\S\s]*?(?:--\>|$)/], ['lang-', /^<\?([\S\s]+?)(?:\?>|$)/], ['lang-', /^<%([\S\s]+?)(?:%>|$)/], ['pun', /^(?:<[%?]|[%?]>)/], ['lang-', +/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i], ['lang-js', /^]*>([\S\s]*?)(<\/script\b[^>]*>)/i], ['lang-css', /^]*>([\S\s]*?)(<\/style\b[^>]*>)/i], ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i]]), ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']); p(C([['pln', /^\s+/, q, ' \t\r\n'], ['atv', /^(?:"[^"]*"?|'[^']*'?)/, q, '"\'']], [['tag', /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i], ['atn', /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], ['lang-uq.val', /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/], ['pun', /^[/<->]+/], +['lang-js', /^on\w+\s*=\s*"([^"]+)"/i], ['lang-js', /^on\w+\s*=\s*'([^']+)'/i], ['lang-js', /^on\w+\s*=\s*([^\s"'>]+)/i], ['lang-css', /^style\s*=\s*"([^"]+)"/i], ['lang-css', /^style\s*=\s*'([^']+)'/i], ['lang-css', /^style\s*=\s*([^\s"'>]+)/i]]), ['in.tag']); p(C([], [['atv', /^[\S\s]+/]]), ['uq.val']); p(v({keywords: M, hashComments: !0, cStyleComments: !0, types: R}), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']); p(v({keywords: 'null,true,false'}), ['json']); p(v({keywords: O, hashComments: !0, cStyleComments: !0, verbatimStrings: !0, types: R}), +['cs']); p(v({keywords: N, cStyleComments: !0}), ['java']); p(v({keywords: y, hashComments: !0, multiLineStrings: !0}), ['bash', 'bsh', 'csh', 'sh']); p(v({keywords: P, hashComments: !0, multiLineStrings: !0, tripleQuotedStrings: !0}), ['cv', 'py', 'python']); p(v({keywords: 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END', hashComments: !0, multiLineStrings: !0, regexLiterals: 2}), ['perl', 'pl', 'pm']); p(v({ + keywords: Q, + hashComments: !0, multiLineStrings: !0, regexLiterals: !0 +}), ['rb', 'ruby']); p(v({keywords: E, cStyleComments: !0, regexLiterals: !0}), ['javascript', 'js']); p(v({keywords: 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes', hashComments: 3, cStyleComments: !0, multilineStrings: !0, tripleQuotedStrings: !0, regexLiterals: !0}), ['coffee']); p(v({keywords: W, cStyleComments: !0, multilineStrings: !0}), ['rc', 'rs', 'rust']); + p(C([], [['str', /^[\S\s]+/]]), ['regex']); var Y = D.PR = { + createSimpleLexer: C, registerLangHandler: p, sourceDecorator: v, PR_ATTRIB_NAME: 'atn', PR_ATTRIB_VALUE: 'atv', PR_COMMENT: 'com', PR_DECLARATION: 'dec', PR_KEYWORD: 'kwd', PR_LITERAL: 'lit', PR_NOCODE: 'nocode', PR_PLAIN: 'pln', PR_PUNCTUATION: 'pun', PR_SOURCE: 'src', PR_STRING: 'str', PR_TAG: 'tag', PR_TYPE: 'typ', prettyPrintOne: D.prettyPrintOne = function (a, d, g) { var b = document.createElement('div'); b.innerHTML = '
' + a + '
'; b = b.firstChild; g && J(b, g, !0); K({h: d, j: g, c: b, i: 1}); + return b.innerHTML; }, prettyPrint: D.prettyPrint = function (a, d) { function g() { for (var b = D.PR_SHOULD_USE_CONTINUATION ? c.now() + 250 : Infinity; i < p.length && c.now() < b; i++) { for (var d = p[i], j = h, k = d; k = k.previousSibling;) { var m = k.nodeType, o = (m === 7 || m === 8) && k.nodeValue; if (o ? !/^\??prettify\b/.test(o) : m !== 3 || /\S/.test(k.nodeValue)) break; if (o) { j = {}; o.replace(/\b(\w+)=([\w%+\-.:]+)/g, function (a, b, c) { j[b] = c; }); break; } }k = d.className; if ((j !== h || e.test(k)) && !v.test(k)) { m = !1; for (o = d.parentNode; o; o = o.parentNode) if (f.test(o.tagName) && +o.className && e.test(o.className)) { m = !0; break; } if (!m) { d.className += ' prettyprinted'; m = j.lang; if (!m) { var m = k.match(n), y; if (!m && (y = U(d)) && t.test(y.tagName))m = y.className.match(n); m && (m = m[1]); } if (w.test(d.tagName))o = 1; else var o = d.currentStyle, u = s.defaultView, o = (o = o ? o.whiteSpace : u && u.getComputedStyle ? u.getComputedStyle(d, q).getPropertyValue('white-space') : 0) && 'pre' === o.substring(0, 3); u = j.linenums; if (!(u = u === 'true' || +u))u = (u = k.match(/\blinenums\b(?::(\d+))?/)) ? u[1] && u[1].length ? +u[1] : !0 : !1; u && J(d, u, o); r = +{h: m, c: d, j: u, i: o}; K(r); } } }i < p.length ? setTimeout(g, 250) : 'function' === typeof a && a(); } for (var b = d || document.body, s = b.ownerDocument || document, b = [b.getElementsByTagName('pre'), b.getElementsByTagName('code'), b.getElementsByTagName('xmp')], p = [], m = 0; m < b.length; ++m) for (var j = 0, k = b[m].length; j < k; ++j)p.push(b[m][j]); var b = q, c = Date; c.now || (c = {now() { return +new Date; }}); var i = 0, r, n = /\blang(?:uage)?-([\w.]+)(?!\S)/, e = /\bprettyprint\b/, v = /\bprettyprinted\b/, w = /pre|xmp/i, t = /^code$/i, f = /^(?:pre|code|xmp)$/i, + h = {}; g(); } + }; typeof define === 'function' && define.amd && define('google-code-prettify', [], function () { return Y; }); })(); }(); diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 00000000..8f91e8ed --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,38 @@ +
+
+

ngx-select-ex v{{p?.version}}

+

Native Angular component for Select

+

+ Compatible with Bootstrap + 3 and + Bootstrap 4 +

+ View on GitHub +
+
+ +
+
+ +
+
+
+
+ +
+
+ + +
+ + diff --git a/src/app/app.component.scss b/src/app/app.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100644 index 00000000..c75d9101 --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,47 @@ +import {NgxSelectModule} from 'ngx-select-ex'; +import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { CommonModule } from '@angular/common'; +import { BrowserModule } from '@angular/platform-browser'; +import { AppComponent } from './app.component'; +import { SelectSectionComponent } from './demo/select-section'; +import { SampleSectionComponent } from './demo/sample-section.component'; +import { SingleDemoComponent } from './demo/select/single-demo'; +import { RichDemoComponent } from './demo/select/rich-demo'; +import { MultipleDemoComponent } from './demo/select/multiple-demo'; +import { ChildrenDemoComponent } from './demo/select/children-demo'; +import { NoAutoCompleteDemoComponent } from './demo/select/no-autocomplete-demo'; +import { AppendToDemoComponent } from './demo/select/append-to-demo'; +import {NoopAnimationsModule} from '@angular/platform-browser/animations'; + +describe('AppComponent', () => { + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ + BrowserModule, + FormsModule, + ReactiveFormsModule, + NoopAnimationsModule, + NgxSelectModule, + CommonModule, + AppComponent, + SampleSectionComponent, + SelectSectionComponent, + ChildrenDemoComponent, + MultipleDemoComponent, + NoAutoCompleteDemoComponent, + RichDemoComponent, + SingleDemoComponent, + AppendToDemoComponent, + ], + }).compileComponents(); + })); + it('should create the app', fakeAsync(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + fixture.detectChanges(); + tick(3000); + expect(app).toBeTruthy(); + fixture.destroy(); + })); +}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 00000000..ca62d65e --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,30 @@ +import { Component, AfterContentInit } from '@angular/core'; +import { NgxSelectModule } from 'ngx-select-ex'; +import {SelectSectionComponent} from './demo/select-section'; + +declare const require: any; + +const pac = require('../../package.json'); + +const gettingStarted = require('html-loader!markdown-loader!./getting-started.md')?.default; + +@Component({ + selector: 'app-root', + imports: [NgxSelectModule, SelectSectionComponent], + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], +}) + +export class AppComponent implements AfterContentInit { + public gettingStarted: string = gettingStarted; + public p = pac; + + public ngAfterContentInit(): any { + setTimeout(() => { + // if (typeof PR !== 'undefined') { + // google code-prettify + // PR.prettyPrint(); + // } + }, 150); + } +} diff --git a/src/app/app.config.ts b/src/app/app.config.ts new file mode 100644 index 00000000..aa0d02b5 --- /dev/null +++ b/src/app/app.config.ts @@ -0,0 +1,6 @@ +import {ApplicationConfig, provideZoneChangeDetection} from '@angular/core'; +import {provideAnimationsAsync} from '@angular/platform-browser/animations/async'; + +export const appConfig: ApplicationConfig = { + providers: [provideZoneChangeDetection({eventCoalescing: true}), provideAnimationsAsync()] +}; diff --git a/src/app/demo/sample-section.component.html b/src/app/demo/sample-section.component.html new file mode 100644 index 00000000..05cb0203 --- /dev/null +++ b/src/app/demo/sample-section.component.html @@ -0,0 +1,17 @@ + +
+
+ + +
+
{{desc.html.default}}
+
+
+ +
+
{{desc.ts.default}}
+
+
+
+
+
diff --git a/src/app/demo/sample-section.component.ts b/src/app/demo/sample-section.component.ts new file mode 100644 index 00000000..8e469b79 --- /dev/null +++ b/src/app/demo/sample-section.component.ts @@ -0,0 +1,13 @@ +import { Component, Input } from '@angular/core'; +import {MatTabsModule} from "@angular/material/tabs"; + +@Component({ + selector: 'app-sample-section', + templateUrl: './sample-section.component.html', + imports: [ + MatTabsModule + ] +}) +export class SampleSectionComponent { + @Input() public desc: { heading: string, html: { default: string }, ts: { default: string } }; +} diff --git a/src/app/demo/select-section.ts b/src/app/demo/select-section.ts new file mode 100644 index 00000000..2e7536d2 --- /dev/null +++ b/src/app/demo/select-section.ts @@ -0,0 +1,109 @@ +import { Component } from '@angular/core'; +import {MatTabsModule} from '@angular/material/tabs'; +import {SampleSectionComponent} from './sample-section.component'; +import {SingleDemoComponent} from './select/single-demo'; +import {MultipleDemoComponent} from './select/multiple-demo'; +import {ChildrenDemoComponent} from './select/children-demo'; +import {RichDemoComponent} from './select/rich-demo'; +import {NoAutoCompleteDemoComponent} from './select/no-autocomplete-demo'; +import {AppendToDemoComponent} from './select/append-to-demo'; + +declare const require: any; + +const doc = require('html-loader!markdown-loader!../doc.md')?.default; + +const tabDesc = { + single: { + heading: 'Single', + ts: require('!!raw-loader!./select/single-demo.ts'), + html: require('!!raw-loader!./select/single-demo.html'), + }, + multiple: { + heading: 'Multiple', + ts: require('!!raw-loader!./select/multiple-demo.ts'), + html: require('!!raw-loader!./select/multiple-demo.html'), + }, + children: { + heading: 'Children', + ts: require('!!raw-loader!./select/children-demo.ts'), + html: require('!!raw-loader!./select/children-demo.html'), + }, + rich: { + heading: 'Rich', + ts: require('!!raw-loader!./select/rich-demo.ts'), + html: require('!!raw-loader!./select/rich-demo.html'), + }, + noAutoComplete: { + heading: 'noAutoComplete', + ts: require('!!raw-loader!./select/no-autocomplete-demo.ts'), + html: require('!!raw-loader!./select/no-autocomplete-demo.html'), + }, + appendTo: { + heading: 'appendTo', + ts: require('!!raw-loader!./select/append-to-demo.ts'), + html: require('!!raw-loader!./select/append-to-demo.html'), + }, +}; + +@Component({ + selector: 'app-select-section', + styles: [`:host { + display: block + }`], + template: ` +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Documentation

+
+
+
+
+ `, + imports: [ + MatTabsModule, + SampleSectionComponent, + SingleDemoComponent, + MultipleDemoComponent, + ChildrenDemoComponent, + RichDemoComponent, + NoAutoCompleteDemoComponent, + AppendToDemoComponent + ] +}) +export class SelectSectionComponent { + public currentHeading = 'Single'; + public tabDesc = tabDesc; + public doc: string = doc; +} diff --git a/src/app/demo/select/append-to-demo.html b/src/app/demo/select/append-to-demo.html new file mode 100644 index 00000000..6c894f3b --- /dev/null +++ b/src/app/demo/select/append-to-demo.html @@ -0,0 +1,53 @@ +

Container with fixed height and hidden overflow

+
+
+

Default

+
+
+
+ + +
+
+
+

+
+
{{ ngxControl1.value| json }}
+
+
+ +
+
+ +
+

Appended to scrollable

+
+
+
+ + +
+
+
+

+
+
{{ ngxControl2.value| json }}
+
+
+ +
+
+
diff --git a/src/app/demo/select/append-to-demo.ts b/src/app/demo/select/append-to-demo.ts new file mode 100644 index 00000000..ace48783 --- /dev/null +++ b/src/app/demo/select/append-to-demo.ts @@ -0,0 +1,22 @@ +import { Component } from '@angular/core'; +import {ReactiveFormsModule, UntypedFormControl} from '@angular/forms'; +import {NgxSelectModule} from "ngx-select-ex"; +import {JsonPipe} from "@angular/common"; + +@Component({ + selector: 'app-append-to-demo', + templateUrl: './append-to-demo.html', + imports: [ + NgxSelectModule, + ReactiveFormsModule, + JsonPipe + ] +}) +export class AppendToDemoComponent { + public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', + 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', + 'Budapest', 'Cologne', 'Copenhagen']; + + public ngxControl1 = new UntypedFormControl(); + public ngxControl2 = new UntypedFormControl(); +} diff --git a/src/app/demo/select/children-demo.html b/src/app/demo/select/children-demo.html new file mode 100644 index 00000000..67cec8e4 --- /dev/null +++ b/src/app/demo/select/children-demo.html @@ -0,0 +1,22 @@ +

Select a city by country

+
+
+ + +

+
+
{{ngxValue | json}}
+
+
+ +
+
+
diff --git a/src/app/demo/select/children-demo.ts b/src/app/demo/select/children-demo.ts new file mode 100644 index 00000000..71799bea --- /dev/null +++ b/src/app/demo/select/children-demo.ts @@ -0,0 +1,218 @@ +import { Component } from '@angular/core'; +import {NgxSelectModule} from 'ngx-select-ex'; +import {FormsModule} from '@angular/forms'; +import {JsonPipe} from '@angular/common'; + +@Component({ + selector: 'app-children-demo', + templateUrl: './children-demo.html', + imports: [ + NgxSelectModule, + FormsModule, + JsonPipe + ] +}) +export class ChildrenDemoComponent { + public items: any[] = [ + { + id: 100, + text: 'Austria', + children: [ + {id: 54, text: 'Vienna'}, + ], + }, + { + id: 200, + text: 'Belgium', + children: [ + {id: 2, text: 'Antwerp'}, + {id: 9, text: 'Brussels'}, + ], + }, + { + id: 300, + text: 'Bulgaria', + children: [ + {id: 48, text: 'Sofia'}, + ], + }, + { + id: 400, + text: 'Croatia', + children: [ + {id: 58, text: 'Zagreb'}, + ], + }, + { + id: 500, + text: 'Czech Republic', + children: [ + {id: 42, text: 'Prague'}, + ], + }, + { + id: 600, + text: 'Denmark', + children: [ + {id: 13, text: 'Copenhagen'}, + ], + }, + { + id: 700, + text: 'England', + children: [ + {id: 6, text: 'Birmingham'}, + {id: 7, text: 'Bradford'}, + {id: 26, text: 'Leeds', disabled: true}, + {id: 30, text: 'London'}, + {id: 34, text: 'Manchester'}, + {id: 47, text: 'Sheffield'}, + ], + }, + { + id: 800, + text: 'Finland', + children: [ + {id: 25, text: 'Helsinki'}, + ], + }, + { + id: 900, + text: 'France', + children: [ + {id: 35, text: 'Marseille'}, + {id: 40, text: 'Paris'}, + ], + }, + { + id: 1000, + text: 'Germany', + children: [ + {id: 5, text: 'Berlin'}, + {id: 8, text: 'Bremen'}, + {id: 12, text: 'Cologne'}, + {id: 14, text: 'Dortmund'}, + {id: 15, text: 'Dresden'}, + {id: 17, text: 'Düsseldorf'}, + {id: 18, text: 'Essen'}, + {id: 19, text: 'Frankfurt'}, + {id: 23, text: 'Hamburg'}, + {id: 24, text: 'Hannover'}, + {id: 27, text: 'Leipzig'}, + {id: 37, text: 'Munich'}, + {id: 50, text: 'Stuttgart'}, + ], + }, + { + id: 1100, + text: 'Greece', + children: [ + {id: 3, text: 'Athens'}, + ], + }, + { + id: 1200, + text: 'Hungary', + children: [ + {id: 11, text: 'Budapest'}, + ], + }, + { + id: 1300, + text: 'Ireland', + children: [ + {id: 16, text: 'Dublin'}, + ], + }, + { + id: 1400, + text: 'Italy', + children: [ + {id: 20, text: 'Genoa'}, + {id: 36, text: 'Milan'}, + {id: 38, text: 'Naples'}, + {id: 39, text: 'Palermo'}, + {id: 44, text: 'Rome'}, + {id: 52, text: 'Turin'}, + ], + }, + { + id: 1500, + text: 'Latvia', + children: [ + {id: 43, text: 'Riga'}, + ], + }, + { + id: 1600, + text: 'Lithuania', + children: [ + {id: 55, text: 'Vilnius'}, + ], + }, + { + id: 1700, + text: 'Netherlands', + children: [ + {id: 1, text: 'Amsterdam'}, + {id: 45, text: 'Rotterdam'}, + {id: 51, text: 'The Hague'}, + ], + }, + { + id: 1800, + text: 'Poland', + children: [ + {id: 29, text: 'Łódź'}, + {id: 31, text: 'Kraków'}, + {id: 41, text: 'Poznań'}, + {id: 56, text: 'Warsaw'}, + {id: 57, text: 'Wrocław'}, + ], + }, + { + id: 1900, + text: 'Portugal', + children: [ + {id: 28, text: 'Lisbon'}, + ], + }, + { + id: 2000, + text: 'Romania', + children: [ + {id: 10, text: 'Bucharest'}, + ], + }, + { + id: 2100, + text: 'Scotland', + children: [ + {id: 21, text: 'Glasgow'}, + ], + }, + { + id: 2200, + text: 'Spain', + children: [ + {id: 4, text: 'Barcelona'}, + {id: 32, text: 'Madrid'}, + {id: 33, text: 'Málaga'}, + {id: 46, text: 'Seville'}, + {id: 53, text: 'Valencia'}, + {id: 59, text: 'Zaragoza'}, + ], + }, + { + id: 2300, + text: 'Sweden', + children: [ + {id: 22, text: 'Gothenburg'}, + {id: 49, text: 'Stockholm'}, + ], + }, + ]; + + public ngxValue: any[] = []; + public ngxDisabled = false; +} diff --git a/src/app/demo/select/multiple-demo.html b/src/app/demo/select/multiple-demo.html new file mode 100644 index 00000000..5cdf6318 --- /dev/null +++ b/src/app/demo/select/multiple-demo.html @@ -0,0 +1,22 @@ +

Select multiple cities

+
+
+ + +

+
+
{{ngxValue | json}}
+
+
+ +
+
+
diff --git a/src/app/demo/select/multiple-demo.ts b/src/app/demo/select/multiple-demo.ts new file mode 100644 index 00000000..4178c434 --- /dev/null +++ b/src/app/demo/select/multiple-demo.ts @@ -0,0 +1,30 @@ +import {Component} from '@angular/core'; +import {INgxSelectOption, NgxSelectModule} from 'ngx-select-ex'; +import {FormsModule} from '@angular/forms'; +import {JsonPipe} from '@angular/common'; + +@Component({ + selector: 'app-multiple-demo', + templateUrl: './multiple-demo.html', + imports: [ + NgxSelectModule, + FormsModule, + JsonPipe + ] +}) +export class MultipleDemoComponent { + public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', + 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', + 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', 'Düsseldorf', + 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', 'Hamburg', 'Hannover', + 'Helsinki', 'Leeds', 'Leipzig', 'Lisbon', 'Łódź', 'London', 'Kraków', 'Madrid', + 'Málaga', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Naples', 'Palermo', + 'Paris', 'Poznań', 'Prague', 'Riga', 'Rome', 'Rotterdam', 'Seville', 'Sheffield', + 'Sofia', 'Stockholm', 'Stuttgart', 'The Hague', 'Turin', 'Valencia', 'Vienna', + 'Vilnius', 'Warsaw', 'Wrocław', 'Zagreb', 'Zaragoza']; + + public ngxValue: any = []; + public ngxDisabled = false; + + public doSelectOptions = (options: INgxSelectOption[]) => console.log('MultipleDemoComponent.doSelectOptions', options); +} diff --git a/src/app/demo/select/no-autocomplete-demo.html b/src/app/demo/select/no-autocomplete-demo.html new file mode 100644 index 00000000..090b3750 --- /dev/null +++ b/src/app/demo/select/no-autocomplete-demo.html @@ -0,0 +1,21 @@ +

Select a single city with {{items.length}} items

+
+
+ + +

+
+
{{ngxValue | json}}
+
+
+ +
+
+
\ No newline at end of file diff --git a/src/app/demo/select/no-autocomplete-demo.ts b/src/app/demo/select/no-autocomplete-demo.ts new file mode 100644 index 00000000..44c9b5aa --- /dev/null +++ b/src/app/demo/select/no-autocomplete-demo.ts @@ -0,0 +1,38 @@ +import { Component } from '@angular/core'; +import {NgxSelectModule} from 'ngx-select-ex'; +import {FormsModule} from '@angular/forms'; +import {JsonPipe} from '@angular/common'; + +@Component({ + selector: 'app-no-autocomplete-demo', + templateUrl: './no-autocomplete-demo.html', + imports: [ + NgxSelectModule, + FormsModule, + JsonPipe + ] +}) +export class NoAutoCompleteDemoComponent { + public _items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', + 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', + 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', + 'Düsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', + 'Hamburg', 'Hannover', 'Helsinki', 'Kraków', 'Leeds', 'Leipzig', 'Lisbon', + 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Málaga', + 'Naples', 'Palermo', 'Paris', 'Poznań', 'Prague', 'Riga', 'Rome', + 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart', + 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wrocław', + 'Zagreb', 'Zaragoza', 'Łódź']; + + constructor() { + const a = []; + for (let i = 1; i <= 20; i++) { + this._items.forEach(v => a.push(i + ' ' + v)); + } + this.items = a; + } + + public items: string[] = []; + public ngxValue: any = []; + public ngxDisabled = false; +} diff --git a/src/app/demo/select/rich-demo.html b/src/app/demo/select/rich-demo.html new file mode 100644 index 00000000..ee42fbc6 --- /dev/null +++ b/src/app/demo/select/rich-demo.html @@ -0,0 +1,31 @@ +

Select a color

+
+
+ + + + + + ({{option.data.hex}}) + + + + "{{input}}" not found + + + +

+
+
{{ngxValue | json}}
+
+
+ +
+
+
diff --git a/src/app/demo/select/rich-demo.ts b/src/app/demo/select/rich-demo.ts new file mode 100644 index 00000000..e2300690 --- /dev/null +++ b/src/app/demo/select/rich-demo.ts @@ -0,0 +1,80 @@ +import { Component, ViewEncapsulation } from '@angular/core'; +import { DomSanitizer, SafeStyle } from '@angular/platform-browser'; +import {NgxSelectModule} from 'ngx-select-ex'; +import {FormsModule} from '@angular/forms'; +import {JsonPipe} from '@angular/common'; + +const COLORS = [ + {name: 'Blue 10', hex: '#C0E6FF'}, + {name: 'Blue 20', hex: '#7CC7FF'}, + {name: 'Blue 30', hex: '#5AAAFA', disabled: true}, + {name: 'Blue 40', hex: '#5596E6'}, + {name: 'Blue 50', hex: '#4178BE'}, + {name: 'Blue 60', hex: '#325C80'}, + {name: 'Blue 70', hex: '#264A60'}, + {name: 'Blue 80', hex: '#1D3649'}, + {name: 'Blue 90', hex: '#152935'}, + {name: 'Blue 100', hex: '#010205'}, + {name: 'Green 10', hex: '#C8F08F'}, + {name: 'Green 20', hex: '#B4E051'}, + {name: 'Green 30', hex: '#8CD211'}, + {name: 'Green 40', hex: '#5AA700'}, + {name: 'Green 50', hex: '#4B8400'}, + {name: 'Green 60', hex: '#2D660A'}, + {name: 'Green 70', hex: '#144D14'}, + {name: 'Green 80', hex: '#0A3C02'}, + {name: 'Green 90', hex: '#0C2808'}, + {name: 'Green 100', hex: '#010200'}, + {name: 'Red 10', hex: '#FFD2DD'}, + {name: 'Red 20', hex: '#FFA5B4'}, + {name: 'Red 30', hex: '#FF7D87'}, + {name: 'Red 40', hex: '#FF5050'}, + {name: 'Red 50', hex: '#E71D32'}, + {name: 'Red 60', hex: '#AD1625'}, + {name: 'Red 70', hex: '#8C101C'}, + {name: 'Red 80', hex: '#6E0A1E'}, + {name: 'Red 90', hex: '#4C0A17'}, + {name: 'Red 100', hex: '#040001'}, + {name: 'Yellow 10', hex: '#FDE876'}, + {name: 'Yellow 20', hex: '#FDD600'}, + {name: 'Yellow 30', hex: '#EFC100'}, + {name: 'Yellow 40', hex: '#BE9B00'}, + {name: 'Yellow 50', hex: '#8C7300'}, + {name: 'Yellow 60', hex: '#735F00'}, + {name: 'Yellow 70', hex: '#574A00'}, + {name: 'Yellow 80', hex: '#3C3200'}, + {name: 'Yellow 90', hex: '#281E00'}, + {name: 'Yellow 100', hex: '#020100'}, +]; + +@Component({ + selector: 'app-rich-demo', + templateUrl: './rich-demo.html', + styles: [`.color-box { + display: inline-block; + height: 14px; + width: 14px; + margin-right: 4px; + border: 1px solid #000; + }`], + encapsulation: ViewEncapsulation.None, + imports: [ + NgxSelectModule, + FormsModule, + JsonPipe + ], + // Enable dynamic HTML styles +}) +export class RichDemoComponent { + public items: any[] = COLORS; + + public ngxValue: any = []; + public ngxDisabled = false; + + constructor(public sanitizer: DomSanitizer) { + } + + public style(data: string): SafeStyle { + return this.sanitizer.bypassSecurityTrustStyle(data); + } +} diff --git a/src/app/demo/select/single-demo.html b/src/app/demo/select/single-demo.html new file mode 100644 index 00000000..85c031bb --- /dev/null +++ b/src/app/demo/select/single-demo.html @@ -0,0 +1,29 @@ +

Select a single city

+
+
+ + +

+
+
{{ngxControl.value | json}}
+
+
+ +
+
+
diff --git a/src/app/demo/select/single-demo.ts b/src/app/demo/select/single-demo.ts new file mode 100644 index 00000000..fade2ed5 --- /dev/null +++ b/src/app/demo/select/single-demo.ts @@ -0,0 +1,67 @@ +import { Component, OnDestroy } from '@angular/core'; +import {ReactiveFormsModule, UntypedFormControl} from '@angular/forms'; +import {INgxSelectOption, NgxSelectModule} from 'ngx-select-ex'; +import {JsonPipe} from '@angular/common'; + +@Component({ + selector: 'app-single-demo', + templateUrl: './single-demo.html', + imports: [ + JsonPipe, + NgxSelectModule, + ReactiveFormsModule + ] +}) +export class SingleDemoComponent implements OnDestroy { + public items: string[] = ['Amsterdam', 'Antwerp', 'Athens', 'Barcelona', + 'Berlin', 'Birmingham', 'Bradford', 'Bremen', 'Brussels', 'Bucharest', + 'Budapest', 'Cologne', 'Copenhagen', 'Dortmund', 'Dresden', 'Dublin', + 'Düsseldorf', 'Essen', 'Frankfurt', 'Genoa', 'Glasgow', 'Gothenburg', + 'Hamburg', 'Hannover', 'Helsinki', 'Kraków', 'Leeds', 'Leipzig', 'Lisbon', + 'London', 'Madrid', 'Manchester', 'Marseille', 'Milan', 'Munich', 'Málaga', + 'Naples', 'Palermo', 'Paris', 'Poznań', 'Prague', 'Riga', 'Rome', + 'Rotterdam', 'Seville', 'Sheffield', 'Sofia', 'Stockholm', 'Stuttgart', + 'The Hague', 'Turin', 'Valencia', 'Vienna', 'Vilnius', 'Warsaw', 'Wrocław', + 'Zagreb', 'Zaragoza', 'Łódź']; + + public ngxControl = new UntypedFormControl(); + + private _ngxDefaultTimeout; + private _ngxDefaultInterval; + private _ngxDefault; + + constructor() { + this._ngxDefaultTimeout = setTimeout(() => { + this._ngxDefaultInterval = setInterval(() => { + const idx = Math.floor(Math.random() * (this.items.length - 1)); + this._ngxDefault = this.items[idx]; + // console.log('new default value = ', this._ngxDefault); + }, 2000); + }, 2000); + } + + public ngOnDestroy(): void { + clearTimeout(this._ngxDefaultTimeout); + clearInterval(this._ngxDefaultInterval); + } + + public doNgxDefault(): any { + return this._ngxDefault; + } + + public inputTyped = (source: string, text: string) => console.log('SingleDemoComponent.inputTyped', source, text); + + public doFocus = () => console.log('SingleDemoComponent.doFocus'); + + public doBlur = () => console.log('SingleDemoComponent.doBlur'); + + public doOpen = () => console.log('SingleDemoComponent.doOpen'); + + public doClose = () => console.log('SingleDemoComponent.doClose'); + + public doSelect = (value: any) => console.log('SingleDemoComponent.doSelect', value); + + public doRemove = (value: any) => console.log('SingleDemoComponent.doRemove', value); + + public doSelectOptions = (options: INgxSelectOption[]) => console.log('SingleDemoComponent.doSelectOptions', options); +} diff --git a/src/app/doc.md b/src/app/doc.md new file mode 100644 index 00000000..1a56b967 --- /dev/null +++ b/src/app/doc.md @@ -0,0 +1,205 @@ +## Usage + +1. Install **ngx-select-ex** through [npm](https://www.npmjs.com/package/ngx-select-ex) package manager using the following command: + + ```bash + npm i ngx-select-ex --save + ``` + +2. Add NgxSelectModule into your AppModule class. app.module.ts would look like this: + + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule } from 'ngx-select-ex'; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + + If you want to change the default options then use next code: + ```typescript + import {NgModule} from '@angular/core'; + import {BrowserModule} from '@angular/platform-browser'; + import {AppComponent} from './app.component'; + import { NgxSelectModule, INgxSelectOptions } from 'ngx-select-ex'; + + const CustomSelectOptions: INgxSelectOptions = { // Check the interface for more options + optionValueField: 'id', + optionTextField: 'name' + }; + + @NgModule({ + imports: [BrowserModule, NgxSelectModule.forRoot(CustomSelectOptions)], + declarations: [AppComponent], + bootstrap: [AppComponent], + }) + export class AppModule { + } + ``` + +3. Include Bootstrap styles. + For example add to your index.html + + ```html + + ``` + +4. Add the tag `` into some html + + ```html + + ``` + +5. More information regarding of using **ngx-select-ex** is located in [demo](https://optimistex.github.io/ngx-select-ex/). + +## API + +Any item can be `disabled` for prevent selection. For disable an item add the property `disabled` to the item. + +| Input | Type | Default | Description | +| -------- | -------- | -------- | ------------- | +| [items] | any[] | `[]` | Items array. Should be an array of objects with `id` and `text` properties. As convenience, you may also pass an array of strings, in which case the same string is used for both the ID and the text. Items may be nested by adding a `options` property to any item, whose value should be another array of items. Items that have children may omit to have an ID. | +| optionValueField | string | `'id'` | Provide an opportunity to change the name an `id` property of objects in the `items` | +| optionTextField | string | `'text'` | Provide an opportunity to change the name a `text` property of objects in the `items` | +| optGroupLabelField | string | `'label'` | Provide an opportunity to change the name a `label` property of objects with an `options` property in the `items` | +| optGroupOptionsField | string | `'options'` | Provide an opportunity to change the name of an `options` property of objects in the `items` | +| [multiple] | boolean | `false` | Mode of this component. If set `true` user can select more than one option | +| [allowClear] | boolean | `false` | Set to `true` to allow the selection to be cleared. This option only applies to single-value inputs | +| [placeholder] | string | `''` | Set to `true` Placeholder text to display when the element has no focus and selected items | +| [noAutoComplete] | boolean | `false` | Set to `true` to hide the search input. This option only applies to single-value inputs | +| [keepSelectedItems] | boolean | `false` | Storing the selected items when the item list is changed | +| [disabled] | boolean | `false` | When `true`, it specifies that the component should be disabled | +| [defaultValue] | any[] | `[]` | Use to set default value | +| autoSelectSingleOption | boolean | `false` | Auto select a non disabled single option | +| autoClearSearch | boolean | `false` | Auto clear a search text after select an option. Has effect for `multiple = true` | +| noResultsFound | string | `'No results found'` | The default text showed when a search has no results | +| size | `'small'/'default'/'large'` | `'default'` | Adding bootstrap classes: form-control-sm, input-sm, form-control-lg input-lg, btn-sm, btn-lg | +| searchCallback | `(search: string, item: INgxSelectOption) => boolean` | `null` | The callback function for custom filtering the select list | +| autoActiveOnMouseEnter | boolean | true | Automatically activate item when mouse enter on it | +| isFocused | boolean | false | Makes the component focused | +| keepSelectMenuOpened | boolean | false | Keeps the select menu opened | +| autocomplete | string | `'off'` | Sets an autocomplete value for the input field | +| dropDownMenuOtherClasses | string | `''` | Add css classes to the element with `dropdown-menu` class. For example `dropdown-menu-right` | +| showOptionNotFoundForEmptyItems | boolean | false | Shows the "Not Found" menu option in case of out of items at all | +| noSanitize | boolean | false | Disables auto mark an HTML as safe. Turn it on for safety from XSS if you render untrusted content in the options | +| appendTo | string | `null` | Append dropdown menu to any element using css selector + +| Output | Description | +| ------------- | ------------- | +| (typed) | Fired on changing search input. Returns `string` with that value. | +| (focus) | Fired on select focus | +| (blur) | Fired on select blur | +| (open) | Fired on select dropdown open | +| (close) | Fired on select dropdown close | +| (select) | Fired on an item selected by user. Returns value of the selected item. | +| (remove) | Fired on an item removed by user. Returns value of the removed item. | +| (navigated) | Fired on navigate by the dropdown list. Returns: `INgxOptionNavigated`. | +| (selectionChanges) | Fired on change selected options. Returns: `INgxSelectOption[]`. | + +**Warning!** Although the component contains the `select` and the `remove` events, the better solution is using `valueChanges` of the `FormControl`. + +```typescript +import {Component} from '@angular/core'; +import {FormControl} from '@angular/forms'; + +@Component({ + selector: 'app-example', + template: `` +}) +class ExampleComponent { + public selectControl = new FormControl(); + + constructor() { + this.selectControl.valueChanges.subscribe(value => console.log(value)); + } +} +``` + +### Styles and customization + +Currently, the component contains CSS classes named within [BEM Methodology](https://en.bem.info/methodology/). +As well it contains the "Bootstrap classes". Recommended use BEM classes for style customization. + +List of styles for customization: + +- **`ngx-select`** - Main class of the component. +- **`ngx-select_multiple`** - Modifier of the multiple mode. It's available when the property multiple is true. +- **`ngx-select__disabled`** - Layer for the disabled mode. +- **`ngx-select__selected`** - The common container for displaying selected items. +- **`ngx-select__toggle`** - The toggle for single mode. It's available when the property multiple is false. +- **`ngx-select__placeholder`** - The placeholder item. It's available when the property multiple is false. +- **`ngx-select__selected-single`** - The selected item with single mode. It's available when the property multiple is false. +- **`ngx-select__selected-plural`** - The multiple selected item. It's available when the property multiple is true. +- **`ngx-select__allow-clear`** - The indicator that the selected single item can be removed. It's available while properties the multiple is false and the allowClear is true. +- **`ngx-select__toggle-buttons`** - The container of buttons such as the clear and the toggle. +- **`ngx-select__toggle-caret`** - The drop-down button of the single mode. It's available when the property multiple is false. +- **`ngx-select__clear`** - The button clear. +- **`ngx-select__clear-icon`** - The cross icon. +- **`ngx-select__search`** - The input field for full text lives searching. +- **`ngx-select__choices`** - The common container of items. +- **`ngx-select__item-group`** - The group of items. +- **`ngx-select__item`** - An item. +- **`ngx-select__item_disabled`** - Modifier of a disabled item. +- **`ngx-select__item_active`** - Modifier of the activated item. + +### Templates + +For extended rendering customisation you are can use the `ng-template`: + +```html + + + + + + ({{option.data.hex}}) + + + + + + ({{option.data.hex}}) + + + + Nothing found + + + +``` + +Also, you are can mix directives for reducing template: +```html + + + + + ({{option.data.hex}}) + + + + Not found + + +``` + +Description details of the directives: +1. `ngx-select-option-selected` - Customization rendering selected options. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The text defined by the property `optionTextField`. + - `index` - Number value of index the option in the select list. Always equal to zero for the single select. +2. `ngx-select-option` - Customization rendering options in the dropdown menu. + Representing variables: + - `option` (implicit) - object of type `INgxSelectOption`. + - `text` - The highlighted text defined by the property `optionTextField`. It is highlighted in the search. + - `index` - Number value of index for the top level. + - `subIndex` - Number value of index for the second level. +3. `ngx-select-option-not-found` - Customization "not found text". Does not represent any variables. diff --git a/demo/getting-started.md b/src/app/getting-started.md similarity index 100% rename from demo/getting-started.md rename to src/app/getting-started.md diff --git a/src/index.html b/src/index.html new file mode 100644 index 00000000..4de3ad76 --- /dev/null +++ b/src/index.html @@ -0,0 +1,42 @@ + + + + Angular Select + + + + + + + + + + + + + + + + + + + + + + Loading... + + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 00000000..35b00f34 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 00000000..7e7239a2 --- /dev/null +++ b/src/styles.scss @@ -0,0 +1,4 @@ +/* You can add global styles to this file, and also import other style files */ + +html, body { height: 100%; } +body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 00000000..3775b37e --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json index 6fb213a6..b035e288 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,22 +1,32 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ { + "compileOnSave": false, "compilerOptions": { - "target": "es5", - "module": "commonjs", - "moduleResolution": "node", - "sourceMap": false, - "declaration": true, - "removeComments": false, - "emitDecoratorMetadata": true, + "outDir": "./dist/out-tsc", + "strict": false, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": false, + "noImplicitReturns": false, + "noFallthroughCasesInSwitch": true, + "paths": { + "ngx-select-ex": [ + "./dist/ngx-select-ex" + ] + }, + "skipLibCheck": true, + "isolatedModules": true, + "esModuleInterop": true, "experimentalDecorators": true, - "noImplicitAny": true, - "listFiles": false, - "noLib": false + "moduleResolution": "bundler", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022" }, - "exclude": [ - "node_modules" - ], - "files": [ - "./typings/browser.d.ts", - "./ng2-select.ts" - ] + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } } diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 00000000..5fb748d9 --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,15 @@ +/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ +/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 119e1146..00000000 --- a/tslint.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./node_modules/tslint-config-valorsoft/tslint.json", - "rulesDirectory": "./node_modules/codelyzer/dist/src" -} diff --git a/typings.json b/typings.json deleted file mode 100644 index 1e19f776..00000000 --- a/typings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "dependencies": { - "webpack": "registry:npm/webpack#1.12.9+20160219013405" - }, - "devDependencies": {}, - "ambientDependencies": { - "es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654", - "jasmine": "registry:dt/jasmine#2.2.0+20160317120654", - "require": "registry:dt/require#2.1.20+20160316155526" - } -} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 54fb64d7..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,178 +0,0 @@ -/* eslint global-require: 0 */ -'use strict'; - -const path = require('path'); -const marked = require('marked'); -const webpack = require('webpack'); -const reqPrism = require('prismjs'); -const CompressionPlugin = require('compression-webpack-plugin'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); - -// marked renderer hack -marked.Renderer.prototype.code = function renderCode(code, lang) { - const out = this.options.highlight(code, lang); - const classMap = this.options.langPrefix + lang; - - if (!lang) { - return `
${out}\n
`; - } - return `
${out}\n
\n`; -}; - -/*eslint no-process-env:0, camelcase:0*/ -const isProduction = (process.env.NODE_ENV || 'development') === 'production'; -const devtool = process.env.NODE_ENV === 'test' ? 'inline-source-map' : 'source-map'; -const dest = 'demo-build'; -const absDest = root(dest); - -const config = { - // isProduction ? 'source-map' : 'evale', - devtool, - debug: false, - - verbose: true, - displayErrorDetails: true, - context: __dirname, - stats: { - colors: true, - reasons: true - }, - - resolve: { - cache: false, - root: __dirname, - extensions: ['', '.ts', '.js', '.json'] - }, - - entry: { - angular2: [ - // Angular 2 Deps - 'es6-shim', - 'es6-promise', - 'zone.js', - 'reflect-metadata', - 'angular2/common', - 'angular2/core' - ], - 'angular2-select': ['ng2-select'], - 'angular2-select-demo': 'demo' - }, - - output: { - path: absDest, - filename: '[name].js', - sourceMapFilename: '[name].js.map', - chunkFilename: '[id].chunk.js' - }, - - // our Development Server configs - devServer: { - inline: true, - colors: true, - historyApiFallback: true, - contentBase: dest, - //publicPath: dest, - outputPath: dest, - watchOptions: {aggregateTimeout: 300, poll: 1000} - }, - - markdownLoader: { - langPrefix: 'language-', - highlight(code, lang) { - const language = !lang || lang === 'html' ? 'markup' : lang; - const Prism = global.Prism || reqPrism; - - if (!Prism.languages[language]) { - require(`prismjs/components/prism-${language}.js`); - } - return Prism.highlight(code, Prism.languages[language]); - } - }, - module: { - loaders: [ - // support markdown - {test: /\.md$/, loader: 'html?minimize=false!markdown'}, - // Support for *.json files. - {test: /\.json$/, loader: 'json'}, - // Support for CSS as raw text - {test: /\.css$/, loader: 'raw'}, - // support for .html as raw text - {test: /\.html$/, loader: 'raw'}, - // Support for .ts files. - { - test: /\.ts$/, - loader: 'ts', - query: { - compilerOptions: { - removeComments: true, - noEmitHelpers: false - } - }, - exclude: [/\.(spec|e2e)\.ts$/] - } - ], - noParse: [ - /rtts_assert\/src\/rtts_assert/, - /reflect-metadata/, - /zone\.js\/dist\/zone-microtask/ - ] - }, - - plugins: [ - //new Clean([dest]), - new webpack.optimize.DedupePlugin(), - new webpack.optimize.OccurenceOrderPlugin(true), - new webpack.optimize.CommonsChunkPlugin({ - name: 'angular2', - minChunks: Infinity, - filename: 'angular2.js' - }), - // static assets - new CopyWebpackPlugin([{from: 'demo/favicon.ico', to: 'favicon.ico'}]), - new CopyWebpackPlugin([{from: 'demo/assets', to: 'assets'}]), - // generating html - new HtmlWebpackPlugin({template: 'demo/index.html'}) - ], - pushPlugins() { - if (!isProduction) { - return; - } - const plugins = [ - //production only - new webpack.optimize.UglifyJsPlugin({ - beautify: false, - mangle: false, - comments: false, - compress: { - screw_ie8: true - //warnings: false, - //drop_debugger: false - } - //verbose: true, - //beautify: false, - //quote_style: 3 - }), - new CompressionPlugin({ - asset: '{file}.gz', - algorithm: 'gzip', - regExp: /\.js$|\.html|\.css|.map$/, - threshold: 10240, - minRatio: 0.8 - }) - ]; - - this - .plugins - .push - .apply(plugins); - } -}; - -config.pushPlugins(); - -module.exports = config; - -function root(partialPath) { - return path.join(__dirname, partialPath); -}