diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 18df1d7ca7c3..bf3db89a1b31 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -180,7 +180,7 @@ jobs:
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }}
build:
- runs-on: ubuntu-latest-4core
+ runs-on: ubuntu-latest-16core
steps:
- name: Initialize environment
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 0daf8a090eef..e648a3a3b29b 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -42,10 +42,12 @@ jobs:
run: yarn tslint
- name: Check for circular dependencies
run: yarn -s ts-circular-deps:check
- - name: Check commit message
- run: yarn ng-dev commit-message validate-range ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
- name: Check code format
run: yarn ng-dev format changed --check ${{ github.event.pull_request.base.sha }}
+ # Commit message check is last intentionally, because the caretaker can fix it
+ # during merge, while other lint failures have to be resolved by the PR author.
+ - name: Check commit message
+ run: yarn ng-dev commit-message validate-range ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
api_golden_checks:
runs-on: ubuntu-latest
@@ -147,7 +149,7 @@ jobs:
run: bazel test --build_tag_filters=-e2e --test_tag_filters=-e2e --build_tests_only -- src/...
build:
- runs-on: ubuntu-latest-4core
+ runs-on: ubuntu-latest-16core
steps:
- name: Initialize environment
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d
diff --git a/.github/workflows/scheduled-ci.yml b/.github/workflows/scheduled-ci.yml
index 902e98f94f5a..73f49915f634 100644
--- a/.github/workflows/scheduled-ci.yml
+++ b/.github/workflows/scheduled-ci.yml
@@ -67,33 +67,6 @@ jobs:
JOB_NAME: 'Linker snapshot test'
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }}
- mdc_snapshot_test:
- runs-on: ubuntu-latest-4core
- steps:
- - name: Initialize environment
- uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d
- with:
- cache-node-modules: true
- - name: Setup Bazel
- uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d
- - name: Setup Bazel RBE
- uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d
- - name: Setting up Angular snapshot builds
- # Angular snapshots must be set up first so that the yarn install properly
- # updates the yarn.lock as expected with the changes
- run: node ./scripts/circleci/setup-angular-snapshots.js main
- - name: Install MDC Canary
- run: node ./scripts/circleci/setup-mdc-canary.js
- - name: Install node modules
- run: yarn install
- - name: Run browser tests using MDC Canary
- run: bazel test --build_tag_filters=-docs-package,-e2e --test_tag_filters=-e2e --build_tests_only -- src/...
- - uses: ./.github/actions/slack
- if: ${{ failure() && github.event_name == 'push' }}
- with:
- JOB_NAME: 'MDC Snapshot test'
- SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }}
-
monitor-docs-site:
runs-on: ubuntu-latest
steps:
diff --git a/.ng-dev/google-sync-config.json b/.ng-dev/google-sync-config.json
index c802de4b0502..a998f1cd12b2 100644
--- a/.ng-dev/google-sync-config.json
+++ b/.ng-dev/google-sync-config.json
@@ -33,7 +33,7 @@
"src/material/module.ts",
"src/material/core/index.ts",
"src/material/core/theming/tests/**/*",
- "src/material/core/tokens/tests/**",
+ "src/material/core/tokens/m3/definitions/unused/**/*",
"src/material/expansion/index.ts",
"src/material-experimental/theming/_format-tokens.scss",
"**/*import.scss"
diff --git a/.stylelintrc.json b/.stylelintrc.json
index a854a9c4f7a9..9436ef95485a 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -104,10 +104,6 @@
"declaration-block-semicolon-newline-before": "never-multi-line",
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-colon-space-after": "always-single-line",
- "declaration-property-value-disallowed-list": [
- {"/.*/": ["initial"]},
- {"message": "The `initial` value is not supported in IE."}
- ],
"block-closing-brace-newline-after": [
"always",
diff --git a/BUILD.bazel b/BUILD.bazel
index 6ed8333e49bf..b163a0305807 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -4,8 +4,6 @@ load("//src/cdk:config.bzl", "CDK_ENTRYPOINTS")
load("//src/cdk-experimental:config.bzl", "CDK_EXPERIMENTAL_ENTRYPOINTS")
load("//src/material:config.bzl", "MATERIAL_ENTRYPOINTS", "MATERIAL_TESTING_ENTRYPOINTS")
load("//src/material-experimental:config.bzl", "MATERIAL_EXPERIMENTAL_ENTRYPOINTS", "MATERIAL_EXPERIMENTAL_TESTING_ENTRYPOINTS")
-load("//tools:defaults.bzl", "npm_sass_library")
-load("//:packages.bzl", "MDC_PACKAGES")
package(default_visibility = ["//visibility:public"])
@@ -40,8 +38,3 @@ genrule(
outs = ["entry_points_manifest.json"],
cmd = "echo '%s' > $@" % entryPoints,
)
-
-npm_sass_library(
- name = "mdc_sass_lib",
- deps = ["@npm//%s" % pkg for pkg in MDC_PACKAGES],
-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cb0d4b7f3e20..6950984b19f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,138 +1,320 @@
-
-# 18.0.6 "gallium-grape" (2024-07-03)
+
+# 18.2.9 "curite-castle" (2024-10-17)
### material
| Commit | Type | Description |
| -- | -- | -- |
-| [e5c5f151c](https://github.com/angular/components/commit/e5c5f151cc3a5293f629bfa84bcddb0b391cf268) | fix | **core:** add fallback if ripples get stuck ([#29323](https://github.com/angular/components/pull/29323)) |
+| [80bfac26b](https://github.com/angular/components/commit/80bfac26b17a1e54779aaf806a2ed7a718104d8f) | fix | **badge:** content incorrectly truncated in M3 ([#29854](https://github.com/angular/components/pull/29854)) |
+| [2d7519178](https://github.com/angular/components/commit/2d7519178573c62022d2d65efa08a43b50a47e88) | fix | **card:** elevated card container color ([#29835](https://github.com/angular/components/pull/29835)) |
+| [6ce574731](https://github.com/angular/components/commit/6ce574731f14b5c675f5ddeadd2a93f4f105c825) | fix | **dialog:** updates dialog max-height in landscape ([#29853](https://github.com/angular/components/pull/29853)) |
+| [ddb55e2c2](https://github.com/angular/components/commit/ddb55e2c2bcb65048d57c692a830ddc1ded728fb) | fix | **form-field:** account in `cols` attribute on textarea ([#29836](https://github.com/angular/components/pull/29836)) |
+| [afc6b9db1](https://github.com/angular/components/commit/afc6b9db1aa784408e900f82ae7e04250a34f472) | fix | **radio:** use tokens for focused border color ([#29716](https://github.com/angular/components/pull/29716)) |
-
-# 18.1.0-next.4 "plastic-pliers" (2024-06-26)
+
+# 18.2.8 "actinium-angle" (2024-10-09)
### cdk
| Commit | Type | Description |
| -- | -- | -- |
-| [5f7680f76f](https://github.com/angular/components/commit/5f7680f76f0c6c5d81f4159fb1d103e8801f2b94) | fix | **a11y:** Make focus-trap behavior consistent across zoneful/zoneless ([#29225](https://github.com/angular/components/pull/29225)) |
+| [fa43a2456](https://github.com/angular/components/commit/fa43a245668201f7a54fa76c320825c5234a7c04) | fix | **stepper:** remove mock of forms type |
+| [5bed0943a](https://github.com/angular/components/commit/5bed0943a6f3a0913242b7b998e473da875303e6) | fix | **stepper:** reset submitted state when resetting stepper |
### material
| Commit | Type | Description |
| -- | -- | -- |
-| [5da528e44d](https://github.com/angular/components/commit/5da528e44d6fadca6e13f34b86f180a4b5239049) | feat | **button:** allow button color to be configured through DI ([#29297](https://github.com/angular/components/pull/29297)) |
-| [d9181b53a4](https://github.com/angular/components/commit/d9181b53a4b8bf68f5cf18c7618abffe1adadef2) | fix | **button-toggle:** skip disabled buttons during keyboard navigation ([#29308](https://github.com/angular/components/pull/29308)) |
-| [f67ffa5c0f](https://github.com/angular/components/commit/f67ffa5c0f3c45ca4ce1661b8be6356dd615feed) | fix | **button:** stack icons on top of touch target ([#29291](https://github.com/angular/components/pull/29291)) |
-| [e74065ad94](https://github.com/angular/components/commit/e74065ad9439e37eb2fd36d30ba62564c4bdcbce) | fix | **datepicker:** avoid losing focus when re-rendering the current view ([#29287](https://github.com/angular/components/pull/29287)) |
-| [36c627beaf](https://github.com/angular/components/commit/36c627beaff2dc486997d1954b36989400591dc5) | fix | **sidenav:** not closing on escape key press ([#29292](https://github.com/angular/components/pull/29292)) |
-### multiple
+| [104b5932c](https://github.com/angular/components/commit/104b5932c6aba2f06172f9156f68bc4390a11215) | feat | **core:** expose styling information to the docs site |
+| [7ebfbeb6c](https://github.com/angular/components/commit/7ebfbeb6c9ecf08f6fd3926113c43ed91be5da6d) | fix | **schematics:** treat lower dependency builder as default builder ([#29833](https://github.com/angular/components/pull/29833)) |
+
+
+
+
+# 18.2.7 "lava-labyrinth" (2024-10-03)
+### cdk
| Commit | Type | Description |
| -- | -- | -- |
-| [aa17c2d128](https://github.com/angular/components/commit/aa17c2d128c6a2e6a9a5b4b0f943b7b792ac5bea) | fix | remove workarounds for formControl directive ([#29296](https://github.com/angular/components/pull/29296)) |
+| [3e1faec2aa](https://github.com/angular/components/commit/3e1faec2aa70938259d409b3696ca3f83cbb04df) | fix | **drag-drop:** positioning thrown off with align-self ([#29813](https://github.com/angular/components/pull/29813)) |
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [9280ad3948](https://github.com/angular/components/commit/9280ad3948a52e737bc23abc94ed098ed311afd9) | fix | **chips:** chip grid not re-focusing first item |
+| [7a5c1dfb46](https://github.com/angular/components/commit/7a5c1dfb46b12c6ba99b7448fc458342d8ef6629) | fix | **chips:** chip set overwriting disabled state ([#29795](https://github.com/angular/components/pull/29795)) |
+| [0fabf52036](https://github.com/angular/components/commit/0fabf52036a6e0a7ea20022a18d7247d669074dc) | fix | **chips:** focus escape not working consistently |
+| [da55ad02bc](https://github.com/angular/components/commit/da55ad02bc913cdeaee7a53afbf470bd283a52db) | fix | **core:** infer first day of week in native date adapter ([#29802](https://github.com/angular/components/pull/29802)) |
-
-# 18.0.5 "plastic-puppy" (2024-06-26)
+
+# 18.2.6 "emerald-egg" (2024-09-25)
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [d8c2b420c9](https://github.com/angular/components/commit/d8c2b420c939ab65da926d1fc99a64e08f6e494d) | fix | **datepicker:** set explicit line height on calendar ([#29770](https://github.com/angular/components/pull/29770)) |
+
+
+
+
+# 18.2.5 "bismuth-badge" (2024-09-20)
### cdk
| Commit | Type | Description |
| -- | -- | -- |
-| [0be4013d90](https://github.com/angular/components/commit/0be4013d90aad3a2c4b18d2d6fccaf3a30d1830f) | fix | **a11y:** Make focus-trap behavior consistent across zoneful/zoneless ([#29225](https://github.com/angular/components/pull/29225)) |
+| [1ea55b6e8](https://github.com/angular/components/commit/1ea55b6e80127046a9bc597f4d495374ad4d0524) | fix | **drag-drop:** account for scale when setting free drag position ([#29739](https://github.com/angular/components/pull/29739)) |
+| [aae74b031](https://github.com/angular/components/commit/aae74b031b23520440b6556ac89391303cc8894b) | fix | **listbox:** scroll active option into view when using aria-activedescendant ([#29722](https://github.com/angular/components/pull/29722)) |
+| [7db4b5f4c](https://github.com/angular/components/commit/7db4b5f4c19ed7e0e797dfc31a853713932d875b) | fix | **tree:** resolve maximum call stack error ([#29754](https://github.com/angular/components/pull/29754)) |
### material
| Commit | Type | Description |
| -- | -- | -- |
-| [fad2a074e2](https://github.com/angular/components/commit/fad2a074e2f5ee4bac9ddb68486427ae66a2433d) | fix | **button-toggle:** skip disabled buttons during keyboard navigation ([#29308](https://github.com/angular/components/pull/29308)) |
-| [e5684fe2b7](https://github.com/angular/components/commit/e5684fe2b7964fc9c614a45568b99f1d24982f3f) | fix | **button:** stack icons on top of touch target ([#29291](https://github.com/angular/components/pull/29291)) |
-| [c1a40a26d1](https://github.com/angular/components/commit/c1a40a26d164a766efd3ef863b52de18b3bb4d09) | fix | **datepicker:** avoid losing focus when re-rendering the current view ([#29287](https://github.com/angular/components/pull/29287)) |
-| [7f575daab5](https://github.com/angular/components/commit/7f575daab5de7e77ef8346c5a85eb59108b76a48) | fix | **sidenav:** not closing on escape key press ([#29292](https://github.com/angular/components/pull/29292)) |
+| [f9e18109e](https://github.com/angular/components/commit/f9e18109e813d9f735a324ae9fdf27cb6ddc08bd) | fix | **chips:** increase chip remove touch target size ([#29452](https://github.com/angular/components/pull/29452)) |
+| [2cf2f5321](https://github.com/angular/components/commit/2cf2f5321e724bced1b9c43eeca2503a7fe2fdc4) | fix | **datepicker:** replace labels not pointing to anything ([#29755](https://github.com/angular/components/pull/29755)) |
+| [7ab65e4fb](https://github.com/angular/components/commit/7ab65e4fb99e063cce7d0aa29701e811d10771c0) | fix | **select:** remove incompatible aria-autocomplete attribute ([#29645](https://github.com/angular/components/pull/29645)) |
+| [06818a7ed](https://github.com/angular/components/commit/06818a7ed8777d6fe5b9eca7802977691385ab67) | fix | **slider:** log proper error when slider isn't configured correctly ([#29745](https://github.com/angular/components/pull/29745)) |
-
-# 18.1.0-next.3 "copper-carousel" (2024-06-20)
+
+# 18.2.4 "aramid-angle" (2024-09-12)
### cdk
| Commit | Type | Description |
| -- | -- | -- |
-| [b5e30156c](https://github.com/angular/components/commit/b5e30156c110b67fa5633062227b8767fe601532) | feat | **drag-drop:** add the ability to specify an alternate drop list container ([#29283](https://github.com/angular/components/pull/29283)) |
-| [09df51d8e](https://github.com/angular/components/commit/09df51d8ebb86a3ee76614b6775dd62136660567) | fix | **overlay:** incorrectly dispatching outside click for shadow DOM ([#29249](https://github.com/angular/components/pull/29249)) |
+| [7cc0d3a6d](https://github.com/angular/components/commit/7cc0d3a6ddff1840ce34f1b132656fa373bc144d) | fix | **overlay:** avoid leaking memory through afterNextRender ([#29709](https://github.com/angular/components/pull/29709)) |
### material
| Commit | Type | Description |
| -- | -- | -- |
-| [008212a98](https://github.com/angular/components/commit/008212a9807fd01fd32fe136a075763b7b2c854d) | fix | **autocomplete:** autocomplete panel top is cut off in landscape mode ([#28982](https://github.com/angular/components/pull/28982)) |
-| [aaea0e272](https://github.com/angular/components/commit/aaea0e272635c973f6466b3db990a459a844f1d3) | fix | **bottom-sheet:** changed after checked error with zoneless ([#29277](https://github.com/angular/components/pull/29277)) |
-| [cee9b0415](https://github.com/angular/components/commit/cee9b04156a8485e28947951aa3afcca2bcc713c) | fix | **core:** generate mat-optgroup tokens in M3 ([#29257](https://github.com/angular/components/pull/29257)) |
-| [a4846a961](https://github.com/angular/components/commit/a4846a961924442649f0b19a3979fa92922b5b5f) | fix | **core:** implement elevation classes in M3 |
-| [6318f24d5](https://github.com/angular/components/commit/6318f24d57572b9aeb1da9b4556030fd38efad8a) | fix | **form-field:** outline label position ([#29138](https://github.com/angular/components/pull/29138)) |
-| [3550a8798](https://github.com/angular/components/commit/3550a8798a5aa51e945121c0fcf4e17b4e882faa) | fix | **menu:** animation issue when same menu is used for multiple nested triggers ([#29280](https://github.com/angular/components/pull/29280)) |
-| [03d00f573](https://github.com/angular/components/commit/03d00f57347bf6f0669dd2fc8fdb70fee4b22afd) | fix | **menu:** update elevation logic for M3 |
-| [99b33120e](https://github.com/angular/components/commit/99b33120e774768467120b77703ee4fb9d98d411) | fix | **paginator:** items per page form field touch target size insufficient ([#29109](https://github.com/angular/components/pull/29109)) |
-| [43b8dcbb1](https://github.com/angular/components/commit/43b8dcbb1f17a9d5fcedc88e996c241ab9e28dd8) | fix | **tree:** aria-expanded attribute should not appear in the leaf node ([#29096](https://github.com/angular/components/pull/29096)) |
+| [651b448e8](https://github.com/angular/components/commit/651b448e819333e64ee706d3cf093b9447ba0145) | fix | **badge:** change legacy container size default ([#29713](https://github.com/angular/components/pull/29713)) |
+| [0e6dee30a](https://github.com/angular/components/commit/0e6dee30a2e77d9b0fa9ff9e55daa8641c030521) | fix | **form-field:** Don't allow label to grow larger than input ([#29673](https://github.com/angular/components/pull/29673)) |
+| [57028df23](https://github.com/angular/components/commit/57028df2313a98ef40d294893b396e74d3488983) | fix | **select:** Update checkbox color to match the selected label text color ([#29684](https://github.com/angular/components/pull/29684)) |
-
-# 18.0.4 "caesium-carnival" (2024-06-20)
+
+# 18.2.3 "parchment-deluge" (2024-09-04)
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [0f07b25d12](https://github.com/angular/components/commit/0f07b25d12fae6495080c614dd453bc9e193d7c4) | fix | **badge:** resolve memory leak ([#29676](https://github.com/angular/components/pull/29676)) |
+| [fe3f30ff2f](https://github.com/angular/components/commit/fe3f30ff2f5110996681bc02ec3b732591846f03) | fix | **core:** Allow system variables to be formatted for opacity ([#29665](https://github.com/angular/components/pull/29665)) |
+| [5d93395442](https://github.com/angular/components/commit/5d93395442153fd04ad1f427053be9913c73f487) | fix | **core:** Fix incorrect color role mappings ([#29655](https://github.com/angular/components/pull/29655)) |
+| [4a79052ae0](https://github.com/angular/components/commit/4a79052ae077c632afd1f8fd001a96bb3406b0c0) | fix | **tooltip:** remove old IE workaround ([#29674](https://github.com/angular/components/pull/29674)) |
+
+
+
+
+# 18.2.2 "steel-sword" (2024-08-28)
### cdk
| Commit | Type | Description |
| -- | -- | -- |
-| [8e7ac0804](https://github.com/angular/components/commit/8e7ac0804844f7dee57eca2445b4a9f17a094e4d) | fix | **overlay:** incorrectly dispatching outside click for shadow DOM ([#29249](https://github.com/angular/components/pull/29249)) |
+| [39d3d01340](https://github.com/angular/components/commit/39d3d0134050830294f7185a4ac9849f043e480c) | fix | **drag-drop:** error if ngDevMode is undefined ([#29634](https://github.com/angular/components/pull/29634)) |
+| [b1c5ed7260](https://github.com/angular/components/commit/b1c5ed7260a1acad451899573c4d4a3fe6398a82) | fix | **tree:** avoid breaking change in constructor ([#29648](https://github.com/angular/components/pull/29648)) |
+| [ff95692125](https://github.com/angular/components/commit/ff95692125ff79fccaff8fab85479dd7c5633675) | fix | **tree:** capturing focus on load ([#29641](https://github.com/angular/components/pull/29641)) |
+| [f888b3d95a](https://github.com/angular/components/commit/f888b3d95ab94ceb779c05860c6e65d82a11eff8) | fix | **tree:** fix issue where `isExpanded` wouldn't be set if placed before `isExpandable` ([#29565](https://github.com/angular/components/pull/29565)) ([#29647](https://github.com/angular/components/pull/29647)) |
### material
| Commit | Type | Description |
| -- | -- | -- |
-| [303984fd9](https://github.com/angular/components/commit/303984fd9e262e3e434afb56bf2b29c0ef79ab92) | fix | **autocomplete:** autocomplete panel top is cut off in landscape mode ([#28982](https://github.com/angular/components/pull/28982)) |
-| [69ae4040e](https://github.com/angular/components/commit/69ae4040e558d9f10004cff81bdd453ed260abd9) | fix | **bottom-sheet:** changed after checked error with zoneless ([#29277](https://github.com/angular/components/pull/29277)) |
-| [317e371f0](https://github.com/angular/components/commit/317e371f0d6e47e7bf0fff7f72ab731d0727e53a) | fix | **core:** generate mat-optgroup tokens in M3 ([#29257](https://github.com/angular/components/pull/29257)) |
-| [93bc60964](https://github.com/angular/components/commit/93bc6096463bbc33c7430b75214cbc2400ac6a91) | fix | **core:** implement elevation classes in M3 |
-| [6310016f2](https://github.com/angular/components/commit/6310016f27263f08ac449971dd50914effcd2d90) | fix | **form-field:** outline label position ([#29138](https://github.com/angular/components/pull/29138)) |
-| [ce195dee4](https://github.com/angular/components/commit/ce195dee400616afd405c26464c03a5085fe3161) | fix | **menu:** animation issue when same menu is used for multiple nested triggers ([#29280](https://github.com/angular/components/pull/29280)) |
-| [9988ef2f5](https://github.com/angular/components/commit/9988ef2f5e632cd216a29067a593957013b4f108) | fix | **menu:** update elevation logic for M3 |
-| [bad8f6ad4](https://github.com/angular/components/commit/bad8f6ad4472c7533990c05589ce134c925314dd) | fix | **paginator:** items per page form field touch target size insufficient ([#29109](https://github.com/angular/components/pull/29109)) |
-| [f834a11d2](https://github.com/angular/components/commit/f834a11d2c9216daf0c7f9e23a7f1bbc67b40591) | fix | **tree:** aria-expanded attribute should not appear in the leaf node ([#29096](https://github.com/angular/components/pull/29096)) |
+| [3ce4e9fc2a](https://github.com/angular/components/commit/3ce4e9fc2adae1761531da18c3afe046fb68c5b0) | fix | **schematics:** Add the missing neutral tones for the M3 color palettes ([#29644](https://github.com/angular/components/pull/29644)) |
+| [f93d0f4095](https://github.com/angular/components/commit/f93d0f40957e779ed8888433dddd658b1ed4018e) | perf | **tooltip:** Avoid unneeded calls to clearTimeout ([#29643](https://github.com/angular/components/pull/29643)) |
+
+
+
+
+# 18.2.1 "plastic-panda" (2024-08-22)
+### cdk
+| Commit | Type | Description |
+| -- | -- | -- |
+| [3a2d13e2e4](https://github.com/angular/components/commit/3a2d13e2e4740acb32a09ed008dfc3f927b25423) | fix | **drag-drop:** preview positioned incorrectly when RTL is set on the body ([#29606](https://github.com/angular/components/pull/29606)) |
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [bad94fda58](https://github.com/angular/components/commit/bad94fda58c38940366e13201bca0dcb92f4ded2) | fix | **datepicker:** calendar font tokens not being picked up ([#29610](https://github.com/angular/components/pull/29610)) ([#29615](https://github.com/angular/components/pull/29615)) |
+| [c4c62b8549](https://github.com/angular/components/commit/c4c62b854915a1195d723d6c47eef40c4c28805a) | fix | **icon:** update error message for missing HttpClient ([#29589](https://github.com/angular/components/pull/29589)) |
+| [b2a32e9898](https://github.com/angular/components/commit/b2a32e9898de1c625a4398c83842666e9ff7f91b) | fix | **menu:** inconsistent layout of submenu icon ([#29603](https://github.com/angular/components/pull/29603)) |
+| [5f0c89030e](https://github.com/angular/components/commit/5f0c89030ea355a080a4486c6dbdabf7f3bd8908) | fix | **tabs:** switch pagination to not use native buttons ([#29605](https://github.com/angular/components/pull/29605)) |
+
+
+
+
+# 18.2.0 "technetium-tapas" (2024-08-14)
+## Deprecations
+### material
+- Tree controller deprecated. Use one of levelAccessor or childrenAccessor instead. To be removed in a future version.
+ * BaseTreeControl, TreeControl, FlatTreeControl, and NestedTreeControl deprecated
+ * CdkTree#treeControl deprecated. Provide one of CdkTree#levelAccessor or CdkTree#childrenAccessor instead.
+ * MatTreeFlattener deprecated. Use MatTree#childrenAccessor and MatTreeNode#isExpandable instead.
+ * MatTreeFlatDataSource deprecated. Use one of levelAccessor or childrenAccessor instead of TreeControl.
+
+ Note when upgrading: isExpandable works differently on Trees using treeControl than trees using childrenAccessor or levelAccessor. Nodes on trees that have a treeControl are expandable by default. Nodes on trees using childrenAccessor or levelAccessor are *not* expandable by default. Provide isExpandable to override default behavior.
+- Setting tabindex of tree nodes deprecated. By default, Tree ignores tabindex passed to tree nodes.
+ * MatTreeNode#tabIndex deprecated. MatTreeNode ignores Input tabIndex and manages its own focus behavior.
+ * MatTreeNode#defaultTabIndex deprecated. MatTreeNode ignores defaultTabIndex and manages its own focus behavior.
+ * MatNestedTreeNode#tabIndex deprecated. MatTreeNode ignores Input defaultTabIndex and manages its own focus behavior.
+ * LegacyTreeKeyManager and LEGACY_TREE_KEY_MANAGER_FACTORY_PROVIDER deprecated. Inject a TreeKeyManagerFactory to customize keyboard behavior.
+
+ Note when upgrading: an opt-out is available for keyboard functionality changes. Provide LEGACY_TREE_KEY_MANAGER_FACTORY_PROVIDER to opt-out of Tree managing its own focus. When provided, Tree does not manage it’s own focus and respects tabindex passed to TreeNode. When provided, have the same focus behavior as before this commit is applied.
+
+ Add Legacy Keyboard Interface demo, which shows usage of LEGACY_TREE_KEY_MANAGER_FACTORY_PROVIDER. Add Custom Key Manager, which shows usage of injecting a TreeKeyManagerStrategy
+- disabled renamed to isDisabled.
+ * CdkTreeNode#disabled deprecated and alias to CdkTreeNode#isDisabled
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [ddc307e28](https://github.com/angular/components/commit/ddc307e28449045c484510ff26798fc1a6efa7c1) | feat | **button-toggle:** allow disabled buttons to be interactive ([#29550](https://github.com/angular/components/pull/29550)) |
+| [841760101](https://github.com/angular/components/commit/8417601015e7c3a96a8a6801213e764058ee8aba) | feat | **checkbox:** add the ability to interact with disabled checkboxes ([#29474](https://github.com/angular/components/pull/29474)) |
+| [0af3b6175](https://github.com/angular/components/commit/0af3b617505d5f39f2492ba4b7e3e7fd4b74f990) | feat | **radio:** add the ability to interact with disabled radio buttons ([#29490](https://github.com/angular/components/pull/29490)) |
+| [4292e1b3a](https://github.com/angular/components/commit/4292e1b3a05492e62413f3a62e082f2b8b012026) | feat | **slide-toggle:** add the ability to interact with disabled toggle ([#29502](https://github.com/angular/components/pull/29502)) |
+| [a018fb0ee](https://github.com/angular/components/commit/a018fb0ee8ac711e7fba7d0d528fa56f348f6361) | feat | **tooltip:** replicate tooltipClass to default MatTooltipDefaultOptions ([#29467](https://github.com/angular/components/pull/29467)) |
+| [aaf0d5156](https://github.com/angular/components/commit/aaf0d51569c0a5626055ca61663d6dbe9fbd1776) | fix | **checkbox:** account for disabledInteractive in harness |
+| [d22a24d66](https://github.com/angular/components/commit/d22a24d667a16c39d4a4ec5f59b248f990fa029e) | fix | **list:** checkmark not visible in high contrast mode ([#29546](https://github.com/angular/components/pull/29546)) |
+| [a259b016b](https://github.com/angular/components/commit/a259b016b0ef37511c7b6b887da93bacef91f243) | fix | **radio:** account for disabledInteractive in harness |
+| [fd47a0e60](https://github.com/angular/components/commit/fd47a0e60dd9ab50d9f923713ca60a7fd21ccc16) | fix | **radio:** avoid error if destroyed quickly ([#29507](https://github.com/angular/components/pull/29507)) |
+| [08d2e3e69](https://github.com/angular/components/commit/08d2e3e6945a5488171f5211891d0c2a806808b7) | fix | **slide-toggle:** account for disabledInteractive in harness |
+| [fd416a30e](https://github.com/angular/components/commit/fd416a30e8de0e741ac45f3fb45e695abecf5ded) | fix | **tooltip:** remove aria-describedby when disabled ([#29520](https://github.com/angular/components/pull/29520)) |
+| [ff36c80f9](https://github.com/angular/components/commit/ff36c80f9c7a14f0e9f36eafc3e1423d34e7c916) | fix | **tree:** add levelAccessor, childrenAccessor, TreeKeyManager; a11y and docs improvements ([#29062](https://github.com/angular/components/pull/29062)) |
+| [1f992d06c](https://github.com/angular/components/commit/1f992d06c693a6e09332ac83d837c9ff8e1fdf7b) | fix | **tree:** aria-expanded attribute should not appear in the leaf node ([#29273](https://github.com/angular/components/pull/29273)) |
+### cdk
+| Commit | Type | Description |
+| -- | -- | -- |
+| [b2c051d2c](https://github.com/angular/components/commit/b2c051d2c1b67f4c149aee1573a4aceddb496157) | feat | **drag-drop:** add input to specify dragged item scale ([#29392](https://github.com/angular/components/pull/29392)) |
+### multiple
+| Commit | Type | Description |
+| -- | -- | -- |
+| [db5b8dc29](https://github.com/angular/components/commit/db5b8dc29b900470523bb20eea1ba255c2dc1168) | feat | fallback to system level variables ([#29480](https://github.com/angular/components/pull/29480)) |
+
+
+
+
+# 18.1.4 "pewter-polka" (2024-08-07)
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [2b5ae8c0ed](https://github.com/angular/components/commit/2b5ae8c0edc6e5c435dd729e704c397cfead2896) | fix | **chips:** missing tokens in M3 ([#29531](https://github.com/angular/components/pull/29531)) |
+| [b98432839e](https://github.com/angular/components/commit/b98432839ef879757452a48b149fad0e289e3aae) | fix | **sidenav:** disable focus trap while closed ([#29548](https://github.com/angular/components/pull/29548)) |
+
+
+
+
+# 18.1.3 "plastic-beach" (2024-07-31)
+### cdk
+| Commit | Type | Description |
+| -- | -- | -- |
+| [2c76917779](https://github.com/angular/components/commit/2c7691777915e1fd051fd22458980e63fa15958d) | fix | **coercion:** Return undefined when the fallback value is undefined ([#29491](https://github.com/angular/components/pull/29491)) |
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [caf4b61ead](https://github.com/angular/components/commit/caf4b61eadce6c8c407cc5a66a8b420a6a2d805f) | fix | **chips:** remove tab-index attribute from mat-chip host ([#29436](https://github.com/angular/components/pull/29436)) |
+| [913267c0b1](https://github.com/angular/components/commit/913267c0b18bee9b47bdb860b9c5c584b84a609c) | fix | **core:** custom system-level variable prefix not used in some mixins ([#29513](https://github.com/angular/components/pull/29513)) |
+| [70048ef226](https://github.com/angular/components/commit/70048ef226fab98a60067f87fc2ace6e2003afa8) | fix | **dialog:** invalid font-family declaration ([#29516](https://github.com/angular/components/pull/29516)) |
+| [d7d82e1455](https://github.com/angular/components/commit/d7d82e145501321de195bc26e428a05314878d5f) | fix | **slide-toggle:** don't trigger active state for entire container ([#29514](https://github.com/angular/components/pull/29514)) |
+| [d237e7d2c7](https://github.com/angular/components/commit/d237e7d2c76ab11a4089a35a3b3a77f2515ac713) | fix | **slide-toggle:** remove divs from button ([#29485](https://github.com/angular/components/pull/29485)) |
+
+
+
+
+# 18.1.2 "velvet-violin" (2024-07-24)
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [cf61af53bd](https://github.com/angular/components/commit/cf61af53bdb5178cfc80157b9abae2ca1819f4b0) | fix | **chips:** remove button is too small ([#29351](https://github.com/angular/components/pull/29351)) |
+| [c79ec264aa](https://github.com/angular/components/commit/c79ec264aa454b31f6cefa6a1b032884c565ae2e) | fix | **form-field:** hiding a label after it has been ([#29461](https://github.com/angular/components/pull/29461)) |
+| [15238d255f](https://github.com/angular/components/commit/15238d255f563348677fd81690735a708d3bda5c) | fix | **input:** Number input not changing on wheel interaction ([#29449](https://github.com/angular/components/pull/29449)) |
+
+
+
+
+# 18.1.1 "tantalum-tale" (2024-07-17)
+### cdk
+| Commit | Type | Description |
+| -- | -- | -- |
+| [ca634cb7b](https://github.com/angular/components/commit/ca634cb7ba6800b2dc23b15b319d8aef6ede64df) | fix | **drag-drop:** remove preview after animate to placeholder animation completes ([#29439](https://github.com/angular/components/pull/29439)) |
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [b7959c241](https://github.com/angular/components/commit/b7959c241d56ebfbcfb09c2fdce12ebdc6e2d6ad) | fix | **button:** support palettes for icon button in M3 ([#29433](https://github.com/angular/components/pull/29433)) |
+| [ffe1c35c0](https://github.com/angular/components/commit/ffe1c35c0b2b59acfbc49bfc345e477f680e1f44) | fix | **chips:** fix focus issue ([#29427](https://github.com/angular/components/pull/29427)) |
+| [57cc0b04b](https://github.com/angular/components/commit/57cc0b04b4be19b3cba08ae509e066f7ba40e61d) | fix | **core:** require theme for option typography ([#29416](https://github.com/angular/components/pull/29416)) |
+| [2e5e415ec](https://github.com/angular/components/commit/2e5e415ec573b2fd6593b116429080fbe7b24dc2) | fix | **tabs:** prevent tab header from collapsing when empty inside a drop list ([#29418](https://github.com/angular/components/pull/29418)) |
-
-# 18.1.0-next.2 "ivory-infinity" (2024-06-12)
+
+# 18.1.0 "coral-odyssey" (2024-07-10)
### cdk
| Commit | Type | Description |
| -- | -- | -- |
| [0bc6583892](https://github.com/angular/components/commit/0bc65838926e88723bfc677fc3e4de81826cfe5b) | feat | **drag-drop:** add mixed orientation support |
+| [b5e30156c1](https://github.com/angular/components/commit/b5e30156c110b67fa5633062227b8767fe601532) | feat | **drag-drop:** add the ability to specify an alternate drop list container ([#29283](https://github.com/angular/components/pull/29283)) |
+| [03d4e134c8](https://github.com/angular/components/commit/03d4e134c84f4e9bba6e222e68f7fcc2e3dd3935) | fix | **drag-drop:** reset pointer events on descendants ([#29370](https://github.com/angular/components/pull/29370)) |
### material
| Commit | Type | Description |
| -- | -- | -- |
+| [5da528e44d](https://github.com/angular/components/commit/5da528e44d6fadca6e13f34b86f180a4b5239049) | feat | **button:** allow button color to be configured through DI ([#29297](https://github.com/angular/components/pull/29297)) |
| [6f698fa4e2](https://github.com/angular/components/commit/6f698fa4e24ef4637b2c83f43cb608df967a78b5) | feat | **core:** add option to configure prefix of system variables ([#29139](https://github.com/angular/components/pull/29139)) |
-| [e7312037f7](https://github.com/angular/components/commit/e7312037f75dad5482b06868542ec2a715c116fc) | fix | **dialog:** Make autofocus work with animations disabled ([#29195](https://github.com/angular/components/pull/29195)) |
-| [3b32d0e7c9](https://github.com/angular/components/commit/3b32d0e7c95b358d30f8b7e6b0570ab8ba815a06) | fix | **dialog:** Make focus behavior consistent across zoneful/zoneless apps ([#29192](https://github.com/angular/components/pull/29192)) |
+| [5a97c03928](https://github.com/angular/components/commit/5a97c03928a8f4063353015747da37a39efad6a3) | fix | **chips:** navigate between rows on up/down arrow ([#29364](https://github.com/angular/components/pull/29364)) |
| [566057b8f5](https://github.com/angular/components/commit/566057b8f58fab1b5328cbd4336b7b19ea412fd3) | fix | **divider:** non-text color contrast issues ([#28995](https://github.com/angular/components/pull/28995)) |
-| [e3abc65d7d](https://github.com/angular/components/commit/e3abc65d7d191f2adf1c294bdb84f532d4eac05c) | fix | **radio:** mark radio-group for check on touch ([#29203](https://github.com/angular/components/pull/29203)) |
-| [3da43230e6](https://github.com/angular/components/commit/3da43230e62c8983af5c21c4c1fc66ea2e5e7d52) | fix | **schematics:** estimate missing hues in M3 schematic ([#29231](https://github.com/angular/components/pull/29231)) |
-| [d717de5150](https://github.com/angular/components/commit/d717de51501e04a0410217c07fc31929ff2e983a) | fix | **snack-bar:** fix overrides mixin name typo ([#29180](https://github.com/angular/components/pull/29180)) |
+| [65b56400bd](https://github.com/angular/components/commit/65b56400bd69035d291867a81257fad2dcb3ed5a) | fix | **tabs:** remove visibility style when hydrating ([#29220](https://github.com/angular/components/pull/29220)) |
+### cdk-experimental
+| Commit | Type | Description |
+| -- | -- | -- |
+| [fc6beeae18](https://github.com/angular/components/commit/fc6beeae18cba6ff5744a8381aee6edf6211cb5e) | fix | **popover-edit:** Fix dialog role and allow aria label on popup ([#29380](https://github.com/angular/components/pull/29380)) |
+### multiple
+| Commit | Type | Description |
+| -- | -- | -- |
+| [aa17c2d128](https://github.com/angular/components/commit/aa17c2d128c6a2e6a9a5b4b0f943b7b792ac5bea) | fix | remove workarounds for formControl directive ([#29296](https://github.com/angular/components/pull/29296)) |
-
-# 18.0.3 "gossamer-glacier" (2024-06-12)
+
+# 18.0.6 "gallium-grape" (2024-07-03)
### material
| Commit | Type | Description |
| -- | -- | -- |
-| [f6b993fdb7](https://github.com/angular/components/commit/f6b993fdb7fbdcfbe0297d320a5961097002308d) | fix | **dialog:** Make autofocus work with animations disabled ([#29195](https://github.com/angular/components/pull/29195)) |
-| [6dd1689b51](https://github.com/angular/components/commit/6dd1689b519abf287098d30f7698fc37197e3db0) | fix | **dialog:** Make focus behavior consistent across zoneful/zoneless apps ([#29192](https://github.com/angular/components/pull/29192)) |
-| [81d4527f91](https://github.com/angular/components/commit/81d4527f9130605f69dea31a092a60261bde25db) | fix | **radio:** mark radio-group for check on touch ([#29203](https://github.com/angular/components/pull/29203)) |
-| [0f4d1862d3](https://github.com/angular/components/commit/0f4d1862d30366978176a4a87b7799915d3caedd) | fix | **schematics:** estimate missing hues in M3 schematic ([#29231](https://github.com/angular/components/pull/29231)) |
-| [faf348438d](https://github.com/angular/components/commit/faf348438d57db80e8ac5187ffe3900fe398fe77) | fix | **snack-bar:** fix overrides mixin name typo ([#29180](https://github.com/angular/components/pull/29180)) |
+| [e5c5f151c](https://github.com/angular/components/commit/e5c5f151cc3a5293f629bfa84bcddb0b391cf268) | fix | **core:** add fallback if ripples get stuck ([#29323](https://github.com/angular/components/pull/29323)) |
+
+
+
+
+# 18.0.5 "plastic-puppy" (2024-06-26)
+### cdk
+| Commit | Type | Description |
+| -- | -- | -- |
+| [0be4013d90](https://github.com/angular/components/commit/0be4013d90aad3a2c4b18d2d6fccaf3a30d1830f) | fix | **a11y:** Make focus-trap behavior consistent across zoneful/zoneless ([#29225](https://github.com/angular/components/pull/29225)) |
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [fad2a074e2](https://github.com/angular/components/commit/fad2a074e2f5ee4bac9ddb68486427ae66a2433d) | fix | **button-toggle:** skip disabled buttons during keyboard navigation ([#29308](https://github.com/angular/components/pull/29308)) |
+| [e5684fe2b7](https://github.com/angular/components/commit/e5684fe2b7964fc9c614a45568b99f1d24982f3f) | fix | **button:** stack icons on top of touch target ([#29291](https://github.com/angular/components/pull/29291)) |
+| [c1a40a26d1](https://github.com/angular/components/commit/c1a40a26d164a766efd3ef863b52de18b3bb4d09) | fix | **datepicker:** avoid losing focus when re-rendering the current view ([#29287](https://github.com/angular/components/pull/29287)) |
+| [7f575daab5](https://github.com/angular/components/commit/7f575daab5de7e77ef8346c5a85eb59108b76a48) | fix | **sidenav:** not closing on escape key press ([#29292](https://github.com/angular/components/pull/29292)) |
-
-# 18.1.0-next.1 "velvet-violoncello" (2024-06-05)
+
+# 18.0.4 "caesium-carnival" (2024-06-20)
### cdk
| Commit | Type | Description |
| -- | -- | -- |
-| [f4387fda12](https://github.com/angular/components/commit/f4387fda12e3e647e807111344c793efa1d14235) | fix | **testing:** TestbedHarnessEnvironment should work when Zone is not present ([#29176](https://github.com/angular/components/pull/29176)) |
+| [8e7ac0804](https://github.com/angular/components/commit/8e7ac0804844f7dee57eca2445b4a9f17a094e4d) | fix | **overlay:** incorrectly dispatching outside click for shadow DOM ([#29249](https://github.com/angular/components/pull/29249)) |
### material
| Commit | Type | Description |
| -- | -- | -- |
-| [c4a1407e75](https://github.com/angular/components/commit/c4a1407e75d9e408b0edbd5a106e1b520eb5ad2e) | fix | **core:** hide ripples inside drag&drop elements ([#29184](https://github.com/angular/components/pull/29184)) |
-| [b9fedfe9f9](https://github.com/angular/components/commit/b9fedfe9f900111d749262b2e25cc2fff8aac01f) | fix | **datepicker:** Move aria-live attribute so month can also be announced when using previous and next month buttons ([#29137](https://github.com/angular/components/pull/29137)) |
-| [71297ad7ef](https://github.com/angular/components/commit/71297ad7ef74baa058607356692b8e955791c484) | fix | **radio:** Ensure focus and selected states stay linked ([#29082](https://github.com/angular/components/pull/29082)) |
-| [c9e1d4aedd](https://github.com/angular/components/commit/c9e1d4aedd929b611b908633afac28a2bfb474d2) | fix | **schematics:** theming API migration not working with CRLF line endings ([#29171](https://github.com/angular/components/pull/29171)) |
-| [3314414e17](https://github.com/angular/components/commit/3314414e174a3fda90d18c8d00cf284a77f04e9c) | fix | **slider:** Tick marks changes position as the slider is changed (for a step that is decimal number) ([#29108](https://github.com/angular/components/pull/29108)) |
+| [303984fd9](https://github.com/angular/components/commit/303984fd9e262e3e434afb56bf2b29c0ef79ab92) | fix | **autocomplete:** autocomplete panel top is cut off in landscape mode ([#28982](https://github.com/angular/components/pull/28982)) |
+| [69ae4040e](https://github.com/angular/components/commit/69ae4040e558d9f10004cff81bdd453ed260abd9) | fix | **bottom-sheet:** changed after checked error with zoneless ([#29277](https://github.com/angular/components/pull/29277)) |
+| [317e371f0](https://github.com/angular/components/commit/317e371f0d6e47e7bf0fff7f72ab731d0727e53a) | fix | **core:** generate mat-optgroup tokens in M3 ([#29257](https://github.com/angular/components/pull/29257)) |
+| [93bc60964](https://github.com/angular/components/commit/93bc6096463bbc33c7430b75214cbc2400ac6a91) | fix | **core:** implement elevation classes in M3 |
+| [6310016f2](https://github.com/angular/components/commit/6310016f27263f08ac449971dd50914effcd2d90) | fix | **form-field:** outline label position ([#29138](https://github.com/angular/components/pull/29138)) |
+| [ce195dee4](https://github.com/angular/components/commit/ce195dee400616afd405c26464c03a5085fe3161) | fix | **menu:** animation issue when same menu is used for multiple nested triggers ([#29280](https://github.com/angular/components/pull/29280)) |
+| [9988ef2f5](https://github.com/angular/components/commit/9988ef2f5e632cd216a29067a593957013b4f108) | fix | **menu:** update elevation logic for M3 |
+| [bad8f6ad4](https://github.com/angular/components/commit/bad8f6ad4472c7533990c05589ce134c925314dd) | fix | **paginator:** items per page form field touch target size insufficient ([#29109](https://github.com/angular/components/pull/29109)) |
+| [f834a11d2](https://github.com/angular/components/commit/f834a11d2c9216daf0c7f9e23a7f1bbc67b40591) | fix | **tree:** aria-expanded attribute should not appear in the leaf node ([#29096](https://github.com/angular/components/pull/29096)) |
+
+
+
+
+# 18.0.3 "gossamer-glacier" (2024-06-12)
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [f6b993fdb7](https://github.com/angular/components/commit/f6b993fdb7fbdcfbe0297d320a5961097002308d) | fix | **dialog:** Make autofocus work with animations disabled ([#29195](https://github.com/angular/components/pull/29195)) |
+| [6dd1689b51](https://github.com/angular/components/commit/6dd1689b519abf287098d30f7698fc37197e3db0) | fix | **dialog:** Make focus behavior consistent across zoneful/zoneless apps ([#29192](https://github.com/angular/components/pull/29192)) |
+| [81d4527f91](https://github.com/angular/components/commit/81d4527f9130605f69dea31a092a60261bde25db) | fix | **radio:** mark radio-group for check on touch ([#29203](https://github.com/angular/components/pull/29203)) |
+| [0f4d1862d3](https://github.com/angular/components/commit/0f4d1862d30366978176a4a87b7799915d3caedd) | fix | **schematics:** estimate missing hues in M3 schematic ([#29231](https://github.com/angular/components/pull/29231)) |
+| [faf348438d](https://github.com/angular/components/commit/faf348438d57db80e8ac5187ffe3900fe398fe77) | fix | **snack-bar:** fix overrides mixin name typo ([#29180](https://github.com/angular/components/pull/29180)) |
@@ -153,11 +335,6 @@
-
-# 18.1.0-next.0 "plastic-moose" (2024-05-29)
-
-
-
# 18.0.1 "plastic-baby" (2024-05-29)
### material
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 10c14d964fe0..1f893f815374 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -196,7 +196,7 @@ Example:
fix(material/button): unable to disable button through binding
Fixes a bug in the Angular Material `button` component where buttons
-cannot be disabled through an binding. This is because the `disabled`
+cannot be disabled through a binding. This is because the `disabled`
input did not set the `.mat-button-disabled` class on the host element.
Fixes #1234
diff --git a/FAQ.md b/FAQ.md
index ae505bfceee8..9b5f369552d3 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -51,10 +51,7 @@ using native CSS Flexbox and CSS Grid.
## What's your relationship to [MDC Web][]?
-MDC Web and Angular Material were created independently by two different teams inside Google.
-The Angular team is now working with the MDC team to share more code to reduce duplication. To that
-end, we are developing new, API-compatible versions of the Angular Material components backed by
-MDC Web. [See @jelbourn's 2019 ng-conf talk](https://youtu.be/4EXQKP-Sihw?t=891) for more details.
+Read more about the [current state of our relationship with MDC Web on our blog](https://blog.angular.dev/the-future-of-material-support-in-angular-7fa0662ecc4b).
[StackOverflow]: https://stackoverflow.com
diff --git a/README.md b/README.md
index 83039b821bd9..6bdf2a32db88 100644
--- a/README.md
+++ b/README.md
@@ -68,7 +68,6 @@ We aim for great user experience with the following screen readers:
[Material Design]: https://material.io
[Google Maps JavaScript API]: https://developers.google.com/maps/documentation/javascript/tutorial
[YouTube Player API]: https://developers.google.com/youtube/iframe_api_reference
-[MDC Web]: https://github.com/material-components/material-components-web/
[cdk-docs]: https://material.angular.io/cdk/categories
[mat-docs]: https://material.angular.io
[map-docs]: https://github.com/angular/components/blob/main/src/google-maps/README.md
diff --git a/goldens/size-test.yaml b/goldens/size-test.yaml
index 35e148e15282..18645551fc0a 100644
--- a/goldens/size-test.yaml
+++ b/goldens/size-test.yaml
@@ -1,15 +1,15 @@
-cdk/drag-drop/all-directives: 153026
-cdk/drag-drop/basic: 150520
-material/autocomplete/without-optgroup: 274252
-material/button-toggle/standalone: 188001
-material/chips/basic: 260951
-material/datepicker/range-picker/without-form-field: 400297
-material/expansion/without-accordion: 197979
-material/form-field/advanced: 263205
-material/form-field/basic: 261635
-material/list/nav-list: 218753
-material/menu/without-lazy-content: 278141
-material/radio/without-group: 199995
-material/select/basic: 316667
-material/tabs/advanced: 259447
-material/tabs/basic: 259301
+cdk/drag-drop/all-directives: 170299
+cdk/drag-drop/basic: 166324
+material/autocomplete/without-optgroup: 223062
+material/button-toggle/standalone: 147380
+material/chips/basic: 208741
+material/datepicker/range-picker/without-form-field: 364729
+material/expansion/without-accordion: 154530
+material/form-field/advanced: 223916
+material/form-field/basic: 222205
+material/list/nav-list: 153825
+material/menu/without-lazy-content: 221068
+material/radio/without-group: 150402
+material/select/basic: 269413
+material/tabs/advanced: 217500
+material/tabs/basic: 217357
diff --git a/guides/getting-started.md b/guides/getting-started.md
index 642cb730f1bb..47dc79fe390f 100644
--- a/guides/getting-started.md
+++ b/guides/getting-started.md
@@ -4,18 +4,11 @@ This guide explains how to set up your Angular project to begin using Angular Ma
information on prerequisites, installing Angular Material, and optionally displaying a sample
Material component in your application to verify your setup.
-*Angular Resources*
-
-If you are new to Angular or getting started with a new Angular application, see
-[Angular's full Getting Started Guide](https://angular.io/start) and
-[Setting up your environment](https://angular.io/guide/setup-local).
-
-For existing applications, follow the steps below to begin using Angular Material.
+This guide assumes that the [Angular CLI](https://angular.dev/tools/cli/setup-local#install-the-angular-cli) has already been installed.
## Install Angular Material
-Use the Angular CLI's installation [schematic](https://material.angular.io/guide/schematics) to set
-up your Angular Material project by running the following command:
+Add Angular Material to your application by running the following command:
```bash
ng add @angular/material
@@ -23,7 +16,7 @@ ng add @angular/material
The `ng add` command will install Angular Material, the
[Component Dev Kit (CDK)](https://material.angular.io/cdk/categories),
-[Angular Animations](https://angular.io/guide/animations) and ask you the following questions to
+[Angular Animations](https://angular.dev/guide/animations) and ask you the following questions to
determine which features to include:
1. Choose a prebuilt theme name, or "custom" for a custom theme:
@@ -36,7 +29,7 @@ determine which features to include:
3. Set up browser animations for Angular Material:
- Importing the [`BrowserAnimationsModule`](https://angular.io/api/platform-browser/animations/BrowserAnimationsModule) into your application enables Angular's [animation system](https://angular.io/guide/animations). Declining this will disable most of Angular Material's animations.
+ Importing the [`BrowserAnimationsModule`](https://angular.io/api/platform-browser/animations/BrowserAnimationsModule) into your application enables Angular's [animation system](https://angular.dev/guide/animations). Declining this will disable most of Angular Material's animations.
The `ng add` command will additionally perform the following actions:
@@ -50,23 +43,22 @@ The `ng add` command will additionally perform the following actions:
You're done! Angular Material is now configured to be used in your application.
-
### Display a component
Let's display a slide toggle component in your app and verify that everything works.
You need to import the `MatSlideToggleModule` that you want to display by adding the following lines to
-your `app.module.ts` file.
+your standalone component's imports, or otherwise your component's `NgModule`.
```ts
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
-@NgModule ({
+@Component ({
imports: [
MatSlideToggleModule,
]
})
-class AppModule {}
+class AppComponent {}
```
Add the `` tag to the `app.component.html` like so:
diff --git a/integration/harness-e2e-cli/yarn.lock b/integration/harness-e2e-cli/yarn.lock
index 144ea3684180..5451d7bd74d9 100644
--- a/integration/harness-e2e-cli/yarn.lock
+++ b/integration/harness-e2e-cli/yarn.lock
@@ -10,22 +10,22 @@
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.24"
-"@angular-devkit/architect@0.1801.0-next.3":
- version "0.1801.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1801.0-next.3.tgz#5fdf5b22006e2275702670c357ef40d569a66b32"
- integrity sha512-G1FZ/GWaoUF2vjbf3KW937mF/sBHv2Qgq9WP3AwbTHlpJPjpOJYFm9bn3kI1J0OmBRqC97gUj4i87nhDkYJoFw==
+"@angular-devkit/architect@0.1801.0":
+ version "0.1801.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1801.0.tgz#7166775bf48bf37c06aed1192480a88ea918ae08"
+ integrity sha512-iZa3J3CrZT6MKiHPw8ijgVwMyCMewCsP4xc75SetUwF/yuqRUHygALs5jJVZQFQjSFUrkg9gqXa1cCjFDwpT8A==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
+ "@angular-devkit/core" "18.1.0"
rxjs "7.8.1"
"@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
"@ampproject/remapping" "2.3.0"
- "@angular-devkit/architect" "0.1801.0-next.3"
- "@angular-devkit/build-webpack" "0.1801.0-next.3"
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular/build" "18.1.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
+ "@angular-devkit/build-webpack" "0.1801.0"
+ "@angular-devkit/core" "18.1.0"
+ "@angular/build" "18.1.0"
"@babel/core" "7.24.7"
"@babel/generator" "7.24.7"
"@babel/helper-annotate-as-pure" "7.24.7"
@@ -36,21 +36,21 @@
"@babel/preset-env" "7.24.7"
"@babel/runtime" "7.24.7"
"@discoveryjs/json-ext" "0.5.7"
- "@ngtools/webpack" "18.1.0-next.3"
+ "@ngtools/webpack" "18.1.0"
"@vitejs/plugin-basic-ssl" "1.1.0"
ansi-colors "4.1.3"
autoprefixer "10.4.19"
babel-loader "9.1.3"
browserslist "^4.21.5"
copy-webpack-plugin "12.0.2"
- critters "0.0.22"
+ critters "0.0.24"
css-loader "7.1.2"
esbuild-wasm "0.21.5"
fast-glob "3.3.2"
http-proxy-middleware "3.0.0"
- https-proxy-agent "7.0.4"
+ https-proxy-agent "7.0.5"
istanbul-lib-instrument "6.0.2"
- jsonc-parser "3.2.1"
+ jsonc-parser "3.3.1"
karma-source-map-support "1.4.0"
less "4.2.0"
less-loader "12.2.0"
@@ -63,7 +63,7 @@
ora "5.4.1"
parse5-html-rewriting-stream "7.0.0"
picomatch "4.0.2"
- piscina "4.6.0"
+ piscina "4.6.1"
postcss "8.4.38"
postcss-loader "8.1.1"
resolve-url-loader "5.0.0"
@@ -73,11 +73,11 @@
semver "7.6.2"
source-map-loader "5.0.0"
source-map-support "0.5.21"
- terser "5.31.1"
+ terser "5.29.2"
tree-kill "1.2.2"
tslib "2.6.3"
undici "6.19.2"
- vite "5.3.1"
+ vite "5.3.2"
watchpack "2.4.1"
webpack "5.92.1"
webpack-dev-middleware "7.2.1"
@@ -87,93 +87,95 @@
optionalDependencies:
esbuild "0.21.5"
-"@angular-devkit/build-webpack@0.1801.0-next.3":
- version "0.1801.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1801.0-next.3.tgz#0fd9c3e6e84ef6577451688cd2183b0bd40e197f"
- integrity sha512-Csoj/4opUxsaLsDdQYHSEcvX0D/PhyecdEddWpeU1pzpd13c39Shfioxs2HwK3T+QlsohkxZxXUl9sTlqK7O3w==
+"@angular-devkit/build-webpack@0.1801.0":
+ version "0.1801.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1801.0.tgz#f8cd693a7e64ceaa5d81ff7d6a95c1cda5bd8b60"
+ integrity sha512-EnkkhE4tVOk3lU5/bt8hNCQCJMefcpU5E4jChRmFu+m0OtKK2kax3hjPTUVwcpbjwpG5rO7J/U5yIhCY9afXKw==
dependencies:
- "@angular-devkit/architect" "0.1801.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
rxjs "7.8.1"
-"@angular-devkit/core@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.1.0-next.3.tgz#eeadb05fe13e231520b3caed3471cb127d1c0173"
- integrity sha512-5XPEE2P7ZXgY0OxsBoJlYrZ99IAVOC8HzI78YsEXafuUMuS3+IdUnkJtERg7lkxtysAHdPme2TuuWtGkun0vmw==
+"@angular-devkit/core@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.1.0.tgz#d4206cf1ca49a63689202f088488a0ce59cddbe2"
+ integrity sha512-6eXQDzHZCbpSMLv9Ohl+1QyLVDmGEXpuuHz3y64LfUTP0aEiBaxk96FjLXIxzJ4f2pbbW2XHzc+yuboGToRA0w==
dependencies:
ajv "8.16.0"
ajv-formats "3.0.1"
- jsonc-parser "3.2.1"
+ jsonc-parser "3.3.1"
picomatch "4.0.2"
rxjs "7.8.1"
source-map "0.7.4"
-"@angular-devkit/schematics@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.1.0-next.3.tgz#03478deb8ddf18a1b44ffb8401971fe7ce27342e"
- integrity sha512-aBEy7ETJG5H9v2SBCngqTnlsi+owxwDf7lhI/FriHmgqKmKtQ3XymnhUxiFCfbPQ53hpH7RW+HDxmB57Lmz/dA==
+"@angular-devkit/schematics@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.1.0.tgz#c7fdb3ab447d34663b3b141bc09abf898502ff5e"
+ integrity sha512-BjrYutLfYFiPOSEcLBWCj3ENkwDn8gMfBSJesaBz7OrZBZGK5j0dVgBLIsGTP96TKo4o4vszJQOvS4AtV6xMGg==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
- jsonc-parser "3.2.1"
+ "@angular-devkit/core" "18.1.0"
+ jsonc-parser "3.3.1"
magic-string "0.30.10"
ora "5.4.1"
rxjs "7.8.1"
"@angular/animations@file:../../node_modules/@angular/animations":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
-"@angular/build@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular/build/-/build-18.1.0-next.3.tgz#a8559e3988f2e225bc71661ff0f2984793bb7da9"
- integrity sha512-z4fyJeqzM/+S8OiIVu1x8Jdo0B41JfKhpBojpvIctDTlUnEP0EHNAqgCk5rAMtHAW4DHyCSOWIDvIaQ07S4ILA==
+"@angular/build@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular/build/-/build-18.1.0.tgz#ecfdf6d3335d68003b7fe77741c0fbf6d7bfaa73"
+ integrity sha512-4yLrGqMDoNBis2Z4s8F3wSqlB2XLtwy/10tREBk9xVaCojERiwDvtHqzbMeHqD6ZMGDFtdhI12q8FT5jZVUmAw==
dependencies:
"@ampproject/remapping" "2.3.0"
- "@angular-devkit/architect" "0.1801.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
"@babel/core" "7.24.7"
"@babel/helper-annotate-as-pure" "7.24.7"
"@babel/helper-split-export-declaration" "7.24.7"
- "@inquirer/confirm" "3.1.10"
+ "@babel/plugin-syntax-import-attributes" "7.24.7"
+ "@inquirer/confirm" "3.1.11"
"@vitejs/plugin-basic-ssl" "1.1.0"
ansi-colors "4.1.3"
browserslist "^4.23.0"
- critters "0.0.22"
+ critters "0.0.24"
esbuild "0.21.5"
fast-glob "3.3.2"
- https-proxy-agent "7.0.4"
+ https-proxy-agent "7.0.5"
lmdb "3.0.12"
magic-string "0.30.10"
mrmime "2.0.0"
ora "5.4.1"
parse5-html-rewriting-stream "7.0.0"
picomatch "4.0.2"
- piscina "4.6.0"
+ piscina "4.6.1"
+ rollup "4.18.0"
sass "1.77.6"
semver "7.6.2"
undici "6.19.2"
- vite "5.3.1"
+ vite "5.3.2"
watchpack "2.4.1"
"@angular/cdk@file:../../dist/releases/cdk":
- version "18.1.0-next.1"
+ version "18.2.0-next.1"
dependencies:
tslib "^2.3.0"
optionalDependencies:
parse5 "^7.1.2"
"@angular/cli@file:../../node_modules/@angular/cli":
- version "18.1.0-next.3"
- dependencies:
- "@angular-devkit/architect" "0.1801.0-next.3"
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular-devkit/schematics" "18.1.0-next.3"
- "@inquirer/prompts" "5.0.6"
- "@listr2/prompt-adapter-inquirer" "2.0.12"
- "@schematics/angular" "18.1.0-next.3"
+ version "18.1.0"
+ dependencies:
+ "@angular-devkit/architect" "0.1801.0"
+ "@angular-devkit/core" "18.1.0"
+ "@angular-devkit/schematics" "18.1.0"
+ "@inquirer/prompts" "5.0.7"
+ "@listr2/prompt-adapter-inquirer" "2.0.13"
+ "@schematics/angular" "18.1.0"
"@yarnpkg/lockfile" "1.1.0"
ini "4.1.3"
- jsonc-parser "3.2.1"
- listr2 "8.2.2"
+ jsonc-parser "3.3.1"
+ listr2 "8.2.3"
npm-package-arg "11.0.2"
npm-pick-manifest "9.0.1"
pacote "18.0.6"
@@ -183,12 +185,12 @@
yargs "17.7.2"
"@angular/common@file:../../node_modules/@angular/common":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
"@babel/core" "7.24.7"
"@jridgewell/sourcemap-codec" "^1.4.14"
@@ -200,85 +202,35 @@
yargs "^17.2.1"
"@angular/compiler@file:../../node_modules/@angular/compiler":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/core@file:../../node_modules/@angular/core":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/forms@file:../../node_modules/@angular/forms":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/material@file:../../dist/releases/material":
- version "18.1.0-next.1"
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/auto-init" "15.0.0-canary.7f224ddd4.0"
- "@material/banner" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/card" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/chips" "15.0.0-canary.7f224ddd4.0"
- "@material/circular-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/data-table" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dialog" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/drawer" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/fab" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/form-field" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/image-list" "15.0.0-canary.7f224ddd4.0"
- "@material/layout-grid" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/radio" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/segmented-button" "15.0.0-canary.7f224ddd4.0"
- "@material/select" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/slider" "15.0.0-canary.7f224ddd4.0"
- "@material/snackbar" "15.0.0-canary.7f224ddd4.0"
- "@material/switch" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-bar" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0"
- "@material/textfield" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/tooltip" "15.0.0-canary.7f224ddd4.0"
- "@material/top-app-bar" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.3.0"
+ version "0.0.0"
"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/platform-browser@file:../../node_modules/@angular/platform-browser":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/router@file:../../node_modules/@angular/router":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
@@ -616,7 +568,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-syntax-import-attributes@^7.24.7":
+"@babel/plugin-syntax-import-attributes@7.24.7", "@babel/plugin-syntax-import-attributes@^7.24.7":
version "7.24.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca"
integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==
@@ -1386,123 +1338,162 @@
dependencies:
"@hapi/hoek" "^9.0.0"
-"@inquirer/checkbox@^2.3.6":
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-2.3.6.tgz#c49919951812aa69bd2bdd42d558e7db0b066879"
- integrity sha512-BziU88BEwBaGclY0RM59QOop2zyPgAr1EH/czvW6/J9ELXYN4vbGTI4KM/ogNnh+Y0yNnVvKxAQqFsI2Ra2BtA==
+"@inquirer/checkbox@^2.3.7":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-2.4.2.tgz#8da196f4e3c4c4fc2df8762a51c8637fb82ba616"
+ integrity sha512-iZRNbTlSB9xXt/+jdMFViBdxw1ILWu3365rzfM5OLwAyOScbDFFGSH7LEUwoq1uOIo48ymOEwYSqP5y8hQMlmA==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/figures" "^1.0.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
+ yoctocolors-cjs "^2.1.2"
-"@inquirer/confirm@3.1.10", "@inquirer/confirm@^3.1.10":
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.10.tgz#8e8b36b1e41d6736d6ac90d1221c9e1ec948eb7a"
- integrity sha512-/aAHu83Njy6yf44T+ZrRPUkMcUqprrOiIKsyMvf9jOV+vF5BNb2ja1aLP33MK36W8eaf91MTL/mU/e6METuENg==
+"@inquirer/confirm@3.1.11":
+ version "3.1.11"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.11.tgz#7b91d1ec548253780165d6abfce02b0b21cfa5c5"
+ integrity sha512-3wWw10VPxQP279FO4bzWsf8YjIAq7NdwATJ4xS2h1uwsXZu/RmtOVV95rZ7yllS1h/dzu+uLewjMAzNDEj8h2w==
dependencies:
- "@inquirer/core" "^8.2.3"
+ "@inquirer/core" "^8.2.4"
"@inquirer/type" "^1.3.3"
-"@inquirer/core@^8.2.3":
- version "8.2.3"
- resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-8.2.3.tgz#e1986ae0e7de4c1dee72d34dcf0f9a3587709eff"
- integrity sha512-WrpDVPAaxJQjHid3Ra4FhUO70YBzkHSYVyW5X48L5zHYdudoPISJqTRRWSeamHfaXda7PNNaC5Py5MEo7QwBNA==
+"@inquirer/confirm@^3.1.11":
+ version "3.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.17.tgz#adca3b0f35e2d2ace53f652a92f987aaccb8482a"
+ integrity sha512-qCpt/AABzPynz8tr69VDvhcjwmzAryipWXtW8Vi6m651da4H/d0Bdn55LkxXD7Rp2gfgxvxzTdb66AhIA8gzBA==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+
+"@inquirer/core@^8.2.4":
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-8.2.4.tgz#300de755849d3166d15127e2341cef6aa4bd031d"
+ integrity sha512-7vsXSfxtrrbwMTirfaKwPcjqJy7pzeuF/bP62yo1NQrRJ5HjmMlrhZml/Ljm9ODc1RnbhJlTeSnCkjtFddKjwA==
dependencies:
"@inquirer/figures" "^1.0.3"
"@inquirer/type" "^1.3.3"
"@types/mute-stream" "^0.0.4"
- "@types/node" "^20.14.6"
+ "@types/node" "^20.14.9"
"@types/wrap-ansi" "^3.0.0"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
cli-spinners "^2.9.2"
cli-width "^4.1.0"
mute-stream "^1.0.0"
+ picocolors "^1.0.1"
signal-exit "^4.1.0"
strip-ansi "^6.0.1"
wrap-ansi "^6.2.0"
-"@inquirer/editor@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-2.1.10.tgz#cb7c792bae681eaecbfb209102059007210d0e0d"
- integrity sha512-5e4OlRNzi1TFVKJVBk4WtWYPtVqpKyIGvltP/bqnZ0AQ9bA9Cgukcs8LniUXsgkw3+IAPFQfP8yBxFX/qIz+2g==
+"@inquirer/core@^9.0.5":
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.0.5.tgz#b5e14d80e87419231981f48fa86f63d15cb8805b"
+ integrity sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
+ "@types/mute-stream" "^0.0.4"
+ "@types/node" "^20.14.11"
+ "@types/wrap-ansi" "^3.0.0"
+ ansi-escapes "^4.3.2"
+ cli-spinners "^2.9.2"
+ cli-width "^4.1.0"
+ mute-stream "^1.0.0"
+ signal-exit "^4.1.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^6.2.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/editor@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-2.1.17.tgz#954dffb07a362edabdec3e8205c2efc215ab44a7"
+ integrity sha512-hwx3VpFQzOY2hFWnY+XPsUGCIUVQ5kYxH6+CExv/RbMiAoN3zXtzj8DyrWBOHami0vBrrnPS8CTq3uQWc7N2BA==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
external-editor "^3.1.0"
-"@inquirer/expand@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-2.1.10.tgz#a90d078ceafd23d3130ce66fb12becfc1dab9211"
- integrity sha512-5wyrw7wH24DqACWnwRhdZioCS4Bq8tvkh2BDyz2a827Zn2QAxZ/o+m17GBD9xPfvTdtxlfYsyKPTSQmGvG+BJA==
+"@inquirer/expand@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-2.1.17.tgz#29872a9577fc2faba0aac6341c48db0334e7399f"
+ integrity sha512-s4V/dC+GeE5s97xoTtZSmC440uNKePKqZgzqEf0XM63ciilnXAtKGvoAWOePFdlK+oGTz0d8bhbPKwpKGvRYfg==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
- chalk "^4.1.2"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+ yoctocolors-cjs "^2.1.2"
"@inquirer/figures@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.3.tgz#1227cc980f88e6d6ab85abadbf164f5038041edd"
integrity sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==
-"@inquirer/input@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.1.10.tgz#ec3ce3977c10414c78a5cca8635cb3e5b5172ccf"
- integrity sha512-KEnho7O0YBj+peA40ZGOuBYf00EQnYbQlPsORgZYdjdUVUrMqQPW3qIvRNJIq+lYlc9RZrfHeMoAv+tWAoZFQg==
+"@inquirer/figures@^1.0.5":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.5.tgz#57f9a996d64d3e3345d2a3ca04d36912e94f8790"
+ integrity sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==
+
+"@inquirer/input@^2.1.11":
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.2.4.tgz#5e98e7d24145ab9513374000f3de61f98b8c54f1"
+ integrity sha512-wvYnDITPQn+ltktj/O9kQjPxOvpmwcpxLWh8brAyD+jlEbihxtrx9cZdZcxqaCVQj3caw4eZa2Uq5xELo4yXkA==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
-"@inquirer/password@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-2.1.10.tgz#0383b218ab6a2a8c552fdae4eef3ca8a84f4a303"
- integrity sha512-hwRi8bITIloH7+30inpIkS0C/+lsdM+HSS/6F5J46Jdo9JLRnUwV4D9ovc4pz6zf2vjCFH/MYlxUBOFe/ix3Tw==
+"@inquirer/password@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-2.1.17.tgz#0fe306721360b53bf172a66f4c48780039f91061"
+ integrity sha512-/u6DM/fDHXoBWyA+9aRhghkeo5smE7wO9k4E2UoJbgiRCkt3JjBEuBqLOJNrz8E16M0ez4UM1vd5cXrmICHW+A==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
-"@inquirer/prompts@5.0.6":
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-5.0.6.tgz#9f4a13a319785975660396c7ce7863df62d68baa"
- integrity sha512-1Fc/8d8tCoYuMXJSG0C5F7Bzs4ViL4VNyOJr35FNnnEvx2GX/unBJDL9ZcYHx/Ps7yQuRAUr50SOvw8QbmJxvg==
- dependencies:
- "@inquirer/checkbox" "^2.3.6"
- "@inquirer/confirm" "^3.1.10"
- "@inquirer/editor" "^2.1.10"
- "@inquirer/expand" "^2.1.10"
- "@inquirer/input" "^2.1.10"
- "@inquirer/password" "^2.1.10"
- "@inquirer/rawlist" "^2.1.10"
- "@inquirer/select" "^2.3.6"
-
-"@inquirer/rawlist@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-2.1.10.tgz#ae4fb8be30213f8ceef0b7c552a0781745f5569f"
- integrity sha512-tGi2O9DP+jDw2/lXKdRlv0YcCfwHcEZAzM+fRe5YjoDyBwUbKzYrDlD4xa6H9hIpPSrOpSpncTEDL9lbUDwXFw==
- dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
- chalk "^4.1.2"
-
-"@inquirer/select@^2.3.6":
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.3.6.tgz#2b1d09f48ec52f1a66c59082ef214ce61a7315b3"
- integrity sha512-eLqlZXre69Jenmar5s+3018xF3lpaGfxVZLHkCzkrhtuTuFjpYtb0YpiYeZNKZm9pa+ih3s9acN/zRt+dDh+qA==
+"@inquirer/prompts@5.0.7":
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-5.0.7.tgz#c2016ad4a02c40f450bf03c39d8269a859bd55e3"
+ integrity sha512-GFcigCxJTKCH3aECzMIu4FhgLJWnFvMXzpI4CCSoELWFtkOOU2P+goYA61+OKpGrB8fPE7q6n8zAXBSlZRrHjQ==
+ dependencies:
+ "@inquirer/checkbox" "^2.3.7"
+ "@inquirer/confirm" "^3.1.11"
+ "@inquirer/editor" "^2.1.11"
+ "@inquirer/expand" "^2.1.11"
+ "@inquirer/input" "^2.1.11"
+ "@inquirer/password" "^2.1.11"
+ "@inquirer/rawlist" "^2.1.11"
+ "@inquirer/select" "^2.3.7"
+
+"@inquirer/rawlist@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-2.1.17.tgz#c17da20af917e35dcc13bf5929748d15c589645d"
+ integrity sha512-RFrw34xU5aVlMA3ZJCaeKGxYjhu3j4i46O2GMmaRRGeLObCRM1yOKQOsRclSTzjd4A7+M5QleR2iuW/68J9Kwg==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/select@^2.3.7":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.4.2.tgz#d76a7a4ced94ddf195942133cc40e63f92d97035"
+ integrity sha512-r78JlgShqRxyAtBDeBHSDtfrOhSQwm2ecWGGaxe7kD9JwgL3UN563G1ncVRYdsWD7/tigflcskfipVeoDLhLJg==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/figures" "^1.0.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
+ yoctocolors-cjs "^2.1.2"
"@inquirer/type@^1.3.3":
version "1.3.3"
resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.3.3.tgz#26b2628630fd2381c7fa1e3ab396feb9bbc575da"
integrity sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==
+"@inquirer/type@^1.5.1":
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.1.tgz#cdd36732e38ea5d2b1a4336aada65ebe7d2765e0"
+ integrity sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==
+ dependencies:
+ mute-stream "^1.0.0"
+
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
@@ -1593,10 +1584,10 @@
resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
-"@listr2/prompt-adapter-inquirer@2.0.12":
- version "2.0.12"
- resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.12.tgz#b0a8c80a0ea16d1c7210b349afa960f337e60afc"
- integrity sha512-Ih7Xhc6EXVgZxXP5A/ryLgvrDLLHOpbP93P9jR9g27NGvYwk0Ac3eyQVDrMnOpWmVrzlpqVY/UXbwPWcrncgXw==
+"@listr2/prompt-adapter-inquirer@2.0.13":
+ version "2.0.13"
+ resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.13.tgz#5d8d51f3dd0b32ad9b3802a0adb7d02a71792904"
+ integrity sha512-nAl6teTt7EWSjttNavAnv3uFR3w3vPP3OTYmHyPNHzKhAj2NoBDHmbS3MGpvvO8KXXPASnHjEGrrKrdKTMKPnQ==
dependencies:
"@inquirer/type" "^1.3.3"
@@ -1630,708 +1621,6 @@
resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.12.tgz#0e06dc23dfe23c4a9d0a9cbcce1b0af74c8884a0"
integrity sha512-CO3MFV8gUx16NU/CyyuumAKblESwvoGVA2XhQKZ976OTOxaTbb8F8D3f0iiZ4MYqsN74jIrFuCmXpPnpjbhfOQ==
-"@material/animation@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz#14b4f80718f9d405953dfca4376f9bcef609adc6"
- integrity sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==
- dependencies:
- tslib "^2.1.0"
-
-"@material/auto-init@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz#9d1b6ed5d27e0c4c037a0cdc14e73729282d718d"
- integrity sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/banner@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz#2cf24525e3dd1104f8c311d63c71f2e6200de1fb"
- integrity sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/base@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz#4960bef078e0c092f5293eb331f732d8e8e9265e"
- integrity sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==
- dependencies:
- tslib "^2.1.0"
-
-"@material/button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz#8de20a17fa75529f65553d9fb6c4af5d2743fa94"
- integrity sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==
- dependencies:
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/card@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz#3ac82035f7260ce8b8337402d2102bc254169dff"
- integrity sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==
- dependencies:
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/checkbox@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz#a8223914b244cd7a23d9279b9fce3197a9473e69"
- integrity sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/chips@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz#e5f44ba72100188e49075fc701d187ef3e75ba82"
- integrity sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/circular-progress@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz#0ee8de2cc989007a6029e60f6c7fb36af222a0ac"
- integrity sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/data-table@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz#fc5417a3e476896e92b8ada4804ef82d373831fa"
- integrity sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/select" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/density@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz#3fd8625b734597556c2bf18362a709485b4d1899"
- integrity sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==
- dependencies:
- tslib "^2.1.0"
-
-"@material/dialog@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz#13b414c6afa6e015845d1bbf09337d8eb1270465"
- integrity sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/dom@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz#4650cdc01439d033073bca09bbe94e5cbdc1a70e"
- integrity sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/drawer@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz#089efcc9ba1622c6f6acb5e292f2edd9b2482558"
- integrity sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/elevation@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz#b8fdde1b096dd8352440fc7a616c137d18e9c687"
- integrity sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/fab@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz#e99acd7dc990e81ccb0deb834e6b6c3bd1747ea8"
- integrity sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/feature-targeting@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz#bb1a326dad1cfd113459d7cb0096c0ab7ce0c951"
- integrity sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==
- dependencies:
- tslib "^2.1.0"
-
-"@material/floating-label@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz#c47c9df4424bfdcb824ba91096b130bc574c7127"
- integrity sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/focus-ring@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz#b1822b45a99009e9854a9e6c9f013708d159039d"
- integrity sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==
- dependencies:
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
-
-"@material/form-field@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz#0f3c332361ca5e00fdafb9f854cc5cebe445a340"
- integrity sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/icon-button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz#75a31e0b1287f98fba4355554725248340521c04"
- integrity sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/image-list@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz#36bb04e6cf16a293dfb850d0fce585b1d2c724c3"
- integrity sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/layout-grid@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz#656c39a44a715331ce11fe0aea281bc0e6c793aa"
- integrity sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==
- dependencies:
- tslib "^2.1.0"
-
-"@material/line-ripple@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz#66487ff758834306180a7449ce4487103bcfe1d8"
- integrity sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/linear-progress@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz#b18179c6790db14870505e4362184d01ee3b9cb3"
- integrity sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/list@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz#e096d903ddbf06dd0177a317953d902133395b5e"
- integrity sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/menu-surface@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz#80678f927beec0ec22e68cb05b9242dc0b99543a"
- integrity sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/menu@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz#f7a2fc94640afae6e816a75abf5dfc77d0bf9920"
- integrity sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/notched-outline@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz#d13391d4e211c077980e2fed81d81cc81a6a84fa"
- integrity sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/progress-indicator@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz#6d70bf1ecf406c1da317402021a2970506921077"
- integrity sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==
- dependencies:
- tslib "^2.1.0"
-
-"@material/radio@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz#57834ac2d3441d1036041a94fe00b80c44d26b56"
- integrity sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/ripple@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz#5ce82710d337314f343d0b80e39f33a109e42801"
- integrity sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/rtl@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz#25cf5447c2f59eea80bdb83a71ab19f15ff32e3d"
- integrity sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==
- dependencies:
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/segmented-button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz#c36ca64ea8dfeb73bfdfdddb08b436e6c29f7071"
- integrity sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/select@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz#cf7fe97b9e4b47d1a53ee5fa1d21c3fe2245361c"
- integrity sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/shape@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz#f4cb9f8f779449b12d69d8a303bab54211db7e52"
- integrity sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/slider@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz#beba0d242fd110f063422fba40be3850cda01e44"
- integrity sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/snackbar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz#55765e8755d031186954fed98c2fb6209e82bce0"
- integrity sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/switch@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz#71fa2bd8819917dae6991e118aef819d780d690e"
- integrity sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/tab-bar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz#34fb2585163c4da265ce6ca318e6bf6efd7caf1b"
- integrity sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab-indicator@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz#85f91e23142249d18379cf6415d3b2385ccdee0e"
- integrity sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab-scroller@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz#f0fc898fc8f3ca293676d04179ed2b1d03cb38a1"
- integrity sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz#77950384cbf0a418dc59352e244c0c3ec0ee83cb"
- integrity sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/textfield@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz#db502c644180f31afc6060bc5baaafab303d6608"
- integrity sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/theme@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz#7523997eb51a21bffd598aa84fd1e76b7a0bb980"
- integrity sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tokens@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz#4ae8b300fc3ea5b9a6e53c3257a5aa0efd3442a3"
- integrity sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==
- dependencies:
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
-
-"@material/tooltip@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz#78bf4353b426030071944cdef45f1c2a023537f6"
- integrity sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/top-app-bar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz#ac042d558f0763e8e9f8e48504eac7062882f353"
- integrity sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/touch-target@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz#ab80eeec967fa1444dc5d0198c4c826916a9ff86"
- integrity sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/typography@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz#1191633c70ad0ee0e162feacb5e6efaf42a52cef"
- integrity sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11"
@@ -2362,10 +1651,10 @@
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242"
integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==
-"@ngtools/webpack@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-18.1.0-next.3.tgz#7bf95129390b7cfa41f8a7cdd808491390f8cc6c"
- integrity sha512-cHZ4X2pVyAlz/IcBV8V6F9tMmUbp3b6vSde5IZ4yc4PSC3EtheynCCgNpJK0Pj7vfNl0TV+oG5aRQ5JoTh52Bg==
+"@ngtools/webpack@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-18.1.0.tgz#52c5b879a200be91e19b3bb823c603102e12e256"
+ integrity sha512-J4ATDGq0AubLbP3DOFRjp0pDBvSgzjtiu5l1hGq3xf6AzVAEmZFlp2Ac2EykuK2r8XDnCVoLrxICJOXZWWzP2g==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -2555,14 +1844,14 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4"
integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==
-"@schematics/angular@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-18.1.0-next.3.tgz#ae8607f5a116c344ae911a146fdc50c553422c1f"
- integrity sha512-k+18Ny7KRsQ2lI6wg0QTV2YIPcFkzw30acPcKfCbIyhnMif0y3fU0d0qmMLaHysDb8qBGs4gVNTGuAxe9tdPhQ==
+"@schematics/angular@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-18.1.0.tgz#5585ecc1e0d97f3156eb68404a65f05cbb4b58f0"
+ integrity sha512-k9Dy6JD7hqvCzDqnMjDm7J8H/P6m5mLuX2yEgQWKRAJ/YMINtBQAaKA1T9qXk97kEX6RNLpHMuDIsrIfK/H31Q==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular-devkit/schematics" "18.1.0-next.3"
- jsonc-parser "3.2.1"
+ "@angular-devkit/core" "18.1.0"
+ "@angular-devkit/schematics" "18.1.0"
+ jsonc-parser "3.3.1"
"@sideway/address@^4.1.5":
version "4.1.5"
@@ -2794,7 +2083,7 @@
dependencies:
"@types/node" "*"
-"@types/node@*", "@types/node@>=10.0.0", "@types/node@^20.14.6":
+"@types/node@*", "@types/node@>=10.0.0":
version "20.14.9"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420"
integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==
@@ -2806,6 +2095,13 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240"
integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==
+"@types/node@^20.14.11", "@types/node@^20.14.9":
+ version "20.14.11"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.11.tgz#09b300423343460455043ddd4d0ded6ac579b74b"
+ integrity sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==
+ dependencies:
+ undici-types "~5.26.4"
+
"@types/qs@*":
version "6.9.15"
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce"
@@ -3414,7 +2710,7 @@ chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.1.0, chalk@^4.1.2:
+chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -3706,10 +3002,10 @@ create-require@^1.1.0:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
-critters@0.0.22:
- version "0.0.22"
- resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.22.tgz#ce76b1cbc70078c89d23725646357e3850236dae"
- integrity sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==
+critters@0.0.24:
+ version "0.0.24"
+ resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.24.tgz#d20b16c28908d2dae4b9cd4851d4d2c93de98a0b"
+ integrity sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==
dependencies:
chalk "^4.1.0"
css-select "^5.1.0"
@@ -4616,7 +3912,15 @@ http-proxy@^1.18.1:
follow-redirects "^1.0.0"
requires-port "^1.0.0"
-https-proxy-agent@7.0.4, https-proxy-agent@^7.0.1:
+https-proxy-agent@7.0.5:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2"
+ integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "4"
+
+https-proxy-agent@^7.0.1:
version "7.0.4"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168"
integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==
@@ -5044,10 +4348,10 @@ json5@^2.1.2, json5@^2.2.3:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-jsonc-parser@3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a"
- integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
+jsonc-parser@3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4"
+ integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==
jsonfile@^4.0.0:
version "4.0.0"
@@ -5193,10 +4497,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-listr2@8.2.2:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.2.tgz#e00501c515242798d0ea4a0bbaffa8dc97158648"
- integrity sha512-sy0dq+JPS+RAFiFk2K8Nbub7khNmeeoFALNUJ4Wzk34wZKAzaOhEXqGWs4RA5aui0RaM6Hgn7VEKhCj0mlKNLA==
+listr2@8.2.3:
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.3.tgz#c494bb89b34329cf900e4e0ae8aeef9081d7d7a5"
+ integrity sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==
dependencies:
cli-truncate "^4.0.0"
colorette "^2.0.20"
@@ -6011,10 +5315,10 @@ pify@^4.0.1:
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-piscina@4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.6.0.tgz#ac8e0e0bd3b881ac0fff3d51fa91265b53c32072"
- integrity sha512-VofazM7TCa/2cYhbtZQFyxJJIKe1JYZ5JBTxGMOo770CYupdVpHNvMrX+fuL+mACQ10ISWbzXFBmYjZvzELG5w==
+piscina@4.6.1:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.6.1.tgz#4de673b0ff84bf641b31b07b3348669383b51c9a"
+ integrity sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==
optionalDependencies:
nice-napi "^1.0.2"
@@ -6358,7 +5662,7 @@ rimraf@^5.0.5:
dependencies:
glob "^10.3.7"
-rollup@^4.13.0:
+rollup@4.18.0, rollup@^4.13.0:
version "4.18.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda"
integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==
@@ -6417,11 +5721,6 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-safevalues@^0.3.4:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/safevalues/-/safevalues-0.3.4.tgz#82e846a02b6956d7d40bf9f41e92e13fce0186db"
- integrity sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==
-
sass-loader@14.2.1:
version "14.2.1"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.2.1.tgz#db9ad96b56dc1c1ea546101e76375d5b008fec70"
@@ -6930,7 +6229,17 @@ terser-webpack-plugin@^5.3.10:
serialize-javascript "^6.0.1"
terser "^5.26.0"
-terser@5.31.1, terser@^5.26.0:
+terser@5.29.2:
+ version "5.29.2"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.2.tgz#c17d573ce1da1b30f21a877bffd5655dd86fdb35"
+ integrity sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==
+ dependencies:
+ "@jridgewell/source-map" "^0.3.3"
+ acorn "^8.8.2"
+ commander "^2.20.0"
+ source-map-support "~0.5.20"
+
+terser@^5.26.0:
version "5.31.1"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4"
integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==
@@ -7172,10 +6481,10 @@ vary@^1, vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-vite@5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.1.tgz#bb2ca6b5fd7483249d3e86b25026e27ba8a663e6"
- integrity sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==
+vite@5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.2.tgz#2f0a8531c71060467ed3e0a205a203f269b6d9c8"
+ integrity sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.38"
@@ -7458,6 +6767,11 @@ yocto-queue@^1.0.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
+yoctocolors-cjs@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242"
+ integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==
+
zone.js@~0.14.0:
version "0.14.7"
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.7.tgz#4a9a70599109663b1921165663bbac521995eef3"
diff --git a/integration/ng-add-standalone/yarn.lock b/integration/ng-add-standalone/yarn.lock
index 3a82b3a3a033..a46ea66d899d 100644
--- a/integration/ng-add-standalone/yarn.lock
+++ b/integration/ng-add-standalone/yarn.lock
@@ -10,22 +10,22 @@
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.24"
-"@angular-devkit/architect@0.1801.0-next.3":
- version "0.1801.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1801.0-next.3.tgz#5fdf5b22006e2275702670c357ef40d569a66b32"
- integrity sha512-G1FZ/GWaoUF2vjbf3KW937mF/sBHv2Qgq9WP3AwbTHlpJPjpOJYFm9bn3kI1J0OmBRqC97gUj4i87nhDkYJoFw==
+"@angular-devkit/architect@0.1801.0":
+ version "0.1801.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1801.0.tgz#7166775bf48bf37c06aed1192480a88ea918ae08"
+ integrity sha512-iZa3J3CrZT6MKiHPw8ijgVwMyCMewCsP4xc75SetUwF/yuqRUHygALs5jJVZQFQjSFUrkg9gqXa1cCjFDwpT8A==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
+ "@angular-devkit/core" "18.1.0"
rxjs "7.8.1"
"@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
"@ampproject/remapping" "2.3.0"
- "@angular-devkit/architect" "0.1801.0-next.3"
- "@angular-devkit/build-webpack" "0.1801.0-next.3"
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular/build" "18.1.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
+ "@angular-devkit/build-webpack" "0.1801.0"
+ "@angular-devkit/core" "18.1.0"
+ "@angular/build" "18.1.0"
"@babel/core" "7.24.7"
"@babel/generator" "7.24.7"
"@babel/helper-annotate-as-pure" "7.24.7"
@@ -36,21 +36,21 @@
"@babel/preset-env" "7.24.7"
"@babel/runtime" "7.24.7"
"@discoveryjs/json-ext" "0.5.7"
- "@ngtools/webpack" "18.1.0-next.3"
+ "@ngtools/webpack" "18.1.0"
"@vitejs/plugin-basic-ssl" "1.1.0"
ansi-colors "4.1.3"
autoprefixer "10.4.19"
babel-loader "9.1.3"
browserslist "^4.21.5"
copy-webpack-plugin "12.0.2"
- critters "0.0.22"
+ critters "0.0.24"
css-loader "7.1.2"
esbuild-wasm "0.21.5"
fast-glob "3.3.2"
http-proxy-middleware "3.0.0"
- https-proxy-agent "7.0.4"
+ https-proxy-agent "7.0.5"
istanbul-lib-instrument "6.0.2"
- jsonc-parser "3.2.1"
+ jsonc-parser "3.3.1"
karma-source-map-support "1.4.0"
less "4.2.0"
less-loader "12.2.0"
@@ -63,7 +63,7 @@
ora "5.4.1"
parse5-html-rewriting-stream "7.0.0"
picomatch "4.0.2"
- piscina "4.6.0"
+ piscina "4.6.1"
postcss "8.4.38"
postcss-loader "8.1.1"
resolve-url-loader "5.0.0"
@@ -73,11 +73,11 @@
semver "7.6.2"
source-map-loader "5.0.0"
source-map-support "0.5.21"
- terser "5.31.1"
+ terser "5.29.2"
tree-kill "1.2.2"
tslib "2.6.3"
undici "6.19.2"
- vite "5.3.1"
+ vite "5.3.2"
watchpack "2.4.1"
webpack "5.92.1"
webpack-dev-middleware "7.2.1"
@@ -87,93 +87,95 @@
optionalDependencies:
esbuild "0.21.5"
-"@angular-devkit/build-webpack@0.1801.0-next.3":
- version "0.1801.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1801.0-next.3.tgz#0fd9c3e6e84ef6577451688cd2183b0bd40e197f"
- integrity sha512-Csoj/4opUxsaLsDdQYHSEcvX0D/PhyecdEddWpeU1pzpd13c39Shfioxs2HwK3T+QlsohkxZxXUl9sTlqK7O3w==
+"@angular-devkit/build-webpack@0.1801.0":
+ version "0.1801.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1801.0.tgz#f8cd693a7e64ceaa5d81ff7d6a95c1cda5bd8b60"
+ integrity sha512-EnkkhE4tVOk3lU5/bt8hNCQCJMefcpU5E4jChRmFu+m0OtKK2kax3hjPTUVwcpbjwpG5rO7J/U5yIhCY9afXKw==
dependencies:
- "@angular-devkit/architect" "0.1801.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
rxjs "7.8.1"
-"@angular-devkit/core@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.1.0-next.3.tgz#eeadb05fe13e231520b3caed3471cb127d1c0173"
- integrity sha512-5XPEE2P7ZXgY0OxsBoJlYrZ99IAVOC8HzI78YsEXafuUMuS3+IdUnkJtERg7lkxtysAHdPme2TuuWtGkun0vmw==
+"@angular-devkit/core@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.1.0.tgz#d4206cf1ca49a63689202f088488a0ce59cddbe2"
+ integrity sha512-6eXQDzHZCbpSMLv9Ohl+1QyLVDmGEXpuuHz3y64LfUTP0aEiBaxk96FjLXIxzJ4f2pbbW2XHzc+yuboGToRA0w==
dependencies:
ajv "8.16.0"
ajv-formats "3.0.1"
- jsonc-parser "3.2.1"
+ jsonc-parser "3.3.1"
picomatch "4.0.2"
rxjs "7.8.1"
source-map "0.7.4"
-"@angular-devkit/schematics@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.1.0-next.3.tgz#03478deb8ddf18a1b44ffb8401971fe7ce27342e"
- integrity sha512-aBEy7ETJG5H9v2SBCngqTnlsi+owxwDf7lhI/FriHmgqKmKtQ3XymnhUxiFCfbPQ53hpH7RW+HDxmB57Lmz/dA==
+"@angular-devkit/schematics@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.1.0.tgz#c7fdb3ab447d34663b3b141bc09abf898502ff5e"
+ integrity sha512-BjrYutLfYFiPOSEcLBWCj3ENkwDn8gMfBSJesaBz7OrZBZGK5j0dVgBLIsGTP96TKo4o4vszJQOvS4AtV6xMGg==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
- jsonc-parser "3.2.1"
+ "@angular-devkit/core" "18.1.0"
+ jsonc-parser "3.3.1"
magic-string "0.30.10"
ora "5.4.1"
rxjs "7.8.1"
"@angular/animations@file:../../node_modules/@angular/animations":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
-"@angular/build@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular/build/-/build-18.1.0-next.3.tgz#a8559e3988f2e225bc71661ff0f2984793bb7da9"
- integrity sha512-z4fyJeqzM/+S8OiIVu1x8Jdo0B41JfKhpBojpvIctDTlUnEP0EHNAqgCk5rAMtHAW4DHyCSOWIDvIaQ07S4ILA==
+"@angular/build@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular/build/-/build-18.1.0.tgz#ecfdf6d3335d68003b7fe77741c0fbf6d7bfaa73"
+ integrity sha512-4yLrGqMDoNBis2Z4s8F3wSqlB2XLtwy/10tREBk9xVaCojERiwDvtHqzbMeHqD6ZMGDFtdhI12q8FT5jZVUmAw==
dependencies:
"@ampproject/remapping" "2.3.0"
- "@angular-devkit/architect" "0.1801.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
"@babel/core" "7.24.7"
"@babel/helper-annotate-as-pure" "7.24.7"
"@babel/helper-split-export-declaration" "7.24.7"
- "@inquirer/confirm" "3.1.10"
+ "@babel/plugin-syntax-import-attributes" "7.24.7"
+ "@inquirer/confirm" "3.1.11"
"@vitejs/plugin-basic-ssl" "1.1.0"
ansi-colors "4.1.3"
browserslist "^4.23.0"
- critters "0.0.22"
+ critters "0.0.24"
esbuild "0.21.5"
fast-glob "3.3.2"
- https-proxy-agent "7.0.4"
+ https-proxy-agent "7.0.5"
lmdb "3.0.12"
magic-string "0.30.10"
mrmime "2.0.0"
ora "5.4.1"
parse5-html-rewriting-stream "7.0.0"
picomatch "4.0.2"
- piscina "4.6.0"
+ piscina "4.6.1"
+ rollup "4.18.0"
sass "1.77.6"
semver "7.6.2"
undici "6.19.2"
- vite "5.3.1"
+ vite "5.3.2"
watchpack "2.4.1"
"@angular/cdk@file:../../dist/releases/cdk":
- version "18.1.0-next.1"
+ version "18.2.0-next.1"
dependencies:
tslib "^2.3.0"
optionalDependencies:
parse5 "^7.1.2"
"@angular/cli@file:../../node_modules/@angular/cli":
- version "18.1.0-next.3"
- dependencies:
- "@angular-devkit/architect" "0.1801.0-next.3"
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular-devkit/schematics" "18.1.0-next.3"
- "@inquirer/prompts" "5.0.6"
- "@listr2/prompt-adapter-inquirer" "2.0.12"
- "@schematics/angular" "18.1.0-next.3"
+ version "18.1.0"
+ dependencies:
+ "@angular-devkit/architect" "0.1801.0"
+ "@angular-devkit/core" "18.1.0"
+ "@angular-devkit/schematics" "18.1.0"
+ "@inquirer/prompts" "5.0.7"
+ "@listr2/prompt-adapter-inquirer" "2.0.13"
+ "@schematics/angular" "18.1.0"
"@yarnpkg/lockfile" "1.1.0"
ini "4.1.3"
- jsonc-parser "3.2.1"
- listr2 "8.2.2"
+ jsonc-parser "3.3.1"
+ listr2 "8.2.3"
npm-package-arg "11.0.2"
npm-pick-manifest "9.0.1"
pacote "18.0.6"
@@ -183,12 +185,12 @@
yargs "17.7.2"
"@angular/common@file:../../node_modules/@angular/common":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
"@babel/core" "7.24.7"
"@jridgewell/sourcemap-codec" "^1.4.14"
@@ -200,85 +202,35 @@
yargs "^17.2.1"
"@angular/compiler@file:../../node_modules/@angular/compiler":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/core@file:../../node_modules/@angular/core":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/forms@file:../../node_modules/@angular/forms":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/material@file:../../dist/releases/material":
- version "18.1.0-next.1"
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/auto-init" "15.0.0-canary.7f224ddd4.0"
- "@material/banner" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/card" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/chips" "15.0.0-canary.7f224ddd4.0"
- "@material/circular-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/data-table" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dialog" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/drawer" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/fab" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/form-field" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/image-list" "15.0.0-canary.7f224ddd4.0"
- "@material/layout-grid" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/radio" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/segmented-button" "15.0.0-canary.7f224ddd4.0"
- "@material/select" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/slider" "15.0.0-canary.7f224ddd4.0"
- "@material/snackbar" "15.0.0-canary.7f224ddd4.0"
- "@material/switch" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-bar" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0"
- "@material/textfield" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/tooltip" "15.0.0-canary.7f224ddd4.0"
- "@material/top-app-bar" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.3.0"
+ version "0.0.0"
"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/platform-browser@file:../../node_modules/@angular/platform-browser":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/router@file:../../node_modules/@angular/router":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
@@ -616,7 +568,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-syntax-import-attributes@^7.24.7":
+"@babel/plugin-syntax-import-attributes@7.24.7", "@babel/plugin-syntax-import-attributes@^7.24.7":
version "7.24.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca"
integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==
@@ -1367,123 +1319,162 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
-"@inquirer/checkbox@^2.3.6":
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-2.3.6.tgz#c49919951812aa69bd2bdd42d558e7db0b066879"
- integrity sha512-BziU88BEwBaGclY0RM59QOop2zyPgAr1EH/czvW6/J9ELXYN4vbGTI4KM/ogNnh+Y0yNnVvKxAQqFsI2Ra2BtA==
+"@inquirer/checkbox@^2.3.7":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-2.4.2.tgz#8da196f4e3c4c4fc2df8762a51c8637fb82ba616"
+ integrity sha512-iZRNbTlSB9xXt/+jdMFViBdxw1ILWu3365rzfM5OLwAyOScbDFFGSH7LEUwoq1uOIo48ymOEwYSqP5y8hQMlmA==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/figures" "^1.0.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
+ yoctocolors-cjs "^2.1.2"
-"@inquirer/confirm@3.1.10", "@inquirer/confirm@^3.1.10":
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.10.tgz#8e8b36b1e41d6736d6ac90d1221c9e1ec948eb7a"
- integrity sha512-/aAHu83Njy6yf44T+ZrRPUkMcUqprrOiIKsyMvf9jOV+vF5BNb2ja1aLP33MK36W8eaf91MTL/mU/e6METuENg==
+"@inquirer/confirm@3.1.11":
+ version "3.1.11"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.11.tgz#7b91d1ec548253780165d6abfce02b0b21cfa5c5"
+ integrity sha512-3wWw10VPxQP279FO4bzWsf8YjIAq7NdwATJ4xS2h1uwsXZu/RmtOVV95rZ7yllS1h/dzu+uLewjMAzNDEj8h2w==
dependencies:
- "@inquirer/core" "^8.2.3"
+ "@inquirer/core" "^8.2.4"
"@inquirer/type" "^1.3.3"
-"@inquirer/core@^8.2.3":
- version "8.2.3"
- resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-8.2.3.tgz#e1986ae0e7de4c1dee72d34dcf0f9a3587709eff"
- integrity sha512-WrpDVPAaxJQjHid3Ra4FhUO70YBzkHSYVyW5X48L5zHYdudoPISJqTRRWSeamHfaXda7PNNaC5Py5MEo7QwBNA==
+"@inquirer/confirm@^3.1.11":
+ version "3.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.17.tgz#adca3b0f35e2d2ace53f652a92f987aaccb8482a"
+ integrity sha512-qCpt/AABzPynz8tr69VDvhcjwmzAryipWXtW8Vi6m651da4H/d0Bdn55LkxXD7Rp2gfgxvxzTdb66AhIA8gzBA==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+
+"@inquirer/core@^8.2.4":
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-8.2.4.tgz#300de755849d3166d15127e2341cef6aa4bd031d"
+ integrity sha512-7vsXSfxtrrbwMTirfaKwPcjqJy7pzeuF/bP62yo1NQrRJ5HjmMlrhZml/Ljm9ODc1RnbhJlTeSnCkjtFddKjwA==
dependencies:
"@inquirer/figures" "^1.0.3"
"@inquirer/type" "^1.3.3"
"@types/mute-stream" "^0.0.4"
- "@types/node" "^20.14.6"
+ "@types/node" "^20.14.9"
"@types/wrap-ansi" "^3.0.0"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
cli-spinners "^2.9.2"
cli-width "^4.1.0"
mute-stream "^1.0.0"
+ picocolors "^1.0.1"
signal-exit "^4.1.0"
strip-ansi "^6.0.1"
wrap-ansi "^6.2.0"
-"@inquirer/editor@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-2.1.10.tgz#cb7c792bae681eaecbfb209102059007210d0e0d"
- integrity sha512-5e4OlRNzi1TFVKJVBk4WtWYPtVqpKyIGvltP/bqnZ0AQ9bA9Cgukcs8LniUXsgkw3+IAPFQfP8yBxFX/qIz+2g==
+"@inquirer/core@^9.0.5":
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.0.5.tgz#b5e14d80e87419231981f48fa86f63d15cb8805b"
+ integrity sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
+ "@types/mute-stream" "^0.0.4"
+ "@types/node" "^20.14.11"
+ "@types/wrap-ansi" "^3.0.0"
+ ansi-escapes "^4.3.2"
+ cli-spinners "^2.9.2"
+ cli-width "^4.1.0"
+ mute-stream "^1.0.0"
+ signal-exit "^4.1.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^6.2.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/editor@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-2.1.17.tgz#954dffb07a362edabdec3e8205c2efc215ab44a7"
+ integrity sha512-hwx3VpFQzOY2hFWnY+XPsUGCIUVQ5kYxH6+CExv/RbMiAoN3zXtzj8DyrWBOHami0vBrrnPS8CTq3uQWc7N2BA==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
external-editor "^3.1.0"
-"@inquirer/expand@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-2.1.10.tgz#a90d078ceafd23d3130ce66fb12becfc1dab9211"
- integrity sha512-5wyrw7wH24DqACWnwRhdZioCS4Bq8tvkh2BDyz2a827Zn2QAxZ/o+m17GBD9xPfvTdtxlfYsyKPTSQmGvG+BJA==
+"@inquirer/expand@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-2.1.17.tgz#29872a9577fc2faba0aac6341c48db0334e7399f"
+ integrity sha512-s4V/dC+GeE5s97xoTtZSmC440uNKePKqZgzqEf0XM63ciilnXAtKGvoAWOePFdlK+oGTz0d8bhbPKwpKGvRYfg==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
- chalk "^4.1.2"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+ yoctocolors-cjs "^2.1.2"
"@inquirer/figures@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.3.tgz#1227cc980f88e6d6ab85abadbf164f5038041edd"
integrity sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==
-"@inquirer/input@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.1.10.tgz#ec3ce3977c10414c78a5cca8635cb3e5b5172ccf"
- integrity sha512-KEnho7O0YBj+peA40ZGOuBYf00EQnYbQlPsORgZYdjdUVUrMqQPW3qIvRNJIq+lYlc9RZrfHeMoAv+tWAoZFQg==
+"@inquirer/figures@^1.0.5":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.5.tgz#57f9a996d64d3e3345d2a3ca04d36912e94f8790"
+ integrity sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==
+
+"@inquirer/input@^2.1.11":
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.2.4.tgz#5e98e7d24145ab9513374000f3de61f98b8c54f1"
+ integrity sha512-wvYnDITPQn+ltktj/O9kQjPxOvpmwcpxLWh8brAyD+jlEbihxtrx9cZdZcxqaCVQj3caw4eZa2Uq5xELo4yXkA==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
-"@inquirer/password@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-2.1.10.tgz#0383b218ab6a2a8c552fdae4eef3ca8a84f4a303"
- integrity sha512-hwRi8bITIloH7+30inpIkS0C/+lsdM+HSS/6F5J46Jdo9JLRnUwV4D9ovc4pz6zf2vjCFH/MYlxUBOFe/ix3Tw==
+"@inquirer/password@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-2.1.17.tgz#0fe306721360b53bf172a66f4c48780039f91061"
+ integrity sha512-/u6DM/fDHXoBWyA+9aRhghkeo5smE7wO9k4E2UoJbgiRCkt3JjBEuBqLOJNrz8E16M0ez4UM1vd5cXrmICHW+A==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
-"@inquirer/prompts@5.0.6":
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-5.0.6.tgz#9f4a13a319785975660396c7ce7863df62d68baa"
- integrity sha512-1Fc/8d8tCoYuMXJSG0C5F7Bzs4ViL4VNyOJr35FNnnEvx2GX/unBJDL9ZcYHx/Ps7yQuRAUr50SOvw8QbmJxvg==
- dependencies:
- "@inquirer/checkbox" "^2.3.6"
- "@inquirer/confirm" "^3.1.10"
- "@inquirer/editor" "^2.1.10"
- "@inquirer/expand" "^2.1.10"
- "@inquirer/input" "^2.1.10"
- "@inquirer/password" "^2.1.10"
- "@inquirer/rawlist" "^2.1.10"
- "@inquirer/select" "^2.3.6"
-
-"@inquirer/rawlist@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-2.1.10.tgz#ae4fb8be30213f8ceef0b7c552a0781745f5569f"
- integrity sha512-tGi2O9DP+jDw2/lXKdRlv0YcCfwHcEZAzM+fRe5YjoDyBwUbKzYrDlD4xa6H9hIpPSrOpSpncTEDL9lbUDwXFw==
- dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
- chalk "^4.1.2"
-
-"@inquirer/select@^2.3.6":
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.3.6.tgz#2b1d09f48ec52f1a66c59082ef214ce61a7315b3"
- integrity sha512-eLqlZXre69Jenmar5s+3018xF3lpaGfxVZLHkCzkrhtuTuFjpYtb0YpiYeZNKZm9pa+ih3s9acN/zRt+dDh+qA==
+"@inquirer/prompts@5.0.7":
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-5.0.7.tgz#c2016ad4a02c40f450bf03c39d8269a859bd55e3"
+ integrity sha512-GFcigCxJTKCH3aECzMIu4FhgLJWnFvMXzpI4CCSoELWFtkOOU2P+goYA61+OKpGrB8fPE7q6n8zAXBSlZRrHjQ==
+ dependencies:
+ "@inquirer/checkbox" "^2.3.7"
+ "@inquirer/confirm" "^3.1.11"
+ "@inquirer/editor" "^2.1.11"
+ "@inquirer/expand" "^2.1.11"
+ "@inquirer/input" "^2.1.11"
+ "@inquirer/password" "^2.1.11"
+ "@inquirer/rawlist" "^2.1.11"
+ "@inquirer/select" "^2.3.7"
+
+"@inquirer/rawlist@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-2.1.17.tgz#c17da20af917e35dcc13bf5929748d15c589645d"
+ integrity sha512-RFrw34xU5aVlMA3ZJCaeKGxYjhu3j4i46O2GMmaRRGeLObCRM1yOKQOsRclSTzjd4A7+M5QleR2iuW/68J9Kwg==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/select@^2.3.7":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.4.2.tgz#d76a7a4ced94ddf195942133cc40e63f92d97035"
+ integrity sha512-r78JlgShqRxyAtBDeBHSDtfrOhSQwm2ecWGGaxe7kD9JwgL3UN563G1ncVRYdsWD7/tigflcskfipVeoDLhLJg==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/figures" "^1.0.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
+ yoctocolors-cjs "^2.1.2"
"@inquirer/type@^1.3.3":
version "1.3.3"
resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.3.3.tgz#26b2628630fd2381c7fa1e3ab396feb9bbc575da"
integrity sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==
+"@inquirer/type@^1.5.1":
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.1.tgz#cdd36732e38ea5d2b1a4336aada65ebe7d2765e0"
+ integrity sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==
+ dependencies:
+ mute-stream "^1.0.0"
+
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
@@ -1566,10 +1557,10 @@
resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
-"@listr2/prompt-adapter-inquirer@2.0.12":
- version "2.0.12"
- resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.12.tgz#b0a8c80a0ea16d1c7210b349afa960f337e60afc"
- integrity sha512-Ih7Xhc6EXVgZxXP5A/ryLgvrDLLHOpbP93P9jR9g27NGvYwk0Ac3eyQVDrMnOpWmVrzlpqVY/UXbwPWcrncgXw==
+"@listr2/prompt-adapter-inquirer@2.0.13":
+ version "2.0.13"
+ resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.13.tgz#5d8d51f3dd0b32ad9b3802a0adb7d02a71792904"
+ integrity sha512-nAl6teTt7EWSjttNavAnv3uFR3w3vPP3OTYmHyPNHzKhAj2NoBDHmbS3MGpvvO8KXXPASnHjEGrrKrdKTMKPnQ==
dependencies:
"@inquirer/type" "^1.3.3"
@@ -1603,708 +1594,6 @@
resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.12.tgz#0e06dc23dfe23c4a9d0a9cbcce1b0af74c8884a0"
integrity sha512-CO3MFV8gUx16NU/CyyuumAKblESwvoGVA2XhQKZ976OTOxaTbb8F8D3f0iiZ4MYqsN74jIrFuCmXpPnpjbhfOQ==
-"@material/animation@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz#14b4f80718f9d405953dfca4376f9bcef609adc6"
- integrity sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==
- dependencies:
- tslib "^2.1.0"
-
-"@material/auto-init@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz#9d1b6ed5d27e0c4c037a0cdc14e73729282d718d"
- integrity sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/banner@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz#2cf24525e3dd1104f8c311d63c71f2e6200de1fb"
- integrity sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/base@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz#4960bef078e0c092f5293eb331f732d8e8e9265e"
- integrity sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==
- dependencies:
- tslib "^2.1.0"
-
-"@material/button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz#8de20a17fa75529f65553d9fb6c4af5d2743fa94"
- integrity sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==
- dependencies:
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/card@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz#3ac82035f7260ce8b8337402d2102bc254169dff"
- integrity sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==
- dependencies:
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/checkbox@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz#a8223914b244cd7a23d9279b9fce3197a9473e69"
- integrity sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/chips@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz#e5f44ba72100188e49075fc701d187ef3e75ba82"
- integrity sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/circular-progress@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz#0ee8de2cc989007a6029e60f6c7fb36af222a0ac"
- integrity sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/data-table@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz#fc5417a3e476896e92b8ada4804ef82d373831fa"
- integrity sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/select" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/density@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz#3fd8625b734597556c2bf18362a709485b4d1899"
- integrity sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==
- dependencies:
- tslib "^2.1.0"
-
-"@material/dialog@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz#13b414c6afa6e015845d1bbf09337d8eb1270465"
- integrity sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/dom@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz#4650cdc01439d033073bca09bbe94e5cbdc1a70e"
- integrity sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/drawer@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz#089efcc9ba1622c6f6acb5e292f2edd9b2482558"
- integrity sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/elevation@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz#b8fdde1b096dd8352440fc7a616c137d18e9c687"
- integrity sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/fab@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz#e99acd7dc990e81ccb0deb834e6b6c3bd1747ea8"
- integrity sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/feature-targeting@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz#bb1a326dad1cfd113459d7cb0096c0ab7ce0c951"
- integrity sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==
- dependencies:
- tslib "^2.1.0"
-
-"@material/floating-label@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz#c47c9df4424bfdcb824ba91096b130bc574c7127"
- integrity sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/focus-ring@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz#b1822b45a99009e9854a9e6c9f013708d159039d"
- integrity sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==
- dependencies:
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
-
-"@material/form-field@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz#0f3c332361ca5e00fdafb9f854cc5cebe445a340"
- integrity sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/icon-button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz#75a31e0b1287f98fba4355554725248340521c04"
- integrity sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/image-list@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz#36bb04e6cf16a293dfb850d0fce585b1d2c724c3"
- integrity sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/layout-grid@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz#656c39a44a715331ce11fe0aea281bc0e6c793aa"
- integrity sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==
- dependencies:
- tslib "^2.1.0"
-
-"@material/line-ripple@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz#66487ff758834306180a7449ce4487103bcfe1d8"
- integrity sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/linear-progress@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz#b18179c6790db14870505e4362184d01ee3b9cb3"
- integrity sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/list@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz#e096d903ddbf06dd0177a317953d902133395b5e"
- integrity sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/menu-surface@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz#80678f927beec0ec22e68cb05b9242dc0b99543a"
- integrity sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/menu@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz#f7a2fc94640afae6e816a75abf5dfc77d0bf9920"
- integrity sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/notched-outline@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz#d13391d4e211c077980e2fed81d81cc81a6a84fa"
- integrity sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/progress-indicator@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz#6d70bf1ecf406c1da317402021a2970506921077"
- integrity sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==
- dependencies:
- tslib "^2.1.0"
-
-"@material/radio@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz#57834ac2d3441d1036041a94fe00b80c44d26b56"
- integrity sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/ripple@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz#5ce82710d337314f343d0b80e39f33a109e42801"
- integrity sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/rtl@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz#25cf5447c2f59eea80bdb83a71ab19f15ff32e3d"
- integrity sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==
- dependencies:
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/segmented-button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz#c36ca64ea8dfeb73bfdfdddb08b436e6c29f7071"
- integrity sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/select@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz#cf7fe97b9e4b47d1a53ee5fa1d21c3fe2245361c"
- integrity sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/shape@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz#f4cb9f8f779449b12d69d8a303bab54211db7e52"
- integrity sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/slider@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz#beba0d242fd110f063422fba40be3850cda01e44"
- integrity sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/snackbar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz#55765e8755d031186954fed98c2fb6209e82bce0"
- integrity sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/switch@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz#71fa2bd8819917dae6991e118aef819d780d690e"
- integrity sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/tab-bar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz#34fb2585163c4da265ce6ca318e6bf6efd7caf1b"
- integrity sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab-indicator@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz#85f91e23142249d18379cf6415d3b2385ccdee0e"
- integrity sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab-scroller@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz#f0fc898fc8f3ca293676d04179ed2b1d03cb38a1"
- integrity sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz#77950384cbf0a418dc59352e244c0c3ec0ee83cb"
- integrity sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/textfield@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz#db502c644180f31afc6060bc5baaafab303d6608"
- integrity sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/theme@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz#7523997eb51a21bffd598aa84fd1e76b7a0bb980"
- integrity sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tokens@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz#4ae8b300fc3ea5b9a6e53c3257a5aa0efd3442a3"
- integrity sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==
- dependencies:
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
-
-"@material/tooltip@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz#78bf4353b426030071944cdef45f1c2a023537f6"
- integrity sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/top-app-bar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz#ac042d558f0763e8e9f8e48504eac7062882f353"
- integrity sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/touch-target@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz#ab80eeec967fa1444dc5d0198c4c826916a9ff86"
- integrity sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/typography@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz#1191633c70ad0ee0e162feacb5e6efaf42a52cef"
- integrity sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11"
@@ -2335,10 +1624,10 @@
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242"
integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==
-"@ngtools/webpack@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-18.1.0-next.3.tgz#7bf95129390b7cfa41f8a7cdd808491390f8cc6c"
- integrity sha512-cHZ4X2pVyAlz/IcBV8V6F9tMmUbp3b6vSde5IZ4yc4PSC3EtheynCCgNpJK0Pj7vfNl0TV+oG5aRQ5JoTh52Bg==
+"@ngtools/webpack@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-18.1.0.tgz#52c5b879a200be91e19b3bb823c603102e12e256"
+ integrity sha512-J4ATDGq0AubLbP3DOFRjp0pDBvSgzjtiu5l1hGq3xf6AzVAEmZFlp2Ac2EykuK2r8XDnCVoLrxICJOXZWWzP2g==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -2528,14 +1817,14 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4"
integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==
-"@schematics/angular@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-18.1.0-next.3.tgz#ae8607f5a116c344ae911a146fdc50c553422c1f"
- integrity sha512-k+18Ny7KRsQ2lI6wg0QTV2YIPcFkzw30acPcKfCbIyhnMif0y3fU0d0qmMLaHysDb8qBGs4gVNTGuAxe9tdPhQ==
+"@schematics/angular@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-18.1.0.tgz#5585ecc1e0d97f3156eb68404a65f05cbb4b58f0"
+ integrity sha512-k9Dy6JD7hqvCzDqnMjDm7J8H/P6m5mLuX2yEgQWKRAJ/YMINtBQAaKA1T9qXk97kEX6RNLpHMuDIsrIfK/H31Q==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular-devkit/schematics" "18.1.0-next.3"
- jsonc-parser "3.2.1"
+ "@angular-devkit/core" "18.1.0"
+ "@angular-devkit/schematics" "18.1.0"
+ jsonc-parser "3.3.1"
"@sigstore/bundle@^2.3.2":
version "2.3.2"
@@ -2730,13 +2019,20 @@
dependencies:
"@types/node" "*"
-"@types/node@*", "@types/node@>=10.0.0", "@types/node@^20.14.6":
+"@types/node@*", "@types/node@>=10.0.0":
version "20.14.9"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420"
integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==
dependencies:
undici-types "~5.26.4"
+"@types/node@^20.14.11", "@types/node@^20.14.9":
+ version "20.14.11"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.11.tgz#09b300423343460455043ddd4d0ded6ac579b74b"
+ integrity sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==
+ dependencies:
+ undici-types "~5.26.4"
+
"@types/qs@*":
version "6.9.15"
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce"
@@ -3321,7 +2617,7 @@ chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.1.0, chalk@^4.1.2:
+chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -3593,10 +2889,10 @@ cosmiconfig@^9.0.0:
js-yaml "^4.1.0"
parse-json "^5.2.0"
-critters@0.0.22:
- version "0.0.22"
- resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.22.tgz#ce76b1cbc70078c89d23725646357e3850236dae"
- integrity sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==
+critters@0.0.24:
+ version "0.0.24"
+ resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.24.tgz#d20b16c28908d2dae4b9cd4851d4d2c93de98a0b"
+ integrity sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==
dependencies:
chalk "^4.1.0"
css-select "^5.1.0"
@@ -4491,7 +3787,15 @@ http-proxy@^1.18.1:
follow-redirects "^1.0.0"
requires-port "^1.0.0"
-https-proxy-agent@7.0.4, https-proxy-agent@^7.0.1:
+https-proxy-agent@7.0.5:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2"
+ integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "4"
+
+https-proxy-agent@^7.0.1:
version "7.0.4"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168"
integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==
@@ -4886,10 +4190,10 @@ json5@^2.1.2, json5@^2.2.3:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-jsonc-parser@3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a"
- integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
+jsonc-parser@3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4"
+ integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==
jsonfile@^4.0.0:
version "4.0.0"
@@ -5018,10 +4322,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-listr2@8.2.2:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.2.tgz#e00501c515242798d0ea4a0bbaffa8dc97158648"
- integrity sha512-sy0dq+JPS+RAFiFk2K8Nbub7khNmeeoFALNUJ4Wzk34wZKAzaOhEXqGWs4RA5aui0RaM6Hgn7VEKhCj0mlKNLA==
+listr2@8.2.3:
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.3.tgz#c494bb89b34329cf900e4e0ae8aeef9081d7d7a5"
+ integrity sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==
dependencies:
cli-truncate "^4.0.0"
colorette "^2.0.20"
@@ -5826,10 +5130,10 @@ pify@^4.0.1:
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-piscina@4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.6.0.tgz#ac8e0e0bd3b881ac0fff3d51fa91265b53c32072"
- integrity sha512-VofazM7TCa/2cYhbtZQFyxJJIKe1JYZ5JBTxGMOo770CYupdVpHNvMrX+fuL+mACQ10ISWbzXFBmYjZvzELG5w==
+piscina@4.6.1:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.6.1.tgz#4de673b0ff84bf641b31b07b3348669383b51c9a"
+ integrity sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==
optionalDependencies:
nice-napi "^1.0.2"
@@ -6166,7 +5470,7 @@ rimraf@^5.0.5:
dependencies:
glob "^10.3.7"
-rollup@^4.13.0:
+rollup@4.18.0, rollup@^4.13.0:
version "4.18.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda"
integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==
@@ -6225,11 +5529,6 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-safevalues@^0.3.4:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/safevalues/-/safevalues-0.3.4.tgz#82e846a02b6956d7d40bf9f41e92e13fce0186db"
- integrity sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==
-
sass-loader@14.2.1:
version "14.2.1"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.2.1.tgz#db9ad96b56dc1c1ea546101e76375d5b008fec70"
@@ -6718,7 +6017,17 @@ terser-webpack-plugin@^5.3.10:
serialize-javascript "^6.0.1"
terser "^5.26.0"
-terser@5.31.1, terser@^5.26.0:
+terser@5.29.2:
+ version "5.29.2"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.2.tgz#c17d573ce1da1b30f21a877bffd5655dd86fdb35"
+ integrity sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==
+ dependencies:
+ "@jridgewell/source-map" "^0.3.3"
+ acorn "^8.8.2"
+ commander "^2.20.0"
+ source-map-support "~0.5.20"
+
+terser@^5.26.0:
version "5.31.1"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4"
integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==
@@ -6929,10 +6238,10 @@ vary@^1, vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-vite@5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.1.tgz#bb2ca6b5fd7483249d3e86b25026e27ba8a663e6"
- integrity sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==
+vite@5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.2.tgz#2f0a8531c71060467ed3e0a205a203f269b6d9c8"
+ integrity sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.38"
@@ -7186,6 +6495,11 @@ yocto-queue@^1.0.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
+yoctocolors-cjs@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242"
+ integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==
+
zone.js@~0.14.0:
version "0.14.7"
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.7.tgz#4a9a70599109663b1921165663bbac521995eef3"
diff --git a/integration/ng-add/yarn.lock b/integration/ng-add/yarn.lock
index 9676cca7b7b0..538158d952d7 100644
--- a/integration/ng-add/yarn.lock
+++ b/integration/ng-add/yarn.lock
@@ -10,22 +10,22 @@
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.24"
-"@angular-devkit/architect@0.1801.0-next.3":
- version "0.1801.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1801.0-next.3.tgz#5fdf5b22006e2275702670c357ef40d569a66b32"
- integrity sha512-G1FZ/GWaoUF2vjbf3KW937mF/sBHv2Qgq9WP3AwbTHlpJPjpOJYFm9bn3kI1J0OmBRqC97gUj4i87nhDkYJoFw==
+"@angular-devkit/architect@0.1801.0":
+ version "0.1801.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1801.0.tgz#7166775bf48bf37c06aed1192480a88ea918ae08"
+ integrity sha512-iZa3J3CrZT6MKiHPw8ijgVwMyCMewCsP4xc75SetUwF/yuqRUHygALs5jJVZQFQjSFUrkg9gqXa1cCjFDwpT8A==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
+ "@angular-devkit/core" "18.1.0"
rxjs "7.8.1"
"@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
"@ampproject/remapping" "2.3.0"
- "@angular-devkit/architect" "0.1801.0-next.3"
- "@angular-devkit/build-webpack" "0.1801.0-next.3"
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular/build" "18.1.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
+ "@angular-devkit/build-webpack" "0.1801.0"
+ "@angular-devkit/core" "18.1.0"
+ "@angular/build" "18.1.0"
"@babel/core" "7.24.7"
"@babel/generator" "7.24.7"
"@babel/helper-annotate-as-pure" "7.24.7"
@@ -36,21 +36,21 @@
"@babel/preset-env" "7.24.7"
"@babel/runtime" "7.24.7"
"@discoveryjs/json-ext" "0.5.7"
- "@ngtools/webpack" "18.1.0-next.3"
+ "@ngtools/webpack" "18.1.0"
"@vitejs/plugin-basic-ssl" "1.1.0"
ansi-colors "4.1.3"
autoprefixer "10.4.19"
babel-loader "9.1.3"
browserslist "^4.21.5"
copy-webpack-plugin "12.0.2"
- critters "0.0.22"
+ critters "0.0.24"
css-loader "7.1.2"
esbuild-wasm "0.21.5"
fast-glob "3.3.2"
http-proxy-middleware "3.0.0"
- https-proxy-agent "7.0.4"
+ https-proxy-agent "7.0.5"
istanbul-lib-instrument "6.0.2"
- jsonc-parser "3.2.1"
+ jsonc-parser "3.3.1"
karma-source-map-support "1.4.0"
less "4.2.0"
less-loader "12.2.0"
@@ -63,7 +63,7 @@
ora "5.4.1"
parse5-html-rewriting-stream "7.0.0"
picomatch "4.0.2"
- piscina "4.6.0"
+ piscina "4.6.1"
postcss "8.4.38"
postcss-loader "8.1.1"
resolve-url-loader "5.0.0"
@@ -73,11 +73,11 @@
semver "7.6.2"
source-map-loader "5.0.0"
source-map-support "0.5.21"
- terser "5.31.1"
+ terser "5.29.2"
tree-kill "1.2.2"
tslib "2.6.3"
undici "6.19.2"
- vite "5.3.1"
+ vite "5.3.2"
watchpack "2.4.1"
webpack "5.92.1"
webpack-dev-middleware "7.2.1"
@@ -87,93 +87,95 @@
optionalDependencies:
esbuild "0.21.5"
-"@angular-devkit/build-webpack@0.1801.0-next.3":
- version "0.1801.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1801.0-next.3.tgz#0fd9c3e6e84ef6577451688cd2183b0bd40e197f"
- integrity sha512-Csoj/4opUxsaLsDdQYHSEcvX0D/PhyecdEddWpeU1pzpd13c39Shfioxs2HwK3T+QlsohkxZxXUl9sTlqK7O3w==
+"@angular-devkit/build-webpack@0.1801.0":
+ version "0.1801.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1801.0.tgz#f8cd693a7e64ceaa5d81ff7d6a95c1cda5bd8b60"
+ integrity sha512-EnkkhE4tVOk3lU5/bt8hNCQCJMefcpU5E4jChRmFu+m0OtKK2kax3hjPTUVwcpbjwpG5rO7J/U5yIhCY9afXKw==
dependencies:
- "@angular-devkit/architect" "0.1801.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
rxjs "7.8.1"
-"@angular-devkit/core@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.1.0-next.3.tgz#eeadb05fe13e231520b3caed3471cb127d1c0173"
- integrity sha512-5XPEE2P7ZXgY0OxsBoJlYrZ99IAVOC8HzI78YsEXafuUMuS3+IdUnkJtERg7lkxtysAHdPme2TuuWtGkun0vmw==
+"@angular-devkit/core@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-18.1.0.tgz#d4206cf1ca49a63689202f088488a0ce59cddbe2"
+ integrity sha512-6eXQDzHZCbpSMLv9Ohl+1QyLVDmGEXpuuHz3y64LfUTP0aEiBaxk96FjLXIxzJ4f2pbbW2XHzc+yuboGToRA0w==
dependencies:
ajv "8.16.0"
ajv-formats "3.0.1"
- jsonc-parser "3.2.1"
+ jsonc-parser "3.3.1"
picomatch "4.0.2"
rxjs "7.8.1"
source-map "0.7.4"
-"@angular-devkit/schematics@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.1.0-next.3.tgz#03478deb8ddf18a1b44ffb8401971fe7ce27342e"
- integrity sha512-aBEy7ETJG5H9v2SBCngqTnlsi+owxwDf7lhI/FriHmgqKmKtQ3XymnhUxiFCfbPQ53hpH7RW+HDxmB57Lmz/dA==
+"@angular-devkit/schematics@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-18.1.0.tgz#c7fdb3ab447d34663b3b141bc09abf898502ff5e"
+ integrity sha512-BjrYutLfYFiPOSEcLBWCj3ENkwDn8gMfBSJesaBz7OrZBZGK5j0dVgBLIsGTP96TKo4o4vszJQOvS4AtV6xMGg==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
- jsonc-parser "3.2.1"
+ "@angular-devkit/core" "18.1.0"
+ jsonc-parser "3.3.1"
magic-string "0.30.10"
ora "5.4.1"
rxjs "7.8.1"
"@angular/animations@file:../../node_modules/@angular/animations":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
-"@angular/build@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@angular/build/-/build-18.1.0-next.3.tgz#a8559e3988f2e225bc71661ff0f2984793bb7da9"
- integrity sha512-z4fyJeqzM/+S8OiIVu1x8Jdo0B41JfKhpBojpvIctDTlUnEP0EHNAqgCk5rAMtHAW4DHyCSOWIDvIaQ07S4ILA==
+"@angular/build@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@angular/build/-/build-18.1.0.tgz#ecfdf6d3335d68003b7fe77741c0fbf6d7bfaa73"
+ integrity sha512-4yLrGqMDoNBis2Z4s8F3wSqlB2XLtwy/10tREBk9xVaCojERiwDvtHqzbMeHqD6ZMGDFtdhI12q8FT5jZVUmAw==
dependencies:
"@ampproject/remapping" "2.3.0"
- "@angular-devkit/architect" "0.1801.0-next.3"
+ "@angular-devkit/architect" "0.1801.0"
"@babel/core" "7.24.7"
"@babel/helper-annotate-as-pure" "7.24.7"
"@babel/helper-split-export-declaration" "7.24.7"
- "@inquirer/confirm" "3.1.10"
+ "@babel/plugin-syntax-import-attributes" "7.24.7"
+ "@inquirer/confirm" "3.1.11"
"@vitejs/plugin-basic-ssl" "1.1.0"
ansi-colors "4.1.3"
browserslist "^4.23.0"
- critters "0.0.22"
+ critters "0.0.24"
esbuild "0.21.5"
fast-glob "3.3.2"
- https-proxy-agent "7.0.4"
+ https-proxy-agent "7.0.5"
lmdb "3.0.12"
magic-string "0.30.10"
mrmime "2.0.0"
ora "5.4.1"
parse5-html-rewriting-stream "7.0.0"
picomatch "4.0.2"
- piscina "4.6.0"
+ piscina "4.6.1"
+ rollup "4.18.0"
sass "1.77.6"
semver "7.6.2"
undici "6.19.2"
- vite "5.3.1"
+ vite "5.3.2"
watchpack "2.4.1"
"@angular/cdk@file:../../dist/releases/cdk":
- version "18.1.0-next.1"
+ version "18.2.0-next.1"
dependencies:
tslib "^2.3.0"
optionalDependencies:
parse5 "^7.1.2"
"@angular/cli@file:../../node_modules/@angular/cli":
- version "18.1.0-next.3"
- dependencies:
- "@angular-devkit/architect" "0.1801.0-next.3"
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular-devkit/schematics" "18.1.0-next.3"
- "@inquirer/prompts" "5.0.6"
- "@listr2/prompt-adapter-inquirer" "2.0.12"
- "@schematics/angular" "18.1.0-next.3"
+ version "18.1.0"
+ dependencies:
+ "@angular-devkit/architect" "0.1801.0"
+ "@angular-devkit/core" "18.1.0"
+ "@angular-devkit/schematics" "18.1.0"
+ "@inquirer/prompts" "5.0.7"
+ "@listr2/prompt-adapter-inquirer" "2.0.13"
+ "@schematics/angular" "18.1.0"
"@yarnpkg/lockfile" "1.1.0"
ini "4.1.3"
- jsonc-parser "3.2.1"
- listr2 "8.2.2"
+ jsonc-parser "3.3.1"
+ listr2 "8.2.3"
npm-package-arg "11.0.2"
npm-pick-manifest "9.0.1"
pacote "18.0.6"
@@ -183,12 +185,12 @@
yargs "17.7.2"
"@angular/common@file:../../node_modules/@angular/common":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
"@babel/core" "7.24.7"
"@jridgewell/sourcemap-codec" "^1.4.14"
@@ -200,85 +202,35 @@
yargs "^17.2.1"
"@angular/compiler@file:../../node_modules/@angular/compiler":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/core@file:../../node_modules/@angular/core":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/forms@file:../../node_modules/@angular/forms":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/material@file:../../dist/releases/material":
- version "18.1.0-next.1"
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/auto-init" "15.0.0-canary.7f224ddd4.0"
- "@material/banner" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/card" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/chips" "15.0.0-canary.7f224ddd4.0"
- "@material/circular-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/data-table" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dialog" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/drawer" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/fab" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/form-field" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/image-list" "15.0.0-canary.7f224ddd4.0"
- "@material/layout-grid" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/radio" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/segmented-button" "15.0.0-canary.7f224ddd4.0"
- "@material/select" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/slider" "15.0.0-canary.7f224ddd4.0"
- "@material/snackbar" "15.0.0-canary.7f224ddd4.0"
- "@material/switch" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-bar" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0"
- "@material/textfield" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/tooltip" "15.0.0-canary.7f224ddd4.0"
- "@material/top-app-bar" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.3.0"
+ version "0.0.0"
"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/platform-browser@file:../../node_modules/@angular/platform-browser":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
"@angular/router@file:../../node_modules/@angular/router":
- version "18.1.0-next.3"
+ version "18.1.0"
dependencies:
tslib "^2.3.0"
@@ -616,7 +568,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-syntax-import-attributes@^7.24.7":
+"@babel/plugin-syntax-import-attributes@7.24.7", "@babel/plugin-syntax-import-attributes@^7.24.7":
version "7.24.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca"
integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==
@@ -1367,123 +1319,162 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
-"@inquirer/checkbox@^2.3.6":
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-2.3.6.tgz#c49919951812aa69bd2bdd42d558e7db0b066879"
- integrity sha512-BziU88BEwBaGclY0RM59QOop2zyPgAr1EH/czvW6/J9ELXYN4vbGTI4KM/ogNnh+Y0yNnVvKxAQqFsI2Ra2BtA==
+"@inquirer/checkbox@^2.3.7":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-2.4.2.tgz#8da196f4e3c4c4fc2df8762a51c8637fb82ba616"
+ integrity sha512-iZRNbTlSB9xXt/+jdMFViBdxw1ILWu3365rzfM5OLwAyOScbDFFGSH7LEUwoq1uOIo48ymOEwYSqP5y8hQMlmA==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/figures" "^1.0.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
+ yoctocolors-cjs "^2.1.2"
-"@inquirer/confirm@3.1.10", "@inquirer/confirm@^3.1.10":
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.10.tgz#8e8b36b1e41d6736d6ac90d1221c9e1ec948eb7a"
- integrity sha512-/aAHu83Njy6yf44T+ZrRPUkMcUqprrOiIKsyMvf9jOV+vF5BNb2ja1aLP33MK36W8eaf91MTL/mU/e6METuENg==
+"@inquirer/confirm@3.1.11":
+ version "3.1.11"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.11.tgz#7b91d1ec548253780165d6abfce02b0b21cfa5c5"
+ integrity sha512-3wWw10VPxQP279FO4bzWsf8YjIAq7NdwATJ4xS2h1uwsXZu/RmtOVV95rZ7yllS1h/dzu+uLewjMAzNDEj8h2w==
dependencies:
- "@inquirer/core" "^8.2.3"
+ "@inquirer/core" "^8.2.4"
"@inquirer/type" "^1.3.3"
-"@inquirer/core@^8.2.3":
- version "8.2.3"
- resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-8.2.3.tgz#e1986ae0e7de4c1dee72d34dcf0f9a3587709eff"
- integrity sha512-WrpDVPAaxJQjHid3Ra4FhUO70YBzkHSYVyW5X48L5zHYdudoPISJqTRRWSeamHfaXda7PNNaC5Py5MEo7QwBNA==
+"@inquirer/confirm@^3.1.11":
+ version "3.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.1.17.tgz#adca3b0f35e2d2ace53f652a92f987aaccb8482a"
+ integrity sha512-qCpt/AABzPynz8tr69VDvhcjwmzAryipWXtW8Vi6m651da4H/d0Bdn55LkxXD7Rp2gfgxvxzTdb66AhIA8gzBA==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+
+"@inquirer/core@^8.2.4":
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-8.2.4.tgz#300de755849d3166d15127e2341cef6aa4bd031d"
+ integrity sha512-7vsXSfxtrrbwMTirfaKwPcjqJy7pzeuF/bP62yo1NQrRJ5HjmMlrhZml/Ljm9ODc1RnbhJlTeSnCkjtFddKjwA==
dependencies:
"@inquirer/figures" "^1.0.3"
"@inquirer/type" "^1.3.3"
"@types/mute-stream" "^0.0.4"
- "@types/node" "^20.14.6"
+ "@types/node" "^20.14.9"
"@types/wrap-ansi" "^3.0.0"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
cli-spinners "^2.9.2"
cli-width "^4.1.0"
mute-stream "^1.0.0"
+ picocolors "^1.0.1"
signal-exit "^4.1.0"
strip-ansi "^6.0.1"
wrap-ansi "^6.2.0"
-"@inquirer/editor@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-2.1.10.tgz#cb7c792bae681eaecbfb209102059007210d0e0d"
- integrity sha512-5e4OlRNzi1TFVKJVBk4WtWYPtVqpKyIGvltP/bqnZ0AQ9bA9Cgukcs8LniUXsgkw3+IAPFQfP8yBxFX/qIz+2g==
+"@inquirer/core@^9.0.5":
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.0.5.tgz#b5e14d80e87419231981f48fa86f63d15cb8805b"
+ integrity sha512-QWG41I7vn62O9stYKg/juKXt1PEbr/4ZZCPb4KgXDQGwgA9M5NBTQ7FnOvT1ridbxkm/wTxLCNraUs7y47pIRQ==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
+ "@types/mute-stream" "^0.0.4"
+ "@types/node" "^20.14.11"
+ "@types/wrap-ansi" "^3.0.0"
+ ansi-escapes "^4.3.2"
+ cli-spinners "^2.9.2"
+ cli-width "^4.1.0"
+ mute-stream "^1.0.0"
+ signal-exit "^4.1.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^6.2.0"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/editor@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-2.1.17.tgz#954dffb07a362edabdec3e8205c2efc215ab44a7"
+ integrity sha512-hwx3VpFQzOY2hFWnY+XPsUGCIUVQ5kYxH6+CExv/RbMiAoN3zXtzj8DyrWBOHami0vBrrnPS8CTq3uQWc7N2BA==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
external-editor "^3.1.0"
-"@inquirer/expand@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-2.1.10.tgz#a90d078ceafd23d3130ce66fb12becfc1dab9211"
- integrity sha512-5wyrw7wH24DqACWnwRhdZioCS4Bq8tvkh2BDyz2a827Zn2QAxZ/o+m17GBD9xPfvTdtxlfYsyKPTSQmGvG+BJA==
+"@inquirer/expand@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-2.1.17.tgz#29872a9577fc2faba0aac6341c48db0334e7399f"
+ integrity sha512-s4V/dC+GeE5s97xoTtZSmC440uNKePKqZgzqEf0XM63ciilnXAtKGvoAWOePFdlK+oGTz0d8bhbPKwpKGvRYfg==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
- chalk "^4.1.2"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+ yoctocolors-cjs "^2.1.2"
"@inquirer/figures@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.3.tgz#1227cc980f88e6d6ab85abadbf164f5038041edd"
integrity sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==
-"@inquirer/input@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.1.10.tgz#ec3ce3977c10414c78a5cca8635cb3e5b5172ccf"
- integrity sha512-KEnho7O0YBj+peA40ZGOuBYf00EQnYbQlPsORgZYdjdUVUrMqQPW3qIvRNJIq+lYlc9RZrfHeMoAv+tWAoZFQg==
+"@inquirer/figures@^1.0.5":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.5.tgz#57f9a996d64d3e3345d2a3ca04d36912e94f8790"
+ integrity sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==
+
+"@inquirer/input@^2.1.11":
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.2.4.tgz#5e98e7d24145ab9513374000f3de61f98b8c54f1"
+ integrity sha512-wvYnDITPQn+ltktj/O9kQjPxOvpmwcpxLWh8brAyD+jlEbihxtrx9cZdZcxqaCVQj3caw4eZa2Uq5xELo4yXkA==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
-"@inquirer/password@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-2.1.10.tgz#0383b218ab6a2a8c552fdae4eef3ca8a84f4a303"
- integrity sha512-hwRi8bITIloH7+30inpIkS0C/+lsdM+HSS/6F5J46Jdo9JLRnUwV4D9ovc4pz6zf2vjCFH/MYlxUBOFe/ix3Tw==
+"@inquirer/password@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-2.1.17.tgz#0fe306721360b53bf172a66f4c48780039f91061"
+ integrity sha512-/u6DM/fDHXoBWyA+9aRhghkeo5smE7wO9k4E2UoJbgiRCkt3JjBEuBqLOJNrz8E16M0ez4UM1vd5cXrmICHW+A==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
-"@inquirer/prompts@5.0.6":
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-5.0.6.tgz#9f4a13a319785975660396c7ce7863df62d68baa"
- integrity sha512-1Fc/8d8tCoYuMXJSG0C5F7Bzs4ViL4VNyOJr35FNnnEvx2GX/unBJDL9ZcYHx/Ps7yQuRAUr50SOvw8QbmJxvg==
- dependencies:
- "@inquirer/checkbox" "^2.3.6"
- "@inquirer/confirm" "^3.1.10"
- "@inquirer/editor" "^2.1.10"
- "@inquirer/expand" "^2.1.10"
- "@inquirer/input" "^2.1.10"
- "@inquirer/password" "^2.1.10"
- "@inquirer/rawlist" "^2.1.10"
- "@inquirer/select" "^2.3.6"
-
-"@inquirer/rawlist@^2.1.10":
- version "2.1.10"
- resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-2.1.10.tgz#ae4fb8be30213f8ceef0b7c552a0781745f5569f"
- integrity sha512-tGi2O9DP+jDw2/lXKdRlv0YcCfwHcEZAzM+fRe5YjoDyBwUbKzYrDlD4xa6H9hIpPSrOpSpncTEDL9lbUDwXFw==
- dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/type" "^1.3.3"
- chalk "^4.1.2"
-
-"@inquirer/select@^2.3.6":
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.3.6.tgz#2b1d09f48ec52f1a66c59082ef214ce61a7315b3"
- integrity sha512-eLqlZXre69Jenmar5s+3018xF3lpaGfxVZLHkCzkrhtuTuFjpYtb0YpiYeZNKZm9pa+ih3s9acN/zRt+dDh+qA==
+"@inquirer/prompts@5.0.7":
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-5.0.7.tgz#c2016ad4a02c40f450bf03c39d8269a859bd55e3"
+ integrity sha512-GFcigCxJTKCH3aECzMIu4FhgLJWnFvMXzpI4CCSoELWFtkOOU2P+goYA61+OKpGrB8fPE7q6n8zAXBSlZRrHjQ==
+ dependencies:
+ "@inquirer/checkbox" "^2.3.7"
+ "@inquirer/confirm" "^3.1.11"
+ "@inquirer/editor" "^2.1.11"
+ "@inquirer/expand" "^2.1.11"
+ "@inquirer/input" "^2.1.11"
+ "@inquirer/password" "^2.1.11"
+ "@inquirer/rawlist" "^2.1.11"
+ "@inquirer/select" "^2.3.7"
+
+"@inquirer/rawlist@^2.1.11":
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-2.1.17.tgz#c17da20af917e35dcc13bf5929748d15c589645d"
+ integrity sha512-RFrw34xU5aVlMA3ZJCaeKGxYjhu3j4i46O2GMmaRRGeLObCRM1yOKQOsRclSTzjd4A7+M5QleR2iuW/68J9Kwg==
+ dependencies:
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/type" "^1.5.1"
+ yoctocolors-cjs "^2.1.2"
+
+"@inquirer/select@^2.3.7":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.4.2.tgz#d76a7a4ced94ddf195942133cc40e63f92d97035"
+ integrity sha512-r78JlgShqRxyAtBDeBHSDtfrOhSQwm2ecWGGaxe7kD9JwgL3UN563G1ncVRYdsWD7/tigflcskfipVeoDLhLJg==
dependencies:
- "@inquirer/core" "^8.2.3"
- "@inquirer/figures" "^1.0.3"
- "@inquirer/type" "^1.3.3"
+ "@inquirer/core" "^9.0.5"
+ "@inquirer/figures" "^1.0.5"
+ "@inquirer/type" "^1.5.1"
ansi-escapes "^4.3.2"
- chalk "^4.1.2"
+ yoctocolors-cjs "^2.1.2"
"@inquirer/type@^1.3.3":
version "1.3.3"
resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.3.3.tgz#26b2628630fd2381c7fa1e3ab396feb9bbc575da"
integrity sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==
+"@inquirer/type@^1.5.1":
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.1.tgz#cdd36732e38ea5d2b1a4336aada65ebe7d2765e0"
+ integrity sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==
+ dependencies:
+ mute-stream "^1.0.0"
+
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
@@ -1566,10 +1557,10 @@
resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
-"@listr2/prompt-adapter-inquirer@2.0.12":
- version "2.0.12"
- resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.12.tgz#b0a8c80a0ea16d1c7210b349afa960f337e60afc"
- integrity sha512-Ih7Xhc6EXVgZxXP5A/ryLgvrDLLHOpbP93P9jR9g27NGvYwk0Ac3eyQVDrMnOpWmVrzlpqVY/UXbwPWcrncgXw==
+"@listr2/prompt-adapter-inquirer@2.0.13":
+ version "2.0.13"
+ resolved "https://registry.yarnpkg.com/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.13.tgz#5d8d51f3dd0b32ad9b3802a0adb7d02a71792904"
+ integrity sha512-nAl6teTt7EWSjttNavAnv3uFR3w3vPP3OTYmHyPNHzKhAj2NoBDHmbS3MGpvvO8KXXPASnHjEGrrKrdKTMKPnQ==
dependencies:
"@inquirer/type" "^1.3.3"
@@ -1603,708 +1594,6 @@
resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.12.tgz#0e06dc23dfe23c4a9d0a9cbcce1b0af74c8884a0"
integrity sha512-CO3MFV8gUx16NU/CyyuumAKblESwvoGVA2XhQKZ976OTOxaTbb8F8D3f0iiZ4MYqsN74jIrFuCmXpPnpjbhfOQ==
-"@material/animation@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz#14b4f80718f9d405953dfca4376f9bcef609adc6"
- integrity sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==
- dependencies:
- tslib "^2.1.0"
-
-"@material/auto-init@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz#9d1b6ed5d27e0c4c037a0cdc14e73729282d718d"
- integrity sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/banner@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz#2cf24525e3dd1104f8c311d63c71f2e6200de1fb"
- integrity sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/base@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz#4960bef078e0c092f5293eb331f732d8e8e9265e"
- integrity sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==
- dependencies:
- tslib "^2.1.0"
-
-"@material/button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz#8de20a17fa75529f65553d9fb6c4af5d2743fa94"
- integrity sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==
- dependencies:
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/card@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz#3ac82035f7260ce8b8337402d2102bc254169dff"
- integrity sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==
- dependencies:
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/checkbox@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz#a8223914b244cd7a23d9279b9fce3197a9473e69"
- integrity sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/chips@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz#e5f44ba72100188e49075fc701d187ef3e75ba82"
- integrity sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/circular-progress@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz#0ee8de2cc989007a6029e60f6c7fb36af222a0ac"
- integrity sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/data-table@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz#fc5417a3e476896e92b8ada4804ef82d373831fa"
- integrity sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/checkbox" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/select" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/density@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz#3fd8625b734597556c2bf18362a709485b4d1899"
- integrity sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==
- dependencies:
- tslib "^2.1.0"
-
-"@material/dialog@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz#13b414c6afa6e015845d1bbf09337d8eb1270465"
- integrity sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/dom@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz#4650cdc01439d033073bca09bbe94e5cbdc1a70e"
- integrity sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/drawer@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz#089efcc9ba1622c6f6acb5e292f2edd9b2482558"
- integrity sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/elevation@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz#b8fdde1b096dd8352440fc7a616c137d18e9c687"
- integrity sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/fab@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz#e99acd7dc990e81ccb0deb834e6b6c3bd1747ea8"
- integrity sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/feature-targeting@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz#bb1a326dad1cfd113459d7cb0096c0ab7ce0c951"
- integrity sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==
- dependencies:
- tslib "^2.1.0"
-
-"@material/floating-label@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz#c47c9df4424bfdcb824ba91096b130bc574c7127"
- integrity sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/focus-ring@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz#b1822b45a99009e9854a9e6c9f013708d159039d"
- integrity sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==
- dependencies:
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
-
-"@material/form-field@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz#0f3c332361ca5e00fdafb9f854cc5cebe445a340"
- integrity sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/icon-button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz#75a31e0b1287f98fba4355554725248340521c04"
- integrity sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/image-list@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz#36bb04e6cf16a293dfb850d0fce585b1d2c724c3"
- integrity sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/layout-grid@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz#656c39a44a715331ce11fe0aea281bc0e6c793aa"
- integrity sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==
- dependencies:
- tslib "^2.1.0"
-
-"@material/line-ripple@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz#66487ff758834306180a7449ce4487103bcfe1d8"
- integrity sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/linear-progress@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz#b18179c6790db14870505e4362184d01ee3b9cb3"
- integrity sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/list@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz#e096d903ddbf06dd0177a317953d902133395b5e"
- integrity sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/menu-surface@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz#80678f927beec0ec22e68cb05b9242dc0b99543a"
- integrity sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/menu@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz#f7a2fc94640afae6e816a75abf5dfc77d0bf9920"
- integrity sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/notched-outline@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz#d13391d4e211c077980e2fed81d81cc81a6a84fa"
- integrity sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/progress-indicator@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz#6d70bf1ecf406c1da317402021a2970506921077"
- integrity sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==
- dependencies:
- tslib "^2.1.0"
-
-"@material/radio@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz#57834ac2d3441d1036041a94fe00b80c44d26b56"
- integrity sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/ripple@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz#5ce82710d337314f343d0b80e39f33a109e42801"
- integrity sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/rtl@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz#25cf5447c2f59eea80bdb83a71ab19f15ff32e3d"
- integrity sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==
- dependencies:
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/segmented-button@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz#c36ca64ea8dfeb73bfdfdddb08b436e6c29f7071"
- integrity sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/touch-target" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/select@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz#cf7fe97b9e4b47d1a53ee5fa1d21c3fe2245361c"
- integrity sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/list" "15.0.0-canary.7f224ddd4.0"
- "@material/menu" "15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/shape@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz#f4cb9f8f779449b12d69d8a303bab54211db7e52"
- integrity sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/slider@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz#beba0d242fd110f063422fba40be3850cda01e44"
- integrity sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/snackbar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz#55765e8755d031186954fed98c2fb6209e82bce0"
- integrity sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/icon-button" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/switch@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz#71fa2bd8819917dae6991e118aef819d780d690e"
- integrity sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/tab-bar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz#34fb2585163c4da265ce6ca318e6bf6efd7caf1b"
- integrity sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab-indicator@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz#85f91e23142249d18379cf6415d3b2385ccdee0e"
- integrity sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab-scroller@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz#f0fc898fc8f3ca293676d04179ed2b1d03cb38a1"
- integrity sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/tab" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tab@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz#77950384cbf0a418dc59352e244c0c3ec0ee83cb"
- integrity sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/textfield@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz#db502c644180f31afc6060bc5baaafab303d6608"
- integrity sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/density" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/floating-label" "15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/theme@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz#7523997eb51a21bffd598aa84fd1e76b7a0bb980"
- integrity sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/tokens@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz#4ae8b300fc3ea5b9a6e53c3257a5aa0efd3442a3"
- integrity sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==
- dependencies:
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
-
-"@material/tooltip@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz#78bf4353b426030071944cdef45f1c2a023537f6"
- integrity sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/button" "15.0.0-canary.7f224ddd4.0"
- "@material/dom" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/tokens" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- safevalues "^0.3.4"
- tslib "^2.1.0"
-
-"@material/top-app-bar@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz#ac042d558f0763e8e9f8e48504eac7062882f353"
- integrity sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==
- dependencies:
- "@material/animation" "15.0.0-canary.7f224ddd4.0"
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/elevation" "15.0.0-canary.7f224ddd4.0"
- "@material/ripple" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/shape" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- "@material/typography" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/touch-target@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz#ab80eeec967fa1444dc5d0198c4c826916a9ff86"
- integrity sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==
- dependencies:
- "@material/base" "15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/rtl" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
-"@material/typography@15.0.0-canary.7f224ddd4.0":
- version "15.0.0-canary.7f224ddd4.0"
- resolved "https://registry.yarnpkg.com/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz#1191633c70ad0ee0e162feacb5e6efaf42a52cef"
- integrity sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==
- dependencies:
- "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0"
- "@material/theme" "15.0.0-canary.7f224ddd4.0"
- tslib "^2.1.0"
-
"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11"
@@ -2335,10 +1624,10 @@
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242"
integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==
-"@ngtools/webpack@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-18.1.0-next.3.tgz#7bf95129390b7cfa41f8a7cdd808491390f8cc6c"
- integrity sha512-cHZ4X2pVyAlz/IcBV8V6F9tMmUbp3b6vSde5IZ4yc4PSC3EtheynCCgNpJK0Pj7vfNl0TV+oG5aRQ5JoTh52Bg==
+"@ngtools/webpack@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-18.1.0.tgz#52c5b879a200be91e19b3bb823c603102e12e256"
+ integrity sha512-J4ATDGq0AubLbP3DOFRjp0pDBvSgzjtiu5l1hGq3xf6AzVAEmZFlp2Ac2EykuK2r8XDnCVoLrxICJOXZWWzP2g==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -2528,14 +1817,14 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4"
integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==
-"@schematics/angular@18.1.0-next.3":
- version "18.1.0-next.3"
- resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-18.1.0-next.3.tgz#ae8607f5a116c344ae911a146fdc50c553422c1f"
- integrity sha512-k+18Ny7KRsQ2lI6wg0QTV2YIPcFkzw30acPcKfCbIyhnMif0y3fU0d0qmMLaHysDb8qBGs4gVNTGuAxe9tdPhQ==
+"@schematics/angular@18.1.0":
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-18.1.0.tgz#5585ecc1e0d97f3156eb68404a65f05cbb4b58f0"
+ integrity sha512-k9Dy6JD7hqvCzDqnMjDm7J8H/P6m5mLuX2yEgQWKRAJ/YMINtBQAaKA1T9qXk97kEX6RNLpHMuDIsrIfK/H31Q==
dependencies:
- "@angular-devkit/core" "18.1.0-next.3"
- "@angular-devkit/schematics" "18.1.0-next.3"
- jsonc-parser "3.2.1"
+ "@angular-devkit/core" "18.1.0"
+ "@angular-devkit/schematics" "18.1.0"
+ jsonc-parser "3.3.1"
"@sigstore/bundle@^2.3.2":
version "2.3.2"
@@ -2730,7 +2019,7 @@
dependencies:
"@types/node" "*"
-"@types/node@*", "@types/node@>=10.0.0", "@types/node@^20.14.6":
+"@types/node@*", "@types/node@>=10.0.0":
version "20.14.9"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420"
integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==
@@ -2742,6 +2031,13 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240"
integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==
+"@types/node@^20.14.11", "@types/node@^20.14.9":
+ version "20.14.11"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.11.tgz#09b300423343460455043ddd4d0ded6ac579b74b"
+ integrity sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==
+ dependencies:
+ undici-types "~5.26.4"
+
"@types/qs@*":
version "6.9.15"
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce"
@@ -3326,7 +2622,7 @@ chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.1.0, chalk@^4.1.2:
+chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -3598,10 +2894,10 @@ cosmiconfig@^9.0.0:
js-yaml "^4.1.0"
parse-json "^5.2.0"
-critters@0.0.22:
- version "0.0.22"
- resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.22.tgz#ce76b1cbc70078c89d23725646357e3850236dae"
- integrity sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==
+critters@0.0.24:
+ version "0.0.24"
+ resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.24.tgz#d20b16c28908d2dae4b9cd4851d4d2c93de98a0b"
+ integrity sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==
dependencies:
chalk "^4.1.0"
css-select "^5.1.0"
@@ -4496,7 +3792,15 @@ http-proxy@^1.18.1:
follow-redirects "^1.0.0"
requires-port "^1.0.0"
-https-proxy-agent@7.0.4, https-proxy-agent@^7.0.1:
+https-proxy-agent@7.0.5:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2"
+ integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==
+ dependencies:
+ agent-base "^7.0.2"
+ debug "4"
+
+https-proxy-agent@^7.0.1:
version "7.0.4"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168"
integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==
@@ -4895,10 +4199,10 @@ json5@^2.1.2, json5@^2.2.3:
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-jsonc-parser@3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a"
- integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
+jsonc-parser@3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4"
+ integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==
jsonfile@^4.0.0:
version "4.0.0"
@@ -5027,10 +4331,10 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-listr2@8.2.2:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.2.tgz#e00501c515242798d0ea4a0bbaffa8dc97158648"
- integrity sha512-sy0dq+JPS+RAFiFk2K8Nbub7khNmeeoFALNUJ4Wzk34wZKAzaOhEXqGWs4RA5aui0RaM6Hgn7VEKhCj0mlKNLA==
+listr2@8.2.3:
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.3.tgz#c494bb89b34329cf900e4e0ae8aeef9081d7d7a5"
+ integrity sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==
dependencies:
cli-truncate "^4.0.0"
colorette "^2.0.20"
@@ -5835,10 +5139,10 @@ pify@^4.0.1:
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-piscina@4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.6.0.tgz#ac8e0e0bd3b881ac0fff3d51fa91265b53c32072"
- integrity sha512-VofazM7TCa/2cYhbtZQFyxJJIKe1JYZ5JBTxGMOo770CYupdVpHNvMrX+fuL+mACQ10ISWbzXFBmYjZvzELG5w==
+piscina@4.6.1:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.6.1.tgz#4de673b0ff84bf641b31b07b3348669383b51c9a"
+ integrity sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==
optionalDependencies:
nice-napi "^1.0.2"
@@ -6175,7 +5479,7 @@ rimraf@^5.0.5:
dependencies:
glob "^10.3.7"
-rollup@^4.13.0:
+rollup@4.18.0, rollup@^4.13.0:
version "4.18.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda"
integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==
@@ -6234,11 +5538,6 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-safevalues@^0.3.4:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/safevalues/-/safevalues-0.3.4.tgz#82e846a02b6956d7d40bf9f41e92e13fce0186db"
- integrity sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==
-
sass-loader@14.2.1:
version "14.2.1"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.2.1.tgz#db9ad96b56dc1c1ea546101e76375d5b008fec70"
@@ -6727,7 +6026,17 @@ terser-webpack-plugin@^5.3.10:
serialize-javascript "^6.0.1"
terser "^5.26.0"
-terser@5.31.1, terser@^5.26.0:
+terser@5.29.2:
+ version "5.29.2"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.2.tgz#c17d573ce1da1b30f21a877bffd5655dd86fdb35"
+ integrity sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==
+ dependencies:
+ "@jridgewell/source-map" "^0.3.3"
+ acorn "^8.8.2"
+ commander "^2.20.0"
+ source-map-support "~0.5.20"
+
+terser@^5.26.0:
version "5.31.1"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4"
integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==
@@ -6938,10 +6247,10 @@ vary@^1, vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-vite@5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.1.tgz#bb2ca6b5fd7483249d3e86b25026e27ba8a663e6"
- integrity sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==
+vite@5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.2.tgz#2f0a8531c71060467ed3e0a205a203f269b6d9c8"
+ integrity sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.38"
@@ -7195,6 +6504,11 @@ yocto-queue@^1.0.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
+yoctocolors-cjs@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242"
+ integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==
+
zone.js@~0.14.0:
version "0.14.7"
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.7.tgz#4a9a70599109663b1921165663bbac521995eef3"
diff --git a/integration/size-test/BUILD.bazel b/integration/size-test/BUILD.bazel
index b8252c3f4cbf..41db55a67cf5 100644
--- a/integration/size-test/BUILD.bazel
+++ b/integration/size-test/BUILD.bazel
@@ -13,7 +13,7 @@ esbuild_config(
name = "esbuild_config",
config_file = "esbuild.config.mjs",
deps = [
- "@npm//@angular-devkit/build-angular",
+ "@npm//@angular/build",
"@npm//@angular/compiler-cli",
"@npm//@babel/core",
],
diff --git a/integration/size-test/esbuild.config.mjs b/integration/size-test/esbuild.config.mjs
index cbfef364c0f5..0465bf27961a 100644
--- a/integration/size-test/esbuild.config.mjs
+++ b/integration/size-test/esbuild.config.mjs
@@ -10,10 +10,7 @@ import babel from '@babel/core';
import {createEs2015LinkerPlugin} from '@angular/compiler-cli/linker/babel';
import {ConsoleLogger, NodeJSFileSystem, LogLevel} from '@angular/compiler-cli';
import {GLOBAL_DEFS_FOR_TERSER_WITH_AOT} from '@angular/compiler-cli/private/tooling';
-import adjustStaticClassMembersPlugin from '@angular-devkit/build-angular/src/babel/plugins/adjust-static-class-members.js';
-import elideAngularMetadataPlugin from '@angular-devkit/build-angular/src/babel/plugins/elide-angular-metadata.js';
-import adjustTypeScriptEnumsPlugin from '@angular-devkit/build-angular/src/babel/plugins/adjust-typescript-enums.js';
-import pureToplevelFunctionsPlugin from '@angular-devkit/build-angular/src/babel/plugins/pure-toplevel-functions.js';
+import ngBuild from '@angular/build/private';
import fs from 'fs';
/** Babel plugin running the Angular linker. */
@@ -35,9 +32,9 @@ const esbuildBabelOptimizePlugin = {
const content = await fs.promises.readFile(filePath, 'utf8');
const plugins = [
linkerBabelPlugin,
- adjustStaticClassMembersPlugin,
- elideAngularMetadataPlugin,
- adjustTypeScriptEnumsPlugin,
+ ngBuild.adjustStaticMembers,
+ ngBuild.elideAngularMetadata,
+ ngBuild.adjustTypeScriptEnums,
];
// All files except for the auto-generated module entry-point are considered side-effect
@@ -45,7 +42,7 @@ const esbuildBabelOptimizePlugin = {
// with what is done in the Angular CLI compilation pipeline, with respect to everything
// in this repo being an official side-effect free APF package.
if (!args.path.includes('autogenerated_module_index.mjs')) {
- plugins.push(pureToplevelFunctionsPlugin);
+ plugins.push(ngBuild.markTopLevelPure);
}
const {code} = await babel.transformAsync(content, {
diff --git a/integration/yarn-pnp-compat/yarn.lock b/integration/yarn-pnp-compat/yarn.lock
index d4669c618074..8b0013e12164 100644
--- a/integration/yarn-pnp-compat/yarn.lock
+++ b/integration/yarn-pnp-compat/yarn.lock
@@ -5,7 +5,7 @@ __metadata:
version: 8
cacheKey: 10
-"@ampproject/remapping@npm:2.3.0":
+"@ampproject/remapping@npm:2.3.0, @ampproject/remapping@npm:^2.2.0":
version: 2.3.0
resolution: "@ampproject/remapping@npm:2.3.0"
dependencies:
@@ -15,40 +15,30 @@ __metadata:
languageName: node
linkType: hard
-"@ampproject/remapping@npm:^2.2.0":
- version: 2.2.1
- resolution: "@ampproject/remapping@npm:2.2.1"
+"@angular-devkit/architect@npm:0.1801.0":
+ version: 0.1801.0
+ resolution: "@angular-devkit/architect@npm:0.1801.0"
dependencies:
- "@jridgewell/gen-mapping": "npm:^0.3.0"
- "@jridgewell/trace-mapping": "npm:^0.3.9"
- checksum: 10/e15fecbf3b54c988c8b4fdea8ef514ab482537e8a080b2978cc4b47ccca7140577ca7b65ad3322dcce65bc73ee6e5b90cbfe0bbd8c766dad04d5c62ec9634c42
- languageName: node
- linkType: hard
-
-"@angular-devkit/architect@npm:0.1801.0-next.3":
- version: 0.1801.0-next.3
- resolution: "@angular-devkit/architect@npm:0.1801.0-next.3"
- dependencies:
- "@angular-devkit/core": "npm:18.1.0-next.3"
+ "@angular-devkit/core": "npm:18.1.0"
rxjs: "npm:7.8.1"
dependenciesMeta:
esbuild:
built: true
puppeteer:
built: true
- checksum: 10/d0c7a0aab242c990ec393018c7afb0a1d9ae09cd1dd7048650a8bc9ffbade0b3f4d90db96a8d351aedcb9bf8c32506559e749aa78ac4b0ebdb3edd714bb53644
+ checksum: 10/812fd2c91466e9a32fac8e27695096f10d930fb0e0053737704a728afb336b2438e7bd300766084542e0c6c549dfa2a8a202139c14d661dc596d23c0ad17ad5a
languageName: node
linkType: hard
"@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular#../../node_modules/@angular-devkit/build-angular::hash=7fa281&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular-devkit/build-angular@file:../../node_modules/@angular-devkit/build-angular#../../node_modules/@angular-devkit/build-angular::hash=821cd6&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
"@ampproject/remapping": "npm:2.3.0"
- "@angular-devkit/architect": "npm:0.1801.0-next.3"
- "@angular-devkit/build-webpack": "npm:0.1801.0-next.3"
- "@angular-devkit/core": "npm:18.1.0-next.3"
- "@angular/build": "npm:18.1.0-next.3"
+ "@angular-devkit/architect": "npm:0.1801.0"
+ "@angular-devkit/build-webpack": "npm:0.1801.0"
+ "@angular-devkit/core": "npm:18.1.0"
+ "@angular/build": "npm:18.1.0"
"@babel/core": "npm:7.24.7"
"@babel/generator": "npm:7.24.7"
"@babel/helper-annotate-as-pure": "npm:7.24.7"
@@ -59,22 +49,22 @@ __metadata:
"@babel/preset-env": "npm:7.24.7"
"@babel/runtime": "npm:7.24.7"
"@discoveryjs/json-ext": "npm:0.5.7"
- "@ngtools/webpack": "npm:18.1.0-next.3"
+ "@ngtools/webpack": "npm:18.1.0"
"@vitejs/plugin-basic-ssl": "npm:1.1.0"
ansi-colors: "npm:4.1.3"
autoprefixer: "npm:10.4.19"
babel-loader: "npm:9.1.3"
browserslist: "npm:^4.21.5"
copy-webpack-plugin: "npm:12.0.2"
- critters: "npm:0.0.22"
+ critters: "npm:0.0.24"
css-loader: "npm:7.1.2"
esbuild: "npm:0.21.5"
esbuild-wasm: "npm:0.21.5"
fast-glob: "npm:3.3.2"
http-proxy-middleware: "npm:3.0.0"
- https-proxy-agent: "npm:7.0.4"
+ https-proxy-agent: "npm:7.0.5"
istanbul-lib-instrument: "npm:6.0.2"
- jsonc-parser: "npm:3.2.1"
+ jsonc-parser: "npm:3.3.1"
karma-source-map-support: "npm:1.4.0"
less: "npm:4.2.0"
less-loader: "npm:12.2.0"
@@ -87,7 +77,7 @@ __metadata:
ora: "npm:5.4.1"
parse5-html-rewriting-stream: "npm:7.0.0"
picomatch: "npm:4.0.2"
- piscina: "npm:4.6.0"
+ piscina: "npm:4.6.1"
postcss: "npm:8.4.38"
postcss-loader: "npm:8.1.1"
resolve-url-loader: "npm:5.0.0"
@@ -97,11 +87,11 @@ __metadata:
semver: "npm:7.6.2"
source-map-loader: "npm:5.0.0"
source-map-support: "npm:0.5.21"
- terser: "npm:5.31.1"
+ terser: "npm:5.29.2"
tree-kill: "npm:1.2.2"
tslib: "npm:2.6.3"
undici: "npm:6.19.2"
- vite: "npm:5.3.1"
+ vite: "npm:5.3.2"
watchpack: "npm:2.4.1"
webpack: "npm:5.92.1"
webpack-dev-middleware: "npm:7.2.1"
@@ -109,16 +99,16 @@ __metadata:
webpack-merge: "npm:5.10.0"
webpack-subresource-integrity: "npm:5.1.0"
peerDependencies:
- "@angular/compiler-cli": ^18.0.0 || ^18.1.0-next.0
- "@angular/localize": ^18.0.0 || ^18.1.0-next.0
- "@angular/platform-server": ^18.0.0 || ^18.1.0-next.0
- "@angular/service-worker": ^18.0.0 || ^18.1.0-next.0
+ "@angular/compiler-cli": ^18.0.0
+ "@angular/localize": ^18.0.0
+ "@angular/platform-server": ^18.0.0
+ "@angular/service-worker": ^18.0.0
"@web/test-runner": ^0.18.0
browser-sync: ^3.0.2
jest: ^29.5.0
jest-environment-jsdom: ^29.5.0
karma: ^6.3.0
- ng-packagr: ^18.0.0 || ^18.1.0-next.0
+ ng-packagr: ^18.0.0
protractor: ^7.0.0
tailwindcss: ^2.0.0 || ^3.0.0
typescript: ">=5.4 <5.6"
@@ -151,15 +141,15 @@ __metadata:
optional: true
tailwindcss:
optional: true
- checksum: 10/d671976bd1d130cd2ccc749f3cbbb4243ed9a1391c0bce7d9ef3734a6001ab657d9a0165c67b563baaf07d83083e1091a8bb2e61e9450f5f5c491667731c34b5
+ checksum: 10/a5d7250c425663794f809e2f5667247e8512e4e15709ae7e1d9f4945efdc7f10d14a2ae2193023dc916c86657f06073a2d7d60bc35b9c413d6e11dc7042437cf
languageName: node
linkType: hard
-"@angular-devkit/build-webpack@npm:0.1801.0-next.3":
- version: 0.1801.0-next.3
- resolution: "@angular-devkit/build-webpack@npm:0.1801.0-next.3"
+"@angular-devkit/build-webpack@npm:0.1801.0":
+ version: 0.1801.0
+ resolution: "@angular-devkit/build-webpack@npm:0.1801.0"
dependencies:
- "@angular-devkit/architect": "npm:0.1801.0-next.3"
+ "@angular-devkit/architect": "npm:0.1801.0"
rxjs: "npm:7.8.1"
peerDependencies:
webpack: ^5.30.0
@@ -169,17 +159,17 @@ __metadata:
built: true
puppeteer:
built: true
- checksum: 10/64617e08cac66af92dae63669d0160b33185422f812462fcddce9e89b5f6c5a07f8a42dd4f82ba93288c6d40af8a5880993662e079be1aa9f3143ac15eaae729
+ checksum: 10/4981ed17e745ba8065ed9d38d77eea5dcbb82a72c0e582fe8f1a40808cedc7c7e7b775057bed40b3ac1fe8c7bb26d66aa854c074913d0fcd5ad37ebd9fbc770a
languageName: node
linkType: hard
-"@angular-devkit/core@npm:18.1.0-next.3":
- version: 18.1.0-next.3
- resolution: "@angular-devkit/core@npm:18.1.0-next.3"
+"@angular-devkit/core@npm:18.1.0":
+ version: 18.1.0
+ resolution: "@angular-devkit/core@npm:18.1.0"
dependencies:
ajv: "npm:8.16.0"
ajv-formats: "npm:3.0.1"
- jsonc-parser: "npm:3.2.1"
+ jsonc-parser: "npm:3.3.1"
picomatch: "npm:4.0.2"
rxjs: "npm:7.8.1"
source-map: "npm:0.7.4"
@@ -193,16 +183,16 @@ __metadata:
peerDependenciesMeta:
chokidar:
optional: true
- checksum: 10/32439712de1f66bb5efb9347b437a1d6178b91b5b016c18d9b115ed392146097ea8d374a9b78eaa1e2a840cb99f40b52aaa7adb9f9a1298a4641efa3fd251ec3
+ checksum: 10/566ff6fba00331c47d3229f66adf9b2b57124b98b885fc8cf3be14a8f0896c887693ed93422c86109e991af1c4d82795e3379ef9c97dbd59b557c0d72162b0e3
languageName: node
linkType: hard
-"@angular-devkit/schematics@npm:18.1.0-next.3":
- version: 18.1.0-next.3
- resolution: "@angular-devkit/schematics@npm:18.1.0-next.3"
+"@angular-devkit/schematics@npm:18.1.0":
+ version: 18.1.0
+ resolution: "@angular-devkit/schematics@npm:18.1.0"
dependencies:
- "@angular-devkit/core": "npm:18.1.0-next.3"
- jsonc-parser: "npm:3.2.1"
+ "@angular-devkit/core": "npm:18.1.0"
+ jsonc-parser: "npm:3.3.1"
magic-string: "npm:0.30.10"
ora: "npm:5.4.1"
rxjs: "npm:7.8.1"
@@ -211,55 +201,57 @@ __metadata:
built: true
puppeteer:
built: true
- checksum: 10/66d21a2a6d2df23e59d28eb6dfe31677278e2dbe49905485f2f9b9a55aa7b9c4b5f2b3835904cb3e5d4ad26fb53abe4c0c7c73c5b74eff4cd183133062374567
+ checksum: 10/d4d690686d45ee085a80582751bf2d50d41afbcdb50bd74d69c893c1373c7a12e77e4cef8ff512fd9747508a8d0b19614265b4913dec3ef0b18fd8f8b2f42948
languageName: node
linkType: hard
"@angular/animations@file:../../node_modules/@angular/animations::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/animations@file:../../node_modules/@angular/animations#../../node_modules/@angular/animations::hash=be4847&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/animations@file:../../node_modules/@angular/animations#../../node_modules/@angular/animations::hash=237c33&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
- "@angular/core": 18.1.0-next.3
- checksum: 10/a744fe908c94933e0a327709e2aa710eca88bc80c948ea92891848a9c94d4229d186ae7a5fe97848d88b7d430db4790611875aed31e96c885ebc588988666728
+ "@angular/core": 18.1.0
+ checksum: 10/51c243a81f7d02c2689d907bebe965146423508b266c8019e2f658ece4332eb968849780542d8f4eb129d6c5b9c2a20953e5834cc165fb3106ba37a8dee7494f
languageName: node
linkType: hard
-"@angular/build@npm:18.1.0-next.3":
- version: 18.1.0-next.3
- resolution: "@angular/build@npm:18.1.0-next.3"
+"@angular/build@npm:18.1.0":
+ version: 18.1.0
+ resolution: "@angular/build@npm:18.1.0"
dependencies:
"@ampproject/remapping": "npm:2.3.0"
- "@angular-devkit/architect": "npm:0.1801.0-next.3"
+ "@angular-devkit/architect": "npm:0.1801.0"
"@babel/core": "npm:7.24.7"
"@babel/helper-annotate-as-pure": "npm:7.24.7"
"@babel/helper-split-export-declaration": "npm:7.24.7"
- "@inquirer/confirm": "npm:3.1.10"
+ "@babel/plugin-syntax-import-attributes": "npm:7.24.7"
+ "@inquirer/confirm": "npm:3.1.11"
"@vitejs/plugin-basic-ssl": "npm:1.1.0"
ansi-colors: "npm:4.1.3"
browserslist: "npm:^4.23.0"
- critters: "npm:0.0.22"
+ critters: "npm:0.0.24"
esbuild: "npm:0.21.5"
fast-glob: "npm:3.3.2"
- https-proxy-agent: "npm:7.0.4"
+ https-proxy-agent: "npm:7.0.5"
lmdb: "npm:3.0.12"
magic-string: "npm:0.30.10"
mrmime: "npm:2.0.0"
ora: "npm:5.4.1"
parse5-html-rewriting-stream: "npm:7.0.0"
picomatch: "npm:4.0.2"
- piscina: "npm:4.6.0"
+ piscina: "npm:4.6.1"
+ rollup: "npm:4.18.0"
sass: "npm:1.77.6"
semver: "npm:7.6.2"
undici: "npm:6.19.2"
- vite: "npm:5.3.1"
+ vite: "npm:5.3.2"
watchpack: "npm:2.4.1"
peerDependencies:
- "@angular/compiler-cli": ^18.0.0 || ^18.1.0-next.0
- "@angular/localize": ^18.0.0 || ^18.1.0-next.0
- "@angular/platform-server": ^18.0.0 || ^18.1.0-next.0
- "@angular/service-worker": ^18.0.0 || ^18.1.0-next.0
+ "@angular/compiler-cli": ^18.0.0
+ "@angular/localize": ^18.0.0
+ "@angular/platform-server": ^18.0.0
+ "@angular/service-worker": ^18.0.0
less: ^4.2.0
postcss: ^8.4.0
tailwindcss: ^2.0.0 || ^3.0.0
@@ -282,13 +274,13 @@ __metadata:
optional: true
tailwindcss:
optional: true
- checksum: 10/04b1413524d0d41fa6b6ef051890639ea1827446bee03f59fc523c95cbaecf38329cd9fef1488a5a3d721f01a6a935992176d387f08486a9fc7eacf0a6c82d32
+ checksum: 10/397d55d91dc37d85612c32c34f7ae7d3417d02520403409ca9b602e5a66fc413eaa84b3c3f6a229a02ac5b8a2fe0fb3c1dc4b113dbf294a10699fbe0fd5f7fc0
languageName: node
linkType: hard
"@angular/cdk@file:../../dist/releases/cdk::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.1+sha-35f07c5
- resolution: "@angular/cdk@file:../../dist/releases/cdk#../../dist/releases/cdk::hash=ae7a99&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.2.0-next.1+sha-2e62309-with-local-changes
+ resolution: "@angular/cdk@file:../../dist/releases/cdk#../../dist/releases/cdk::hash=7a637e&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
parse5: "npm:^7.1.2"
tslib: "npm:^2.3.0"
@@ -299,24 +291,24 @@ __metadata:
dependenciesMeta:
parse5:
optional: true
- checksum: 10/3308a012a564fc848acd79c95f8c764cb01889e8d08b0cd13f7055ceb7e83fbaeb1cf4cb7aa3723531db6b8e5f2bdb472923cf445eda8af0439bf2cf3c310779
+ checksum: 10/1c896d7873de1bf059e0c32def1479b7d4e3a0f16c5ef593a7b447a639fd30019bd574067d5a7d65545dd70e4567851803ed92ae7c0e107e6c989a333162c70e
languageName: node
linkType: hard
"@angular/cli@file:../../node_modules/@angular/cli::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/cli@file:../../node_modules/@angular/cli#../../node_modules/@angular/cli::hash=4e576f&locator=yarn-pnp-compat%40workspace%3A."
- dependencies:
- "@angular-devkit/architect": "npm:0.1801.0-next.3"
- "@angular-devkit/core": "npm:18.1.0-next.3"
- "@angular-devkit/schematics": "npm:18.1.0-next.3"
- "@inquirer/prompts": "npm:5.0.6"
- "@listr2/prompt-adapter-inquirer": "npm:2.0.12"
- "@schematics/angular": "npm:18.1.0-next.3"
+ version: 18.1.0
+ resolution: "@angular/cli@file:../../node_modules/@angular/cli#../../node_modules/@angular/cli::hash=c18183&locator=yarn-pnp-compat%40workspace%3A."
+ dependencies:
+ "@angular-devkit/architect": "npm:0.1801.0"
+ "@angular-devkit/core": "npm:18.1.0"
+ "@angular-devkit/schematics": "npm:18.1.0"
+ "@inquirer/prompts": "npm:5.0.7"
+ "@listr2/prompt-adapter-inquirer": "npm:2.0.13"
+ "@schematics/angular": "npm:18.1.0"
"@yarnpkg/lockfile": "npm:1.1.0"
ini: "npm:4.1.3"
- jsonc-parser: "npm:3.2.1"
- listr2: "npm:8.2.2"
+ jsonc-parser: "npm:3.3.1"
+ listr2: "npm:8.2.3"
npm-package-arg: "npm:11.0.2"
npm-pick-manifest: "npm:9.0.1"
pacote: "npm:18.0.6"
@@ -331,25 +323,25 @@ __metadata:
built: true
bin:
ng: ./bin/ng.js
- checksum: 10/9f6f861a221505557cecb3b8e9d40b63cbe431f120d2948f35c0b242f24854fa55a352942db9142719c1c07287e477fd33b0ba68ae1d715a26f4566088688171
+ checksum: 10/eca27ab1e58696c8a7bebdfdb65b85c9c47834de251edeae688b43993e9244f603d19c74d881e86ca8792491e72d29d0507b33bae9af71363425653619146451
languageName: node
linkType: hard
"@angular/common@file:../../node_modules/@angular/common::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/common@file:../../node_modules/@angular/common#../../node_modules/@angular/common::hash=6804c6&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/common@file:../../node_modules/@angular/common#../../node_modules/@angular/common::hash=612642&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
- "@angular/core": 18.1.0-next.3
+ "@angular/core": 18.1.0
rxjs: ^6.5.3 || ^7.4.0
- checksum: 10/399efe779ac41ab846202d5b2743cc39b5a73adf85008f1f27a58d5096252bf9406ff15d776f1927420f297b252575f8896d5ccb46363940d42396c0fb2a1498
+ checksum: 10/c365d22d972c107bd11d4dcbb7eca98b9f401afb535b8e33b4062c94aab907a24a6ac820bc83da34de963f0fbe5522f449a7edfea38049fe53bd958f42d187a6
languageName: node
linkType: hard
"@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli#../../node_modules/@angular/compiler-cli::hash=2153c1&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/compiler-cli@file:../../node_modules/@angular/compiler-cli#../../node_modules/@angular/compiler-cli::hash=20a50f&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
"@babel/core": "npm:7.24.7"
"@jridgewell/sourcemap-codec": "npm:^1.4.14"
@@ -360,241 +352,135 @@ __metadata:
tslib: "npm:^2.3.0"
yargs: "npm:^17.2.1"
peerDependencies:
- "@angular/compiler": 18.1.0-next.3
+ "@angular/compiler": 18.1.0
typescript: ">=5.4 <5.6"
bin:
ng-xi18n: ./bundles/src/bin/ng_xi18n.js
ngc: ./bundles/src/bin/ngc.js
ngcc: ./bundles/ngcc/index.js
- checksum: 10/bda0e8862cec10c1ee7f886bebe3ff0ae3a201e8220fb9145991cdd0ca201b8d29cc2c23d65036d6e8b9ff56795de55ff536d772511b571a1fd2668a89573478
+ checksum: 10/bdb6f2e71ffce92e381c5f800e6c15d7d3a635b6b0351175a2963ae64d07a32e58c33d778e7048636061ffc85df265ab5f054e8bf3542689f975fd123d81347b
languageName: node
linkType: hard
"@angular/compiler@file:../../node_modules/@angular/compiler::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/compiler@file:../../node_modules/@angular/compiler#../../node_modules/@angular/compiler::hash=97200f&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/compiler@file:../../node_modules/@angular/compiler#../../node_modules/@angular/compiler::hash=8d92f4&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
- "@angular/core": 18.1.0-next.3
+ "@angular/core": 18.1.0
peerDependenciesMeta:
"@angular/core":
optional: true
- checksum: 10/f060a3853955b11ccec07ec7008e7404545024a4a977f60e9cb952549b5b4ba24ad2b55692bed40e9d8b879edc46a641f0e6356c7ab07c9a153bd9903880a216
+ checksum: 10/b214d104132b1e1205de5a16be93752bf5fa4c36c00d4646609c2e215ec0feda72832350f8c1b729fcbfa7f147da4909c6316f1f88fca6c320ed1586b40ac3d2
languageName: node
linkType: hard
"@angular/core@file:../../node_modules/@angular/core::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/core@file:../../node_modules/@angular/core#../../node_modules/@angular/core::hash=8e3025&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/core@file:../../node_modules/@angular/core#../../node_modules/@angular/core::hash=212ec2&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
rxjs: ^6.5.3 || ^7.4.0
zone.js: ~0.14.0
- checksum: 10/904261723cc19a5dd5e5786cfeda36dd511f38144e5587c174d65418d4c3a6f5bc5e55c29b78080c1b5b9aa94a34552c40994f1724c5d228b1a2bb599365c99a
+ checksum: 10/5e980d3ada003207266290d2a56917dc36b1f1341148576ed700afc1baf33f6bc1127aab565e3cecdc05d6127386a8815848b9b92dc953aaca624ca9681aadb6
languageName: node
linkType: hard
"@angular/forms@file:../../node_modules/@angular/forms::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/forms@file:../../node_modules/@angular/forms#../../node_modules/@angular/forms::hash=028c2b&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/forms@file:../../node_modules/@angular/forms#../../node_modules/@angular/forms::hash=292992&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
- "@angular/common": 18.1.0-next.3
- "@angular/core": 18.1.0-next.3
- "@angular/platform-browser": 18.1.0-next.3
+ "@angular/common": 18.1.0
+ "@angular/core": 18.1.0
+ "@angular/platform-browser": 18.1.0
rxjs: ^6.5.3 || ^7.4.0
- checksum: 10/2857bbc88a8a1828dc9d59a9ce3be467b1127691f9d78dccbb70cf83e6a9330299a50ac6ac62475ba7b3689bce19de6b8ebb6267071199fd200bd21b457bcb3e
+ checksum: 10/b485d4fbe1d24794e87ecae92cc012fb3e5a692f3fe274332edc888fed5cf3726740f797903d7cc780bedc196214b1bcff381b2a72a8b3a971acb8f880692c26
languageName: node
linkType: hard
"@angular/material-experimental@file:../../dist/releases/material-experimental::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.1+sha-35f07c5
- resolution: "@angular/material-experimental@file:../../dist/releases/material-experimental#../../dist/releases/material-experimental::hash=d54c0d&locator=yarn-pnp-compat%40workspace%3A."
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/auto-init": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/banner": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/card": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/checkbox": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/chips": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/circular-progress": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/data-table": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dialog": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/drawer": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/fab": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/form-field": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/image-list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/layout-grid": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/radio": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/segmented-button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/select": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/slider": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/snackbar": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/switch": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-bar": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/textfield": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tooltip": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/top-app-bar": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
+ version: 18.2.0-next.1+sha-2e62309-with-local-changes
+ resolution: "@angular/material-experimental@file:../../dist/releases/material-experimental#../../dist/releases/material-experimental::hash=aabbf0&locator=yarn-pnp-compat%40workspace%3A."
+ dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
"@angular/animations": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
- "@angular/cdk": 18.1.0-next.1+sha-35f07c5
+ "@angular/cdk": 18.2.0-next.1+sha-2e62309-with-local-changes
"@angular/common": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
"@angular/core": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
"@angular/forms": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
- "@angular/material": 18.1.0-next.1+sha-35f07c5
+ "@angular/material": 18.2.0-next.1+sha-2e62309-with-local-changes
"@angular/platform-browser": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
- checksum: 10/d31217c5a6a0c79dc8c0db7ac19fac7935a735d1da3cc0421cb906a0c34dc03218c06d92f5ac09af2b0c96c6df9c33425f9074f546478f67aee3b20ceb71202a
+ checksum: 10/55dbb04123737d19c103b5030e78fb70d816a0ea536197ef1855c9a9b12e0eb8ea13c5c8105885f48d955a68b2bcad96e208aa2ee7cf375bf49791368eee3c3b
languageName: node
linkType: hard
"@angular/material@file:../../dist/releases/material::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.1+sha-35f07c5
- resolution: "@angular/material@file:../../dist/releases/material#../../dist/releases/material::hash=5ec465&locator=yarn-pnp-compat%40workspace%3A."
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/auto-init": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/banner": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/card": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/checkbox": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/chips": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/circular-progress": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/data-table": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dialog": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/drawer": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/fab": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/form-field": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/image-list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/layout-grid": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/radio": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/segmented-button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/select": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/slider": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/snackbar": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/switch": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-bar": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/textfield": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tooltip": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/top-app-bar": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
+ version: 18.2.0-next.1+sha-2e62309-with-local-changes
+ resolution: "@angular/material@file:../../dist/releases/material#../../dist/releases/material::hash=794883&locator=yarn-pnp-compat%40workspace%3A."
+ dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
"@angular/animations": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
- "@angular/cdk": 18.1.0-next.1+sha-35f07c5
+ "@angular/cdk": 18.2.0-next.1+sha-2e62309-with-local-changes
"@angular/common": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
"@angular/core": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
"@angular/forms": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
"@angular/platform-browser": ^18.0.0-0 || ^18.1.0-0 || ^18.2.0-0 || ^18.3.0-0 || ^19.0.0-0
rxjs: ^6.5.3 || ^7.4.0
- checksum: 10/49000647294f9e902ad68724a206259106c2f36d5d498d9924181f9733b6f3194ec37f49336ead3ec7efb1589306520c08a4bc62207c5532fe3a968c52268a73
+ checksum: 10/05e5796fb9879ef164d11f125fb731643d98d4a7d38c2a75e29160b9866cf9abab29689b803f4fe2203bb17c221106cfeca32ecd4bf0d2c783bd2af444538454
languageName: node
linkType: hard
"@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic#../../node_modules/@angular/platform-browser-dynamic::hash=35bfeb&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/platform-browser-dynamic@file:../../node_modules/@angular/platform-browser-dynamic#../../node_modules/@angular/platform-browser-dynamic::hash=697d79&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
- "@angular/common": 18.1.0-next.3
- "@angular/compiler": 18.1.0-next.3
- "@angular/core": 18.1.0-next.3
- "@angular/platform-browser": 18.1.0-next.3
- checksum: 10/8e0cef953366dbbfdc9169b947c21701b492a043f59263dcbc7dfd80dcb4f59d08b0b75a145866667bb069126d7e2bb0aaa79c049a1ac0f648290ba0cd6030eb
+ "@angular/common": 18.1.0
+ "@angular/compiler": 18.1.0
+ "@angular/core": 18.1.0
+ "@angular/platform-browser": 18.1.0
+ checksum: 10/a4f43f6d297424e91226f590acd4b746f3debe16da6ac856ff3f5743c908f24184f77300f1e52063f962b534e4eaee07fbd6e59df4a6666808c5a4b30046d85e
languageName: node
linkType: hard
"@angular/platform-browser@file:../../node_modules/@angular/platform-browser::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/platform-browser@file:../../node_modules/@angular/platform-browser#../../node_modules/@angular/platform-browser::hash=533ad9&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/platform-browser@file:../../node_modules/@angular/platform-browser#../../node_modules/@angular/platform-browser::hash=fc6352&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
- "@angular/animations": 18.1.0-next.3
- "@angular/common": 18.1.0-next.3
- "@angular/core": 18.1.0-next.3
+ "@angular/animations": 18.1.0
+ "@angular/common": 18.1.0
+ "@angular/core": 18.1.0
peerDependenciesMeta:
"@angular/animations":
optional: true
- checksum: 10/c6b84456b56a13e05f717389397e3499e1460cdec58f5f9b99dfcc8c0f24903e04c4e4a8cd56ec78b2c89f2cec323416e590e997f8c4873f3e870172a15854f7
+ checksum: 10/29837000d81ad156aa4d22528fd20814592ffbb92625385e51b8ff0314d5f674ead3fae18ca20367212716916e6602dbfef0ae35ddcad39eddb405fa72901a7e
languageName: node
linkType: hard
"@angular/router@file:../../node_modules/@angular/router::locator=yarn-pnp-compat%40workspace%3A.":
- version: 18.1.0-next.3
- resolution: "@angular/router@file:../../node_modules/@angular/router#../../node_modules/@angular/router::hash=f5fa08&locator=yarn-pnp-compat%40workspace%3A."
+ version: 18.1.0
+ resolution: "@angular/router@file:../../node_modules/@angular/router#../../node_modules/@angular/router::hash=ab0f23&locator=yarn-pnp-compat%40workspace%3A."
dependencies:
tslib: "npm:^2.3.0"
peerDependencies:
- "@angular/common": 18.1.0-next.3
- "@angular/core": 18.1.0-next.3
- "@angular/platform-browser": 18.1.0-next.3
+ "@angular/common": 18.1.0
+ "@angular/core": 18.1.0
+ "@angular/platform-browser": 18.1.0
rxjs: ^6.5.3 || ^7.4.0
- checksum: 10/e27260d52d9bf43fd7d3d3cae0f93b53c38808c65af39d781e41543cc120d5d2f03ecefa8ad029f637354d661b1b8dccb8b06091a0c44e5c971fe82653198b3e
+ checksum: 10/f863fa0822170e334beb7f2f541041f93e61b2ff01078d711fcbcece94f2579d05d290816d09a90496558522c79e865b6485e9ec8317585d8fa3281f206372d4
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5":
- version: 7.23.5
- resolution: "@babel/code-frame@npm:7.23.5"
- dependencies:
- "@babel/highlight": "npm:^7.23.4"
- chalk: "npm:^2.4.2"
- checksum: 10/44e58529c9d93083288dc9e649c553c5ba997475a7b0758cc3ddc4d77b8a7d985dbe78cc39c9bbc61f26d50af6da1ddf0a3427eae8cc222a9370619b671ed8f5
- languageName: node
- linkType: hard
-
-"@babel/code-frame@npm:^7.24.7":
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/code-frame@npm:7.24.7"
dependencies:
@@ -604,21 +490,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9":
- version: 7.23.5
- resolution: "@babel/compat-data@npm:7.23.5"
- checksum: 10/088f14f646ecbddd5ef89f120a60a1b3389a50a9705d44603dca77662707d0175a5e0e0da3943c3298f1907a4ab871468656fbbf74bb7842cd8b0686b2c19736
- languageName: node
- linkType: hard
-
-"@babel/compat-data@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/compat-data@npm:7.24.7"
- checksum: 10/6edc09152ca51a22c33741c441f33f9475598fa59edc53369edb74b49f4ea4bef1281f5b0ed2b9b67fb66faef2da2069e21c4eef83405d8326e524b301f4e7e2
+"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.7, @babel/compat-data@npm:^7.24.8":
+ version: 7.24.9
+ resolution: "@babel/compat-data@npm:7.24.9"
+ checksum: 10/fcdbf3dd978305880f06ae20a23f4f68a8eddbe64fc5d2fbc98dfe4cdf15c174cff41e3a8eb9d935f9f3a68d3a23fa432044082ee9768a2ed4b15f769b8f6853
languageName: node
linkType: hard
-"@babel/core@npm:7.24.7, @babel/core@npm:^7.23.9":
+"@babel/core@npm:7.24.7":
version: 7.24.7
resolution: "@babel/core@npm:7.24.7"
dependencies:
@@ -641,30 +520,30 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.7.5":
- version: 7.23.5
- resolution: "@babel/core@npm:7.23.5"
+"@babel/core@npm:^7.23.9, @babel/core@npm:^7.7.5":
+ version: 7.24.9
+ resolution: "@babel/core@npm:7.24.9"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
- "@babel/code-frame": "npm:^7.23.5"
- "@babel/generator": "npm:^7.23.5"
- "@babel/helper-compilation-targets": "npm:^7.22.15"
- "@babel/helper-module-transforms": "npm:^7.23.3"
- "@babel/helpers": "npm:^7.23.5"
- "@babel/parser": "npm:^7.23.5"
- "@babel/template": "npm:^7.22.15"
- "@babel/traverse": "npm:^7.23.5"
- "@babel/types": "npm:^7.23.5"
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/generator": "npm:^7.24.9"
+ "@babel/helper-compilation-targets": "npm:^7.24.8"
+ "@babel/helper-module-transforms": "npm:^7.24.9"
+ "@babel/helpers": "npm:^7.24.8"
+ "@babel/parser": "npm:^7.24.8"
+ "@babel/template": "npm:^7.24.7"
+ "@babel/traverse": "npm:^7.24.8"
+ "@babel/types": "npm:^7.24.9"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
- checksum: 10/f24265172610dbffe0e315b6a8e8f87cf87d2643c8915196adcddd81c66a8eaeb1b36fea851e2308961636a180089a5f10becaa340d5b707d5f64e2e5ffb2bc8
+ checksum: 10/f00a372fa547f6e21f4db1b6e521e6eb01f77f5931726897aae6f4cf29a687f615b9b77147b539e851a68bf94e4850bcfba7eb11091dd8e2bc625f6d831ce257
languageName: node
linkType: hard
-"@babel/generator@npm:7.24.7, @babel/generator@npm:^7.24.7":
+"@babel/generator@npm:7.24.7":
version: 7.24.7
resolution: "@babel/generator@npm:7.24.7"
dependencies:
@@ -676,15 +555,15 @@ __metadata:
languageName: node
linkType: hard
-"@babel/generator@npm:^7.23.5":
- version: 7.23.5
- resolution: "@babel/generator@npm:7.23.5"
+"@babel/generator@npm:^7.24.7, @babel/generator@npm:^7.24.8, @babel/generator@npm:^7.24.9":
+ version: 7.24.10
+ resolution: "@babel/generator@npm:7.24.10"
dependencies:
- "@babel/types": "npm:^7.23.5"
- "@jridgewell/gen-mapping": "npm:^0.3.2"
- "@jridgewell/trace-mapping": "npm:^0.3.17"
+ "@babel/types": "npm:^7.24.9"
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^2.5.1"
- checksum: 10/094af79c2e8fdb0cfd06b42ff6a39a8a95639bc987cace44f52ed5c46127f5469eb20ab5f4c8991fc00fa9c1445a1977cde8e44289d6be29ddbb315fb0fc1b45
+ checksum: 10/c2491fb7d985527a165546cbcf9e5f6a2518f2a968c7564409c012acce1019056b21e67a152af89b3f4d4a295ca2e75a1a16858152f750efbc4b5087f0cb7253
languageName: node
linkType: hard
@@ -697,15 +576,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-annotate-as-pure@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-annotate-as-pure@npm:7.22.5"
- dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10/53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d
- languageName: node
- linkType: hard
-
"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7"
@@ -716,40 +586,27 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6":
- version: 7.22.15
- resolution: "@babel/helper-compilation-targets@npm:7.22.15"
+"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/helper-compilation-targets@npm:7.24.8"
dependencies:
- "@babel/compat-data": "npm:^7.22.9"
- "@babel/helper-validator-option": "npm:^7.22.15"
- browserslist: "npm:^4.21.9"
+ "@babel/compat-data": "npm:^7.24.8"
+ "@babel/helper-validator-option": "npm:^7.24.8"
+ browserslist: "npm:^4.23.1"
lru-cache: "npm:^5.1.1"
semver: "npm:^6.3.1"
- checksum: 10/9706decaa1591cf44511b6f3447eb9653b50ca3538215fe2e5387a8598c258c062f4622da5b95e61f0415706534deee619bbf53a2889f9bd967949b8f6024e0e
- languageName: node
- linkType: hard
-
-"@babel/helper-compilation-targets@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helper-compilation-targets@npm:7.24.7"
- dependencies:
- "@babel/compat-data": "npm:^7.24.7"
- "@babel/helper-validator-option": "npm:^7.24.7"
- browserslist: "npm:^4.22.2"
- lru-cache: "npm:^5.1.1"
- semver: "npm:^6.3.1"
- checksum: 10/8f8bc89af70a606ccb208513aa25d83e19b88f91b64a33174f7701a9479e67ddbb0a9c89033265070375cd24e690b93380b3a3ea11e4b3a711d742f0f4699ee7
+ checksum: 10/3489280d07b871af565b32f9b11946ff9a999fac0db9bec5df960760f6836c7a4b52fccb9d64229ccce835d37a43afb85659beb439ecedde04dcea7eb062a143
languageName: node
linkType: hard
"@babel/helper-create-class-features-plugin@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7"
+ version: 7.24.8
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.24.8"
dependencies:
"@babel/helper-annotate-as-pure": "npm:^7.24.7"
"@babel/helper-environment-visitor": "npm:^7.24.7"
"@babel/helper-function-name": "npm:^7.24.7"
- "@babel/helper-member-expression-to-functions": "npm:^7.24.7"
+ "@babel/helper-member-expression-to-functions": "npm:^7.24.8"
"@babel/helper-optimise-call-expression": "npm:^7.24.7"
"@babel/helper-replace-supers": "npm:^7.24.7"
"@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
@@ -757,24 +614,11 @@ __metadata:
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10/8ecb1c2acc808e1e0c21dccc7ea6899de9a140cb1856946800176b4784de6fccd575661fbff7744bb895d01aa6956ce963446b8577c4c2334293ba5579d5cdb9
+ checksum: 10/a779c5356fcc4881e807d85d973fd37e99e773fe95837b0f6582ca9a89331f84e5f26b0b6aa9a101181325b73cf3f54081d178b657a79819b8abadc53b0ea8ec
languageName: node
linkType: hard
-"@babel/helper-create-regexp-features-plugin@npm:^7.18.6":
- version: 7.22.15
- resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- regexpu-core: "npm:^5.3.1"
- semver: "npm:^6.3.1"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/886b675e82f1327b4f7a2c69a68eefdb5dbb0b9d4762c2d4f42a694960a9ccf61e1a3bcad601efd92c110033eb1a944fcd1e5cac188aa6b2e2076b541e210e20
- languageName: node
- linkType: hard
-
-"@babel/helper-create-regexp-features-plugin@npm:^7.24.7":
+"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7"
dependencies:
@@ -787,9 +631,9 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-define-polyfill-provider@npm:^0.6.1":
- version: 0.6.1
- resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1"
+"@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2":
+ version: 0.6.2
+ resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2"
dependencies:
"@babel/helper-compilation-targets": "npm:^7.22.6"
"@babel/helper-plugin-utils": "npm:^7.22.5"
@@ -798,14 +642,7 @@ __metadata:
resolve: "npm:^1.14.2"
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 10/316e7c0f05d2ae233d5fbb622c6339436da8d2b2047be866b64a16e6996c078a23b4adfebbdb33bc6a9882326a6cc20b95daa79a5e0edc92e9730e36d45fa523
- languageName: node
- linkType: hard
-
-"@babel/helper-environment-visitor@npm:^7.22.20":
- version: 7.22.20
- resolution: "@babel/helper-environment-visitor@npm:7.22.20"
- checksum: 10/d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69
+ checksum: 10/bb32ec12024d3f16e70641bc125d2534a97edbfdabbc9f69001ec9c4ce46f877c7a224c566aa6c8c510c3b0def2e43dc4433bf6a40896ba5ce0cef4ea5ccbcff
languageName: node
linkType: hard
@@ -818,16 +655,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-function-name@npm:^7.23.0":
- version: 7.23.0
- resolution: "@babel/helper-function-name@npm:7.23.0"
- dependencies:
- "@babel/template": "npm:^7.22.15"
- "@babel/types": "npm:^7.23.0"
- checksum: 10/7b2ae024cd7a09f19817daf99e0153b3bf2bc4ab344e197e8d13623d5e36117ed0b110914bc248faa64e8ccd3e97971ec7b41cc6fd6163a2b980220c58dcdf6d
- languageName: node
- linkType: hard
-
"@babel/helper-function-name@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-function-name@npm:7.24.7"
@@ -838,15 +665,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-hoist-variables@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-hoist-variables@npm:7.22.5"
- dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10/394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc
- languageName: node
- linkType: hard
-
"@babel/helper-hoist-variables@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-hoist-variables@npm:7.24.7"
@@ -856,22 +674,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-member-expression-to-functions@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7"
- dependencies:
- "@babel/traverse": "npm:^7.24.7"
- "@babel/types": "npm:^7.24.7"
- checksum: 10/d990752aaff311aba0ca61539e1776c5ba2818836403f9bafac849deb4cd24c082cbde5f23e490b7f3614c95ff67f8d75fa5e2f14cb00586a72c96c158e1127b
- languageName: node
- linkType: hard
-
-"@babel/helper-module-imports@npm:^7.22.15":
- version: 7.22.15
- resolution: "@babel/helper-module-imports@npm:7.22.15"
+"@babel/helper-member-expression-to-functions@npm:^7.24.7, @babel/helper-member-expression-to-functions@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8"
dependencies:
- "@babel/types": "npm:^7.22.15"
- checksum: 10/5ecf9345a73b80c28677cfbe674b9f567bb0d079e37dcba9055e36cb337db24ae71992a58e1affa9d14a60d3c69907d30fe1f80aea105184501750a58d15c81c
+ "@babel/traverse": "npm:^7.24.8"
+ "@babel/types": "npm:^7.24.8"
+ checksum: 10/ac878761cfd0a46c081cda0da75cc186f922cf16e8ecdd0c4fb6dca4330d9fe4871b41a9976224cf9669c9e7fe0421b5c27349f2e99c125fa0be871b327fa770
languageName: node
linkType: hard
@@ -885,24 +694,9 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-module-transforms@npm:^7.23.3":
- version: 7.23.3
- resolution: "@babel/helper-module-transforms@npm:7.23.3"
- dependencies:
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-module-imports": "npm:^7.22.15"
- "@babel/helper-simple-access": "npm:^7.22.5"
- "@babel/helper-split-export-declaration": "npm:^7.22.6"
- "@babel/helper-validator-identifier": "npm:^7.22.20"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/583fa580f8e50e6f45c4f46aa76a8e49c2528deb84e25f634d66461b9a0e2420e13979b0a607b67aef67eaf8db8668eb9edc038b4514b16e3879fe09e8fd294b
- languageName: node
- linkType: hard
-
-"@babel/helper-module-transforms@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helper-module-transforms@npm:7.24.7"
+"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.24.9":
+ version: 7.24.9
+ resolution: "@babel/helper-module-transforms@npm:7.24.9"
dependencies:
"@babel/helper-environment-visitor": "npm:^7.24.7"
"@babel/helper-module-imports": "npm:^7.24.7"
@@ -911,7 +705,7 @@ __metadata:
"@babel/helper-validator-identifier": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10/4f2b232bf6d1be8d3a72b084a2a7ac1b0b93ea85717411a11ae1fb6375d4392019e781d8cc155789e649a2caa7eec378dd1404210603d6d4230f042c5feacffb
+ checksum: 10/eaed9cb93edb11626758f76bfb482f9c3b6583f6756813c5ef849d6d52bbe7c2cb39f61646758e860732d14c2588b60eb4e2af78d7751450649a8d3d7ca41697
languageName: node
linkType: hard
@@ -924,17 +718,10 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
- version: 7.22.5
- resolution: "@babel/helper-plugin-utils@npm:7.22.5"
- checksum: 10/ab220db218089a2aadd0582f5833fd17fa300245999f5f8784b10f5a75267c4e808592284a29438a0da365e702f05acb369f99e1c915c02f9f9210ec60eab8ea
- languageName: node
- linkType: hard
-
-"@babel/helper-plugin-utils@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helper-plugin-utils@npm:7.24.7"
- checksum: 10/dad51622f0123fdba4e2d40a81a6b7d6ef4b1491b2f92fd9749447a36bde809106cf117358705057a2adc8fd73d5dc090222e0561b1213dae8601c8367f5aac8
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
+ version: 7.24.8
+ resolution: "@babel/helper-plugin-utils@npm:7.24.8"
+ checksum: 10/adbc9fc1142800a35a5eb0793296924ee8057fe35c61657774208670468a9fbfbb216f2d0bc46c680c5fefa785e5ff917cc1674b10bd75cdf9a6aa3444780630
languageName: node
linkType: hard
@@ -964,15 +751,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-simple-access@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-simple-access@npm:7.22.5"
- dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10/7d5430eecf880937c27d1aed14245003bd1c7383ae07d652b3932f450f60bfcf8f2c1270c593ab063add185108d26198c69d1aca0e6fb7c6fdada4bcf72ab5b7
- languageName: node
- linkType: hard
-
"@babel/helper-simple-access@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/helper-simple-access@npm:7.24.7"
@@ -1002,33 +780,10 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-split-export-declaration@npm:^7.22.6":
- version: 7.22.6
- resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
- dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10/e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921
- languageName: node
- linkType: hard
-
-"@babel/helper-string-parser@npm:^7.23.4":
- version: 7.23.4
- resolution: "@babel/helper-string-parser@npm:7.23.4"
- checksum: 10/c352082474a2ee1d2b812bd116a56b2e8b38065df9678a32a535f151ec6f58e54633cc778778374f10544b930703cca6ddf998803888a636afa27e2658068a9c
- languageName: node
- linkType: hard
-
-"@babel/helper-string-parser@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helper-string-parser@npm:7.24.7"
- checksum: 10/603d8d962bbe89907aa99a8f19a006759ab7b2464615f20a6a22e3e2e8375af37ddd0e5175c9e622e1c4b2d83607ffb41055a59d0ce34404502af30fde573a5c
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-identifier@npm:^7.22.20":
- version: 7.22.20
- resolution: "@babel/helper-validator-identifier@npm:7.22.20"
- checksum: 10/df882d2675101df2d507b95b195ca2f86a3ef28cb711c84f37e79ca23178e13b9f0d8b522774211f51e40168bf5142be4c1c9776a150cddb61a0d5bf3e95750b
+"@babel/helper-string-parser@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/helper-string-parser@npm:7.24.8"
+ checksum: 10/6d1bf8f27dd725ce02bdc6dffca3c95fb9ab8a06adc2edbd9c1c9d68500274230d1a609025833ed81981eff560045b6b38f7b4c6fb1ab19fc90e5004e3932535
languageName: node
linkType: hard
@@ -1039,17 +794,10 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-validator-option@npm:^7.22.15":
- version: 7.23.5
- resolution: "@babel/helper-validator-option@npm:7.23.5"
- checksum: 10/537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-option@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helper-validator-option@npm:7.24.7"
- checksum: 10/9689166bf3f777dd424c026841c8cd651e41b21242dbfd4569a53086179a3e744c8eddd56e9d10b54142270141c91581b53af0d7c00c82d552d2540e2a919f7e
+"@babel/helper-validator-option@npm:^7.24.7, @babel/helper-validator-option@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/helper-validator-option@npm:7.24.8"
+ checksum: 10/a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c
languageName: node
linkType: hard
@@ -1065,35 +813,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.23.5":
- version: 7.23.5
- resolution: "@babel/helpers@npm:7.23.5"
- dependencies:
- "@babel/template": "npm:^7.22.15"
- "@babel/traverse": "npm:^7.23.5"
- "@babel/types": "npm:^7.23.5"
- checksum: 10/84a813db55e03b5f47cef1210eb22751dae5dc3605bf62ff9acd4c248d857f94cb43dc7299e0edcec9312b31088f0d77f881282df2957e65a322b5412801cc24
- languageName: node
- linkType: hard
-
-"@babel/helpers@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/helpers@npm:7.24.7"
+"@babel/helpers@npm:^7.24.7, @babel/helpers@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/helpers@npm:7.24.8"
dependencies:
"@babel/template": "npm:^7.24.7"
- "@babel/types": "npm:^7.24.7"
- checksum: 10/f7496f0d7a0b13ea86136ac2053371027125734170328215f8a90eac96fafaaae4e5398c0729bdadf23261c00582a31e14bc70113427653b718220641a917f9d
- languageName: node
- linkType: hard
-
-"@babel/highlight@npm:^7.23.4":
- version: 7.23.4
- resolution: "@babel/highlight@npm:7.23.4"
- dependencies:
- "@babel/helper-validator-identifier": "npm:^7.22.20"
- chalk: "npm:^2.4.2"
- js-tokens: "npm:^4.0.0"
- checksum: 10/62fef9b5bcea7131df4626d009029b1ae85332042f4648a4ce6e740c3fd23112603c740c45575caec62f260c96b11054d3be5987f4981a5479793579c3aac71f
+ "@babel/types": "npm:^7.24.8"
+ checksum: 10/61c08a2baa87382a87c7110e9b5574c782603e247b7e6267769ee0e8b7b54b70ff05f16466f05bb318622b7ac28e79b449edff565abf5adcb1adb1b0f42fee9c
languageName: node
linkType: hard
@@ -1109,21 +835,12 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.5":
- version: 7.23.5
- resolution: "@babel/parser@npm:7.23.5"
- bin:
- parser: ./bin/babel-parser.js
- checksum: 10/828c250ace0c58f9dc311fd13ad3da34e86ed27a5c6b4183ce9d85be250e78eeb71a13f6d51a368c46f8cbe51106c726bfbb158bf46a89db3a168a0002d3050a
- languageName: node
- linkType: hard
-
-"@babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/parser@npm:7.24.7"
+"@babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/parser@npm:7.24.8"
bin:
parser: ./bin/babel-parser.js
- checksum: 10/ef9ebce60e13db560ccc7af9235d460f6726bb7e23ae2d675098c1fc43d5249067be60d4118889dad33b1d4f85162cf66baf554719e1669f29bb20e71322568e
+ checksum: 10/e44b8327da46e8659bc9fb77f66e2dc4364dd66495fb17d046b96a77bf604f0446f1e9a89cf2f011d78fc3f5cdfbae2e9e0714708e1c985988335683b2e781ef
languageName: node
linkType: hard
@@ -1250,7 +967,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-attributes@npm:^7.24.7":
+"@babel/plugin-syntax-import-attributes@npm:7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.24.7":
version: 7.24.7
resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7"
dependencies:
@@ -1469,20 +1186,20 @@ __metadata:
linkType: hard
"@babel/plugin-transform-classes@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/plugin-transform-classes@npm:7.24.7"
+ version: 7.24.8
+ resolution: "@babel/plugin-transform-classes@npm:7.24.8"
dependencies:
"@babel/helper-annotate-as-pure": "npm:^7.24.7"
- "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-compilation-targets": "npm:^7.24.8"
"@babel/helper-environment-visitor": "npm:^7.24.7"
"@babel/helper-function-name": "npm:^7.24.7"
- "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.8"
"@babel/helper-replace-supers": "npm:^7.24.7"
"@babel/helper-split-export-declaration": "npm:^7.24.7"
globals: "npm:^11.1.0"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10/5d5577fcb0ec9ef33d889358c54720abe462325bed5483d71f9aa0a704f491520777be5411d6fd8a08a8ebe352e2445d46d1e6577a5a2c9333bc37b9ff8b9a74
+ checksum: 10/3d586018691423ed1fbcb4589cc29001226c96e5e060932bf99379568c684a4a230cca7871e7c825335336ef0326066ba6e3bf5e6d0209425b0f5ceeda3eaed2
languageName: node
linkType: hard
@@ -1499,13 +1216,13 @@ __metadata:
linkType: hard
"@babel/plugin-transform-destructuring@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/plugin-transform-destructuring@npm:7.24.7"
+ version: 7.24.8
+ resolution: "@babel/plugin-transform-destructuring@npm:7.24.8"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.8"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10/eec43df24a07b3c61f335883e50c6642762fdd3cc5c5f95532cebeb51ea9bf77ca9a38011b678d91549dd75e29e1c58bd6e0ebc34bb763c300bc2cc65801e663
+ checksum: 10/e3bba0bb050592615fbf062ea07ae94f99e9cf22add006eaa66ed672d67ff7051b578a5ea68a7d79f9184fb3c27c65333d86b0b8ea04f9810bcccbeea2ffbe76
languageName: node
linkType: hard
@@ -1652,15 +1369,15 @@ __metadata:
linkType: hard
"@babel/plugin-transform-modules-commonjs@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7"
+ version: 7.24.8
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.24.7"
- "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-module-transforms": "npm:^7.24.8"
+ "@babel/helper-plugin-utils": "npm:^7.24.8"
"@babel/helper-simple-access": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10/9bd10cd03cce138a644f4e671025058348d8ff364253122bed60f9a2a32759445b93e8a6501773491cb19906602b18fd26255df0caac425343a1584599b36b24
+ checksum: 10/18e5d229767c7b5b6ff0cbf1a8d2d555965b90201839d0ac2dc043b56857624ea344e59f733f028142a8c1d54923b82e2a0185694ef36f988d797bfbaf59819c
languageName: node
linkType: hard
@@ -1776,15 +1493,15 @@ __metadata:
linkType: hard
"@babel/plugin-transform-optional-chaining@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7"
+ version: 7.24.8
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.8"
"@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
"@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10/0835caa8fa8561ba5da8edb82aee93aef8e5145eae33e5400569bb4fae879c596cd35d3bfe7519b222261fc370b1291c499870ca6ad9903e1a71cfaaa27a5454
+ checksum: 10/1f873fb9d86c280b64dfe5ebc59244b459b717ed72a7682da2386db3d9e11fc9d831cfc2e11d37262b4325a7a0e3ccbccfb8cd0b944caf199d3c9e03fff7b0af
languageName: node
linkType: hard
@@ -1921,13 +1638,13 @@ __metadata:
linkType: hard
"@babel/plugin-transform-typeof-symbol@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7"
+ version: 7.24.8
+ resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.8"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10/c07847a3bcb27509d392de7a59b9836669b90ca508d4b63b36bb73b63413bc0b2571a64410b65999a73abeac99957b31053225877dcbfaf4eb21d8cc0ae4002f
+ checksum: 10/5f113fed94b694ec4a40a27b8628ce736cfa172b69fcffa2833c9a41895032127f3daeea552e94fdb4a3ce4e8cd51de67a670ab87a1f447a0cf55c9cb2d7ed11
languageName: node
linkType: hard
@@ -2099,22 +1816,11 @@ __metadata:
linkType: hard
"@babel/runtime@npm:^7.8.4":
- version: 7.23.5
- resolution: "@babel/runtime@npm:7.23.5"
+ version: 7.24.8
+ resolution: "@babel/runtime@npm:7.24.8"
dependencies:
regenerator-runtime: "npm:^0.14.0"
- checksum: 10/0f1669f639af30a0a2948ffcefa2c61935f337b0777bd94f8d7bc66bba8e7d4499e725caeb0449540d9c6d67399b733c4e719babb43ce9a0f33095aa01b42b37
- languageName: node
- linkType: hard
-
-"@babel/template@npm:^7.22.15":
- version: 7.22.15
- resolution: "@babel/template@npm:7.22.15"
- dependencies:
- "@babel/code-frame": "npm:^7.22.13"
- "@babel/parser": "npm:^7.22.15"
- "@babel/types": "npm:^7.22.15"
- checksum: 10/21e768e4eed4d1da2ce5d30aa51db0f4d6d8700bc1821fec6292587df7bba2fe1a96451230de8c64b989740731888ebf1141138bfffb14cacccf4d05c66ad93f
+ checksum: 10/e6f335e472a8a337379effc15815dd0eddf6a7d0c00b50deb4f9e9585819b45431d0ff3c2d3d0fa58c227a9b04dcc4a85e7245fb57493adb2863b5208c769cbd
languageName: node
linkType: hard
@@ -2129,61 +1835,32 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.23.5":
- version: 7.23.5
- resolution: "@babel/traverse@npm:7.23.5"
- dependencies:
- "@babel/code-frame": "npm:^7.23.5"
- "@babel/generator": "npm:^7.23.5"
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-function-name": "npm:^7.23.0"
- "@babel/helper-hoist-variables": "npm:^7.22.5"
- "@babel/helper-split-export-declaration": "npm:^7.22.6"
- "@babel/parser": "npm:^7.23.5"
- "@babel/types": "npm:^7.23.5"
- debug: "npm:^4.1.0"
- globals: "npm:^11.1.0"
- checksum: 10/281cae2765caad88c7af6214eab3647db0e9cadc7ffcd3fd924f09fbb9bd09d97d6fb210794b7545c317ce417a30016636530043a455ba6922349e39c1ba622a
- languageName: node
- linkType: hard
-
-"@babel/traverse@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/traverse@npm:7.24.7"
+"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8":
+ version: 7.24.8
+ resolution: "@babel/traverse@npm:7.24.8"
dependencies:
"@babel/code-frame": "npm:^7.24.7"
- "@babel/generator": "npm:^7.24.7"
+ "@babel/generator": "npm:^7.24.8"
"@babel/helper-environment-visitor": "npm:^7.24.7"
"@babel/helper-function-name": "npm:^7.24.7"
"@babel/helper-hoist-variables": "npm:^7.24.7"
"@babel/helper-split-export-declaration": "npm:^7.24.7"
- "@babel/parser": "npm:^7.24.7"
- "@babel/types": "npm:^7.24.7"
+ "@babel/parser": "npm:^7.24.8"
+ "@babel/types": "npm:^7.24.8"
debug: "npm:^4.3.1"
globals: "npm:^11.1.0"
- checksum: 10/785cf26383a992740e492efba7016de964cd06c05c9d7146fa1b5ead409e054c444f50b36dc37856884a56e32cf9d3105ddf1543486b6df68300bffb117a245a
+ checksum: 10/47d8ecf8cfff58fe621fc4d8454b82c97c407816d8f9c435caa0c849ea7c357b91119a06f3c69f21a0228b5d06ac0b44f49d1f78cff032d6266317707f1fe615
languageName: node
linkType: hard
-"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
- version: 7.23.5
- resolution: "@babel/types@npm:7.23.5"
+"@babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.24.9, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
+ version: 7.24.9
+ resolution: "@babel/types@npm:7.24.9"
dependencies:
- "@babel/helper-string-parser": "npm:^7.23.4"
- "@babel/helper-validator-identifier": "npm:^7.22.20"
- to-fast-properties: "npm:^2.0.0"
- checksum: 10/a623a4e7f396f1903659099da25bfa059694a49f42820f6b5288347f1646f0b37fb7cc550ba45644e9067149368ef34ccb1bd4a4251ec59b83b3f7765088f363
- languageName: node
- linkType: hard
-
-"@babel/types@npm:^7.24.7":
- version: 7.24.7
- resolution: "@babel/types@npm:7.24.7"
- dependencies:
- "@babel/helper-string-parser": "npm:^7.24.7"
+ "@babel/helper-string-parser": "npm:^7.24.8"
"@babel/helper-validator-identifier": "npm:^7.24.7"
to-fast-properties: "npm:^2.0.0"
- checksum: 10/ad3c8c0d6fb4acb0bb74bb5b4bb849b181bf6185677ef9c59c18856c81e43628d0858253cf232f0eca806f02e08eff85a1d3e636a3e94daea737597796b0b430
+ checksum: 10/21873a08a124646824aa230de06af52149ab88206dca59849dcb3003990a6306ec2cdaa4147ec1127c0cfc5f133853cfc18f80d7f6337b6662a3c378ed565f15
languageName: node
linkType: hard
@@ -2362,144 +2039,177 @@ __metadata:
languageName: node
linkType: hard
-"@inquirer/checkbox@npm:^2.3.6":
- version: 2.3.6
- resolution: "@inquirer/checkbox@npm:2.3.6"
+"@inquirer/checkbox@npm:^2.3.7":
+ version: 2.4.2
+ resolution: "@inquirer/checkbox@npm:2.4.2"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
- "@inquirer/figures": "npm:^1.0.3"
- "@inquirer/type": "npm:^1.3.3"
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/figures": "npm:^1.0.5"
+ "@inquirer/type": "npm:^1.5.1"
ansi-escapes: "npm:^4.3.2"
- chalk: "npm:^4.1.2"
- checksum: 10/6a5065a0d0a1b5cabeea2898f56df7dd8c0185d0156ebb79df4e3e45edde28d0ce2540cae9249458cc7522e9a6792544fc8056024e93815bdd590301767a8a5f
+ yoctocolors-cjs: "npm:^2.1.2"
+ checksum: 10/cbf737c950ac3ff7fe96c5b5f8e567b6edfb2076cb13faa8a2c75fab5379783f0571e7348d645f42d80885ec8c70f7a27afe4888d4af0527b686452cdc17feae
languageName: node
linkType: hard
-"@inquirer/confirm@npm:3.1.10, @inquirer/confirm@npm:^3.1.10":
- version: 3.1.10
- resolution: "@inquirer/confirm@npm:3.1.10"
+"@inquirer/confirm@npm:3.1.11":
+ version: 3.1.11
+ resolution: "@inquirer/confirm@npm:3.1.11"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
+ "@inquirer/core": "npm:^8.2.4"
"@inquirer/type": "npm:^1.3.3"
- checksum: 10/fb750fac1fb6cab521cf683b0d9434726a5eaf92ec600137a8606263591eb2310850b493b3668f4881edb566eb2631e0e47c45da18cdd64a3218c647510b1102
+ checksum: 10/351f0bb4e5eb328e304bf32ca80411e4c375ec88ca5ac4a1477ab31eb026b422c03af0ade97da62304ddb6c5b780f322b90c31e571b163b6c42942c3080e9083
languageName: node
linkType: hard
-"@inquirer/core@npm:^8.2.3":
- version: 8.2.3
- resolution: "@inquirer/core@npm:8.2.3"
+"@inquirer/confirm@npm:^3.1.11":
+ version: 3.1.17
+ resolution: "@inquirer/confirm@npm:3.1.17"
+ dependencies:
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/type": "npm:^1.5.1"
+ checksum: 10/ab59242227295d0fd6eceb02feb2026155d33f6362c790f25acdf6258bcdff25fbe5ead1e70c4d2479007aff57e1e60cf1182fee2dea7e3a814b36328ca15497
+ languageName: node
+ linkType: hard
+
+"@inquirer/core@npm:^8.2.4":
+ version: 8.2.4
+ resolution: "@inquirer/core@npm:8.2.4"
dependencies:
"@inquirer/figures": "npm:^1.0.3"
"@inquirer/type": "npm:^1.3.3"
"@types/mute-stream": "npm:^0.0.4"
- "@types/node": "npm:^20.14.6"
+ "@types/node": "npm:^20.14.9"
"@types/wrap-ansi": "npm:^3.0.0"
ansi-escapes: "npm:^4.3.2"
- chalk: "npm:^4.1.2"
cli-spinners: "npm:^2.9.2"
cli-width: "npm:^4.1.0"
mute-stream: "npm:^1.0.0"
+ picocolors: "npm:^1.0.1"
signal-exit: "npm:^4.1.0"
strip-ansi: "npm:^6.0.1"
wrap-ansi: "npm:^6.2.0"
- checksum: 10/2e3729d5b1cf55140da96944d7403eb5fb6b46512c479a05aa9063a5796aab1aa34e33ab09f60b21902aa2c120a32162d9972f4cfad1fe15c68e43ccf906e173
+ checksum: 10/4835ce2828e833cf02aa74e8a5e330eca3d6659413516490f45fdca7e83f858fa6e50932742fb1371903e60fe99adada6f2177d64f335d6ca24464132034f662
languageName: node
linkType: hard
-"@inquirer/editor@npm:^2.1.10":
- version: 2.1.10
- resolution: "@inquirer/editor@npm:2.1.10"
+"@inquirer/core@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "@inquirer/core@npm:9.0.5"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
- "@inquirer/type": "npm:^1.3.3"
+ "@inquirer/figures": "npm:^1.0.5"
+ "@inquirer/type": "npm:^1.5.1"
+ "@types/mute-stream": "npm:^0.0.4"
+ "@types/node": "npm:^20.14.11"
+ "@types/wrap-ansi": "npm:^3.0.0"
+ ansi-escapes: "npm:^4.3.2"
+ cli-spinners: "npm:^2.9.2"
+ cli-width: "npm:^4.1.0"
+ mute-stream: "npm:^1.0.0"
+ signal-exit: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.1"
+ wrap-ansi: "npm:^6.2.0"
+ yoctocolors-cjs: "npm:^2.1.2"
+ checksum: 10/70b7a488bfb5517f042584074306e27bacb3737df9879265939d588d6c8f12e6abbadce8068500403a897b66d71917c98a31e3c279d1c12744226eeeb5dc8d21
+ languageName: node
+ linkType: hard
+
+"@inquirer/editor@npm:^2.1.11":
+ version: 2.1.17
+ resolution: "@inquirer/editor@npm:2.1.17"
+ dependencies:
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/type": "npm:^1.5.1"
external-editor: "npm:^3.1.0"
- checksum: 10/667b14887919994de6b7760f6e064456d2981e82395b044987daadf96c13af80134cca630fe5cbf46926eddab0e5396cf4349177047d708ccb199e442dedb0da
+ checksum: 10/33b33e5f0f9c18dc1b242e8dc38debef1fec19c4e4ccbbad3d88c5e74b38ff71fcffe2815487e167d6381d5546f9eed86f2c6a4f12b7f7eb5737232664996876
languageName: node
linkType: hard
-"@inquirer/expand@npm:^2.1.10":
- version: 2.1.10
- resolution: "@inquirer/expand@npm:2.1.10"
+"@inquirer/expand@npm:^2.1.11":
+ version: 2.1.17
+ resolution: "@inquirer/expand@npm:2.1.17"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
- "@inquirer/type": "npm:^1.3.3"
- chalk: "npm:^4.1.2"
- checksum: 10/9c9c37eb37e6dd541414cfc81fd960ceba3e4e51a30fa2ec63e3612a84704677ba6479600c29dcc259525bff0f1c91e71df594cedbf76e63d849204032c681c4
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/type": "npm:^1.5.1"
+ yoctocolors-cjs: "npm:^2.1.2"
+ checksum: 10/d1f86cc953b28714e8c73bcacb402dfef3b06c574e2a5e31773fd3c489d23dedf5a509dc051dfdf4af0be93a7c35a7b7fc7e1a6b37e6d63c05cd03bb3eb725bb
languageName: node
linkType: hard
-"@inquirer/figures@npm:^1.0.3":
- version: 1.0.3
- resolution: "@inquirer/figures@npm:1.0.3"
- checksum: 10/fa5c46527580c64ba151e1399f91772670f5f59e47045a3d2366188ed4cab1b63b7fb2a6d40d340f622cb174ca6dd3d5e22b962811c00548f9a9b4024b105dce
+"@inquirer/figures@npm:^1.0.3, @inquirer/figures@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "@inquirer/figures@npm:1.0.5"
+ checksum: 10/60a51b2cdef03c89be25071c23d8c4ae427c56d8ac1b00bf054ca7be446674adc4edd66c15465fe6a81ff0726b024bf37f8a2903a8387ef968d33058da3e7a15
languageName: node
linkType: hard
-"@inquirer/input@npm:^2.1.10":
- version: 2.1.10
- resolution: "@inquirer/input@npm:2.1.10"
+"@inquirer/input@npm:^2.1.11":
+ version: 2.2.4
+ resolution: "@inquirer/input@npm:2.2.4"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
- "@inquirer/type": "npm:^1.3.3"
- checksum: 10/eee7aeca062a093c41a03eb891d2cdf169eae626907b795c40ee73872382930b387cefede4a28386c3ef3f7e6b4c1a825d6c169dc58fe31fee2c8b5278e72942
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/type": "npm:^1.5.1"
+ checksum: 10/6224c0e0983667282683971f0ec814796a4ee933a4a0acf09752bc3970a52a888af8eac041d71bc10f51731951305dc328e697d459f771358942baac18769faf
languageName: node
linkType: hard
-"@inquirer/password@npm:^2.1.10":
- version: 2.1.10
- resolution: "@inquirer/password@npm:2.1.10"
+"@inquirer/password@npm:^2.1.11":
+ version: 2.1.17
+ resolution: "@inquirer/password@npm:2.1.17"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
- "@inquirer/type": "npm:^1.3.3"
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/type": "npm:^1.5.1"
ansi-escapes: "npm:^4.3.2"
- checksum: 10/b30c9b3e37c7c171e3987557f5bb15d10d847636e76d37be3142f145751352329673a04906952ec47406ed33f14c84b02c6bfe9b5bba6742b4fc9df6789af228
+ checksum: 10/943eb431cb3cf80dfe674957ad8fa3eda0b90db00190d477d8e065ca5fa9dc64cab04630e39fda522ddc0675dc12338b64d0ead4ad45eb0083423d0c0baa2319
languageName: node
linkType: hard
-"@inquirer/prompts@npm:5.0.6":
- version: 5.0.6
- resolution: "@inquirer/prompts@npm:5.0.6"
+"@inquirer/prompts@npm:5.0.7":
+ version: 5.0.7
+ resolution: "@inquirer/prompts@npm:5.0.7"
dependencies:
- "@inquirer/checkbox": "npm:^2.3.6"
- "@inquirer/confirm": "npm:^3.1.10"
- "@inquirer/editor": "npm:^2.1.10"
- "@inquirer/expand": "npm:^2.1.10"
- "@inquirer/input": "npm:^2.1.10"
- "@inquirer/password": "npm:^2.1.10"
- "@inquirer/rawlist": "npm:^2.1.10"
- "@inquirer/select": "npm:^2.3.6"
- checksum: 10/ad65a85ffd17f7cac5f6406421cd67ad64e3eb606b0e3f875dd8606ddc60c9b5ea71b33bc51cad0cb9269d7f0f4ea137368511cba32aa5205a06cde78908792f
+ "@inquirer/checkbox": "npm:^2.3.7"
+ "@inquirer/confirm": "npm:^3.1.11"
+ "@inquirer/editor": "npm:^2.1.11"
+ "@inquirer/expand": "npm:^2.1.11"
+ "@inquirer/input": "npm:^2.1.11"
+ "@inquirer/password": "npm:^2.1.11"
+ "@inquirer/rawlist": "npm:^2.1.11"
+ "@inquirer/select": "npm:^2.3.7"
+ checksum: 10/17a8f2c78ffabbbf71be3a7a698bf6fb718ccd4cc0163ffe4811c21021f170ba45954ac971d36f183d75f4d6bd33d3b0f0c7ff7d554c8eef277d1599594ab09b
languageName: node
linkType: hard
-"@inquirer/rawlist@npm:^2.1.10":
- version: 2.1.10
- resolution: "@inquirer/rawlist@npm:2.1.10"
+"@inquirer/rawlist@npm:^2.1.11":
+ version: 2.1.17
+ resolution: "@inquirer/rawlist@npm:2.1.17"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
- "@inquirer/type": "npm:^1.3.3"
- chalk: "npm:^4.1.2"
- checksum: 10/fdeac0ef95f5b662f18e4576662bac5399bd251d4e4be55a14611ffbdff9ca8bf1475475fd07a585fb78a6287f9dd6aedc5f1ca57446b1dcbdc57e26d0323460
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/type": "npm:^1.5.1"
+ yoctocolors-cjs: "npm:^2.1.2"
+ checksum: 10/c23b09d2ebadfedf3c72e8576b97d8cc3f395a0b16bde5cb9ee544405b48de83677ac496c0cf875ccdd5ca2198affc2f5374ce6c1a16df0eab1a06e6c5c7efc5
languageName: node
linkType: hard
-"@inquirer/select@npm:^2.3.6":
- version: 2.3.6
- resolution: "@inquirer/select@npm:2.3.6"
+"@inquirer/select@npm:^2.3.7":
+ version: 2.4.2
+ resolution: "@inquirer/select@npm:2.4.2"
dependencies:
- "@inquirer/core": "npm:^8.2.3"
- "@inquirer/figures": "npm:^1.0.3"
- "@inquirer/type": "npm:^1.3.3"
+ "@inquirer/core": "npm:^9.0.5"
+ "@inquirer/figures": "npm:^1.0.5"
+ "@inquirer/type": "npm:^1.5.1"
ansi-escapes: "npm:^4.3.2"
- chalk: "npm:^4.1.2"
- checksum: 10/37aa039bf4b6d2005b028aacfe9b3ce9dd03de49d88dc0dba5d6b5fb045f97dc886b6d252f2049fea0a8798613e97cdb82c65af3a7c6dc4a481b800b6669b954
+ yoctocolors-cjs: "npm:^2.1.2"
+ checksum: 10/fee65bb21189253f83f070775a665a5292beb47ec7c5be8c1ec6adfc0c71d5e5ddcb0a1729e68153fb812c3037067a60348bf43ede258077b0bc61433c90959b
languageName: node
linkType: hard
-"@inquirer/type@npm:^1.3.3":
- version: 1.3.3
- resolution: "@inquirer/type@npm:1.3.3"
- checksum: 10/1de6fed6bca013d1d84c6f280c5cb5d1ac7788aed1bbdb3315977abda33dcea234e1e9b7d917fcad573192af9de12b1363c4ea4bf81318f6c45299e3521dbee6
+"@inquirer/type@npm:^1.3.3, @inquirer/type@npm:^1.5.1":
+ version: 1.5.1
+ resolution: "@inquirer/type@npm:1.5.1"
+ dependencies:
+ mute-stream: "npm:^1.0.0"
+ checksum: 10/991e029074143975a2730468edb96d45a8a56fd292e2d88584fd75fe567b15989bb8171469bb8fd14b4d84c5f0025d2d6dc520045d4b19541498ad6b52c2e36a
languageName: node
linkType: hard
@@ -2524,17 +2234,6 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2":
- version: 0.3.3
- resolution: "@jridgewell/gen-mapping@npm:0.3.3"
- dependencies:
- "@jridgewell/set-array": "npm:^1.0.1"
- "@jridgewell/sourcemap-codec": "npm:^1.4.10"
- "@jridgewell/trace-mapping": "npm:^0.3.9"
- checksum: 10/072ace159c39ab85944bdabe017c3de15c5e046a4a4a772045b00ff05e2ebdcfa3840b88ae27e897d473eb4d4845b37be3c78e28910c779f5aeeeae2fb7f0cc2
- languageName: node
- linkType: hard
-
"@jridgewell/gen-mapping@npm:^0.3.5":
version: 0.3.5
resolution: "@jridgewell/gen-mapping@npm:0.3.5"
@@ -2547,16 +2246,9 @@ __metadata:
linkType: hard
"@jridgewell/resolve-uri@npm:^3.1.0":
- version: 3.1.1
- resolution: "@jridgewell/resolve-uri@npm:3.1.1"
- checksum: 10/64d59df8ae1a4e74315eb1b61e012f1c7bc8aac47a3a1e683f6fe7008eab07bc512a742b7aa7c0405685d1421206de58c9c2e6adbfe23832f8bd69408ffc183e
- languageName: node
- linkType: hard
-
-"@jridgewell/set-array@npm:^1.0.1":
- version: 1.1.2
- resolution: "@jridgewell/set-array@npm:1.1.2"
- checksum: 10/69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e
+ version: 3.1.2
+ resolution: "@jridgewell/resolve-uri@npm:3.1.2"
+ checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d
languageName: node
linkType: hard
@@ -2568,29 +2260,19 @@ __metadata:
linkType: hard
"@jridgewell/source-map@npm:^0.3.3":
- version: 0.3.5
- resolution: "@jridgewell/source-map@npm:0.3.5"
+ version: 0.3.6
+ resolution: "@jridgewell/source-map@npm:0.3.6"
dependencies:
- "@jridgewell/gen-mapping": "npm:^0.3.0"
- "@jridgewell/trace-mapping": "npm:^0.3.9"
- checksum: 10/73838ac43235edecff5efc850c0d759704008937a56b1711b28c261e270fe4bf2dc06d0b08663aeb1ab304f81f6de4f5fb844344403cf53ba7096967a9953cae
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.25"
+ checksum: 10/0a9aca9320dc9044014ba0ef989b3a8411b0d778895553e3b7ca2ac0a75a20af4a5ad3f202acfb1879fa40466036a4417e1d5b38305baed8b9c1ebe6e4b3e7f5
languageName: node
linkType: hard
"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15":
- version: 1.4.15
- resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
- checksum: 10/89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09
- languageName: node
- linkType: hard
-
-"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9":
- version: 0.3.20
- resolution: "@jridgewell/trace-mapping@npm:0.3.20"
- dependencies:
- "@jridgewell/resolve-uri": "npm:^3.1.0"
- "@jridgewell/sourcemap-codec": "npm:^1.4.14"
- checksum: 10/683117e4e6707ef50c725d6d0ec4234687ff751f36fa46c2b3068931eb6a86b49af374d3030200777666579a992b7470d1bd1c591e9bf64d764dda5295f33093
+ version: 1.5.0
+ resolution: "@jridgewell/sourcemap-codec@npm:1.5.0"
+ checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd
languageName: node
linkType: hard
@@ -2604,21 +2286,53 @@ __metadata:
languageName: node
linkType: hard
+"@jsonjoy.com/base64@npm:^1.1.1":
+ version: 1.1.2
+ resolution: "@jsonjoy.com/base64@npm:1.1.2"
+ peerDependencies:
+ tslib: 2
+ checksum: 10/d76bb58eff841c090d9bf69a073611ffa73c40a664ccbcea689f65961f57d7b24051269d06b437e4f6204285d6ba92f50f587c5e95c5f9e4f10b36a2ed4cd0c8
+ languageName: node
+ linkType: hard
+
+"@jsonjoy.com/json-pack@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "@jsonjoy.com/json-pack@npm:1.0.4"
+ dependencies:
+ "@jsonjoy.com/base64": "npm:^1.1.1"
+ "@jsonjoy.com/util": "npm:^1.1.2"
+ hyperdyperid: "npm:^1.2.0"
+ thingies: "npm:^1.20.0"
+ peerDependencies:
+ tslib: 2
+ checksum: 10/dd749e7c4610db4ab7d53d9df6d8465b9805e560eda9c60dac4435b50a30710d39e975887104021a11d91c12fdf9c1752f0b0c63580a1b6b1b12854633cfea39
+ languageName: node
+ linkType: hard
+
+"@jsonjoy.com/util@npm:^1.1.2":
+ version: 1.2.0
+ resolution: "@jsonjoy.com/util@npm:1.2.0"
+ peerDependencies:
+ tslib: 2
+ checksum: 10/6af58b3d34266f1f8e4f953668f163ef1028a5d372a90391bd238c2ea637e0ea3792b18b99162b8ec072af35baebe0e947d9eedd702ad942e697ed419f1e54eb
+ languageName: node
+ linkType: hard
+
"@leichtgewicht/ip-codec@npm:^2.0.1":
- version: 2.0.4
- resolution: "@leichtgewicht/ip-codec@npm:2.0.4"
- checksum: 10/3c7ffb0afb86c731a02813aa4370da27eac037abf8a15fce211226c11b644610382c8eca7efadace9471ee1959afe72fc1d43a62227d974b9fca8eae8b8d2124
+ version: 2.0.5
+ resolution: "@leichtgewicht/ip-codec@npm:2.0.5"
+ checksum: 10/cb98c608392abe59457a14e00134e7dfa57c0c9b459871730cd4e907bb12b834cbd03e08ad8663fea9e486f260da7f1293ccd9af0376bf5524dd8536192f248c
languageName: node
linkType: hard
-"@listr2/prompt-adapter-inquirer@npm:2.0.12":
- version: 2.0.12
- resolution: "@listr2/prompt-adapter-inquirer@npm:2.0.12"
+"@listr2/prompt-adapter-inquirer@npm:2.0.13":
+ version: 2.0.13
+ resolution: "@listr2/prompt-adapter-inquirer@npm:2.0.13"
dependencies:
"@inquirer/type": "npm:^1.3.3"
peerDependencies:
"@inquirer/prompts": ">= 3 < 6"
- checksum: 10/9af99959677fc7953d2ee7429acbf8d48683b10e42b709e5e3a1995d7f8f15251bcb669cfc0ff19423f2bcf928d4afced98390ce90c0888ae8376178246f7f77
+ checksum: 10/1c09af25eb4692a12b2009783bbdae58b371409d0a2740302c1e315d73443c96e6e366840fa61d8704a8155dc4f0e854caeaea499768e37d49a85c7db4b8cf70
languageName: node
linkType: hard
@@ -2639,880 +2353,78 @@ __metadata:
"@lmdb/lmdb-linux-arm64@npm:3.0.12":
version: 3.0.12
resolution: "@lmdb/lmdb-linux-arm64@npm:3.0.12"
- conditions: os=linux & cpu=arm64
- languageName: node
- linkType: hard
-
-"@lmdb/lmdb-linux-arm@npm:3.0.12":
- version: 3.0.12
- resolution: "@lmdb/lmdb-linux-arm@npm:3.0.12"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
-"@lmdb/lmdb-linux-x64@npm:3.0.12":
- version: 3.0.12
- resolution: "@lmdb/lmdb-linux-x64@npm:3.0.12"
- conditions: os=linux & cpu=x64
- languageName: node
- linkType: hard
-
-"@lmdb/lmdb-win32-x64@npm:3.0.12":
- version: 3.0.12
- resolution: "@lmdb/lmdb-win32-x64@npm:3.0.12"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@material/animation@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/animation@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/0babbf8c00b0afe509a580daba2ce04a8b5bb29d61a881632251924019caa51c0121d02157224e22d7bd00437d28a269fed0ad2397ad59faba3050d64ee07fa3
- languageName: node
- linkType: hard
-
-"@material/auto-init@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/auto-init@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/6a41258c554ee3f0498b0115a6e3e53c960a3d41e5cad3a846ed090d28b37709d21ff46e7669071835816f8e5db3d23c62d846125ae7ce7b7e4b128c828e8d6f
- languageName: node
- linkType: hard
-
-"@material/banner@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/banner@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/8f670b4c80220d280906348363e0b8fcc414f8f56ee2dd44aa9b909c5342e70122aec1ebdcb83f0d02c36615ddc3f038b5be17679a239a93e2f95498170e985c
- languageName: node
- linkType: hard
-
-"@material/base@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/base@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/182739471e58eddd6e733768b0c4bb6d7f5405227da0e4d09f9d7781c2eabe80a7efbc551838b618d887a916852eebf780acc2944ea6bb9fe9648013e290ec76
- languageName: node
- linkType: hard
-
-"@material/button@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/button@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/eeeb70e069010b44e43823e5edf8a4536a847bf8a4ee48e37b05ec726c09dae2b2a37d72bc066fdae57b8f66d8a26261c2b8dad4892bb6574614319d3204d51f
- languageName: node
- linkType: hard
-
-"@material/card@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/card@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/e02a5465a4ec71c2666b4e8603c51cd19df9d691f0db46afcc70dd2776f2d630df4fd298de6b6d40512b1ed372d95fd7c820e22dbb09b2d9b49202092e7e6091
- languageName: node
- linkType: hard
-
-"@material/checkbox@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/checkbox@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/ee6766d6d4d48b82341df0a50209f8e32ad3bc48a864d9159b1785f372f82b8e744c12429932a22844b0d3fc45c274844ca6218cbab10239cec62558493cf539
- languageName: node
- linkType: hard
-
-"@material/chips@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/chips@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/checkbox": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- safevalues: "npm:^0.3.4"
- tslib: "npm:^2.1.0"
- checksum: 10/06754d3c7b94262787a895f7a2089a8372732edb77a481963fc5c50ecdfbdd8753c5192b2295a3f5a02833ce0c9bd39efc1e44aa861fc0f2392d50397b13b619
- languageName: node
- linkType: hard
-
-"@material/circular-progress@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/circular-progress@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/9c517f3848b4e8f561ee343367131b55c132f99f3cc7a0a3a58d818b314312d011347ed5c6398bf18f1fea06da66d1ed0cea477529180d19b04e98abeaeda219
- languageName: node
- linkType: hard
-
-"@material/data-table@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/data-table@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/checkbox": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/linear-progress": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/select": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/d825b9ce007f10700800315774c0e08c22f12b34d76baa9d8bec8694e49faf1d49088bcb605265d8e47220ebda12e5197b0b5004199a7cbffc1b4acd78bae64e
- languageName: node
- linkType: hard
-
-"@material/density@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/density@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/1468d1a2381e49b7eae5cc05043beed0d23b735cb8b3220844f2859ad92c286be94a7b22c0420f9ebba4012d1cfa69bf4fdc1bc8518d3e758f5e07a28f13fb55
- languageName: node
- linkType: hard
-
-"@material/dialog@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/dialog@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/44df610e6afc7784c1105d19f38e37c9ae2e24377d6fa124b8d4d17cfebed6b3077ba7e0ccffcff3b48718fd118d3936e82b813cfdda8f6c9ee0e2828f0a9bcb
- languageName: node
- linkType: hard
-
-"@material/dom@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/dom@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/e0447f8d1caf4cfde438b8b390330485f217d8860f0954e1ee12fe68ad75d5d1719f33c56010fcfe63fb7c455943b57d86eb3ce1786248ec565d4b948bafb44c
- languageName: node
- linkType: hard
-
-"@material/drawer@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/drawer@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/c088da1ebee212748fe1d6caefaf611342f3ede552696bb142fec6eaa53f430a164f4afd1e6145644766069eff16bf6c656f16296d8d937857f3f24c9e859958
- languageName: node
- linkType: hard
-
-"@material/elevation@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/elevation@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/02d7118442f5ebef9b31257ba3bf46559869682817dab8c9c74516beb97ddfdf82336db2a81be1c4e2f888171f623d43b87b16a56bdba4f1e37654d31fbf124d
- languageName: node
- linkType: hard
-
-"@material/fab@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/fab@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/60c9cd39f058f9b60d2e85ec4a72b3d57b661b18b9dfd6ad53fcb82f6993688bc665453e867dde74ffc00e5600399aa22d73ac55a88dcb2a1f9ff510e622cda0
- languageName: node
- linkType: hard
-
-"@material/feature-targeting@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/feature-targeting@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/bec51d4561d5f1aca1dd0edd4e9bcba5ef9b2137791ba155e676e74c2d6eaff39b9b7d6acb4ae8a8621bd830b29b1e527fdcaf8ff1cd0ef6ebd4388ffb45286e
- languageName: node
- linkType: hard
-
-"@material/floating-label@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/floating-label@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/4941c260495c8562686acd4763afe103f4062da35cf5c23c47234906412d680e5d21a8b3c4eaad8589b045fa765806de7327eac4d07b3a2cc1144eadf731e07e
- languageName: node
- linkType: hard
-
-"@material/focus-ring@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/focus-ring@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- checksum: 10/91eb13d0750e11052e83657cd19797175608fb809443a730bc1f71f2fb91e64791fcb732e5139af0685b46006cc1695508cd673d07b20aaf74f8ebedabde8e77
- languageName: node
- linkType: hard
-
-"@material/form-field@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/form-field@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/ff49182b09fe036caf79ddb2b8b4b46bf24512c1cf8c94dec3f9f4314c3538af9a5c7dc0e3f992ad168b2df2c7877101c96dafd83fb2a6def62d0098afe00d3b
- languageName: node
- linkType: hard
-
-"@material/icon-button@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/icon-button@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/ac390fbcfc8738e5eed761fa1e4a3fec58b617d8f65d3ba6bb1d495575b7005c9c8d6cb668944c791b749021a54f7c00c505b2fd02a1066ce9f1a6ecbdad7bc9
- languageName: node
- linkType: hard
-
-"@material/image-list@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/image-list@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/202c34be7cb64acce4a05cfe8a248ce388396affc3abd29d840d202f0a92278f967ea8d7b5e7277a5d1873acab70990cbeb0c052783177880925f895e1128f37
- languageName: node
- linkType: hard
-
-"@material/layout-grid@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/layout-grid@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/5284c932ec191d98bb900844568da4d39f1b74529d49ae5238f93274e696d24c66e973587721f1d47b95698e3b1dd18e2d94c4624ad6ae7c1e19f43f942f02d8
- languageName: node
- linkType: hard
-
-"@material/line-ripple@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/line-ripple@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/40163d05bc31709521d5dea729d637f1282b76b95533c3e9e122d748a396ac49ce50aeb90fd48869ed5cb0b2877477717270e2cc9d05835f3d435dc7877da6e0
- languageName: node
- linkType: hard
-
-"@material/linear-progress@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/linear-progress@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/progress-indicator": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/25810041b4faab186050a316eb410155fa56b671c93c513d0278afa37e42debf896e5ae309fe01a7117f25aa5ace72d99bf9af5e3c4f07c8cb4723adb4f5c0f8
- languageName: node
- linkType: hard
-
-"@material/list@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/list@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/60decc1414a5ab4b78b290e8fc48a4dc828a1378399a87e6a96c937d3f89dd7615028f03d0b15adbeff0ccbe50152b631e0447b14fc94c09c1f5c01593da603f
- languageName: node
- linkType: hard
-
-"@material/menu-surface@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/menu-surface@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/2e0b1dc80afc2f155b93300df11259bf1cadd39eb1200aa402ab69ce6165f3820789b3325373bad962ec44a027d822e7943f65e30807e07501cd2e6ff290d577
- languageName: node
- linkType: hard
-
-"@material/menu@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/menu@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/d812f0a72670394e1dafc1223012b7580fcadc8fc9c145e44861453e975b5a8c973dda4fcabdd3c5c908f17ad7c0e15ae8288c4e10fc70472653b73f649549c8
- languageName: node
- linkType: hard
-
-"@material/notched-outline@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/notched-outline@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/5bdeb89a254fce7ab4600410039a8d653dd60781db907ac250b52a0db6bb87d3b0148fefe6dab8437de8e367383b64de4a7f2981c26cd05af7f4f58e56e021ad
- languageName: node
- linkType: hard
-
-"@material/progress-indicator@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/progress-indicator@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- tslib: "npm:^2.1.0"
- checksum: 10/9a3e24bc9874b62d3a15392f81ea77f9ed0920f243eaa584bb1cea3a239df8894aca75fc2af8dd7b64610a1567b49f3c85902f66b346d483ac13ddac83ff7af5
- languageName: node
- linkType: hard
-
-"@material/radio@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/radio@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/efdf3d04995e9e074ed271b6017a30b29c8e97adb11d1306b1e49f5519516173b0761b029efa037230078908c787aabd2a484859f4ab8958875cd2ae39f3000c
- languageName: node
- linkType: hard
-
-"@material/ripple@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/ripple@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/fef2d31a8a1cf252e159a268ecf8b20b7eb7e68f495a77f37e9527e9a55fa07874f4e160c4ae548b6760c77285b18bd70e857cb3e5692511aaaf6695b5a2f915
- languageName: node
- linkType: hard
-
-"@material/rtl@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/rtl@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/e4cb429649311ceb8fabd2636cfd0539715437e84946024c53b7146b927b84ef87cbf266c02b63a7c2203311b526985107cfec74ad096022540efd549ccd5333
- languageName: node
- linkType: hard
-
-"@material/segmented-button@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/segmented-button@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/9d17f8ed5b9ee4760e8ef38b1acb26a29377409e40d3817087f002d14e7138999c85ae5a82e602901cf44b2d4d7c770ca9a520b3247b1d44439493504abcbfbb
- languageName: node
- linkType: hard
-
-"@material/select@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/select@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/list": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/menu-surface": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/e4eb9b5ee7a5142ec5f553e833484c9c32cffad526a9ca54758ef81a69941d093e7ec9cfa00ab7110f4e39b742cb6958579b4e1be22804ada5d8a13c4957089a
- languageName: node
- linkType: hard
-
-"@material/shape@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/shape@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/de41060eb871bc03c4003cf9d3225de15fdd4cdad176c1234abf2cc4a2ab1619b02ff39ea1102e62e7001e7b2a21b31cdadaebbf22d8caef949d99816e3c1252
- languageName: node
- linkType: hard
-
-"@material/slider@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/slider@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/1a95d41ce4ac1bce42bbae52ad66f085d5ca493954d27af8fb8a8d823b1aaf1be13e440a80fdd640287df9aff706b43a51c2ca0093a4c59c040c2775eaa0f622
- languageName: node
- linkType: hard
-
-"@material/snackbar@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/snackbar@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/4d3609eff376f377a2031fb5986af7b6a2a324eba88af88a415189d918bcaf2474bfe9b271b6a7fb59b699335acc5e6f116f37d804e70fc334ced542ba61e8bb
- languageName: node
- linkType: hard
-
-"@material/switch@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/switch@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- safevalues: "npm:^0.3.4"
- tslib: "npm:^2.1.0"
- checksum: 10/a24b0f6992251f60c74766ad3b698031346e847269a762b4ab1bbcac53fbe2499029d6d3c19f052b73b3d8520b6022e3009ce12c8515021ecf919684ece45887
- languageName: node
- linkType: hard
-
-"@material/tab-bar@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/tab-bar@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-scroller": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/f3759487ab8f4af0c6674bd28ebaf69572fa918bff93a353f27577389bf49f761e10991de4f8f351b09a10a4cfcea383216b759702d4615ee58ebc96ea37d278
- languageName: node
- linkType: hard
-
-"@material/tab-indicator@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/tab-indicator@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/80a6afef3f50bf0403d8c250c94a71cdcbd68dd8af7ee0524aa6d16365917ec2f1bdfb4e3d066807ab49d88fa91884fce33696d8fff75816242417c78f0f53ed
- languageName: node
- linkType: hard
-
-"@material/tab-scroller@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/tab-scroller@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/dbcdc607f5dfc1e4c5109ceeb05fdaa967c9ddf5430df00a628f37550c4faa0d1e833125c266229a56418a556c0933e0289a7c45289b884665e143bd6534ef5f
- languageName: node
- linkType: hard
-
-"@material/tab@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/tab@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tab-indicator": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/fac75af586ed10f94a7c91b9179d40befb5ad21a9c7cf75fa72689fc3b71dbc68f9d389a3414db767ecd54ddcf6aa2d7e76a05e2ad5117dda93e2fa31f81f603
- languageName: node
- linkType: hard
-
-"@material/textfield@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/textfield@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/density": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/line-ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/notched-outline": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/76bec89372e51ba961ff352bebc69f8f7c72142cdc63cfc01f630f6143054270af6101b030a4e46412140e9d625ac586c2cb5d6e62bf4ad8f68875195525e603
- languageName: node
- linkType: hard
-
-"@material/theme@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/theme@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/07bc6fdf4ea91bfb7aa42fbd8b94c84f6f07dac7d6f5114d6aa92b864e1705bd40e7f2691c8765fd7fb3014c2cf1189c0be2c1977e5a1fade91014e72c1068f1
- languageName: node
- linkType: hard
-
-"@material/tokens@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/tokens@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- checksum: 10/c494e6ca0c2e8d76e004e670c121e5a2aced44dcff64cedbccdccbeb3d86e326bfdb742d8b23a4fee7d86ef47fb2378d1ee6d1d20c233cebbfe701f1450db453
- languageName: node
- linkType: hard
-
-"@material/tooltip@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/tooltip@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/button": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/dom": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- safevalues: "npm:^0.3.4"
- tslib: "npm:^2.1.0"
- checksum: 10/f362cf3064b13459cec2ddbf1ced51c8457e981f62e61ca099e370d64478a95e6f7e4ff93928e7577d0f50d52e4d7078ca362d83f5a92d1fc55d247eaf427cdd
+ conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"@material/top-app-bar@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/top-app-bar@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/animation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/shape": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/typography": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/fc5d50d33b36791877c870fab5ed8422968c3bca4634b2f181b2763747db08fc3d83f0e52b11e50a88c9da555b35b11374b29df553828edeaa9cd67762984963
+"@lmdb/lmdb-linux-arm@npm:3.0.12":
+ version: 3.0.12
+ resolution: "@lmdb/lmdb-linux-arm@npm:3.0.12"
+ conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@material/touch-target@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/touch-target@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/base": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/0eabac7cf2fd8efcff0d153fda10392ab6311445188c0ec8c87a1f252f522e9bb7059721d4d65618d7d5461238434aa51eabaa05e8118d2c3056499db8544c9b
+"@lmdb/lmdb-linux-x64@npm:3.0.12":
+ version: 3.0.12
+ resolution: "@lmdb/lmdb-linux-x64@npm:3.0.12"
+ conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"@material/typography@npm:15.0.0-canary.7f224ddd4.0":
- version: 15.0.0-canary.7f224ddd4.0
- resolution: "@material/typography@npm:15.0.0-canary.7f224ddd4.0"
- dependencies:
- "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0"
- "@material/theme": "npm:15.0.0-canary.7f224ddd4.0"
- tslib: "npm:^2.1.0"
- checksum: 10/4b865a7a647a4dd085c15c5c5f20b6259262cf922e2ab81ddc83818bc3179400f308d6cfa7ce369cba50a93b58929c8166535826701416355c005b316e995f42
+"@lmdb/lmdb-win32-x64@npm:3.0.12":
+ version: 3.0.12
+ resolution: "@lmdb/lmdb-win32-x64@npm:3.0.12"
+ conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.2"
+"@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.3":
+ version: 3.0.3
+ resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.3"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.2"
+"@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.3":
+ version: 3.0.3
+ resolution: "@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.3"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.2"
+"@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.3":
+ version: 3.0.3
+ resolution: "@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.3"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.2"
+"@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.3":
+ version: 3.0.3
+ resolution: "@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.3"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.2"
+"@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.3":
+ version: 3.0.3
+ resolution: "@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.3"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.2":
- version: 3.0.2
- resolution: "@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.2"
+"@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.3":
+ version: 3.0.3
+ resolution: "@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.3"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"@ngtools/webpack@npm:18.1.0-next.3":
- version: 18.1.0-next.3
- resolution: "@ngtools/webpack@npm:18.1.0-next.3"
+"@ngtools/webpack@npm:18.1.0":
+ version: 18.1.0
+ resolution: "@ngtools/webpack@npm:18.1.0"
peerDependencies:
- "@angular/compiler-cli": ^18.0.0 || ^18.1.0-next.0
+ "@angular/compiler-cli": ^18.0.0
typescript: ">=5.4 <5.6"
webpack: ^5.54.0
dependenciesMeta:
@@ -3520,7 +2432,7 @@ __metadata:
built: true
puppeteer:
built: true
- checksum: 10/5f22209d02eafbc33840649c70a1c2e4f3ca0ee3ab4cc9479003221079b0f6046f3c3317fdc6c936c8b4b2a392abc820b6f4084b2e0a59dc5680fcbaef07c5d5
+ checksum: 10/73e5fc15aa92259337084de3ffd5d70cb732059ed70de2d3114eebbcd4088749824d9065fd934bd358bc80d04ea0d49f7682441d6e33098a303e5ee84e1511f7
languageName: node
linkType: hard
@@ -3552,52 +2464,53 @@ __metadata:
linkType: hard
"@npmcli/agent@npm:^2.0.0":
- version: 2.2.0
- resolution: "@npmcli/agent@npm:2.2.0"
+ version: 2.2.2
+ resolution: "@npmcli/agent@npm:2.2.2"
dependencies:
agent-base: "npm:^7.1.0"
http-proxy-agent: "npm:^7.0.0"
https-proxy-agent: "npm:^7.0.1"
lru-cache: "npm:^10.0.1"
- socks-proxy-agent: "npm:^8.0.1"
- checksum: 10/822ea077553cd9cfc5cbd6d92380b0950fcb054a7027cd1b63a33bd0cbb16b0c6626ea75d95ec0e804643c8904472d3361d2da8c2444b1fb02a9b525d9c07c41
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10/96fc0036b101bae5032dc2a4cd832efb815ce9b33f9ee2f29909ee49d96a0026b3565f73c507a69eb8603f5cb32e0ae45a70cab1e2655990a4e06ae99f7f572a
languageName: node
linkType: hard
"@npmcli/fs@npm:^3.1.0":
- version: 3.1.0
- resolution: "@npmcli/fs@npm:3.1.0"
+ version: 3.1.1
+ resolution: "@npmcli/fs@npm:3.1.1"
dependencies:
semver: "npm:^7.3.5"
- checksum: 10/f3a7ab3a31de65e42aeb6ed03ed035ef123d2de7af4deb9d4a003d27acc8618b57d9fb9d259fe6c28ca538032a028f37337264388ba27d26d37fff7dde22476e
+ checksum: 10/1e0e04087049b24b38bc0b30d87a9388ee3ca1d3fdfc347c2f77d84fcfe6a51f250bc57ba2c1f614d7e4285c6c62bf8c769bc19aa0949ea39e5b043ee023b0bd
languageName: node
linkType: hard
"@npmcli/git@npm:^5.0.0":
- version: 5.0.3
- resolution: "@npmcli/git@npm:5.0.3"
+ version: 5.0.8
+ resolution: "@npmcli/git@npm:5.0.8"
dependencies:
"@npmcli/promise-spawn": "npm:^7.0.0"
+ ini: "npm:^4.1.3"
lru-cache: "npm:^10.0.1"
npm-pick-manifest: "npm:^9.0.0"
- proc-log: "npm:^3.0.0"
+ proc-log: "npm:^4.0.0"
promise-inflight: "npm:^1.0.1"
promise-retry: "npm:^2.0.1"
semver: "npm:^7.3.5"
which: "npm:^4.0.0"
- checksum: 10/cf2216c5e6e2ef30eac135b9f6fdc3c999253c2778e9af38d5acda73af10c3f20b2fbf834521ea3e874e27633854c7fd32ba36162ba1dcaa5f67d19438059626
+ checksum: 10/e6f94175fb9dde13d84849b29b32ffb4c4df968822cc85df2aebfca13bf8ca76f33b1d281911f5bcddc95bccba2f9e795669c736a38de4d9c76efb5047ffb4fb
languageName: node
linkType: hard
"@npmcli/installed-package-contents@npm:^2.0.1":
- version: 2.0.2
- resolution: "@npmcli/installed-package-contents@npm:2.0.2"
+ version: 2.1.0
+ resolution: "@npmcli/installed-package-contents@npm:2.1.0"
dependencies:
npm-bundled: "npm:^3.0.0"
npm-normalize-package-bin: "npm:^3.0.0"
bin:
- installed-package-contents: lib/index.js
- checksum: 10/4598a97e3d6e4c8602157d9ac47723071f09662852add0f275af62d1038d8e44d0c5ff9afa05358ba3ca7e100c860d679964be0a163add6ea028dc72d31f0af1
+ installed-package-contents: bin/index.js
+ checksum: 10/68ab3ea2994f5ea21c61940de94ec4f2755fe569ef0b86e22db0695d651a3c88915c5eab61d634cfa203b9c801ee307c8aa134c2c4bd2e4fe1aa8d295ce8a163
languageName: node
linkType: hard
@@ -3609,8 +2522,8 @@ __metadata:
linkType: hard
"@npmcli/package-json@npm:^5.0.0, @npmcli/package-json@npm:^5.1.0":
- version: 5.1.0
- resolution: "@npmcli/package-json@npm:5.1.0"
+ version: 5.2.0
+ resolution: "@npmcli/package-json@npm:5.2.0"
dependencies:
"@npmcli/git": "npm:^5.0.0"
glob: "npm:^10.2.2"
@@ -3619,23 +2532,23 @@ __metadata:
normalize-package-data: "npm:^6.0.0"
proc-log: "npm:^4.0.0"
semver: "npm:^7.5.3"
- checksum: 10/0e5cb5eff32cf80234525160a702c91a38e4b98ab74e34e2632b43c4350dbad170bd835989cc7d6e18d24798e3242e45b60f3d5e26bd128fe1c4529931105f8e
+ checksum: 10/c3d2218877bfc005bca3b7a11f53825bf16a68811b8e8ed0c9b219cceb8e8e646d70efab8c5d6decbd8007f286076468b3f456dab4d41d648aff73a5f3a6fce2
languageName: node
linkType: hard
"@npmcli/promise-spawn@npm:^7.0.0":
- version: 7.0.0
- resolution: "@npmcli/promise-spawn@npm:7.0.0"
+ version: 7.0.2
+ resolution: "@npmcli/promise-spawn@npm:7.0.2"
dependencies:
which: "npm:^4.0.0"
- checksum: 10/6bda8e0cd007d34799b49fa20bc70eeb3fcac03aaecd021207b39e9b253511c5e5a0586345ae7726a8e34e49dbfd5927fcc7b5793273f4a995701687210c9614
+ checksum: 10/94cbbbeeb20342026c3b68fc8eb09e1600b7645d4e509f2588ef5ea7cff977eb01e628cc8e014595d04a6af4b4bc5c467c950a8135920f39f7c7b57fba43f4e9
languageName: node
linkType: hard
"@npmcli/redact@npm:^2.0.0":
- version: 2.0.0
- resolution: "@npmcli/redact@npm:2.0.0"
- checksum: 10/0ec0ab5f988309607e262d294ae8ed5386c8582c4752ceec6a02202b7875a6ad93dcf7d1c7283f3e679d89924b933aebec499814707c60f43fba2ab504fd8adb
+ version: 2.0.1
+ resolution: "@npmcli/redact@npm:2.0.1"
+ checksum: 10/f19a521fa71b539707eee69106ed3d97e3047712d4f279c80007a8d0aef63d137e3062941f11e19d6cec03812eaa0872891ae20c84f603d9e021dfb93cc9d6e5
languageName: node
linkType: hard
@@ -3660,166 +2573,301 @@ __metadata:
languageName: node
linkType: hard
-"@rollup/rollup-android-arm-eabi@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-android-arm-eabi@npm:4.13.0"
+"@rollup/rollup-android-arm-eabi@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.0"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-android-arm-eabi@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.19.0"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
-"@rollup/rollup-android-arm64@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-android-arm64@npm:4.13.0"
+"@rollup/rollup-android-arm64@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-android-arm64@npm:4.18.0"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-android-arm64@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-android-arm64@npm:4.19.0"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-darwin-arm64@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-darwin-arm64@npm:4.13.0"
+"@rollup/rollup-darwin-arm64@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-darwin-arm64@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.19.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-darwin-x64@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-darwin-x64@npm:4.13.0"
+"@rollup/rollup-darwin-x64@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-darwin-x64@npm:4.18.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0"
- conditions: os=linux & cpu=arm
+"@rollup/rollup-darwin-x64@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-darwin-x64@npm:4.19.0"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.19.0"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-musleabihf@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0"
+ conditions: os=linux & cpu=arm & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-musleabihf@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.19.0"
+ conditions: os=linux & cpu=arm & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm64-gnu@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.13.0"
+"@rollup/rollup-linux-arm64-gnu@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-arm64-musl@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-linux-arm64-musl@npm:4.13.0"
+"@rollup/rollup-linux-arm64-gnu@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.19.0"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm64-musl@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm64-musl@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.19.0"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-linux-riscv64-gnu@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.13.0"
+"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0"
+ conditions: os=linux & cpu=ppc64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.19.0"
+ conditions: os=linux & cpu=ppc64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-riscv64-gnu@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0"
+ conditions: os=linux & cpu=riscv64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-riscv64-gnu@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.19.0"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-x64-gnu@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-linux-x64-gnu@npm:4.13.0"
+"@rollup/rollup-linux-s390x-gnu@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-s390x-gnu@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.19.0"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-x64-gnu@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.0"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@rollup/rollup-linux-x64-musl@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-linux-x64-musl@npm:4.13.0"
+"@rollup/rollup-linux-x64-gnu@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.19.0"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-x64-musl@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-x64-musl@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.19.0"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@rollup/rollup-win32-arm64-msvc@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.13.0"
+"@rollup/rollup-win32-arm64-msvc@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@rollup/rollup-win32-ia32-msvc@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.13.0"
+"@rollup/rollup-win32-arm64-msvc@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.19.0"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-ia32-msvc@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-ia32-msvc@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.19.0"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@rollup/rollup-win32-x64-msvc@npm:4.13.0":
- version: 4.13.0
- resolution: "@rollup/rollup-win32-x64-msvc@npm:4.13.0"
+"@rollup/rollup-win32-x64-msvc@npm:4.18.0":
+ version: 4.18.0
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
-"@schematics/angular@npm:18.1.0-next.3":
- version: 18.1.0-next.3
- resolution: "@schematics/angular@npm:18.1.0-next.3"
+"@rollup/rollup-win32-x64-msvc@npm:4.19.0":
+ version: 4.19.0
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.19.0"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@schematics/angular@npm:18.1.0":
+ version: 18.1.0
+ resolution: "@schematics/angular@npm:18.1.0"
dependencies:
- "@angular-devkit/core": "npm:18.1.0-next.3"
- "@angular-devkit/schematics": "npm:18.1.0-next.3"
- jsonc-parser: "npm:3.2.1"
+ "@angular-devkit/core": "npm:18.1.0"
+ "@angular-devkit/schematics": "npm:18.1.0"
+ jsonc-parser: "npm:3.3.1"
dependenciesMeta:
esbuild:
built: true
puppeteer:
built: true
- checksum: 10/a7f676c56b8d0e9bba8acf4f7b9172c86cecd52e301802dbacd1a63093e852c823a84f8cc02cf96ed66094c42d7ca9cd8dcecfd9d248005b15984c11ca2046f7
+ checksum: 10/3e4730c0ab66091c64189e554f1cc65eda4e758c19f3bf2377b5d139b9353f1f6876edc6b755d219aaecf428636c1d84d7c3e66d07000d695dda1b05d2d9744e
languageName: node
linkType: hard
-"@sigstore/bundle@npm:^2.2.0":
- version: 2.2.0
- resolution: "@sigstore/bundle@npm:2.2.0"
+"@sigstore/bundle@npm:^2.3.2":
+ version: 2.3.2
+ resolution: "@sigstore/bundle@npm:2.3.2"
dependencies:
- "@sigstore/protobuf-specs": "npm:^0.3.0"
- checksum: 10/c7a3b0488f298df7d3089886d2f84213c336e0e151073a2f52e1583f783c6e08a54ffde1f436cf5953d5e30e9d0f5e41039124e359cf1171c184a53058e6fac9
+ "@sigstore/protobuf-specs": "npm:^0.3.2"
+ checksum: 10/16c2dd624612171acf40c0daf6ca8f43332abfab3ea522e6fcff70df70207061f8a9faa43e10f8b5d0006ff1edebe5179101f4ba566ff6d271099158d3ae9503
languageName: node
linkType: hard
-"@sigstore/core@npm:^1.0.0":
- version: 1.0.0
- resolution: "@sigstore/core@npm:1.0.0"
- checksum: 10/2e9dff65c6c00927e2e20c344d1437ace0398ce061f4aca458d63193a80cc884623b97d1eb0249ced4373ec83c0f1843937f47acec35c98b5b970956d866d6e9
+"@sigstore/core@npm:^1.0.0, @sigstore/core@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@sigstore/core@npm:1.1.0"
+ checksum: 10/4149572091d61c246dd2ff636ff9a31441877db78cc3afe25fd0b28ece87f0094576f8b9077d1dc7c1c959ac4b000d407595becb6cd784c3664e9dd7cb6da36a
languageName: node
linkType: hard
-"@sigstore/protobuf-specs@npm:^0.3.0":
- version: 0.3.0
- resolution: "@sigstore/protobuf-specs@npm:0.3.0"
- checksum: 10/779583cc669f6e16f312a671a9902577e6744344a554e74dc0c8ad706211fc9bc44e03c933d6fb44d8388e63d3582875f8bad8027aac7fb4603c597af3189b2e
+"@sigstore/protobuf-specs@npm:^0.3.2":
+ version: 0.3.2
+ resolution: "@sigstore/protobuf-specs@npm:0.3.2"
+ checksum: 10/350a6eb834e0f5c50987935c329350ba9df5baedba7c3db6ab6bc55d8730d9e6ff2deb31e770e721b9fef53f1cf6b32f376e28ed72c6e090493bceb820acfb4a
languageName: node
linkType: hard
-"@sigstore/sign@npm:^2.2.3":
- version: 2.2.3
- resolution: "@sigstore/sign@npm:2.2.3"
+"@sigstore/sign@npm:^2.3.2":
+ version: 2.3.2
+ resolution: "@sigstore/sign@npm:2.3.2"
dependencies:
- "@sigstore/bundle": "npm:^2.2.0"
+ "@sigstore/bundle": "npm:^2.3.2"
"@sigstore/core": "npm:^1.0.0"
- "@sigstore/protobuf-specs": "npm:^0.3.0"
- make-fetch-happen: "npm:^13.0.0"
- checksum: 10/92da5cd20781b02c72cd4cc512dbd03cb7cf55ae46436255910f0d3122db2acbeca544daa108cf092322e5fd0ae4d22b912d7345b425c97ee2f6f97a15c3d009
+ "@sigstore/protobuf-specs": "npm:^0.3.2"
+ make-fetch-happen: "npm:^13.0.1"
+ proc-log: "npm:^4.2.0"
+ promise-retry: "npm:^2.0.1"
+ checksum: 10/3b0198fb8f8c6fe1c7fd34e9be25484d4472cd93ec3709c68f4cf45a07a0a90ebceb2193e77dfe780bb0a3effa31152a7f9d01497010bde9d9ab4e85873e2843
languageName: node
linkType: hard
-"@sigstore/tuf@npm:^2.3.1":
- version: 2.3.1
- resolution: "@sigstore/tuf@npm:2.3.1"
+"@sigstore/tuf@npm:^2.3.4":
+ version: 2.3.4
+ resolution: "@sigstore/tuf@npm:2.3.4"
dependencies:
- "@sigstore/protobuf-specs": "npm:^0.3.0"
- tuf-js: "npm:^2.2.0"
- checksum: 10/40597098d379c05615beee048f2c7dfd43b2bd6ef7fdb1be69d8a2a65715ba8b0c2e9107515fe2570a8c93b75e52e8336a4f0333f62942f0ec9801924496ab0c
+ "@sigstore/protobuf-specs": "npm:^0.3.2"
+ tuf-js: "npm:^2.2.1"
+ checksum: 10/4ef978a0b29e1bdf4a8ac48580ff68bc7a3f10db7b301d033f212cc42b1ee58bf555ac77f67b21b44e8315de38640f23f24c7022fe46f66c236e0c0293d23b00
languageName: node
linkType: hard
-"@sigstore/verify@npm:^1.1.0":
- version: 1.1.0
- resolution: "@sigstore/verify@npm:1.1.0"
+"@sigstore/verify@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@sigstore/verify@npm:1.2.1"
dependencies:
- "@sigstore/bundle": "npm:^2.2.0"
- "@sigstore/core": "npm:^1.0.0"
- "@sigstore/protobuf-specs": "npm:^0.3.0"
- checksum: 10/c9e100df8c4e918aadfeb133c228e5963fb9e0712cc2840760a1269dfdd27edcb51772321b36198f34f9b9a88f736b3ab5ad6c5bd40bba8d411392a97c888766
+ "@sigstore/bundle": "npm:^2.3.2"
+ "@sigstore/core": "npm:^1.1.0"
+ "@sigstore/protobuf-specs": "npm:^0.3.2"
+ checksum: 10/68a1bb341e93a86f738b4e55be8812034df398bdae1746b5f8c7e49d35c6a223ff634fa70b55152de5db992e8356cfaeae5779d6d805ecf4dd18caf167de8b95
languageName: node
linkType: hard
@@ -3831,9 +2879,9 @@ __metadata:
linkType: hard
"@socket.io/component-emitter@npm:~3.1.0":
- version: 3.1.0
- resolution: "@socket.io/component-emitter@npm:3.1.0"
- checksum: 10/db069d95425b419de1514dffe945cc439795f6a8ef5b9465715acf5b8b50798e2c91b8719cbf5434b3fe7de179d6cdcd503c277b7871cb3dd03febb69bdd50fa
+ version: 3.1.2
+ resolution: "@socket.io/component-emitter@npm:3.1.2"
+ checksum: 10/89888f00699eb34e3070624eb7b8161fa29f064aeb1389a48f02195d55dd7c52a504e52160016859f6d6dffddd54324623cdd47fd34b3d46f9ed96c18c456edc
languageName: node
linkType: hard
@@ -3844,13 +2892,13 @@ __metadata:
languageName: node
linkType: hard
-"@tufjs/models@npm:2.0.0":
- version: 2.0.0
- resolution: "@tufjs/models@npm:2.0.0"
+"@tufjs/models@npm:2.0.1":
+ version: 2.0.1
+ resolution: "@tufjs/models@npm:2.0.1"
dependencies:
"@tufjs/canonical-json": "npm:2.0.0"
- minimatch: "npm:^9.0.3"
- checksum: 10/d89d618c74c4eed3906d9ba5bd1bd9d0fa7a73ad6266b11c74c13102ee00bfdbd8e73fe786bd2e8e3ae347f9a66f044d973a7466dc7c2c2f98a7ff926ff275c4
+ minimatch: "npm:^9.0.4"
+ checksum: 10/7c5d2b8194195cecddc92ae37523c1375e7aaf2e554941c0f9b71db93bbef4f0af8190438dd321e8f9dfd4ce2a9b582e35a4c4c04bec87e25a289c9c8bedcd4e
languageName: node
linkType: hard
@@ -3919,12 +2967,12 @@ __metadata:
linkType: hard
"@types/eslint@npm:*":
- version: 8.44.8
- resolution: "@types/eslint@npm:8.44.8"
+ version: 9.6.0
+ resolution: "@types/eslint@npm:9.6.0"
dependencies:
"@types/estree": "npm:*"
"@types/json-schema": "npm:*"
- checksum: 10/d6e0788eb7bff90e5f5435b0babe057e76a7d3eed1e36080bacd7b749098eddae499ddb3c0ce6438addce98cc6020d9653b5012dec54e47ca96faa7b8e25d068
+ checksum: 10/39fc797c671ec9c9184802b4974748cf45ee1b11d7aaaaede44426abcafd07ec7c18eb090e8f5b3387b51637ce3fdf54499472d8dd58a928f0d005cbacb573b4
languageName: node
linkType: hard
@@ -3936,14 +2984,14 @@ __metadata:
linkType: hard
"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33":
- version: 4.17.41
- resolution: "@types/express-serve-static-core@npm:4.17.41"
+ version: 4.19.5
+ resolution: "@types/express-serve-static-core@npm:4.19.5"
dependencies:
"@types/node": "npm:*"
"@types/qs": "npm:*"
"@types/range-parser": "npm:*"
"@types/send": "npm:*"
- checksum: 10/7647e19d9c3d57ddd18947d2b161b90ef0aedd15875140e5b824209be41c1084ae942d4fb43cd5f2051a6a5f8c044519ef6c9ac1b2ad86b9aa546b4f1f023303
+ checksum: 10/49350c6315eeb7d640e13e6138ba6005121b3b610b1e25746fccd5b86b559be810a4ba384b9bd7eee288975b5bd8cf67c1772c646254b812beaa488774eb5513
languageName: node
linkType: hard
@@ -3989,13 +3037,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/mime@npm:*":
- version: 3.0.4
- resolution: "@types/mime@npm:3.0.4"
- checksum: 10/a6139c8e1f705ef2b064d072f6edc01f3c099023ad7c4fce2afc6c2bf0231888202adadbdb48643e8e20da0ce409481a49922e737eca52871b3dc08017455843
- languageName: node
- linkType: hard
-
"@types/mime@npm:^1":
version: 1.3.5
resolution: "@types/mime@npm:1.3.5"
@@ -4013,43 +3054,34 @@ __metadata:
linkType: hard
"@types/node-forge@npm:^1.3.0":
- version: 1.3.10
- resolution: "@types/node-forge@npm:1.3.10"
+ version: 1.3.11
+ resolution: "@types/node-forge@npm:1.3.11"
dependencies:
"@types/node": "npm:*"
- checksum: 10/111520ac4db33bba4e46fcb75e9c29234ca78e2ece32fc929e7382798cdb7985e01da7e8f70c32769f42996e8d06f347d34d90308951cf2d004f418135ac7735
+ checksum: 10/670c9b377c48189186ec415e3c8ed371f141ecc1a79ab71b213b20816adeffecba44dae4f8406cc0d09e6349a4db14eb8c5893f643d8e00fa19fc035cf49dee0
languageName: node
linkType: hard
-"@types/node@npm:*, @types/node@npm:>=10.0.0":
- version: 20.10.3
- resolution: "@types/node@npm:20.10.3"
+"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:^20.14.11, @types/node@npm:^20.14.9":
+ version: 20.14.11
+ resolution: "@types/node@npm:20.14.11"
dependencies:
undici-types: "npm:~5.26.4"
- checksum: 10/7cb506abb0d570bb5133bd06a47115109a813b507323c985c3b4aef2993eed79b6bb62b82194cb5c558b4d349de3d199ee2e8c693b913065a1cd7f526cc65a68
+ checksum: 10/344e1ce1ed16c86ed1c4209ab4d1de67db83dd6b694a6fabe295c47144dde2c58dabddae9f39a0a2bdd246e95f8d141ccfe848e464884b48b8918df4f7788025
languageName: node
linkType: hard
"@types/node@npm:^16.10.9":
- version: 16.18.67
- resolution: "@types/node@npm:16.18.67"
- checksum: 10/9293f1bb0badefb210fa8c5557db1f3c307349a95bcb5858319712af246348d3aaaffaf895563841837d12c65058c1c0deae30bc39a1779db7adf996cd872e71
- languageName: node
- linkType: hard
-
-"@types/node@npm:^20.14.6":
- version: 20.14.9
- resolution: "@types/node@npm:20.14.9"
- dependencies:
- undici-types: "npm:~5.26.4"
- checksum: 10/f313b06c79be92f5d3541159ef813b9fc606941f951ecf826e940658c6d4952755ca2f06277b746326cef0697ed79a04676ecde053d32e1121b3352c8168d2e9
+ version: 16.18.103
+ resolution: "@types/node@npm:16.18.103"
+ checksum: 10/3ec07c68f828d2ce788c1e367a65efafd34b2313e5db35a9a6c0cc48676919a61adaa35ac8e7160912ab64d70c3cd05f2aacda7ec41057400ef5ceec7d78c678
languageName: node
linkType: hard
"@types/qs@npm:*":
- version: 6.9.10
- resolution: "@types/qs@npm:6.9.10"
- checksum: 10/3e479ee056bd2b60894baa119d12ecd33f20a25231b836af04654e784c886f28a356477630430152a86fba253da65d7ecd18acffbc2a8877a336e75aa0272c67
+ version: 6.9.15
+ resolution: "@types/qs@npm:6.9.15"
+ checksum: 10/97d8208c2b82013b618e7a9fc14df6bd40a73e1385ac479b6896bafc7949a46201c15f42afd06e86a05e914f146f495f606b6fb65610cc60cf2e0ff743ec38a2
languageName: node
linkType: hard
@@ -4087,13 +3119,13 @@ __metadata:
linkType: hard
"@types/serve-static@npm:*, @types/serve-static@npm:^1.15.5":
- version: 1.15.5
- resolution: "@types/serve-static@npm:1.15.5"
+ version: 1.15.7
+ resolution: "@types/serve-static@npm:1.15.7"
dependencies:
"@types/http-errors": "npm:*"
- "@types/mime": "npm:*"
"@types/node": "npm:*"
- checksum: 10/49aa21c367fffe4588fc8c57ea48af0ea7cbadde7418bc53cde85d8bd57fd2a09a293970d9ea86e79f17a87f8adeb3e20da76aab38e1c4d1567931fa15c8af38
+ "@types/send": "npm:*"
+ checksum: 10/c5a7171d5647f9fbd096ed1a26105759f3153ccf683824d99fee4c7eb9cde2953509621c56a070dd9fb1159e799e86d300cbe4e42245ebc5b0c1767e8ca94a67
languageName: node
linkType: hard
@@ -4114,11 +3146,11 @@ __metadata:
linkType: hard
"@types/ws@npm:^8.5.10":
- version: 8.5.10
- resolution: "@types/ws@npm:8.5.10"
+ version: 8.5.11
+ resolution: "@types/ws@npm:8.5.11"
dependencies:
"@types/node": "npm:*"
- checksum: 10/9b414dc5e0b6c6f1ea4b1635b3568c58707357f68076df9e7cd33194747b7d1716d5189c0dbdd68c8d2521b148e88184cf881bac7429eb0e5c989b001539ed31
+ checksum: 10/950d13b762fc7c092a0fc1450c41229a1d41abb93cb72251068885bd46fa4bbcf461c00df2e77de3f7a547371998b650a720ed90417562af0772b14a8a009dec
languageName: node
linkType: hard
@@ -4330,11 +3362,11 @@ __metadata:
linkType: hard
"acorn@npm:^8.7.1, acorn@npm:^8.8.2":
- version: 8.11.2
- resolution: "acorn@npm:8.11.2"
+ version: 8.12.1
+ resolution: "acorn@npm:8.12.1"
bin:
acorn: bin/acorn
- checksum: 10/ff559b891382ad4cd34cc3c493511d0a7075a51f5f9f02a03440e92be3705679367238338566c5fbd3521ecadd565d29301bc8e16cb48379206bffbff3d72500
+ checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0
languageName: node
linkType: hard
@@ -4348,12 +3380,12 @@ __metadata:
languageName: node
linkType: hard
-"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0":
- version: 7.1.0
- resolution: "agent-base@npm:7.1.0"
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "agent-base@npm:7.1.1"
dependencies:
debug: "npm:^4.3.4"
- checksum: 10/f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f
+ checksum: 10/c478fec8f79953f118704d007a38f2a185458853f5c45579b9669372bd0e12602e88dc2ad0233077831504f7cd6fcc8251c383375bba5eaaf563b102938bda26
languageName: node
linkType: hard
@@ -4440,14 +3472,14 @@ __metadata:
linkType: hard
"ajv@npm:^8.0.0, ajv@npm:^8.9.0":
- version: 8.12.0
- resolution: "ajv@npm:8.12.0"
+ version: 8.17.1
+ resolution: "ajv@npm:8.17.1"
dependencies:
- fast-deep-equal: "npm:^3.1.1"
+ fast-deep-equal: "npm:^3.1.3"
+ fast-uri: "npm:^3.0.1"
json-schema-traverse: "npm:^1.0.0"
require-from-string: "npm:^2.0.2"
- uri-js: "npm:^4.2.2"
- checksum: 10/b406f3b79b5756ac53bfe2c20852471b08e122bc1ee4cde08ae4d6a800574d9cd78d60c81c69c63ff81e4da7cd0b638fafbb2303ae580d49cf1600b9059efb85
+ checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33
languageName: node
linkType: hard
@@ -4578,15 +3610,15 @@ __metadata:
linkType: hard
"babel-plugin-polyfill-corejs2@npm:^0.4.10":
- version: 0.4.10
- resolution: "babel-plugin-polyfill-corejs2@npm:0.4.10"
+ version: 0.4.11
+ resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11"
dependencies:
"@babel/compat-data": "npm:^7.22.6"
- "@babel/helper-define-polyfill-provider": "npm:^0.6.1"
+ "@babel/helper-define-polyfill-provider": "npm:^0.6.2"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 10/9fb5e59a3235eba66fb05060b2a3ecd6923084f100df7526ab74b6272347d7adcf99e17366b82df36e592cde4e82fdb7ae24346a990eced76c7d504cac243400
+ checksum: 10/9c79908bed61b9f52190f254e22d3dca6ce25769738642579ba8d23832f3f9414567a90d8367a31831fa45d9b9607ac43d8d07ed31167d8ca8cda22871f4c7a1
languageName: node
linkType: hard
@@ -4603,13 +3635,13 @@ __metadata:
linkType: hard
"babel-plugin-polyfill-regenerator@npm:^0.6.1":
- version: 0.6.1
- resolution: "babel-plugin-polyfill-regenerator@npm:0.6.1"
+ version: 0.6.2
+ resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2"
dependencies:
- "@babel/helper-define-polyfill-provider": "npm:^0.6.1"
+ "@babel/helper-define-polyfill-provider": "npm:^0.6.2"
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 10/9df4a8e9939dd419fed3d9ea26594b4479f2968f37c225e1b2aa463001d7721f5537740e6622909d2a570b61cec23256924a1701404fc9d6fd4474d3e845cedb
+ checksum: 10/150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f
languageName: node
linkType: hard
@@ -4649,9 +3681,9 @@ __metadata:
linkType: hard
"binary-extensions@npm:^2.0.0":
- version: 2.2.0
- resolution: "binary-extensions@npm:2.2.0"
- checksum: 10/ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8
+ version: 2.3.0
+ resolution: "binary-extensions@npm:2.3.0"
+ checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98
languageName: node
linkType: hard
@@ -4666,27 +3698,7 @@ __metadata:
languageName: node
linkType: hard
-"body-parser@npm:1.20.1":
- version: 1.20.1
- resolution: "body-parser@npm:1.20.1"
- dependencies:
- bytes: "npm:3.1.2"
- content-type: "npm:~1.0.4"
- debug: "npm:2.6.9"
- depd: "npm:2.0.0"
- destroy: "npm:1.2.0"
- http-errors: "npm:2.0.0"
- iconv-lite: "npm:0.4.24"
- on-finished: "npm:2.4.1"
- qs: "npm:6.11.0"
- raw-body: "npm:2.5.1"
- type-is: "npm:~1.6.18"
- unpipe: "npm:1.0.0"
- checksum: 10/5f8d128022a2fb8b6e7990d30878a0182f300b70e46b3f9d358a9433ad6275f0de46add6d63206da3637c01c3b38b6111a7480f7e7ac2e9f7b989f6133fe5510
- languageName: node
- linkType: hard
-
-"body-parser@npm:^1.19.0":
+"body-parser@npm:1.20.2, body-parser@npm:^1.19.0":
version: 1.20.2
resolution: "body-parser@npm:1.20.2"
dependencies:
@@ -4742,16 +3754,7 @@ __metadata:
languageName: node
linkType: hard
-"braces@npm:^3.0.2, braces@npm:~3.0.2":
- version: 3.0.2
- resolution: "braces@npm:3.0.2"
- dependencies:
- fill-range: "npm:^7.0.1"
- checksum: 10/966b1fb48d193b9d155f810e5efd1790962f2c4e0829f8440b8ad236ba009222c501f70185ef732fef17a4c490bb33a03b90dab0631feafbdf447da91e8165b1
- languageName: node
- linkType: hard
-
-"braces@npm:^3.0.3":
+"braces@npm:^3.0.2, braces@npm:^3.0.3, braces@npm:~3.0.2":
version: 3.0.3
resolution: "braces@npm:3.0.3"
dependencies:
@@ -4760,31 +3763,17 @@ __metadata:
languageName: node
linkType: hard
-"browserslist@npm:^4.21.10, browserslist@npm:^4.21.5, browserslist@npm:^4.21.7, browserslist@npm:^4.21.9, browserslist@npm:^4.22.1":
- version: 4.22.2
- resolution: "browserslist@npm:4.22.2"
- dependencies:
- caniuse-lite: "npm:^1.0.30001565"
- electron-to-chromium: "npm:^1.4.601"
- node-releases: "npm:^2.0.14"
- update-browserslist-db: "npm:^1.0.13"
- bin:
- browserslist: cli.js
- checksum: 10/e3590793db7f66ad3a50817e7b7f195ce61e029bd7187200244db664bfbe0ac832f784e4f6b9c958aef8ea4abe001ae7880b7522682df521f4bc0a5b67660b5e
- languageName: node
- linkType: hard
-
-"browserslist@npm:^4.22.2, browserslist@npm:^4.23.0":
- version: 4.23.0
- resolution: "browserslist@npm:4.23.0"
+"browserslist@npm:^4.21.10, browserslist@npm:^4.21.5, browserslist@npm:^4.21.7, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1":
+ version: 4.23.2
+ resolution: "browserslist@npm:4.23.2"
dependencies:
- caniuse-lite: "npm:^1.0.30001587"
- electron-to-chromium: "npm:^1.4.668"
+ caniuse-lite: "npm:^1.0.30001640"
+ electron-to-chromium: "npm:^1.4.820"
node-releases: "npm:^2.0.14"
- update-browserslist-db: "npm:^1.0.13"
+ update-browserslist-db: "npm:^1.1.0"
bin:
browserslist: cli.js
- checksum: 10/496c3862df74565dd942b4ae65f502c575cbeba1fa4a3894dad7aa3b16130dc3033bc502d8848147f7b625154a284708253d9598bcdbef5a1e34cf11dc7bad8e
+ checksum: 10/326a98b1c39bcc9a99b197f15790dc28e122b1aead3257c837421899377ac96239123f26868698085b3d9be916d72540602738e1f857e86a387e810af3fda6e5
languageName: node
linkType: hard
@@ -4805,15 +3794,6 @@ __metadata:
languageName: node
linkType: hard
-"builtins@npm:^5.0.0":
- version: 5.0.1
- resolution: "builtins@npm:5.0.1"
- dependencies:
- semver: "npm:^7.0.0"
- checksum: 10/90136fa0ba98b7a3aea33190b1262a5297164731efb6a323b0231acf60cc2ea0b2b1075dbf107038266b8b77d6045fa9631d1c3f90efc1c594ba61218fbfbb4c
- languageName: node
- linkType: hard
-
"bundle-name@npm:^4.1.0":
version: 4.1.0
resolution: "bundle-name@npm:4.1.0"
@@ -4838,8 +3818,8 @@ __metadata:
linkType: hard
"cacache@npm:^18.0.0":
- version: 18.0.1
- resolution: "cacache@npm:18.0.1"
+ version: 18.0.4
+ resolution: "cacache@npm:18.0.4"
dependencies:
"@npmcli/fs": "npm:^3.1.0"
fs-minipass: "npm:^3.0.0"
@@ -4853,18 +3833,20 @@ __metadata:
ssri: "npm:^10.0.0"
tar: "npm:^6.1.11"
unique-filename: "npm:^3.0.0"
- checksum: 10/aecafd368fbfb2fc0cda1f2f831fe5a1d8161d2121317c92ac089bcd985085e8a588e810b4471e69946f91c6d2661849400e963231563c519aa1e3dac2cf6187
+ checksum: 10/ca2f7b2d3003f84d362da9580b5561058ccaecd46cba661cbcff0375c90734b610520d46b472a339fd032d91597ad6ed12dde8af81571197f3c9772b5d35b104
languageName: node
linkType: hard
-"call-bind@npm:^1.0.0":
- version: 1.0.5
- resolution: "call-bind@npm:1.0.5"
+"call-bind@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "call-bind@npm:1.0.7"
dependencies:
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
function-bind: "npm:^1.1.2"
- get-intrinsic: "npm:^1.2.1"
- set-function-length: "npm:^1.1.1"
- checksum: 10/246d44db6ef9bbd418828dbd5337f80b46be4398d522eded015f31554cbb2ea33025b0203b75c7ab05a1a255b56ef218880cca1743e4121e306729f9e414da39
+ get-intrinsic: "npm:^1.2.4"
+ set-function-length: "npm:^1.2.1"
+ checksum: 10/cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7
languageName: node
linkType: hard
@@ -4875,24 +3857,10 @@ __metadata:
languageName: node
linkType: hard
-"caniuse-lite@npm:^1.0.30001565":
- version: 1.0.30001566
- resolution: "caniuse-lite@npm:1.0.30001566"
- checksum: 10/fdff43ed498201bf4f6074bd1112bd853e91973b6ccb016049b030948a7d197cba235ac4d93e712d1862b33a3c947bf4e62bad7011ccdac78e5179501b28d04a
- languageName: node
- linkType: hard
-
-"caniuse-lite@npm:^1.0.30001587":
- version: 1.0.30001599
- resolution: "caniuse-lite@npm:1.0.30001599"
- checksum: 10/c9a5ad806fc0d446e4f995d551b840d8fdcbe97958b7f83ff7a255a8ef5e40ca12ca1a508c66b3ab147e19eef932d28772d205c046500dd0740ea9dfb602e2e1
- languageName: node
- linkType: hard
-
-"caniuse-lite@npm:^1.0.30001599":
- version: 1.0.30001621
- resolution: "caniuse-lite@npm:1.0.30001621"
- checksum: 10/238187b8565edd98b041829a4157ff23406e8b573a8f5a7f7d75fd6bd46c508e4d1a07eb4a0086cfa1bce2f45fcd3b08ea7ffc36584ef2b1d38f8215b7301853
+"caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001640":
+ version: 1.0.30001643
+ resolution: "caniuse-lite@npm:1.0.30001643"
+ checksum: 10/dddbda29fa24fbc435873309c71070461cbfc915d9bce3216180524c20c5637b2bee1a14b45972e9ac19e1fdf63fba3f63608b9e7d68de32f5ee1953c8c69e05
languageName: node
linkType: hard
@@ -4907,7 +3875,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^4.1.0, chalk@npm:^4.1.2":
+"chalk@npm:^4.1.0":
version: 4.1.2
resolution: "chalk@npm:4.1.2"
dependencies:
@@ -4924,26 +3892,7 @@ __metadata:
languageName: node
linkType: hard
-"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.0.0, chokidar@npm:^3.5.1":
- version: 3.5.3
- resolution: "chokidar@npm:3.5.3"
- dependencies:
- anymatch: "npm:~3.1.2"
- braces: "npm:~3.0.2"
- fsevents: "npm:~2.3.2"
- glob-parent: "npm:~5.1.2"
- is-binary-path: "npm:~2.1.0"
- is-glob: "npm:~4.0.1"
- normalize-path: "npm:~3.0.0"
- readdirp: "npm:~3.6.0"
- dependenciesMeta:
- fsevents:
- optional: true
- checksum: 10/863e3ff78ee7a4a24513d2a416856e84c8e4f5e60efbe03e8ab791af1a183f569b62fc6f6b8044e2804966cb81277ddbbc1dc374fba3265bd609ea8efd62f5b3
- languageName: node
- linkType: hard
-
-"chokidar@npm:^3.6.0":
+"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.0.0, chokidar@npm:^3.5.1, chokidar@npm:^3.6.0":
version: 3.6.0
resolution: "chokidar@npm:3.6.0"
dependencies:
@@ -4970,9 +3919,9 @@ __metadata:
linkType: hard
"chrome-trace-event@npm:^1.0.2":
- version: 1.0.3
- resolution: "chrome-trace-event@npm:1.0.3"
- checksum: 10/b5fbdae5bf00c96fa3213de919f2b2617a942bfcb891cdf735fbad2a6f4f3c25d42e3f2b1703328619d352c718b46b9e18999fd3af7ef86c26c91db6fae1f0da
+ version: 1.0.4
+ resolution: "chrome-trace-event@npm:1.0.4"
+ checksum: 10/1762bed739774903bf5915fe3045c3120fc3c7f7d929d88e566447ea38944937a6370ccb687278318c43c24f837ad22dac780bed67c066336815557b8cf558c6
languageName: node
linkType: hard
@@ -5205,10 +4154,10 @@ __metadata:
languageName: node
linkType: hard
-"cookie@npm:0.5.0":
- version: 0.5.0
- resolution: "cookie@npm:0.5.0"
- checksum: 10/aae7911ddc5f444a9025fbd979ad1b5d60191011339bce48e555cb83343d0f98b865ff5c4d71fecdfb8555a5cafdc65632f6fce172f32aaf6936830a883a0380
+"cookie@npm:0.6.0":
+ version: 0.6.0
+ resolution: "cookie@npm:0.6.0"
+ checksum: 10/c1f8f2ea7d443b9331680598b0ae4e6af18a618c37606d1bbdc75bec8361cce09fe93e727059a673f2ba24467131a9fb5a4eec76bb1b149c1b3e1ccb268dc583
languageName: node
linkType: hard
@@ -5244,21 +4193,12 @@ __metadata:
languageName: node
linkType: hard
-"core-js-compat@npm:^3.31.0":
- version: 3.33.3
- resolution: "core-js-compat@npm:3.33.3"
- dependencies:
- browserslist: "npm:^4.22.1"
- checksum: 10/90d5580bac23946c31aec1b75f1af4ebeafe97528398623780b3728cb6b28444be9aeb3563c857643cc84b3579007c45281fcb69fba9d9a7a011bea370e5e940
- languageName: node
- linkType: hard
-
-"core-js-compat@npm:^3.36.1":
- version: 3.36.1
- resolution: "core-js-compat@npm:3.36.1"
+"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.36.1":
+ version: 3.37.1
+ resolution: "core-js-compat@npm:3.37.1"
dependencies:
browserslist: "npm:^4.23.0"
- checksum: 10/d86b46805de7f5ba3675ed21532ecc64b6c1f123be7286b9efa7941ec087cd8d2446cb555f03a407dbbbeb6e881d1baf92eaffb7f051b11d9103f39c8731fa62
+ checksum: 10/30c6fdbd9ff179cc53951814689b8aabec106e5de6cddfa7a7feacc96b66d415b8eebcf5ec8f7c68ef35c552fe7d39edb8b15b1ce0f27379a272295b6e937061
languageName: node
linkType: hard
@@ -5296,9 +4236,9 @@ __metadata:
languageName: node
linkType: hard
-"critters@npm:0.0.22":
- version: 0.0.22
- resolution: "critters@npm:0.0.22"
+"critters@npm:0.0.24":
+ version: 0.0.24
+ resolution: "critters@npm:0.0.24"
dependencies:
chalk: "npm:^4.1.0"
css-select: "npm:^5.1.0"
@@ -5307,7 +4247,7 @@ __metadata:
htmlparser2: "npm:^8.0.2"
postcss: "npm:^8.4.23"
postcss-media-query-parser: "npm:^0.2.3"
- checksum: 10/57806f9141ef12fddbe4c6fa8442573b4d5fcc4f564bedaf3b34f8eb231b4177bb9122a31dec8037d129f78813c1f8b9acdc84883de527a7eac5ef66440cf1da
+ checksum: 10/d1723503a056e6bba42c41c1e7e1d12781755eb40450149dd0248a637e474db2b2fb9fd712a0df14c3e60e527a84dea27f92c3b3d8d3b9c3ec53ce1593996add
languageName: node
linkType: hard
@@ -5398,24 +4338,15 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:~4.3.1, debug@npm:~4.3.2":
- version: 4.3.4
- resolution: "debug@npm:4.3.4"
+"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4":
+ version: 4.3.5
+ resolution: "debug@npm:4.3.5"
dependencies:
ms: "npm:2.1.2"
peerDependenciesMeta:
supports-color:
optional: true
- checksum: 10/0073c3bcbd9cb7d71dd5f6b55be8701af42df3e56e911186dfa46fac3a5b9eb7ce7f377dd1d3be6db8977221f8eb333d945216f645cf56f6b688cd484837d255
- languageName: node
- linkType: hard
-
-"debug@npm:^3.2.6":
- version: 3.2.7
- resolution: "debug@npm:3.2.7"
- dependencies:
- ms: "npm:^2.1.1"
- checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639
+ checksum: 10/cb6eab424c410e07813ca1392888589972ce9a32b8829c6508f5e1f25f3c3e70a76731610ae55b4bbe58d1a2fffa1424b30e97fa8d394e49cd2656a9643aedd2
languageName: node
linkType: hard
@@ -5454,14 +4385,14 @@ __metadata:
languageName: node
linkType: hard
-"define-data-property@npm:^1.1.1":
- version: 1.1.1
- resolution: "define-data-property@npm:1.1.1"
+"define-data-property@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "define-data-property@npm:1.1.4"
dependencies:
- get-intrinsic: "npm:^1.2.1"
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
gopd: "npm:^1.0.1"
- has-property-descriptors: "npm:^1.0.0"
- checksum: 10/5573c8df96b5857408cad64d9b91b69152e305ce4b06218e5f49b59c6cafdbb90a8bd8a0bb83c7bc67a8d479c04aa697063c9bc28d849b7282f9327586d6bc7b
+ checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae
languageName: node
linkType: hard
@@ -5587,17 +4518,10 @@ __metadata:
languageName: node
linkType: hard
-"electron-to-chromium@npm:^1.4.601":
- version: 1.4.601
- resolution: "electron-to-chromium@npm:1.4.601"
- checksum: 10/6a7e510156a1ecfb58a9569592d1ccc8d6089f2e764b5267d9e627e4a81ef4e15f4cdcce8cee4c0355af8df50069ca980c76913aa9a2026bfdffd7c31ef82ad7
- languageName: node
- linkType: hard
-
-"electron-to-chromium@npm:^1.4.668":
- version: 1.4.708
- resolution: "electron-to-chromium@npm:1.4.708"
- checksum: 10/a051ea46f9cddbda4218edfff69cdc8007a50554f4875d09706d43d7c1641267e9f81394c07f04e2d0616e989b227fe5ef36433a8b5bcfbb2185a84ebf346334
+"electron-to-chromium@npm:^1.4.820":
+ version: 1.4.833
+ resolution: "electron-to-chromium@npm:1.4.833"
+ checksum: 10/d99281cde600c040f33c037eaf17d52a9516b85ba1bac0cc290d9ce07d917993e6dcaa5207b81d4bbc3ccf34823c12233f830133bdd64552deeb13961764a3e6
languageName: node
linkType: hard
@@ -5646,15 +4570,15 @@ __metadata:
linkType: hard
"engine.io-parser@npm:~5.2.1":
- version: 5.2.1
- resolution: "engine.io-parser@npm:5.2.1"
- checksum: 10/31f16fd1d64d6c3997f910606a0a8b143a86da98b06346ba7970e9bdf25cc8485caf69b4939dc5a829b312c7db5dbbdcc1fe3787b105bcc175e61b9d37a7e687
+ version: 5.2.3
+ resolution: "engine.io-parser@npm:5.2.3"
+ checksum: 10/eb0023fff5766e7ae9d59e52d92df53fea06d472cfd7b52e5d2c36b4c1dbf78cab5fde1052bcb3d4bb85bdb5aee10ae85d8a1c6c04676dac0c6cdf16bcba6380
languageName: node
linkType: hard
"engine.io@npm:~6.5.2":
- version: 6.5.4
- resolution: "engine.io@npm:6.5.4"
+ version: 6.5.5
+ resolution: "engine.io@npm:6.5.5"
dependencies:
"@types/cookie": "npm:^0.4.1"
"@types/cors": "npm:^2.8.12"
@@ -5665,8 +4589,8 @@ __metadata:
cors: "npm:~2.8.5"
debug: "npm:~4.3.1"
engine.io-parser: "npm:~5.2.1"
- ws: "npm:~8.11.0"
- checksum: 10/f1a74fc9431593ca1e50d1faa5db1041feecf2a7da5c75cfca88c5a760d3c8a898141ff7e7a2a2a2859a784c25d9c87be422f094b553e0dcf98433f8e798d18f
+ ws: "npm:~8.17.1"
+ checksum: 10/df8562e5249cf122efad77b909fe804b36ac5769676f963c997d4d18c91e014c68bb40661ff92f641b978baa0297be4000c2f3c3d1ce237cd1771952ccc5f38a
languageName: node
linkType: hard
@@ -5681,9 +4605,11 @@ __metadata:
linkType: hard
"ent@npm:~2.2.0":
- version: 2.2.0
- resolution: "ent@npm:2.2.0"
- checksum: 10/818a2b5f5039ea02c9e232ba4c7496ced8512341b2524ae7c6c808d2e2b357d8087e715e0e3950cec9895c20c9b3443e0b56a2e26879984d97bb511c5fbb5299
+ version: 2.2.1
+ resolution: "ent@npm:2.2.1"
+ dependencies:
+ punycode: "npm:^1.4.1"
+ checksum: 10/309bffa54f3674823d0368bf0cc223084712344203a132950381f3883ab72b77587154548b60e51cb882bf12f396ed339621dbf4028e8c572677c6f4afb7aa20
languageName: node
linkType: hard
@@ -5728,10 +4654,26 @@ __metadata:
languageName: node
linkType: hard
+"es-define-property@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-define-property@npm:1.0.0"
+ dependencies:
+ get-intrinsic: "npm:^1.2.4"
+ checksum: 10/f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6
+ languageName: node
+ linkType: hard
+
+"es-errors@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "es-errors@npm:1.3.0"
+ checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5
+ languageName: node
+ linkType: hard
+
"es-module-lexer@npm:^1.2.1":
- version: 1.4.1
- resolution: "es-module-lexer@npm:1.4.1"
- checksum: 10/cf453613468c417af6e189b03d9521804033fdd5a229a36fedec28d37ea929fccf6822d42abff1126eb01ba1d2aa2845a48d5d1772c0724f8204464d9d3855f6
+ version: 1.5.4
+ resolution: "es-module-lexer@npm:1.5.4"
+ checksum: 10/f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5
languageName: node
linkType: hard
@@ -5824,10 +4766,10 @@ __metadata:
languageName: node
linkType: hard
-"escalade@npm:^3.1.1":
- version: 3.1.1
- resolution: "escalade@npm:3.1.1"
- checksum: 10/afa618e73362576b63f6ca83c975456621095a1ed42ff068174e3f5cea48afc422814dda548c96e6ebb5333e7265140c7292abcc81bbd6ccb1757d50d3a4e182
+"escalade@npm:^3.1.1, escalade@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "escalade@npm:3.1.2"
+ checksum: 10/a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3
languageName: node
linkType: hard
@@ -5938,15 +4880,15 @@ __metadata:
linkType: hard
"express@npm:^4.17.3":
- version: 4.18.2
- resolution: "express@npm:4.18.2"
+ version: 4.19.2
+ resolution: "express@npm:4.19.2"
dependencies:
accepts: "npm:~1.3.8"
array-flatten: "npm:1.1.1"
- body-parser: "npm:1.20.1"
+ body-parser: "npm:1.20.2"
content-disposition: "npm:0.5.4"
content-type: "npm:~1.0.4"
- cookie: "npm:0.5.0"
+ cookie: "npm:0.6.0"
cookie-signature: "npm:1.0.6"
debug: "npm:2.6.9"
depd: "npm:2.0.0"
@@ -5972,7 +4914,7 @@ __metadata:
type-is: "npm:~1.6.18"
utils-merge: "npm:1.0.1"
vary: "npm:~1.1.2"
- checksum: 10/869ae89ed6ff4bed7b373079dc58e5dddcf2915a2669b36037ff78c99d675ae930e5fe052b35c24f56557d28a023bb1cbe3e2f2fb87eaab96a1cedd7e597809d
+ checksum: 10/3fcd792536f802c059789ef48db3851b87e78fba103423e524144d79af37da7952a2b8d4e1a007f423329c7377d686d9476ac42e7d9ea413b80345d495e30a3a
languageName: node
linkType: hard
@@ -6021,12 +4963,19 @@ __metadata:
languageName: node
linkType: hard
+"fast-uri@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "fast-uri@npm:3.0.1"
+ checksum: 10/e8ee4712270de0d29eb0fbf41ffad0ac80952e8797be760e8bb62c4707f08f50a86fe2d7829681ca133c07d6eb4b4a75389a5fc36674c5b254a3ac0891a68fc7
+ languageName: node
+ linkType: hard
+
"fastq@npm:^1.6.0":
- version: 1.15.0
- resolution: "fastq@npm:1.15.0"
+ version: 1.17.1
+ resolution: "fastq@npm:1.17.1"
dependencies:
reusify: "npm:^1.0.4"
- checksum: 10/67c01b1c972e2d5b6fea197a1a39d5d582982aea69ff4c504badac71080d8396d4843b165a9686e907c233048f15a86bbccb0e7f83ba771f6fa24bcde059d0c3
+ checksum: 10/a443180068b527dd7b3a63dc7f2a47ceca2f3e97b9c00a1efe5538757e6cc4056a3526df94308075d7727561baf09ebaa5b67da8dcbddb913a021c5ae69d1f69
languageName: node
linkType: hard
@@ -6039,15 +4988,6 @@ __metadata:
languageName: node
linkType: hard
-"fill-range@npm:^7.0.1":
- version: 7.0.1
- resolution: "fill-range@npm:7.0.1"
- dependencies:
- to-regex-range: "npm:^5.0.1"
- checksum: 10/e260f7592fd196b4421504d3597cc76f4a1ca7a9488260d533b611fc3cefd61e9a9be1417cb82d3b01ad9f9c0ff2dbf258e1026d2445e26b0cf5148ff4250429
- languageName: node
- linkType: hard
-
"fill-range@npm:^7.1.1":
version: 7.1.1
resolution: "fill-range@npm:7.1.1"
@@ -6117,29 +5057,29 @@ __metadata:
linkType: hard
"flatted@npm:^3.2.7":
- version: 3.2.9
- resolution: "flatted@npm:3.2.9"
- checksum: 10/dc2b89e46a2ebde487199de5a4fcb79e8c46f984043fea5c41dbf4661eb881fefac1c939b5bdcd8a09d7f960ec364f516970c7ec44e58ff451239c07fd3d419b
+ version: 3.3.1
+ resolution: "flatted@npm:3.3.1"
+ checksum: 10/7b8376061d5be6e0d3658bbab8bde587647f68797cf6bfeae9dea0e5137d9f27547ab92aaff3512dd9d1299086a6d61be98e9d48a56d17531b634f77faadbc49
languageName: node
linkType: hard
"follow-redirects@npm:^1.0.0":
- version: 1.15.3
- resolution: "follow-redirects@npm:1.15.3"
+ version: 1.15.6
+ resolution: "follow-redirects@npm:1.15.6"
peerDependenciesMeta:
debug:
optional: true
- checksum: 10/60d98693f4976892f8c654b16ef6d1803887a951898857ab0cdc009570b1c06314ad499505b7a040ac5b98144939f8597766e5e6a6859c0945d157b473aa6f5f
+ checksum: 10/70c7612c4cab18e546e36b991bbf8009a1a41cf85354afe04b113d1117569abf760269409cb3eb842d9f7b03d62826687086b081c566ea7b1e6613cf29030bf7
languageName: node
linkType: hard
"foreground-child@npm:^3.1.0":
- version: 3.1.1
- resolution: "foreground-child@npm:3.1.1"
+ version: 3.2.1
+ resolution: "foreground-child@npm:3.2.1"
dependencies:
cross-spawn: "npm:^7.0.0"
signal-exit: "npm:^4.0.1"
- checksum: 10/087edd44857d258c4f73ad84cb8df980826569656f2550c341b27adf5335354393eec24ea2fabd43a253233fb27cee177ebe46bd0b7ea129c77e87cb1e9936fb
+ checksum: 10/77b33b3c438a499201727ca84de39a66350ccd54a8805df712773e963cefb5c4632dbc4386109e97a0df8fb1585aee95fa35acb07587e3e04cfacabfc0ae15dc
languageName: node
linkType: hard
@@ -6247,15 +5187,16 @@ __metadata:
languageName: node
linkType: hard
-"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2":
- version: 1.2.2
- resolution: "get-intrinsic@npm:1.2.2"
+"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "get-intrinsic@npm:1.2.4"
dependencies:
+ es-errors: "npm:^1.3.0"
function-bind: "npm:^1.1.2"
has-proto: "npm:^1.0.1"
has-symbols: "npm:^1.0.3"
hasown: "npm:^2.0.0"
- checksum: 10/aa96db4f809734d26d49b59bc8669d73a0ae792da561514e987735573a1dfaede516cd102f217a078ea2b42d4c4fb1f83d487932cb15d49826b726cc9cd4470b
+ checksum: 10/85bbf4b234c3940edf8a41f4ecbd4e25ce78e5e6ad4e24ca2f77037d983b9ef943fd72f00f3ee97a49ec622a506b67db49c36246150377efcda1c9eb03e5f06d
languageName: node
linkType: hard
@@ -6292,17 +5233,18 @@ __metadata:
linkType: hard
"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7":
- version: 10.3.10
- resolution: "glob@npm:10.3.10"
+ version: 10.4.5
+ resolution: "glob@npm:10.4.5"
dependencies:
foreground-child: "npm:^3.1.0"
- jackspeak: "npm:^2.3.5"
- minimatch: "npm:^9.0.1"
- minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- path-scurry: "npm:^1.10.1"
+ jackspeak: "npm:^3.1.2"
+ minimatch: "npm:^9.0.4"
+ minipass: "npm:^7.1.2"
+ package-json-from-dist: "npm:^1.0.0"
+ path-scurry: "npm:^1.11.1"
bin:
glob: dist/esm/bin.mjs
- checksum: 10/38bdb2c9ce75eb5ed168f309d4ed05b0798f640b637034800a6bf306f39d35409bf278b0eaaffaec07591085d3acb7184a201eae791468f0f617771c2486a6a8
+ checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac
languageName: node
linkType: hard
@@ -6328,8 +5270,8 @@ __metadata:
linkType: hard
"globby@npm:^14.0.0":
- version: 14.0.1
- resolution: "globby@npm:14.0.1"
+ version: 14.0.2
+ resolution: "globby@npm:14.0.2"
dependencies:
"@sindresorhus/merge-streams": "npm:^2.1.0"
fast-glob: "npm:^3.3.2"
@@ -6337,7 +5279,7 @@ __metadata:
path-type: "npm:^5.0.0"
slash: "npm:^5.1.0"
unicorn-magic: "npm:^0.1.0"
- checksum: 10/b36f57afc45a857a884d82657603c7e1663b1e6f3f9afbeb53d12e42230469fc5b26a7e14a01e51086f3f25c138f58a7002036fcc8f3ca054097b6dd7c71d639
+ checksum: 10/67660da70fc1223f7170c1a62ba6c373385e9e39765d952b6518606dec15ed8c7958e9dae6ba5752a31dbc1e9126f146938b830ad680fe794141734ffc3fbb75
languageName: node
linkType: hard
@@ -6378,19 +5320,19 @@ __metadata:
languageName: node
linkType: hard
-"has-property-descriptors@npm:^1.0.0":
- version: 1.0.1
- resolution: "has-property-descriptors@npm:1.0.1"
+"has-property-descriptors@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-property-descriptors@npm:1.0.2"
dependencies:
- get-intrinsic: "npm:^1.2.2"
- checksum: 10/21a47bb080a24e79594aef1ce71e1a18a1c5ab4120308e218088f67ebb7f6f408847541e2d96e5bd00e90eef5c5a49e4ebbdc8fc2d5b365a2c379aef071642f0
+ es-define-property: "npm:^1.0.0"
+ checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2
languageName: node
linkType: hard
"has-proto@npm:^1.0.1":
- version: 1.0.1
- resolution: "has-proto@npm:1.0.1"
- checksum: 10/eab2ab0ed1eae6d058b9bbc4c1d99d2751b29717be80d02fd03ead8b62675488de0c7359bc1fdd4b87ef6fd11e796a9631ad4d7452d9324fdada70158c2e5be7
+ version: 1.0.3
+ resolution: "has-proto@npm:1.0.3"
+ checksum: 10/0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a
languageName: node
linkType: hard
@@ -6401,21 +5343,21 @@ __metadata:
languageName: node
linkType: hard
-"hasown@npm:^2.0.0":
- version: 2.0.0
- resolution: "hasown@npm:2.0.0"
+"hasown@npm:^2.0.0, hasown@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "hasown@npm:2.0.2"
dependencies:
function-bind: "npm:^1.1.2"
- checksum: 10/c330f8d93f9d23fe632c719d4db3d698ef7d7c367d51548b836069e06a90fa9151e868c8e67353cfe98d67865bf7354855db28fa36eb1b18fa5d4a3f4e7f1c90
+ checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a
languageName: node
linkType: hard
"hosted-git-info@npm:^7.0.0":
- version: 7.0.1
- resolution: "hosted-git-info@npm:7.0.1"
+ version: 7.0.2
+ resolution: "hosted-git-info@npm:7.0.2"
dependencies:
lru-cache: "npm:^10.0.1"
- checksum: 10/5f740ecf3c70838e27446ff433a9a9a583de8747f7b661390b373ad12ca47edb937136e79999a4f953d0953079025a11df173f1fd9f7d52b0277b2fb9433e1c7
+ checksum: 10/8f085df8a4a637d995f357f48b1e3f6fc1f9f92e82b33fb406415b5741834ed431a510a09141071001e8deea2eee43ce72786463e2aa5e5a70db8648c0eedeab
languageName: node
linkType: hard
@@ -6504,12 +5446,12 @@ __metadata:
linkType: hard
"http-proxy-agent@npm:^7.0.0":
- version: 7.0.0
- resolution: "http-proxy-agent@npm:7.0.0"
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
dependencies:
agent-base: "npm:^7.1.0"
debug: "npm:^4.3.4"
- checksum: 10/dbaaf3d9f3fc4df4a5d7ec45d456ec50f575240b557160fa63427b447d1f812dd7fe4a4f17d2e1ba003d231f07edf5a856ea6d91cb32d533062ff20a7803ccac
+ checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848
languageName: node
linkType: hard
@@ -6556,23 +5498,13 @@ __metadata:
languageName: node
linkType: hard
-"https-proxy-agent@npm:7.0.4":
- version: 7.0.4
- resolution: "https-proxy-agent@npm:7.0.4"
- dependencies:
- agent-base: "npm:^7.0.2"
- debug: "npm:4"
- checksum: 10/405fe582bba461bfe5c7e2f8d752b384036854488b828ae6df6a587c654299cbb2c50df38c4b6ab303502c3c5e029a793fbaac965d1e86ee0be03faceb554d63
- languageName: node
- linkType: hard
-
-"https-proxy-agent@npm:^7.0.1":
- version: 7.0.2
- resolution: "https-proxy-agent@npm:7.0.2"
+"https-proxy-agent@npm:7.0.5, https-proxy-agent@npm:^7.0.1":
+ version: 7.0.5
+ resolution: "https-proxy-agent@npm:7.0.5"
dependencies:
agent-base: "npm:^7.0.2"
debug: "npm:4"
- checksum: 10/9ec844f78fd643608239c9c3f6819918631df5cd3e17d104cc507226a39b5d4adda9d790fc9fd63ac0d2bb8a761b2f9f60faa80584a9bf9d7f2e8c5ed0acd330
+ checksum: 10/6679d46159ab3f9a5509ee80c3a3fc83fba3a920a5e18d32176c3327852c3c00ad640c0c4210a8fd70ea3c4a6d3a1b375bf01942516e7df80e2646bdc77658ab
languageName: node
linkType: hard
@@ -6583,6 +5515,13 @@ __metadata:
languageName: node
linkType: hard
+"hyperdyperid@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "hyperdyperid@npm:1.2.0"
+ checksum: 10/64abb5568ff17aa08ac0175ae55e46e22831c5552be98acdd1692081db0209f36fff58b31432017b4e1772c178962676a2cc3c54e4d5d7f020d7710cec7ad7a6
+ languageName: node
+ linkType: hard
+
"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24":
version: 0.4.24
resolution: "iconv-lite@npm:0.4.24"
@@ -6617,19 +5556,19 @@ __metadata:
languageName: node
linkType: hard
-"ignore-walk@npm:^6.0.0":
- version: 6.0.4
- resolution: "ignore-walk@npm:6.0.4"
+"ignore-walk@npm:^6.0.4":
+ version: 6.0.5
+ resolution: "ignore-walk@npm:6.0.5"
dependencies:
minimatch: "npm:^9.0.0"
- checksum: 10/a56c3f929bb0890ffb6e87dfaca7d5ce97f9e179fd68d49711edea55760aaee367cea3845d7620689b706249053c4b1805e21158f6751c7333f9b2ffb3668272
+ checksum: 10/08757abff4dabca4f9f005f9a6cb6684e0c460a1e08c50319460ac13002de0ba8bbde6ad1f4477fefb264135d6253d1268339c18292f82485fcce576af0539d9
languageName: node
linkType: hard
"ignore@npm:^5.2.4":
- version: 5.3.0
- resolution: "ignore@npm:5.3.0"
- checksum: 10/51594355cea4c6ad6b28b3b85eb81afa7b988a1871feefd7062baf136c95aa06760ee934fa9590e43d967bd377ce84a4cf6135fbeb6063e063f1182a0e9a3bcd
+ version: 5.3.1
+ resolution: "ignore@npm:5.3.1"
+ checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065
languageName: node
linkType: hard
@@ -6643,9 +5582,9 @@ __metadata:
linkType: hard
"immutable@npm:^4.0.0":
- version: 4.3.4
- resolution: "immutable@npm:4.3.4"
- checksum: 10/ea187acc1eec9dcfaa0823bae59e1ae0ea82e7a40d2ace9fb84d467875d5506ced684a79b68e70451f1e1761a387a958ba724171f93aa10330998b026fcb5d29
+ version: 4.3.7
+ resolution: "immutable@npm:4.3.7"
+ checksum: 10/37d963c5050f03ae5f3714ba7a43d469aa482051087f4c65d673d1501c309ea231d87480c792e19fa85e2eaf965f76af5d0aa92726505f3cfe4af91619dfb80b
languageName: node
linkType: hard
@@ -6697,17 +5636,20 @@ __metadata:
languageName: node
linkType: hard
-"ini@npm:4.1.3":
+"ini@npm:4.1.3, ini@npm:^4.1.3":
version: 4.1.3
resolution: "ini@npm:4.1.3"
checksum: 10/f536b414d1442e5b233429e2b56efcdb354109b2d65ddd489e5939d8f0f5ad23c88aa2b19c92987249d0dd63ba8192e9aeb1a02b0459549c5a9ff31acd729a5d
languageName: node
linkType: hard
-"ip@npm:^2.0.0":
- version: 2.0.0
- resolution: "ip@npm:2.0.0"
- checksum: 10/1270b11e534a466fb4cf4426cbcc3a907c429389f7f4e4e3b288b42823562e88d6a509ceda8141a507de147ca506141f745005c0aa144569d94cf24a54eb52bc
+"ip-address@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "ip-address@npm:9.0.5"
+ dependencies:
+ jsbn: "npm:1.1.0"
+ sprintf-js: "npm:^1.1.3"
+ checksum: 10/1ed81e06721af012306329b31f532b5e24e00cb537be18ddc905a84f19fe8f83a09a1699862bf3a1ec4b9dea93c55a3fa5faf8b5ea380431469df540f38b092c
languageName: node
linkType: hard
@@ -6719,9 +5661,9 @@ __metadata:
linkType: hard
"ipaddr.js@npm:^2.1.0":
- version: 2.1.0
- resolution: "ipaddr.js@npm:2.1.0"
- checksum: 10/42c16d95cf451399707c2c46e605b88db1ea2b1477b25774b5a7ee96852b0bb1efdc01adbff01fedbe702ff246e1aca5c5e915a6f5a1f1485233a5f7c2eb73c2
+ version: 2.2.0
+ resolution: "ipaddr.js@npm:2.2.0"
+ checksum: 10/9e1cdd9110b3bca5d910ab70d7fb1933e9c485d9b92cb14ef39f30c412ba3fe02a553921bf696efc7149cc653453c48ccf173adb996ec27d925f1f340f872986
languageName: node
linkType: hard
@@ -6741,12 +5683,12 @@ __metadata:
languageName: node
linkType: hard
-"is-core-module@npm:^2.13.0, is-core-module@npm:^2.8.1":
- version: 2.13.1
- resolution: "is-core-module@npm:2.13.1"
+"is-core-module@npm:^2.13.0":
+ version: 2.15.0
+ resolution: "is-core-module@npm:2.15.0"
dependencies:
- hasown: "npm:^2.0.0"
- checksum: 10/d53bd0cc24b0a0351fb4b206ee3908f71b9bbf1c47e9c9e14e5f06d292af1663704d2abd7e67700d6487b2b7864e0d0f6f10a1edf1892864bdffcb197d1845a2
+ hasown: "npm:^2.0.2"
+ checksum: 10/70e962543e5d3a97c07cb29144a86792d545a21f28e67da5401d85878a0193d46fbab8d97bc3ca680e2778705dca66e7b6ca840c493497a27ca0e8c5f3ac3d1d
languageName: node
linkType: hard
@@ -6973,25 +5915,25 @@ __metadata:
linkType: hard
"istanbul-reports@npm:^3.0.5":
- version: 3.1.6
- resolution: "istanbul-reports@npm:3.1.6"
+ version: 3.1.7
+ resolution: "istanbul-reports@npm:3.1.7"
dependencies:
html-escaper: "npm:^2.0.0"
istanbul-lib-report: "npm:^3.0.0"
- checksum: 10/135c178e509b21af5c446a6951fc01c331331bb0fdb1ed1dd7f68a8c875603c2e2ee5c82801db5feb868e5cc35e9babe2d972d322afc50f6de6cce6431b9b2ff
+ checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa
languageName: node
linkType: hard
-"jackspeak@npm:^2.3.5":
- version: 2.3.6
- resolution: "jackspeak@npm:2.3.6"
+"jackspeak@npm:^3.1.2":
+ version: 3.4.3
+ resolution: "jackspeak@npm:3.4.3"
dependencies:
"@isaacs/cliui": "npm:^8.0.2"
"@pkgjs/parseargs": "npm:^0.11.0"
dependenciesMeta:
"@pkgjs/parseargs":
optional: true
- checksum: 10/6e6490d676af8c94a7b5b29b8fd5629f21346911ebe2e32931c2a54210134408171c24cee1a109df2ec19894ad04a429402a8438cbf5cc2794585d35428ace76
+ checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3
languageName: node
linkType: hard
@@ -7021,11 +5963,11 @@ __metadata:
linkType: hard
"jiti@npm:^1.20.0":
- version: 1.21.0
- resolution: "jiti@npm:1.21.0"
+ version: 1.21.6
+ resolution: "jiti@npm:1.21.6"
bin:
jiti: bin/jiti.js
- checksum: 10/005a0239e50381b5c9919f59dbab86128367bd64872f3376dbbde54b6523f41bd134bf22909e2a509e38fd87e1c22125ca255b9b6b53e7df0fedd23f737334cc
+ checksum: 10/289b124cea411c130a14ffe88e3d38376ab44b6695616dfa0a1f32176a8f20ec90cdd6d2b9d81450fc6467cfa4d865f04f49b98452bff0f812bc400fd0ae78d6
languageName: node
linkType: hard
@@ -7047,6 +5989,13 @@ __metadata:
languageName: node
linkType: hard
+"jsbn@npm:1.1.0":
+ version: 1.1.0
+ resolution: "jsbn@npm:1.1.0"
+ checksum: 10/bebe7ae829bbd586ce8cbe83501dd8cb8c282c8902a8aeeed0a073a89dc37e8103b1244f3c6acd60278bcbfe12d93a3f83c9ac396868a3b3bbc3c5e5e3b648ef
+ languageName: node
+ linkType: hard
+
"jsesc@npm:^2.5.1":
version: 2.5.2
resolution: "jsesc@npm:2.5.2"
@@ -7073,9 +6022,9 @@ __metadata:
linkType: hard
"json-parse-even-better-errors@npm:^3.0.0":
- version: 3.0.1
- resolution: "json-parse-even-better-errors@npm:3.0.1"
- checksum: 10/bf74fa3f715e56699ccd68b80a7d20908de432a3fae2d5aa2ed530a148e9d9ccdf8e6983b93d9966a553aa70dcf003ce3a7ffec2c0ce74d2a6173e3691a426f0
+ version: 3.0.2
+ resolution: "json-parse-even-better-errors@npm:3.0.2"
+ checksum: 10/6f04ea6c9ccb783630a59297959247e921cc90b917b8351197ca7fd058fccc7079268fd9362be21ba876fc26aa5039369dd0a2280aae49aae425784794a94927
languageName: node
linkType: hard
@@ -7102,10 +6051,10 @@ __metadata:
languageName: node
linkType: hard
-"jsonc-parser@npm:3.2.1":
- version: 3.2.1
- resolution: "jsonc-parser@npm:3.2.1"
- checksum: 10/fe2df6f39e21653781d52cae20c5b9e0ab62461918d97f9430b216cea9b6500efc1d8b42c6584cc0a7548b4c996055e9cdc39f09b9782fa6957af2f45306c530
+"jsonc-parser@npm:3.3.1":
+ version: 3.3.1
+ resolution: "jsonc-parser@npm:3.3.1"
+ checksum: 10/9b0dc391f20b47378f843ef1e877e73ec652a5bdc3c5fa1f36af0f119a55091d147a86c1ee86a232296f55c929bba174538c2bf0312610e0817a22de131cc3f4
languageName: node
linkType: hard
@@ -7224,12 +6173,12 @@ __metadata:
linkType: hard
"launch-editor@npm:^2.6.1":
- version: 2.6.1
- resolution: "launch-editor@npm:2.6.1"
+ version: 2.8.0
+ resolution: "launch-editor@npm:2.8.0"
dependencies:
picocolors: "npm:^1.0.0"
shell-quote: "npm:^1.8.1"
- checksum: 10/e06d193075ac09f7f8109f10cabe464a211bf7ed4cbe75f83348d6f67bf4d9f162f06e7a1ab3e1cd7fc250b5342c3b57080618aff2e646dc34248fe499227601
+ checksum: 10/495009163fd4879fbc576323d1da3b821379ec66e9c20ed3297ea65b3eceb720fe9409cbd2819d6ff5dd0115325e6b6716d473dd729d5aa8ddd67810e3545477
languageName: node
linkType: hard
@@ -7305,9 +6254,9 @@ __metadata:
languageName: node
linkType: hard
-"listr2@npm:8.2.2":
- version: 8.2.2
- resolution: "listr2@npm:8.2.2"
+"listr2@npm:8.2.3":
+ version: 8.2.3
+ resolution: "listr2@npm:8.2.3"
dependencies:
cli-truncate: "npm:^4.0.0"
colorette: "npm:^2.0.20"
@@ -7315,7 +6264,7 @@ __metadata:
log-update: "npm:^6.0.0"
rfdc: "npm:^1.4.1"
wrap-ansi: "npm:^9.0.0"
- checksum: 10/7e96089f1021fdcb33498bcd0aa7432d57c6bcd5b97e976d241da08c5a3a7735007176b7adf33caa694e5efc9c88e9f65f8aaba17e9d8c782e932555d60ed242
+ checksum: 10/4d63a699b851d6763df83b0eb26d9f07e6ba656fbae79ddd2447bd72a5b6825dad2fd315aacba712707ccd414fab3365ba863ad5b12b9f1b515a5d0768f6fc7d
languageName: node
linkType: hard
@@ -7438,10 +6387,10 @@ __metadata:
languageName: node
linkType: hard
-"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0":
- version: 10.1.0
- resolution: "lru-cache@npm:10.1.0"
- checksum: 10/207278d6fa711fb1f94a0835d4d4737441d2475302482a14785b10515e4c906a57ebf9f35bf060740c9560e91c7c1ad5a04fd7ed030972a9ba18bce2a228e95b
+"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
+ version: 10.4.3
+ resolution: "lru-cache@npm:10.4.3"
+ checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a
languageName: node
linkType: hard
@@ -7454,15 +6403,6 @@ __metadata:
languageName: node
linkType: hard
-"lru-cache@npm:^6.0.0":
- version: 6.0.0
- resolution: "lru-cache@npm:6.0.0"
- dependencies:
- yallist: "npm:^4.0.0"
- checksum: 10/fc1fe2ee205f7c8855fa0f34c1ab0bcf14b6229e35579ec1fd1079f31d6fc8ef8eb6fd17f2f4d99788d7e339f50e047555551ebd5e434dda503696e7c6591825
- languageName: node
- linkType: hard
-
"magic-string@npm:0.30.10":
version: 0.30.10
resolution: "magic-string@npm:0.30.10"
@@ -7491,9 +6431,9 @@ __metadata:
languageName: node
linkType: hard
-"make-fetch-happen@npm:^13.0.0":
- version: 13.0.0
- resolution: "make-fetch-happen@npm:13.0.0"
+"make-fetch-happen@npm:^13.0.0, make-fetch-happen@npm:^13.0.1":
+ version: 13.0.1
+ resolution: "make-fetch-happen@npm:13.0.1"
dependencies:
"@npmcli/agent": "npm:^2.0.0"
cacache: "npm:^18.0.0"
@@ -7504,9 +6444,10 @@ __metadata:
minipass-flush: "npm:^1.0.5"
minipass-pipeline: "npm:^1.2.4"
negotiator: "npm:^0.6.3"
+ proc-log: "npm:^4.2.0"
promise-retry: "npm:^2.0.1"
ssri: "npm:^10.0.0"
- checksum: 10/ded5a91a02b76381b06a4ec4d5c1d23ebbde15d402b3c3e4533b371dac7e2f7ca071ae71ae6dae72aa261182557b7b1b3fd3a705b39252dc17f74fa509d3e76f
+ checksum: 10/11bae5ad6ac59b654dbd854f30782f9de052186c429dfce308eda42374528185a100ee40ac9ffdc36a2b6c821ecaba43913e4730a12f06f15e895ea9cb23fa59
languageName: node
linkType: hard
@@ -7518,11 +6459,14 @@ __metadata:
linkType: hard
"memfs@npm:^4.6.0":
- version: 4.8.0
- resolution: "memfs@npm:4.8.0"
+ version: 4.9.3
+ resolution: "memfs@npm:4.9.3"
dependencies:
+ "@jsonjoy.com/json-pack": "npm:^1.0.3"
+ "@jsonjoy.com/util": "npm:^1.1.2"
+ tree-dump: "npm:^1.0.1"
tslib: "npm:^2.0.0"
- checksum: 10/12b84a03250393d74e443dfffce50e12884b9bcba981545c304cb150db524e3c5a19ee62cee3670eefd81a81e899aaa4151f6f93a13114cb4afd9e69c673f879
+ checksum: 10/0fb971420ac005e8c1e66a3c8ad97c22195374ca869ca7d9dcef45b6bc944e98df079fa30e6ff5a1fb9d0559e1afa2d47662671e3a2ff7be985896485cdb37be
languageName: node
linkType: hard
@@ -7554,17 +6498,7 @@ __metadata:
languageName: node
linkType: hard
-"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
- version: 4.0.5
- resolution: "micromatch@npm:4.0.5"
- dependencies:
- braces: "npm:^3.0.2"
- picomatch: "npm:^2.3.1"
- checksum: 10/a749888789fc15cac0e03273844dbd749f9f8e8d64e70c564bcf06a033129554c789bb9e30d7566d7ff6596611a08e58ac12cf2a05f6e3c9c47c50c4c7e12fa2
- languageName: node
- linkType: hard
-
-"micromatch@npm:^4.0.5":
+"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5":
version: 4.0.7
resolution: "micromatch@npm:4.0.7"
dependencies:
@@ -7574,13 +6508,20 @@ __metadata:
languageName: node
linkType: hard
-"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2":
+"mime-db@npm:1.52.0":
version: 1.52.0
resolution: "mime-db@npm:1.52.0"
checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7
languageName: node
linkType: hard
+"mime-db@npm:>= 1.43.0 < 2":
+ version: 1.53.0
+ resolution: "mime-db@npm:1.53.0"
+ checksum: 10/82409c568a20254cc67a763a25e581d2213e1ef5d070a0af805239634f8a655f5d8a15138200f5f81c5b06fc6623d27f6168c612d447642d59e37eb7f20f7412
+ languageName: node
+ linkType: hard
+
"mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
@@ -7643,12 +6584,12 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
+"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4":
+ version: 9.0.5
+ resolution: "minimatch@npm:9.0.5"
dependencies:
brace-expansion: "npm:^2.0.1"
- checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5
+ checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348
languageName: node
linkType: hard
@@ -7669,8 +6610,8 @@ __metadata:
linkType: hard
"minipass-fetch@npm:^3.0.0":
- version: 3.0.4
- resolution: "minipass-fetch@npm:3.0.4"
+ version: 3.0.5
+ resolution: "minipass-fetch@npm:3.0.5"
dependencies:
encoding: "npm:^0.1.13"
minipass: "npm:^7.0.3"
@@ -7679,7 +6620,7 @@ __metadata:
dependenciesMeta:
encoding:
optional: true
- checksum: 10/3edf72b900e30598567eafe96c30374432a8709e61bb06b87198fa3192d466777e2ec21c52985a0999044fa6567bd6f04651585983a1cbb27e2c1770a07ed2a2
+ checksum: 10/c669948bec1373313aaa8f104b962a3ced9f45c49b26366a4b0ae27ccdfa9c5740d72c8a84d3f8623d7a61c5fc7afdfda44789008c078f61a62441142efc4a97
languageName: node
linkType: hard
@@ -7692,16 +6633,6 @@ __metadata:
languageName: node
linkType: hard
-"minipass-json-stream@npm:^1.0.1":
- version: 1.0.1
- resolution: "minipass-json-stream@npm:1.0.1"
- dependencies:
- jsonparse: "npm:^1.3.1"
- minipass: "npm:^3.0.0"
- checksum: 10/3c65482c630b063c3fa86c853f324a50d9484f2eb6c3034f9c86c0b22f44181668848088f2c869cc764f8a9b8adc8f617f93762cd9d11521f563b8a71c5b815d
- languageName: node
- linkType: hard
-
"minipass-pipeline@npm:^1.2.4":
version: 1.2.4
resolution: "minipass-pipeline@npm:1.2.4"
@@ -7736,10 +6667,10 @@ __metadata:
languageName: node
linkType: hard
-"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3":
- version: 7.0.4
- resolution: "minipass@npm:7.0.4"
- checksum: 10/e864bd02ceb5e0707696d58f7ce3a0b89233f0d686ef0d447a66db705c0846a8dc6f34865cd85256c1472ff623665f616b90b8ff58058b2ad996c5de747d2d18
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2":
+ version: 7.1.2
+ resolution: "minipass@npm:7.1.2"
+ checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950
languageName: node
linkType: hard
@@ -7794,7 +6725,7 @@ __metadata:
languageName: node
linkType: hard
-"ms@npm:2.1.3, ms@npm:^2.1.1":
+"ms@npm:2.1.3":
version: 2.1.3
resolution: "ms@npm:2.1.3"
checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
@@ -7802,17 +6733,17 @@ __metadata:
linkType: hard
"msgpackr-extract@npm:^3.0.2":
- version: 3.0.2
- resolution: "msgpackr-extract@npm:3.0.2"
- dependencies:
- "@msgpackr-extract/msgpackr-extract-darwin-arm64": "npm:3.0.2"
- "@msgpackr-extract/msgpackr-extract-darwin-x64": "npm:3.0.2"
- "@msgpackr-extract/msgpackr-extract-linux-arm": "npm:3.0.2"
- "@msgpackr-extract/msgpackr-extract-linux-arm64": "npm:3.0.2"
- "@msgpackr-extract/msgpackr-extract-linux-x64": "npm:3.0.2"
- "@msgpackr-extract/msgpackr-extract-win32-x64": "npm:3.0.2"
+ version: 3.0.3
+ resolution: "msgpackr-extract@npm:3.0.3"
+ dependencies:
+ "@msgpackr-extract/msgpackr-extract-darwin-arm64": "npm:3.0.3"
+ "@msgpackr-extract/msgpackr-extract-darwin-x64": "npm:3.0.3"
+ "@msgpackr-extract/msgpackr-extract-linux-arm": "npm:3.0.3"
+ "@msgpackr-extract/msgpackr-extract-linux-arm64": "npm:3.0.3"
+ "@msgpackr-extract/msgpackr-extract-linux-x64": "npm:3.0.3"
+ "@msgpackr-extract/msgpackr-extract-win32-x64": "npm:3.0.3"
node-gyp: "npm:latest"
- node-gyp-build-optional-packages: "npm:5.0.7"
+ node-gyp-build-optional-packages: "npm:5.2.2"
dependenciesMeta:
"@msgpackr-extract/msgpackr-extract-darwin-arm64":
optional: true
@@ -7828,19 +6759,19 @@ __metadata:
optional: true
bin:
download-msgpackr-prebuilds: bin/download-prebuilds.js
- checksum: 10/c37ff5f098aea43ad441df32b810c603d84f2c775132e5919a20dacdbd003995cbead794c80e8d2f1d673539fac9b90c621842391a868d5055be857ae30763b9
+ checksum: 10/4bfe45cf6968310570765951691f1b8e85b6a837e5197b8232fc9285eef4b457992e73118d9d07c92a52cc23f9e837897b135e17ea0f73e3604540434051b62f
languageName: node
linkType: hard
"msgpackr@npm:^1.10.2":
- version: 1.10.2
- resolution: "msgpackr@npm:1.10.2"
+ version: 1.11.0
+ resolution: "msgpackr@npm:1.11.0"
dependencies:
msgpackr-extract: "npm:^3.0.2"
dependenciesMeta:
msgpackr-extract:
optional: true
- checksum: 10/c422bed19f70d23b5f8945cb8e334cb9e773350b422d606794397c22260ef64a42a17284c5e14c2693203f871ecb18157dc47e2b8bd2e66d7764fcde3442a5c1
+ checksum: 10/e95edf511ab269b34e312a7bd058c203e1ef4dc0656df8ccf1a10e9cdb40fac4c4b62b42ea0b2d199f85a1a53704f7f47e28ed5af5311f66097c591eafbbf8f3
languageName: node
linkType: hard
@@ -7863,7 +6794,7 @@ __metadata:
languageName: node
linkType: hard
-"nanoid@npm:^3.3.6, nanoid@npm:^3.3.7":
+"nanoid@npm:^3.3.7":
version: 3.3.7
resolution: "nanoid@npm:3.3.7"
bin:
@@ -7873,15 +6804,14 @@ __metadata:
linkType: hard
"needle@npm:^3.1.0":
- version: 3.2.0
- resolution: "needle@npm:3.2.0"
+ version: 3.3.1
+ resolution: "needle@npm:3.3.1"
dependencies:
- debug: "npm:^3.2.6"
iconv-lite: "npm:^0.6.3"
sax: "npm:^1.2.4"
bin:
needle: bin/needle
- checksum: 10/65ec7c7166a054bfcce667bed87e38c1a0b1f493f89f6852658c61575b5f736d4d55a476a96bd90c0c3c3b0233aef5431ef2d4ce1c536eff6a5c6f0b4f95e6b9
+ checksum: 10/31925ec72b93ffd1f5614a4f381878e7c31f1838cd36055aa4148c49a3a9d16429987fc64b509538f61fccbb49aac9ec2e91b1ed028aafb16f943f1993097d96
languageName: node
linkType: hard
@@ -7935,17 +6865,6 @@ __metadata:
languageName: node
linkType: hard
-"node-gyp-build-optional-packages@npm:5.0.7":
- version: 5.0.7
- resolution: "node-gyp-build-optional-packages@npm:5.0.7"
- 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
- checksum: 10/f61780b83ee665d88a1b2d0f5375d3455fabed1af4a009fd4396ed0b19ed6ad2215d4adbc76bd6eea0aafde0c72990e2cee9c888eeb28d6da2c8e5f8bce3ca0f
- languageName: node
- linkType: hard
-
"node-gyp-build-optional-packages@npm:5.2.2":
version: 5.2.2
resolution: "node-gyp-build-optional-packages@npm:5.2.2"
@@ -7960,19 +6879,19 @@ __metadata:
linkType: hard
"node-gyp-build@npm:^4.2.2":
- version: 4.7.1
- resolution: "node-gyp-build@npm:4.7.1"
+ version: 4.8.1
+ resolution: "node-gyp-build@npm:4.8.1"
bin:
node-gyp-build: bin.js
node-gyp-build-optional: optional.js
node-gyp-build-test: build-test.js
- checksum: 10/3f6780a24dc7f6c47870ee1095a3f88aca9ca9c156dfdc390aee8f320fe94ebf8b91a361edd62aff7bf2eae469e25800378ed97533134d8580a8b9bdae75994c
+ checksum: 10/b9297770f96a92e5f2b854f3fd5e4bd418df81d7785a81ab60cec5cf2e5e72dc2c3319808978adc572cfa3885e6b12338cb5f4034bed2cab35f0d76a4b75ccdf
languageName: node
linkType: hard
"node-gyp@npm:^10.0.0, node-gyp@npm:latest":
- version: 10.0.1
- resolution: "node-gyp@npm:10.0.1"
+ version: 10.2.0
+ resolution: "node-gyp@npm:10.2.0"
dependencies:
env-paths: "npm:^2.2.0"
exponential-backoff: "npm:^3.1.1"
@@ -7980,43 +6899,42 @@ __metadata:
graceful-fs: "npm:^4.2.6"
make-fetch-happen: "npm:^13.0.0"
nopt: "npm:^7.0.0"
- proc-log: "npm:^3.0.0"
+ proc-log: "npm:^4.1.0"
semver: "npm:^7.3.5"
- tar: "npm:^6.1.2"
+ tar: "npm:^6.2.1"
which: "npm:^4.0.0"
bin:
node-gyp: bin/node-gyp.js
- checksum: 10/578cf0c821f258ce4b6ebce4461eca4c991a4df2dee163c0624f2fe09c7d6d37240be4942285a0048d307230248ee0b18382d6623b9a0136ce9533486deddfa8
+ checksum: 10/41773093b1275751dec942b985982fd4e7a69b88cae719b868babcef3880ee6168aaec8dcaa8cd0b9fa7c84873e36cc549c6cac6a124ee65ba4ce1f1cc108cfe
languageName: node
linkType: hard
"node-releases@npm:^2.0.14":
- version: 2.0.14
- resolution: "node-releases@npm:2.0.14"
- checksum: 10/0f7607ec7db5ef1dc616899a5f24ae90c869b6a54c2d4f36ff6d84a282ab9343c7ff3ca3670fe4669171bb1e8a9b3e286e1ef1c131f09a83d70554f855d54f24
+ version: 2.0.18
+ resolution: "node-releases@npm:2.0.18"
+ checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e
languageName: node
linkType: hard
"nopt@npm:^7.0.0":
- version: 7.2.0
- resolution: "nopt@npm:7.2.0"
+ version: 7.2.1
+ resolution: "nopt@npm:7.2.1"
dependencies:
abbrev: "npm:^2.0.0"
bin:
nopt: bin/nopt.js
- checksum: 10/1e7489f17cbda452c8acaf596a8defb4ae477d2a9953b76eb96f4ec3f62c6b421cd5174eaa742f88279871fde9586d8a1d38fb3f53fa0c405585453be31dff4c
+ checksum: 10/95a1f6dec8a81cd18cdc2fed93e6f0b4e02cf6bdb4501c848752c6e34f9883d9942f036a5e3b21a699047d8a448562d891e67492df68ec9c373e6198133337ae
languageName: node
linkType: hard
"normalize-package-data@npm:^6.0.0":
- version: 6.0.0
- resolution: "normalize-package-data@npm:6.0.0"
+ version: 6.0.2
+ resolution: "normalize-package-data@npm:6.0.2"
dependencies:
hosted-git-info: "npm:^7.0.0"
- is-core-module: "npm:^2.8.1"
semver: "npm:^7.3.5"
validate-npm-package-license: "npm:^3.0.4"
- checksum: 10/e31e31a2ebaef93ef107feb9408f105044eeae9cb7d0d4619544ab2323cd4b15ca648b0d558ac29db2fece161c7b8658206bb27ebe9340df723f7174b3e2759d
+ checksum: 10/7c4216a2426aa76c0197f8372f06b23a0484d62b3518fb5c0f6ebccb16376bdfab29ceba96f95c75f60506473198f1337fe337b945c8df0541fe32b8049ab4c9
languageName: node
linkType: hard
@@ -8035,11 +6953,11 @@ __metadata:
linkType: hard
"npm-bundled@npm:^3.0.0":
- version: 3.0.0
- resolution: "npm-bundled@npm:3.0.0"
+ version: 3.0.1
+ resolution: "npm-bundled@npm:3.0.1"
dependencies:
npm-normalize-package-bin: "npm:^3.0.0"
- checksum: 10/704fce20114d36d665c20edc56d3f9f7778c52ca1cd48731ec31f65af9e65805f9308ca7ed9e5a6bd9fe22327a63aa5d83a8c5aaee0c715e5047de1fa659e8bf
+ checksum: 10/113c9a35526d9a563694e9bda401dbda592f664fa146d365028bef1e3bfdc2a7b60ac9315a727529ef7e8e8d80b8d9e217742ccc2808e0db99c2204a3e33a465
languageName: node
linkType: hard
@@ -8072,23 +6990,23 @@ __metadata:
linkType: hard
"npm-package-arg@npm:^11.0.0":
- version: 11.0.1
- resolution: "npm-package-arg@npm:11.0.1"
+ version: 11.0.3
+ resolution: "npm-package-arg@npm:11.0.3"
dependencies:
hosted-git-info: "npm:^7.0.0"
- proc-log: "npm:^3.0.0"
+ proc-log: "npm:^4.0.0"
semver: "npm:^7.3.5"
validate-npm-package-name: "npm:^5.0.0"
- checksum: 10/a16e632703e106b3e9a6b4902d14a3493c8371745bcf8ba8f4ea9f152e12d5ed927487931e9adf817d05ba97b04941b33fec1d140dbd7da09181b546fde35b3c
+ checksum: 10/bacc863907edf98940286edc2fd80327901c1e8b34426d538cdc708ed66bc6567f06d742d838eaf35db6804347bb4ba56ca9cef032c4b52743b33e7a22a2678e
languageName: node
linkType: hard
"npm-packlist@npm:^8.0.0":
- version: 8.0.0
- resolution: "npm-packlist@npm:8.0.0"
+ version: 8.0.2
+ resolution: "npm-packlist@npm:8.0.2"
dependencies:
- ignore-walk: "npm:^6.0.0"
- checksum: 10/64bd475183761903e766c8c0a2008cd2b7564e841f3681930020c75cb92929b2331f9de7768530eb7c2b5f45fdf9b9febf4cdfb7b8f6279b95a1fb9d93fadc6b
+ ignore-walk: "npm:^6.0.4"
+ checksum: 10/707206e5c09a1b8aa04e590592715ba5ab8732add1bbb5eeaff54b9c6b2740764c9e94c99e390c13245970b51c2cc92b8d44594c2784fcd96f255c7109622322
languageName: node
linkType: hard
@@ -8105,30 +7023,30 @@ __metadata:
linkType: hard
"npm-pick-manifest@npm:^9.0.0":
- version: 9.0.0
- resolution: "npm-pick-manifest@npm:9.0.0"
+ version: 9.1.0
+ resolution: "npm-pick-manifest@npm:9.1.0"
dependencies:
npm-install-checks: "npm:^6.0.0"
npm-normalize-package-bin: "npm:^3.0.0"
npm-package-arg: "npm:^11.0.0"
semver: "npm:^7.3.5"
- checksum: 10/29dca2a838ed35c714df1a76f76616df2df51ce31bc3ca5943a0668b2eca2a5aab448f9f89cadf7a77eb5e3831c554cebaf7802f3e432838acb34c1a74fa2786
+ checksum: 10/e759e4fe4076da9169cf522964a80bbc096d50cd24c8c44b50b44706c4479bd9d9d018fbdb76c6ea0c6037e012e07c6c917a1ecaa7ae1a1169cddfae1c0f24b6
languageName: node
linkType: hard
"npm-registry-fetch@npm:^17.0.0":
- version: 17.0.1
- resolution: "npm-registry-fetch@npm:17.0.1"
+ version: 17.1.0
+ resolution: "npm-registry-fetch@npm:17.1.0"
dependencies:
"@npmcli/redact": "npm:^2.0.0"
+ jsonparse: "npm:^1.3.1"
make-fetch-happen: "npm:^13.0.0"
minipass: "npm:^7.0.2"
minipass-fetch: "npm:^3.0.0"
- minipass-json-stream: "npm:^1.0.1"
minizlib: "npm:^2.1.2"
npm-package-arg: "npm:^11.0.0"
proc-log: "npm:^4.0.0"
- checksum: 10/32220bdb8739325059388f69d10bce00db9edde86843622d5e557751c52ce66c6e788faee34d27dba497166d3777bac68d70fadce820b647fe144b0ec3529397
+ checksum: 10/b9b2a73907fb5b2d8187031e040d7b2918f2b127ac858a84bd244f6435d16dd04df23c9660f32d7e9deb0216b91071623f040fd51b0bd375e8c7fed7d7a82a1c
languageName: node
linkType: hard
@@ -8157,10 +7075,10 @@ __metadata:
languageName: node
linkType: hard
-"object-inspect@npm:^1.9.0":
- version: 1.13.1
- resolution: "object-inspect@npm:1.13.1"
- checksum: 10/92f4989ed83422d56431bc39656d4c780348eb15d397ce352ade6b7fec08f973b53744bd41b94af021901e61acaf78fcc19e65bf464ecc0df958586a672700f0
+"object-inspect@npm:^1.13.1":
+ version: 1.13.2
+ resolution: "object-inspect@npm:1.13.2"
+ checksum: 10/7ef65583b6397570a17c56f0c1841e0920e83900f2c94638927abb7b81ac08a19c7aae135bd9dcca96208cac0c7332b4650fb927f027b0cf92d71df2990d0561
languageName: node
linkType: hard
@@ -8295,6 +7213,13 @@ __metadata:
languageName: node
linkType: hard
+"package-json-from-dist@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "package-json-from-dist@npm:1.0.0"
+ checksum: 10/ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea
+ languageName: node
+ linkType: hard
+
"pacote@npm:18.0.6":
version: 18.0.6
resolution: "pacote@npm:18.0.6"
@@ -8414,13 +7339,13 @@ __metadata:
languageName: node
linkType: hard
-"path-scurry@npm:^1.10.1":
- version: 1.10.1
- resolution: "path-scurry@npm:1.10.1"
+"path-scurry@npm:^1.11.1":
+ version: 1.11.1
+ resolution: "path-scurry@npm:1.11.1"
dependencies:
- lru-cache: "npm:^9.1.1 || ^10.0.0"
+ lru-cache: "npm:^10.2.0"
minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- checksum: 10/eebfb8304fef1d4f7e1486df987e4fd77413de4fce16508dea69fcf8eb318c09a6b15a7a2f4c22877cec1cb7ecbd3071d18ca9de79eeece0df874a00f1f0bdc8
+ checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434
languageName: node
linkType: hard
@@ -8438,10 +7363,10 @@ __metadata:
languageName: node
linkType: hard
-"picocolors@npm:^1.0.0":
- version: 1.0.0
- resolution: "picocolors@npm:1.0.0"
- checksum: 10/a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981
+"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "picocolors@npm:1.0.1"
+ checksum: 10/fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5
languageName: node
linkType: hard
@@ -8466,15 +7391,15 @@ __metadata:
languageName: node
linkType: hard
-"piscina@npm:4.6.0":
- version: 4.6.0
- resolution: "piscina@npm:4.6.0"
+"piscina@npm:4.6.1":
+ version: 4.6.1
+ resolution: "piscina@npm:4.6.1"
dependencies:
nice-napi: "npm:^1.0.2"
dependenciesMeta:
nice-napi:
optional: true
- checksum: 10/2ffc0806f5b40bbe19b8384c5b07a8e2e15cae33eac508585ec127ed96a9459d363010376d5124b9de469c45290c739708a3d7e560a919b7e1b8a7db320bf355
+ checksum: 10/2fa88a92c030667a85c793253b57faf17ef043f0a1fa14011a80c5784bd8773876f0b12da11fd41da8f9974fe3bc84987c2f016c406c58c92fcb6164b63ad971
languageName: node
linkType: hard
@@ -8559,12 +7484,12 @@ __metadata:
linkType: hard
"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4":
- version: 6.0.13
- resolution: "postcss-selector-parser@npm:6.0.13"
+ version: 6.1.1
+ resolution: "postcss-selector-parser@npm:6.1.1"
dependencies:
cssesc: "npm:^3.0.0"
util-deprecate: "npm:^1.0.2"
- checksum: 10/e779aa1f8ca9ee45d562400aac6109a2bccc59559b6e15adec8bc2a71d395ca563a378fd68f6a61963b4ef2ca190e0c0486e6dc6c41d755f3b82dd6e480e6941
+ checksum: 10/ce2af36b56d9333a6873498d3b6ee858466ceb3e9560f998eeaf294e5c11cafffb122d307f3c2904ee8f87d12c71c5ab0b26ca4228b97b6c70b7d1e7cd9b5737
languageName: node
linkType: hard
@@ -8575,7 +7500,7 @@ __metadata:
languageName: node
linkType: hard
-"postcss@npm:8.4.38, postcss@npm:^8.4.38":
+"postcss@npm:8.4.38":
version: 8.4.38
resolution: "postcss@npm:8.4.38"
dependencies:
@@ -8586,36 +7511,18 @@ __metadata:
languageName: node
linkType: hard
-"postcss@npm:^8.2.14, postcss@npm:^8.4.23":
- version: 8.4.31
- resolution: "postcss@npm:8.4.31"
- dependencies:
- nanoid: "npm:^3.3.6"
- picocolors: "npm:^1.0.0"
- source-map-js: "npm:^1.0.2"
- checksum: 10/1a6653e72105907377f9d4f2cd341d8d90e3fde823a5ddea1e2237aaa56933ea07853f0f2758c28892a1d70c53bbaca200eb8b80f8ed55f13093003dbec5afa0
- languageName: node
- linkType: hard
-
-"postcss@npm:^8.4.33":
- version: 8.4.36
- resolution: "postcss@npm:8.4.36"
+"postcss@npm:^8.2.14, postcss@npm:^8.4.23, postcss@npm:^8.4.33, postcss@npm:^8.4.38":
+ version: 8.4.39
+ resolution: "postcss@npm:8.4.39"
dependencies:
nanoid: "npm:^3.3.7"
- picocolors: "npm:^1.0.0"
- source-map-js: "npm:^1.1.0"
- checksum: 10/8b8bb8e6b67ed8bd3c6773b9b7e9f5fabcf3c6bce35f08dcbea099ce971e81ed5e0639dd08edcdd7078aa78523cdd195f985dde2e070013897f8a7aa4e95adf3
- languageName: node
- linkType: hard
-
-"proc-log@npm:^3.0.0":
- version: 3.0.0
- resolution: "proc-log@npm:3.0.0"
- checksum: 10/02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02
+ picocolors: "npm:^1.0.1"
+ source-map-js: "npm:^1.2.0"
+ checksum: 10/ad9c1add892c96433b9a5502878201ede4a20c4ce02d056251f61f8d9a3e5426dab3683fe5a086edfa78a1a19f2b4988c8cea02c5122136d29758cb5a17e2621
languageName: node
linkType: hard
-"proc-log@npm:^4.0.0":
+"proc-log@npm:^4.0.0, proc-log@npm:^4.1.0, proc-log@npm:^4.2.0":
version: 4.2.0
resolution: "proc-log@npm:4.2.0"
checksum: 10/4e1394491b717f6c1ade15c570ecd4c2b681698474d3ae2d303c1e4b6ab9455bd5a81566211e82890d5a5ae9859718cc6954d5150bb18b09b72ecb297beae90a
@@ -8663,6 +7570,13 @@ __metadata:
languageName: node
linkType: hard
+"punycode@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "punycode@npm:1.4.1"
+ checksum: 10/af2700dde1a116791ff8301348ff344c47d6c224e875057237d1b5112035655fb07a6175cfdb8bf0e3a8cdfd2dc82b3a622e0aefd605566c0e949a6d0d1256a4
+ languageName: node
+ linkType: hard
+
"punycode@npm:^2.1.0":
version: 2.3.1
resolution: "punycode@npm:2.3.1"
@@ -8709,18 +7623,6 @@ __metadata:
languageName: node
linkType: hard
-"raw-body@npm:2.5.1":
- version: 2.5.1
- resolution: "raw-body@npm:2.5.1"
- dependencies:
- bytes: "npm:3.1.2"
- http-errors: "npm:2.0.0"
- iconv-lite: "npm:0.4.24"
- unpipe: "npm:1.0.0"
- checksum: 10/280bedc12db3490ecd06f740bdcf66093a07535374b51331242382c0e130bb273ebb611b7bc4cba1b4b4e016cc7b1f4b05a6df885a6af39c2bc3b94c02291c84
- languageName: node
- linkType: hard
-
"raw-body@npm:2.5.2":
version: 2.5.2
resolution: "raw-body@npm:2.5.2"
@@ -8769,9 +7671,9 @@ __metadata:
linkType: hard
"reflect-metadata@npm:^0.2.0":
- version: 0.2.1
- resolution: "reflect-metadata@npm:0.2.1"
- checksum: 10/394b293bd4a538b644ed0e8730c5aeb1e08e78972c915b3d2cf3b302241952cfee8f8bd8a0fdf7d8c7fa78d31d0585489061624692e2577d767abd120cad968c
+ version: 0.2.2
+ resolution: "reflect-metadata@npm:0.2.2"
+ checksum: 10/1c93f9ac790fea1c852fde80c91b2760420069f4862f28e6fae0c00c6937a56508716b0ed2419ab02869dd488d123c4ab92d062ae84e8739ea7417fae10c4745
languageName: node
linkType: hard
@@ -8792,9 +7694,9 @@ __metadata:
linkType: hard
"regenerator-runtime@npm:^0.14.0":
- version: 0.14.0
- resolution: "regenerator-runtime@npm:0.14.0"
- checksum: 10/6c19495baefcf5fbb18a281b56a97f0197b5f219f42e571e80877f095320afac0bdb31dab8f8186858e6126950068c3f17a1226437881e3e70446ea66751897c
+ version: 0.14.1
+ resolution: "regenerator-runtime@npm:0.14.1"
+ checksum: 10/5db3161abb311eef8c45bcf6565f4f378f785900ed3945acf740a9888c792f75b98ecb77f0775f3bf95502ff423529d23e94f41d80c8256e8fa05ed4b07cf471
languageName: node
linkType: hard
@@ -8808,9 +7710,9 @@ __metadata:
linkType: hard
"regex-parser@npm:^2.2.11":
- version: 2.2.11
- resolution: "regex-parser@npm:2.2.11"
- checksum: 10/78200331ec0cc372302d287a4946c38681eb5fe435453fca572cb53cac0ba579e5eb3b9e25eac24c0c80a555fb3ea7a637814a35da1e9bc88e8819110ae5de24
+ version: 2.3.0
+ resolution: "regex-parser@npm:2.3.0"
+ checksum: 10/d82c81bc27db096d93cf3daf1f3bb679784aedac4f4f2841cf976747bbe5bed5bb2e1bf7cda16a95773029282fd910962d47f2c6f229e756e53db4782b79eef7
languageName: node
linkType: hard
@@ -8947,21 +7849,14 @@ __metadata:
languageName: node
linkType: hard
-"rfdc@npm:^1.3.0":
- version: 1.3.0
- resolution: "rfdc@npm:1.3.0"
- checksum: 10/76dedd9700cdf132947fde7ce1a8838c9cbb7f3e8f9188af0aaf97194cce745f42094dd2cf547426934cc83252ee2c0e432b2e0222a4415ab0db32de82665c69
- languageName: node
- linkType: hard
-
-"rfdc@npm:^1.4.1":
+"rfdc@npm:^1.3.0, rfdc@npm:^1.4.1":
version: 1.4.1
resolution: "rfdc@npm:1.4.1"
checksum: 10/2f3d11d3d8929b4bfeefc9acb03aae90f971401de0add5ae6c5e38fec14f0405e6a4aad8fdb76344bfdd20c5193110e3750cbbd28ba86d73729d222b6cf4a729
languageName: node
linkType: hard
-"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2":
+"rimraf@npm:^3.0.2":
version: 3.0.2
resolution: "rimraf@npm:3.0.2"
dependencies:
@@ -8973,33 +7868,99 @@ __metadata:
linkType: hard
"rimraf@npm:^5.0.5":
- version: 5.0.5
- resolution: "rimraf@npm:5.0.5"
+ version: 5.0.9
+ resolution: "rimraf@npm:5.0.9"
dependencies:
glob: "npm:^10.3.7"
bin:
rimraf: dist/esm/bin.mjs
- checksum: 10/a612c7184f96258b7d1328c486b12ca7b60aa30e04229a08bbfa7e964486deb1e9a1b52d917809311bdc39a808a4055c0f950c0280fba194ba0a09e6f0d404f6
+ checksum: 10/443669809ca3d402ca7565fd9f5b994b5669d8f8b33a23e3a00a66c3a2e4c529d8a5a47c9e7c42f2c7a0c70d21ff8bb1c86493b12027139a3de47fc33fe60084
+ languageName: node
+ linkType: hard
+
+"rollup@npm:4.18.0":
+ version: 4.18.0
+ resolution: "rollup@npm:4.18.0"
+ dependencies:
+ "@rollup/rollup-android-arm-eabi": "npm:4.18.0"
+ "@rollup/rollup-android-arm64": "npm:4.18.0"
+ "@rollup/rollup-darwin-arm64": "npm:4.18.0"
+ "@rollup/rollup-darwin-x64": "npm:4.18.0"
+ "@rollup/rollup-linux-arm-gnueabihf": "npm:4.18.0"
+ "@rollup/rollup-linux-arm-musleabihf": "npm:4.18.0"
+ "@rollup/rollup-linux-arm64-gnu": "npm:4.18.0"
+ "@rollup/rollup-linux-arm64-musl": "npm:4.18.0"
+ "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.18.0"
+ "@rollup/rollup-linux-riscv64-gnu": "npm:4.18.0"
+ "@rollup/rollup-linux-s390x-gnu": "npm:4.18.0"
+ "@rollup/rollup-linux-x64-gnu": "npm:4.18.0"
+ "@rollup/rollup-linux-x64-musl": "npm:4.18.0"
+ "@rollup/rollup-win32-arm64-msvc": "npm:4.18.0"
+ "@rollup/rollup-win32-ia32-msvc": "npm:4.18.0"
+ "@rollup/rollup-win32-x64-msvc": "npm:4.18.0"
+ "@types/estree": "npm:1.0.5"
+ fsevents: "npm:~2.3.2"
+ dependenciesMeta:
+ "@rollup/rollup-android-arm-eabi":
+ optional: true
+ "@rollup/rollup-android-arm64":
+ optional: true
+ "@rollup/rollup-darwin-arm64":
+ optional: true
+ "@rollup/rollup-darwin-x64":
+ optional: true
+ "@rollup/rollup-linux-arm-gnueabihf":
+ optional: true
+ "@rollup/rollup-linux-arm-musleabihf":
+ optional: true
+ "@rollup/rollup-linux-arm64-gnu":
+ optional: true
+ "@rollup/rollup-linux-arm64-musl":
+ optional: true
+ "@rollup/rollup-linux-powerpc64le-gnu":
+ optional: true
+ "@rollup/rollup-linux-riscv64-gnu":
+ optional: true
+ "@rollup/rollup-linux-s390x-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-musl":
+ optional: true
+ "@rollup/rollup-win32-arm64-msvc":
+ optional: true
+ "@rollup/rollup-win32-ia32-msvc":
+ optional: true
+ "@rollup/rollup-win32-x64-msvc":
+ optional: true
+ fsevents:
+ optional: true
+ bin:
+ rollup: dist/bin/rollup
+ checksum: 10/2320fe653cfd5e3d72ecab2f1d52d47e7b624a6ab02919f53c1ad1c5efa3b66e277c3ecfef03bb97651e79cef04bfefd34ad1f6e648f496572bf76c834f19599
languageName: node
linkType: hard
"rollup@npm:^4.13.0":
- version: 4.13.0
- resolution: "rollup@npm:4.13.0"
- dependencies:
- "@rollup/rollup-android-arm-eabi": "npm:4.13.0"
- "@rollup/rollup-android-arm64": "npm:4.13.0"
- "@rollup/rollup-darwin-arm64": "npm:4.13.0"
- "@rollup/rollup-darwin-x64": "npm:4.13.0"
- "@rollup/rollup-linux-arm-gnueabihf": "npm:4.13.0"
- "@rollup/rollup-linux-arm64-gnu": "npm:4.13.0"
- "@rollup/rollup-linux-arm64-musl": "npm:4.13.0"
- "@rollup/rollup-linux-riscv64-gnu": "npm:4.13.0"
- "@rollup/rollup-linux-x64-gnu": "npm:4.13.0"
- "@rollup/rollup-linux-x64-musl": "npm:4.13.0"
- "@rollup/rollup-win32-arm64-msvc": "npm:4.13.0"
- "@rollup/rollup-win32-ia32-msvc": "npm:4.13.0"
- "@rollup/rollup-win32-x64-msvc": "npm:4.13.0"
+ version: 4.19.0
+ resolution: "rollup@npm:4.19.0"
+ dependencies:
+ "@rollup/rollup-android-arm-eabi": "npm:4.19.0"
+ "@rollup/rollup-android-arm64": "npm:4.19.0"
+ "@rollup/rollup-darwin-arm64": "npm:4.19.0"
+ "@rollup/rollup-darwin-x64": "npm:4.19.0"
+ "@rollup/rollup-linux-arm-gnueabihf": "npm:4.19.0"
+ "@rollup/rollup-linux-arm-musleabihf": "npm:4.19.0"
+ "@rollup/rollup-linux-arm64-gnu": "npm:4.19.0"
+ "@rollup/rollup-linux-arm64-musl": "npm:4.19.0"
+ "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.19.0"
+ "@rollup/rollup-linux-riscv64-gnu": "npm:4.19.0"
+ "@rollup/rollup-linux-s390x-gnu": "npm:4.19.0"
+ "@rollup/rollup-linux-x64-gnu": "npm:4.19.0"
+ "@rollup/rollup-linux-x64-musl": "npm:4.19.0"
+ "@rollup/rollup-win32-arm64-msvc": "npm:4.19.0"
+ "@rollup/rollup-win32-ia32-msvc": "npm:4.19.0"
+ "@rollup/rollup-win32-x64-msvc": "npm:4.19.0"
"@types/estree": "npm:1.0.5"
fsevents: "npm:~2.3.2"
dependenciesMeta:
@@ -9013,12 +7974,18 @@ __metadata:
optional: true
"@rollup/rollup-linux-arm-gnueabihf":
optional: true
+ "@rollup/rollup-linux-arm-musleabihf":
+ optional: true
"@rollup/rollup-linux-arm64-gnu":
optional: true
"@rollup/rollup-linux-arm64-musl":
optional: true
+ "@rollup/rollup-linux-powerpc64le-gnu":
+ optional: true
"@rollup/rollup-linux-riscv64-gnu":
optional: true
+ "@rollup/rollup-linux-s390x-gnu":
+ optional: true
"@rollup/rollup-linux-x64-gnu":
optional: true
"@rollup/rollup-linux-x64-musl":
@@ -9033,7 +8000,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
- checksum: 10/3ebced8ad49e8b5617cb7013cb106dd8ac99ae31a71f9689dc689b8fdaf0eb109f3d861330ef659e5f28a2c38e040282aea0e1df150b165f53f649d46275df84
+ checksum: 10/a5f56e60d160e727f372fb0b0adbab03c1e5b858df7af62e626459687e6510d5b9685e4badef50bb6ffd916eaf53c1684a8e12ae959dacb8e6930c77a00a0f19
languageName: node
linkType: hard
@@ -9083,13 +8050,6 @@ __metadata:
languageName: node
linkType: hard
-"safevalues@npm:^0.3.4":
- version: 0.3.4
- resolution: "safevalues@npm:0.3.4"
- checksum: 10/27b655a5ecc5f2d2922228e5eb70ce4af3b8d1a7a84f856f0e2612424c3c20233dcb09b7971c1af4c06f816c24d12a1db061e1b9bf2805a524c5dc82c0233f8d
- languageName: node
- linkType: hard
-
"sass-loader@npm:14.2.1":
version: 14.2.1
resolution: "sass-loader@npm:14.2.1"
@@ -9130,9 +8090,9 @@ __metadata:
linkType: hard
"sax@npm:^1.2.4":
- version: 1.3.0
- resolution: "sax@npm:1.3.0"
- checksum: 10/bb571b31d30ecb0353c2ff5f87b117a03e5fb9eb4c1519141854c1a8fbee0a77ddbe8045f413259e711833aa03da210887df8527d19cdc55f299822dbf4b34de
+ version: 1.4.1
+ resolution: "sax@npm:1.4.1"
+ checksum: 10/b1c784b545019187b53a0c28edb4f6314951c971e2963a69739c6ce222bfbc767e54d320e689352daba79b7d5e06d22b5d7113b99336219d6e93718e2f99d335
languageName: node
linkType: hard
@@ -9203,25 +8163,12 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.5.3":
- version: 7.5.4
- resolution: "semver@npm:7.5.4"
- dependencies:
- lru-cache: "npm:^6.0.0"
- bin:
- semver: bin/semver.js
- checksum: 10/985dec0d372370229a262c737063860fabd4a1c730662c1ea3200a2f649117761a42184c96df62a0e885e76fbd5dace41087d6c1ac0351b13c0df5d6bcb1b5ac
- languageName: node
- linkType: hard
-
-"semver@npm:^7.5.4":
- version: 7.6.0
- resolution: "semver@npm:7.6.0"
- dependencies:
- lru-cache: "npm:^6.0.0"
+"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4":
+ version: 7.6.3
+ resolution: "semver@npm:7.6.3"
bin:
semver: bin/semver.js
- checksum: 10/1b41018df2d8aca5a1db4729985e8e20428c650daea60fcd16e926e9383217d00f574fab92d79612771884a98d2ee2a1973f49d630829a8d54d6570defe62535
+ checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10
languageName: node
linkType: hard
@@ -9246,16 +8193,7 @@ __metadata:
languageName: node
linkType: hard
-"serialize-javascript@npm:^6.0.1":
- version: 6.0.1
- resolution: "serialize-javascript@npm:6.0.1"
- dependencies:
- randombytes: "npm:^2.1.0"
- checksum: 10/f756b1ff34b655b2183c64dd6683d28d4d9b9a80284b264cac9fd421c73890491eafd6c5c2bbe93f1f21bf78b572037c5a18d24b044c317ee1c9dc44d22db94c
- languageName: node
- linkType: hard
-
-"serialize-javascript@npm:^6.0.2":
+"serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2":
version: 6.0.2
resolution: "serialize-javascript@npm:6.0.2"
dependencies:
@@ -9291,15 +8229,17 @@ __metadata:
languageName: node
linkType: hard
-"set-function-length@npm:^1.1.1":
- version: 1.1.1
- resolution: "set-function-length@npm:1.1.1"
+"set-function-length@npm:^1.2.1":
+ version: 1.2.2
+ resolution: "set-function-length@npm:1.2.2"
dependencies:
- define-data-property: "npm:^1.1.1"
- get-intrinsic: "npm:^1.2.1"
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
gopd: "npm:^1.0.1"
- has-property-descriptors: "npm:^1.0.0"
- checksum: 10/745ed1d7dc69a6185e0820082fe73838ab3dfd01e75cce83a41e4c1d68bbf34bc5fb38f32ded542ae0b557536b5d2781594499b5dcd19e7db138e06292a76c7b
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d
languageName: node
linkType: hard
@@ -9350,13 +8290,14 @@ __metadata:
linkType: hard
"side-channel@npm:^1.0.4":
- version: 1.0.4
- resolution: "side-channel@npm:1.0.4"
+ version: 1.0.6
+ resolution: "side-channel@npm:1.0.6"
dependencies:
- call-bind: "npm:^1.0.0"
- get-intrinsic: "npm:^1.0.2"
- object-inspect: "npm:^1.9.0"
- checksum: 10/c4998d9fc530b0e75a7fd791ad868fdc42846f072734f9080ff55cc8dc7d3899abcda24fd896aa6648c3ab7021b4bb478073eb4f44dfd55bce9714bc1a7c5d45
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ object-inspect: "npm:^1.13.1"
+ checksum: 10/eb10944f38cebad8ad643dd02657592fa41273ce15b8bfa928d3291aff2d30c20ff777cfe908f76ccc4551ace2d1245822fdc576657cce40e9066c638ca8fa4d
languageName: node
linkType: hard
@@ -9375,16 +8316,16 @@ __metadata:
linkType: hard
"sigstore@npm:^2.2.0":
- version: 2.2.2
- resolution: "sigstore@npm:2.2.2"
+ version: 2.3.1
+ resolution: "sigstore@npm:2.3.1"
dependencies:
- "@sigstore/bundle": "npm:^2.2.0"
+ "@sigstore/bundle": "npm:^2.3.2"
"@sigstore/core": "npm:^1.0.0"
- "@sigstore/protobuf-specs": "npm:^0.3.0"
- "@sigstore/sign": "npm:^2.2.3"
- "@sigstore/tuf": "npm:^2.3.1"
- "@sigstore/verify": "npm:^1.1.0"
- checksum: 10/e0e4fcc889b7351908aceaa19508cc49ac6d7c4ff014c113d41bf53566db3e878934a00487e9a6deb2d71a375b530af232e7be9dab11c79b89eaa61308fed92f
+ "@sigstore/protobuf-specs": "npm:^0.3.2"
+ "@sigstore/sign": "npm:^2.3.2"
+ "@sigstore/tuf": "npm:^2.3.4"
+ "@sigstore/verify": "npm:^1.2.1"
+ checksum: 10/4e0a82338d12370264dced2395cda18aaaad45fec630365ec88eaa1a4ba40f5eb08cd3b0c8688489d52e93f643b6598d682961f67858636f55300c590b1ddf62
languageName: node
linkType: hard
@@ -9423,11 +8364,12 @@ __metadata:
linkType: hard
"socket.io-adapter@npm:~2.5.2":
- version: 2.5.2
- resolution: "socket.io-adapter@npm:2.5.2"
+ version: 2.5.5
+ resolution: "socket.io-adapter@npm:2.5.5"
dependencies:
- ws: "npm:~8.11.0"
- checksum: 10/08b052d6b487399cdf753ef5cf6941c6da2b8927994580b65dac0918a3a3ab6a6b7906871adc09d53837beb13244e8897bfa670f558c7231ac87ebe995dbc55e
+ debug: "npm:~4.3.4"
+ ws: "npm:~8.17.1"
+ checksum: 10/e364733a4c34ff1d4a02219e409bd48074fd614b7f5b0568ccfa30dd553252a5b9a41056931306a276891d13ea76a19e2c6f2128a4675c37323f642896874d80
languageName: node
linkType: hard
@@ -9442,8 +8384,8 @@ __metadata:
linkType: hard
"socket.io@npm:^4.4.1":
- version: 4.7.2
- resolution: "socket.io@npm:4.7.2"
+ version: 4.7.5
+ resolution: "socket.io@npm:4.7.5"
dependencies:
accepts: "npm:~1.3.4"
base64id: "npm:~2.0.0"
@@ -9452,7 +8394,7 @@ __metadata:
engine.io: "npm:~6.5.2"
socket.io-adapter: "npm:~2.5.2"
socket.io-parser: "npm:~4.2.4"
- checksum: 10/03f2d196975f531fb068e31fb001ff4662e8acd1a6a4ddd8bb0359411aea3309d9764c0d2759dabd8fc96cf9840b2c4cdc70a473fa0e8f2b762ab619550de8e1
+ checksum: 10/911528f5bfdf83dbe2b154866884b736a7498f112f294a6f8420418fa11baadf08578869dab3e220c943094ff0d17b7f4587de3b1ad39679d9c12ed4cb226900
languageName: node
linkType: hard
@@ -9467,42 +8409,28 @@ __metadata:
languageName: node
linkType: hard
-"socks-proxy-agent@npm:^8.0.1":
- version: 8.0.2
- resolution: "socks-proxy-agent@npm:8.0.2"
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.4
+ resolution: "socks-proxy-agent@npm:8.0.4"
dependencies:
- agent-base: "npm:^7.0.2"
+ agent-base: "npm:^7.1.1"
debug: "npm:^4.3.4"
- socks: "npm:^2.7.1"
- checksum: 10/ea727734bd5b2567597aa0eda14149b3b9674bb44df5937bbb9815280c1586994de734d965e61f1dd45661183d7b41f115fb9e432d631287c9063864cfcc2ecc
+ socks: "npm:^2.8.3"
+ checksum: 10/c8e7c2b398338b49a0a0f4d2bae5c0602aeeca6b478b99415927b6c5db349ca258448f2c87c6958ebf83eea17d42cbc5d1af0bfecb276cac10b9658b0f07f7d7
languageName: node
linkType: hard
-"socks@npm:^2.7.1":
- version: 2.7.1
- resolution: "socks@npm:2.7.1"
+"socks@npm:^2.8.3":
+ version: 2.8.3
+ resolution: "socks@npm:2.8.3"
dependencies:
- ip: "npm:^2.0.0"
+ ip-address: "npm:^9.0.5"
smart-buffer: "npm:^4.2.0"
- checksum: 10/5074f7d6a13b3155fa655191df1c7e7a48ce3234b8ccf99afa2ccb56591c195e75e8bb78486f8e9ea8168e95a29573cbaad55b2b5e195160ae4d2ea6811ba833
- languageName: node
- linkType: hard
-
-"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2":
- version: 1.0.2
- resolution: "source-map-js@npm:1.0.2"
- checksum: 10/38e2d2dd18d2e331522001fc51b54127ef4a5d473f53b1349c5cca2123562400e0986648b52e9407e348eaaed53bce49248b6e2641e6d793ca57cb2c360d6d51
- languageName: node
- linkType: hard
-
-"source-map-js@npm:^1.1.0":
- version: 1.1.0
- resolution: "source-map-js@npm:1.1.0"
- checksum: 10/6319690f50f8da9445433d7edfb8cc4ffd42b9deb69739c73bb65992c61dfdf6f5979f49d4a25e85e51ebf235fde65e061291e8ee2a68da2b87a38c62cb4aef4
+ checksum: 10/ffcb622c22481dfcd7589aae71fbfd71ca34334064d181df64bf8b7feaeee19706aba4cffd1de35cc7bbaeeaa0af96be2d7f40fcbc7bc0ab69533a7ae9ffc4fb
languageName: node
linkType: hard
-"source-map-js@npm:^1.2.0":
+"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0":
version: 1.2.0
resolution: "source-map-js@npm:1.2.0"
checksum: 10/74f331cfd2d121c50790c8dd6d3c9de6be21926de80583b23b37029b0f37aefc3e019fa91f9a10a5e120c08135297e1ecf312d561459c45908cb1e0e365f49e5
@@ -9556,9 +8484,9 @@ __metadata:
linkType: hard
"spdx-exceptions@npm:^2.1.0":
- version: 2.3.0
- resolution: "spdx-exceptions@npm:2.3.0"
- checksum: 10/cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0
+ version: 2.5.0
+ resolution: "spdx-exceptions@npm:2.5.0"
+ checksum: 10/bb127d6e2532de65b912f7c99fc66097cdea7d64c10d3ec9b5e96524dbbd7d20e01cba818a6ddb2ae75e62bb0c63d5e277a7e555a85cbc8ab40044984fa4ae15
languageName: node
linkType: hard
@@ -9573,9 +8501,9 @@ __metadata:
linkType: hard
"spdx-license-ids@npm:^3.0.0":
- version: 3.0.16
- resolution: "spdx-license-ids@npm:3.0.16"
- checksum: 10/6425c54132ca38d717315cdbd2b620235937d1859972c5978bbc95b4c14400438ffe113709d8aabb0d5498cc27a5b89876fca0fe21b4e26f5ce122bc86d0d88e
+ version: 3.0.18
+ resolution: "spdx-license-ids@npm:3.0.18"
+ checksum: 10/45fdbb50c4bbe364720ef0acd19f4fc1914d73ba1e2b1ce9db21ee12d7f9e8bf14336289f6ad3d5acac3dc5b91aafe61e9c652d5806b31cbb8518a14979a16ff
languageName: node
linkType: hard
@@ -9606,12 +8534,19 @@ __metadata:
languageName: node
linkType: hard
+"sprintf-js@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "sprintf-js@npm:1.1.3"
+ checksum: 10/e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb
+ languageName: node
+ linkType: hard
+
"ssri@npm:^10.0.0":
- version: 10.0.5
- resolution: "ssri@npm:10.0.5"
+ version: 10.0.6
+ resolution: "ssri@npm:10.0.6"
dependencies:
minipass: "npm:^7.0.3"
- checksum: 10/453f9a1c241c13f5dfceca2ab7b4687bcff354c3ccbc932f35452687b9ef0ccf8983fd13b8a3baa5844c1a4882d6e3ddff48b0e7fd21d743809ef33b80616d79
+ checksum: 10/f92c1b3cc9bfd0a925417412d07d999935917bc87049f43ebec41074661d64cf720315661844106a77da9f8204b6d55ae29f9514e673083cae39464343af2a8b
languageName: node
linkType: hard
@@ -9663,13 +8598,13 @@ __metadata:
linkType: hard
"string-width@npm:^7.0.0":
- version: 7.1.0
- resolution: "string-width@npm:7.1.0"
+ version: 7.2.0
+ resolution: "string-width@npm:7.2.0"
dependencies:
emoji-regex: "npm:^10.3.0"
get-east-asian-width: "npm:^1.0.0"
strip-ansi: "npm:^7.1.0"
- checksum: 10/a183573fe7209e0d294f661846d33f8caf72aa86d983e5b48a0ed45ab15bcccb02c6f0344b58b571988871105457137b8207855ea536827dbc4a376a0f31bf8f
+ checksum: 10/42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295
languageName: node
linkType: hard
@@ -9764,9 +8699,9 @@ __metadata:
languageName: node
linkType: hard
-"tar@npm:^6.1.11, tar@npm:^6.1.2":
- version: 6.2.0
- resolution: "tar@npm:6.2.0"
+"tar@npm:^6.1.11, tar@npm:^6.2.1":
+ version: 6.2.1
+ resolution: "tar@npm:6.2.1"
dependencies:
chownr: "npm:^2.0.0"
fs-minipass: "npm:^2.0.0"
@@ -9774,7 +8709,7 @@ __metadata:
minizlib: "npm:^2.1.1"
mkdirp: "npm:^1.0.3"
yallist: "npm:^4.0.0"
- checksum: 10/2042bbb14830b5cd0d584007db0eb0a7e933e66d1397e72a4293768d2332449bc3e312c266a0887ec20156dea388d8965e53b4fc5097f42d78593549016da089
+ checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0
languageName: node
linkType: hard
@@ -9800,9 +8735,9 @@ __metadata:
languageName: node
linkType: hard
-"terser@npm:5.31.1":
- version: 5.31.1
- resolution: "terser@npm:5.31.1"
+"terser@npm:5.29.2":
+ version: 5.29.2
+ resolution: "terser@npm:5.29.2"
dependencies:
"@jridgewell/source-map": "npm:^0.3.3"
acorn: "npm:^8.8.2"
@@ -9810,13 +8745,13 @@ __metadata:
source-map-support: "npm:~0.5.20"
bin:
terser: bin/terser
- checksum: 10/4b22b62e762aebcd538dc3f5d5323fb3b51786e9294f7069d591cb61401a1161778039fdf283bbaf06244f500ee8563e0c49fc3c64176310556f34cc6637d463
+ checksum: 10/062df6a8f99ea2635d1b3ce41cfd4180dea6e1c83db9b2cf4b525170b2446d10e069d2877d8dcb59fbf6045870efa17b56462b67045ef2d2b420870f9d144690
languageName: node
linkType: hard
"terser@npm:^5.26.0":
- version: 5.29.2
- resolution: "terser@npm:5.29.2"
+ version: 5.31.3
+ resolution: "terser@npm:5.31.3"
dependencies:
"@jridgewell/source-map": "npm:^0.3.3"
acorn: "npm:^8.8.2"
@@ -9824,7 +8759,16 @@ __metadata:
source-map-support: "npm:~0.5.20"
bin:
terser: bin/terser
- checksum: 10/062df6a8f99ea2635d1b3ce41cfd4180dea6e1c83db9b2cf4b525170b2446d10e069d2877d8dcb59fbf6045870efa17b56462b67045ef2d2b420870f9d144690
+ checksum: 10/7f66d93a1157f66f5eda16515ed45e6eb485d3c4acbc46e78a5e62922f5b4643d9212abc586f791021fafc71563a93475a986c52f4270a5e0b3ee50a70507d9e
+ languageName: node
+ linkType: hard
+
+"thingies@npm:^1.20.0":
+ version: 1.21.0
+ resolution: "thingies@npm:1.21.0"
+ peerDependencies:
+ tslib: ^2
+ checksum: 10/5c3954b67391d1432c252cb7089f29480e2164f06987a63d83c9747aa6999bfc313d6edfce71ed967316a3378dfcaf38f35ea77aaa5d423edaf776b8ff854f83
languageName: node
linkType: hard
@@ -9845,11 +8789,9 @@ __metadata:
linkType: hard
"tmp@npm:^0.2.1":
- version: 0.2.1
- resolution: "tmp@npm:0.2.1"
- dependencies:
- rimraf: "npm:^3.0.0"
- checksum: 10/445148d72df3ce99356bc89a7857a0c5c3b32958697a14e50952c6f7cf0a8016e746ababe9a74c1aa52f04c526661992f14659eba34d3c6701d49ba2f3cf781b
+ version: 0.2.3
+ resolution: "tmp@npm:0.2.3"
+ checksum: 10/7b13696787f159c9754793a83aa79a24f1522d47b87462ddb57c18ee93ff26c74cbb2b8d9138f571d2e0e765c728fb2739863a672b280528512c6d83d511c6fa
languageName: node
linkType: hard
@@ -9876,6 +8818,15 @@ __metadata:
languageName: node
linkType: hard
+"tree-dump@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "tree-dump@npm:1.0.2"
+ peerDependencies:
+ tslib: 2
+ checksum: 10/ddcde4da9ded8edc2fa77fc9153ef8d7fba9cd5f813db27c30c7039191b50e1512b7106f0f4fe7ccaa3aa69f85b4671eda7ed0b9f9d34781eb26ebe4593ad4eb
+ languageName: node
+ linkType: hard
+
"tree-kill@npm:1.2.2":
version: 1.2.2
resolution: "tree-kill@npm:1.2.2"
@@ -9885,28 +8836,21 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:2.6.3":
+"tslib@npm:2.6.3, tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.3.0":
version: 2.6.3
resolution: "tslib@npm:2.6.3"
checksum: 10/52109bb681f8133a2e58142f11a50e05476de4f075ca906d13b596ae5f7f12d30c482feb0bff167ae01cfc84c5803e575a307d47938999246f5a49d174fc558c
languageName: node
linkType: hard
-"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.3.0":
- version: 2.6.2
- resolution: "tslib@npm:2.6.2"
- checksum: 10/bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca
- languageName: node
- linkType: hard
-
-"tuf-js@npm:^2.2.0":
- version: 2.2.0
- resolution: "tuf-js@npm:2.2.0"
+"tuf-js@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "tuf-js@npm:2.2.1"
dependencies:
- "@tufjs/models": "npm:2.0.0"
+ "@tufjs/models": "npm:2.0.1"
debug: "npm:^4.3.4"
- make-fetch-happen: "npm:^13.0.0"
- checksum: 10/a513ce533c06390b7d8767fe68250adac2535bc63c460e9ab8cbae8253da5ccd6fd204448a460536a6e77f7cf5fcf5a3b104971610f9f319a9b8f95b3b574b95
+ make-fetch-happen: "npm:^13.0.1"
+ checksum: 10/4c057f4f0cfb183d8634c026a592f4fb29fd4e3d88260e32949642deedf87a1ae407645bae4cca58299458679a1cb7721245cde1885d466c2dbc1fbac0bc008a
languageName: node
linkType: hard
@@ -9935,29 +8879,29 @@ __metadata:
linkType: hard
"typescript@npm:~5.5.2":
- version: 5.5.2
- resolution: "typescript@npm:5.5.2"
+ version: 5.5.4
+ resolution: "typescript@npm:5.5.4"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 10/9118b20f248e76b0dbff8737fef65dfa89d02668d4e633d2c5ceac99033a0ca5e8a1c1a53bc94da68e8f67677a88f318663dde859c9e9a09c1e116415daec2ba
+ checksum: 10/1689ccafef894825481fc3d856b4834ba3cc185a9c2878f3c76a9a1ef81af04194849840f3c69e7961e2312771471bb3b460ca92561e1d87599b26c37d0ffb6f
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A~5.5.2#optional!builtin":
- version: 5.5.2
- resolution: "typescript@patch:typescript@npm%3A5.5.2#optional!builtin::version=5.5.2&hash=5adc0c"
+ version: 5.5.4
+ resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 10/28b3de2ddaf63a7620e7ddbe5d377af71ce93ecc558c41bf0e3d88661d8e6e7aa6c7739164fef98055f69819e41faca49252938ef3633a3dff2734cca6a9042e
+ checksum: 10/746fdd0865c5ce4f15e494c57ede03a9e12ede59cfdb40da3a281807853fe63b00ef1c912d7222143499aa82f18b8b472baa1830df8804746d09b55f6cf5b1cc
languageName: node
linkType: hard
"ua-parser-js@npm:^0.7.30":
- version: 0.7.37
- resolution: "ua-parser-js@npm:0.7.37"
- checksum: 10/a50e8f7ee5618822670443b05e33ab184e3186d3f88c4761cdf65cf264219c626b74ee6cf96146091d9738c61412afe2788eeda75ef98f71a69a81495abe20ff
+ version: 0.7.38
+ resolution: "ua-parser-js@npm:0.7.38"
+ checksum: 10/011609d0176952abc60b7a20e0af266a899b34f4c49a6f5097d6af763da27eacaa3752b710ae4d930d7b99508bb8c0b34ebe8042e1d9fdc4056d051b209b0842
languageName: node
linkType: hard
@@ -10045,17 +8989,17 @@ __metadata:
languageName: node
linkType: hard
-"update-browserslist-db@npm:^1.0.13":
- version: 1.0.13
- resolution: "update-browserslist-db@npm:1.0.13"
+"update-browserslist-db@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "update-browserslist-db@npm:1.1.0"
dependencies:
- escalade: "npm:^3.1.1"
- picocolors: "npm:^1.0.0"
+ escalade: "npm:^3.1.2"
+ picocolors: "npm:^1.0.1"
peerDependencies:
browserslist: ">= 4.21.0"
bin:
update-browserslist-db: cli.js
- checksum: 10/9074b4ef34d2ed931f27d390aafdd391ee7c45ad83c508e8fed6aaae1eb68f81999a768ed8525c6f88d4001a4fbf1b8c0268f099d0e8e72088ec5945ac796acf
+ checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c
languageName: node
linkType: hard
@@ -10102,11 +9046,9 @@ __metadata:
linkType: hard
"validate-npm-package-name@npm:^5.0.0":
- version: 5.0.0
- resolution: "validate-npm-package-name@npm:5.0.0"
- dependencies:
- builtins: "npm:^5.0.0"
- checksum: 10/5342a994986199b3c28e53a8452a14b2bb5085727691ea7aa0d284a6606b127c371e0925ae99b3f1ef7cc7d2c9de75f52eb61a3d1cc45e39bca1e3a9444cbb4e
+ version: 5.0.1
+ resolution: "validate-npm-package-name@npm:5.0.1"
+ checksum: 10/0d583a1af23aeffea7748742cf22b6802458736fb8b60323ba5949763824d46f796474b0e1b9206beb716f9d75269e19dbd7795d6b038b29d561be95dd827381
languageName: node
linkType: hard
@@ -10117,9 +9059,9 @@ __metadata:
languageName: node
linkType: hard
-"vite@npm:5.3.1":
- version: 5.3.1
- resolution: "vite@npm:5.3.1"
+"vite@npm:5.3.2":
+ version: 5.3.2
+ resolution: "vite@npm:5.3.2"
dependencies:
esbuild: "npm:^0.21.3"
fsevents: "npm:~2.3.3"
@@ -10153,7 +9095,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
- checksum: 10/180ca1795389f1ebc0b09f2ce61846943d34df597c4719e68d1d5ecba3e6cbd5b3313a4a321119b18290de3ef543df433659ba8b678de84df152e0386342697f
+ checksum: 10/77b284938921da6c2c4055a5edd916ab221a973aa1403dba2aef303db1bd54ac7325db13f3fad13d77a7ac55cac7ffef49dffaa69bcadcc3caf2cae32ca03127
languageName: node
linkType: hard
@@ -10219,8 +9161,8 @@ __metadata:
linkType: hard
"webpack-dev-middleware@npm:^7.1.0":
- version: 7.1.1
- resolution: "webpack-dev-middleware@npm:7.1.1"
+ version: 7.3.0
+ resolution: "webpack-dev-middleware@npm:7.3.0"
dependencies:
colorette: "npm:^2.0.10"
memfs: "npm:^4.6.0"
@@ -10233,7 +9175,7 @@ __metadata:
peerDependenciesMeta:
webpack:
optional: true
- checksum: 10/c6076d4c89431ab50c16170bc34be5aaf35a7e28e9f97a621a2ed62c453e89bfacbbebfcc135c669c73a7044b386875f5c0c8e9121159e74d8745cb3c3664e20
+ checksum: 10/813327ff3814569d43a6608c64503dc9c2b9f993f1ef57cb304afc9e2473c35115306e1e6b9d4f85798531441d11dea3695965bbb5d2782bfcf4a33c3212855f
languageName: node
linkType: hard
@@ -10464,8 +9406,8 @@ __metadata:
linkType: hard
"ws@npm:^8.16.0":
- version: 8.16.0
- resolution: "ws@npm:8.16.0"
+ version: 8.18.0
+ resolution: "ws@npm:8.18.0"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
@@ -10474,22 +9416,22 @@ __metadata:
optional: true
utf-8-validate:
optional: true
- checksum: 10/7c511c59e979bd37b63c3aea4a8e4d4163204f00bd5633c053b05ed67835481995f61a523b0ad2b603566f9a89b34cb4965cb9fab9649fbfebd8f740cea57f17
+ checksum: 10/70dfe53f23ff4368d46e4c0b1d4ca734db2c4149c6f68bc62cb16fc21f753c47b35fcc6e582f3bdfba0eaeb1c488cddab3c2255755a5c3eecb251431e42b3ff6
languageName: node
linkType: hard
-"ws@npm:~8.11.0":
- version: 8.11.0
- resolution: "ws@npm:8.11.0"
+"ws@npm:~8.17.1":
+ version: 8.17.1
+ resolution: "ws@npm:8.17.1"
peerDependencies:
bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
+ utf-8-validate: ">=5.0.2"
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
- checksum: 10/f759ea19e42f6d94727b3d8590693f2d92521a78ec2de5c6064c3356f50d4815d427b7ddb10bf39596cc67d3b18232a1b2dfbc3b6361d4772bdfec69d4c130f4
+ checksum: 10/4264ae92c0b3e59c7e309001e93079b26937aab181835fb7af79f906b22cd33b6196d96556dafb4e985742dd401e99139572242e9847661fdbc96556b9e6902d
languageName: node
linkType: hard
@@ -10593,17 +9535,22 @@ __metadata:
linkType: soft
"yocto-queue@npm:^1.0.0":
- version: 1.0.0
- resolution: "yocto-queue@npm:1.0.0"
- checksum: 10/2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801
+ version: 1.1.1
+ resolution: "yocto-queue@npm:1.1.1"
+ checksum: 10/f2e05b767ed3141e6372a80af9caa4715d60969227f38b1a4370d60bffe153c9c5b33a862905609afc9b375ec57cd40999810d20e5e10229a204e8bde7ef255c
+ languageName: node
+ linkType: hard
+
+"yoctocolors-cjs@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "yoctocolors-cjs@npm:2.1.2"
+ checksum: 10/d731e3ba776a0ee19021d909787942933a6c2eafb2bbe85541f0c59aa5c7d475ce86fcb860d5803105e32244c3dd5ba875b87c4c6bf2d6f297da416aa54e556f
languageName: node
linkType: hard
"zone.js@npm:~0.14.0":
- version: 0.14.2
- resolution: "zone.js@npm:0.14.2"
- dependencies:
- tslib: "npm:^2.3.0"
- checksum: 10/86e6df823da366d7a02dfcec10f2c028e79faf3490e270308d4a5cacd4415b6a656ef5c84628b7a568fbb46536c549dfb68354d3be6c4577b2ef2f8bb79f744e
+ version: 0.14.8
+ resolution: "zone.js@npm:0.14.8"
+ checksum: 10/0aa7f25c4845dc27f944f01cc1b976b36321b6ccd887c58f5ce6d8485109fc4707fbe3e3c6f300995f8684ca8bd1728f15ec847dd9ca0c33af01d492a4e2d513
languageName: node
linkType: hard
diff --git a/package.json b/package.json
index 4d0955ceaaad..5f33984743d2 100644
--- a/package.json
+++ b/package.json
@@ -54,14 +54,14 @@
"ci-notify-slack-failure": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only scripts/circleci/notify-slack-job-failure.mts",
"prepare": "husky"
},
- "version": "18.1.0-next.4",
+ "version": "18.2.9",
"dependencies": {
- "@angular/animations": "^18.1.0-next.3",
- "@angular/common": "^18.1.0-next.3",
- "@angular/compiler": "^18.1.0-next.3",
- "@angular/core": "^18.1.0-next.3",
- "@angular/forms": "^18.1.0-next.3",
- "@angular/platform-browser": "^18.1.0-next.3",
+ "@angular/animations": "^18.2.0-next.2",
+ "@angular/common": "^18.2.0-next.2",
+ "@angular/compiler": "^18.2.0-next.2",
+ "@angular/core": "^18.2.0-next.2",
+ "@angular/forms": "^18.2.0-next.2",
+ "@angular/platform-browser": "^18.2.0-next.2",
"@types/google.maps": "^3.54.10",
"@types/youtube": "^0.0.50",
"rxjs": "^6.6.7",
@@ -70,19 +70,19 @@
"zone.js": "~0.14.0"
},
"devDependencies": {
- "@angular-devkit/build-angular": "^18.1.0-next.3",
- "@angular-devkit/core": "^18.1.0-next.3",
- "@angular-devkit/schematics": "^18.1.0-next.3",
+ "@angular-devkit/build-angular": "^18.2.0-next.2",
+ "@angular-devkit/core": "^18.2.0-next.2",
+ "@angular-devkit/schematics": "^18.2.0-next.2",
"@angular/bazel": "https://github.com/angular/bazel-builds.git#bac9c1abe1e6ac1801fbbccb53353a1ed7126469",
"@angular/build-tooling": "https://github.com/angular/dev-infra-private-build-tooling-builds.git#74e0e7b090c6e16056290836b2d936ca7820b86f",
- "@angular/build": "^18.1.0-next.3",
- "@angular/cli": "^18.1.0-next.3",
- "@angular/compiler-cli": "^18.1.0-next.3",
- "@angular/localize": "^18.1.0-next.3",
+ "@angular/build": "^18.2.0-next.2",
+ "@angular/cli": "^18.2.0-next.2",
+ "@angular/compiler-cli": "^18.2.0-next.2",
+ "@angular/localize": "^18.2.0-next.2",
"@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#36946be4df61f6549ae3829c026022e47674eae2",
- "@angular/platform-browser-dynamic": "^18.1.0-next.3",
- "@angular/platform-server": "^18.1.0-next.3",
- "@angular/router": "^18.1.0-next.3",
+ "@angular/platform-browser-dynamic": "^18.2.0-next.2",
+ "@angular/platform-server": "^18.2.0-next.2",
+ "@angular/router": "^18.2.0-next.2",
"@babel/core": "^7.16.12",
"@babel/helper-explode-assignable-expression": "^7.18.6",
"@babel/helper-string-parser": "^7.22.5",
@@ -98,59 +98,11 @@
"@bazel/terser": "5.8.1",
"@bazel/worker": "5.8.1",
"@firebase/app-types": "^0.7.0",
- "@material/animation": "15.0.0-canary.7f224ddd4.0",
- "@material/auto-init": "15.0.0-canary.7f224ddd4.0",
- "@material/banner": "15.0.0-canary.7f224ddd4.0",
- "@material/base": "15.0.0-canary.7f224ddd4.0",
- "@material/button": "15.0.0-canary.7f224ddd4.0",
- "@material/card": "15.0.0-canary.7f224ddd4.0",
- "@material/checkbox": "15.0.0-canary.7f224ddd4.0",
- "@material/chips": "15.0.0-canary.7f224ddd4.0",
- "@material/circular-progress": "15.0.0-canary.7f224ddd4.0",
- "@material/data-table": "15.0.0-canary.7f224ddd4.0",
- "@material/density": "15.0.0-canary.7f224ddd4.0",
- "@material/dialog": "15.0.0-canary.7f224ddd4.0",
- "@material/dom": "15.0.0-canary.7f224ddd4.0",
- "@material/drawer": "15.0.0-canary.7f224ddd4.0",
- "@material/elevation": "15.0.0-canary.7f224ddd4.0",
- "@material/fab": "15.0.0-canary.7f224ddd4.0",
- "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0",
- "@material/floating-label": "15.0.0-canary.7f224ddd4.0",
- "@material/form-field": "15.0.0-canary.7f224ddd4.0",
- "@material/icon-button": "15.0.0-canary.7f224ddd4.0",
- "@material/image-list": "15.0.0-canary.7f224ddd4.0",
- "@material/layout-grid": "15.0.0-canary.7f224ddd4.0",
- "@material/line-ripple": "15.0.0-canary.7f224ddd4.0",
- "@material/linear-progress": "15.0.0-canary.7f224ddd4.0",
- "@material/list": "15.0.0-canary.7f224ddd4.0",
"@material/material-color-utilities": "^0.2.7",
- "@material/menu": "15.0.0-canary.7f224ddd4.0",
- "@material/menu-surface": "15.0.0-canary.7f224ddd4.0",
- "@material/notched-outline": "15.0.0-canary.7f224ddd4.0",
- "@material/radio": "15.0.0-canary.7f224ddd4.0",
- "@material/ripple": "15.0.0-canary.7f224ddd4.0",
- "@material/rtl": "15.0.0-canary.7f224ddd4.0",
- "@material/segmented-button": "15.0.0-canary.7f224ddd4.0",
- "@material/select": "15.0.0-canary.7f224ddd4.0",
- "@material/shape": "15.0.0-canary.7f224ddd4.0",
- "@material/slider": "15.0.0-canary.7f224ddd4.0",
- "@material/snackbar": "15.0.0-canary.7f224ddd4.0",
- "@material/switch": "15.0.0-canary.7f224ddd4.0",
- "@material/tab": "15.0.0-canary.7f224ddd4.0",
- "@material/tab-bar": "15.0.0-canary.7f224ddd4.0",
- "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0",
- "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0",
- "@material/textfield": "15.0.0-canary.7f224ddd4.0",
- "@material/theme": "15.0.0-canary.7f224ddd4.0",
- "@material/tooltip": "15.0.0-canary.7f224ddd4.0",
- "@material/tokens": "15.0.0-canary.7f224ddd4.0",
- "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0",
- "@material/touch-target": "15.0.0-canary.7f224ddd4.0",
- "@material/typography": "15.0.0-canary.7f224ddd4.0",
"@octokit/rest": "18.3.5",
"@rollup/plugin-commonjs": "^21.0.0",
"@rollup/plugin-node-resolve": "^13.1.3",
- "@schematics/angular": "^18.1.0-next.3",
+ "@schematics/angular": "^18.2.0-next.2",
"@types/babel__core": "^7.1.18",
"@types/browser-sync": "^2.26.3",
"@types/fs-extra": "^9.0.13",
diff --git a/packages.bzl b/packages.bzl
index 6c2023b2cd0f..20e8327af100 100644
--- a/packages.bzl
+++ b/packages.bzl
@@ -1,7 +1,6 @@
# Each individual package uses a placeholder for the version of Angular to ensure they're
# all in-sync. This map is passed to each ng_package rule to stamp out the appropriate
# version for the placeholders.
-MDC_PACKAGE_VERSION = "15.0.0-canary.7f224ddd4.0"
TSLIB_PACKAGE_VERSION = "^2.3.0"
RXJS_PACKAGE_VERSION = "^6.5.3 || ^7.4.0"
@@ -9,8 +8,6 @@ RXJS_PACKAGE_VERSION = "^6.5.3 || ^7.4.0"
# value pair. These replacements occur during building of `npm_package` and `ng_package` stamping in
# the peer dependencies and versions, primarily in `package.json`s.
NPM_PACKAGE_SUBSTITUTIONS = {
- # Version of `material-components-web`
- "0.0.0-MDC": MDC_PACKAGE_VERSION,
# Peer dependency version on the Angular framework.
"0.0.0-NG": "{STABLE_FRAMEWORK_PEER_DEP_RANGE}",
# Version of `tslib`
@@ -28,59 +25,6 @@ NO_STAMP_NPM_PACKAGE_SUBSTITUTIONS = dict(NPM_PACKAGE_SUBSTITUTIONS, **{
"0.0.0-NG": ">=0.0.0",
})
-# List of MDC packages (used for package externals and for Sass target deps)
-# *Note*: Keep in sync with `/package.json`.
-MDC_PACKAGES = [
- "@material/animation",
- "@material/auto-init",
- "@material/banner",
- "@material/base",
- "@material/button",
- "@material/card",
- "@material/checkbox",
- "@material/chips",
- "@material/circular-progress",
- "@material/data-table",
- "@material/density",
- "@material/dialog",
- "@material/dom",
- "@material/drawer",
- "@material/elevation",
- "@material/fab",
- "@material/feature-targeting",
- "@material/floating-label",
- "@material/form-field",
- "@material/icon-button",
- "@material/image-list",
- "@material/layout-grid",
- "@material/line-ripple",
- "@material/linear-progress",
- "@material/list",
- "@material/menu",
- "@material/menu-surface",
- "@material/notched-outline",
- "@material/radio",
- "@material/ripple",
- "@material/rtl",
- "@material/segmented-button",
- "@material/select",
- "@material/shape",
- "@material/slider",
- "@material/snackbar",
- "@material/switch",
- "@material/tab",
- "@material/tab-bar",
- "@material/tab-indicator",
- "@material/tab-scroller",
- "@material/textfield",
- "@material/theme",
- "@material/tooltip",
- "@material/tokens",
- "@material/top-app-bar",
- "@material/touch-target",
- "@material/typography",
-]
-
ANGULAR_PACKAGES_CONFIG = [
("@angular/animations", struct(entry_points = ["browser"])),
("@angular/common", struct(entry_points = ["http/testing", "http", "testing"])),
diff --git a/pkg-externals.bzl b/pkg-externals.bzl
index 24e43fd99b50..d640abee1b59 100644
--- a/pkg-externals.bzl
+++ b/pkg-externals.bzl
@@ -6,7 +6,6 @@ load(
"MATERIAL_EXPERIMENTAL_ENTRYPOINTS",
"MATERIAL_EXPERIMENTAL_TESTING_ENTRYPOINTS",
)
-load("//:packages.bzl", "MDC_PACKAGES")
# Base list of externals which should not be bundled into the APF package output.
# Note that we want to disable sorting of the externals as we manually group entries.
@@ -51,24 +50,12 @@ PKG_EXTERNALS = [
"rxjs",
"rxjs/operators",
"selenium-webdriver",
-
- # TODO: Remove slider deep dependencies after we remove depencies on MDC's javascript
- "@material/slider/adapter",
- "@material/slider/foundation",
- "@material/slider/types",
]
-# Configures the externals for all MDC packages.
-def setup_mdc_externals():
- for pkg_name in MDC_PACKAGES:
- PKG_EXTERNALS.append(pkg_name)
-
# Creates externals for a given package and its entry-points.
def setup_entry_point_externals(packageName, entryPoints):
PKG_EXTERNALS.extend(["@angular/%s/%s" % (packageName, ep) for ep in entryPoints])
-setup_mdc_externals()
-
setup_entry_point_externals("cdk", CDK_ENTRYPOINTS)
setup_entry_point_externals("cdk-experimental", CDK_EXPERIMENTAL_ENTRYPOINTS)
setup_entry_point_externals("material", MATERIAL_ENTRYPOINTS + MATERIAL_TESTING_ENTRYPOINTS)
diff --git a/scripts/circleci/setup-mdc-canary.js b/scripts/circleci/setup-mdc-canary.js
deleted file mode 100644
index 723fd2a7d1ac..000000000000
--- a/scripts/circleci/setup-mdc-canary.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const {join} = require('path');
-const {writeFileSync} = require('fs');
-const {spawn, spawnSync} = require('child_process');
-const packageJsonPath = join(__dirname, '../../package.json');
-const packageJson = require(packageJsonPath);
-const versionsProcess = spawnSync(
- 'yarn',
- ['info', 'material-components-web', 'dist-tags.canary', '--json'],
- {shell: true},
-);
-let latestCanaryVersion = null;
-
-try {
- latestCanaryVersion = JSON.parse(versionsProcess.stdout.toString()).data;
-} catch (e) {
- console.error('Failed to retrieve latest MDC version');
- throw e;
-}
-
-['devDependencies', 'dependencies'].forEach(field => {
- Object.keys(packageJson[field]).forEach(key => {
- if (/^material-components-web$|^@material\//.test(key)) {
- packageJson[field][key] = latestCanaryVersion;
- }
- });
-});
-
-writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
-
-console.log(`Updating all MDC dependencies to version ${latestCanaryVersion}`);
-const childProcess = spawn('yarn', ['install', '--non-interactive'], {shell: true});
-childProcess.stdout.on('data', data => console.log(data + ''));
-childProcess.stderr.on('data', data => console.error(data + ''));
-childProcess.on('exit', code => process.exit(code));
diff --git a/scripts/docs-deploy/docs-deps-install.mts b/scripts/docs-deploy/docs-deps-install.mts
index ba6984fc1545..cbfc7d9fa838 100644
--- a/scripts/docs-deploy/docs-deps-install.mts
+++ b/scripts/docs-deploy/docs-deps-install.mts
@@ -10,7 +10,7 @@ export async function installDepsForDocsSite(
repoDirPath: string,
options: InstallOptions = {frozenLockfile: true},
) {
- const additionalArgs = ['--non-interactive'];
+ const additionalArgs = [];
if (options.frozenLockfile) {
additionalArgs.push('--frozen-lockfile');
diff --git a/src/cdk-experimental/combobox/combobox.spec.ts b/src/cdk-experimental/combobox/combobox.spec.ts
index 39de9126ba2b..456f1a53aba7 100644
--- a/src/cdk-experimental/combobox/combobox.spec.ts
+++ b/src/cdk-experimental/combobox/combobox.spec.ts
@@ -26,7 +26,7 @@ describe('Combobox', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkComboboxModule, ComboboxToggle],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -192,7 +192,7 @@ describe('Combobox', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkComboboxModule, ComboboxToggle],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -262,7 +262,7 @@ describe('Combobox', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkComboboxModule, ComboboxToggle],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk-experimental/popover-edit/popover-edit.spec.ts b/src/cdk-experimental/popover-edit/popover-edit.spec.ts
index 789aacfbb033..5e83d9bd24f0 100644
--- a/src/cdk-experimental/popover-edit/popover-edit.spec.ts
+++ b/src/cdk-experimental/popover-edit/popover-edit.spec.ts
@@ -62,6 +62,7 @@ const POPOVER_EDIT_DIRECTIVE_NAME = `
[cdkPopoverEdit]="nameEdit"
[cdkPopoverEditColspan]="colspan"
[cdkPopoverEditDisabled]="nameEditDisabled"
+ [cdkPopoverEditAriaLabel]="nameEditAriaLabel"
`;
const POPOVER_EDIT_DIRECTIVE_WEIGHT = `[cdkPopoverEdit]="weightEdit" cdkPopoverEditTabOut`;
@@ -77,6 +78,7 @@ abstract class BaseTestComponent {
preservedValues = new FormValueContainer();
nameEditDisabled = false;
+ nameEditAriaLabel: string | undefined = undefined;
ignoreSubmitUnlessValid = true;
clickOutBehavior: PopoverEditClickOutBehavior = 'close';
colspan: CdkPopoverEditColspan = {};
@@ -395,7 +397,7 @@ describe('CDK Popover Edit', () => {
TestBed.configureTestingModule({
imports: [CdkTableModule, CdkPopoverEditModule, CommonModule, FormsModule, BidiModule],
declarations: [componentClass],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(componentClass);
component = fixture.componentInstance;
fixture.detectChanges();
@@ -557,6 +559,22 @@ describe('CDK Popover Edit', () => {
expect(component.lensIsOpen()).toBe(false);
clearLeftoverTimers();
}));
+
+ it('sets aria label and role dialog on the popup', fakeAsync(() => {
+ component.nameEditAriaLabel = 'Label of name!!';
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ // Uses Enter to open the lens.
+ component.openLens();
+ fixture.detectChanges();
+
+ expect(component.lensIsOpen()).toBe(true);
+ const dialogElem = component.getEditPane()!;
+ expect(dialogElem.getAttribute('aria-label')).toBe('Label of name!!');
+ expect(dialogElem.getAttribute('role')).toBe('dialog');
+ clearLeftoverTimers();
+ }));
});
describe('focus manipulation', () => {
diff --git a/src/cdk-experimental/popover-edit/table-directives.ts b/src/cdk-experimental/popover-edit/table-directives.ts
index 83ef6479167f..58775ee0f8ed 100644
--- a/src/cdk-experimental/popover-edit/table-directives.ts
+++ b/src/cdk-experimental/popover-edit/table-directives.ts
@@ -173,6 +173,7 @@ const POPOVER_EDIT_INPUTS = [
{name: 'context', alias: 'cdkPopoverEditContext'},
{name: 'colspan', alias: 'cdkPopoverEditColspan'},
{name: 'disabled', alias: 'cdkPopoverEditDisabled'},
+ {name: 'ariaLabel', alias: 'cdkPopoverEditAriaLabel'},
];
/**
@@ -196,6 +197,9 @@ export class CdkPopoverEdit implements AfterViewInit, OnDestroy {
*/
context?: C;
+ /** Aria label to set on the popover dialog element. */
+ ariaLabel?: string;
+
/**
* Specifies that the popup should cover additional table cells before and/or after
* this one.
@@ -302,7 +306,10 @@ export class CdkPopoverEdit implements AfterViewInit, OnDestroy {
});
this.initFocusTrap();
- this.overlayRef.overlayElement.setAttribute('aria-role', 'dialog');
+ this.overlayRef.overlayElement.setAttribute('role', 'dialog');
+ if (this.ariaLabel) {
+ this.overlayRef.overlayElement.setAttribute('aria-label', this.ariaLabel);
+ }
this.overlayRef.detachments().subscribe(() => this.closeEditOverlay());
}
diff --git a/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts b/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts
index c362e8003c79..c233eabfc777 100644
--- a/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts
+++ b/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts
@@ -12,7 +12,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, ExperimentalScrollingModule, AutoSizeVirtualScroll],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk-experimental/selection/selection.spec.ts b/src/cdk-experimental/selection/selection.spec.ts
index b542ec850557..821e57e784ee 100644
--- a/src/cdk-experimental/selection/selection.spec.ts
+++ b/src/cdk-experimental/selection/selection.spec.ts
@@ -14,7 +14,7 @@ describe('CdkSelection', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkSelectionModule, ListWithMultiSelection],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -240,7 +240,7 @@ describe('CdkSelection with multiple = false', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkSelectionModule, ListWithSingleSelection],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -305,7 +305,7 @@ describe('cdkSelectionColumn', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkSelectionModule, CdkTableModule, MultiSelectTableWithSelectionColumn],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -399,7 +399,7 @@ describe('cdkSelectionColumn with multiple = false', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkSelectionModule, CdkTableModule, SingleSelectTableWithSelectionColumn],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk-experimental/table-scroll-container/table-scroll-container.spec.ts b/src/cdk-experimental/table-scroll-container/table-scroll-container.spec.ts
index d5da839296a6..009e971b6b20 100644
--- a/src/cdk-experimental/table-scroll-container/table-scroll-container.spec.ts
+++ b/src/cdk-experimental/table-scroll-container/table-scroll-container.spec.ts
@@ -24,7 +24,7 @@ describe('CdkTableScrollContainer', () => {
): ComponentFixture {
TestBed.configureTestingModule({
imports: [CdkTableModule, CdkTableScrollContainerModule, componentType, ...declarations],
- }).compileComponents();
+ });
return TestBed.createComponent(componentType);
}
diff --git a/src/cdk/a11y/BUILD.bazel b/src/cdk/a11y/BUILD.bazel
index 81148f1486d2..710ea578423d 100644
--- a/src/cdk/a11y/BUILD.bazel
+++ b/src/cdk/a11y/BUILD.bazel
@@ -19,6 +19,7 @@ ng_module(
deps = [
"//src:dev_mode_types",
"//src/cdk/coercion",
+ "//src/cdk/coercion/private",
"//src/cdk/keycodes",
"//src/cdk/layout",
"//src/cdk/observers",
diff --git a/src/cdk/a11y/a11y.md b/src/cdk/a11y/a11y.md
index 6724827b019d..2c9b89570e68 100644
--- a/src/cdk/a11y/a11y.md
+++ b/src/cdk/a11y/a11y.md
@@ -27,7 +27,7 @@ Navigation through options can be made to wrap via the `withWrap` method
this.keyManager = new FocusKeyManager(...).withWrap();
```
-#### Types of key managers
+#### Types of list key managers
There are two varieties of `ListKeyManager`, `FocusKeyManager` and `ActiveDescendantKeyManager`.
@@ -55,6 +55,30 @@ interface Highlightable extends ListKeyManagerOption {
Each item must also have an ID bound to the listbox's or menu's `aria-activedescendant`.
+### TreeKeyManager
+
+`TreeKeyManager` manages the active option in a tree view. Use this key manager for
+components that implement a `role="tree"` pattern.
+
+#### Basic usage
+
+Any component that uses a `TreeKeyManager` should do three things:
+* Create a `@ViewChildren` query for the tree items being managed.
+* Initialize the `TreeKeyManager`, passing in the options.
+* Forward keyboard events from the managed component to the `TreeKeyManager` via `onKeydown`.
+
+Each tree item should implement the [`TreeKeyManagerItem`](/cdk/a11y/api#TreeKeyManagerItem) interface.
+
+#### Focus management
+
+The `TreeKeyManager` will handle focusing the appropriate item on keyboard interactions.
+
+`tabindex` should also be set by the component when the active item changes. This can be listened to
+via the `change` property on the `TreeKeyManager`. In particular, the tree should only have a
+`tabindex` set if there is no active item, and should not have a `tabindex` set if there is an
+active item. Only the HTML node corresponding to the active item should have a `tabindex` set to
+`0`, with all other items set to `-1`.
+
### FocusTrap
diff --git a/src/cdk/a11y/aria-describer/aria-describer.spec.ts b/src/cdk/a11y/aria-describer/aria-describer.spec.ts
index 7991f830b423..c5ec92b8b89a 100644
--- a/src/cdk/a11y/aria-describer/aria-describer.spec.ts
+++ b/src/cdk/a11y/aria-describer/aria-describer.spec.ts
@@ -12,7 +12,7 @@ describe('AriaDescriber', () => {
TestBed.configureTestingModule({
imports: [A11yModule, TestApp],
providers: [AriaDescriber, ...providers],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(TestApp);
component = fixture.componentInstance;
diff --git a/src/cdk/a11y/focus-monitor/focus-monitor.spec.ts b/src/cdk/a11y/focus-monitor/focus-monitor.spec.ts
index 3e03eba9de0b..3f9f04265f91 100644
--- a/src/cdk/a11y/focus-monitor/focus-monitor.spec.ts
+++ b/src/cdk/a11y/focus-monitor/focus-monitor.spec.ts
@@ -59,7 +59,7 @@ describe('FocusMonitor', () => {
},
},
],
- }).compileComponents();
+ });
});
beforeEach(inject([FocusMonitor], (fm: FocusMonitor) => {
@@ -478,7 +478,7 @@ describe('FocusMonitor with "eventual" detection', () => {
},
},
],
- }).compileComponents();
+ });
});
beforeEach(inject([FocusMonitor], (fm: FocusMonitor) => {
@@ -515,7 +515,7 @@ describe('cdkMonitorFocus', () => {
FocusMonitorOnCommentNode,
ExportedFocusMonitor,
],
- }).compileComponents();
+ });
});
describe('button with cdkMonitorElementFocus', () => {
@@ -827,7 +827,7 @@ describe('FocusMonitor observable stream', () => {
TestBed.configureTestingModule({
imports: [A11yModule, PlainButton],
providers: [{provide: Platform, useValue: fakePlatform}],
- }).compileComponents();
+ });
});
beforeEach(inject([FocusMonitor], (fm: FocusMonitor) => {
@@ -864,7 +864,7 @@ describe('FocusMonitor input label detection', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [A11yModule, CheckboxWithLabel],
- }).compileComponents();
+ });
});
beforeEach(inject([FocusMonitor], (fm: FocusMonitor) => {
diff --git a/src/cdk/a11y/focus-monitor/focus-monitor.zone.spec.ts b/src/cdk/a11y/focus-monitor/focus-monitor.zone.spec.ts
index 7b8c2638ca49..b8297208c6b0 100644
--- a/src/cdk/a11y/focus-monitor/focus-monitor.zone.spec.ts
+++ b/src/cdk/a11y/focus-monitor/focus-monitor.zone.spec.ts
@@ -16,7 +16,7 @@ describe('FocusMonitor observable stream Zone.js integration', () => {
TestBed.configureTestingModule({
imports: [A11yModule, PlainButton],
providers: [{provide: Platform, useValue: fakePlatform}, provideZoneChangeDetection()],
- }).compileComponents();
+ });
});
beforeEach(inject([FocusMonitor], (fm: FocusMonitor) => {
diff --git a/src/cdk/a11y/focus-trap/configurable-focus-trap.spec.ts b/src/cdk/a11y/focus-trap/configurable-focus-trap.spec.ts
index b695deacaaca..1fd923f9ecd4 100644
--- a/src/cdk/a11y/focus-trap/configurable-focus-trap.spec.ts
+++ b/src/cdk/a11y/focus-trap/configurable-focus-trap.spec.ts
@@ -95,7 +95,7 @@ function createComponent(
TestBed.configureTestingModule({
imports: [A11yModule, componentType],
providers: providers,
- }).compileComponents();
+ });
return TestBed.createComponent(componentType);
}
diff --git a/src/cdk/a11y/focus-trap/event-listener-inert-strategy.spec.ts b/src/cdk/a11y/focus-trap/event-listener-inert-strategy.spec.ts
index 5aadb345a618..6434cc3f51e5 100644
--- a/src/cdk/a11y/focus-trap/event-listener-inert-strategy.spec.ts
+++ b/src/cdk/a11y/focus-trap/event-listener-inert-strategy.spec.ts
@@ -64,7 +64,7 @@ function createComponent(
TestBed.configureTestingModule({
imports: [A11yModule, componentType],
providers: providers,
- }).compileComponents();
+ });
return TestBed.createComponent(componentType);
}
diff --git a/src/cdk/a11y/focus-trap/focus-trap.spec.ts b/src/cdk/a11y/focus-trap/focus-trap.spec.ts
index a0d3b07df439..96b1078f32e3 100644
--- a/src/cdk/a11y/focus-trap/focus-trap.spec.ts
+++ b/src/cdk/a11y/focus-trap/focus-trap.spec.ts
@@ -28,8 +28,6 @@ describe('FocusTrap', () => {
FocusTrapWithAutoCaptureInShadowDom,
],
});
-
- TestBed.compileComponents();
}));
describe('with default element', () => {
diff --git a/src/cdk/a11y/key-manager/list-key-manager.spec.ts b/src/cdk/a11y/key-manager/list-key-manager.spec.ts
index 7fdc53380b90..cb37338a1117 100644
--- a/src/cdk/a11y/key-manager/list-key-manager.spec.ts
+++ b/src/cdk/a11y/key-manager/list-key-manager.spec.ts
@@ -177,6 +177,7 @@ describe('Key managers', () => {
keyManager.setActiveItem(0);
itemList.reset([new FakeFocusable('zero'), ...itemList.toArray()]);
+ itemList.notifyOnChanges();
keyManager.setActiveItem(0);
expect(spy).toHaveBeenCalledTimes(1);
@@ -369,6 +370,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[1].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
// Next event should skip past disabled item from 0 to 2
keyManager.onKeydown(this.nextKeyEvent);
@@ -394,6 +396,7 @@ describe('Key managers', () => {
items[1].disabled = undefined;
items[2].disabled = undefined;
itemList.reset(items);
+ itemList.notifyOnChanges();
keyManager.onKeydown(this.nextKeyEvent);
expect(keyManager.activeItemIndex)
@@ -443,6 +446,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[2].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
keyManager.onKeydown(this.nextKeyEvent);
expect(keyManager.activeItemIndex)
@@ -585,6 +589,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[0].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
keyManager.setFirstItemActive();
expect(keyManager.activeItemIndex)
@@ -607,6 +612,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[2].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
keyManager.setLastItemActive();
expect(keyManager.activeItemIndex)
@@ -629,6 +635,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[1].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
expect(keyManager.activeItemIndex)
.withContext(`Expected first item of the list to be active.`)
@@ -656,6 +663,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[1].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
keyManager.onKeydown(fakeKeyEvents.downArrow);
keyManager.onKeydown(fakeKeyEvents.downArrow);
@@ -733,6 +741,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items.forEach(item => (item.disabled = true));
itemList.reset(items);
+ itemList.notifyOnChanges();
keyManager.onKeydown(fakeKeyEvents.downArrow);
});
@@ -757,6 +766,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[1].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
expect(keyManager.activeItemIndex).toBe(0);
@@ -771,6 +781,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[1].skipItem = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
expect(keyManager.activeItemIndex).toBe(0);
@@ -866,6 +877,7 @@ describe('Key managers', () => {
new FakeFocusable('Đ´Đ²Đµ'),
new FakeFocusable('Ñ‚Ñ€Đ¸'),
]);
+ itemList.notifyOnChanges();
const keyboardEvent = createKeyboardEvent('keydown', 68, 'Đ´');
@@ -881,6 +893,7 @@ describe('Key managers', () => {
new FakeFocusable('321'),
new FakeFocusable('`!?'),
]);
+ itemList.notifyOnChanges();
keyManager.onKeydown(createKeyboardEvent('keydown', 192, '`')); // types "`"
tick(debounceInterval);
@@ -901,6 +914,7 @@ describe('Key managers', () => {
const items = itemList.toArray();
items[0].disabled = true;
itemList.reset(items);
+ itemList.notifyOnChanges();
keyManager.onKeydown(createKeyboardEvent('keydown', 79, 'o')); // types "o"
tick(debounceInterval);
@@ -916,6 +930,7 @@ describe('Key managers', () => {
new FakeFocusable('Boromir'),
new FakeFocusable('Aragorn'),
]);
+ itemList.notifyOnChanges();
keyManager.setActiveItem(1);
keyManager.onKeydown(createKeyboardEvent('keydown', 66, 'b'));
@@ -932,6 +947,7 @@ describe('Key managers', () => {
new FakeFocusable('Boromir'),
new FakeFocusable('Aragorn'),
]);
+ itemList.notifyOnChanges();
keyManager.setActiveItem(3);
keyManager.onKeydown(createKeyboardEvent('keydown', 66, 'b'));
diff --git a/src/cdk/a11y/key-manager/list-key-manager.ts b/src/cdk/a11y/key-manager/list-key-manager.ts
index 78295d135f8f..0df8c9f9dc46 100644
--- a/src/cdk/a11y/key-manager/list-key-manager.ts
+++ b/src/cdk/a11y/key-manager/list-key-manager.ts
@@ -14,17 +14,13 @@ import {
LEFT_ARROW,
RIGHT_ARROW,
TAB,
- A,
- Z,
- ZERO,
- NINE,
hasModifierKey,
HOME,
END,
PAGE_UP,
PAGE_DOWN,
} from '@angular/cdk/keycodes';
-import {debounceTime, filter, map, tap} from 'rxjs/operators';
+import {Typeahead} from './typeahead';
/** This interface is for items that can be passed to a ListKeyManager. */
export interface ListKeyManagerOption {
@@ -46,7 +42,6 @@ export class ListKeyManager {
private _activeItemIndex = -1;
private _activeItem: T | null = null;
private _wrap = false;
- private readonly _letterKeyStream = new Subject();
private _typeaheadSubscription = Subscription.EMPTY;
private _itemChangesSubscription?: Subscription;
private _vertical = true;
@@ -55,6 +50,7 @@ export class ListKeyManager {
private _homeAndEnd = false;
private _pageUpAndDown = {enabled: false, delta: 10};
private _effectRef: EffectRef | undefined;
+ private _typeahead?: Typeahead;
/**
* Predicate function that can be used to check whether an item should be skipped
@@ -62,9 +58,6 @@ export class ListKeyManager {
*/
private _skipPredicateFn = (item: T) => item.disabled;
- // Buffer for the letters that the user has pressed when the typeahead option is turned on.
- private _pressedLetters: string[] = [];
-
constructor(items: QueryList | T[] | readonly T[]);
constructor(items: Signal | Signal, injector: Injector);
constructor(
@@ -158,43 +151,22 @@ export class ListKeyManager {
this._typeaheadSubscription.unsubscribe();
- // Debounce the presses of non-navigational keys, collect the ones that correspond to letters
- // and convert those letters back into a string. Afterwards find the first item that starts
- // with that string and select it.
- this._typeaheadSubscription = this._letterKeyStream
- .pipe(
- tap(letter => this._pressedLetters.push(letter)),
- debounceTime(debounceInterval),
- filter(() => this._pressedLetters.length > 0),
- map(() => this._pressedLetters.join('')),
- )
- .subscribe(inputString => {
- const items = this._getItemsArray();
-
- // Start at 1 because we want to start searching at the item immediately
- // following the current active item.
- for (let i = 1; i < items.length + 1; i++) {
- const index = (this._activeItemIndex + i) % items.length;
- const item = items[index];
-
- if (
- !this._skipPredicateFn(item) &&
- item.getLabel!().toUpperCase().trim().indexOf(inputString) === 0
- ) {
- this.setActiveItem(index);
- break;
- }
- }
+ const items = this._getItemsArray();
+ this._typeahead = new Typeahead(items, {
+ debounceInterval: typeof debounceInterval === 'number' ? debounceInterval : undefined,
+ skipPredicate: item => this._skipPredicateFn(item),
+ });
- this._pressedLetters = [];
- });
+ this._typeaheadSubscription = this._typeahead.selectedItem.subscribe(item => {
+ this.setActiveItem(item);
+ });
return this;
}
/** Cancels the current typeahead sequence. */
cancelTypeahead(): this {
- this._pressedLetters = [];
+ this._typeahead?.reset();
return this;
}
@@ -326,13 +298,7 @@ export class ListKeyManager {
default:
if (isModifierAllowed || hasModifierKey(event, 'shiftKey')) {
- // Attempt to use the `event.key` which also maps it to the user's keyboard language,
- // otherwise fall back to resolving alphanumeric characters via the keyCode.
- if (event.key && event.key.length === 1) {
- this._letterKeyStream.next(event.key.toLocaleUpperCase());
- } else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {
- this._letterKeyStream.next(String.fromCharCode(keyCode));
- }
+ this._typeahead?.handleKey(event);
}
// Note that we return here, in order to avoid preventing
@@ -340,7 +306,7 @@ export class ListKeyManager {
return;
}
- this._pressedLetters = [];
+ this._typeahead?.reset();
event.preventDefault();
}
@@ -356,7 +322,7 @@ export class ListKeyManager {
/** Gets whether the user is currently typing into the manager using the typeahead feature. */
isTyping(): boolean {
- return this._pressedLetters.length > 0;
+ return !!this._typeahead && this._typeahead.isTyping();
}
/** Sets the active item to the first enabled item in the list. */
@@ -401,6 +367,7 @@ export class ListKeyManager {
// Explicitly check for `null` and `undefined` because other falsy values are valid.
this._activeItem = activeItem == null ? null : activeItem;
this._activeItemIndex = index;
+ this._typeahead?.setCurrentSelectedItemIndex(index);
}
/** Cleans up the key manager. */
@@ -408,10 +375,9 @@ export class ListKeyManager {
this._typeaheadSubscription.unsubscribe();
this._itemChangesSubscription?.unsubscribe();
this._effectRef?.destroy();
- this._letterKeyStream.complete();
+ this._typeahead?.destroy();
this.tabOut.complete();
this.change.complete();
- this._pressedLetters = [];
}
/**
@@ -485,11 +451,13 @@ export class ListKeyManager {
/** Callback for when the items have changed. */
private _itemsChanged(newItems: T[] | readonly T[]) {
+ this._typeahead?.setItems(newItems);
if (this._activeItem) {
const newIndex = newItems.indexOf(this._activeItem);
if (newIndex > -1 && newIndex !== this._activeItemIndex) {
this._activeItemIndex = newIndex;
+ this._typeahead?.setCurrentSelectedItemIndex(newIndex);
}
}
}
diff --git a/src/cdk/a11y/key-manager/noop-tree-key-manager.ts b/src/cdk/a11y/key-manager/noop-tree-key-manager.ts
new file mode 100644
index 000000000000..b0f104133d58
--- /dev/null
+++ b/src/cdk/a11y/key-manager/noop-tree-key-manager.ts
@@ -0,0 +1,108 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+import {Subject} from 'rxjs';
+import {TREE_KEY_MANAGER} from './tree-key-manager';
+import {
+ TreeKeyManagerFactory,
+ TreeKeyManagerItem,
+ TreeKeyManagerStrategy,
+} from './tree-key-manager-strategy';
+
+// NoopTreeKeyManager is a "noop" implementation of TreeKeyMangerStrategy. Methods are noops. Does
+// not emit to streams.
+//
+// Used for applications built before TreeKeyManager to opt-out of TreeKeyManager and revert to
+// legacy behavior.
+/**
+ * @docs-private
+ *
+ * Opt-out of Tree of key manager behavior.
+ *
+ * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.
+ * - Tree does not respond to keyboard interaction
+ * - Tree node allows tabindex to be set by Input binding
+ * - Tree node allows tabindex to be set by attribute binding
+ *
+ * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a
+ * TreeKeyManagerStrategy instead. To be removed in a future version.
+ *
+ * @breaking-change 21.0.0
+ */
+export class NoopTreeKeyManager implements TreeKeyManagerStrategy {
+ readonly _isNoopTreeKeyManager = true;
+
+ // Provide change as required by TreeKeyManagerStrategy. NoopTreeKeyManager is a "noop"
+ // implementation that does not emit to streams.
+ readonly change = new Subject();
+
+ destroy() {
+ this.change.complete();
+ }
+
+ onKeydown() {
+ // noop
+ }
+
+ getActiveItemIndex() {
+ // Always return null. NoopTreeKeyManager is a "noop" implementation that does not maintain
+ // the active item.
+ return null;
+ }
+
+ getActiveItem() {
+ // Always return null. NoopTreeKeyManager is a "noop" implementation that does not maintain
+ // the active item.
+ return null;
+ }
+
+ focusItem() {
+ // noop
+ }
+}
+
+/**
+ * @docs-private
+ *
+ * Opt-out of Tree of key manager behavior.
+ *
+ * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.
+ * - Tree does not respond to keyboard interaction
+ * - Tree node allows tabindex to be set by Input binding
+ * - Tree node allows tabindex to be set by attribute binding
+ *
+ * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a
+ * TreeKeyManagerStrategy instead. To be removed in a future version.
+ *
+ * @breaking-change 21.0.0
+ */
+export function NOOP_TREE_KEY_MANAGER_FACTORY<
+ T extends TreeKeyManagerItem,
+>(): TreeKeyManagerFactory {
+ return () => new NoopTreeKeyManager();
+}
+
+/**
+ * @docs-private
+ *
+ * Opt-out of Tree of key manager behavior.
+ *
+ * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.
+ * - Tree does not respond to keyboard interaction
+ * - Tree node allows tabindex to be set by Input binding
+ * - Tree node allows tabindex to be set by attribute binding
+ *
+ * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a
+ * TreeKeyManagerStrategy instead. To be removed in a future version.
+ *
+ * @breaking-change 21.0.0
+ */
+export const NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER = {
+ provide: TREE_KEY_MANAGER,
+ useFactory: NOOP_TREE_KEY_MANAGER_FACTORY,
+};
diff --git a/src/cdk/a11y/key-manager/tree-key-manager-strategy.ts b/src/cdk/a11y/key-manager/tree-key-manager-strategy.ts
new file mode 100644
index 000000000000..f04fcec0d420
--- /dev/null
+++ b/src/cdk/a11y/key-manager/tree-key-manager-strategy.ts
@@ -0,0 +1,141 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+import {QueryList} from '@angular/core';
+import {Observable, Subject} from 'rxjs';
+
+/** Represents an item within a tree that can be passed to a TreeKeyManager. */
+export interface TreeKeyManagerItem {
+ /** Whether the item is disabled. */
+ isDisabled?: (() => boolean) | boolean;
+
+ /** The user-facing label for this item. */
+ getLabel?(): string;
+
+ /** Perform the main action (i.e. selection) for this item. */
+ activate(): void;
+
+ /** Retrieves the parent for this item. This is `null` if there is no parent. */
+ getParent(): TreeKeyManagerItem | null;
+
+ /** Retrieves the children for this item. */
+ getChildren(): TreeKeyManagerItem[] | Observable;
+
+ /** Determines if the item is currently expanded. */
+ isExpanded: (() => boolean) | boolean;
+
+ /** Collapses the item, hiding its children. */
+ collapse(): void;
+
+ /** Expands the item, showing its children. */
+ expand(): void;
+
+ /**
+ * Focuses the item. This should provide some indication to the user that this item is focused.
+ */
+ focus(): void;
+
+ /**
+ * Unfocus the item. This should remove the focus state.
+ */
+ unfocus(): void;
+
+ /**
+ * Sets the item to be focusable without actually focusing it.
+ */
+ makeFocusable?(): void;
+}
+
+/**
+ * Configuration for the TreeKeyManager.
+ */
+export interface TreeKeyManagerOptions {
+ /**
+ * If true, then the key manager will call `activate` in addition to calling `focus` when a
+ * particular item is focused.
+ */
+ shouldActivationFollowFocus?: boolean;
+
+ /**
+ * The direction in which the tree items are laid out horizontally. This influences which key
+ * will be interpreted as expand or collapse.
+ */
+ horizontalOrientation?: 'rtl' | 'ltr';
+
+ /**
+ * If provided, navigation "skips" over items that pass the given predicate.
+ *
+ * If the item is to be skipped, predicate function should return false.
+ */
+ skipPredicate?: (item: T) => boolean;
+
+ /**
+ * If provided, determines how the key manager determines if two items are equivalent.
+ *
+ * It should provide a unique key for each unique tree item. If two tree items are equivalent,
+ * then this function should return the same value.
+ */
+ trackBy?: (treeItem: T) => unknown;
+
+ /**
+ * If a value is provided, enables typeahead mode, which allows users to set the active item
+ * by typing the visible label of the item.
+ *
+ * If a number is provided, this will be the time to wait after the last keystroke before
+ * setting the active item. If `true` is provided, the default interval of 200ms will be used.
+ */
+ typeAheadDebounceInterval?: true | number;
+}
+
+export interface TreeKeyManagerStrategy {
+ /** Stream that emits any time the focused item changes. */
+ readonly change: Subject;
+
+ /**
+ * Cleans up the key manager.
+ */
+ destroy(): void;
+
+ /**
+ * Handles a keyboard event on the tree.
+ *
+ * @param event Keyboard event that represents the user interaction with the tree.
+ */
+ onKeydown(event: KeyboardEvent): void;
+
+ /** Index of the currently active item. */
+ getActiveItemIndex(): number | null;
+
+ /** The currently active item. */
+ getActiveItem(): T | null;
+
+ /**
+ * Focus the provided item by index.
+ *
+ * Updates the state of the currently active item. Emits to `change` stream if active item
+ * Changes.
+ * @param index The index of the item to focus.
+ * @param options Additional focusing options.
+ */
+ focusItem(index: number, options?: {emitChangeEvent?: boolean}): void;
+ /**
+ * Focus the provided item.
+ *
+ * Updates the state of the currently active item. Emits to `change` stream if active item
+ * Changes.
+ * @param item The item to focus. Equality is determined via the trackBy function.
+ * @param options Additional focusing options.
+ */
+ focusItem(item: T, options?: {emitChangeEvent?: boolean}): void;
+ focusItem(itemOrIndex: number | T, options?: {emitChangeEvent?: boolean}): void;
+}
+
+export type TreeKeyManagerFactory = (
+ items: Observable | QueryList | T[],
+ options: TreeKeyManagerOptions,
+) => TreeKeyManagerStrategy;
diff --git a/src/cdk/a11y/key-manager/tree-key-manager.spec.ts b/src/cdk/a11y/key-manager/tree-key-manager.spec.ts
new file mode 100644
index 000000000000..b5c2d83bc87e
--- /dev/null
+++ b/src/cdk/a11y/key-manager/tree-key-manager.spec.ts
@@ -0,0 +1,978 @@
+import {createKeyboardEvent} from '../../testing/private';
+import {QueryList} from '@angular/core';
+import {TreeKeyManager} from './tree-key-manager';
+import {TreeKeyManagerItem} from './tree-key-manager-strategy';
+import {Observable, of as observableOf, Subscription} from 'rxjs';
+import {fakeAsync, tick} from '@angular/core/testing';
+
+class FakeBaseTreeKeyManagerItem implements TreeKeyManagerItem {
+ _isExpanded = false;
+ _parent: FakeBaseTreeKeyManagerItem | null = null;
+ _children: FakeBaseTreeKeyManagerItem[] = [];
+
+ isDisabled?: boolean;
+ skipItem?: boolean = false;
+
+ constructor(
+ private _label: string,
+ _isDisabled: boolean | undefined = false,
+ ) {
+ this.isDisabled = _isDisabled;
+ }
+
+ getLabel(): string {
+ return this._label;
+ }
+ activate(): void {}
+ getParent(): TreeKeyManagerItem | null {
+ return this._parent;
+ }
+ isExpanded(): boolean {
+ return this._isExpanded;
+ }
+ collapse(): void {
+ this._isExpanded = false;
+ }
+ expand(): void {
+ this._isExpanded = true;
+ }
+ focus(): void {}
+ unfocus(): void {}
+ getChildren(): TreeKeyManagerItem[] | Observable {
+ return this._children;
+ }
+}
+
+class FakeArrayTreeKeyManagerItem extends FakeBaseTreeKeyManagerItem {
+ override getChildren() {
+ return this._children;
+ }
+}
+
+class FakeObservableTreeKeyManagerItem extends FakeBaseTreeKeyManagerItem {
+ override getChildren() {
+ return observableOf(this._children);
+ }
+}
+
+interface ItemConstructorTestContext {
+ description: string;
+ constructor: new (
+ label: string,
+ disabled?: boolean,
+ ) => FakeArrayTreeKeyManagerItem | FakeObservableTreeKeyManagerItem;
+}
+
+interface ExpandCollapseKeyEventTestContext {
+ direction: 'ltr' | 'rtl';
+ expandKeyEvent: () => KeyboardEvent;
+ collapseKeyEvent: () => KeyboardEvent;
+}
+
+describe('TreeKeyManager', () => {
+ let fakeKeyEvents: {
+ downArrow: KeyboardEvent;
+ upArrow: KeyboardEvent;
+ leftArrow: KeyboardEvent;
+ rightArrow: KeyboardEvent;
+ tab: KeyboardEvent;
+ home: KeyboardEvent;
+ end: KeyboardEvent;
+ enter: KeyboardEvent;
+ space: KeyboardEvent;
+ star: KeyboardEvent;
+ unsupported: KeyboardEvent;
+ };
+
+ beforeEach(() => {
+ fakeKeyEvents = {
+ downArrow: createKeyboardEvent('keydown', undefined, 'ArrowDown'),
+ upArrow: createKeyboardEvent('keydown', undefined, 'ArrowUp'),
+ leftArrow: createKeyboardEvent('keydown', undefined, 'ArrowLeft'),
+ rightArrow: createKeyboardEvent('keydown', undefined, 'ArrowRight'),
+ tab: createKeyboardEvent('keydown', undefined, 'Tab'),
+ home: createKeyboardEvent('keydown', undefined, 'Home'),
+ end: createKeyboardEvent('keydown', undefined, 'End'),
+ enter: createKeyboardEvent('keydown', undefined, 'Enter'),
+ space: createKeyboardEvent('keydown', undefined, ' '),
+ star: createKeyboardEvent('keydown', undefined, '*'),
+ unsupported: createKeyboardEvent('keydown', undefined, '~'),
+ };
+ });
+
+ const itemParameters: ItemConstructorTestContext[] = [
+ {description: 'Observable children', constructor: FakeObservableTreeKeyManagerItem},
+ {description: 'array children', constructor: FakeArrayTreeKeyManagerItem},
+ ];
+
+ for (const itemParam of itemParameters) {
+ describe(itemParam.description, () => {
+ let itemList: QueryList;
+ let keyManager: TreeKeyManager<
+ FakeArrayTreeKeyManagerItem | FakeObservableTreeKeyManagerItem
+ >;
+
+ let parentItem: FakeArrayTreeKeyManagerItem | FakeObservableTreeKeyManagerItem; // index 0
+ let childItem: FakeArrayTreeKeyManagerItem | FakeObservableTreeKeyManagerItem; // index 1
+ let childItemWithNoChildren: FakeArrayTreeKeyManagerItem | FakeObservableTreeKeyManagerItem; // index 3
+ let lastItem: FakeArrayTreeKeyManagerItem | FakeObservableTreeKeyManagerItem; // index 5
+
+ beforeEach(() => {
+ itemList = new QueryList();
+ const parent1 = new itemParam.constructor('one');
+ const parent1Child1 = new itemParam.constructor('two');
+ const parent1Child1Child1 = new itemParam.constructor('three');
+ const parent1Child2 = new itemParam.constructor('four');
+ const parent2 = new itemParam.constructor('five');
+ const parent2Child1 = new itemParam.constructor('six');
+
+ parent1._children = [parent1Child1, parent1Child2];
+ parent1Child1._parent = parent1;
+ parent1Child1._children = [parent1Child1Child1];
+ parent1Child1Child1._parent = parent1Child1;
+ parent1Child2._parent = parent1;
+ parent2._children = [parent2Child1];
+ parent2Child1._parent = parent2;
+
+ parentItem = parent1;
+ childItem = parent1Child1;
+ childItemWithNoChildren = parent1Child2;
+ lastItem = parent2Child1;
+
+ itemList.reset([
+ parent1,
+ parent1Child1,
+ parent1Child1Child1,
+ parent1Child2,
+ parent2,
+ parent2Child1,
+ ]);
+ keyManager = new TreeKeyManager<
+ FakeObservableTreeKeyManagerItem | FakeArrayTreeKeyManagerItem
+ >(itemList, {});
+ itemList.notifyOnChanges();
+ });
+
+ it('should intialize with at least one active item', () => {
+ expect(keyManager.getActiveItem()).withContext('has an active item').not.toBeNull();
+ });
+
+ describe('when all items are disabled', () => {
+ beforeEach(() => {
+ itemList.reset([
+ new itemParam.constructor('Bilbo', true),
+ new itemParam.constructor('Frodo', true),
+ new itemParam.constructor('Pippin', true),
+ ]);
+ keyManager = new TreeKeyManager<
+ FakeObservableTreeKeyManagerItem | FakeArrayTreeKeyManagerItem
+ >(itemList, {});
+ itemList.notifyOnChanges();
+ });
+
+ it('initializes with the first item activated', () => {
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+ });
+ });
+
+ it('should maintain the active item if the amount of items changes', () => {
+ keyManager.focusItem(itemList.get(0)!);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+ expect(keyManager.getActiveItem()?.getLabel()).withContext('active item label').toBe('one');
+ itemList.reset([new FakeObservableTreeKeyManagerItem('parent0'), ...itemList.toArray()]);
+ itemList.notifyOnChanges();
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(1);
+ expect(keyManager.getActiveItem()?.getLabel()).withContext('active item label').toBe('one');
+ });
+
+ describe('Key events', () => {
+ it('should emit an event whenever the active item changes', () => {
+ keyManager.focusItem(itemList.get(0)!);
+
+ const spy = jasmine.createSpy('change spy');
+ const subscription = keyManager.change.subscribe(spy);
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(spy).toHaveBeenCalledTimes(1);
+
+ keyManager.onKeydown(fakeKeyEvents.upArrow);
+ expect(spy).toHaveBeenCalledTimes(2);
+
+ subscription.unsubscribe();
+ });
+
+ it('should emit if the active item changed, but not the active index', () => {
+ keyManager.focusItem(itemList.get(0)!);
+
+ const spy = jasmine.createSpy('change spy');
+ const subscription = keyManager.change.subscribe(spy);
+
+ itemList.reset([new itemParam.constructor('zero'), ...itemList.toArray()]);
+ itemList.notifyOnChanges();
+ keyManager.focusItem(itemList.get(0)!);
+
+ expect(spy).toHaveBeenCalledTimes(1);
+ subscription.unsubscribe();
+ });
+
+ it('should activate the second item when pressing down on a clean key manager', () => {
+ expect(keyManager.getActiveItemIndex()).withContext('default focused item index').toBe(0);
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('focused item index, after down arrow')
+ .toBe(1);
+ });
+
+ it('should not prevent the default keyboard action when pressing tab', () => {
+ expect(fakeKeyEvents.tab.defaultPrevented).toBe(false);
+
+ keyManager.onKeydown(fakeKeyEvents.tab);
+
+ expect(fakeKeyEvents.tab.defaultPrevented).toBe(false);
+ });
+
+ it('should not do anything for unsupported key presses', () => {
+ keyManager.focusItem(itemList.get(1)!);
+
+ expect(keyManager.getActiveItemIndex()).toBe(1);
+ expect(fakeKeyEvents.unsupported.defaultPrevented).toBe(false);
+
+ keyManager.onKeydown(fakeKeyEvents.unsupported);
+
+ expect(keyManager.getActiveItemIndex()).toBe(1);
+ expect(fakeKeyEvents.unsupported.defaultPrevented).toBe(false);
+ });
+
+ it('should focus the first item when Home is pressed', () => {
+ keyManager.focusItem(itemList.get(1)!);
+ expect(keyManager.getActiveItemIndex()).toBe(1);
+
+ keyManager.onKeydown(fakeKeyEvents.home);
+
+ expect(keyManager.getActiveItemIndex()).toBe(0);
+ });
+
+ it('should focus the last item when End is pressed', () => {
+ keyManager.focusItem(itemList.get(0)!);
+ expect(keyManager.getActiveItemIndex()).toBe(0);
+
+ keyManager.onKeydown(fakeKeyEvents.end);
+ expect(keyManager.getActiveItemIndex()).toBe(itemList.length - 1);
+ });
+
+ it('when last item is disabled, should focus the last item when End is pressed', () => {
+ itemList.get(itemList.length - 1)!.isDisabled = true;
+ keyManager.focusItem(itemList.get(0)!);
+ expect(keyManager.getActiveItemIndex()).toBe(0);
+
+ keyManager.onKeydown(fakeKeyEvents.end);
+
+ expect(keyManager.getActiveItemIndex()).toBe(itemList.length - 1);
+ });
+ });
+
+ describe('up/down key events', () => {
+ it('should set subsequent items as active when the down key is pressed', () => {
+ keyManager.focusItem(itemList.get(0)!);
+
+ const spy = jasmine.createSpy('change spy');
+ const subscription = keyManager.change.subscribe(spy);
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one down key event.')
+ .toBe(1);
+ expect(spy).not.toHaveBeenCalledWith(itemList.get(0));
+ expect(spy).toHaveBeenCalledWith(itemList.get(1));
+ expect(spy).not.toHaveBeenCalledWith(itemList.get(2));
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after two down key events.')
+ .toBe(2);
+ expect(spy).not.toHaveBeenCalledWith(itemList.get(0));
+ expect(spy).toHaveBeenCalledWith(itemList.get(2));
+ subscription.unsubscribe();
+ });
+
+ it('should set previous item as active when the up key is pressed', () => {
+ keyManager.focusItem(itemList.get(0)!);
+
+ const spy = jasmine.createSpy('change spy');
+ const subscription = keyManager.change.subscribe(spy);
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one down key event.')
+ .toBe(1);
+ expect(spy).not.toHaveBeenCalledWith(itemList.get(0));
+ expect(spy).toHaveBeenCalledWith(itemList.get(1));
+
+ keyManager.onKeydown(fakeKeyEvents.upArrow);
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one down and one up key event.')
+ .toBe(0);
+ expect(spy).toHaveBeenCalledWith(itemList.get(0));
+
+ subscription.unsubscribe();
+ });
+
+ it('should skip navigate to disabled items', () => {
+ itemList.get(1)!.isDisabled = true;
+ keyManager.focusItem(itemList.get(0)!);
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(keyManager.getActiveItemIndex()).toBe(1);
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(keyManager.getActiveItemIndex()).toBe(2);
+
+ // up event should skip past disabled item from 2 to 0
+ keyManager.onKeydown(fakeKeyEvents.upArrow);
+ expect(keyManager.getActiveItemIndex()).toBe(1);
+ });
+
+ it('should work normally when disabled property does not exist', () => {
+ itemList.get(0)!.isDisabled = undefined;
+ itemList.get(1)!.isDisabled = undefined;
+ itemList.get(2)!.isDisabled = undefined;
+ keyManager.focusItem(itemList.get(0)!);
+
+ const spy = jasmine.createSpy('change spy');
+ const subscription = keyManager.change.subscribe(spy);
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one down event when disabled is not set.')
+ .toBe(1);
+ expect(spy).not.toHaveBeenCalledWith(itemList.get(0));
+ expect(spy).toHaveBeenCalledWith(itemList.get(1));
+ expect(spy).not.toHaveBeenCalledWith(itemList.get(2));
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after two down events when disabled is not set.')
+ .toBe(2);
+ expect(spy).not.toHaveBeenCalledWith(itemList.get(0));
+ expect(spy).toHaveBeenCalledWith(itemList.get(1));
+ expect(spy).toHaveBeenCalledWith(itemList.get(2));
+ subscription.unsubscribe();
+ });
+
+ it('should not move active item past either end of the list', () => {
+ keyManager.focusItem(itemList.get(itemList.length - 1)!);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, selecting the last item')
+ .toBe(itemList.length - 1);
+
+ // This down event would move active item past the end of the list
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, last item still selected after a down event')
+ .toBe(itemList.length - 1);
+
+ keyManager.focusItem(itemList.get(0)!);
+ keyManager.onKeydown(fakeKeyEvents.upArrow);
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, selecting the first item')
+ .toBe(0);
+
+ // This up event would move active item past the beginning of the list
+ keyManager.onKeydown(fakeKeyEvents.upArrow);
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, first item still selected after a up event')
+ .toBe(0);
+ });
+
+ it('should prevent the default keyboard action of handled events', () => {
+ expect(fakeKeyEvents.downArrow.defaultPrevented).toBe(false);
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(fakeKeyEvents.downArrow.defaultPrevented).toBe(true);
+
+ expect(fakeKeyEvents.upArrow.defaultPrevented).toBe(false);
+ keyManager.onKeydown(fakeKeyEvents.upArrow);
+ expect(fakeKeyEvents.upArrow.defaultPrevented).toBe(true);
+ });
+ });
+
+ describe('expand/collapse key events', () => {
+ const parameters: ExpandCollapseKeyEventTestContext[] = [
+ {
+ direction: 'ltr',
+ expandKeyEvent: () => fakeKeyEvents.rightArrow,
+ collapseKeyEvent: () => fakeKeyEvents.leftArrow,
+ },
+ {
+ direction: 'rtl',
+ expandKeyEvent: () => fakeKeyEvents.leftArrow,
+ collapseKeyEvent: () => fakeKeyEvents.rightArrow,
+ },
+ ];
+
+ for (const param of parameters) {
+ describe(`in ${param.direction} mode`, () => {
+ beforeEach(() => {
+ keyManager = new TreeKeyManager(itemList, {
+ horizontalOrientation: param.direction,
+ });
+ for (const item of itemList) {
+ item._isExpanded = false;
+ }
+ });
+
+ it('with nothing active, expand key does not expand any items', () => {
+ expect(itemList.toArray().map(item => item.isExpanded()))
+ .withContext('item expansion state, for all items')
+ .toEqual(itemList.toArray().map(_ => false));
+
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(itemList.toArray().map(item => item.isExpanded()))
+ .withContext('item expansion state, for all items, after expand event')
+ .toEqual(itemList.toArray().map(_ => false));
+ });
+
+ it('with nothing active, collapse key does not collapse any items', () => {
+ for (const item of itemList) {
+ item._isExpanded = true;
+ }
+ expect(itemList.toArray().map(item => item.isExpanded()))
+ .withContext('item expansion state, for all items')
+ .toEqual(itemList.toArray().map(_ => true));
+
+ keyManager.onKeydown(param.collapseKeyEvent());
+
+ expect(itemList.toArray().map(item => item.isExpanded()))
+ .withContext('item expansion state, for all items')
+ .toEqual(itemList.toArray().map(_ => true));
+ });
+
+ it('with nothing active, expand key does not change the active item index', () => {
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, initial')
+ .toEqual(-1);
+
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after expand event')
+ .toEqual(-1);
+ });
+
+ it('with nothing active, collapse key does not change the active item index', () => {
+ for (const item of itemList) {
+ item._isExpanded = true;
+ }
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, initial')
+ .toEqual(-1);
+
+ keyManager.onKeydown(param.collapseKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after collapse event')
+ .toEqual(-1);
+ });
+
+ describe('if the current item is expanded', () => {
+ beforeEach(() => {
+ keyManager.focusItem(parentItem);
+ parentItem._isExpanded = true;
+ });
+
+ it('when the expand key is pressed, moves to the first child', () => {
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one expand key event.')
+ .toBe(1);
+ });
+
+ it(
+ 'when the expand key is pressed, and the first child is disabled, ' +
+ 'moves to the first child',
+ () => {
+ childItem.isDisabled = true;
+
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one expand key event.')
+ .toBe(1);
+ },
+ );
+
+ it(
+ 'when the expand key is pressed, and all children are disabled, ' +
+ 'it activates first child',
+ () => {
+ childItem.isDisabled = true;
+ childItemWithNoChildren.isDisabled = true;
+
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one expand key event.')
+ .toBe(1);
+ },
+ );
+
+ it('when the collapse key is pressed, collapses the item', () => {
+ expect(parentItem.isExpanded())
+ .withContext('active item initial expansion state')
+ .toBe(true);
+
+ keyManager.onKeydown(param.collapseKeyEvent());
+
+ expect(parentItem.isExpanded())
+ .withContext('active item expansion state, after collapse key')
+ .toBe(false);
+ });
+
+ it('when the collapse key is pressed, does not change the active item', () => {
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, initial')
+ .toBe(0);
+
+ keyManager.onKeydown(param.collapseKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one collapse key event.')
+ .toBe(0);
+ });
+ });
+
+ describe('if the current item is expanded, and there are no children', () => {
+ let spy: jasmine.Spy;
+ let subscription: Subscription;
+
+ beforeEach(() => {
+ keyManager.focusItem(childItemWithNoChildren);
+ childItemWithNoChildren._isExpanded = true;
+
+ spy = jasmine.createSpy('change spy');
+ subscription = keyManager.change.subscribe(spy);
+ });
+
+ afterEach(() => {
+ subscription.unsubscribe();
+ });
+
+ it('when the expand key is pressed, does not change the active item', () => {
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one expand key event.')
+ .toBe(3);
+ expect(spy).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('if the current item is collapsed, and has a parent item', () => {
+ let spy: jasmine.Spy;
+ let subscription: Subscription;
+
+ beforeEach(() => {
+ keyManager.focusItem(childItem);
+ childItem._isExpanded = false;
+
+ spy = jasmine.createSpy('change spy');
+ subscription = keyManager.change.subscribe(spy);
+ });
+
+ afterEach(() => {
+ subscription.unsubscribe();
+ });
+
+ it('when the expand key is pressed, expands the current item', () => {
+ expect(childItem.isExpanded())
+ .withContext('active item initial expansion state')
+ .toBe(false);
+
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(childItem.isExpanded())
+ .withContext('active item expansion state, after expand key')
+ .toBe(true);
+ });
+
+ it('when the expand key is pressed, does not change active item', () => {
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, initial')
+ .toBe(1);
+
+ keyManager.onKeydown(param.expandKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one collapse key event.')
+ .toBe(1);
+ expect(spy).not.toHaveBeenCalled();
+ });
+
+ it('when the collapse key is pressed, moves the active item to the parent', () => {
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, initial')
+ .toBe(1);
+
+ keyManager.onKeydown(param.collapseKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one collapse key event.')
+ .toBe(0);
+ });
+
+ it('when the collapse key is pressed, and the parent is disabled, focuses parent', () => {
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, initial')
+ .toBe(1);
+
+ parentItem.isDisabled = true;
+ keyManager.onKeydown(param.collapseKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one collapse key event.')
+ .toBe(0);
+ });
+ });
+
+ describe('if the current item is collapsed, and has no parent items', () => {
+ let spy: jasmine.Spy;
+ let subscription: Subscription;
+
+ beforeEach(() => {
+ keyManager.focusItem(parentItem);
+ parentItem._isExpanded = false;
+
+ spy = jasmine.createSpy('change spy');
+ subscription = keyManager.change.subscribe(spy);
+ });
+
+ afterEach(() => {
+ subscription.unsubscribe();
+ });
+
+ it('when the collapse key is pressed, does nothing', () => {
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, initial')
+ .toBe(0);
+
+ keyManager.onKeydown(param.collapseKeyEvent());
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after one collapse key event.')
+ .toBe(0);
+ expect(spy).not.toHaveBeenCalledWith(parentItem);
+ });
+ });
+ });
+ }
+ });
+
+ describe('typeahead mode', () => {
+ const debounceInterval = 300;
+
+ beforeEach(() => {
+ keyManager = new TreeKeyManager(itemList, {
+ typeAheadDebounceInterval: debounceInterval,
+ });
+ });
+
+ it('should throw if the items do not implement the getLabel method', () => {
+ const invalidQueryList = new QueryList();
+ invalidQueryList.reset([{disabled: false}]);
+
+ expect(
+ () =>
+ new TreeKeyManager(invalidQueryList, {
+ typeAheadDebounceInterval: true,
+ }),
+ ).toThrowError(/must implement/);
+ });
+
+ it('should debounce the input key presses', fakeAsync(() => {
+ keyManager.onKeydown(createKeyboardEvent('keydown', 79, 'o')); // types "o"
+ tick(1);
+ keyManager.onKeydown(createKeyboardEvent('keydown', 78, 'n')); // types "n"
+ tick(1);
+ keyManager.onKeydown(createKeyboardEvent('keydown', 69, 'e')); // types "e"
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, before debounce interval')
+ .not.toBe(0);
+
+ tick(debounceInterval - 1);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after partial debounce interval')
+ .not.toBe(0);
+
+ tick(1);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after full debounce interval')
+ .toBe(0);
+ }));
+
+ it('uses a default debounce interval', fakeAsync(() => {
+ const defaultInterval = 200;
+ keyManager = new TreeKeyManager(itemList, {
+ typeAheadDebounceInterval: true,
+ });
+
+ keyManager.onKeydown(createKeyboardEvent('keydown', 79, 'o')); // types "o"
+ tick(1);
+ keyManager.onKeydown(createKeyboardEvent('keydown', 78, 'n')); // types "n"
+ tick(1);
+ keyManager.onKeydown(createKeyboardEvent('keydown', 69, 'e')); // types "e"
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, before debounce interval')
+ .not.toBe(0);
+
+ tick(defaultInterval - 1);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after partial debounce interval')
+ .not.toBe(0);
+
+ tick(1);
+
+ expect(keyManager.getActiveItemIndex())
+ .withContext('active item index, after full debounce interval')
+ .toBe(0);
+ }));
+
+ it('should focus the first item that starts with a letter', fakeAsync(() => {
+ keyManager.onKeydown(createKeyboardEvent('keydown', 84, 't')); // types "t"
+
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(1);
+ }));
+
+ it('should focus the first item that starts with sequence of letters', fakeAsync(() => {
+ keyManager.onKeydown(createKeyboardEvent('keydown', 84, 't')); // types "t"
+ keyManager.onKeydown(createKeyboardEvent('keydown', 72, 'h')); // types "h"
+
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(2);
+ }));
+
+ it('should cancel any pending timers if a navigation key is pressed', fakeAsync(() => {
+ keyManager.onKeydown(createKeyboardEvent('keydown', 84, 't')); // types "t"
+ keyManager.onKeydown(createKeyboardEvent('keydown', 72, 'h')); // types "h"
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+ }));
+
+ it('should handle non-English input', fakeAsync(() => {
+ itemList.reset([
+ new itemParam.constructor('ĐµĐ´Đ½Đ¾'),
+ new itemParam.constructor('Đ´Đ²Đµ'),
+ new itemParam.constructor('Ñ‚Ñ€Đ¸'),
+ ]);
+ itemList.notifyOnChanges();
+
+ const keyboardEvent = createKeyboardEvent('keydown', 68, 'Đ´');
+
+ keyManager.onKeydown(keyboardEvent); // types "Đ´"
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(1);
+ }));
+
+ it('should handle non-letter characters', fakeAsync(() => {
+ itemList.reset([
+ new itemParam.constructor('[]'),
+ new itemParam.constructor('321'),
+ new itemParam.constructor('`!?'),
+ ]);
+ itemList.notifyOnChanges();
+
+ keyManager.onKeydown(createKeyboardEvent('keydown', 192, '`')); // types "`"
+ tick(debounceInterval);
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(2);
+
+ keyManager.onKeydown(createKeyboardEvent('keydown', 51, '3')); // types "3"
+ tick(debounceInterval);
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(1);
+
+ keyManager.onKeydown(createKeyboardEvent('keydown', 219, '[')); // types "["
+ tick(debounceInterval);
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+ }));
+
+ it('should allow focus to disabled items', fakeAsync(() => {
+ expect(keyManager.getActiveItemIndex()).withContext('initial active item index').toBe(-1);
+
+ parentItem.isDisabled = true;
+
+ keyManager.onKeydown(createKeyboardEvent('keydown', 79, 'o')); // types "o"
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('initial active item index').toBe(0);
+ }));
+
+ it('should start looking for matches after the active item', fakeAsync(() => {
+ const frodo = new itemParam.constructor('Frodo');
+ itemList.reset([
+ new itemParam.constructor('Bilbo'),
+ frodo,
+ new itemParam.constructor('Pippin'),
+ new itemParam.constructor('Boromir'),
+ new itemParam.constructor('Aragorn'),
+ ]);
+ itemList.notifyOnChanges();
+
+ keyManager.focusItem(frodo);
+ keyManager.onKeydown(createKeyboardEvent('keydown', 66, 'b'));
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(3);
+ }));
+
+ it('should wrap back around if there were no matches after the active item', fakeAsync(() => {
+ const boromir = new itemParam.constructor('Boromir');
+ itemList.reset([
+ new itemParam.constructor('Bilbo'),
+ new itemParam.constructor('Frodo'),
+ new itemParam.constructor('Pippin'),
+ boromir,
+ new itemParam.constructor('Aragorn'),
+ ]);
+ itemList.notifyOnChanges();
+
+ keyManager.focusItem(boromir);
+ keyManager.onKeydown(createKeyboardEvent('keydown', 66, 'b'));
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+ }));
+
+ it('should wrap back around if the last item is active', fakeAsync(() => {
+ keyManager.focusItem(lastItem);
+ keyManager.onKeydown(createKeyboardEvent('keydown', 79, 'o'));
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+ }));
+
+ it('should be able to select the first item', fakeAsync(() => {
+ keyManager.onKeydown(createKeyboardEvent('keydown', 79, 'o'));
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+ }));
+
+ it('should not do anything if there is no match', fakeAsync(() => {
+ keyManager.onKeydown(createKeyboardEvent('keydown', 87, 'w'));
+ tick(debounceInterval);
+
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(-1);
+ }));
+ });
+
+ describe('focusItem', () => {
+ it('should focus the provided index', () => {
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+
+ keyManager.focusItem(1);
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(1);
+ });
+
+ it('should be able to set the active item by reference', () => {
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(0);
+
+ keyManager.focusItem(itemList.get(2)!);
+ expect(keyManager.getActiveItemIndex()).withContext('active item index').toBe(2);
+ });
+
+ it('should be able to set the active item without emitting an event', () => {
+ const spy = jasmine.createSpy('change spy');
+ const subscription = keyManager.change.subscribe(spy);
+
+ expect(keyManager.getActiveItemIndex()).toBe(0);
+
+ keyManager.focusItem(2, {emitChangeEvent: false});
+
+ expect(keyManager.getActiveItemIndex()).toBe(2);
+ expect(spy).not.toHaveBeenCalled();
+
+ subscription.unsubscribe();
+ });
+
+ it('should not emit an event if the item did not change', () => {
+ const spy = jasmine.createSpy('change spy');
+ const subscription = keyManager.change.subscribe(spy);
+
+ keyManager.focusItem(2);
+ keyManager.focusItem(2);
+
+ expect(spy).toHaveBeenCalledTimes(1);
+
+ subscription.unsubscribe();
+ });
+ });
+
+ describe('skip predicate', () => {
+ beforeEach(() => {
+ keyManager = new TreeKeyManager(itemList, {
+ skipPredicate: item => item.skipItem ?? false,
+ });
+ itemList.notifyOnChanges();
+ });
+
+ it('should be able to skip items with a custom predicate', () => {
+ itemList.get(1)!.skipItem = true;
+ expect(keyManager.getActiveItemIndex()).toBe(0);
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+
+ expect(keyManager.getActiveItemIndex()).toBe(2);
+ });
+ });
+
+ describe('focus', () => {
+ beforeEach(() => {
+ for (const item of itemList) {
+ spyOn(item, 'focus');
+ }
+ });
+
+ it('calls .focus() on focused items', () => {
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+
+ expect(itemList.get(0)!.focus).not.toHaveBeenCalled();
+ expect(itemList.get(1)!.focus).toHaveBeenCalledTimes(1);
+ expect(itemList.get(2)!.focus).not.toHaveBeenCalled();
+
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+ expect(itemList.get(0)!.focus).not.toHaveBeenCalled();
+ expect(itemList.get(1)!.focus).toHaveBeenCalledTimes(1);
+ expect(itemList.get(2)!.focus).toHaveBeenCalledTimes(1);
+ });
+
+ it('calls .focus() on focused items, when pressing up key', () => {
+ keyManager.onKeydown(fakeKeyEvents.downArrow);
+
+ expect(itemList.get(0)!.focus).not.toHaveBeenCalled();
+ expect(itemList.get(1)!.focus).toHaveBeenCalledTimes(1);
+
+ keyManager.onKeydown(fakeKeyEvents.upArrow);
+
+ expect(itemList.get(0)!.focus).toHaveBeenCalledTimes(1);
+ expect(itemList.get(1)!.focus).toHaveBeenCalledTimes(1);
+ });
+ });
+ });
+ }
+});
diff --git a/src/cdk/a11y/key-manager/tree-key-manager.ts b/src/cdk/a11y/key-manager/tree-key-manager.ts
new file mode 100644
index 000000000000..1b0f19be5526
--- /dev/null
+++ b/src/cdk/a11y/key-manager/tree-key-manager.ts
@@ -0,0 +1,429 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+import {InjectionToken, QueryList} from '@angular/core';
+import {coerceObservable} from '@angular/cdk/coercion/private';
+import {Observable, Subject, Subscription, isObservable, of as observableOf} from 'rxjs';
+import {take} from 'rxjs/operators';
+import {
+ TreeKeyManagerFactory,
+ TreeKeyManagerItem,
+ TreeKeyManagerOptions,
+ TreeKeyManagerStrategy,
+} from './tree-key-manager-strategy';
+import {Typeahead} from './typeahead';
+
+/**
+ * This class manages keyboard events for trees. If you pass it a QueryList or other list of tree
+ * items, it will set the active item, focus, handle expansion and typeahead correctly when
+ * keyboard events occur.
+ */
+export class TreeKeyManager implements TreeKeyManagerStrategy {
+ /** The index of the currently active (focused) item. */
+ private _activeItemIndex = -1;
+ /** The currently active (focused) item. */
+ private _activeItem: T | null = null;
+ /** Whether or not we activate the item when it's focused. */
+ private _shouldActivationFollowFocus = false;
+ /**
+ * The orientation that the tree is laid out in. In `rtl` mode, the behavior of Left and
+ * Right arrow are switched.
+ */
+ private _horizontalOrientation: 'ltr' | 'rtl' = 'ltr';
+
+ /**
+ * Predicate function that can be used to check whether an item should be skipped
+ * by the key manager.
+ *
+ * The default value for this doesn't skip any elements in order to keep tree items focusable
+ * when disabled. This aligns with ARIA guidelines:
+ * https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols.
+ */
+ private _skipPredicateFn = (_item: T) => false;
+
+ /** Function to determine equivalent items. */
+ private _trackByFn: (item: T) => unknown = (item: T) => item;
+
+ /** Synchronous cache of the items to manage. */
+ private _items: T[] = [];
+
+ private _typeahead?: Typeahead;
+ private _typeaheadSubscription = Subscription.EMPTY;
+
+ private _hasInitialFocused = false;
+
+ private _initializeFocus(): void {
+ if (this._hasInitialFocused || this._items.length === 0) {
+ return;
+ }
+
+ let activeIndex = 0;
+ for (let i = 0; i < this._items.length; i++) {
+ if (!this._skipPredicateFn(this._items[i]) && !this._isItemDisabled(this._items[i])) {
+ activeIndex = i;
+ break;
+ }
+ }
+
+ const activeItem = this._items[activeIndex];
+
+ // Use `makeFocusable` here, because we want the item to just be focusable, not actually
+ // capture the focus since the user isn't interacting with it. See #29628.
+ if (activeItem.makeFocusable) {
+ this._activeItem?.unfocus();
+ this._activeItemIndex = activeIndex;
+ this._activeItem = activeItem;
+ this._typeahead?.setCurrentSelectedItemIndex(activeIndex);
+ activeItem.makeFocusable();
+ } else {
+ // Backwards compatibility for items that don't implement `makeFocusable`.
+ this.focusItem(activeIndex);
+ }
+
+ this._hasInitialFocused = true;
+ }
+
+ /**
+ *
+ * @param items List of TreeKeyManager options. Can be synchronous or asynchronous.
+ * @param config Optional configuration options. By default, use 'ltr' horizontal orientation. By
+ * default, do not skip any nodes. By default, key manager only calls `focus` method when items
+ * are focused and does not call `activate`. If `typeaheadDefaultInterval` is `true`, use a
+ * default interval of 200ms.
+ */
+ constructor(items: Observable | QueryList | T[], config: TreeKeyManagerOptions) {
+ // We allow for the items to be an array or Observable because, in some cases, the consumer may
+ // not have access to a QueryList of the items they want to manage (e.g. when the
+ // items aren't being collected via `ViewChildren` or `ContentChildren`).
+ if (items instanceof QueryList) {
+ this._items = items.toArray();
+ items.changes.subscribe((newItems: QueryList) => {
+ this._items = newItems.toArray();
+ this._typeahead?.setItems(this._items);
+ this._updateActiveItemIndex(this._items);
+ this._initializeFocus();
+ });
+ } else if (isObservable(items)) {
+ items.subscribe(newItems => {
+ this._items = newItems;
+ this._typeahead?.setItems(newItems);
+ this._updateActiveItemIndex(newItems);
+ this._initializeFocus();
+ });
+ } else {
+ this._items = items;
+ this._initializeFocus();
+ }
+
+ if (typeof config.shouldActivationFollowFocus === 'boolean') {
+ this._shouldActivationFollowFocus = config.shouldActivationFollowFocus;
+ }
+ if (config.horizontalOrientation) {
+ this._horizontalOrientation = config.horizontalOrientation;
+ }
+ if (config.skipPredicate) {
+ this._skipPredicateFn = config.skipPredicate;
+ }
+ if (config.trackBy) {
+ this._trackByFn = config.trackBy;
+ }
+ if (typeof config.typeAheadDebounceInterval !== 'undefined') {
+ this._setTypeAhead(config.typeAheadDebounceInterval);
+ }
+ }
+
+ /** Stream that emits any time the focused item changes. */
+ readonly change = new Subject();
+
+ /** Cleans up the key manager. */
+ destroy() {
+ this._typeaheadSubscription.unsubscribe();
+ this._typeahead?.destroy();
+ this.change.complete();
+ }
+
+ /**
+ * Handles a keyboard event on the tree.
+ * @param event Keyboard event that represents the user interaction with the tree.
+ */
+ onKeydown(event: KeyboardEvent) {
+ const key = event.key;
+
+ switch (key) {
+ case 'Tab':
+ // Return early here, in order to allow Tab to actually tab out of the tree
+ return;
+
+ case 'ArrowDown':
+ this._focusNextItem();
+ break;
+
+ case 'ArrowUp':
+ this._focusPreviousItem();
+ break;
+
+ case 'ArrowRight':
+ this._horizontalOrientation === 'rtl'
+ ? this._collapseCurrentItem()
+ : this._expandCurrentItem();
+ break;
+
+ case 'ArrowLeft':
+ this._horizontalOrientation === 'rtl'
+ ? this._expandCurrentItem()
+ : this._collapseCurrentItem();
+ break;
+
+ case 'Home':
+ this._focusFirstItem();
+ break;
+
+ case 'End':
+ this._focusLastItem();
+ break;
+
+ case 'Enter':
+ case ' ':
+ this._activateCurrentItem();
+ break;
+
+ default:
+ if (event.key === '*') {
+ this._expandAllItemsAtCurrentItemLevel();
+ break;
+ }
+
+ this._typeahead?.handleKey(event);
+ // Return here, in order to avoid preventing the default action of non-navigational
+ // keys or resetting the buffer of pressed letters.
+ return;
+ }
+
+ // Reset the typeahead since the user has used a navigational key.
+ this._typeahead?.reset();
+ event.preventDefault();
+ }
+
+ /** Index of the currently active item. */
+ getActiveItemIndex(): number | null {
+ return this._activeItemIndex;
+ }
+
+ /** The currently active item. */
+ getActiveItem(): T | null {
+ return this._activeItem;
+ }
+
+ /** Focus the first available item. */
+ private _focusFirstItem(): void {
+ this.focusItem(this._findNextAvailableItemIndex(-1));
+ }
+
+ /** Focus the last available item. */
+ private _focusLastItem(): void {
+ this.focusItem(this._findPreviousAvailableItemIndex(this._items.length));
+ }
+
+ /** Focus the next available item. */
+ private _focusNextItem(): void {
+ this.focusItem(this._findNextAvailableItemIndex(this._activeItemIndex));
+ }
+
+ /** Focus the previous available item. */
+ private _focusPreviousItem(): void {
+ this.focusItem(this._findPreviousAvailableItemIndex(this._activeItemIndex));
+ }
+
+ /**
+ * Focus the provided item by index.
+ * @param index The index of the item to focus.
+ * @param options Additional focusing options.
+ */
+ focusItem(index: number, options?: {emitChangeEvent?: boolean}): void;
+ focusItem(item: T, options?: {emitChangeEvent?: boolean}): void;
+ focusItem(itemOrIndex: number | T, options?: {emitChangeEvent?: boolean}): void;
+ focusItem(itemOrIndex: number | T, options: {emitChangeEvent?: boolean} = {}) {
+ // Set default options
+ options.emitChangeEvent ??= true;
+
+ let index =
+ typeof itemOrIndex === 'number'
+ ? itemOrIndex
+ : this._items.findIndex(item => this._trackByFn(item) === this._trackByFn(itemOrIndex));
+ if (index < 0 || index >= this._items.length) {
+ return;
+ }
+ const activeItem = this._items[index];
+
+ // If we're just setting the same item, don't re-call activate or focus
+ if (
+ this._activeItem !== null &&
+ this._trackByFn(activeItem) === this._trackByFn(this._activeItem)
+ ) {
+ return;
+ }
+
+ const previousActiveItem = this._activeItem;
+ this._activeItem = activeItem ?? null;
+ this._activeItemIndex = index;
+ this._typeahead?.setCurrentSelectedItemIndex(index);
+
+ this._activeItem?.focus();
+ previousActiveItem?.unfocus();
+
+ if (options.emitChangeEvent) {
+ this.change.next(this._activeItem);
+ }
+
+ if (this._shouldActivationFollowFocus) {
+ this._activateCurrentItem();
+ }
+ }
+
+ private _updateActiveItemIndex(newItems: T[]) {
+ const activeItem = this._activeItem;
+ if (!activeItem) {
+ return;
+ }
+
+ const newIndex = newItems.findIndex(
+ item => this._trackByFn(item) === this._trackByFn(activeItem),
+ );
+
+ if (newIndex > -1 && newIndex !== this._activeItemIndex) {
+ this._activeItemIndex = newIndex;
+ this._typeahead?.setCurrentSelectedItemIndex(newIndex);
+ }
+ }
+
+ private _setTypeAhead(debounceInterval: number | boolean) {
+ this._typeahead = new Typeahead(this._items, {
+ debounceInterval: typeof debounceInterval === 'number' ? debounceInterval : undefined,
+ skipPredicate: item => this._skipPredicateFn(item),
+ });
+
+ this._typeaheadSubscription = this._typeahead.selectedItem.subscribe(item => {
+ this.focusItem(item);
+ });
+ }
+
+ private _findNextAvailableItemIndex(startingIndex: number) {
+ for (let i = startingIndex + 1; i < this._items.length; i++) {
+ if (!this._skipPredicateFn(this._items[i])) {
+ return i;
+ }
+ }
+ return startingIndex;
+ }
+
+ private _findPreviousAvailableItemIndex(startingIndex: number) {
+ for (let i = startingIndex - 1; i >= 0; i--) {
+ if (!this._skipPredicateFn(this._items[i])) {
+ return i;
+ }
+ }
+ return startingIndex;
+ }
+
+ /**
+ * If the item is already expanded, we collapse the item. Otherwise, we will focus the parent.
+ */
+ private _collapseCurrentItem() {
+ if (!this._activeItem) {
+ return;
+ }
+
+ if (this._isCurrentItemExpanded()) {
+ this._activeItem.collapse();
+ } else {
+ const parent = this._activeItem.getParent();
+ if (!parent || this._skipPredicateFn(parent as T)) {
+ return;
+ }
+ this.focusItem(parent as T);
+ }
+ }
+
+ /**
+ * If the item is already collapsed, we expand the item. Otherwise, we will focus the first child.
+ */
+ private _expandCurrentItem() {
+ if (!this._activeItem) {
+ return;
+ }
+
+ if (!this._isCurrentItemExpanded()) {
+ this._activeItem.expand();
+ } else {
+ coerceObservable(this._activeItem.getChildren())
+ .pipe(take(1))
+ .subscribe(children => {
+ const firstChild = children.find(child => !this._skipPredicateFn(child as T));
+ if (!firstChild) {
+ return;
+ }
+ this.focusItem(firstChild as T);
+ });
+ }
+ }
+
+ private _isCurrentItemExpanded() {
+ if (!this._activeItem) {
+ return false;
+ }
+ return typeof this._activeItem.isExpanded === 'boolean'
+ ? this._activeItem.isExpanded
+ : this._activeItem.isExpanded();
+ }
+
+ private _isItemDisabled(item: TreeKeyManagerItem) {
+ return typeof item.isDisabled === 'boolean' ? item.isDisabled : item.isDisabled?.();
+ }
+
+ /** For all items that are the same level as the current item, we expand those items. */
+ private _expandAllItemsAtCurrentItemLevel() {
+ if (!this._activeItem) {
+ return;
+ }
+
+ const parent = this._activeItem.getParent();
+ let itemsToExpand;
+ if (!parent) {
+ itemsToExpand = observableOf(this._items.filter(item => item.getParent() === null));
+ } else {
+ itemsToExpand = coerceObservable(parent.getChildren());
+ }
+
+ itemsToExpand.pipe(take(1)).subscribe(items => {
+ for (const item of items) {
+ item.expand();
+ }
+ });
+ }
+
+ private _activateCurrentItem() {
+ this._activeItem?.activate();
+ }
+}
+
+/** @docs-private */
+export function TREE_KEY_MANAGER_FACTORY(): TreeKeyManagerFactory {
+ return (items, options) => new TreeKeyManager(items, options);
+}
+
+/** Injection token that determines the key manager to use. */
+export const TREE_KEY_MANAGER = new InjectionToken>('tree-key-manager', {
+ providedIn: 'root',
+ factory: TREE_KEY_MANAGER_FACTORY,
+});
+
+/** @docs-private */
+export const TREE_KEY_MANAGER_FACTORY_PROVIDER = {
+ provide: TREE_KEY_MANAGER,
+ useFactory: TREE_KEY_MANAGER_FACTORY,
+};
diff --git a/src/cdk/a11y/key-manager/typeahead.ts b/src/cdk/a11y/key-manager/typeahead.ts
new file mode 100644
index 000000000000..a0e14cefdf6f
--- /dev/null
+++ b/src/cdk/a11y/key-manager/typeahead.ts
@@ -0,0 +1,129 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+import {A, NINE, Z, ZERO} from '@angular/cdk/keycodes';
+import {Subject, Observable} from 'rxjs';
+import {debounceTime, filter, map, tap} from 'rxjs/operators';
+
+const DEFAULT_TYPEAHEAD_DEBOUNCE_INTERVAL_MS = 200;
+
+interface TypeaheadItem {
+ getLabel?(): string;
+}
+
+interface TypeaheadConfig {
+ debounceInterval?: number;
+ skipPredicate?: (item: T) => boolean | undefined;
+}
+
+/**
+ * Selects items based on keyboard inputs. Implements the typeahead functionality of
+ * `role="listbox"` or `role="tree"` and other related roles.
+ */
+export class Typeahead {
+ private readonly _letterKeyStream = new Subject();
+ private _items: readonly T[] = [];
+ private _selectedItemIndex = -1;
+
+ /** Buffer for the letters that the user has pressed */
+ private _pressedLetters: string[] = [];
+
+ private _skipPredicateFn?: (item: T) => boolean | undefined;
+
+ private readonly _selectedItem = new Subject();
+ readonly selectedItem: Observable = this._selectedItem;
+
+ constructor(initialItems: readonly T[], config?: TypeaheadConfig) {
+ const typeAheadInterval =
+ typeof config?.debounceInterval === 'number'
+ ? config.debounceInterval
+ : DEFAULT_TYPEAHEAD_DEBOUNCE_INTERVAL_MS;
+
+ if (config?.skipPredicate) {
+ this._skipPredicateFn = config.skipPredicate;
+ }
+
+ if (
+ (typeof ngDevMode === 'undefined' || ngDevMode) &&
+ initialItems.length &&
+ initialItems.some(item => typeof item.getLabel !== 'function')
+ ) {
+ throw new Error('KeyManager items in typeahead mode must implement the `getLabel` method.');
+ }
+
+ this.setItems(initialItems);
+ this._setupKeyHandler(typeAheadInterval);
+ }
+
+ destroy() {
+ this._pressedLetters = [];
+ this._letterKeyStream.complete();
+ this._selectedItem.complete();
+ }
+
+ setCurrentSelectedItemIndex(index: number) {
+ this._selectedItemIndex = index;
+ }
+
+ setItems(items: readonly T[]) {
+ this._items = items;
+ }
+
+ handleKey(event: KeyboardEvent): void {
+ const keyCode = event.keyCode;
+
+ // Attempt to use the `event.key` which also maps it to the user's keyboard language,
+ // otherwise fall back to resolving alphanumeric characters via the keyCode.
+ if (event.key && event.key.length === 1) {
+ this._letterKeyStream.next(event.key.toLocaleUpperCase());
+ } else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {
+ this._letterKeyStream.next(String.fromCharCode(keyCode));
+ }
+ }
+
+ /** Gets whether the user is currently typing into the manager using the typeahead feature. */
+ isTyping(): boolean {
+ return this._pressedLetters.length > 0;
+ }
+
+ /** Resets the currently stored sequence of typed letters. */
+ reset(): void {
+ this._pressedLetters = [];
+ }
+
+ private _setupKeyHandler(typeAheadInterval: number) {
+ // Debounce the presses of non-navigational keys, collect the ones that correspond to letters
+ // and convert those letters back into a string. Afterwards find the first item that starts
+ // with that string and select it.
+ this._letterKeyStream
+ .pipe(
+ tap(letter => this._pressedLetters.push(letter)),
+ debounceTime(typeAheadInterval),
+ filter(() => this._pressedLetters.length > 0),
+ map(() => this._pressedLetters.join('').toLocaleUpperCase()),
+ )
+ .subscribe(inputString => {
+ // Start at 1 because we want to start searching at the item immediately
+ // following the current active item.
+ for (let i = 1; i < this._items.length + 1; i++) {
+ const index = (this._selectedItemIndex + i) % this._items.length;
+ const item = this._items[index];
+
+ if (
+ !this._skipPredicateFn?.(item) &&
+ item.getLabel?.().toLocaleUpperCase().trim().indexOf(inputString) === 0
+ ) {
+ this._selectedItem.next(item);
+ break;
+ }
+ }
+
+ this._pressedLetters = [];
+ });
+ }
+}
diff --git a/src/cdk/a11y/public-api.ts b/src/cdk/a11y/public-api.ts
index af4e24404387..f0c600b4016d 100644
--- a/src/cdk/a11y/public-api.ts
+++ b/src/cdk/a11y/public-api.ts
@@ -10,6 +10,9 @@ export * from './aria-describer/aria-reference';
export * from './key-manager/activedescendant-key-manager';
export * from './key-manager/focus-key-manager';
export * from './key-manager/list-key-manager';
+export * from './key-manager/noop-tree-key-manager';
+export * from './key-manager/tree-key-manager';
+export * from './key-manager/tree-key-manager-strategy';
export * from './focus-trap/configurable-focus-trap';
export * from './focus-trap/configurable-focus-trap-config';
export * from './focus-trap/configurable-focus-trap-factory';
diff --git a/src/cdk/accordion/accordion-item.spec.ts b/src/cdk/accordion/accordion-item.spec.ts
index d6197ec06e82..253311a687ad 100644
--- a/src/cdk/accordion/accordion-item.spec.ts
+++ b/src/cdk/accordion/accordion-item.spec.ts
@@ -15,7 +15,6 @@ describe('CdkAccordionItem', () => {
ItemGroupWithAccordion,
],
});
- TestBed.compileComponents();
}));
describe('single item', () => {
diff --git a/src/cdk/accordion/accordion-item.ts b/src/cdk/accordion/accordion-item.ts
index 64bb79bfd60b..e2001b1cc665 100644
--- a/src/cdk/accordion/accordion-item.ts
+++ b/src/cdk/accordion/accordion-item.ts
@@ -26,7 +26,7 @@ import {Subscription} from 'rxjs';
let nextId = 0;
/**
- * An basic directive expected to be extended and decorated as a component. Sets up all
+ * A basic directive expected to be extended and decorated as a component. Sets up all
* events and attributes needed to be managed by a CdkAccordion parent.
*/
@Directive({
diff --git a/src/cdk/accordion/accordion.spec.ts b/src/cdk/accordion/accordion.spec.ts
index 4285a1b97310..3a263d9f47cb 100644
--- a/src/cdk/accordion/accordion.spec.ts
+++ b/src/cdk/accordion/accordion.spec.ts
@@ -11,7 +11,6 @@ describe('CdkAccordion', () => {
TestBed.configureTestingModule({
imports: [BrowserAnimationsModule, CdkAccordionModule, SetOfItems, NestedItems],
});
- TestBed.compileComponents();
}));
it('should ensure only one item is expanded at a time', () => {
diff --git a/src/cdk/bidi/directionality.spec.ts b/src/cdk/bidi/directionality.spec.ts
index 68c85630de86..41330a27b495 100644
--- a/src/cdk/bidi/directionality.spec.ts
+++ b/src/cdk/bidi/directionality.spec.ts
@@ -18,7 +18,7 @@ describe('Directionality', () => {
ElementWithPredefinedUppercaseDir,
],
providers: [{provide: DIR_DOCUMENT, useFactory: () => fakeDocument}],
- }).compileComponents();
+ });
}));
describe('Service', () => {
diff --git a/src/cdk/clipboard/copy-to-clipboard.spec.ts b/src/cdk/clipboard/copy-to-clipboard.spec.ts
index 337dcaa01fc5..073b4df1bded 100644
--- a/src/cdk/clipboard/copy-to-clipboard.spec.ts
+++ b/src/cdk/clipboard/copy-to-clipboard.spec.ts
@@ -31,8 +31,6 @@ describe('CdkCopyToClipboard', () => {
TestBed.configureTestingModule({
imports: [ClipboardModule, CopyToClipboardHost],
});
-
- TestBed.compileComponents();
}));
beforeEach(() => {
diff --git a/src/cdk/coercion/number-property.ts b/src/cdk/coercion/number-property.ts
index 2452ab2f15a8..50b5ff8d0841 100644
--- a/src/cdk/coercion/number-property.ts
+++ b/src/cdk/coercion/number-property.ts
@@ -16,7 +16,10 @@ export type NumberInput = string | number | null | undefined;
export function coerceNumberProperty(value: any): number;
export function coerceNumberProperty(value: any, fallback: D): number | D;
export function coerceNumberProperty(value: any, fallbackValue = 0) {
- return _isNumberValue(value) ? Number(value) : fallbackValue;
+ if (_isNumberValue(value)) {
+ return Number(value);
+ }
+ return arguments.length === 2 ? fallbackValue : 0;
}
/**
diff --git a/src/cdk/coercion/private/BUILD.bazel b/src/cdk/coercion/private/BUILD.bazel
new file mode 100644
index 000000000000..a488f49f66a3
--- /dev/null
+++ b/src/cdk/coercion/private/BUILD.bazel
@@ -0,0 +1,45 @@
+load(
+ "//tools:defaults.bzl",
+ "ng_module",
+ "ng_test_library",
+ "ng_web_test_suite",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+ng_module(
+ name = "private",
+ srcs = glob(
+ ["**/*.ts"],
+ exclude = ["**/*.spec.ts"],
+ ),
+ deps = [
+ "//src:dev_mode_types",
+ "@npm//@angular/core",
+ "@npm//rxjs",
+ ],
+)
+
+ng_test_library(
+ name = "private_tests_lib",
+ srcs = glob(
+ ["**/*.spec.ts"],
+ exclude = ["**/*.e2e.spec.ts"],
+ ),
+ deps = [
+ ":private",
+ "@npm//rxjs",
+ ],
+)
+
+ng_web_test_suite(
+ name = "unit_tests",
+ deps = [
+ ":private_tests_lib",
+ ],
+)
+
+filegroup(
+ name = "source-files",
+ srcs = glob(["**/*.ts"]),
+)
diff --git a/src/cdk/coercion/private/index.ts b/src/cdk/coercion/private/index.ts
new file mode 100644
index 000000000000..f6b637b3d215
--- /dev/null
+++ b/src/cdk/coercion/private/index.ts
@@ -0,0 +1,9 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+export * from './observable';
diff --git a/src/cdk/coercion/private/observable.spec.ts b/src/cdk/coercion/private/observable.spec.ts
new file mode 100644
index 000000000000..214a35a711bb
--- /dev/null
+++ b/src/cdk/coercion/private/observable.spec.ts
@@ -0,0 +1,24 @@
+import {Observable, ReplaySubject} from 'rxjs';
+import {coerceObservable} from './observable';
+import {fakeAsync} from '@angular/core/testing';
+
+describe('coerceObservable', () => {
+ it('should return the Observable, if an Observable is passed in', () => {
+ const observable = new Observable();
+ expect(coerceObservable(observable)).toBe(observable);
+ });
+
+ it('should return subclasses of Observables', () => {
+ const observable = new ReplaySubject(1);
+ expect(coerceObservable(observable)).toBe(observable);
+ });
+
+ it('should wrap non-Observables in Observables', fakeAsync(() => {
+ const observable = coerceObservable(3);
+ let emittedValue = 0;
+ observable.subscribe(value => {
+ emittedValue = value;
+ });
+ expect(emittedValue).toBe(3);
+ }));
+});
diff --git a/src/cdk/coercion/private/observable.ts b/src/cdk/coercion/private/observable.ts
new file mode 100644
index 000000000000..528c4f7fc497
--- /dev/null
+++ b/src/cdk/coercion/private/observable.ts
@@ -0,0 +1,19 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import {Observable, isObservable, of as observableOf} from 'rxjs';
+
+/**
+ * Given either an Observable or non-Observable value, returns either the original
+ * Observable, or wraps it in an Observable that emits the non-Observable value.
+ */
+export function coerceObservable(data: T | Observable): Observable {
+ if (!isObservable(data)) {
+ return observableOf(data);
+ }
+ return data;
+}
diff --git a/src/cdk/config.bzl b/src/cdk/config.bzl
index 956010dfe44d..72c7a68bf286 100644
--- a/src/cdk/config.bzl
+++ b/src/cdk/config.bzl
@@ -5,6 +5,7 @@ CDK_ENTRYPOINTS = [
"bidi",
"clipboard",
"coercion",
+ "coercion/private",
"collections",
"dialog",
"drag-drop",
diff --git a/src/cdk/dialog/dialog.md b/src/cdk/dialog/dialog.md
index fb7e1c95e16b..b5b7ae84841d 100644
--- a/src/cdk/dialog/dialog.md
+++ b/src/cdk/dialog/dialog.md
@@ -159,6 +159,14 @@ If you're using a `TemplateRef` for your dialog content, the data is available i
```
+If you're using a `TemplateRef` and need to access the `DialogRef`, you can use the following:
+
+```html
+
+ Hello, {{data.name}}
+
+```
+
### Accessibility
diff --git a/src/cdk/dialog/dialog.spec.ts b/src/cdk/dialog/dialog.spec.ts
index f3a7b7f95dda..72506a79ba86 100644
--- a/src/cdk/dialog/dialog.spec.ts
+++ b/src/cdk/dialog/dialog.spec.ts
@@ -69,8 +69,6 @@ describe('Dialog', () => {
],
});
- TestBed.compileComponents();
-
dialog = TestBed.inject(Dialog);
mockLocation = TestBed.inject(Location) as SpyLocation;
overlay = TestBed.inject(Overlay);
@@ -1131,7 +1129,6 @@ describe('Dialog with a parent Dialog', () => {
],
});
- TestBed.compileComponents();
parentDialog = TestBed.inject(Dialog);
fixture = TestBed.createComponent(ComponentThatProvidesMatDialog);
childDialog = fixture.componentInstance.dialog;
diff --git a/src/cdk/drag-drop/directives/drag.ts b/src/cdk/drag-drop/directives/drag.ts
index 8d0f5c120113..9425fe06336f 100644
--- a/src/cdk/drag-drop/directives/drag.ts
+++ b/src/cdk/drag-drop/directives/drag.ts
@@ -30,6 +30,7 @@ import {
AfterViewInit,
inject,
Injector,
+ numberAttribute,
} from '@angular/core';
import {coerceElement, coerceNumberProperty} from '@angular/cdk/coercion';
import {BehaviorSubject, Observable, Observer, Subject, merge} from 'rxjs';
@@ -159,6 +160,13 @@ export class CdkDrag implements AfterViewInit, OnChanges, OnDestroy {
*/
@Input('cdkDragPreviewContainer') previewContainer: PreviewContainer;
+ /**
+ * If the parent of the dragged element has a `scale` transform, it can throw off the
+ * positioning when the user starts dragging. Use this input to notify the CDK of the scale.
+ */
+ @Input({alias: 'cdkDragScale', transform: numberAttribute})
+ scale: number = 1;
+
/** Emits when the user starts dragging the item. */
@Output('cdkDragStarted') readonly started: EventEmitter =
new EventEmitter();
@@ -261,6 +269,11 @@ export class CdkDrag implements AfterViewInit, OnChanges, OnDestroy {
if (dropContainer) {
this._dragRef._withDropContainer(dropContainer._dropListRef);
dropContainer.addItem(this);
+
+ // The drop container reads this so we need to sync it here.
+ dropContainer._dropListRef.beforeStarted.pipe(takeUntil(this._destroyed)).subscribe(() => {
+ this._dragRef.scale = this.scale;
+ });
}
this._syncInputs(this._dragRef);
@@ -309,6 +322,7 @@ export class CdkDrag implements AfterViewInit, OnChanges, OnDestroy {
() => {
this._updateRootElement();
this._setupHandlesListener();
+ this._dragRef.scale = this.scale;
if (this.freeDragPosition) {
this._dragRef.setFreeDragPosition(this.freeDragPosition);
@@ -328,6 +342,9 @@ export class CdkDrag implements AfterViewInit, OnChanges, OnDestroy {
this._updateRootElement();
}
+ // Scale affects the free drag position so we need to sync it up here.
+ this._dragRef.scale = this.scale;
+
// Skip the first change since it's being handled in the `afterNextRender` queued up in the
// constructor.
if (positionChange && !positionChange.firstChange && this.freeDragPosition) {
@@ -448,6 +465,7 @@ export class CdkDrag implements AfterViewInit, OnChanges, OnDestroy {
ref.disabled = this.disabled;
ref.lockAxis = this.lockAxis;
+ ref.scale = this.scale;
ref.dragStartDelay =
typeof dragStartDelay === 'object' && dragStartDelay
? dragStartDelay
diff --git a/src/cdk/drag-drop/directives/drop-list-shared.spec.ts b/src/cdk/drag-drop/directives/drop-list-shared.spec.ts
index 4e9a6bf2b32b..676a7c19e318 100644
--- a/src/cdk/drag-drop/directives/drop-list-shared.spec.ts
+++ b/src/cdk/drag-drop/directives/drop-list-shared.spec.ts
@@ -834,7 +834,6 @@ export function defineCommonDropListTests(config: {
const preview = document.querySelector('.cdk-drag-preview') as HTMLElement;
const previewRect = preview.getBoundingClientRect();
- const zeroPxRegex = /^0(px)?$/;
expect(item.parentNode)
.withContext('Expected element to be moved out into the body')
@@ -846,10 +845,9 @@ export function defineCommonDropListTests(config: {
.withContext('Expect element position to be !important')
.toBe('important');
// Use a regex here since some browsers normalize 0 to 0px, but others don't.
- // Use a regex here since some browsers normalize 0 to 0px, but others don't.
expect(item.style.top)
.withContext('Expected element to be removed from layout')
- .toMatch(zeroPxRegex);
+ .toMatch(/^0(px)?$/);
expect(item.style.left)
.withContext('Expected element to be removed from layout')
.toBe('-999em');
@@ -860,7 +858,7 @@ export function defineCommonDropListTests(config: {
.toBe('manual');
expect(preview.style.margin)
.withContext('Expected preview to reset the margin')
- .toMatch(zeroPxRegex);
+ .toMatch(/^(0(px)? auto 0(px)? 0(px)?)|(0(px)?)$/);
expect(preview.textContent!.trim())
.withContext('Expected preview content to match element')
.toContain('One');
@@ -880,10 +878,9 @@ export function defineCommonDropListTests(config: {
.withContext('Expected preview to have a high default zIndex.')
.toBe('1000');
// Use a regex here since some browsers normalize 0 to 0px, but others don't.
- // Use a regex here since some browsers normalize 0 to 0px, but others don't.
expect(preview.style.margin)
.withContext('Expected the preview margin to be reset.')
- .toMatch(zeroPxRegex);
+ .toMatch(/^(0(px)? auto 0(px)? 0(px)?)|(0(px)?)$/);
dispatchMouseEvent(document, 'mouseup');
fixture.detectChanges();
@@ -5006,6 +5003,7 @@ const DROP_ZONE_FIXTURE_TEMPLATE = `
[cdkDragBoundary]="boundarySelector"
[cdkDragPreviewClass]="previewClass"
[cdkDragPreviewContainer]="previewContainer"
+ [cdkDragScale]="scale"
[style.height.px]="item.height"
[style.margin-bottom.px]="item.margin"
(cdkDragStarted)="startedSpy($event)"
@@ -5041,6 +5039,7 @@ export class DraggableInDropZone implements AfterViewInit {
previewContainer: PreviewContainer = 'global';
dropDisabled = signal(false);
dropLockAxis = signal(undefined);
+ scale = 1;
constructor(protected _elementRef: ElementRef) {}
diff --git a/src/cdk/drag-drop/directives/single-axis-drop-list.spec.ts b/src/cdk/drag-drop/directives/single-axis-drop-list.spec.ts
index 324ccc8b8776..28e8938b6c32 100644
--- a/src/cdk/drag-drop/directives/single-axis-drop-list.spec.ts
+++ b/src/cdk/drag-drop/directives/single-axis-drop-list.spec.ts
@@ -311,4 +311,29 @@ describe('Single-axis drop list', () => {
dispatchMouseEvent(document, 'mouseup');
}));
+
+ it('should lay out the elements correctly when scaled', fakeAsync(() => {
+ const fixture = createComponent(DraggableInDropZone);
+ fixture.componentInstance.scale = 0.5;
+ fixture.detectChanges();
+
+ const items = fixture.componentInstance.dragItems.map(i => i.element.nativeElement);
+ const {top, left} = items[0].getBoundingClientRect();
+
+ startDraggingViaMouse(fixture, items[0], left, top);
+
+ const placeholder = document.querySelector('.cdk-drag-placeholder')! as HTMLElement;
+ const target = items[1];
+ const targetRect = target.getBoundingClientRect();
+
+ dispatchMouseEvent(document, 'mousemove', targetRect.left, targetRect.top + 5);
+ fixture.detectChanges();
+
+ expect(placeholder.style.transform).toBe(`translate3d(0px, ${ITEM_HEIGHT * 2}px, 0px)`);
+ expect(target.style.transform).toBe(`translate3d(0px, ${-ITEM_HEIGHT * 2}px, 0px)`);
+
+ dispatchMouseEvent(document, 'mouseup');
+ fixture.detectChanges();
+ flush();
+ }));
});
diff --git a/src/cdk/drag-drop/directives/standalone-drag.spec.ts b/src/cdk/drag-drop/directives/standalone-drag.spec.ts
index 4a7e14a8d9a8..775f9e69ef91 100644
--- a/src/cdk/drag-drop/directives/standalone-drag.spec.ts
+++ b/src/cdk/drag-drop/directives/standalone-drag.spec.ts
@@ -1371,6 +1371,20 @@ describe('Standalone CdkDrag', () => {
expect(dragElement.style.transform).toBe('translate3d(150px, 300px, 0px)');
}));
+ it('should account for the scale when setting the free drag position', fakeAsync(() => {
+ const fixture = createComponent(StandaloneDraggable);
+ fixture.componentInstance.scale = 0.5;
+ fixture.componentInstance.freeDragPosition = {x: 50, y: 100};
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ const dragElement = fixture.componentInstance.dragElement.nativeElement;
+ const dragInstance = fixture.componentInstance.dragInstance;
+
+ expect(dragElement.style.transform).toBe('translate3d(100px, 200px, 0px)');
+ expect(dragInstance.getFreeDragPosition()).toEqual({x: 50, y: 100});
+ }));
+
it('should include the dragged distance as the user is dragging', fakeAsync(() => {
const fixture = createComponent(StandaloneDraggable);
fixture.detectChanges();
@@ -1470,34 +1484,41 @@ describe('Standalone CdkDrag', () => {
cleanup();
}));
- it(
- 'should update the free drag position if the user moves their pointer after the page ' +
- 'is scrolled',
- fakeAsync(() => {
- const fixture = createComponent(StandaloneDraggable);
- fixture.detectChanges();
+ it('should update the free drag position if the user moves their pointer after the page is scrolled', fakeAsync(() => {
+ const fixture = createComponent(StandaloneDraggable);
+ fixture.detectChanges();
- const cleanup = makeScrollable();
- const dragElement = fixture.componentInstance.dragElement.nativeElement;
+ const cleanup = makeScrollable();
+ const dragElement = fixture.componentInstance.dragElement.nativeElement;
- expect(dragElement.style.transform).toBeFalsy();
- startDraggingViaMouse(fixture, dragElement, 0, 0);
- dispatchMouseEvent(document, 'mousemove', 50, 100);
- fixture.detectChanges();
+ expect(dragElement.style.transform).toBeFalsy();
+ startDraggingViaMouse(fixture, dragElement, 0, 0);
+ dispatchMouseEvent(document, 'mousemove', 50, 100);
+ fixture.detectChanges();
- expect(dragElement.style.transform).toBe('translate3d(50px, 100px, 0px)');
+ expect(dragElement.style.transform).toBe('translate3d(50px, 100px, 0px)');
- scrollTo(0, 500);
- dispatchFakeEvent(document, 'scroll');
- fixture.detectChanges();
- dispatchMouseEvent(document, 'mousemove', 50, 200);
- fixture.detectChanges();
+ scrollTo(0, 500);
+ dispatchFakeEvent(document, 'scroll');
+ fixture.detectChanges();
+ dispatchMouseEvent(document, 'mousemove', 50, 200);
+ fixture.detectChanges();
- expect(dragElement.style.transform).toBe('translate3d(50px, 700px, 0px)');
+ expect(dragElement.style.transform).toBe('translate3d(50px, 700px, 0px)');
- cleanup();
- }),
- );
+ cleanup();
+ }));
+
+ it('should account for scale when moving the element', fakeAsync(() => {
+ const fixture = createComponent(StandaloneDraggable);
+ fixture.componentInstance.scale = 0.5;
+ fixture.detectChanges();
+ const dragElement = fixture.componentInstance.dragElement.nativeElement;
+
+ expect(dragElement.style.transform).toBeFalsy();
+ dragElementViaMouse(fixture, dragElement, 50, 100);
+ expect(dragElement.style.transform).toBe('translate3d(100px, 200px, 0px)');
+ }));
describe('with a handle', () => {
it('should not be able to drag the entire element if it has a handle', fakeAsync(() => {
@@ -1718,6 +1739,7 @@ describe('Standalone CdkDrag', () => {
[cdkDragFreeDragPosition]="freeDragPosition"
[cdkDragDisabled]="dragDisabled()"
[cdkDragLockAxis]="dragLockAxis()"
+ [cdkDragScale]="scale"
(cdkDragStarted)="startedSpy($event)"
(cdkDragReleased)="releasedSpy($event)"
(cdkDragEnded)="endedSpy($event)"
@@ -1745,6 +1767,7 @@ class StandaloneDraggable {
freeDragPosition?: {x: number; y: number};
dragDisabled = signal(false);
dragLockAxis = signal(undefined);
+ scale = 1;
}
@Component({
diff --git a/src/cdk/drag-drop/directives/test-utils.spec.ts b/src/cdk/drag-drop/directives/test-utils.spec.ts
index 2c0c12027eac..7ec7189a63f0 100644
--- a/src/cdk/drag-drop/directives/test-utils.spec.ts
+++ b/src/cdk/drag-drop/directives/test-utils.spec.ts
@@ -46,7 +46,6 @@ export function createComponent(
});
}
- TestBed.compileComponents();
return TestBed.createComponent(componentType);
}
diff --git a/src/cdk/drag-drop/drag-drop-registry.spec.ts b/src/cdk/drag-drop/drag-drop-registry.spec.ts
index 603b47a0117a..935b94ba5908 100644
--- a/src/cdk/drag-drop/drag-drop-registry.spec.ts
+++ b/src/cdk/drag-drop/drag-drop-registry.spec.ts
@@ -9,26 +9,27 @@ import {
} from '../testing/private';
import {DragDropRegistry} from './drag-drop-registry';
import {DragDropModule} from './drag-drop-module';
+import {DragRef} from './drag-ref';
describe('DragDropRegistry', () => {
let fixture: ComponentFixture;
- let registry: DragDropRegistry;
+ let registry: DragDropRegistry;
beforeEach(fakeAsync(() => {
TestBed.configureTestingModule({
imports: [DragDropModule, BlankComponent],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(BlankComponent);
fixture.detectChanges();
- inject([DragDropRegistry], (c: DragDropRegistry) => {
+ inject([DragDropRegistry], (c: DragDropRegistry) => {
registry = c;
})();
}));
it('should be able to start dragging an item', () => {
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
expect(registry.isDragging(item)).toBe(false);
registry.startDragging(item, createMouseEvent('mousedown'));
@@ -36,7 +37,7 @@ describe('DragDropRegistry', () => {
});
it('should be able to stop dragging an item', () => {
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
registry.startDragging(item, createMouseEvent('mousedown'));
expect(registry.isDragging(item)).toBe(true);
@@ -46,7 +47,7 @@ describe('DragDropRegistry', () => {
});
it('should stop dragging an item if it is removed', () => {
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
registry.startDragging(item, createMouseEvent('mousedown'));
expect(registry.isDragging(item)).toBe(true);
@@ -58,7 +59,7 @@ describe('DragDropRegistry', () => {
it('should dispatch `mousemove` events after starting to drag via the mouse', () => {
const spy = jasmine.createSpy('pointerMove spy');
const subscription = registry.pointerMove.subscribe(spy);
- const item = new DragItem(true);
+ const item = new DragItem(true) as unknown as DragRef;
registry.startDragging(item, createMouseEvent('mousedown'));
dispatchMouseEvent(document, 'mousemove');
@@ -70,7 +71,7 @@ describe('DragDropRegistry', () => {
it('should dispatch `touchmove` events after starting to drag via touch', () => {
const spy = jasmine.createSpy('pointerMove spy');
const subscription = registry.pointerMove.subscribe(spy);
- const item = new DragItem(true);
+ const item = new DragItem(true) as unknown as DragRef;
registry.startDragging(item, createTouchEvent('touchstart') as TouchEvent);
dispatchTouchEvent(document, 'touchmove');
@@ -82,7 +83,7 @@ describe('DragDropRegistry', () => {
it('should dispatch pointer move events if event propagation is stopped', () => {
const spy = jasmine.createSpy('pointerMove spy');
const subscription = registry.pointerMove.subscribe(spy);
- const item = new DragItem(true);
+ const item = new DragItem(true) as unknown as DragRef;
fixture.nativeElement.addEventListener('mousemove', (e: MouseEvent) => e.stopPropagation());
registry.startDragging(item, createMouseEvent('mousedown'));
dispatchMouseEvent(fixture.nativeElement, 'mousemove');
@@ -95,7 +96,7 @@ describe('DragDropRegistry', () => {
it('should dispatch `mouseup` events after ending the drag via the mouse', () => {
const spy = jasmine.createSpy('pointerUp spy');
const subscription = registry.pointerUp.subscribe(spy);
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
registry.startDragging(item, createMouseEvent('mousedown'));
dispatchMouseEvent(document, 'mouseup');
@@ -108,7 +109,7 @@ describe('DragDropRegistry', () => {
it('should dispatch `touchend` events after ending the drag via touch', () => {
const spy = jasmine.createSpy('pointerUp spy');
const subscription = registry.pointerUp.subscribe(spy);
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
registry.startDragging(item, createTouchEvent('touchstart') as TouchEvent);
dispatchTouchEvent(document, 'touchend');
@@ -121,7 +122,7 @@ describe('DragDropRegistry', () => {
it('should dispatch pointer up events if event propagation is stopped', () => {
const spy = jasmine.createSpy('pointerUp spy');
const subscription = registry.pointerUp.subscribe(spy);
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
fixture.nativeElement.addEventListener('mouseup', (e: MouseEvent) => e.stopPropagation());
registry.startDragging(item, createMouseEvent('mousedown'));
@@ -148,7 +149,7 @@ describe('DragDropRegistry', () => {
});
it('should not emit pointer events when dragging is over (multi touch)', () => {
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
// First finger down
registry.startDragging(item, createTouchEvent('touchstart') as TouchEvent);
@@ -183,7 +184,7 @@ describe('DragDropRegistry', () => {
});
it('should prevent the default `touchmove` action when an item is being dragged', () => {
- const item = new DragItem(true);
+ const item = new DragItem(true) as unknown as DragRef;
registry.startDragging(item, createTouchEvent('touchstart') as TouchEvent);
expect(dispatchTouchEvent(document, 'touchmove').defaultPrevented).toBe(true);
});
@@ -192,7 +193,7 @@ describe('DragDropRegistry', () => {
'should prevent the default `touchmove` if the item does not consider itself as being ' +
'dragged yet',
() => {
- const item = new DragItem(false);
+ const item = new DragItem(false) as unknown as DragRef & DragItem;
registry.startDragging(item, createTouchEvent('touchstart') as TouchEvent);
expect(dispatchTouchEvent(document, 'touchmove').defaultPrevented).toBe(false);
@@ -202,7 +203,7 @@ describe('DragDropRegistry', () => {
);
it('should prevent the default `touchmove` if event propagation is stopped', () => {
- const item = new DragItem(true);
+ const item = new DragItem(true) as unknown as DragRef;
registry.startDragging(item, createTouchEvent('touchstart') as TouchEvent);
fixture.nativeElement.addEventListener('touchmove', (e: TouchEvent) => e.stopPropagation());
@@ -215,7 +216,7 @@ describe('DragDropRegistry', () => {
});
it('should prevent the default `selectstart` action when an item is being dragged', () => {
- const item = new DragItem(true);
+ const item = new DragItem(true) as unknown as DragRef;
registry.startDragging(item, createMouseEvent('mousedown'));
expect(dispatchFakeEvent(document, 'selectstart').defaultPrevented).toBe(true);
});
@@ -223,7 +224,7 @@ describe('DragDropRegistry', () => {
it('should dispatch `scroll` events if the viewport is scrolled while dragging', () => {
const spy = jasmine.createSpy('scroll spy');
const subscription = registry.scrolled().subscribe(spy);
- const item = new DragItem();
+ const item = new DragItem() as unknown as DragRef;
registry.startDragging(item, createMouseEvent('mousedown'));
dispatchFakeEvent(document, 'scroll');
@@ -247,13 +248,7 @@ describe('DragDropRegistry', () => {
return this.shouldBeDragging;
}
constructor(public shouldBeDragging = false) {
- registry.registerDragItem(this);
- }
- }
-
- class DragList {
- constructor() {
- registry.registerDropContainer(this);
+ registry.registerDragItem(this as unknown as DragRef);
}
}
diff --git a/src/cdk/drag-drop/drag-drop-registry.ts b/src/cdk/drag-drop/drag-drop-registry.ts
index 53655ef1dcea..4ae40617f2a0 100644
--- a/src/cdk/drag-drop/drag-drop-registry.ts
+++ b/src/cdk/drag-drop/drag-drop-registry.ts
@@ -24,6 +24,8 @@ import {
signal,
} from '@angular/core';
import {Observable, Observer, Subject, merge} from 'rxjs';
+import type {DropListRef} from './drop-list-ref';
+import type {DragRef} from './drag-ref';
/** Event options that can be used to bind an active, capturing event. */
const activeCapturingEventOptions = normalizePassiveListenerOptions({
@@ -48,28 +50,26 @@ const activeApps = new Set();
})
export class _ResetsLoader {}
+// TODO(crisbeto): remove generics when making breaking changes.
/**
* Service that keeps track of all the drag item and drop container
* instances, and manages global event listeners on the `document`.
* @docs-private
*/
-// Note: this class is generic, rather than referencing CdkDrag and CdkDropList directly, in order
-// to avoid circular imports. If we were to reference them here, importing the registry into the
-// classes that are registering themselves will introduce a circular import.
@Injectable({providedIn: 'root'})
-export class DragDropRegistry implements OnDestroy {
+export class DragDropRegistry<_ = unknown, __ = unknown> implements OnDestroy {
private _document: Document;
private _appRef = inject(ApplicationRef);
private _environmentInjector = inject(EnvironmentInjector);
/** Registered drop container instances. */
- private _dropInstances = new Set();
+ private _dropInstances = new Set();
/** Registered drag item instances. */
- private _dragInstances = new Set();
+ private _dragInstances = new Set();
/** Drag item instances that are currently being dragged. */
- private _activeDragInstances: WritableSignal = signal([]);
+ private _activeDragInstances: WritableSignal = signal([]);
/** Keeps track of the event listeners that we've bound to the `document`. */
private _globalListeners = new Map<
@@ -84,7 +84,7 @@ export class DragDropRegistry implements O
* Predicate function to check if an item is being dragged. Moved out into a property,
* because it'll be called a lot and we don't want to create a new function every time.
*/
- private _draggingPredicate = (item: I) => item.isDragging();
+ private _draggingPredicate = (item: DragRef) => item.isDragging();
/**
* Emits the `touchmove` or `mousemove` events that are dispatched
@@ -113,14 +113,14 @@ export class DragDropRegistry implements O
}
/** Adds a drop container to the registry. */
- registerDropContainer(drop: C) {
+ registerDropContainer(drop: DropListRef) {
if (!this._dropInstances.has(drop)) {
this._dropInstances.add(drop);
}
}
/** Adds a drag item instance to the registry. */
- registerDragItem(drag: I) {
+ registerDragItem(drag: DragRef) {
this._dragInstances.add(drag);
// The `touchmove` event gets bound once, ahead of time, because WebKit
@@ -140,12 +140,12 @@ export class DragDropRegistry implements O
}
/** Removes a drop container from the registry. */
- removeDropContainer(drop: C) {
+ removeDropContainer(drop: DropListRef) {
this._dropInstances.delete(drop);
}
/** Removes a drag item instance from the registry. */
- removeDragItem(drag: I) {
+ removeDragItem(drag: DragRef) {
this._dragInstances.delete(drag);
this.stopDragging(drag);
@@ -163,7 +163,7 @@ export class DragDropRegistry implements O
* @param drag Drag instance which is being dragged.
* @param event Event that initiated the dragging.
*/
- startDragging(drag: I, event: TouchEvent | MouseEvent) {
+ startDragging(drag: DragRef, event: TouchEvent | MouseEvent) {
// Do not process the same drag twice to avoid memory leaks and redundant listeners
if (this._activeDragInstances().indexOf(drag) > -1) {
return;
@@ -216,7 +216,7 @@ export class DragDropRegistry implements O
}
/** Stops dragging a drag item instance. */
- stopDragging(drag: I) {
+ stopDragging(drag: DragRef) {
this._activeDragInstances.update(instances => {
const index = instances.indexOf(drag);
if (index > -1) {
@@ -232,7 +232,7 @@ export class DragDropRegistry implements O
}
/** Gets whether a drag item instance is currently being dragged. */
- isDragging(drag: I) {
+ isDragging(drag: DragRef) {
return this._activeDragInstances().indexOf(drag) > -1;
}
diff --git a/src/cdk/drag-drop/drag-drop.md b/src/cdk/drag-drop/drag-drop.md
index f9f7ad1b02e8..9832b56558fb 100644
--- a/src/cdk/drag-drop/drag-drop.md
+++ b/src/cdk/drag-drop/drag-drop.md
@@ -251,10 +251,13 @@ item will be moved into the new index, otherwise it will keep its current positi
-### Reordering table rows
-Angular Material provides seamless integration of drag-and-drop functionality into tables,
-by adding the `cdkDropList` directive to your mat-table and handling the `(cdkDropListDropped)`
-event, you can enable drag-and-drop interactions within your table. This allows users to reorder
-rows or perform other custom actions with ease.
+### Integrations with Angular Material
+The CDK's drag&drop functionality can be integrated with different parts of Angular Material.
+#### Sortable table
+This example shows how you can set up a table which supports re-ordering of tabs.
+
+#### Sortable tabs
+Example of how to add sorting support to a `mat-tab-group`.
+
diff --git a/src/cdk/drag-drop/drag-drop.spec.ts b/src/cdk/drag-drop/drag-drop.spec.ts
index 0755c0388b17..5919e929144b 100644
--- a/src/cdk/drag-drop/drag-drop.spec.ts
+++ b/src/cdk/drag-drop/drag-drop.spec.ts
@@ -13,7 +13,6 @@ describe('DragDrop', () => {
imports: [DragDropModule, TestComponent],
});
- TestBed.compileComponents();
service = TestBed.inject(DragDrop);
}));
diff --git a/src/cdk/drag-drop/drag-drop.ts b/src/cdk/drag-drop/drag-drop.ts
index c83c219a59e9..9492bc01c0de 100644
--- a/src/cdk/drag-drop/drag-drop.ts
+++ b/src/cdk/drag-drop/drag-drop.ts
@@ -28,7 +28,7 @@ export class DragDrop {
@Inject(DOCUMENT) private _document: any,
private _ngZone: NgZone,
private _viewportRuler: ViewportRuler,
- private _dragDropRegistry: DragDropRegistry,
+ private _dragDropRegistry: DragDropRegistry,
) {}
/**
diff --git a/src/cdk/drag-drop/drag-ref.ts b/src/cdk/drag-drop/drag-ref.ts
index 2b751e373171..a8c138a05d37 100644
--- a/src/cdk/drag-drop/drag-ref.ts
+++ b/src/cdk/drag-drop/drag-ref.ts
@@ -288,6 +288,12 @@ export class DragRef {
/** Class to be added to the preview element. */
previewClass: string | string[] | undefined;
+ /**
+ * If the parent of the dragged element has a `scale` transform, it can throw off the
+ * positioning when the user starts dragging. Use this input to notify the CDK of the scale.
+ */
+ scale: number = 1;
+
/** Whether starting to drag this element is disabled. */
get disabled(): boolean {
return this._disabled || !!(this._dropContainer && this._dropContainer.disabled);
@@ -371,7 +377,7 @@ export class DragRef {
private _document: Document,
private _ngZone: NgZone,
private _viewportRuler: ViewportRuler,
- private _dragDropRegistry: DragDropRegistry,
+ private _dragDropRegistry: DragDropRegistry,
) {
this.withRootElement(element).withParent(_config.parentDragRef || null);
this._parentPositions = new ParentPositionTracker(_document);
@@ -823,7 +829,10 @@ export class DragRef {
const parent = element.parentNode as HTMLElement;
const placeholder = (this._placeholder = this._createPlaceholderElement());
const anchor = (this._anchor =
- this._anchor || this._document.createComment(ngDevMode ? 'cdk-drag-anchor' : ''));
+ this._anchor ||
+ this._document.createComment(
+ typeof ngDevMode === 'undefined' || ngDevMode ? 'cdk-drag-anchor' : '',
+ ));
// Insert an anchor node so that we can restore the element's position in the DOM.
parent.insertBefore(anchor, element);
@@ -1100,7 +1109,9 @@ export class DragRef {
const handler = ((event: TransitionEvent) => {
if (
!event ||
- (_getEventTarget(event) === this._preview && event.propertyName === 'transform')
+ (this._preview &&
+ _getEventTarget(event) === this._preview.element &&
+ event.propertyName === 'transform')
) {
this._preview?.removeEventListener('transitionend', handler);
resolve();
@@ -1288,7 +1299,8 @@ export class DragRef {
* @param y New transform value along the Y axis.
*/
private _applyRootElementTransform(x: number, y: number) {
- const transform = getTransform(x, y);
+ const scale = 1 / this.scale;
+ const transform = getTransform(x * scale, y * scale);
const styles = this._rootElement.style;
// Cache the previous transform amount only after the first drag sequence, because
diff --git a/src/cdk/drag-drop/drop-list-ref.ts b/src/cdk/drag-drop/drop-list-ref.ts
index b4540e803d6c..1338be3cdee1 100644
--- a/src/cdk/drag-drop/drop-list-ref.ts
+++ b/src/cdk/drag-drop/drop-list-ref.ts
@@ -49,13 +49,6 @@ enum AutoScrollHorizontalDirection {
RIGHT,
}
-type RootNode = DocumentOrShadowRoot & {
- // As of TS 4.4 the built in DOM typings don't include `elementFromPoint` on `ShadowRoot`,
- // even though it exists (see https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot).
- // This type is a utility to avoid having to add casts everywhere.
- elementFromPoint(x: number, y: number): Element | null;
-};
-
/**
* Reference to a drop list. Used to manipulate or dispose of the container.
*/
@@ -181,7 +174,7 @@ export class DropListRef {
private readonly _stopScrollTimers = new Subject();
/** Shadow root of the current element. Necessary for `elementFromPoint` to resolve correctly. */
- private _cachedShadowRoot: RootNode | null = null;
+ private _cachedShadowRoot: DocumentOrShadowRoot | null = null;
/** Reference to the document. */
private _document: Document;
@@ -197,7 +190,7 @@ export class DropListRef {
constructor(
element: ElementRef | HTMLElement,
- private _dragDropRegistry: DragDropRegistry,
+ private _dragDropRegistry: DragDropRegistry,
_document: any,
private _ngZone: NgZone,
private _viewportRuler: ViewportRuler,
@@ -760,10 +753,10 @@ export class DropListRef {
* in order to ensure that the element has been moved into the shadow DOM. Doing it inside the
* constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.
*/
- private _getShadowRoot(): RootNode {
+ private _getShadowRoot(): DocumentOrShadowRoot {
if (!this._cachedShadowRoot) {
const shadowRoot = _getShadowRoot(this._container);
- this._cachedShadowRoot = (shadowRoot || this._document) as RootNode;
+ this._cachedShadowRoot = shadowRoot || this._document;
}
return this._cachedShadowRoot;
diff --git a/src/cdk/drag-drop/preview-ref.ts b/src/cdk/drag-drop/preview-ref.ts
index 3e302f8adc2e..b91ace945d18 100644
--- a/src/cdk/drag-drop/preview-ref.ts
+++ b/src/cdk/drag-drop/preview-ref.ts
@@ -39,6 +39,10 @@ export class PreviewRef {
/** Reference to the preview element. */
private _preview: HTMLElement;
+ get element(): HTMLElement {
+ return this._preview;
+ }
+
constructor(
private _document: Document,
private _rootElement: HTMLElement,
@@ -60,7 +64,7 @@ export class PreviewRef {
// The null check is necessary for browsers that don't support the popover API.
// Note that we use a string access for compatibility with Closure.
- if ('showPopover' in this._preview) {
+ if (supportsPopover(this._preview)) {
this._preview['showPopover']();
}
}
@@ -135,8 +139,12 @@ export class PreviewRef {
// It's important that we disable the pointer events on the preview, because
// it can throw off the `document.elementFromPoint` calls in the `CdkDropList`.
'pointer-events': 'none',
- // We have to reset the margin, because it can throw off positioning relative to the viewport.
- 'margin': '0',
+ // If the preview has a margin, it can throw off our positioning so we reset it. The reset
+ // value for `margin-right` needs to be `auto` when opened as a popover, because our
+ // positioning is always top/left based, but native popover seems to position itself
+ // to the top/right if `` or `` have `dir="rtl"` (see #29604). Setting it
+ // to `auto` pushed it to the top/left corner in RTL and is a noop in LTR.
+ 'margin': supportsPopover(preview) ? '0 auto 0 0' : '0',
'position': 'fixed',
'top': '0',
'left': '0',
@@ -161,3 +169,8 @@ export class PreviewRef {
return preview;
}
}
+
+/** Checks whether a specific element supports the popover API. */
+function supportsPopover(element: HTMLElement): boolean {
+ return 'showPopover' in element;
+}
diff --git a/src/cdk/drag-drop/resets.scss b/src/cdk/drag-drop/resets.scss
index f218c05e51cc..123953f8de6a 100644
--- a/src/cdk/drag-drop/resets.scss
+++ b/src/cdk/drag-drop/resets.scss
@@ -4,5 +4,16 @@
border: none;
padding: 0;
color: inherit;
+
+ // Chrome sets a user agent style of `inset: 0` which combined
+ // with `align-self` can break the positioning (see #29809).
+ inset: auto;
}
}
+
+// These elements get `pointer-events: none` when they're created, but any descendants might
+// override it back to `auto`. Reset them here since they can affect the pointer position detection.
+.cdk-drag-placeholder *,
+.cdk-drag-preview * {
+ pointer-events: none !important;
+}
diff --git a/src/cdk/drag-drop/sorting/mixed-sort-strategy.ts b/src/cdk/drag-drop/sorting/mixed-sort-strategy.ts
index 2bcbf4264180..00d7fcf145e7 100644
--- a/src/cdk/drag-drop/sorting/mixed-sort-strategy.ts
+++ b/src/cdk/drag-drop/sorting/mixed-sort-strategy.ts
@@ -54,7 +54,7 @@ export class MixedSortStrategy implements DropListSortStrategy {
constructor(
private _document: Document,
- private _dragDropRegistry: DragDropRegistry,
+ private _dragDropRegistry: DragDropRegistry,
) {}
/**
diff --git a/src/cdk/drag-drop/sorting/single-axis-sort-strategy.ts b/src/cdk/drag-drop/sorting/single-axis-sort-strategy.ts
index 28ed95c6517b..ed2681216780 100644
--- a/src/cdk/drag-drop/sorting/single-axis-sort-strategy.ts
+++ b/src/cdk/drag-drop/sorting/single-axis-sort-strategy.ts
@@ -57,7 +57,7 @@ export class SingleAxisSortStrategy implements DropListSortStrategy {
/** Layout direction of the drop list. */
direction: Direction;
- constructor(private _dragDropRegistry: DragDropRegistry) {}
+ constructor(private _dragDropRegistry: DragDropRegistry) {}
/**
* Keeps track of the item that was last swapped with the dragged item, as well as what direction
@@ -128,6 +128,8 @@ export class SingleAxisSortStrategy implements DropListSortStrategy {
// Update the offset to reflect the new position.
sibling.offset += offset;
+ const transformAmount = Math.round(sibling.offset * (1 / sibling.drag.scale));
+
// Since we're moving the items with a `transform`, we need to adjust their cached
// client rects to reflect their new position, as well as swap their positions in the cache.
// Note that we shouldn't use `getBoundingClientRect` here to update the cache, because the
@@ -136,13 +138,13 @@ export class SingleAxisSortStrategy implements DropListSortStrategy {
// Round the transforms since some browsers will
// blur the elements, for sub-pixel transforms.
elementToOffset.style.transform = combineTransforms(
- `translate3d(${Math.round(sibling.offset)}px, 0, 0)`,
+ `translate3d(${transformAmount}px, 0, 0)`,
sibling.initialTransform,
);
adjustDomRect(sibling.clientRect, 0, offset);
} else {
elementToOffset.style.transform = combineTransforms(
- `translate3d(0, ${Math.round(sibling.offset)}px, 0)`,
+ `translate3d(0, ${transformAmount}px, 0)`,
sibling.initialTransform,
);
adjustDomRect(sibling.clientRect, offset, 0);
diff --git a/src/cdk/listbox/listbox.md b/src/cdk/listbox/listbox.md
index 542428177713..021b24a905aa 100644
--- a/src/cdk/listbox/listbox.md
+++ b/src/cdk/listbox/listbox.md
@@ -120,23 +120,6 @@ The CDK Listbox supports both template driven forms and reactive forms.
"region": "listbox"
}) -->
-#### Forms validation
-
-The CDK listbox integrates with Angular's form validation API and has the following built-in
-validation errors:
-
-- `cdkListboxUnexpectedOptionValues` - Raised when the bound value contains values that do not
- appear as option value in the listbox. The validation error contains a `values` property that
- lists the invalid values
-- `cdkListboxUnexpectedMultipleValues` - Raised when a single-selection listbox is bound to a value
- containing multiple selected options.
-
-
-
### Disabling options
You can disable options for selection by setting `cdkOptionDisabled`.
diff --git a/src/cdk/listbox/listbox.spec.ts b/src/cdk/listbox/listbox.spec.ts
index e49c7951d14a..1edaedf7035d 100644
--- a/src/cdk/listbox/listbox.spec.ts
+++ b/src/cdk/listbox/listbox.spec.ts
@@ -21,7 +21,7 @@ function setupComponent(component: Type, imports: any[] = [])
TestBed.configureTestingModule({
imports: [CdkListboxModule, ...imports],
declarations: [component],
- }).compileComponents();
+ });
const fixture = TestBed.createComponent(component);
fixture.detectChanges();
diff --git a/src/cdk/listbox/listbox.ts b/src/cdk/listbox/listbox.ts
index 213d1f31adef..412aa6dfb851 100644
--- a/src/cdk/listbox/listbox.ts
+++ b/src/cdk/listbox/listbox.ts
@@ -194,7 +194,13 @@ export class CdkOption implements ListKeyManagerOption, Highlightab
* No-op implemented as a part of `Highlightable`.
* @docs-private
*/
- setActiveStyles() {}
+ setActiveStyles() {
+ // If the listbox is using `aria-activedescendant` the option won't have focus so the
+ // browser won't scroll them into view automatically so we need to do it ourselves.
+ if (this.listbox.useActiveDescendant) {
+ this.element.scrollIntoView({block: 'nearest', inline: 'nearest'});
+ }
+ }
/**
* No-op implemented as a part of `Highlightable`.
diff --git a/src/cdk/menu/context-menu-trigger.spec.ts b/src/cdk/menu/context-menu-trigger.spec.ts
index 7691d1ac3c27..99757aaa2737 100644
--- a/src/cdk/menu/context-menu-trigger.spec.ts
+++ b/src/cdk/menu/context-menu-trigger.spec.ts
@@ -18,7 +18,7 @@ describe('CdkContextMenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [SimpleContextMenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -152,7 +152,7 @@ describe('CdkContextMenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [NestedContextMenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -267,7 +267,7 @@ describe('CdkContextMenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [ContextMenuWithSubmenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -298,7 +298,7 @@ describe('CdkContextMenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [ContextMenuWithMenuBarAndInlineMenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -402,7 +402,7 @@ describe('CdkContextMenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [componentClass],
- }).compileComponents();
+ });
const fixture = TestBed.createComponent(componentClass);
fixture.detectChanges();
@@ -428,7 +428,7 @@ describe('CdkContextMenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [ContextTriggerWithData],
- }).compileComponents();
+ });
const fixture = TestBed.createComponent(ContextTriggerWithData);
fixture.componentInstance.menuData = {message: 'Hello!'};
diff --git a/src/cdk/menu/menu-bar.spec.ts b/src/cdk/menu/menu-bar.spec.ts
index ab9900741cd4..03d3b7f993bd 100644
--- a/src/cdk/menu/menu-bar.spec.ts
+++ b/src/cdk/menu/menu-bar.spec.ts
@@ -47,7 +47,7 @@ describe('MenuBar', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MenuBarRadioGroup],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(MenuBarRadioGroup);
fixture.detectChanges();
@@ -107,7 +107,7 @@ describe('MenuBar', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MultiMenuWithSubmenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -531,7 +531,7 @@ describe('MenuBar', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MultiMenuWithSubmenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -658,7 +658,7 @@ describe('MenuBar', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MenuWithCheckboxes],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -724,7 +724,7 @@ describe('MenuBar', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MenuWithRadioButtons],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -779,7 +779,7 @@ describe('MenuBar', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MenuBarWithMenusAndInlineMenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -898,7 +898,7 @@ describe('MenuBar', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MultiMenuWithSubmenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/menu/menu-group.spec.ts b/src/cdk/menu/menu-group.spec.ts
index f80d8b59e02f..6c01b4439e90 100644
--- a/src/cdk/menu/menu-group.spec.ts
+++ b/src/cdk/menu/menu-group.spec.ts
@@ -14,7 +14,7 @@ describe('MenuGroup', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, CheckboxMenu],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(CheckboxMenu);
fixture.detectChanges();
@@ -41,7 +41,7 @@ describe('MenuGroup', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MenuWithMultipleRadioGroups],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(MenuWithMultipleRadioGroups);
fixture.detectChanges();
diff --git a/src/cdk/menu/menu-item-checkbox.spec.ts b/src/cdk/menu/menu-item-checkbox.spec.ts
index 365184fc52b2..0dea58151748 100644
--- a/src/cdk/menu/menu-item-checkbox.spec.ts
+++ b/src/cdk/menu/menu-item-checkbox.spec.ts
@@ -21,7 +21,7 @@ describe('MenuItemCheckbox', () => {
// View engine can't figure out the ElementRef to inject so we need to provide a fake
{provide: ElementRef, useValue: new ElementRef(null)},
],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/menu/menu-item-radio.spec.ts b/src/cdk/menu/menu-item-radio.spec.ts
index b7fd137dcd64..9bfd95826c4c 100644
--- a/src/cdk/menu/menu-item-radio.spec.ts
+++ b/src/cdk/menu/menu-item-radio.spec.ts
@@ -25,7 +25,7 @@ describe('MenuItemRadio', () => {
// View engine can't figure out the ElementRef to inject so we need to provide a fake
{provide: ElementRef, useValue: new ElementRef(null)},
],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/menu/menu-item.spec.ts b/src/cdk/menu/menu-item.spec.ts
index 3a14c93b5605..52f7e41cacd6 100644
--- a/src/cdk/menu/menu-item.spec.ts
+++ b/src/cdk/menu/menu-item.spec.ts
@@ -25,7 +25,7 @@ describe('MenuItem', () => {
// View engine can't figure out the ElementRef to inject so we need to provide a fake
{provide: ElementRef, useValue: new ElementRef(null)},
],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -90,7 +90,7 @@ describe('MenuItem', () => {
{provide: ElementRef, useValue: new ElementRef(null)},
],
declarations: [componentClass],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(componentClass);
fixture.detectChanges();
diff --git a/src/cdk/menu/menu-stack.spec.ts b/src/cdk/menu/menu-stack.spec.ts
index 78c9630f5f80..dca51dd9fc2f 100644
--- a/src/cdk/menu/menu-stack.spec.ts
+++ b/src/cdk/menu/menu-stack.spec.ts
@@ -23,7 +23,7 @@ describe('MenuStack', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MultiMenuWithSubmenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/menu/menu-trigger.spec.ts b/src/cdk/menu/menu-trigger.spec.ts
index a7a681d236e3..522a667d7d33 100644
--- a/src/cdk/menu/menu-trigger.spec.ts
+++ b/src/cdk/menu/menu-trigger.spec.ts
@@ -19,7 +19,7 @@ describe('MenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [TriggerForEmptyMenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -114,7 +114,7 @@ describe('MenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [MenuBarWithNestedSubMenus],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -334,7 +334,7 @@ describe('MenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [componentClass],
- }).compileComponents();
+ });
const fixture = TestBed.createComponent(componentClass);
fixture.detectChanges();
@@ -407,7 +407,7 @@ describe('MenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [StandaloneTriggerWithInlineMenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -490,7 +490,7 @@ describe('MenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [TriggerWithData],
- }).compileComponents();
+ });
const fixture = TestBed.createComponent(TriggerWithData);
fixture.componentInstance.menuData = {message: 'Hello!'};
@@ -510,7 +510,7 @@ describe('MenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [TriggerWithNullValue],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -549,7 +549,7 @@ describe('MenuTrigger', () => {
TestBed.configureTestingModule({
imports: [CdkMenuModule],
declarations: [TriggersWithSameMenuDifferentMenuBars],
- }).compileComponents();
+ });
const fixture = TestBed.createComponent(TriggersWithSameMenuDifferentMenuBars);
fixture.detectChanges();
diff --git a/src/cdk/menu/menu.spec.ts b/src/cdk/menu/menu.spec.ts
index ce117ca6bf62..08176e13521a 100644
--- a/src/cdk/menu/menu.spec.ts
+++ b/src/cdk/menu/menu.spec.ts
@@ -28,7 +28,7 @@ describe('Menu', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, MenuCheckboxGroup],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(MenuCheckboxGroup);
fixture.detectChanges();
@@ -63,7 +63,7 @@ describe('Menu', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, InlineMenu],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -138,7 +138,7 @@ describe('Menu', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, WithComplexNestedMenus],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -329,7 +329,7 @@ describe('Menu', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkMenuModule, WithComplexNestedMenusOnBottom],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/menu/pointer-focus-tracker.spec.ts b/src/cdk/menu/pointer-focus-tracker.spec.ts
index 0fe8b7a88b53..607d5473f351 100644
--- a/src/cdk/menu/pointer-focus-tracker.spec.ts
+++ b/src/cdk/menu/pointer-focus-tracker.spec.ts
@@ -20,7 +20,7 @@ describe('FocusMouseManger', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [MultiElementWithConditionalComponent, MockWrapper],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/observers/observe-content.spec.ts b/src/cdk/observers/observe-content.spec.ts
index 05d3c483f6c5..709cf4c5850b 100644
--- a/src/cdk/observers/observe-content.spec.ts
+++ b/src/cdk/observers/observe-content.spec.ts
@@ -15,8 +15,6 @@ describe('Observe content directive', () => {
TestBed.configureTestingModule({
imports: [ObserversModule, ComponentWithTextContent, ComponentWithChildTextContent],
});
-
- TestBed.compileComponents();
}));
it('should trigger the callback when the content of the element changes', done => {
@@ -108,8 +106,6 @@ describe('Observe content directive', () => {
],
});
- TestBed.compileComponents();
-
fixture = TestBed.createComponent(ComponentWithDebouncedListener);
fixture.detectChanges();
}));
@@ -151,8 +147,6 @@ describe('ContentObserver injectable', () => {
},
],
});
-
- TestBed.compileComponents();
}));
beforeEach(inject([ContentObserver], (co: ContentObserver) => {
@@ -213,7 +207,6 @@ describe('ContentObserver injectable', () => {
imports: [ObserversModule, UnobservedComponentWithTextContent],
});
- TestBed.compileComponents();
const fixture = TestBed.createComponent(UnobservedComponentWithTextContent);
fixture.autoDetectChanges();
spy = jasmine.createSpy('content observer');
diff --git a/src/cdk/overlay/fullscreen-overlay-container.spec.ts b/src/cdk/overlay/fullscreen-overlay-container.spec.ts
index 8a4d373dfe64..02500dfb91c6 100644
--- a/src/cdk/overlay/fullscreen-overlay-container.spec.ts
+++ b/src/cdk/overlay/fullscreen-overlay-container.spec.ts
@@ -56,7 +56,7 @@ describe('FullscreenOverlayContainer', () => {
},
},
],
- }).compileComponents();
+ });
}));
beforeEach(inject([Overlay], (o: Overlay) => {
diff --git a/src/cdk/overlay/overlay-container.spec.ts b/src/cdk/overlay/overlay-container.spec.ts
index c8b8ad1e71a8..61b01dcc8958 100644
--- a/src/cdk/overlay/overlay-container.spec.ts
+++ b/src/cdk/overlay/overlay-container.spec.ts
@@ -10,7 +10,7 @@ describe('OverlayContainer', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [OverlayTestModule],
- }).compileComponents();
+ });
}));
beforeEach(inject([Overlay, OverlayContainer], (o: Overlay, oc: OverlayContainer) => {
diff --git a/src/cdk/overlay/overlay-ref.ts b/src/cdk/overlay/overlay-ref.ts
index ef76a8811766..d88deae4807a 100644
--- a/src/cdk/overlay/overlay-ref.ts
+++ b/src/cdk/overlay/overlay-ref.ts
@@ -9,6 +9,7 @@
import {Direction, Directionality} from '@angular/cdk/bidi';
import {ComponentPortal, Portal, PortalOutlet, TemplatePortal} from '@angular/cdk/portal';
import {
+ AfterRenderRef,
ComponentRef,
EmbeddedViewRef,
EnvironmentInjector,
@@ -16,7 +17,6 @@ import {
afterNextRender,
afterRender,
untracked,
- AfterRenderRef,
} from '@angular/core';
import {Location} from '@angular/common';
import {Observable, Subject, merge, SubscriptionLike, Subscription} from 'rxjs';
@@ -39,7 +39,7 @@ export type ImmutableObject = {
*/
export class OverlayRef implements PortalOutlet {
private _backdropElement: HTMLElement | null = null;
- private _backdropTimeout: number | undefined;
+ private _backdropTimeout: ReturnType | undefined;
private readonly _backdropClick = new Subject();
private readonly _attachments = new Subject();
private readonly _detachments = new Subject();
@@ -67,6 +67,9 @@ export class OverlayRef implements PortalOutlet {
private _afterRenderRef: AfterRenderRef;
+ /** Reference to the currently-running `afterNextRender` call. */
+ private _afterNextRenderRef: AfterRenderRef | undefined;
+
constructor(
private _portalOutlet: PortalOutlet,
private _host: HTMLElement,
@@ -151,9 +154,14 @@ export class OverlayRef implements PortalOutlet {
this._scrollStrategy.enable();
}
+ // We need to clean this up ourselves, because we're passing in an
+ // `EnvironmentInjector` below which won't ever be destroyed.
+ // Otherwise it causes some callbacks to be retained (see #29696).
+ this._afterNextRenderRef?.destroy();
+
// Update the position once the overlay is fully rendered before attempting to position it,
// as the position may depend on the size of the rendered content.
- afterNextRender(
+ this._afterNextRenderRef = afterNextRender(
() => {
// The overlay could've been detached before the callback executed.
if (this.hasAttached()) {
@@ -267,6 +275,7 @@ export class OverlayRef implements PortalOutlet {
this._outsidePointerEvents.complete();
this._outsideClickDispatcher.remove(this);
this._host?.remove();
+ this._afterNextRenderRef?.destroy();
this._previousHostParent = this._pane = this._host = null!;
diff --git a/src/cdk/overlay/overlay.spec.ts b/src/cdk/overlay/overlay.spec.ts
index 47a700d22740..77048fdc5dc0 100644
--- a/src/cdk/overlay/overlay.spec.ts
+++ b/src/cdk/overlay/overlay.spec.ts
@@ -59,7 +59,7 @@ describe('Overlay', () => {
useClass: SpyLocation,
},
],
- }).compileComponents();
+ });
overlay = TestBed.inject(Overlay);
overlayContainer = TestBed.inject(OverlayContainer);
diff --git a/src/cdk/overlay/scroll/block-scroll-strategy.spec.ts b/src/cdk/overlay/scroll/block-scroll-strategy.spec.ts
index e4fed7c84b54..bafe9541229e 100644
--- a/src/cdk/overlay/scroll/block-scroll-strategy.spec.ts
+++ b/src/cdk/overlay/scroll/block-scroll-strategy.spec.ts
@@ -21,7 +21,7 @@ describe('BlockScrollStrategy', () => {
TestBed.configureTestingModule({
imports: [OverlayModule, PortalModule, FocacciaMsg],
- }).compileComponents();
+ });
}));
beforeEach(inject(
diff --git a/src/cdk/overlay/scroll/close-scroll-strategy.spec.ts b/src/cdk/overlay/scroll/close-scroll-strategy.spec.ts
index 54c404ff8f11..8f5828c872bc 100644
--- a/src/cdk/overlay/scroll/close-scroll-strategy.spec.ts
+++ b/src/cdk/overlay/scroll/close-scroll-strategy.spec.ts
@@ -31,8 +31,6 @@ describe('CloseScrollStrategy', () => {
},
],
});
-
- TestBed.compileComponents();
}));
beforeEach(inject([Overlay], (overlay: Overlay) => {
diff --git a/src/cdk/overlay/scroll/close-scroll-strategy.zone.spec.ts b/src/cdk/overlay/scroll/close-scroll-strategy.zone.spec.ts
index 85c85a5dd92c..163b9bea5672 100644
--- a/src/cdk/overlay/scroll/close-scroll-strategy.zone.spec.ts
+++ b/src/cdk/overlay/scroll/close-scroll-strategy.zone.spec.ts
@@ -36,8 +36,6 @@ describe('CloseScrollStrategy Zone.js integration', () => {
},
],
});
-
- TestBed.compileComponents();
}));
beforeEach(inject([Overlay], (overlay: Overlay) => {
diff --git a/src/cdk/overlay/scroll/reposition-scroll-strategy.spec.ts b/src/cdk/overlay/scroll/reposition-scroll-strategy.spec.ts
index cbed6a919a52..c5c27b13535c 100644
--- a/src/cdk/overlay/scroll/reposition-scroll-strategy.spec.ts
+++ b/src/cdk/overlay/scroll/reposition-scroll-strategy.spec.ts
@@ -29,8 +29,6 @@ describe('RepositionScrollStrategy', () => {
},
],
});
-
- TestBed.compileComponents();
}));
beforeEach(inject([Overlay], (o: Overlay) => {
diff --git a/src/cdk/portal/portal.spec.ts b/src/cdk/portal/portal.spec.ts
index e7d4fe54d1b0..93f8edce0693 100644
--- a/src/cdk/portal/portal.spec.ts
+++ b/src/cdk/portal/portal.spec.ts
@@ -33,7 +33,7 @@ describe('Portals', () => {
PizzaMsg,
SaveParentNodeOnInit,
],
- }).compileComponents();
+ });
});
describe('CdkPortalOutlet', () => {
diff --git a/src/cdk/portal/portal.ts b/src/cdk/portal/portal.ts
index 0c44c960727b..87d9f836dc85 100644
--- a/src/cdk/portal/portal.ts
+++ b/src/cdk/portal/portal.ts
@@ -174,7 +174,7 @@ export class DomPortal extends Portal {
}
}
-/** A `PortalOutlet` is an space that can contain a single `Portal`. */
+/** A `PortalOutlet` is a space that can contain a single `Portal`. */
export interface PortalOutlet {
/** Attaches a portal to this outlet. */
attach(portal: Portal): any;
diff --git a/src/cdk/schematics/utils/project-targets.ts b/src/cdk/schematics/utils/project-targets.ts
index 287ed701a768..d8f456e55628 100644
--- a/src/cdk/schematics/utils/project-targets.ts
+++ b/src/cdk/schematics/utils/project-targets.ts
@@ -34,7 +34,8 @@ export function getProjectBuildTargets(
builder =>
builder === '@angular-devkit/build-angular:application' ||
builder === '@angular-devkit/build-angular:browser' ||
- builder === '@angular-devkit/build-angular:browser-esbuild',
+ builder === '@angular-devkit/build-angular:browser-esbuild' ||
+ builder === '@angular/build:application',
);
}
diff --git a/src/cdk/scrolling/scroll-dispatcher.spec.ts b/src/cdk/scrolling/scroll-dispatcher.spec.ts
index d46f649d366f..be4372e9188a 100644
--- a/src/cdk/scrolling/scroll-dispatcher.spec.ts
+++ b/src/cdk/scrolling/scroll-dispatcher.spec.ts
@@ -15,8 +15,6 @@ describe('ScrollDispatcher', () => {
TestBed.configureTestingModule({
imports: [ScrollingModule, ScrollingComponent, NestedScrollingComponent],
});
-
- TestBed.compileComponents();
}));
describe('Basic usage', () => {
diff --git a/src/cdk/scrolling/scroll-dispatcher.zone.spec.ts b/src/cdk/scrolling/scroll-dispatcher.zone.spec.ts
index b50d0a6a5099..99859c345b01 100644
--- a/src/cdk/scrolling/scroll-dispatcher.zone.spec.ts
+++ b/src/cdk/scrolling/scroll-dispatcher.zone.spec.ts
@@ -11,8 +11,6 @@ describe('ScrollDispatcher Zone.js integration', () => {
imports: [ScrollingModule, ScrollingComponent],
providers: [provideZoneChangeDetection()],
});
-
- TestBed.compileComponents();
}));
describe('Basic usage', () => {
diff --git a/src/cdk/scrolling/scrollable.spec.ts b/src/cdk/scrolling/scrollable.spec.ts
index 2a09d7863ef7..539369f27f94 100644
--- a/src/cdk/scrolling/scrollable.spec.ts
+++ b/src/cdk/scrolling/scrollable.spec.ts
@@ -27,7 +27,7 @@ describe('CdkScrollable', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, ScrollableViewport],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/scrolling/virtual-scroll-viewport.spec.ts b/src/cdk/scrolling/virtual-scroll-viewport.spec.ts
index fca855affe4b..c3233c3eafef 100644
--- a/src/cdk/scrolling/virtual-scroll-viewport.spec.ts
+++ b/src/cdk/scrolling/virtual-scroll-viewport.spec.ts
@@ -37,7 +37,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, FixedSizeVirtualScroll],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -847,7 +847,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, FixedSizeVirtualScrollWithRtlDirection],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(FixedSizeVirtualScrollWithRtlDirection);
testComponent = fixture.componentInstance;
@@ -947,7 +947,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, VirtualScrollWithNoStrategy],
- }).compileComponents();
+ });
});
it('should fail on construction', fakeAsync(() => {
@@ -969,7 +969,7 @@ describe('CdkVirtualScrollViewport', () => {
VirtualScrollWithItemInjectingViewContainer,
InjectsViewContainer,
],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -1003,7 +1003,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, CommonModule, DelayedInitializationVirtualScroll],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(DelayedInitializationVirtualScroll);
testComponent = fixture.componentInstance;
viewport = testComponent.viewport;
@@ -1033,7 +1033,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, CommonModule, VirtualScrollWithAppendOnly],
- }).compileComponents();
+ });
fixture = TestBed.createComponent(VirtualScrollWithAppendOnly);
testComponent = fixture.componentInstance;
viewport = testComponent.viewport;
@@ -1111,7 +1111,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, VirtualScrollWithCustomScrollingElement],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -1148,7 +1148,7 @@ describe('CdkVirtualScrollViewport', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [ScrollingModule, VirtualScrollWithScrollableWindow],
- }).compileComponents();
+ });
}));
beforeEach(() => {
@@ -1174,7 +1174,7 @@ describe('CdkVirtualScrollViewport', () => {
it('should be able to query for a virtual scroll viewport as a CdkScrollable', () => {
TestBed.configureTestingModule({
imports: [ScrollingModule, VirtualScrollableQuery],
- }).compileComponents();
+ });
const fixture = TestBed.createComponent(VirtualScrollableQuery);
fixture.detectChanges();
diff --git a/src/cdk/scrolling/virtual-scroll-viewport.zone.spec.ts b/src/cdk/scrolling/virtual-scroll-viewport.zone.spec.ts
index a1d9dfbb055d..b0547d767973 100644
--- a/src/cdk/scrolling/virtual-scroll-viewport.zone.spec.ts
+++ b/src/cdk/scrolling/virtual-scroll-viewport.zone.spec.ts
@@ -31,7 +31,7 @@ describe('CdkVirtualScrollViewport Zone.js intergation', () => {
TestBed.configureTestingModule({
providers: [provideZoneChangeDetection()],
imports: [ScrollingModule, FixedSizeVirtualScroll],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/stepper/stepper.ts b/src/cdk/stepper/stepper.ts
index 1a7d7851965e..5d7196274a90 100644
--- a/src/cdk/stepper/stepper.ts
+++ b/src/cdk/stepper/stepper.ts
@@ -35,6 +35,12 @@ import {
booleanAttribute,
numberAttribute,
} from '@angular/core';
+import {
+ ControlContainer,
+ type AbstractControl,
+ type NgForm,
+ type FormGroupDirective,
+} from '@angular/forms';
import {_getFocusedElementPierceShadowDom} from '@angular/cdk/platform';
import {Observable, of as observableOf, Subject} from 'rxjs';
import {startWith, takeUntil} from 'rxjs/operators';
@@ -102,7 +108,7 @@ export interface StepperOptions {
@Component({
selector: 'cdk-step',
exportAs: 'cdkStep',
- template: '',
+ template: '',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
@@ -114,11 +120,24 @@ export class CdkStep implements OnChanges {
/** Template for step label if it exists. */
@ContentChild(CdkStepLabel) stepLabel: CdkStepLabel;
+ /** Forms that have been projected into the step. */
+ @ContentChildren(
+ // Note: we look for `ControlContainer` here, because both `NgForm` and `FormGroupDirective`
+ // provides themselves as such, but we don't want to have a concrete reference to both of
+ // the directives. The type is marked as `Partial` in case we run into a class that provides
+ // itself as `ControlContainer` but doesn't have the same interface as the directives.
+ ControlContainer,
+ {
+ descendants: true,
+ },
+ )
+ protected _childForms: QueryList> | undefined;
+
/** Template for step content. */
@ViewChild(TemplateRef, {static: true}) content: TemplateRef;
/** The top level abstract control of the step. */
- @Input() stepControl: AbstractControlLike;
+ @Input() stepControl: AbstractControl;
/** Whether user has attempted to move away from the step. */
interacted = false;
@@ -205,6 +224,10 @@ export class CdkStep implements OnChanges {
}
if (this.stepControl) {
+ // Reset the forms since the default error state matchers will show errors on submit and we
+ // want the form to be back to its initial state (see #29781). Submitted state is on the
+ // individual directives, rather than the control, so we need to reset them ourselves.
+ this._childForms?.forEach(form => form.resetForm?.());
this.stepControl.reset();
}
}
@@ -558,54 +581,3 @@ export class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy {
return index > -1 && (!this.steps || index < this.steps.length);
}
}
-
-/**
- * Simplified representation of an "AbstractControl" from @angular/forms.
- * Used to avoid having to bring in @angular/forms for a single optional interface.
- * @docs-private
- */
-interface AbstractControlLike {
- asyncValidator: ((control: any) => any) | null;
- dirty: boolean;
- disabled: boolean;
- enabled: boolean;
- errors: {[key: string]: any} | null;
- invalid: boolean;
- parent: any;
- pending: boolean;
- pristine: boolean;
- root: AbstractControlLike;
- status: string;
- readonly statusChanges: Observable;
- touched: boolean;
- untouched: boolean;
- updateOn: any;
- valid: boolean;
- validator: ((control: any) => any) | null;
- value: any;
- readonly valueChanges: Observable;
- clearAsyncValidators(): void;
- clearValidators(): void;
- disable(opts?: any): void;
- enable(opts?: any): void;
- get(path: (string | number)[] | string): AbstractControlLike | null;
- getError(errorCode: string, path?: (string | number)[] | string): any;
- hasError(errorCode: string, path?: (string | number)[] | string): boolean;
- markAllAsTouched(): void;
- markAsDirty(opts?: any): void;
- markAsPending(opts?: any): void;
- markAsPristine(opts?: any): void;
- markAsTouched(opts?: any): void;
- markAsUntouched(opts?: any): void;
- patchValue(value: any, options?: Object): void;
- reset(value?: any, options?: Object): void;
- setAsyncValidators(newValidator: (control: any) => any | ((control: any) => any)[] | null): void;
- setErrors(errors: {[key: string]: any} | null, opts?: any): void;
- setParent(parent: any): void;
- setValidators(newValidator: (control: any) => any | ((control: any) => any)[] | null): void;
- setValue(value: any, options?: Object): void;
- updateValueAndValidity(opts?: any): void;
- patchValue(value: any, options?: any): void;
- reset(formState?: any, options?: any): void;
- setValue(value: any, options?: any): void;
-}
diff --git a/src/cdk/table/table.spec.ts b/src/cdk/table/table.spec.ts
index 41b3cb86254f..66cbe031481a 100644
--- a/src/cdk/table/table.spec.ts
+++ b/src/cdk/table/table.spec.ts
@@ -47,7 +47,7 @@ describe('CdkTable', () => {
TestBed.configureTestingModule({
imports: [CdkTableModule, BidiModule],
declarations: [componentType, ...declarations],
- }).compileComponents();
+ });
return TestBed.createComponent(componentType);
}
diff --git a/src/cdk/table/text-column.spec.ts b/src/cdk/table/text-column.spec.ts
index 3bdd9616204f..ffb4a54a3e85 100644
--- a/src/cdk/table/text-column.spec.ts
+++ b/src/cdk/table/text-column.spec.ts
@@ -17,7 +17,7 @@ describe('CdkTextColumn', () => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [CdkTableModule, BasicTextColumnApp, MissingTableApp, TextColumnWithoutNameApp],
- }).compileComponents();
+ });
}));
beforeEach(() => {
diff --git a/src/cdk/text-field/_index.scss b/src/cdk/text-field/_index.scss
index 35a59d4de359..2dd635e6e268 100644
--- a/src/cdk/text-field/_index.scss
+++ b/src/cdk/text-field/_index.scss
@@ -29,7 +29,7 @@
// Core styles that enable monitoring autofill state of text fields.
@mixin text-field-autofill() {
- // Keyframes that apply no styles, but allow us to monitor when an text field becomes autofilled
+ // Keyframes that apply no styles, but allow us to monitor when a text field becomes autofilled
// by watching for the animation events that are fired when they start. Note: the /*!*/ comment is
// needed to prevent LibSass from stripping the keyframes out.
// Based on: https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7
diff --git a/src/cdk/text-field/autofill.spec.ts b/src/cdk/text-field/autofill.spec.ts
index 6f14e907430c..0a0e31a41cab 100644
--- a/src/cdk/text-field/autofill.spec.ts
+++ b/src/cdk/text-field/autofill.spec.ts
@@ -23,7 +23,7 @@ describe('AutofillMonitor', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [TextFieldModule, Inputs],
- }).compileComponents();
+ });
});
beforeEach(inject([AutofillMonitor], (afm: AutofillMonitor) => {
@@ -175,7 +175,7 @@ describe('cdkAutofill', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [TextFieldModule, InputWithCdkAutofilled],
- }).compileComponents();
+ });
});
beforeEach(inject([AutofillMonitor], (afm: AutofillMonitor) => {
diff --git a/src/cdk/text-field/autofill.zone.spec.ts b/src/cdk/text-field/autofill.zone.spec.ts
index 31a8d5a87b3e..70882a2067b2 100644
--- a/src/cdk/text-field/autofill.zone.spec.ts
+++ b/src/cdk/text-field/autofill.zone.spec.ts
@@ -12,7 +12,7 @@ describe('AutofillMonitor Zone.js integration', () => {
TestBed.configureTestingModule({
providers: [provideZoneChangeDetection()],
imports: [TextFieldModule, Inputs],
- }).compileComponents();
+ });
});
beforeEach(inject([AutofillMonitor], (afm: AutofillMonitor) => {
diff --git a/src/cdk/text-field/autosize.spec.ts b/src/cdk/text-field/autosize.spec.ts
index ad3b159484d9..df0efd201ba1 100644
--- a/src/cdk/text-field/autosize.spec.ts
+++ b/src/cdk/text-field/autosize.spec.ts
@@ -31,8 +31,6 @@ describe('CdkTextareaAutosize', () => {
AutosizeTextareaWithoutAutosize,
],
});
-
- TestBed.compileComponents();
}));
beforeEach(() => {
diff --git a/src/cdk/tree/BUILD.bazel b/src/cdk/tree/BUILD.bazel
index 2ff0295e6468..4434c52a254b 100644
--- a/src/cdk/tree/BUILD.bazel
+++ b/src/cdk/tree/BUILD.bazel
@@ -18,7 +18,9 @@ ng_module(
"//src:dev_mode_types",
"//src/cdk/a11y",
"//src/cdk/bidi",
+ "//src/cdk/coercion/private",
"//src/cdk/collections",
+ "//src/cdk/keycodes",
"@npm//@angular/core",
"@npm//rxjs",
],
@@ -32,8 +34,11 @@ ng_test_library(
),
deps = [
":tree",
+ "//src/cdk/a11y",
"//src/cdk/bidi",
"//src/cdk/collections",
+ "//src/cdk/keycodes",
+ "//src/cdk/testing/testbed",
"@npm//rxjs",
],
)
diff --git a/src/cdk/tree/control/base-tree-control.ts b/src/cdk/tree/control/base-tree-control.ts
index 4fad8b20e947..bc1b51f4117b 100644
--- a/src/cdk/tree/control/base-tree-control.ts
+++ b/src/cdk/tree/control/base-tree-control.ts
@@ -9,7 +9,12 @@ import {SelectionModel} from '@angular/cdk/collections';
import {Observable} from 'rxjs';
import {TreeControl} from './tree-control';
-/** Base tree control. It has basic toggle/expand/collapse operations on a single data node. */
+/**
+ * Base tree control. It has basic toggle/expand/collapse operations on a single data node.
+ *
+ * @deprecated Use one of levelAccessor or childrenAccessor. To be removed in a future version.
+ * @breaking-change 21.0.0
+ */
export abstract class BaseTreeControl implements TreeControl {
/** Gets a list of descendent data nodes of a subtree rooted at given data node recursively. */
abstract getDescendants(dataNode: T): T[];
diff --git a/src/cdk/tree/control/flat-tree-control.ts b/src/cdk/tree/control/flat-tree-control.ts
index 3c128295f0d4..203ed1aca4f6 100644
--- a/src/cdk/tree/control/flat-tree-control.ts
+++ b/src/cdk/tree/control/flat-tree-control.ts
@@ -13,7 +13,13 @@ export interface FlatTreeControlOptions {
trackBy?: (dataNode: T) => K;
}
-/** Flat tree control. Able to expand/collapse a subtree recursively for flattened tree. */
+/**
+ * Flat tree control. Able to expand/collapse a subtree recursively for flattened tree.
+ *
+ * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future
+ * version.
+ * @breaking-change 21.0.0
+ */
export class FlatTreeControl extends BaseTreeControl {
/** Construct with flat tree data node functions getLevel and isExpandable. */
constructor(
diff --git a/src/cdk/tree/control/nested-tree-control.ts b/src/cdk/tree/control/nested-tree-control.ts
index 6a30fabcfbdd..9fbc5f7defe9 100644
--- a/src/cdk/tree/control/nested-tree-control.ts
+++ b/src/cdk/tree/control/nested-tree-control.ts
@@ -11,10 +11,18 @@ import {BaseTreeControl} from './base-tree-control';
/** Optional set of configuration that can be provided to the NestedTreeControl. */
export interface NestedTreeControlOptions {
+ /** Function to determine if the provided node is expandable. */
+ isExpandable?: (dataNode: T) => boolean;
trackBy?: (dataNode: T) => K;
}
-/** Nested tree control. Able to expand/collapse a subtree recursively for NestedNode type. */
+/**
+ * Nested tree control. Able to expand/collapse a subtree recursively for NestedNode type.
+ *
+ * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future
+ * version.
+ * @breaking-change 21.0.0
+ */
export class NestedTreeControl extends BaseTreeControl {
/** Construct with nested tree function getChildren. */
constructor(
@@ -26,6 +34,10 @@ export class NestedTreeControl extends BaseTreeControl {
if (this.options) {
this.trackBy = this.options.trackBy;
}
+
+ if (this.options?.isExpandable) {
+ this.isExpandable = this.options.isExpandable;
+ }
}
/**
diff --git a/src/cdk/tree/control/tree-control.ts b/src/cdk/tree/control/tree-control.ts
index f32e0f4c5852..e57697038742 100644
--- a/src/cdk/tree/control/tree-control.ts
+++ b/src/cdk/tree/control/tree-control.ts
@@ -12,6 +12,9 @@ import {Observable} from 'rxjs';
* Tree control interface. User can implement TreeControl to expand/collapse dataNodes in the tree.
* The CDKTree will use this TreeControl to expand/collapse a node.
* User can also use it outside the `` to control the expansion status of the tree.
+ *
+ * @deprecated Use one of levelAccessor or childrenAccessor instead. To be removed in a future version.
+ * @breaking-change 21.0.0
*/
export interface TreeControl {
/** The saved tree nodes data for `expandAll` action. */
diff --git a/src/cdk/tree/nested-node.ts b/src/cdk/tree/nested-node.ts
index da7f672c84a4..ad10a24fad13 100644
--- a/src/cdk/tree/nested-node.ts
+++ b/src/cdk/tree/nested-node.ts
@@ -16,12 +16,10 @@ import {
OnInit,
QueryList,
} from '@angular/core';
-import {isObservable} from 'rxjs';
import {takeUntil} from 'rxjs/operators';
import {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from './outlet';
import {CdkTree, CdkTreeNode} from './tree';
-import {getTreeControlFunctionsMissingError} from './tree-errors';
/**
* Nested node is a child of ``. It works with nested tree.
@@ -69,17 +67,10 @@ export class CdkNestedTreeNode
ngAfterContentInit() {
this._dataDiffer = this._differs.find([]).create(this._tree.trackBy);
- if (!this._tree.treeControl.getChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {
- throw getTreeControlFunctionsMissingError();
- }
- const childrenNodes = this._tree.treeControl.getChildren(this.data);
- if (Array.isArray(childrenNodes)) {
- this.updateChildrenNodes(childrenNodes as T[]);
- } else if (isObservable(childrenNodes)) {
- childrenNodes
- .pipe(takeUntil(this._destroyed))
- .subscribe(result => this.updateChildrenNodes(result));
- }
+ this._tree
+ ._getDirectChildren(this.data)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(result => this.updateChildrenNodes(result));
this.nodeOutlet.changes
.pipe(takeUntil(this._destroyed))
.subscribe(() => this.updateChildrenNodes());
@@ -88,6 +79,7 @@ export class CdkNestedTreeNode
// This is a workaround for https://github.com/angular/angular/issues/23091
// In aot mode, the lifecycle hooks from parent class are not called.
override ngOnInit() {
+ this._tree._setNodeTypeIfUnset('nested');
super.ngOnInit();
}
diff --git a/src/cdk/tree/padding.ts b/src/cdk/tree/padding.ts
index 14b98eee7f8f..4a00ff6e98be 100644
--- a/src/cdk/tree/padding.ts
+++ b/src/cdk/tree/padding.ts
@@ -80,10 +80,7 @@ export class CdkTreeNodePadding implements OnDestroy {
/** The padding indent value for the tree node. Returns a string with px numbers if not null. */
_paddingIndent(): string | null {
- const nodeLevel =
- this._treeNode.data && this._tree.treeControl.getLevel
- ? this._tree.treeControl.getLevel(this._treeNode.data)
- : null;
+ const nodeLevel = (this._treeNode.data && this._tree._getLevel(this._treeNode.data)) ?? null;
const level = this._level == null ? nodeLevel : this._level;
return typeof level === 'number' ? `${level * this._indent}${this.indentUnits}` : null;
}
diff --git a/src/cdk/tree/toggle.ts b/src/cdk/tree/toggle.ts
index e9ea2060e8d3..a10e17f80007 100644
--- a/src/cdk/tree/toggle.ts
+++ b/src/cdk/tree/toggle.ts
@@ -11,12 +11,15 @@ import {Directive, Input, booleanAttribute} from '@angular/core';
import {CdkTree, CdkTreeNode} from './tree';
/**
- * Node toggle to expand/collapse the node.
+ * Node toggle to expand and collapse the node.
*/
@Directive({
selector: '[cdkTreeNodeToggle]',
host: {
- '(click)': '_toggle($event)',
+ '(click)': '_toggle(); $event.stopPropagation();',
+ '(keydown.Enter)': '_toggle(); $event.preventDefault();',
+ '(keydown.Space)': '_toggle(); $event.preventDefault();',
+ 'tabindex': '-1',
},
standalone: true,
})
@@ -30,11 +33,15 @@ export class CdkTreeNodeToggle {
protected _treeNode: CdkTreeNode,
) {}
- _toggle(event: Event): void {
+ // Toggle the expanded or collapsed state of this node.
+ //
+ // Focus this node with expanding or collapsing it. This ensures that the active node will always
+ // be visible when expanding and collapsing.
+ _toggle(): void {
this.recursive
- ? this._tree.treeControl.toggleDescendants(this._treeNode.data)
- : this._tree.treeControl.toggle(this._treeNode.data);
+ ? this._tree.toggleDescendants(this._treeNode.data)
+ : this._tree.toggle(this._treeNode.data);
- event.stopPropagation();
+ this._tree._keyManager.focusItem(this._treeNode);
}
}
diff --git a/src/cdk/tree/tree-errors.ts b/src/cdk/tree/tree-errors.ts
index aad9df0911a7..ba70ea5bfa80 100644
--- a/src/cdk/tree/tree-errors.ts
+++ b/src/cdk/tree/tree-errors.ts
@@ -31,17 +31,18 @@ export function getTreeMissingMatchingNodeDefError() {
}
/**
- * Returns an error to be thrown when there are tree control.
+ * Returns an error to be thrown when there is no tree control.
* @docs-private
*/
export function getTreeControlMissingError() {
- return Error(`Could not find a tree control for the tree.`);
+ return Error(`Could not find a tree control, levelAccessor, or childrenAccessor for the tree.`);
}
/**
- * Returns an error to be thrown when tree control did not implement functions for flat/nested node.
+ * Returns an error to be thrown when there are multiple ways of specifying children or level
+ * provided to the tree.
* @docs-private
*/
-export function getTreeControlFunctionsMissingError() {
- return Error(`Could not find functions for nested/flat tree in tree control.`);
+export function getMultipleTreeControlsError() {
+ return Error(`More than one of tree control, levelAccessor, or childrenAccessor were provided.`);
}
diff --git a/src/cdk/tree/tree-using-legacy-key-manager.spec.ts b/src/cdk/tree/tree-using-legacy-key-manager.spec.ts
new file mode 100644
index 000000000000..bf0a6f71f448
--- /dev/null
+++ b/src/cdk/tree/tree-using-legacy-key-manager.spec.ts
@@ -0,0 +1,92 @@
+import {Component, ElementRef, QueryList, ViewChild, ViewChildren} from '@angular/core';
+import {ComponentFixture, TestBed} from '@angular/core/testing';
+import {of} from 'rxjs';
+import {CdkTreeModule} from './tree-module';
+import {NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER} from '@angular/cdk/a11y';
+
+describe('CdkTree when provided LegacyTreeKeyManager', () => {
+ let fixture: ComponentFixture;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({
+ imports: [CdkTreeModule],
+ declarations: [SimpleCdkTreeApp],
+ providers: [NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER],
+ });
+
+ fixture = TestBed.createComponent(SimpleCdkTreeApp);
+ fixture.detectChanges();
+ });
+
+ describe('with default node options', () => {
+ it('renders nodes with tabindex attribute of -1', () => {
+ const treeItems = fixture.componentInstance.treeNodes;
+
+ expect(treeItems.map(x => `${x.nativeElement.getAttribute('tabindex')}`).join(', '))
+ .withContext('tabindex of tree nodes')
+ .toEqual('-1, -1');
+ });
+ });
+
+ describe('when focusing the second node', () => {
+ beforeEach(() => {
+ const treeItems = fixture.componentInstance.treeNodes;
+
+ treeItems.get(1)!.nativeElement.focus();
+ fixture.detectChanges();
+ });
+
+ it('does not change tabindex of nodes', () => {
+ const treeItems = fixture.componentInstance.treeNodes;
+
+ expect(treeItems.map(x => `${x.nativeElement.getAttribute('tabindex')}`).join(', '))
+ .withContext('tabindex of tree nodes')
+ .toEqual('-1, -1');
+ });
+ });
+
+ describe('when clicking the second node', () => {
+ beforeEach(() => {
+ const treeItems = fixture.componentInstance.treeNodes;
+
+ treeItems.get(1)!.nativeElement.click();
+ fixture.detectChanges();
+ });
+
+ it('does not change active element', () => {
+ expect(document.activeElement).toEqual(document.body);
+ });
+
+ it('does not change tabindex of nodes', () => {
+ const treeItems = fixture.componentInstance.treeNodes;
+
+ expect(treeItems.map(x => `${x.nativeElement.getAttribute('tabindex')}`).join(', '))
+ .withContext('tabindex of tree nodes')
+ .toEqual('-1, -1');
+ });
+ });
+});
+
+class MinimalTestData {
+ constructor(public name: string) {}
+ children: MinimalTestData[] = [];
+}
+
+@Component({
+ template: `
+
+
+ {{node.name}}
+
+
+ `,
+})
+class SimpleCdkTreeApp {
+ isExpandable = (node: MinimalTestData) => node.children.length > 0;
+ getChildren = (node: MinimalTestData) => node.children;
+
+ dataSource = of([new MinimalTestData('apple'), new MinimalTestData('banana')]);
+
+ @ViewChild('tree', {read: ElementRef}) tree: ElementRef;
+ @ViewChildren('node') treeNodes: QueryList>;
+}
diff --git a/src/cdk/tree/tree-with-tree-control.spec.ts b/src/cdk/tree/tree-with-tree-control.spec.ts
new file mode 100644
index 000000000000..1cfcff3f447f
--- /dev/null
+++ b/src/cdk/tree/tree-with-tree-control.spec.ts
@@ -0,0 +1,1844 @@
+/**
+ * @license
+ * Copyright Google LLC All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import {ComponentFixture, TestBed} from '@angular/core/testing';
+import {
+ Component,
+ ErrorHandler,
+ ViewChild,
+ TrackByFunction,
+ Type,
+ EventEmitter,
+ ViewChildren,
+ QueryList,
+} from '@angular/core';
+
+import {CollectionViewer, DataSource} from '@angular/cdk/collections';
+import {Directionality, Direction} from '@angular/cdk/bidi';
+import {createKeyboardEvent} from '@angular/cdk/testing/testbed/fake-events';
+import {combineLatest, BehaviorSubject, Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
+
+import {TreeControl} from './control/tree-control';
+import {FlatTreeControl} from './control/flat-tree-control';
+import {NestedTreeControl} from './control/nested-tree-control';
+import {CdkTreeModule, CdkTreeNodePadding} from './index';
+import {CdkTree, CdkTreeNode} from './tree';
+
+describe('CdkTree with TreeControl', () => {
+ /** Represents an indent for expectNestedTreeToMatch */
+ const _ = {};
+ let dataSource: FakeDataSource;
+ let treeElement: HTMLElement;
+ let tree: CdkTree;
+ let dir: {value: Direction; readonly change: EventEmitter};
+
+ function configureCdkTreeTestingModule(declarations: Type[]) {
+ TestBed.configureTestingModule({
+ imports: [CdkTreeModule],
+ providers: [
+ {
+ provide: Directionality,
+ useFactory: () => (dir = {value: 'ltr', change: new EventEmitter()}),
+ },
+ // Custom error handler that re-throws the error. Errors happening within
+ // change detection phase will be reported through the handler and thrown
+ // in Ivy. Since we do not want to pollute the "console.error", but rather
+ // just rely on the actual error interrupting the test, we re-throw here.
+ {
+ provide: ErrorHandler,
+ useValue: {
+ handleError: (err: any) => {
+ throw err;
+ },
+ },
+ },
+ ],
+ declarations: declarations,
+ });
+ }
+
+ it('should clear out the `mostRecentTreeNode` on destroy', () => {
+ configureCdkTreeTestingModule([SimpleCdkTreeApp]);
+ const fixture = TestBed.createComponent(SimpleCdkTreeApp);
+ fixture.detectChanges();
+
+ // Cast the assertions to a boolean to avoid Jasmine going into an
+ // infinite loop when stringifying the object, if the test starts failing.
+ expect(!!CdkTreeNode.mostRecentTreeNode).toBe(true);
+
+ fixture.destroy();
+
+ expect(!!CdkTreeNode.mostRecentTreeNode).toBe(false);
+ });
+
+ it('should complete the viewChange stream on destroy', () => {
+ configureCdkTreeTestingModule([SimpleCdkTreeApp]);
+ const fixture = TestBed.createComponent(SimpleCdkTreeApp);
+ fixture.detectChanges();
+ const spy = jasmine.createSpy('completeSpy');
+ const subscription = fixture.componentInstance.tree.viewChange.subscribe({complete: spy});
+
+ fixture.destroy();
+ expect(spy).toHaveBeenCalled();
+ subscription.unsubscribe();
+ });
+
+ describe('flat tree', () => {
+ describe('should initialize', () => {
+ let fixture: ComponentFixture;
+ let component: SimpleCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([SimpleCdkTreeApp]);
+ fixture = TestBed.createComponent(SimpleCdkTreeApp);
+
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with a connected data source', () => {
+ expect(tree.dataSource).toBe(dataSource);
+ expect(dataSource.isConnected).toBe(true);
+ });
+
+ it('with rendered dataNodes', () => {
+ const nodes = getNodes(treeElement);
+
+ expect(nodes).withContext('Expect nodes to be defined').toBeDefined();
+ expect(nodes[0].classList).toContain('customNodeClass');
+ });
+
+ it('with the right accessibility roles', () => {
+ expect(treeElement.getAttribute('role')).toBe('tree');
+
+ expect(
+ getNodes(treeElement).every(node => {
+ return node.getAttribute('role') === 'treeitem';
+ }),
+ ).toBe(true);
+ });
+
+ it('with the right aria-levels', () => {
+ // add a child to the first node
+ let data = dataSource.data;
+ dataSource.addChild(data[0], true);
+ fixture.detectChanges();
+
+ const ariaLevels = getNodes(treeElement).map(n => n.getAttribute('aria-level'));
+ expect(ariaLevels).toEqual(['2', '3', '2', '2']);
+ });
+
+ it('with the right aria-expanded attrs', () => {
+ // add a child to the first node
+ let data = dataSource.data;
+ dataSource.addChild(data[2]);
+ fixture.detectChanges();
+ let ariaExpandedStates = getNodes(treeElement).map(n => n.getAttribute('aria-expanded'));
+ expect(ariaExpandedStates).toEqual([null, null, 'false', null]);
+
+ component.treeControl.expandAll();
+ fixture.detectChanges();
+
+ ariaExpandedStates = getNodes(treeElement).map(n => n.getAttribute('aria-expanded'));
+ expect(ariaExpandedStates).toEqual([null, null, 'true', null]);
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ );
+
+ dataSource.addData(2);
+ fixture.detectChanges();
+
+ data = dataSource.data;
+ expect(data.length).toBe(4);
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ [_, `${data[3].pizzaTopping} - ${data[3].pizzaCheese} + ${data[3].pizzaBase}`],
+ );
+ });
+
+ it('should be able to use units different from px for the indentation', () => {
+ component.indent = '15rem';
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ const data = dataSource.data;
+
+ expectFlatTreeToMatch(
+ treeElement,
+ 15,
+ 'rem',
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ );
+ });
+
+ it('should default to px if no unit is set for string value indentation', () => {
+ component.indent = '17';
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ const data = dataSource.data;
+
+ expectFlatTreeToMatch(
+ treeElement,
+ 17,
+ 'px',
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ );
+ });
+
+ it('should be able to set zero as the indent level', () => {
+ component.paddingNodes.forEach(node => (node.level = 0));
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ const data = dataSource.data;
+
+ expectFlatTreeToMatch(
+ treeElement,
+ 0,
+ 'px',
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ );
+ });
+
+ it('should reset the opposite direction padding if the direction changes', () => {
+ const node = getNodes(treeElement)[0];
+
+ component.indent = 10;
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ expect(node.style.paddingLeft).toBe('10px');
+ expect(node.style.paddingRight).toBeFalsy();
+
+ dir.value = 'rtl';
+ dir.change.emit('rtl');
+ fixture.detectChanges();
+
+ expect(node.style.paddingRight).toBe('10px');
+ expect(node.style.paddingLeft).toBeFalsy();
+ });
+ });
+
+ describe('with toggle', () => {
+ let fixture: ComponentFixture;
+ let component: CdkTreeAppWithToggle;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([CdkTreeAppWithToggle]);
+ fixture = TestBed.createComponent(CdkTreeAppWithToggle);
+
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('should expand/collapse the node', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect no expanded node`)
+ .toBe(0);
+
+ component.toggleRecursively = false;
+ let data = dataSource.data;
+ dataSource.addChild(data[2]);
+ fixture.detectChanges();
+
+ data = dataSource.data;
+ expect(data.length).toBe(4);
+ expectFlatTreeToMatch(
+ treeElement,
+ 40,
+ 'px',
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ [_, `${data[3].pizzaTopping} - ${data[3].pizzaCheese} + ${data[3].pizzaBase}`],
+ );
+
+ (getNodes(treeElement)[2] as HTMLElement).click();
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node expanded`)
+ .toBe(1);
+ expect(component.treeControl.expansionModel.selected[0]).toBe(data[2]);
+
+ (getNodes(treeElement)[2] as HTMLElement).click();
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node collapsed`)
+ .toBe(0);
+ });
+
+ it('should expand/collapse the node recursively', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect no expanded node`)
+ .toBe(0);
+
+ let data = dataSource.data;
+ dataSource.addChild(data[2]);
+ fixture.detectChanges();
+
+ data = dataSource.data;
+ expect(data.length).toBe(4);
+ expectFlatTreeToMatch(
+ treeElement,
+ 40,
+ 'px',
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ [_, `${data[3].pizzaTopping} - ${data[3].pizzaCheese} + ${data[3].pizzaBase}`],
+ );
+
+ (getNodes(treeElement)[2] as HTMLElement).click();
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect nodes expanded`)
+ .toBe(2);
+ expect(component.treeControl.expansionModel.selected[0])
+ .withContext(`Expect parent node expanded`)
+ .toBe(data[2]);
+ expect(component.treeControl.expansionModel.selected[1])
+ .withContext(`Expected child node expanded`)
+ .toBe(data[3]);
+
+ (getNodes(treeElement)[2] as HTMLElement).click();
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node collapsed`)
+ .toBe(0);
+ });
+ });
+
+ describe('with when node template', () => {
+ let fixture: ComponentFixture;
+ let component: WhenNodeCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([WhenNodeCdkTreeApp]);
+ fixture = TestBed.createComponent(WhenNodeCdkTreeApp);
+
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+
+ dataSource.addChild(data[1]);
+ fixture.detectChanges();
+
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ data = dataSource.data;
+ expect(data.length).toBe(4);
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+ });
+ });
+
+ describe('with array data source', () => {
+ let fixture: ComponentFixture;
+ let component: ArrayDataSourceCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([ArrayDataSourceCdkTreeApp]);
+ fixture = TestBed.createComponent(ArrayDataSourceCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+
+ dataSource.addChild(data[1]);
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ data = dataSource.data;
+ expect(data.length).toBe(4);
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [_, `[topping_4] - [cheese_4] + [base_4]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+ });
+ });
+
+ describe('with observable data source', () => {
+ let fixture: ComponentFixture;
+ let component: ObservableDataSourceCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([ObservableDataSourceCdkTreeApp]);
+ fixture = TestBed.createComponent(ObservableDataSourceCdkTreeApp);
+
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+
+ dataSource.addChild(data[1]);
+ fixture.detectChanges();
+
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ data = dataSource.data;
+ expect(data.length).toBe(4);
+ expectFlatTreeToMatch(
+ treeElement,
+ 28,
+ 'px',
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [_, `[topping_4] - [cheese_4] + [base_4]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+ });
+ });
+
+ describe('with trackBy', () => {
+ let fixture: ComponentFixture;
+ let component: CdkTreeAppWithTrackBy;
+
+ function createTrackByTestComponent(trackByStrategy: 'reference' | 'property' | 'index') {
+ configureCdkTreeTestingModule([CdkTreeAppWithTrackBy]);
+ fixture = TestBed.createComponent(CdkTreeAppWithTrackBy);
+ component = fixture.componentInstance;
+ component.trackByStrategy = trackByStrategy;
+ fixture.detectChanges();
+
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+
+ // Each node receives an attribute 'initialIndex' the element's original place
+ getNodes(treeElement).forEach((node: Element, index: number) => {
+ node.setAttribute('initialIndex', index.toString());
+ });
+
+ // Prove that the attributes match their indices
+ const initialNodes = getNodes(treeElement);
+ expect(initialNodes[0].getAttribute('initialIndex')).toBe('0');
+ expect(initialNodes[1].getAttribute('initialIndex')).toBe('1');
+ expect(initialNodes[2].getAttribute('initialIndex')).toBe('2');
+ }
+
+ function mutateData() {
+ // Swap first and second data in data array
+ const copiedData = component.dataSource.data.slice();
+ const temp = copiedData[0];
+ copiedData[0] = copiedData[1];
+ copiedData[1] = temp;
+
+ // Remove the third element
+ copiedData.splice(2, 1);
+
+ // Add new data
+ component.dataSource.data = copiedData;
+ component.dataSource.addData();
+ }
+
+ it('should add/remove/move nodes with reference-based trackBy', () => {
+ createTrackByTestComponent('reference');
+ mutateData();
+
+ // Expect that the first and second nodes were swapped and that the last node is new
+ const changedNodes = getNodes(treeElement);
+ expect(changedNodes.length).toBe(3);
+ expect(changedNodes[0].getAttribute('initialIndex')).toBe('1');
+ expect(changedNodes[1].getAttribute('initialIndex')).toBe('0');
+ expect(changedNodes[2].getAttribute('initialIndex')).toBe(null);
+ });
+
+ it('should add/remove/move nodes with property-based trackBy', () => {
+ createTrackByTestComponent('property');
+ mutateData();
+
+ // Change each item reference to show that the trackby is checking the item properties.
+ // Otherwise this would cause them all to be removed/added.
+ component.dataSource.data = component.dataSource.data.map(
+ item => new TestData(item.pizzaTopping, item.pizzaCheese, item.pizzaBase),
+ );
+
+ // Expect that the first and second nodes were swapped and that the last node is new
+ const changedNodes = getNodes(treeElement);
+ expect(changedNodes.length).toBe(3);
+ expect(changedNodes[0].getAttribute('initialIndex')).toBe('1');
+ expect(changedNodes[1].getAttribute('initialIndex')).toBe('0');
+ expect(changedNodes[2].getAttribute('initialIndex')).toBe(null);
+ });
+
+ it('should add/remove/move nodes with index-based trackBy', () => {
+ createTrackByTestComponent('index');
+ mutateData();
+
+ // Change each item reference to show that the trackby is checking the index.
+ // Otherwise this would cause them all to be removed/added.
+ component.dataSource.data = component.dataSource.data.map(
+ item => new TestData(item.pizzaTopping, item.pizzaCheese, item.pizzaBase),
+ );
+
+ // Expect first two to be the same since they were swapped but indicies are consistent.
+ // The third element was removed and caught by the tree so it was removed before another
+ // item was added, so it is without an initial index.
+ const changedNodes = getNodes(treeElement);
+ expect(changedNodes.length).toBe(3);
+ expect(changedNodes[0].getAttribute('initialIndex')).toBe('0');
+ expect(changedNodes[1].getAttribute('initialIndex')).toBe('1');
+ expect(changedNodes[2].getAttribute('initialIndex')).toBe(null);
+ });
+ });
+
+ it('should pick up indirect descendant node definitions', () => {
+ configureCdkTreeTestingModule([SimpleCdkTreeAppWithIndirectNodes]);
+ const fixture = TestBed.createComponent(SimpleCdkTreeAppWithIndirectNodes);
+ fixture.detectChanges();
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+
+ expect(getNodes(treeElement).length).toBe(3);
+ });
+ });
+
+ describe('nested tree', () => {
+ describe('should initialize', () => {
+ let fixture: ComponentFixture;
+ let component: NestedCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([NestedCdkTreeApp]);
+ fixture = TestBed.createComponent(NestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with a connected data source', () => {
+ expect(tree.dataSource).toBe(dataSource);
+ expect(dataSource.isConnected).toBe(true);
+ });
+
+ it('with rendered dataNodes', () => {
+ const nodes = getNodes(treeElement);
+
+ expect(nodes).withContext('Expect nodes to be defined').toBeDefined();
+ expect(nodes[0].classList).toContain('customNodeClass');
+ });
+
+ it('with the right accessibility roles', () => {
+ expect(treeElement.getAttribute('role')).toBe('tree');
+
+ expect(
+ getNodes(treeElement).every(node => {
+ return node.getAttribute('role') === 'treeitem';
+ }),
+ ).toBe(true);
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectNestedTreeToMatch(
+ treeElement,
+ [`${data[0].pizzaTopping} - ${data[0].pizzaCheese} + ${data[0].pizzaBase}`],
+ [`${data[1].pizzaTopping} - ${data[1].pizzaCheese} + ${data[1].pizzaBase}`],
+ [`${data[2].pizzaTopping} - ${data[2].pizzaCheese} + ${data[2].pizzaBase}`],
+ );
+
+ dataSource.addChild(data[1], false);
+ fixture.detectChanges();
+
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ data = dataSource.data;
+ expect(data.length).toBe(3);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+ });
+
+ it('with nested child data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ const child = dataSource.addChild(data[1], false);
+ dataSource.addChild(child, false);
+ fixture.detectChanges();
+
+ expect(data.length).toBe(3);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [_, _, `topping_5 - cheese_5 + base_5`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+
+ dataSource.addChild(child, false);
+ fixture.detectChanges();
+
+ expect(data.length).toBe(3);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [_, _, `topping_5 - cheese_5 + base_5`],
+ [_, _, `topping_6 - cheese_6 + base_6`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+ });
+
+ it('with correct aria-level on nodes', () => {
+ expect(
+ getNodes(treeElement).every(node => {
+ return node.getAttribute('aria-level') === '1';
+ }),
+ ).toBe(true);
+
+ let data = dataSource.data;
+ const child = dataSource.addChild(data[1], false);
+ dataSource.addChild(child, false);
+ fixture.detectChanges();
+
+ const nodes = getNodes(treeElement);
+ const levels = nodes.map(n => n.getAttribute('aria-level'));
+ expect(levels).toEqual(['1', '1', '2', '3', '1']);
+ });
+ });
+
+ describe('with static children', () => {
+ let fixture: ComponentFixture;
+ let component: StaticNestedCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([StaticNestedCdkTreeApp]);
+ fixture = TestBed.createComponent(StaticNestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right data', () => {
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [_, _, `topping_5 - cheese_5 + base_5`],
+ [_, _, `topping_6 - cheese_6 + base_6`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+ });
+ });
+
+ describe('with when node', () => {
+ let fixture: ComponentFixture;
+ let component: WhenNodeNestedCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([WhenNodeNestedCdkTreeApp]);
+ fixture = TestBed.createComponent(WhenNodeNestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`>> topping_2 - cheese_2 + base_2`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+
+ dataSource.addChild(data[1], false);
+ fixture.detectChanges();
+
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ data = dataSource.data;
+ expect(data.length).toBe(3);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`>> topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+ });
+ });
+
+ describe('with toggle', () => {
+ let fixture: ComponentFixture;
+ let component: NestedCdkTreeAppWithToggle;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([NestedCdkTreeAppWithToggle]);
+ fixture = TestBed.createComponent(NestedCdkTreeAppWithToggle);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right aria-expanded attrs', () => {
+ let ariaExpandedStates = getNodes(treeElement).map(n => n.getAttribute('aria-expanded'));
+ expect(ariaExpandedStates).toEqual([null, null, null]);
+
+ component.toggleRecursively = false;
+ let data = dataSource.data;
+ const child = dataSource.addChild(data[1], false);
+ dataSource.addChild(child, false);
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ (getNodes(treeElement)[1] as HTMLElement).click();
+ fixture.detectChanges();
+
+ // Note: only four elements are present here; children are not present
+ // in DOM unless the parent node is expanded.
+ const ariaExpanded = getNodes(treeElement).map(n => n.getAttribute('aria-expanded'));
+ expect(ariaExpanded).toEqual([null, 'true', 'false', null]);
+ });
+
+ it('should expand/collapse the node multiple times using keyboard', () => {
+ component.toggleRecursively = false;
+ let data = dataSource.data;
+ const child = dataSource.addChild(data[1], false);
+ dataSource.addChild(child, false);
+
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+
+ fixture.detectChanges();
+
+ let node = getNodes(treeElement)[1] as HTMLElement;
+
+ node.focus();
+ node.dispatchEvent(createKeyboardEvent('keydown', undefined, 'ArrowRight'));
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node expanded`)
+ .toBe(1);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+
+ node = getNodes(treeElement)[1] as HTMLElement;
+ node.focus();
+ node.dispatchEvent(createKeyboardEvent('keydown', undefined, 'ArrowLeft'));
+ fixture.detectChanges();
+
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node collapsed`)
+ .toBe(0);
+
+ node = getNodes(treeElement)[1] as HTMLElement;
+ node.focus();
+ node.dispatchEvent(createKeyboardEvent('keydown', undefined, 'ArrowRight'));
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node expanded`)
+ .toBe(1);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+ });
+
+ it('should expand/collapse the node recursively', () => {
+ let data = dataSource.data;
+ const child = dataSource.addChild(data[1], false);
+ dataSource.addChild(child, false);
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+
+ (getNodes(treeElement)[1] as HTMLElement).click();
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node expanded`)
+ .toBe(3);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [_, `topping_4 - cheese_4 + base_4`],
+ [_, _, `topping_5 - cheese_5 + base_5`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+
+ (getNodes(treeElement)[1] as HTMLElement).click();
+ fixture.detectChanges();
+
+ expect(component.treeControl.expansionModel.selected.length)
+ .withContext(`Expect node collapsed`)
+ .toBe(0);
+ expectNestedTreeToMatch(
+ treeElement,
+ [`topping_1 - cheese_1 + base_1`],
+ [`topping_2 - cheese_2 + base_2`],
+ [`topping_3 - cheese_3 + base_3`],
+ );
+ });
+ });
+
+ describe('with array data source', () => {
+ let fixture: ComponentFixture;
+ let component: ArrayDataSourceNestedCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([ArrayDataSourceNestedCdkTreeApp]);
+ fixture = TestBed.createComponent(ArrayDataSourceNestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectNestedTreeToMatch(
+ treeElement,
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+
+ dataSource.addChild(data[1], false);
+ fixture.detectChanges();
+
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ expectNestedTreeToMatch(
+ treeElement,
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [_, `[topping_4] - [cheese_4] + [base_4]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+ });
+ });
+
+ describe('with observable data source', () => {
+ let fixture: ComponentFixture;
+ let component: ObservableDataSourceNestedCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([ObservableDataSourceNestedCdkTreeApp]);
+ fixture = TestBed.createComponent(ObservableDataSourceNestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('with the right data', () => {
+ expect(dataSource.data.length).toBe(3);
+
+ let data = dataSource.data;
+ expectNestedTreeToMatch(
+ treeElement,
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+
+ dataSource.addChild(data[1], false);
+ fixture.detectChanges();
+
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ expectNestedTreeToMatch(
+ treeElement,
+ [`[topping_1] - [cheese_1] + [base_1]`],
+ [`[topping_2] - [cheese_2] + [base_2]`],
+ [_, `[topping_4] - [cheese_4] + [base_4]`],
+ [`[topping_3] - [cheese_3] + [base_3]`],
+ );
+ });
+ });
+
+ describe('with trackBy', () => {
+ let fixture: ComponentFixture;
+ let component: NestedCdkTreeAppWithTrackBy;
+
+ function createTrackByTestComponent(trackByStrategy: 'reference' | 'property' | 'index') {
+ configureCdkTreeTestingModule([NestedCdkTreeAppWithTrackBy]);
+ fixture = TestBed.createComponent(NestedCdkTreeAppWithTrackBy);
+ component = fixture.componentInstance;
+ component.trackByStrategy = trackByStrategy;
+ dataSource = component.dataSource as FakeDataSource;
+ fixture.detectChanges();
+
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+
+ // Each node receives an attribute 'initialIndex' the element's original place
+ getNodes(treeElement).forEach((node: Element, index: number) => {
+ node.setAttribute('initialIndex', index.toString());
+ });
+
+ // Prove that the attributes match their indicies
+ const initialNodes = getNodes(treeElement);
+ expect(initialNodes.length).toBe(3);
+ initialNodes.forEach((node, index) => {
+ expect(node.getAttribute('initialIndex')).toBe(`${index}`);
+ });
+
+ const parent = dataSource.data[0];
+ dataSource.addChild(parent, false);
+ dataSource.addChild(parent, false);
+ dataSource.addChild(parent, false);
+ getNodes(initialNodes[0]).forEach((node: Element, index: number) => {
+ node.setAttribute('initialIndex', `c${index}`);
+ });
+ expect(
+ getNodes(initialNodes[0]).every((node, index) => {
+ return node.getAttribute('initialIndex') === `c${index}`;
+ }),
+ ).toBe(true);
+ }
+
+ function mutateChildren(parent: TestData) {
+ // Swap first and second data in data array
+ const copiedData = parent.children.slice();
+ const temp = copiedData[0];
+ copiedData[0] = copiedData[1];
+ copiedData[1] = temp;
+
+ // Remove the third element
+ copiedData.splice(2, 1);
+
+ // Add new data
+ parent.children = copiedData;
+ parent.observableChildren.next(copiedData);
+ component.dataSource.addChild(parent, false);
+ }
+
+ it('should add/remove/move children nodes with reference-based trackBy', () => {
+ createTrackByTestComponent('reference');
+ mutateChildren(dataSource.data[0]);
+
+ const changedNodes = getNodes(treeElement);
+ expect(changedNodes.length).toBe(6);
+ expect(changedNodes[0].getAttribute('initialIndex')).toBe('0');
+
+ // Expect that the first and second child nodes were swapped and that the last node is new
+ expect(changedNodes[1].getAttribute('initialIndex')).toBe('c1');
+ expect(changedNodes[2].getAttribute('initialIndex')).toBe('c0');
+ expect(changedNodes[3].getAttribute('initialIndex')).toBe(null);
+
+ expect(changedNodes[4].getAttribute('initialIndex')).toBe('1');
+ expect(changedNodes[5].getAttribute('initialIndex')).toBe('2');
+ });
+
+ it('should add/remove/move children nodes with property-based trackBy', () => {
+ createTrackByTestComponent('property');
+ mutateChildren(dataSource.data[0]);
+
+ // Change each item reference to show that the trackby is checking the item properties.
+ // Otherwise this would cause them all to be removed/added.
+ dataSource.data[0].observableChildren.next(
+ dataSource.data[0].children.map(
+ item => new TestData(item.pizzaTopping, item.pizzaCheese, item.pizzaBase),
+ ),
+ );
+
+ // Expect that the first and second nodes were swapped and that the last node is new
+ const changedNodes = getNodes(treeElement);
+ expect(changedNodes.length).toBe(6);
+ expect(changedNodes[0].getAttribute('initialIndex')).toBe('0');
+
+ // Expect that the first and second child nodes were swapped and that the last node is new
+ expect(changedNodes[1].getAttribute('initialIndex')).toBe('c1');
+ expect(changedNodes[2].getAttribute('initialIndex')).toBe('c0');
+ expect(changedNodes[3].getAttribute('initialIndex')).toBe(null);
+
+ expect(changedNodes[4].getAttribute('initialIndex')).toBe('1');
+ expect(changedNodes[5].getAttribute('initialIndex')).toBe('2');
+ });
+
+ it('should add/remove/move children nodes with index-based trackBy', () => {
+ createTrackByTestComponent('index');
+ mutateChildren(dataSource.data[0]);
+
+ // Change each item reference to show that the trackby is checking the index.
+ // Otherwise this would cause them all to be removed/added.
+ dataSource.data[0].observableChildren.next(
+ dataSource.data[0].children.map(
+ item => new TestData(item.pizzaTopping, item.pizzaCheese, item.pizzaBase),
+ ),
+ );
+
+ const changedNodes = getNodes(treeElement);
+ expect(changedNodes.length).toBe(6);
+ expect(changedNodes[0].getAttribute('initialIndex')).toBe('0');
+
+ // Expect first two children to be the same since they were swapped
+ // but indicies are consistent.
+ // The third element was removed and caught by the tree so it was removed before another
+ // item was added, so it is without an initial index.
+ expect(changedNodes[1].getAttribute('initialIndex')).toBe('c0');
+ expect(changedNodes[2].getAttribute('initialIndex')).toBe('c1');
+ expect(changedNodes[3].getAttribute('initialIndex')).toBe(null);
+
+ expect(changedNodes[4].getAttribute('initialIndex')).toBe('1');
+ expect(changedNodes[5].getAttribute('initialIndex')).toBe('2');
+ });
+ });
+ });
+
+ describe('with depth', () => {
+ let fixture: ComponentFixture;
+ let component: DepthNestedCdkTreeApp;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([DepthNestedCdkTreeApp]);
+ fixture = TestBed.createComponent(DepthNestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ });
+
+ it('should have correct depth for nested tree', () => {
+ let data = dataSource.data;
+ const child = dataSource.addChild(data[1], false);
+ dataSource.addChild(child, false);
+
+ fixture.detectChanges();
+
+ const depthElements = Array.from(treeElement.querySelectorAll('.tree-test-level')!);
+ const expectedLevels = ['0', '0', '1', '2', '0'];
+ const actualLevels = depthElements.map(element => element.textContent!.trim());
+ expect(actualLevels).toEqual(expectedLevels);
+ expect(depthElements.length).toBe(5);
+ });
+ });
+
+ describe('accessibility', () => {
+ let fixture: ComponentFixture;
+ let component: StaticNestedCdkTreeApp;
+ let nodes: HTMLElement[];
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([StaticNestedCdkTreeApp]);
+ fixture = TestBed.createComponent(StaticNestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ nodes = getNodes(treeElement);
+ });
+
+ describe('focus management', () => {
+ it('sets tabindex on the latest activated item, with all others "-1"', () => {
+ // activate the second child by clicking on it
+ nodes[1].click();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => `${x.getAttribute('tabindex')}`).join(', ')).toEqual(
+ '-1, 0, -1, -1, -1, -1',
+ );
+
+ // activate the first child by clicking on it
+ nodes[0].click();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => `${x.getAttribute('tabindex')}`).join(', ')).toEqual(
+ '0, -1, -1, -1, -1, -1',
+ );
+ });
+
+ it('maintains tabindex when component is blurred', () => {
+ // activate the second child by clicking on it
+ nodes[1].click();
+ nodes[1].focus();
+ fixture.detectChanges();
+
+ expect(document.activeElement).toBe(nodes[1]);
+ // blur the currently active element (which we just checked is the above node)
+ nodes[1].blur();
+ fixture.detectChanges();
+
+ expect(
+ getNodes(treeElement)
+ .map(x => `${x.getAttribute('tabindex')}`)
+ .join(', '),
+ ).toEqual('-1, 0, -1, -1, -1, -1');
+ });
+
+ it('ignores clicks on disabled items', () => {
+ dataSource.data[1].isDisabled = true;
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+
+ nodes[1].click();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => `${x.getAttribute('tabindex')}`).join(', ')).toEqual(
+ '0, -1, -1, -1, -1, -1',
+ );
+ });
+ });
+
+ describe('tree role & attributes', () => {
+ it('sets the tree role on the tree element', () => {
+ expect(treeElement.getAttribute('role')).toBe('tree');
+ });
+
+ it('sets the treeitem role on all nodes', () => {
+ expect(
+ getNodes(treeElement)
+ .map(x => `${x.getAttribute('role')}`)
+ .join(', '),
+ ).toEqual('treeitem, treeitem, treeitem, treeitem, treeitem, treeitem');
+ });
+
+ it('sets aria attributes for tree nodes', () => {
+ expect(nodes.map(x => `${x.getAttribute('aria-expanded')}`).join(', '))
+ .withContext('aria-expanded attributes')
+ .toEqual('null, false, false, null, null, null');
+ expect(nodes.map(x => `${x.getAttribute('aria-level')}`).join(', '))
+ .withContext('aria-level attributes')
+ .toEqual('1, 1, 2, 3, 3, 1');
+ expect(nodes.map(x => `${x.getAttribute('aria-posinset')}`).join(', '))
+ .withContext('aria-posinset attributes')
+ .toEqual('1, 2, 1, 1, 2, 3');
+ expect(nodes.map(x => `${x.getAttribute('aria-setsize')}`).join(', '))
+ .withContext('aria-setsize attributes')
+ .toEqual('3, 3, 1, 2, 2, 3');
+ });
+
+ it('changes aria-expanded status when expanded or collapsed', () => {
+ tree.expand(dataSource.data[1]);
+ fixture.detectChanges();
+ expect(nodes.map(x => `${x.getAttribute('aria-expanded')}`).join(', '))
+ .withContext('aria-expanded attributes')
+ .toEqual('null, true, false, null, null, null');
+
+ tree.collapse(dataSource.data[1]);
+ fixture.detectChanges();
+ expect(nodes.map(x => `${x.getAttribute('aria-expanded')}`).join(', '))
+ .withContext('aria-expanded attributes')
+ .toEqual('null, false, false, null, null, null');
+ });
+ });
+ });
+});
+
+export class TestData {
+ pizzaTopping: string;
+ pizzaCheese: string;
+ pizzaBase: string;
+ level: number;
+ children: TestData[];
+ isDisabled?: boolean;
+ readonly observableChildren: BehaviorSubject;
+
+ constructor(pizzaTopping: string, pizzaCheese: string, pizzaBase: string, level: number = 1) {
+ this.pizzaTopping = pizzaTopping;
+ this.pizzaCheese = pizzaCheese;
+ this.pizzaBase = pizzaBase;
+ this.level = level;
+ this.children = [];
+ this.observableChildren = new BehaviorSubject(this.children);
+ }
+}
+
+class FakeDataSource extends DataSource {
+ dataIndex = 0;
+ isConnected = false;
+
+ _dataChange = new BehaviorSubject([]);
+ get data() {
+ return this._dataChange.getValue();
+ }
+ set data(data: TestData[]) {
+ this._dataChange.next(data);
+ }
+
+ constructor(public treeControl: TreeControl) {
+ super();
+ for (let i = 0; i < 3; i++) {
+ this.addData();
+ }
+ }
+
+ connect(collectionViewer: CollectionViewer): Observable {
+ this.isConnected = true;
+
+ return combineLatest([this._dataChange, collectionViewer.viewChange]).pipe(
+ map(([data]) => {
+ this.treeControl.dataNodes = data;
+ return data;
+ }),
+ );
+ }
+
+ disconnect() {
+ this.isConnected = false;
+ }
+
+ addChild(parent: TestData, isFlat: boolean = true) {
+ const nextIndex = ++this.dataIndex;
+ const child = new TestData(
+ `topping_${nextIndex}`,
+ `cheese_${nextIndex}`,
+ `base_${nextIndex}`,
+ parent.level + 1,
+ );
+ parent.children.push(child);
+ if (isFlat) {
+ let copiedData = this.data.slice();
+ copiedData.splice(this.data.indexOf(parent) + 1, 0, child);
+ this.data = copiedData;
+ } else {
+ parent.observableChildren.next(parent.children);
+ }
+ return child;
+ }
+
+ addData(level: number = 1) {
+ const nextIndex = ++this.dataIndex;
+
+ let copiedData = this.data.slice();
+ copiedData.push(
+ new TestData(`topping_${nextIndex}`, `cheese_${nextIndex}`, `base_${nextIndex}`, level),
+ );
+
+ this.data = copiedData;
+ }
+}
+
+function getNodes(treeElement: Element): HTMLElement[] {
+ return Array.from(treeElement.querySelectorAll('.cdk-tree-node'));
+}
+
+function expectFlatTreeToMatch(
+ treeElement: Element,
+ expectedPaddingIndent = 28,
+ expectedPaddingUnits = 'px',
+ ...expectedTree: any[]
+) {
+ const missedExpectations: string[] = [];
+
+ function checkNode(node: Element, expectedNode: any[]) {
+ const actualTextContent = node.textContent!.trim();
+ const expectedTextContent = expectedNode[expectedNode.length - 1];
+ if (actualTextContent !== expectedTextContent) {
+ missedExpectations.push(
+ `Expected node contents to be ${expectedTextContent} but was ${actualTextContent}`,
+ );
+ }
+ }
+
+ function checkLevel(node: Element, expectedNode: any[]) {
+ const rawLevel = (node as HTMLElement).style.paddingLeft;
+
+ // Some browsers return 0, while others return 0px.
+ const actualLevel = rawLevel === '0' ? '0px' : rawLevel;
+ const expectedLevel = `${expectedNode.length * expectedPaddingIndent}${expectedPaddingUnits}`;
+ if (actualLevel != expectedLevel) {
+ missedExpectations.push(`Expected node level to be ${expectedLevel} but was ${actualLevel}`);
+ }
+ }
+
+ getNodes(treeElement).forEach((node, index) => {
+ const expected = expectedTree ? expectedTree[index] : null;
+
+ checkLevel(node, expected);
+ checkNode(node, expected);
+ });
+
+ if (missedExpectations.length) {
+ fail(missedExpectations.join('\n'));
+ }
+}
+
+function expectNestedTreeToMatch(treeElement: Element, ...expectedTree: any[]) {
+ const missedExpectations: string[] = [];
+ function checkNodeContent(node: Element, expectedNode: any[]) {
+ const expectedTextContent = expectedNode[expectedNode.length - 1];
+ const actualTextContent = node.childNodes.item(0).textContent!.trim();
+ if (actualTextContent !== expectedTextContent) {
+ missedExpectations.push(
+ `Expected node contents to be ${expectedTextContent} but was ${actualTextContent}`,
+ );
+ }
+ }
+
+ function checkNodeDescendants(node: Element, expectedNode: any[], currentIndex: number) {
+ let expectedDescendant = 0;
+
+ for (let i = currentIndex + 1; i < expectedTree.length; ++i) {
+ if (expectedTree[i].length > expectedNode.length) {
+ ++expectedDescendant;
+ } else if (expectedTree[i].length === expectedNode.length) {
+ break;
+ }
+ }
+
+ const actualDescendant = getNodes(node).length;
+ if (actualDescendant !== expectedDescendant) {
+ missedExpectations.push(
+ `Expected node descendant num to be ${expectedDescendant} but was ${actualDescendant}`,
+ );
+ }
+ }
+
+ getNodes(treeElement).forEach((node, index) => {
+ const expected = expectedTree ? expectedTree[index] : null;
+
+ checkNodeDescendants(node, expected, index);
+ checkNodeContent(node, expected);
+ });
+
+ if (missedExpectations.length) {
+ fail(missedExpectations.join('\n'));
+ }
+}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+ `,
+})
+class SimpleCdkTreeApp {
+ getLevel = (node: TestData) => node.level;
+ isExpandable = (node: TestData) => node.children.length > 0;
+
+ treeControl: TreeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
+ dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+ indent: number | string = 28;
+
+ @ViewChild(CdkTree) tree: CdkTree;
+ @ViewChildren(CdkTreeNodePadding) paddingNodes: QueryList>;
+}
+
+@Component({
+ template: `
+
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+
+ `,
+})
+class SimpleCdkTreeAppWithIndirectNodes extends SimpleCdkTreeApp {}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+
+ `,
+})
+class NestedCdkTreeApp {
+ getChildren = (node: TestData) => node.observableChildren;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren);
+
+ dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+
+ `,
+})
+class StaticNestedCdkTreeApp {
+ getChildren = (node: TestData) => node.children;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren, {
+ isExpandable: node => node.children.length > 0,
+ });
+
+ dataSource: FakeDataSource;
+
+ @ViewChild(CdkTree) tree: CdkTree;
+
+ constructor() {
+ const dataSource = new FakeDataSource(this.treeControl);
+ const data = dataSource.data;
+ const child = dataSource.addChild(data[1], false);
+ dataSource.addChild(child, false);
+ dataSource.addChild(child, false);
+
+ this.dataSource = dataSource;
+ }
+}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+
+ >> {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+
+ `,
+})
+class WhenNodeNestedCdkTreeApp {
+ isSecondNode = (_: number, node: TestData) => node.pizzaBase.indexOf('2') > 0;
+
+ getChildren = (node: TestData) => node.observableChildren;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren);
+
+ dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+ `,
+})
+class CdkTreeAppWithToggle {
+ toggleRecursively: boolean = true;
+
+ getLevel = (node: TestData) => node.level;
+ isExpandable = (node: TestData) => node.children.length > 0;
+
+ treeControl: TreeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
+ dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+
+
+
+ `,
+})
+class NestedCdkTreeAppWithToggle {
+ toggleRecursively: boolean = true;
+
+ getChildren = (node: TestData) => node.observableChildren;
+
+ isExpandable?: (node: TestData) => boolean;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren);
+ dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+ [{{node.pizzaTopping}}] - [{{node.pizzaCheese}}] + [{{node.pizzaBase}}]
+
+
+ `,
+})
+class WhenNodeCdkTreeApp {
+ isOddNode = (_: number, node: TestData) => node.level % 2 === 1;
+ getLevel = (node: TestData) => node.level;
+ isExpandable = (node: TestData) => node.children.length > 0;
+
+ treeControl: TreeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
+
+ dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ [{{node.pizzaTopping}}] - [{{node.pizzaCheese}}] + [{{node.pizzaBase}}]
+
+
+ `,
+})
+class ArrayDataSourceCdkTreeApp {
+ getLevel = (node: TestData) => node.level;
+ isExpandable = (node: TestData) => node.children.length > 0;
+
+ treeControl: TreeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
+
+ dataSource: FakeDataSource = new FakeDataSource(this.treeControl);
+
+ get dataArray() {
+ return this.dataSource.data;
+ }
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ [{{node.pizzaTopping}}] - [{{node.pizzaCheese}}] + [{{node.pizzaBase}}]
+
+
+ `,
+})
+class ObservableDataSourceCdkTreeApp {
+ getLevel = (node: TestData) => node.level;
+ isExpandable = (node: TestData) => node.children.length > 0;
+
+ treeControl: TreeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
+
+ dataSource: FakeDataSource = new FakeDataSource(this.treeControl);
+
+ get dataObservable() {
+ return this.dataSource._dataChange;
+ }
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ [{{node.pizzaTopping}}] - [{{node.pizzaCheese}}] + [{{node.pizzaBase}}]
+
+
+
+ `,
+})
+class ArrayDataSourceNestedCdkTreeApp {
+ getChildren = (node: TestData) => node.observableChildren;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren);
+
+ dataSource: FakeDataSource = new FakeDataSource(this.treeControl);
+
+ get dataArray() {
+ return this.dataSource.data;
+ }
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ [{{node.pizzaTopping}}] - [{{node.pizzaCheese}}] + [{{node.pizzaBase}}]
+
+
+
+ `,
+})
+class ObservableDataSourceNestedCdkTreeApp {
+ getChildren = (node: TestData) => node.observableChildren;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren);
+
+ dataSource: FakeDataSource = new FakeDataSource(this.treeControl);
+
+ get dataObservable() {
+ return this.dataSource._dataChange;
+ }
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ {{level}}
+ [{{node.pizzaTopping}}] - [{{node.pizzaCheese}}] + [{{node.pizzaBase}}]
+
+
+
+ `,
+})
+class DepthNestedCdkTreeApp {
+ getChildren = (node: TestData) => node.observableChildren;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren);
+
+ dataSource: FakeDataSource = new FakeDataSource(this.treeControl);
+
+ get dataArray() {
+ return this.dataSource.data;
+ }
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
+
+ `,
+})
+class CdkTreeAppWithTrackBy {
+ trackByStrategy: 'reference' | 'property' | 'index' = 'reference';
+
+ trackByFn: TrackByFunction = (index, item) => {
+ switch (this.trackByStrategy) {
+ case 'reference':
+ return item;
+ case 'property':
+ return item.pizzaBase;
+ case 'index':
+ return index;
+ }
+ };
+
+ getLevel = (node: TestData) => node.level;
+ isExpandable = (node: TestData) => node.children.length > 0;
+
+ treeControl: TreeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
+ dataSource: FakeDataSource = new FakeDataSource(this.treeControl);
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
+
+@Component({
+ template: `
+
+
+ [{{node.pizzaTopping}}] - [{{node.pizzaCheese}}] + [{{node.pizzaBase}}]
+
+
+
+ `,
+})
+class NestedCdkTreeAppWithTrackBy {
+ trackByStrategy: 'reference' | 'property' | 'index' = 'reference';
+
+ trackByFn: TrackByFunction = (index, item) => {
+ switch (this.trackByStrategy) {
+ case 'reference':
+ return item;
+ case 'property':
+ return item.pizzaBase;
+ case 'index':
+ return index;
+ }
+ };
+
+ getChildren = (node: TestData) => node.observableChildren;
+
+ treeControl: TreeControl = new NestedTreeControl(this.getChildren);
+
+ dataSource: FakeDataSource = new FakeDataSource(this.treeControl);
+
+ get dataArray() {
+ return this.dataSource.data;
+ }
+
+ @ViewChild(CdkTree) tree: CdkTree;
+}
diff --git a/src/cdk/tree/tree.md b/src/cdk/tree/tree.md
index 6e9da076bab1..19f3b2d8e903 100644
--- a/src/cdk/tree/tree.md
+++ b/src/cdk/tree/tree.md
@@ -2,19 +2,13 @@ The `` enables developers to build a customized tree experience for st
`` provides a foundation to build other features such as filtering on top of tree.
For a Material Design styled tree, see `` which builds on top of the ``.
-There are two types of trees: flat tree and nested Tree. The DOM structures are different for
+There are two types of trees: flat and nested. The DOM structures are different for these
these two types of trees.
#### Flat tree
-
-
-
In a flat tree, the hierarchy is flattened; nodes are not rendered inside of each other, but instead
-are rendered as siblings in sequence. An instance of `TreeFlattener` is used to generate the flat
-list of items from hierarchical data. The "level" of each tree node is read through the `getLevel`
-method of the `TreeControl`; this level can be used to style the node such that it is indented to
-the appropriate level.
+are rendered as siblings in sequence.
```html
@@ -25,16 +19,16 @@ the appropriate level.
```
+
+
Flat trees are generally easier to style and inspect. They are also more friendly to scrolling
variations, such as infinite or virtual scrolling.
#### Nested tree
-
-
-In nested tree, children nodes are placed inside their parent node in DOM. The parent node contains
-a node outlet into which children are projected.
+In a nested tree, children nodes are placed inside their parent node in DOM. The parent node
+contains a node outlet into which children are projected.
```html
@@ -46,15 +40,18 @@ a node outlet into which children are projected.
```
+
+
Nested trees are easier to work with when hierarchical relationships are visually represented in
ways that would be difficult to accomplish with flat nodes.
-### Using the CDK tree
+
+### Usage
#### Writing your tree template
-The only thing you need to define is the tree node template. There are two types of tree nodes,
-`` for flat tree and `` for nested tree. The tree node
+In order to use the tree, you must define a tree node template. There are two types of tree nodes,
+`` for flat tree and `` for nested tree. The tree node
template defines the look of the tree node, expansion/collapsing control and the structure for
nested children nodes.
@@ -69,9 +66,12 @@ data to be used in any bindings in the node template.
##### Flat tree node template
-Flat tree uses each node's `level` to render the hierarchy of the nodes.
-The "indent" for a given node is accomplished by adding spacing to each node based on its level.
-Spacing can be added either by applying the `cdkNodePadding` directive or by applying custom styles.
+Flat trees use the `level` of a node to both render and determine hierarchy of the nodes for screen
+readers. This may be provided either via `levelAccessor`, or will be calculated by `CdkTree` if
+`childrenAccessor` is provided.
+
+Spacing can be added either by applying the `cdkNodePadding` directive or by applying custom styles
+based on the `aria-level` attribute.
##### Nested tree node template
@@ -84,24 +84,16 @@ where the children of the node will be rendered.
{{node.value}}
-
```
#### Adding expand/collapse
-A `cdkTreeNodeToggle` can be added in the tree node template to expand/collapse the tree node.
-The toggle toggles the expand/collapse functions in TreeControl and is able to expand/collapse
+The `cdkTreeNodeToggle` directive can be used to add expand/collapse functionality for tree nodes.
+The toggle calls the expand/collapse functions in the `CdkTree` and is able to expand/collapse
a tree node recursively by setting `[cdkTreeNodeToggleRecursive]` to true.
-```html
-
- {{node.value}}
-
-```
-
-The toggle can be placed anywhere in the tree node, and is only toggled by click action.
-For best accessibility, `cdkTreeNodeToggle` should be on a button element and have an appropriate
-`aria-label`.
+`cdkTreeNodeToggle` should be attached to button elements, and will trigger upon click or keyboard
+activation. For icon buttons, ensure that `aria-label` is provided.
```html
@@ -114,25 +106,24 @@ For best accessibility, `cdkTreeNodeToggle` should be on a button element and ha
#### Padding (Flat tree only)
-The cdkTreeNodePadding can be placed in a flat tree's node template to display the level
+The `cdkTreeNodePadding` directive can be placed in a flat tree's node template to display the level
information of a flat tree node.
```html
{{node.value}}
-
```
-Nested tree does not need this padding since padding can be easily added to the hierarchy structure
-in DOM.
+This is unnecessary for a nested tree, since the hierarchical structure of the DOM allows for
+padding to be added via CSS.
#### Conditional template
+
The tree may include multiple node templates, where a template is chosen
for a particular data node via the `when` predicate of the template.
-
```html
{{node.value}}
@@ -154,20 +145,30 @@ Because the data source provides this stream, it bears the responsibility of tog
updates. This can be based on anything: tree node expansion change, websocket connections, user
interaction, model updates, time-based intervals, etc.
+There are two main methods of providing data to the tree:
-#### Flat tree
+* flattened data, combined with `levelAccessor`. This should be used if the data source already
+ flattens the nested data structure into a single array.
+* only root data, combined with `childrenAccessor`. This should be used if the data source is
+ already provided as a nested data structure.
-The flat tree data source is responsible for the node expansion/collapsing events, since when
-the expansion status changes, the data nodes feed to the tree are changed. A new list of visible
-nodes should be sent to tree component based on current expansion status.
+#### `levelAccessor`
+`levelAccessor` is a function that when provided a datum, returns the level the data sits at in the
+tree structure. If `levelAccessor` is provided, the data provided by `dataSource` should contain all
+renderable nodes in a single array.
-#### Nested tree
+The data source is responsible for handling node expand/collapse events and providing an updated
+array of renderable nodes, if applicable. This can be listened to via the `(expansionChange)` event
+on `cdk-tree-node` and `cdk-nested-tree-node`.
-The data source for nested tree has an option to leave the node expansion/collapsing event for each
-tree node component to handle.
+#### `childrenAccessor`
-##### `trackBy`
+`childrenAccessor` is a function that when provided a datum, returns the children of that particular
+datum. If `childrenAccessor` is provided, the data provided by `dataSource` should _only_ contain
+the root nodes of the tree.
+
+#### `trackBy`
To improve performance, a `trackBy` function can be provided to the tree similar to Angular’s
[`ngFor` `trackBy`](https://angular.io/api/common/NgForOf#change-propagation). This informs the
@@ -176,3 +177,34 @@ tree how to uniquely identify nodes to track how the data changes with each upda
```html
```
+
+### Accessibility
+
+The `` implements the [`tree` widget](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/),
+including keyboard navigation and appropriate roles and ARIA attributes.
+
+In order to use the new accessibility features, migrating to `levelAccessor` and `childrenAccessor`
+is required. Trees using `treeControl` do not implement the correct accessibility features for
+backwards compatibility.
+
+#### isExpandable
+
+In order for the tree to correctly determine whether or not a node is expandable, the `isExpandable`
+property must be set on all `cdk-tree-node` or `cdk-tree-nested-node` that are expandable.
+
+#### Activation actions
+
+For trees with nodes that have actions upon activation or click, `` will emit
+`(activation)` events that can be listened to when the user activates a node via keyboard
+interaction.
+
+```html
+
+
+```
+
+In this example, `$event` contains the node's data and is equivalent to the implicit data passed in
+the `cdkNodeDef` context.
diff --git a/src/cdk/tree/tree.spec.ts b/src/cdk/tree/tree.spec.ts
index db8d9eedbb15..92d4356e0cf4 100644
--- a/src/cdk/tree/tree.spec.ts
+++ b/src/cdk/tree/tree.spec.ts
@@ -5,6 +5,7 @@
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
+import {ComponentFixture, TestBed, fakeAsync, tick} from '@angular/core/testing';
import {
ChangeDetectorRef,
Component,
@@ -16,22 +17,22 @@ import {
ViewChild,
ViewChildren,
inject,
+ ElementRef,
} from '@angular/core';
-import {ComponentFixture, TestBed, fakeAsync, flush} from '@angular/core/testing';
import {Direction, Directionality} from '@angular/cdk/bidi';
import {CollectionViewer, DataSource} from '@angular/cdk/collections';
-import {BehaviorSubject, Observable, combineLatest} from 'rxjs';
+import {combineLatest, BehaviorSubject, Observable, of} from 'rxjs';
import {map} from 'rxjs/operators';
-import {BaseTreeControl} from './control/base-tree-control';
-import {FlatTreeControl} from './control/flat-tree-control';
-import {NestedTreeControl} from './control/nested-tree-control';
-import {TreeControl} from './control/tree-control';
import {CdkTreeModule, CdkTreeNodePadding} from './index';
import {CdkTree, CdkTreeNode} from './tree';
-import {getTreeControlFunctionsMissingError} from './tree-errors';
+import {createKeyboardEvent} from '@angular/cdk/testing/testbed/fake-events';
+/**
+ * This is a cloned version of `tree.spec.ts` that contains all the same tests,
+ * but modifies them to use the newer API.
+ */
describe('CdkTree', () => {
/** Represents an indent for expectNestedTreeToMatch */
const _ = {};
@@ -62,37 +63,39 @@ describe('CdkTree', () => {
},
],
declarations: declarations,
- }).compileComponents();
+ });
}
- it('should clear out the `mostRecentTreeNode` on destroy', () => {
- configureCdkTreeTestingModule([SimpleCdkTreeApp]);
- const fixture = TestBed.createComponent(SimpleCdkTreeApp);
- fixture.detectChanges();
+ describe('onDestroy', () => {
+ it('should clear out the `mostRecentTreeNode` on destroy', () => {
+ configureCdkTreeTestingModule([SimpleCdkTreeApp]);
+ const fixture = TestBed.createComponent(SimpleCdkTreeApp);
+ fixture.detectChanges();
- // Cast the assertions to a boolean to avoid Jasmine going into an
- // infinite loop when stringifying the object, if the test starts failing.
- expect(!!CdkTreeNode.mostRecentTreeNode).toBe(true);
+ // Cast the assertions to a boolean to avoid Jasmine going into an
+ // infinite loop when stringifying the object, if the test starts failing.
+ expect(!!CdkTreeNode.mostRecentTreeNode).toBe(true);
- fixture.destroy();
+ fixture.destroy();
- expect(!!CdkTreeNode.mostRecentTreeNode).toBe(false);
- });
+ expect(!!CdkTreeNode.mostRecentTreeNode).toBe(false);
+ });
- it('should complete the viewChange stream on destroy', () => {
- configureCdkTreeTestingModule([SimpleCdkTreeApp]);
- const fixture = TestBed.createComponent(SimpleCdkTreeApp);
- fixture.detectChanges();
- const spy = jasmine.createSpy('completeSpy');
- const subscription = fixture.componentInstance.tree.viewChange.subscribe({complete: spy});
+ it('should complete the viewChange stream on destroy', () => {
+ configureCdkTreeTestingModule([SimpleCdkTreeApp]);
+ const fixture = TestBed.createComponent(SimpleCdkTreeApp);
+ fixture.detectChanges();
+ const spy = jasmine.createSpy('completeSpy');
+ const subscription = fixture.componentInstance.tree.viewChange.subscribe({complete: spy});
- fixture.destroy();
- expect(spy).toHaveBeenCalled();
- subscription.unsubscribe();
+ fixture.destroy();
+ expect(spy).toHaveBeenCalled();
+ subscription.unsubscribe();
+ });
});
describe('flat tree', () => {
- describe('should initialize', () => {
+ describe('displaying a flat tree', () => {
let fixture: ComponentFixture;
let component: SimpleCdkTreeApp;
@@ -108,12 +111,12 @@ describe('CdkTree', () => {
treeElement = fixture.nativeElement.querySelector('cdk-tree');
});
- it('with a connected data source', () => {
+ it('connects the datasource', () => {
expect(tree.dataSource).toBe(dataSource);
expect(dataSource.isConnected).toBe(true);
});
- it('with rendered dataNodes', () => {
+ it('renders at least one node', () => {
const nodes = getNodes(treeElement);
expect(nodes).withContext('Expect nodes to be defined').toBeDefined();
@@ -145,23 +148,17 @@ describe('CdkTree', () => {
let data = dataSource.data;
dataSource.addChild(data[2]);
fixture.detectChanges();
- expect(
- getNodes(treeElement).every(node => {
- return node.getAttribute('aria-expanded') === 'false';
- }),
- ).toBe(true);
+ let ariaExpandedStates = getNodes(treeElement).map(n => n.getAttribute('aria-expanded'));
+ expect(ariaExpandedStates).toEqual([null, null, 'false', null]);
- component.treeControl.expandAll();
+ component.tree.expandAll();
fixture.detectChanges();
- expect(
- getNodes(treeElement).every(node => {
- return node.getAttribute('aria-expanded') === 'true';
- }),
- ).toBe(true);
+ ariaExpandedStates = getNodes(treeElement).map(n => n.getAttribute('aria-expanded'));
+ expect(ariaExpandedStates).toEqual([null, null, 'true', null]);
});
- it('with the right data', () => {
+ it('renders nodes that match the datasource', () => {
expect(dataSource.data.length).toBe(3);
let data = dataSource.data;
@@ -190,7 +187,7 @@ describe('CdkTree', () => {
);
});
- it('should be able to use units different from px for the indentation', () => {
+ it('indents when given an indentation of 15rem', () => {
component.indent = '15rem';
fixture.changeDetectorRef.markForCheck();
fixture.detectChanges();
@@ -207,7 +204,7 @@ describe('CdkTree', () => {
);
});
- it('should default to px if no unit is set for string value indentation', () => {
+ it('indents in units of pixel when no unit is given', () => {
component.indent = '17';
fixture.changeDetectorRef.markForCheck();
fixture.detectChanges();
@@ -240,7 +237,7 @@ describe('CdkTree', () => {
);
});
- it('should reset the opposite direction padding if the direction changes', () => {
+ it('should reset element.styel to the opposite direction padding if the direction changes', () => {
const node = getNodes(treeElement)[0];
component.indent = 10;
@@ -278,7 +275,7 @@ describe('CdkTree', () => {
it('should expand/collapse the node', () => {
expect(dataSource.data.length).toBe(3);
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect no expanded node`)
.toBe(0);
@@ -303,23 +300,47 @@ describe('CdkTree', () => {
(getNodes(treeElement)[2] as HTMLElement).click();
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
- .withContext(`Expect node expanded`)
- .toBe(1);
- expect(component.treeControl.expansionModel.selected[0]).toBe(data[2]);
+ const expandedNodes = getExpandedNodes(
+ component.dataSource?.getRecursiveData(),
+ component.tree,
+ );
+ expect(expandedNodes.length).withContext(`Expect node expanded`).toBe(1);
+ expect(expandedNodes[0]).toBe(data[2]);
(getNodes(treeElement)[2] as HTMLElement).click();
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect node collapsed`)
.toBe(0);
});
+ it('should focus a node when collapsing it', () => {
+ // Create a tree with two nodes. A parent node and its child.
+ dataSource.clear();
+ const parent = dataSource.addData();
+ dataSource.addChild(parent);
+
+ component.tree.expandAll();
+ fixture.detectChanges();
+
+ // focus the child node
+ getNodes(treeElement)[1].click();
+ fixture.detectChanges();
+
+ // collapse the parent node
+ getNodes(treeElement)[0].click();
+ fixture.detectChanges();
+
+ expect(getNodes(treeElement).map(x => x.getAttribute('tabindex')))
+ .withContext(`Expecting parent node to be focused since it was collapsed.`)
+ .toEqual(['0', '-1']);
+ });
+
it('should expand/collapse the node recursively', () => {
expect(dataSource.data.length).toBe(3);
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect no expanded node`)
.toBe(0);
@@ -339,23 +360,23 @@ describe('CdkTree', () => {
[_, `${data[3].pizzaTopping} - ${data[3].pizzaCheese} + ${data[3].pizzaBase}`],
);
- (getNodes(treeElement)[2] as HTMLElement).click();
+ (getNodes(treeElement)[2] as HTMLElement)!.dispatchEvent(
+ createKeyboardEvent('keydown', undefined, 'Enter'),
+ );
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
- .withContext(`Expect nodes expanded`)
- .toBe(2);
- expect(component.treeControl.expansionModel.selected[0])
- .withContext(`Expect parent node expanded`)
- .toBe(data[2]);
- expect(component.treeControl.expansionModel.selected[1])
- .withContext(`Expected child node expanded`)
- .toBe(data[3]);
+ const expandedNodes = getExpandedNodes(
+ component.dataSource?.getRecursiveData(),
+ component.tree,
+ );
+ expect(expandedNodes.length).withContext(`Expect nodes expanded`).toBe(2);
+ expect(expandedNodes[0]).withContext(`Expect parent node expanded`).toBe(data[2]);
+ expect(expandedNodes[1]).withContext(`Expected child node expanded`).toBe(data[3]);
(getNodes(treeElement)[2] as HTMLElement).click();
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect node collapsed`)
.toBe(0);
});
@@ -543,6 +564,15 @@ describe('CdkTree', () => {
component.dataSource.addData();
}
+ function mutateProperties() {
+ const copiedData = component.dataSource.data.slice();
+ copiedData[0] = new TestData('topping_something_new');
+ copiedData[1] = new TestData('topping_something_new_1');
+ component.dataSource.data = copiedData;
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+ }
+
it('should add/remove/move nodes with reference-based trackBy', () => {
createTrackByTestComponent('reference');
mutateData();
@@ -592,6 +622,16 @@ describe('CdkTree', () => {
expect(changedNodes[1].getAttribute('initialIndex')).toBe('1');
expect(changedNodes[2].getAttribute('initialIndex')).toBe(null);
});
+
+ it('should update templated data if object changes', () => {
+ createTrackByTestComponent('index');
+ mutateProperties();
+
+ const changedNodes = getNodes(treeElement);
+ expect(changedNodes.length).toBe(3);
+ expect(changedNodes[0].textContent).toContain('topping_something_new');
+ expect(changedNodes[1].textContent).toContain('topping_something_new_1');
+ });
});
it('should pick up indirect descendant node definitions', () => {
@@ -632,16 +672,6 @@ describe('CdkTree', () => {
expect(nodes[0].classList).toContain('customNodeClass');
});
- it('with the right accessibility roles', () => {
- expect(treeElement.getAttribute('role')).toBe('tree');
-
- expect(
- getNodes(treeElement).every(node => {
- return node.getAttribute('role') === 'treeitem';
- }),
- ).toBe(true);
- });
-
it('with the right data', () => {
expect(dataSource.data.length).toBe(3);
@@ -805,11 +835,9 @@ describe('CdkTree', () => {
});
it('with the right aria-expanded attrs', () => {
- expect(
- getNodes(treeElement).every(node => {
- return node.getAttribute('aria-expanded') === 'false';
- }),
- ).toBe(true);
+ expect(getNodes(treeElement).map(x => x.getAttribute('aria-expanded')))
+ .withContext('aria-expanded attributes')
+ .toEqual([null, null, null]);
component.toggleRecursively = false;
fixture.changeDetectorRef.markForCheck();
@@ -821,8 +849,11 @@ describe('CdkTree', () => {
(getNodes(treeElement)[1] as HTMLElement).click();
fixture.detectChanges();
- const ariaExpanded = getNodes(treeElement).map(n => n.getAttribute('aria-expanded'));
- expect(ariaExpanded).toEqual(['false', 'true', 'false', 'false']);
+ // Note: only four elements are present here; children are not present
+ // in DOM unless the parent node is expanded.
+ expect(getNodes(treeElement).map(x => x.getAttribute('aria-expanded')))
+ .withContext('aria-expanded attributes')
+ .toEqual([null, 'true', 'false', null]);
});
it('should expand/collapse the node multiple times', () => {
@@ -846,7 +877,7 @@ describe('CdkTree', () => {
(getNodes(treeElement)[1] as HTMLElement).click();
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect node expanded`)
.toBe(1);
expectNestedTreeToMatch(
@@ -866,14 +897,14 @@ describe('CdkTree', () => {
[`topping_2 - cheese_2 + base_2`],
[`topping_3 - cheese_3 + base_3`],
);
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect node collapsed`)
.toBe(0);
(getNodes(treeElement)[1] as HTMLElement).click();
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect node expanded`)
.toBe(1);
expectNestedTreeToMatch(
@@ -886,6 +917,7 @@ describe('CdkTree', () => {
});
it('should expand/collapse the node recursively', () => {
+ fixture.changeDetectorRef.markForCheck();
let data = dataSource.data;
const child = dataSource.addChild(data[1], false);
dataSource.addChild(child, false);
@@ -901,7 +933,7 @@ describe('CdkTree', () => {
(getNodes(treeElement)[1] as HTMLElement).click();
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect node expanded`)
.toBe(3);
expectNestedTreeToMatch(
@@ -916,7 +948,7 @@ describe('CdkTree', () => {
(getNodes(treeElement)[1] as HTMLElement).click();
fixture.detectChanges();
- expect(component.treeControl.expansionModel.selected.length)
+ expect(getExpandedNodes(component.dataSource?.getRecursiveData(), component.tree).length)
.withContext(`Expect node collapsed`)
.toBe(0);
expectNestedTreeToMatch(
@@ -1136,26 +1168,6 @@ describe('CdkTree', () => {
expect(changedNodes[5].getAttribute('initialIndex')).toBe('2');
});
});
-
- it('should throw an error when missing function in nested tree', fakeAsync(() => {
- configureCdkTreeTestingModule([NestedCdkErrorTreeApp]);
- expect(() => {
- try {
- TestBed.createComponent(NestedCdkErrorTreeApp).detectChanges();
- flush();
- } finally {
- flush();
- }
- }).toThrowError(getTreeControlFunctionsMissingError().message);
- }));
-
- it('should throw an error when missing function in flat tree', fakeAsync(() => {
- configureCdkTreeTestingModule([FlatCdkErrorTreeApp]);
- expect(() => {
- TestBed.createComponent(FlatCdkErrorTreeApp).detectChanges();
- flush();
- }).toThrowError(getTreeControlFunctionsMissingError().message);
- }));
});
describe('with depth', () => {
@@ -1187,6 +1199,266 @@ describe('CdkTree', () => {
expect(depthElements.length).toBe(5);
});
});
+
+ describe('accessibility', () => {
+ let fixture: ComponentFixture;
+ let component: StaticNestedCdkTreeApp;
+ let nodes: HTMLElement[];
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([StaticNestedCdkTreeApp]);
+ fixture = TestBed.createComponent(StaticNestedCdkTreeApp);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ nodes = getNodes(treeElement);
+ });
+
+ describe('focus management', () => {
+ beforeEach(() => {
+ fixture.destroy();
+
+ fixture = TestBed.createComponent(StaticNestedCdkTreeApp);
+
+ component = fixture.componentInstance;
+ dataSource = component.dataSource as FakeDataSource;
+ tree = component.tree;
+ treeElement = fixture.nativeElement.querySelector('cdk-tree');
+ nodes = getNodes(treeElement);
+
+ dataSource.clear();
+
+ dataSource.data = [
+ new TestData('cheese'),
+ new TestData('pepperoni'),
+ new TestData('anchovie'),
+ ];
+
+ fixture.detectChanges();
+ nodes = getNodes(treeElement);
+ });
+
+ it('the tree does not have tabindex attribute', () => {
+ expect(treeElement.hasAttribute('tabindex')).toBeFalse();
+ });
+
+ it('the tree does not have a tabindex when an element is active', () => {
+ // activate the second child by clicking on it
+ nodes[1].click();
+ fixture.detectChanges();
+
+ expect(treeElement.hasAttribute('tabindex')).toBeFalse();
+ });
+
+ it('sets the tabindex to the first item by default', () => {
+ expect(nodes.map(x => x.getAttribute('tabindex')).join(', ')).toEqual('0, -1, -1');
+ });
+
+ it('sets tabindex on the latest activated item, with all others "-1"', () => {
+ // activate the second child by clicking on it
+ nodes[1].click();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => x.getAttribute('tabindex')).join(', ')).toEqual('-1, 0, -1');
+ });
+
+ it('maintains tabindex when a node is programatically focused', () => {
+ // activate the second child by programatically focusing it
+ nodes[1].focus();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => x.getAttribute('tabindex')).join(', ')).toEqual('-1, 0, -1');
+
+ // activate the first child by programatically focusing it
+ nodes[0].focus();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => x.getAttribute('tabindex')).join(', ')).toEqual('0, -1, -1');
+ });
+
+ it('maintains tabindex when component is blurred', () => {
+ // activate the second child by clicking on it
+ nodes[1].click();
+ nodes[1].focus();
+ fixture.detectChanges();
+
+ expect(document.activeElement).toBe(nodes[1]);
+ // blur the currently active element (which we just checked is the above node)
+ nodes[1].blur();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => x.getAttribute('tabindex')).join(', ')).toEqual('-1, 0, -1');
+ });
+
+ it('ignores clicks on disabled items', () => {
+ dataSource.data[1].isDisabled = true;
+ fixture.changeDetectorRef.markForCheck();
+ fixture.detectChanges();
+ expect(nodes.map(x => x.getAttribute('tabindex')).join(', ')).toEqual('0, -1, -1');
+
+ // attempt to click on the first child
+ nodes[1].click();
+ fixture.detectChanges();
+
+ expect(nodes.map(x => x.getAttribute('tabindex')).join(', ')).toEqual('0, -1, -1');
+ });
+ });
+
+ describe('tree role & attributes', () => {
+ it('sets the tree role on the tree element', () => {
+ expect(treeElement.getAttribute('role')).toBe('tree');
+ });
+
+ it('sets the treeitem role on all nodes', () => {
+ expect(nodes.map(x => x.getAttribute('role'))).toEqual([
+ 'treeitem',
+ 'treeitem',
+ 'treeitem',
+ 'treeitem',
+ 'treeitem',
+ 'treeitem',
+ ]);
+ });
+
+ it('sets aria attributes for tree nodes', () => {
+ expect(nodes.map(x => x.getAttribute('aria-expanded')))
+ .withContext('aria-expanded attributes')
+ .toEqual([null, 'false', 'false', null, null, null]);
+ expect(nodes.map(x => x.getAttribute('aria-level')))
+ .withContext('aria-level attributes')
+ .toEqual(['1', '1', '2', '3', '3', '1']);
+ expect(nodes.map(x => x.getAttribute('aria-posinset')))
+ .withContext('aria-posinset attributes')
+ .toEqual(['1', '2', '1', '1', '2', '3']);
+ expect(nodes.map(x => x.getAttribute('aria-setsize')))
+ .withContext('aria-setsize attributes')
+ .toEqual(['3', '3', '1', '2', '2', '3']);
+ });
+
+ it('changes aria-expanded status when expanded or collapsed', () => {
+ tree.expand(dataSource.data[1]);
+ fixture.detectChanges();
+ expect(nodes.map(x => x.getAttribute('aria-expanded')))
+ .withContext('aria-expanded attributes')
+ .toEqual([null, 'true', 'false', null, null, null]);
+
+ tree.collapse(dataSource.data[1]);
+ fixture.detectChanges();
+ expect(nodes.map(x => x.getAttribute('aria-expanded')))
+ .withContext('aria-expanded attributes')
+ .toEqual([null, 'false', 'false', null, null, null]);
+ });
+ });
+ });
+
+ describe('typeahead', () => {
+ describe('Tree with default configuration', () => {
+ let fixture: ComponentFixture;
+ let component: FlatTreeWithThreeNodes;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([FlatTreeWithThreeNodes]);
+ fixture = TestBed.createComponent(FlatTreeWithThreeNodes);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ });
+ describe(`when pressing 'b'`, () => {
+ beforeEach(fakeAsync(() => {
+ component.tree.nativeElement.dispatchEvent(
+ createKeyboardEvent('keydown', undefined, 'b'),
+ );
+ fixture.detectChanges();
+ tick(1000);
+ }));
+
+ it('focuses banana', () => {
+ expect(document.activeElement)
+ .withContext('expecting banana to be focused')
+ .toBe(component.treeNodes.get(1)?.nativeElement!);
+ });
+ });
+ });
+
+ describe('Tree with cdkTreeNodeTypeaheadlabel Input binding', () => {
+ let fixture: ComponentFixture;
+ let component: TypeaheadLabelFlatTreeWithThreeNodes;
+
+ beforeEach(() => {
+ configureCdkTreeTestingModule([TypeaheadLabelFlatTreeWithThreeNodes]);
+ fixture = TestBed.createComponent(TypeaheadLabelFlatTreeWithThreeNodes);
+ fixture.detectChanges();
+
+ component = fixture.componentInstance;
+ });
+
+ describe(`when pressing 'b'`, () => {
+ beforeEach(fakeAsync(() => {
+ component.tree.nativeElement.dispatchEvent(
+ createKeyboardEvent('keydown', undefined, 'b'),
+ );
+ fixture.detectChanges();
+ tick(1000);
+ }));
+
+ it('focuses banana', fakeAsync(() => {
+ component.tree.nativeElement.dispatchEvent(
+ createKeyboardEvent('keydown', undefined, 'b'),
+ );
+ fixture.detectChanges();
+ tick(1000);
+
+ expect(document.activeElement)
+ .withContext('expecting banana to be focused')
+ .toBe(component.treeNodes.get(1)?.nativeElement!);
+ }));
+ });
+
+ describe(`when pressing 'c'`, () => {
+ beforeEach(fakeAsync(() => {
+ component.tree.nativeElement.dispatchEvent(
+ createKeyboardEvent('keydown', undefined, 'c'),
+ );
+ fixture.detectChanges();
+ tick(1000);
+ }));
+ it('does not move focus', () => {
+ expect(document.activeElement)
+ .withContext('expecting document body to be focused')
+ .toBe(document.body);
+ });
+ });
+
+ describe(`when pressing 't'`, () => {
+ beforeEach(fakeAsync(() => {
+ component.tree.nativeElement.dispatchEvent(
+ createKeyboardEvent('keydown', undefined, 't'),
+ );
+ fixture.detectChanges();
+ tick(1000);
+ }));
+ it('focuses focuses cherry', () => {
+ expect(document.activeElement)
+ .withContext('expecting cherry to be focused')
+ .toBe(component.treeNodes.get(2)?.nativeElement!);
+ });
+ });
+ });
+ });
+
+ it('sets a node as expanded if attribute is ordered before `isExpandable`', () => {
+ configureCdkTreeTestingModule([IsExpandableOrderingTest]);
+ const fixture = TestBed.createComponent(IsExpandableOrderingTest);
+ fixture.detectChanges();
+
+ const component = fixture.componentInstance;
+ expect(getExpandedNodes(component.dataSource, component.tree).length)
+ .withContext(`expect an expanded node`)
+ .toBe(1);
+ });
});
export class TestData {
@@ -1195,9 +1467,10 @@ export class TestData {
pizzaBase: string;
level: number;
children: TestData[];
+ isDisabled?: boolean;
readonly observableChildren: BehaviorSubject;
- constructor(pizzaTopping: string, pizzaCheese: string, pizzaBase: string, level: number = 1) {
+ constructor(pizzaTopping: string, pizzaCheese = '', pizzaBase = '', level: number = 1) {
this.pizzaTopping = pizzaTopping;
this.pizzaCheese = pizzaCheese;
this.pizzaBase = pizzaBase;
@@ -1219,7 +1492,7 @@ class FakeDataSource extends DataSource {
this._dataChange.next(data);
}
- constructor(public treeControl: TreeControl) {
+ constructor() {
super();
for (let i = 0; i < 3; i++) {
this.addData();
@@ -1231,7 +1504,6 @@ class FakeDataSource extends DataSource {
return combineLatest([this._dataChange, collectionViewer.viewChange]).pipe(
map(([data]) => {
- this.treeControl.dataNodes = data;
return data;
}),
);
@@ -1260,15 +1532,32 @@ class FakeDataSource extends DataSource {
return child;
}
- addData(level: number = 1) {
+ addData(level: number = 1): TestData {
const nextIndex = ++this.dataIndex;
let copiedData = this.data.slice();
- copiedData.push(
- new TestData(`topping_${nextIndex}`, `cheese_${nextIndex}`, `base_${nextIndex}`, level),
+ const newData = new TestData(
+ `topping_${nextIndex}`,
+ `cheese_${nextIndex}`,
+ `base_${nextIndex}`,
+ level,
);
+ copiedData.push(newData);
this.data = copiedData;
+
+ return newData;
+ }
+
+ getRecursiveData(nodes: TestData[] = this._dataChange.getValue()): TestData[] {
+ return [
+ ...new Set(nodes.flatMap(parent => [parent, ...this.getRecursiveData(parent.children)])),
+ ];
+ }
+
+ clear() {
+ this.data = [];
+ this.dataIndex = 0;
}
}
@@ -1276,6 +1565,10 @@ function getNodes(treeElement: Element): HTMLElement[] {
return Array.from(treeElement.querySelectorAll('.cdk-tree-node'));
}
+function getExpandedNodes(nodes: T[] | undefined, tree: CdkTree): T[] {
+ return nodes?.filter(node => tree.isExpanded(node)) ?? [];
+}
+
function expectFlatTreeToMatch(
treeElement: Element,
expectedPaddingIndent = 28,
@@ -1362,10 +1655,12 @@ function expectNestedTreeToMatch(treeElement: Element, ...expectedTree: any[]) {
@Component({
template: `
-
+
+ cdkTreeNodeToggle
+ [isExpandable]="isExpandable(node)">
{{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
@@ -1375,21 +1670,27 @@ class SimpleCdkTreeApp {
getLevel = (node: TestData) => node.level;
isExpandable = (node: TestData) => node.children.length > 0;
- treeControl: TreeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
- dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+ dataSource: FakeDataSource | null = new FakeDataSource();
indent: number | string = 28;
@ViewChild(CdkTree) tree: CdkTree;
@ViewChildren(CdkTreeNodePadding) paddingNodes: QueryList>;
+
+ expandAll() {
+ this.tree.expandAll();
+ }
}
@Component({
template: `
-
+
+
@if (true) {
+ cdkTreeNodeToggle
+ [isExpandable]="isExpandable(node)">
{{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
}
@@ -1400,7 +1701,8 @@ class SimpleCdkTreeAppWithIndirectNodes extends SimpleCdkTreeApp {}
@Component({
template: `
-
+
{{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
@@ -1411,19 +1713,22 @@ class SimpleCdkTreeAppWithIndirectNodes extends SimpleCdkTreeApp {}
class NestedCdkTreeApp {
getChildren = (node: TestData) => node.observableChildren;
- treeControl: TreeControl = new NestedTreeControl(this.getChildren);
-
- dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+ dataSource: FakeDataSource | null = new FakeDataSource();
@ViewChild(CdkTree) tree: CdkTree;
}
@Component({
template: `
-
-
- {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
-
+
+ 0"
+ [isDisabled]="node.isDisabled">
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
+
`,
@@ -1431,14 +1736,12 @@ class NestedCdkTreeApp {
class StaticNestedCdkTreeApp {
getChildren = (node: TestData) => node.children;
- treeControl: TreeControl = new NestedTreeControl(this.getChildren);
-
dataSource: FakeDataSource;
@ViewChild(CdkTree) tree: CdkTree;
constructor() {
- const dataSource = new FakeDataSource(this.treeControl);
+ const dataSource = new FakeDataSource();
const data = dataSource.data;
const child = dataSource.addChild(data[1], false);
dataSource.addChild(child, false);
@@ -1450,7 +1753,8 @@ class StaticNestedCdkTreeApp {
@Component({
template: `
-
+
{{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
@@ -1467,19 +1771,19 @@ class WhenNodeNestedCdkTreeApp {
getChildren = (node: TestData) => node.observableChildren;
- treeControl: TreeControl = new NestedTreeControl(this.getChildren);
-
- dataSource: FakeDataSource | null = new FakeDataSource(this.treeControl);
+ dataSource: FakeDataSource | null = new FakeDataSource();
@ViewChild(CdkTree) tree: CdkTree;
}
@Component({
template: `
-
+