From 0fd321f2247e8e918d13e7c0080e378867fd3205 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Mon, 25 Oct 2021 00:30:15 +0200 Subject: [PATCH 001/358] build: remove flat module bundle workaround from view engine (#23826) Removes a past flat module bundle workaround that was needed when we still shipped release packages with View Engine. The Angular compiler picks the `index.ts` files as entry-point for the flat module bundles (this whole flat module construct could be removed in the future anyway). This was problematic because to avoid conflicts, the flat module out file name was set to something unique that does not conflict with the index file. The metadata JSON files for the `ng_module` targets (within our repo) then did not reside next to the `index` files, but rather next to the auto-generated flat module bundle. This broke the generation of `defineInjectable` (which was used in VE as well) calls. We worked around this in the past by patching the Angular compiler to pick the public API file instead as entry-point; allowing us to let the Angular compiler generate metadata and the bundle as `index.js` and `index.metadata.json` (ensuring the release output worked then). All of this is no longer needed with Ivy, so we can remove the workaround and unblock https://github.com/angular/angular/pull/43932 (which fails due to us patching some files in the compiler-cli package) --- tools/defaults.bzl | 21 --------------------- tools/postinstall/apply-patches.js | 11 +---------- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/tools/defaults.bzl b/tools/defaults.bzl index fc85bc849c87..64a384d83815 100644 --- a/tools/defaults.bzl +++ b/tools/defaults.bzl @@ -108,34 +108,14 @@ def ng_module( deps = [], srcs = [], tsconfig = None, - flat_module_out_file = None, testonly = False, **kwargs): if not tsconfig: tsconfig = _getDefaultTsConfig(testonly) - # We only generate a flat module if there is a "public-api.ts" file that - # will be picked up by NGC or ngtsc. - needs_flat_module = "public-api.ts" in srcs - # Compute an AMD module name for the target. module_name = _compute_module_name(testonly) - # Targets which have a module name and are not used for tests, should - # have a default flat module out file named "index". This is necessary - # as imports to that target should go through the flat module bundle. - if needs_flat_module and module_name and not flat_module_out_file and not testonly: - flat_module_out_file = "index" - - # Workaround to avoid a lot of changes to the Bazel build rules. Since - # for most targets the flat module out file is "index.js", we cannot - # include "index.ts" (if present) as source-file. This would resolve - # in a conflict in the metadata bundler. Once we switch to Ivy and - # no longer need metadata bundles, we can remove this logic. - if flat_module_out_file == "index": - if "index.ts" in srcs: - srcs.remove("index.ts") - local_deps = [ # Add tslib because we use import helpers for all public packages. "@npm//tslib", @@ -155,7 +135,6 @@ def ng_module( # NodeJS executions, by activating the Bazel NodeJS linker. # See: https://github.com/bazelbuild/rules_nodejs/pull/2799. package_name = module_name, - flat_module_out_file = flat_module_out_file, strict_templates = True, deps = local_deps, tsconfig = tsconfig, diff --git a/tools/postinstall/apply-patches.js b/tools/postinstall/apply-patches.js index 9028678583c1..143218c2e825 100644 --- a/tools/postinstall/apply-patches.js +++ b/tools/postinstall/apply-patches.js @@ -14,7 +14,7 @@ const chalk = require('chalk'); * Version of the post install patch. Needs to be incremented when * existing patches or edits have been modified. */ -const PATCH_VERSION = 13; +const PATCH_VERSION = 14; /** Path to the project directory. */ const projectDir = path.join(__dirname, '../..'); @@ -52,15 +52,6 @@ async function main() { } function applyPatches() { - // Workaround for: https://github.com/angular/angular/pull/32650 - searchAndReplace( - 'let resolvedEntryPoint = null;', - ` - let resolvedEntryPoint = tsFiles.find(f => f.endsWith('/public-api.ts')) || null; - `, - 'node_modules/@angular/compiler-cli/bundles/index.js', - ); - // Switches the devmode output for Angular Bazel to ES2020 target and module. applyPatch(path.join(__dirname, './devmode-es2020-bazel.patch')); From 6e97aa4cab5e22492ec3940ca3673d06b73768a7 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Mon, 25 Oct 2021 00:30:40 +0200 Subject: [PATCH 002/358] build: fix husky pre-commit hook not being executable (#23822) Fixes that the husky pre-commit hook is not being executable, causing it to be ignored by Husky. --- .husky/pre-commit | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .husky/pre-commit diff --git a/.husky/pre-commit b/.husky/pre-commit old mode 100644 new mode 100755 From 2e2fcc888d029f8649ea8b32eabbd8d62963d4ec Mon Sep 17 00:00:00 2001 From: Sergey Vakhramov Date: Mon, 25 Oct 2021 03:31:10 +0500 Subject: [PATCH 003/358] fix(cdk/portal): write generic type for TemplateRef in the Template Portal code example (#23818) --- src/cdk/portal/portal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cdk/portal/portal.md b/src/cdk/portal/portal.md index 4e375b4640ca..a5919ae7afe4 100644 --- a/src/cdk/portal/portal.md +++ b/src/cdk/portal/portal.md @@ -70,7 +70,7 @@ Usage: ``` ```ts -@ViewChild('templatePortalContent') templatePortalContent: TemplateRef; +@ViewChild('templatePortalContent') templatePortalContent: TemplateRef; ngAfterViewInit() { this.templatePortal = new TemplatePortal( From 656320d583d8b476b273fbd91d4df3db4428e871 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 25 Oct 2021 00:31:23 +0200 Subject: [PATCH 004/358] refactor(multiple): clean up explicit teardown flags (#23814) The new teardown behavior is enabled by default so we can drop the `teardown` flag usages. --- integration/ng-add/src/test.ts | 4 +--- integration/ng-update-v13/src/test.ts | 4 +--- .../autocomplete-harness/autocomplete-harness-example.spec.ts | 4 +--- .../badge/badge-harness/badge-harness-example.spec.ts | 4 +--- .../bottom-sheet-harness/bottom-sheet-harness-example.spec.ts | 4 +--- .../button-toggle-harness-example.spec.ts | 4 +--- .../button/button-harness/button-harness-example.spec.ts | 4 +--- .../material/card/card-harness/card-harness-example.spec.ts | 4 +--- .../checkbox-harness/checkbox-harness-example.spec.ts | 4 +--- .../chips/chips-harness/chips-harness-example.spec.ts | 4 +--- .../datepicker-harness/datepicker-harness-example.spec.ts | 4 +--- .../dialog/dialog-harness/dialog-harness-example.spec.ts | 4 +--- .../divider/divider-harness/divider-harness-example.spec.ts | 4 +--- .../expansion-harness/expansion-harness-example.spec.ts | 4 +--- .../form-field-harness/form-field-harness-example.spec.ts | 4 +--- .../grid-list-harness/grid-list-harness-example.spec.ts | 4 +--- .../material/icon/icon-harness/icon-harness-example.spec.ts | 4 +--- .../input/input-harness/input-harness-example.spec.ts | 4 +--- .../material/list/list-harness/list-harness-example.spec.ts | 4 +--- .../material/menu/menu-harness/menu-harness-example.spec.ts | 4 +--- .../paginator-harness/paginator-harness-example.spec.ts | 4 +--- .../progress-bar-harness/progress-bar-harness-example.spec.ts | 4 +--- .../progress-spinner-harness-example.spec.ts | 4 +--- .../radio/radio-harness/radio-harness-example.spec.ts | 4 +--- .../select/select-harness/select-harness-example.spec.ts | 4 +--- .../sidenav/sidenav-harness/sidenav-harness-example.spec.ts | 4 +--- .../slide-toggle-harness/slide-toggle-harness-example.spec.ts | 4 +--- .../slider/slider-harness/slider-harness-example.spec.ts | 4 +--- .../snack-bar-harness/snack-bar-harness-example.spec.ts | 4 +--- .../material/sort/sort-harness/sort-harness-example.spec.ts | 4 +--- .../stepper/stepper-harness/stepper-harness-example.spec.ts | 4 +--- .../table/table-harness/table-harness-example.spec.ts | 4 +--- .../tabs/tab-group-harness/tab-group-harness-example.spec.ts | 4 +--- .../toolbar/toolbar-harness/toolbar-harness-example.spec.ts | 4 +--- .../tooltip/tooltip-harness/tooltip-harness-example.spec.ts | 4 +--- .../material/tree/tree-harness/tree-harness-example.spec.ts | 4 +--- test/angular-test-init-spec.ts | 4 +--- 37 files changed, 37 insertions(+), 111 deletions(-) diff --git a/integration/ng-add/src/test.ts b/integration/ng-add/src/test.ts index 6d27e660d668..bea748d09c75 100644 --- a/integration/ng-add/src/test.ts +++ b/integration/ng-add/src/test.ts @@ -19,9 +19,7 @@ declare const require: { }; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, -}); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); // Then we find all the tests. const context = require.context('./', true, /\.spec\.ts$/); diff --git a/integration/ng-update-v13/src/test.ts b/integration/ng-update-v13/src/test.ts index 6d27e660d668..bea748d09c75 100644 --- a/integration/ng-update-v13/src/test.ts +++ b/integration/ng-update-v13/src/test.ts @@ -19,9 +19,7 @@ declare const require: { }; // First, initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, -}); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); // Then we find all the tests. const context = require.context('./', true, /\.spec\.ts$/); diff --git a/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts b/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts index 6a1fdcc90f0d..61cbdaa84690 100644 --- a/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts +++ b/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('AutocompleteHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts b/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts index 54cd2622a169..40bef9bc9a00 100644 --- a/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts +++ b/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('BadgeHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts b/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts index 6274c4ca7ff7..7d202a97d36d 100644 --- a/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts +++ b/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('BottomSheetHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts b/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts index 47852076ce1d..2b117710d0fc 100644 --- a/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts +++ b/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('ButtonToggleHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/button/button-harness/button-harness-example.spec.ts b/src/components-examples/material/button/button-harness/button-harness-example.spec.ts index a4601ff6932d..ce608ac7ffc6 100644 --- a/src/components-examples/material/button/button-harness/button-harness-example.spec.ts +++ b/src/components-examples/material/button/button-harness/button-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('ButtonHarnessExample', () => { let buttonHarness = MatButtonHarness; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/card/card-harness/card-harness-example.spec.ts b/src/components-examples/material/card/card-harness/card-harness-example.spec.ts index d1529b3de705..718c352721e6 100644 --- a/src/components-examples/material/card/card-harness/card-harness-example.spec.ts +++ b/src/components-examples/material/card/card-harness/card-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('CardHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { await TestBed.configureTestingModule({ diff --git a/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts b/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts index db628d054354..8eea3ca06480 100644 --- a/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts +++ b/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('CheckboxHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts b/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts index 58a71562027a..e46be6ccb177 100644 --- a/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts +++ b/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('ChipsHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts b/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts index d33b17ebfb3e..1ff4f8adf951 100644 --- a/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts +++ b/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts @@ -17,9 +17,7 @@ describe('DatepickerHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts b/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts index f4bd872e68a8..f245d4acb179 100644 --- a/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts +++ b/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('DialogHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach( diff --git a/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts b/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts index 1e8b23d260f1..386b08e8c739 100644 --- a/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts +++ b/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('DividerHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts b/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts index bc208e4e659f..c8f8e5a2bb6d 100644 --- a/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts +++ b/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('ExpansionHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts b/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts index 2f5534fc2fb1..7d1ac57b380f 100644 --- a/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts +++ b/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts @@ -18,9 +18,7 @@ describe('FormFieldHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts b/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts index edcdbf2c031b..b48f54428260 100644 --- a/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts +++ b/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('GridListHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts b/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts index 3fbf8161394b..8bd83e4d024b 100644 --- a/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts +++ b/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('IconHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/input/input-harness/input-harness-example.spec.ts b/src/components-examples/material/input/input-harness/input-harness-example.spec.ts index 9efde3078056..ba00d26a4ee2 100644 --- a/src/components-examples/material/input/input-harness/input-harness-example.spec.ts +++ b/src/components-examples/material/input/input-harness/input-harness-example.spec.ts @@ -16,9 +16,7 @@ describe('InputHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/list/list-harness/list-harness-example.spec.ts b/src/components-examples/material/list/list-harness/list-harness-example.spec.ts index aa69ea9341ec..8d6af7b3f019 100644 --- a/src/components-examples/material/list/list-harness/list-harness-example.spec.ts +++ b/src/components-examples/material/list/list-harness/list-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('ListHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts b/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts index 41afcbf20013..34e3e39452d3 100644 --- a/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts +++ b/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('MenuHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts b/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts index 794e33d6caaf..c5dd9e4ba28a 100644 --- a/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts +++ b/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts @@ -16,9 +16,7 @@ describe('PaginatorHarnessExample', () => { let instance: PaginatorHarnessExample; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts b/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts index 9eb01f000b61..5b7502baa24d 100644 --- a/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts +++ b/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('ProgressBarHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts b/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts index 39635395502d..fb9b9ed5305c 100644 --- a/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts +++ b/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('ProgressSpinnerHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts b/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts index 1b1039e670b5..6d951d02fed3 100644 --- a/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts +++ b/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('RadioHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/select/select-harness/select-harness-example.spec.ts b/src/components-examples/material/select/select-harness/select-harness-example.spec.ts index 66b743356da3..d2d0c6971267 100644 --- a/src/components-examples/material/select/select-harness/select-harness-example.spec.ts +++ b/src/components-examples/material/select/select-harness/select-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('SelectHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts b/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts index 59249224b3f3..8cda9c61c48a 100644 --- a/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts +++ b/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts @@ -19,9 +19,7 @@ describe('SidenavHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts b/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts index 80dec5d07a94..afc480bd917b 100644 --- a/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts +++ b/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('SlideToggleHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts b/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts index 03e8aec7b26e..1d3f20fcf1fb 100644 --- a/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts +++ b/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('SliderHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts b/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts index 9e4dcd372031..9a570d1e5b00 100644 --- a/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts +++ b/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('SnackBarHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts b/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts index 557cce17db9e..5a533462675b 100644 --- a/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts +++ b/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('SortHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts b/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts index 541f32c61399..7b4aa541ec39 100644 --- a/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts +++ b/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts @@ -16,9 +16,7 @@ describe('StepperHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/table/table-harness/table-harness-example.spec.ts b/src/components-examples/material/table/table-harness/table-harness-example.spec.ts index 20a5016c5067..937ba450e72d 100644 --- a/src/components-examples/material/table/table-harness/table-harness-example.spec.ts +++ b/src/components-examples/material/table/table-harness/table-harness-example.spec.ts @@ -14,9 +14,7 @@ describe('TableHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts b/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts index 7d53e89067db..77fb3cb7f21e 100644 --- a/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts +++ b/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('TabGroupHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts b/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts index 1c5430e557ee..dfb1c78c661d 100644 --- a/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts +++ b/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('ToolbarHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts b/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts index 0087ef32b6dc..3395e0baab64 100644 --- a/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts +++ b/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('TooltipHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts b/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts index 2aede20a0d51..a3da7b6558d8 100644 --- a/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts +++ b/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts @@ -15,9 +15,7 @@ describe('TreeHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, - }); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); }); beforeEach(async () => { diff --git a/test/angular-test-init-spec.ts b/test/angular-test-init-spec.ts index 1a9f723e7d73..dd6d36c2acfb 100644 --- a/test/angular-test-init-spec.ts +++ b/test/angular-test-init-spec.ts @@ -8,9 +8,7 @@ import { * Common setup / initialization for all unit tests in Angular Material and CDK. */ -TestBed.initTestEnvironment([BrowserDynamicTestingModule], platformBrowserDynamicTesting(), { - teardown: {destroyAfterEach: true}, -}); +TestBed.initTestEnvironment([BrowserDynamicTestingModule], platformBrowserDynamicTesting()); (window as any).module = {}; (window as any).isNode = false; From f7b5497d158195412dc4f2568d7e57deba857a1f Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Mon, 25 Oct 2021 00:31:47 +0200 Subject: [PATCH 005/358] build: update size test tool to work with Angular v13 (#23811) * test: remove unnecessary boostrap module calls in size tests * build: add comment explaining the processing of `.mjs` in esbuild rule Adds a little comment explaining why`.mjs` is processed in the Angular esbuild rule. * build: update size test tool to work with Angular v13 Updates the size test tool to properly run with the Angular v13 compilation pipeline, matching conceptually with what the Angular CLI performs. i.e. running the Angular linker, running the non-deprecated build-optimizer variant (i.e. the Babel plugins). * test: update size-golden to reflect recent compilation pipeline changes --- goldens/size-test.yaml | 36 ++++---- integration/size-test/BUILD.bazel | 11 +++ integration/size-test/esbuild.config.mjs | 90 +++++++++++++++++++ integration/size-test/index.bzl | 23 +++-- .../material-experimental/mdc-chips/basic.ts | 3 - integration/size-test/material/chips/basic.ts | 3 - integration/size-test/rollup.config.js | 35 -------- integration/size-test/terser-config.json | 19 ++-- package.json | 1 - tools/angular/esbuild.config.mjs | 1 + 10 files changed, 138 insertions(+), 84 deletions(-) create mode 100644 integration/size-test/esbuild.config.mjs delete mode 100644 integration/size-test/rollup.config.js diff --git a/goldens/size-test.yaml b/goldens/size-test.yaml index 74acb5d334f8..d9e29c2b69ae 100644 --- a/goldens/size-test.yaml +++ b/goldens/size-test.yaml @@ -1,18 +1,18 @@ -cdk/drag-drop/all-directives: 160859 -cdk/drag-drop/basic: 158225 -material-experimental/mdc-chips/basic: 385551 -material-experimental/mdc-form-field/advanced: 417584 -material-experimental/mdc-form-field/basic: 416339 -material/autocomplete/without-optgroup: 392028 -material/button-toggle/standalone: 124412 -material/chips/basic: 320073 -material/datepicker/range-picker/without-form-field: 505044 -material/expansion/without-accordion: 330526 -material/form-field/advanced: 377468 -material/form-field/basic: 376144 -material/list/nav-list: 328072 -material/menu/without-lazy-content: 398590 -material/radio/without-group: 127571 -material/select/basic: 437305 -material/tabs/advanced: 369608 -material/tabs/basic: 368747 +cdk/drag-drop/all-directives: 155091 +cdk/drag-drop/basic: 152522 +material-experimental/mdc-chips/basic: 249660 +material-experimental/mdc-form-field/advanced: 296409 +material-experimental/mdc-form-field/basic: 294855 +material/autocomplete/without-optgroup: 281544 +material/button-toggle/standalone: 186619 +material/chips/basic: 228157 +material/datepicker/range-picker/without-form-field: 398783 +material/expansion/without-accordion: 200184 +material/form-field/advanced: 247973 +material/form-field/basic: 246355 +material/list/nav-list: 194468 +material/menu/without-lazy-content: 286831 +material/radio/without-group: 189803 +material/select/basic: 329893 +material/tabs/advanced: 248653 +material/tabs/basic: 247787 diff --git a/integration/size-test/BUILD.bazel b/integration/size-test/BUILD.bazel index ecd3817d7448..b8252c3f4cbf 100644 --- a/integration/size-test/BUILD.bazel +++ b/integration/size-test/BUILD.bazel @@ -1,3 +1,4 @@ +load("@npm//@bazel/esbuild:index.bzl", "esbuild_config") load("//tools:defaults.bzl", "ts_library") package(default_visibility = ["//visibility:public"]) @@ -8,6 +9,16 @@ exports_files([ "index-tmpl.ts", ]) +esbuild_config( + name = "esbuild_config", + config_file = "esbuild.config.mjs", + deps = [ + "@npm//@angular-devkit/build-angular", + "@npm//@angular/compiler-cli", + "@npm//@babel/core", + ], +) + ts_library( name = "check-size", srcs = ["check-size.ts"], diff --git a/integration/size-test/esbuild.config.mjs b/integration/size-test/esbuild.config.mjs new file mode 100644 index 000000000000..cbfef364c0f5 --- /dev/null +++ b/integration/size-test/esbuild.config.mjs @@ -0,0 +1,90 @@ +/** + * @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 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 fs from 'fs'; + +/** Babel plugin running the Angular linker. */ +const linkerBabelPlugin = createEs2015LinkerPlugin({ + fileSystem: new NodeJSFileSystem(), + logger: new ConsoleLogger(LogLevel.warn), + linkerJitMode: false, +}); + +/** + * ESBuild plugin configuring various optimization Babel plugins. The Babel plugins + * configured as part of this plugin run in the Angular CLI compilation pipeline as well. + */ +const esbuildBabelOptimizePlugin = { + name: 'ng-babel-optimize-esbuild', + setup: build => { + build.onLoad({filter: /.*/}, async args => { + const filePath = args.path; + const content = await fs.promises.readFile(filePath, 'utf8'); + const plugins = [ + linkerBabelPlugin, + adjustStaticClassMembersPlugin, + elideAngularMetadataPlugin, + adjustTypeScriptEnumsPlugin, + ]; + + // All files except for the auto-generated module entry-point are considered side-effect + // free. For these we can add the pure-top level Babel plugin. This matches conceptually + // 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); + } + + const {code} = await babel.transformAsync(content, { + filename: filePath, + filenameRelative: filePath, + plugins: plugins, + // Sourcemaps are generated inline so that ESBuild can process them. + sourceMaps: 'inline', + compact: false, + }); + + return {contents: code}; + }); + }, +}; + +export default { + // Note: We prefer `.mjs` here as this is the extension used by Angular APF packages. + resolveExtensions: ['.mjs', '.js'], + conditions: ['es2020', 'es2015'], + mainFields: ['fesm2020', 'es2020', 'es2015', 'module'], + format: 'iife', + // The majority of these options match with the ones the CLI sets: + // https://github.com/angular/angular-cli/blob/0d76bf04bca6e083865972b5398a32bbe9396e14/packages/angular_devkit/build_angular/src/webpack/plugins/javascript-optimizer-worker.ts#L133. + treeShaking: true, + minifyIdentifiers: true, + minifySyntax: true, + minifyWhitespace: false, + pure: ['forwardRef'], + legalComments: 'none', + // ESBuild requires the `define` option to take a string-based dictionary. + define: convertObjectToStringDictionary(GLOBAL_DEFS_FOR_TERSER_WITH_AOT), + plugins: [esbuildBabelOptimizePlugin], +}; + +/** Converts an object to a string dictionary. */ +function convertObjectToStringDictionary(value) { + return Object.entries(value).reduce((result, [propName, value]) => { + result[propName] = String(value); + return result; + }, {}); +} diff --git a/integration/size-test/index.bzl b/integration/size-test/index.bzl index 54ff065ed190..2dc225c946c3 100644 --- a/integration/size-test/index.bzl +++ b/integration/size-test/index.bzl @@ -1,13 +1,13 @@ load("@npm//@angular/dev-infra-private/bazel:expand_template.bzl", "expand_template") load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "nodejs_test") load("@bazel_skylib//lib:paths.bzl", "paths") -load("@npm//@bazel/rollup:index.bzl", "rollup_bundle") +load("@npm//@bazel/esbuild:index.bzl", "esbuild") load("@npm//@bazel/terser:index.bzl", "terser_minified") load("//tools:defaults.bzl", "ng_module") """ Performs size measurements for the specified file. The file will be built as part - of a `ng_module` and then will be optimized with build-optimizer, rollup and Terser. + of a `ng_module` and then will be optimized with esbuild, babel and terser. The resulting size will be validated against a golden file to ensure that we don't regress in payload size, or that we can improvements to payload size. @@ -35,31 +35,30 @@ def size_test(name, file, deps): testonly = True, deps = [ "@npm//@angular/core", - "@npm//@angular/platform-browser-dynamic", + "@npm//@angular/platform-browser", ] + deps, ) - rollup_bundle( + esbuild( name = "%s_bundle" % name, - config_file = "//integration/size-test:rollup.config.js", + config = "//integration/size-test:esbuild_config", testonly = True, - entry_points = { - (index_file): "%s_bundled" % name, - }, + minify = True, + entry_point = index_file, deps = [ ":%s_lib" % name, - "@npm//@rollup/plugin-node-resolve", - "@npm//@angular-devkit/build-optimizer", ], + target = "es2020", + platform = "browser", # Link the workspace root so that files can be loaded from the workspace. link_workspace_root = True, - sourcemap = "false", + sourcemap = "external", ) terser_minified( testonly = True, name = "%s_bundle_min" % name, - src = ":%s_bundle" % name, + src = "%s_bundle" % name, config_file = "//integration/size-test:terser-config.json", sourcemap = False, ) diff --git a/integration/size-test/material-experimental/mdc-chips/basic.ts b/integration/size-test/material-experimental/mdc-chips/basic.ts index bf44c255ee35..53c77cbb5d60 100644 --- a/integration/size-test/material-experimental/mdc-chips/basic.ts +++ b/integration/size-test/material-experimental/mdc-chips/basic.ts @@ -1,5 +1,4 @@ import {Component, NgModule} from '@angular/core'; -import {platformBrowser} from '@angular/platform-browser'; import {MatChipsModule} from '@angular/material-experimental/mdc-chips'; /** @@ -21,5 +20,3 @@ export class TestComponent {} bootstrap: [TestComponent], }) export class AppModule {} - -platformBrowser().bootstrapModule(AppModule); diff --git a/integration/size-test/material/chips/basic.ts b/integration/size-test/material/chips/basic.ts index 41cd96ab7096..8dc2673f5968 100644 --- a/integration/size-test/material/chips/basic.ts +++ b/integration/size-test/material/chips/basic.ts @@ -1,5 +1,4 @@ import {Component, NgModule} from '@angular/core'; -import {platformBrowser} from '@angular/platform-browser'; import {MatChipsModule} from '@angular/material/chips'; /** @@ -21,5 +20,3 @@ export class TestComponent {} bootstrap: [TestComponent], }) export class AppModule {} - -platformBrowser().bootstrapModule(AppModule); diff --git a/integration/size-test/rollup.config.js b/integration/size-test/rollup.config.js deleted file mode 100644 index a3e283a6958b..000000000000 --- a/integration/size-test/rollup.config.js +++ /dev/null @@ -1,35 +0,0 @@ -const { - buildOptimizer, -} = require('@angular-devkit/build-optimizer/src/build-optimizer/build-optimizer'); -const {nodeResolve} = require('@rollup/plugin-node-resolve'); - -const buildOptimizerPlugin = { - name: 'build-optimizer', - transform: (content, id) => { - const {content: code, sourceMap: map} = buildOptimizer({ - content, - inputFilePath: id, - emitSourceMap: true, - // Always assume side-effect free source files, except for the autogenerated - // module index file. The bootstrap module call should not be eliminated. - isSideEffectFree: !id.endsWith('_autogenerated_module_index.mjs'), - isAngularCoreFile: false, - }); - if (!code) { - return null; - } - if (!map) { - throw new Error('No sourcemap produced by build optimizer'); - } - return {code, map}; - }, -}; - -module.exports = { - plugins: [ - buildOptimizerPlugin, - nodeResolve({ - mainFields: ['es2020', 'module'], - }), - ], -}; diff --git a/integration/size-test/terser-config.json b/integration/size-test/terser-config.json index 000fc5b4ef43..d0af1569ea37 100644 --- a/integration/size-test/terser-config.json +++ b/integration/size-test/terser-config.json @@ -1,17 +1,12 @@ { - "output": { - "ecma": "es2015", - "comments": false - }, + "ecma": "es2020", "compress": { - "global_defs": { - "ngDevMode": false, - "ngI18nClosureMode": false, - "ngJitMode": false - }, - "passes": 3, + "passes": 2, "pure_getters": true }, - "toplevel": true, - "mangle": true + "format": { + "ascii_only": true, + "wrap_func_args": false + }, + "mangle": false } diff --git a/package.json b/package.json index 2b9d24835792..76c4853811a5 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,6 @@ }, "devDependencies": { "@angular-devkit/build-angular": "13.0.0-next.7", - "@angular-devkit/build-optimizer": "0.1300.0-next.7", "@angular-devkit/core": "13.0.0-next.7", "@angular-devkit/schematics": "13.0.0-next.7", "@angular/bazel": "13.0.0-next.15", diff --git a/tools/angular/esbuild.config.mjs b/tools/angular/esbuild.config.mjs index 694075b696e3..99a2bd9d8e9b 100644 --- a/tools/angular/esbuild.config.mjs +++ b/tools/angular/esbuild.config.mjs @@ -9,6 +9,7 @@ import {createLinkerEsbuildPlugin} from './create_linker_esbuild_plugin.mjs'; export default { + // Note: We support `.mjs` here as this is the extension used by Angular APF packages. resolveExtensions: ['.mjs', '.js'], format: 'esm', plugins: [ From a931de54a786597b34259e461c2cf3ab6edc590a Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 25 Oct 2021 01:13:55 +0200 Subject: [PATCH 006/358] fix(material/icon): disable text selection (#23730) Disables text selection inside `mat-icon` so that the text inside font icons can't be selected by accident. --- src/material/icon/icon.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/material/icon/icon.scss b/src/material/icon/icon.scss index d74412f0bb56..9c9929ef9405 100644 --- a/src/material/icon/icon.scss +++ b/src/material/icon/icon.scss @@ -1,7 +1,10 @@ +@use '../core/style/vendor-prefixes'; + // The width/height of the icon element. $size: 24px !default; .mat-icon { + @include vendor-prefixes.user-select(none); background-repeat: no-repeat; display: inline-block; fill: currentColor; From 7ec01396f4fabcffdc69c5f264fe9615afb464d1 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Wed, 27 Oct 2021 05:35:24 +0200 Subject: [PATCH 007/358] build: setup preview builds for dev-app (#23825) * build: setup preview builds for dev-app Sets up preview builds for the dev-app. Whenever the `dev-app preview` label is applied to pull requests, a Github action will build the dev-app using RBE and deploy it to a preview channel within a Firebase project. The deployment and building is split up into two individual workflows to guarantee a secure exeuction of these steps. This follows the concept as outlined in https://securitylab.github.com/research/github-actions-preventing-pwn-requests/. In the future, we can try extracting some of this logic into a common tool in the dev-infra repository.. allowing preview builds to be used for other things, or in other repositories as well (or switching AIO away from the rather-complicated docker preview build setup). * fixup! build: setup preview builds for dev-app Address feedback * fixup! build: setup preview builds for dev-app Update old links --- .circleci/config.yml | 2 +- .github/actions/yarn-install/action.yml | 18 ++++++ .github/workflows/build-dev-app.yml | 50 +++++++++++++++++ .github/workflows/deploy-dev-app.yml | 52 ++++++++++++++++++ {.circleci => scripts/bazel}/gcp_token | Bin scripts/bazel/setup-remote-execution.sh | 29 ++++++++++ .../circleci/bazel/setup-remote-execution.sh | 22 -------- scripts/github/fetch-workflow-artifact.mjs | 37 +++++++++++++ 8 files changed, 187 insertions(+), 23 deletions(-) create mode 100644 .github/actions/yarn-install/action.yml create mode 100644 .github/workflows/build-dev-app.yml create mode 100644 .github/workflows/deploy-dev-app.yml rename {.circleci => scripts/bazel}/gcp_token (100%) create mode 100755 scripts/bazel/setup-remote-execution.sh delete mode 100755 scripts/circleci/bazel/setup-remote-execution.sh create mode 100755 scripts/github/fetch-workflow-artifact.mjs diff --git a/.circleci/config.yml b/.circleci/config.yml index a399d0415696..0024b90e3fe8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -103,7 +103,7 @@ var_15: &ignore_presubmit_branch_filter var_16: &setup_bazel_remote_execution run: name: "Setup bazel RBE remote execution" - command: ./scripts/circleci/bazel/setup-remote-execution.sh + command: ./scripts/bazel/setup-remote-execution.sh # Sets up the bazel binary globally. We don't want to access bazel through Yarn and NodeJS # because it could mean that the Bazel child process only has access to limited memory. diff --git a/.github/actions/yarn-install/action.yml b/.github/actions/yarn-install/action.yml new file mode 100644 index 000000000000..25e654d125e6 --- /dev/null +++ b/.github/actions/yarn-install/action.yml @@ -0,0 +1,18 @@ +name: "Installing Yarn dependencies" +description: "Installs the dependencies using Yarn" + +runs: + using: "composite" + steps: + - uses: actions/cache@v2 + with: + path: | + **/node_modules + # Cache key. Whenever the postinstall patches change, the cache needs to be invalidated. + # If just the `yarn.lock` file changes, the most recent cache can be restored though. + # See: https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#example-using-the-cache-action. + key: v2-${{hashFiles('tools/postinstall/apply-patches.js')}}-${{hashFiles('yarn.lock')}} + restore-keys: v2-${{hashFiles('tools/postinstall/apply-patches.js')}}- + + - run: yarn install --frozen-lockfile --non-interactive + shell: bash diff --git a/.github/workflows/build-dev-app.yml b/.github/workflows/build-dev-app.yml new file mode 100644 index 000000000000..6e0337d207c3 --- /dev/null +++ b/.github/workflows/build-dev-app.yml @@ -0,0 +1,50 @@ +# This workflow builds the dev-app for pull requests when a certain label is applied. +# The actual deployment happens as part of a dedicated second workflow to avoid security +# issues where the building would otherwise occur in an authorized context where secrets +# could be leaked. More details can be found here: + +# https://securitylab.github.com/research/github-actions-preventing-pwn-requests/. + +name: Build dev-app for deployment + +on: + pull_request: + types: [synchronize, labeled] + +jobs: + dev-app-build: + runs-on: ubuntu-latest + # We only want to build and deploy the dev-app if the `dev-app preview` label has been + # added, or if the label is already applied and new changes have been made in the PR. + if: | + (github.event.action == 'labeled' && github.event.label.name == 'dev-app preview') || + (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'dev-app preview')) + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/yarn-install + + - run: ./scripts/bazel/setup-remote-execution.sh + env: + GCP_DECRYPT_TOKEN: angular + + # Build the web package. Note that we also need to make the Github environment + # variables available so that the RBE is configured. + - name: Building dev-app + run: | + source ${GITHUB_ENV} + bazel build //src/dev-app:web_package --symlink_prefix=dist/ + + # Prepare the workflow artifact that is available for the deploy workflow. We store the pull + # request number and SHA in a file that can be read by the deploy workflow. This is necessary + # so that the deploy workflow can create a comment on the PR that triggered the deploy. + - run: | + mkdir -p dist/devapp + cp -R dist/bin/src/dev-app/web_package/* dist/devapp + echo ${{github.event.pull_request.number}} > dist/devapp/pr_number + echo ${{github.event.pull_request.head.sha}} > dist/devapp/pr_sha + + # Upload the generated dev-app archive. + - uses: actions/upload-artifact@v2 + with: + name: devapp + path: dist/devapp diff --git a/.github/workflows/deploy-dev-app.yml b/.github/workflows/deploy-dev-app.yml new file mode 100644 index 000000000000..db1ecc7ecc38 --- /dev/null +++ b/.github/workflows/deploy-dev-app.yml @@ -0,0 +1,52 @@ +# This workflow runs whenever the dev-app build workflow has completed. Deployment happens +# as part of a dedicated second workflow to avoid security issues where the building would +# otherwise occur in an authorized context where secrets could be leaked. +# +# More details can be found here: +# https://securitylab.github.com/research/github-actions-preventing-pwn-requests/. + +name: Deploying dev-app to Firebase previews + +on: + workflow_run: + workflows: [Build dev-app for deployment] + types: [completed] + +jobs: + deploy-dev-app: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/yarn-install + + - name: 'Download artifact from build job' + run: | + ./scripts/github/fetch-workflow-artifact.mjs ${{secrets.GITHUB_TOKEN}} \ + ${{github.event.workflow_run.id}} devapp > devapp.zip + + - name: Extracting workflow artifact into Firebase public directory. + run: | + mkdir -p dist/dev-app-web-pkg + unzip devapp.zip -d dist/dev-app-web-pkg + + - name: Extracting pull request from extracted workflow artifact. + id: pr_info + run: | + echo "::set-output name=number::$(cat ./dist/dev-app-web-pkg/pr_number)" + echo "::set-output name=sha::$(cat ./dist/dev-app-web-pkg/pr_sha)" + + - uses: FirebaseExtended/action-hosting-deploy@v0 + id: deploy + with: + repoToken: '${{secrets.GITHUB_TOKEN}}' + firebaseServiceAccount: '${{secrets.FIREBASE_PREVIEW_SERVICE_TOKEN}}' + expires: 20d + projectId: angular-components-test + channelId: pr-${{steps.pr_info.outputs.number}}-${{steps.pr_info.outputs.sha}} + + - uses: marocchino/sticky-pull-request-comment@v2 + with: + message: | + Deployed dev-app to: ${{ steps.deploy.outputs.details_url }} + number: ${{ steps.pr_info.outputs.number }} diff --git a/.circleci/gcp_token b/scripts/bazel/gcp_token similarity index 100% rename from .circleci/gcp_token rename to scripts/bazel/gcp_token diff --git a/scripts/bazel/setup-remote-execution.sh b/scripts/bazel/setup-remote-execution.sh new file mode 100755 index 000000000000..ebf6ed1d9d03 --- /dev/null +++ b/scripts/bazel/setup-remote-execution.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# The script should immediately exit if any command in the script fails. +set -e + +if [[ -z "${GCP_DECRYPT_TOKEN}" ]]; then + echo "Please specify the \"GCP_DECRYPT_TOKEN\" environment variable when setting up remote " \ + "execution" + exit 1 +fi + +# Decode the GCP token that is needed to authenticate the Bazel remote execution. +openssl aes-256-cbc -d -in scripts/bazel/gcp_token -md md5 -k ${GCP_DECRYPT_TOKEN} \ + -out $HOME/.gcp_credentials + +# Set the "GOOGLE_APPLICATION_CREDENTIALS" environment variable. It should point to the GCP credentials +# file. Bazel will then automatically picks up the credentials from that variable. +# https://docs.bazel.build/versions/main/command-line-reference.html#flag--google_default_credentials +# https://cloud.google.com/docs/authentication/production. +if [[ ! -z "${BASH_ENV}" ]]; then + # CircleCI uses the `BASH_ENV` variable for environment variables. + echo "export GOOGLE_APPLICATION_CREDENTIALS=${HOME}/.gcp_credentials" >> ${BASH_ENV} +elif [[ ! -z "${GITHUB_ENV}" ]]; then + # Github actions use the `GITHUB_ENV` variable for environment variables. + echo "GOOGLE_APPLICATION_CREDENTIALS=${HOME}/.gcp_credentials" >> ${GITHUB_ENV} +fi + +# Update the project Bazel configuration to always use remote execution. +echo "build --config=remote" >> .bazelrc diff --git a/scripts/circleci/bazel/setup-remote-execution.sh b/scripts/circleci/bazel/setup-remote-execution.sh deleted file mode 100755 index dfe9d2713609..000000000000 --- a/scripts/circleci/bazel/setup-remote-execution.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# The script should immediately exit if any command in the script fails. -set -e - -if [[ -z "${GCP_DECRYPT_TOKEN}" ]]; then - echo "Please specify the \"GCP_DECRYPT_TOKEN\" environment variable when setting up remote " \ - "execution" - exit 1 -fi - -# Decode the GCP token that is needed to authenticate the Bazel remote execution. -openssl aes-256-cbc -d -in .circleci/gcp_token -md md5 -k ${GCP_DECRYPT_TOKEN} \ - -out $HOME/.gcp_credentials - -# Export the "GOOGLE_APPLICATION_CREDENTIALS" variable that should refer to the GCP credentials -# file. Bazel automatically picks up the credentials from that variable. -# https://github.com/bazelbuild/bazel/blob/master/third_party/grpc/include/grpc/grpc_security.h#L134-L137 -echo "export GOOGLE_APPLICATION_CREDENTIALS=$HOME/.gcp_credentials" >> $BASH_ENV - -# Update the CircleCI Bazel configuration to always use remote execution. -echo "build --config=remote" >> .circleci/bazel.rc diff --git a/scripts/github/fetch-workflow-artifact.mjs b/scripts/github/fetch-workflow-artifact.mjs new file mode 100755 index 000000000000..81efbf952c05 --- /dev/null +++ b/scripts/github/fetch-workflow-artifact.mjs @@ -0,0 +1,37 @@ +#!/usr/bin/env node + +/** + * Fetches a specified artifact by name from the given workflow and writes + * the downloaded zip file to the stdout. + * + * Command line usage: + * ./fetch-workflow-artifact.js + */ + +import octokit from '@octokit/rest'; + +async function main() { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/', 2); + const [token, workflowId, artifactName] = process.argv.slice(2); + const github = new octokit.Octokit({auth: token}); + const artifacts = await github.actions.listWorkflowRunArtifacts({ + owner, + repo, + run_id: workflowId, + }); + + const matchArtifact = artifacts.data.artifacts.find( + artifact => artifact.name === artifactName, + ); + + const download = await github.actions.downloadArtifact({ + owner, + repo, + artifact_id: matchArtifact.id, + archive_format: 'zip', + }); + + process.stdout.write(Buffer.from(download.data)); +} + +await main(); From 1b6c93571c4615deb929f7b0e72c3e42478a31ec Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Wed, 27 Oct 2021 13:10:41 +0200 Subject: [PATCH 008/358] fix(material/table): set class and role on no data row (#23749) Automatically adds a class to the no data row so that it's easier to style. In the process of adding the class I also noticed that the no data row doesn't have the correct `role`. Fixes #23729. --- src/cdk/table/row.ts | 1 + src/cdk/table/table.spec.ts | 22 ++++++++------ src/cdk/table/table.ts | 30 +++++++++++++++---- src/material-experimental/mdc-table/row.ts | 4 ++- .../mdc-table/table.spec.ts | 18 ++++++----- src/material/table/row.ts | 4 ++- src/material/table/table.spec.ts | 18 ++++++----- tools/public_api_guard/cdk/table.md | 2 ++ tools/public_api_guard/material/table.md | 2 ++ 9 files changed, 70 insertions(+), 31 deletions(-) diff --git a/src/cdk/table/row.ts b/src/cdk/table/row.ts index 8e4e7b2f109a..1e2bd6bdd850 100644 --- a/src/cdk/table/row.ts +++ b/src/cdk/table/row.ts @@ -313,5 +313,6 @@ export class CdkRow {} selector: 'ng-template[cdkNoDataRow]', }) export class CdkNoDataRow { + _contentClassName = 'cdk-no-data-row'; constructor(public templateRef: TemplateRef) {} } diff --git a/src/cdk/table/table.spec.ts b/src/cdk/table/table.spec.ts index 61d558017a7f..3486abb232d1 100644 --- a/src/cdk/table/table.spec.ts +++ b/src/cdk/table/table.spec.ts @@ -298,13 +298,15 @@ describe('CdkTable', () => { }); it('should be able to show a message when no data is being displayed', () => { - expect(tableElement.textContent!.trim()).not.toContain('No data'); + expect(tableElement.querySelector('.cdk-no-data-row')).toBeFalsy(); const originalData = dataSource.data; dataSource.data = []; fixture.detectChanges(); - expect(tableElement.textContent!.trim()).toContain('No data'); + const noDataRow = tableElement.querySelector('.cdk-no-data-row')!; + expect(noDataRow).toBeTruthy(); + expect(noDataRow.getAttribute('role')).toBe('row'); dataSource.data = originalData; fixture.detectChanges(); @@ -312,7 +314,7 @@ describe('CdkTable', () => { // Expect it to have emitted once on init, once when empty, and again with original data. expect(component.contentChangedCount).toBe(3); - expect(tableElement.textContent!.trim()).not.toContain('No data'); + expect(tableElement.querySelector('.cdk-no-data-row')).toBeFalsy(); }); it('should show the no data row if there is no data on init', () => { @@ -321,7 +323,7 @@ describe('CdkTable', () => { fixture.componentInstance.dataSource.data = []; fixture.detectChanges(); tableElement = fixture.nativeElement.querySelector('.cdk-table'); - expect(tableElement.textContent!.trim()).toContain('No data'); + expect(tableElement.querySelector('.cdk-no-data-row')).toBeTruthy(); expect(component.contentChangedCount).toBe(1); }); }); @@ -558,17 +560,19 @@ describe('CdkTable', () => { const dataSource = thisFixture.componentInstance.dataSource!; const originalData = dataSource.data; - expect(tbody.textContent!.trim()).not.toContain('No data'); + expect(tbody.querySelector('.cdk-no-data-row')).toBeFalsy(); dataSource.data = []; thisFixture.detectChanges(); - expect(tbody.textContent!.trim()).toContain('No data'); + const noDataRow: HTMLElement = tbody.querySelector('.cdk-no-data-row'); + expect(noDataRow).toBeTruthy(); + expect(noDataRow.getAttribute('role')).toBe('row'); dataSource.data = originalData; thisFixture.detectChanges(); - expect(tbody.textContent!.trim()).not.toContain('No data'); + expect(tbody.querySelector('.cdk-no-data-row')).toBeFalsy(); }); it('should apply correct roles for native table elements', () => { @@ -743,7 +747,7 @@ describe('CdkTable', () => { fixture.componentInstance.dataSource.data = []; fixture.detectChanges(); - expect(tableElement.textContent).toContain('No data'); + expect(tableElement.querySelector('.cdk-no-data-row')).toBeTruthy(); }); describe('using when predicate', () => { @@ -2766,7 +2770,7 @@ class RowContextCdkTableApp { - No data +
No data
`, }) diff --git a/src/cdk/table/table.ts b/src/cdk/table/table.ts index c0d98f566fbf..114da2fbc634 100644 --- a/src/cdk/table/table.ts +++ b/src/cdk/table/table.ts @@ -1286,15 +1286,33 @@ export class CdkTable implements AfterContentChecked, CollectionViewer, OnDes private _updateNoDataRow() { const noDataRow = this._customNoDataRow || this._noDataRow; - if (noDataRow) { - const shouldShow = this._rowOutlet.viewContainer.length === 0; + if (!noDataRow) { + return; + } + + const shouldShow = this._rowOutlet.viewContainer.length === 0; + + if (shouldShow === this._isShowingNoDataRow) { + return; + } + + const container = this._noDataRowOutlet.viewContainer; + + if (shouldShow) { + const view = container.createEmbeddedView(noDataRow.templateRef); + const rootNode: HTMLElement | undefined = view.rootNodes[0]; - if (shouldShow !== this._isShowingNoDataRow) { - const container = this._noDataRowOutlet.viewContainer; - shouldShow ? container.createEmbeddedView(noDataRow.templateRef) : container.clear(); - this._isShowingNoDataRow = shouldShow; + // Only add the attributes if we have a single root node since it's hard + // to figure out which one to add it to when there are multiple. + if (view.rootNodes.length === 1 && rootNode?.nodeType === this._document.ELEMENT_NODE) { + rootNode.setAttribute('role', 'row'); + rootNode.classList.add(noDataRow._contentClassName); } + } else { + container.clear(); } + + this._isShowingNoDataRow = shouldShow; } static ngAcceptInputType_multiTemplateDataRows: BooleanInput; diff --git a/src/material-experimental/mdc-table/row.ts b/src/material-experimental/mdc-table/row.ts index e2276b2d6d89..9b8e43163bc4 100644 --- a/src/material-experimental/mdc-table/row.ts +++ b/src/material-experimental/mdc-table/row.ts @@ -108,4 +108,6 @@ export class MatRow extends CdkRow {} selector: 'ng-template[matNoDataRow]', providers: [{provide: CdkNoDataRow, useExisting: MatNoDataRow}], }) -export class MatNoDataRow extends CdkNoDataRow {} +export class MatNoDataRow extends CdkNoDataRow { + override _contentClassName = 'mat-mdc-no-data-row'; +} diff --git a/src/material-experimental/mdc-table/table.spec.ts b/src/material-experimental/mdc-table/table.spec.ts index 045ddca64003..08d9f00adcee 100644 --- a/src/material-experimental/mdc-table/table.spec.ts +++ b/src/material-experimental/mdc-table/table.spec.ts @@ -123,17 +123,19 @@ describe('MDC-based MatTable', () => { const dataSource = fixture.componentInstance.dataSource!; const initialData = dataSource.data; - expect(tbody.textContent.trim()).not.toContain('No data'); + expect(tbody.querySelector('.mat-mdc-no-data-row')).toBeFalsy(); dataSource.data = []; fixture.detectChanges(); - expect(tbody.textContent.trim()).toContain('No data'); + const noDataRow: HTMLElement = tbody.querySelector('.mat-mdc-no-data-row'); + expect(noDataRow).toBeTruthy(); + expect(noDataRow.getAttribute('role')).toBe('row'); dataSource.data = initialData; fixture.detectChanges(); - expect(tbody.textContent.trim()).not.toContain('No data'); + expect(tbody.querySelector('.mat-mdc-no-data-row')).toBeFalsy(); }); it('should be able to show a message when no data is being displayed', () => { @@ -144,17 +146,19 @@ describe('MDC-based MatTable', () => { const tbody = fixture.nativeElement.querySelector('tbody')!; const initialData = fixture.componentInstance.dataSource!.data; - expect(tbody.textContent.trim()).not.toContain('No data'); + expect(tbody.querySelector('.mat-mdc-no-data-row')).toBeFalsy(); fixture.componentInstance.dataSource!.data = []; fixture.detectChanges(); - expect(tbody.textContent.trim()).toContain('No data'); + const noDataRow: HTMLElement = tbody.querySelector('.mat-mdc-no-data-row'); + expect(noDataRow).toBeTruthy(); + expect(noDataRow.getAttribute('role')).toBe('row'); fixture.componentInstance.dataSource!.data = initialData; fixture.detectChanges(); - expect(tbody.textContent.trim()).not.toContain('No data'); + expect(tbody.querySelector('.mat-mdc-no-data-row')).toBeFalsy(); }); it('should show the no data row if there is no data on init', () => { @@ -163,7 +167,7 @@ describe('MDC-based MatTable', () => { fixture.detectChanges(); const tbody = fixture.nativeElement.querySelector('tbody')!; - expect(tbody.textContent.trim()).toContain('No data'); + expect(tbody.querySelector('.mat-mdc-no-data-row')).toBeTruthy(); }); it('should set the content styling class on the tbody', () => { diff --git a/src/material/table/row.ts b/src/material/table/row.ts index 71624f8239e2..79490b1e7e1b 100644 --- a/src/material/table/row.ts +++ b/src/material/table/row.ts @@ -108,4 +108,6 @@ export class MatRow extends CdkRow {} selector: 'ng-template[matNoDataRow]', providers: [{provide: CdkNoDataRow, useExisting: MatNoDataRow}], }) -export class MatNoDataRow extends CdkNoDataRow {} +export class MatNoDataRow extends CdkNoDataRow { + override _contentClassName = 'mat-no-data-row'; +} diff --git a/src/material/table/table.spec.ts b/src/material/table/table.spec.ts index 6ae4f276c3f5..e47337e73a68 100644 --- a/src/material/table/table.spec.ts +++ b/src/material/table/table.spec.ts @@ -92,17 +92,19 @@ describe('MatTable', () => { const table = fixture.nativeElement.querySelector('.mat-table')!; const initialData = fixture.componentInstance.dataSource!.data; - expect(table.textContent.trim()).not.toContain('No data'); + expect(table.querySelector('.mat-no-data-row')).toBeFalsy(); fixture.componentInstance.dataSource!.data = []; fixture.detectChanges(); - expect(table.textContent.trim()).toContain('No data'); + const noDataRow: HTMLElement = table.querySelector('.mat-no-data-row'); + expect(noDataRow).toBeTruthy(); + expect(noDataRow.getAttribute('role')).toBe('row'); fixture.componentInstance.dataSource!.data = initialData; fixture.detectChanges(); - expect(table.textContent.trim()).not.toContain('No data'); + expect(table.querySelector('.mat-no-data-row')).toBeFalsy(); }); it('should show the no data row if there is no data on init', () => { @@ -111,7 +113,7 @@ describe('MatTable', () => { fixture.detectChanges(); const table = fixture.nativeElement.querySelector('.mat-table')!; - expect(table.textContent.trim()).toContain('No data'); + expect(table.querySelector('.mat-no-data-row')).toBeTruthy(); }); }); @@ -154,17 +156,19 @@ describe('MatTable', () => { const dataSource = fixture.componentInstance.dataSource!; const initialData = dataSource.data; - expect(tbody.textContent.trim()).not.toContain('No data'); + expect(tbody.querySelector('.mat-no-data-row')).toBeFalsy(); dataSource.data = []; fixture.detectChanges(); - expect(tbody.textContent.trim()).toContain('No data'); + const noDataRow: HTMLElement = tbody.querySelector('.mat-no-data-row'); + expect(noDataRow).toBeTruthy(); + expect(noDataRow.getAttribute('role')).toBe('row'); dataSource.data = initialData; fixture.detectChanges(); - expect(tbody.textContent.trim()).not.toContain('No data'); + expect(tbody.querySelector('.mat-no-data-row')).toBeFalsy(); }); it('should render with MatTableDataSource and sort', () => { diff --git a/tools/public_api_guard/cdk/table.md b/tools/public_api_guard/cdk/table.md index c2eca5fbc46d..8d459ff891f3 100644 --- a/tools/public_api_guard/cdk/table.md +++ b/tools/public_api_guard/cdk/table.md @@ -257,6 +257,8 @@ export class CdkHeaderRowDef extends _CdkHeaderRowDefBase implements CanStick, O export class CdkNoDataRow { constructor(templateRef: TemplateRef); // (undocumented) + _contentClassName: string; + // (undocumented) templateRef: TemplateRef; // (undocumented) static ɵdir: i0.ɵɵDirectiveDeclaration; diff --git a/tools/public_api_guard/material/table.md b/tools/public_api_guard/material/table.md index 7fc2eac4d0ea..90732fa69776 100644 --- a/tools/public_api_guard/material/table.md +++ b/tools/public_api_guard/material/table.md @@ -124,6 +124,8 @@ export class MatHeaderRowDef extends CdkHeaderRowDef { // @public export class MatNoDataRow extends CdkNoDataRow { + // (undocumented) + _contentClassName: string; // (undocumented) static ɵdir: i0.ɵɵDirectiveDeclaration; // (undocumented) From 76012d4f47aceab1a153847dd9ea9806f71cf2f6 Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Wed, 27 Oct 2021 10:15:28 -0700 Subject: [PATCH 009/358] docs: release notes for the v12.2.12 release (#23843) --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5ea0f25bacf..93dee5d6b224 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ + +# 12.2.12 "silk-shoe" (2021-10-27) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [6161ec622](https://github.com/angular/components/commit/6161ec62273a4455da88530633af79b93cdc387f) | fix | **portal:** write generic type for TemplateRef in the Template Portal code example ([#23818](https://github.com/angular/components/pull/23818)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [d8c84d608](https://github.com/angular/components/commit/d8c84d60814adc094d48a65b6e853abab11a6239) | fix | **icon:** disable text selection ([#23730](https://github.com/angular/components/pull/23730)) | +## Special Thanks +Kristiyan Kostadinov, Paul Gschwendtner and Sergey Vakhramov + + + # 13.0.0-rc.1 "acrylic-finger" (2021-10-20) ### cdk From 202c667e3439e7412fed981993aa51ee2b0f41f6 Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Wed, 27 Oct 2021 11:09:09 -0700 Subject: [PATCH 010/358] docs: release notes for the v13.0.0-rc.2 release (#23845) --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93dee5d6b224..8d73b548cc22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ + +# 13.0.0-rc.2 "tweed-thimble" (2021-10-27) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [c4cb63be2](https://github.com/angular/components/commit/c4cb63be230a5c5d58e8d2e6d084c42015dc8cf7) | fix | **portal:** write generic type for TemplateRef in the Template Portal code example ([#23818](https://github.com/angular/components/pull/23818)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [114041f43](https://github.com/angular/components/commit/114041f434573fca279de7c0e064f18bee6b2d95) | fix | **icon:** disable text selection ([#23730](https://github.com/angular/components/pull/23730)) | +## Special Thanks +Kristiyan Kostadinov, Paul Gschwendtner and Sergey Vakhramov + + # 12.2.12 "silk-shoe" (2021-10-27) ### cdk From 94aa7d3246eb74169d8e18537acdf71cb6837fb8 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 2 Nov 2021 19:12:59 +0200 Subject: [PATCH 011/358] test(material/select): fix failing unit test (#23870) Fixes a unit test that started failing, because it tries to scroll the page down, but there isn't enough content for it to scroll. --- src/material/select/select.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/material/select/select.spec.ts b/src/material/select/select.spec.ts index 8a2a9905ef75..c47af1cf88e7 100644 --- a/src/material/select/select.spec.ts +++ b/src/material/select/select.spec.ts @@ -4407,7 +4407,7 @@ describe('MatSelect', () => { it('should fall back to "below" positioning properly when scrolled', fakeAsync(() => { // Give plenty of space for the select to open below the trigger - fixture.componentInstance.heightBelow = 650; + fixture.componentInstance.heightBelow = 2000; fixture.detectChanges(); // Select an option too low in the list to fit in limited space above From a0597ec3e84052a8979068d3f123c5eff0dec1a6 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Tue, 2 Nov 2021 20:34:25 +0100 Subject: [PATCH 012/358] build: update to final v13.0.0-rc.3 release-candidate of CLI and framework (#23873) Updates all of our tooling to v13.0.0-rc.3 of the CLI/and framework. --- package.json | 36 +- yarn.lock | 1228 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 813 insertions(+), 451 deletions(-) diff --git a/package.json b/package.json index 76c4853811a5..c01f187a3308 100644 --- a/package.json +++ b/package.json @@ -50,33 +50,33 @@ }, "version": "13.1.0-next.0", "dependencies": { - "@angular/animations": "13.0.0-next.15", - "@angular/common": "13.0.0-next.15", - "@angular/compiler": "13.0.0-next.15", - "@angular/core": "13.0.0-next.15", - "@angular/forms": "13.0.0-next.15", - "@angular/platform-browser": "13.0.0-next.15", + "@angular/animations": "13.0.0-rc.3", + "@angular/common": "13.0.0-rc.3", + "@angular/compiler": "13.0.0-rc.3", + "@angular/core": "13.0.0-rc.3", + "@angular/forms": "13.0.0-rc.3", + "@angular/platform-browser": "13.0.0-rc.3", "@types/google.maps": "^3.45.6", "@types/youtube": "^0.0.42", "core-js-bundle": "^3.8.2", "material-components-web": "14.0.0-canary.c78ff0429.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.7", "rxjs-tslint-rules": "^4.33.1", "tslib": "^2.3.0", "zone.js": "~0.11.3" }, "devDependencies": { - "@angular-devkit/build-angular": "13.0.0-next.7", - "@angular-devkit/core": "13.0.0-next.7", - "@angular-devkit/schematics": "13.0.0-next.7", - "@angular/bazel": "13.0.0-next.15", - "@angular/cli": "13.0.0-next.7", - "@angular/compiler-cli": "13.0.0-next.15", + "@angular-devkit/build-angular": "13.0.0-rc.3", + "@angular-devkit/core": "13.0.0-rc.3", + "@angular-devkit/schematics": "13.0.0-rc.3", + "@angular/bazel": "13.0.0-rc.3", + "@angular/cli": "13.0.0-rc.3", + "@angular/compiler-cli": "13.0.0-rc.3", "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#26d2e72c0311590097861c87319ba8acbd898f63", - "@angular/localize": "13.0.0-next.15", - "@angular/platform-browser-dynamic": "13.0.0-next.15", - "@angular/platform-server": "13.0.0-next.15", - "@angular/router": "13.0.0-next.15", + "@angular/localize": "13.0.0-rc.3", + "@angular/platform-browser-dynamic": "13.0.0-rc.3", + "@angular/platform-server": "13.0.0-rc.3", + "@angular/router": "13.0.0-rc.3", "@axe-core/webdriverjs": "^4.1.0", "@babel/core": "^7.13.10", "@babel/traverse": "^7.13.0", @@ -143,7 +143,7 @@ "@rollup/plugin-babel": "^5.3.0", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.5", - "@schematics/angular": "13.0.0-next.7", + "@schematics/angular": "13.0.0-rc.3", "@types/babel__core": "^7.1.16", "@types/browser-sync": "^2.26.1", "@types/fs-extra": "^9.0.5", diff --git a/yarn.lock b/yarn.lock index 9ea8ce92c8ff..a63db7ab4176 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,95 +32,85 @@ "@jridgewell/resolve-uri" "1.0.0" sourcemap-codec "1.4.8" -"@angular-devkit/architect@0.1300.0-next.7": - version "0.1300.0-next.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1300.0-next.7.tgz#b5f6e845ee2b484d5b57bc36bd7b581f46b66832" - integrity sha512-IqtGVsMjcGTgPlYcrWP5PQlc9Y9ESUn0WsIpNHgKUcQa+isimCALNn4KVW8MOhGWeaRw+vrnoN6fMAUQz063xA== +"@angular-devkit/architect@0.1300.0-rc.3": + version "0.1300.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1300.0-rc.3.tgz#ab091d7af2b587b210e8a4b8d625c30330cbe35a" + integrity sha512-UXMgKMAdhckfzLoC/ZPlsvldgDk0aFUBN95RyP//WxA5+kzcci+upGYTXp+Oo72Jiflyxpm2hLRGuSqbPO3fUg== dependencies: - "@angular-devkit/core" "13.0.0-next.7" + "@angular-devkit/core" "13.0.0-rc.3" rxjs "6.6.7" -"@angular-devkit/build-angular@13.0.0-next.7": - version "13.0.0-next.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.0.0-next.7.tgz#343aeedb4d809e1a030a6f0a2581ac64a5da055f" - integrity sha512-6KsMwtg41nqUlkEKWMYGIUipB1nShtUXwcQThoU1bGXtxi/XEhzZp3BjY6MzDZLrPN7AV/WjRC2zJpP8T/2fMA== +"@angular-devkit/build-angular@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.0.0-rc.3.tgz#81ee1bafef0698d013441c1482c0c688253a2a3d" + integrity sha512-bATESoljocZUlGOjEXRVw5p8O56FsICYgZXLQdpHD/WhK0Df0Nl5G3Lv3YPXDkvIi/SK1yDqRUuF6IQXPDyAdg== dependencies: "@ampproject/remapping" "1.0.1" - "@angular-devkit/architect" "0.1300.0-next.7" - "@angular-devkit/build-webpack" "0.1300.0-next.7" - "@angular-devkit/core" "13.0.0-next.7" - "@babel/core" "7.15.5" - "@babel/generator" "7.15.4" + "@angular-devkit/architect" "0.1300.0-rc.3" + "@angular-devkit/build-webpack" "0.1300.0-rc.3" + "@angular-devkit/core" "13.0.0-rc.3" + "@babel/core" "7.15.8" + "@babel/generator" "7.15.8" "@babel/helper-annotate-as-pure" "7.15.4" - "@babel/plugin-proposal-async-generator-functions" "7.15.4" + "@babel/plugin-proposal-async-generator-functions" "7.15.8" "@babel/plugin-transform-async-to-generator" "7.14.5" - "@babel/plugin-transform-runtime" "7.15.0" - "@babel/preset-env" "7.15.6" + "@babel/plugin-transform-runtime" "7.15.8" + "@babel/preset-env" "7.15.8" "@babel/runtime" "7.15.4" "@babel/template" "7.15.4" "@discoveryjs/json-ext" "0.5.5" - "@jsdevtools/coverage-istanbul-loader" "3.0.5" - "@ngtools/webpack" "13.0.0-next.7" + "@ngtools/webpack" "13.0.0-rc.3" ansi-colors "4.1.1" - babel-loader "8.2.2" + babel-loader "8.2.3" + babel-plugin-istanbul "6.1.1" browserslist "^4.9.1" cacache "15.3.0" caniuse-lite "^1.0.30001032" circular-dependency-plugin "5.2.2" copy-webpack-plugin "9.0.1" - core-js "3.18.1" - critters "0.0.10" - css-loader "6.3.0" - esbuild-wasm "0.13.3" - find-cache-dir "3.3.2" + core-js "3.19.0" + critters "0.0.14" + css-loader "6.5.0" + esbuild-wasm "0.13.12" glob "7.2.0" https-proxy-agent "5.0.0" - inquirer "8.1.5" + inquirer "8.2.0" karma-source-map-support "1.4.0" - less "4.1.1" - less-loader "10.0.1" - license-webpack-plugin "2.3.21" - loader-utils "2.0.0" - mini-css-extract-plugin "2.3.0" + less "4.1.2" + less-loader "10.2.0" + license-webpack-plugin "3.0.0" + loader-utils "3.0.0" + mini-css-extract-plugin "2.4.3" minimatch "3.0.4" - open "8.2.1" + open "8.4.0" ora "5.4.1" parse5-html-rewriting-stream "6.0.1" piscina "3.1.0" - postcss "8.3.8" + postcss "8.3.11" postcss-import "14.0.2" - postcss-loader "6.1.1" + postcss-loader "6.2.0" postcss-preset-env "6.7.0" regenerator-runtime "0.13.9" resolve-url-loader "4.0.0" rxjs "6.6.7" - sass "1.42.1" - sass-loader "12.1.0" + sass "1.43.4" + sass-loader "12.3.0" semver "7.3.5" source-map-loader "3.0.0" source-map-support "0.5.20" stylus "0.55.0" - stylus-loader "6.1.0" + stylus-loader "6.2.0" terser "5.9.0" text-table "0.2.0" tree-kill "1.2.2" tslib "2.3.1" - webpack "5.55.1" + webpack "5.60.0" webpack-dev-middleware "5.2.1" - webpack-dev-server "4.3.0" + webpack-dev-server "4.4.0" webpack-merge "5.8.0" webpack-subresource-integrity "5.0.0" optionalDependencies: - esbuild "0.13.3" - -"@angular-devkit/build-optimizer@0.1300.0-next.7": - version "0.1300.0-next.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1300.0-next.7.tgz#f4ad41fbdb89fc6f29cb49cc7cf97ea2a05962ef" - integrity sha512-S1p9AxITIV0Op59TAe1DY/Y66bYaJXTdP9YippOfEbPA6CFw2KfabOGeDHWZf/X8jhb+6Uj2PGTiUd8C4StBrw== - dependencies: - source-map "0.7.3" - tslib "2.3.1" - typescript "4.4.3" + esbuild "0.13.12" "@angular-devkit/build-optimizer@^0.1202.0": version "0.1202.1" @@ -131,18 +121,18 @@ tslib "2.3.0" typescript "4.3.5" -"@angular-devkit/build-webpack@0.1300.0-next.7": - version "0.1300.0-next.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1300.0-next.7.tgz#a28e616385dc67b8dcf4cb016ed9f2db3288ded0" - integrity sha512-SgXjfupXcMW0PbTdMvFXrFDNDloPSZ7LAwLadJob5D1Co6Rr7Nzo9uOER31lKA5jbS52ZkhylWINTSgk6YMTJg== +"@angular-devkit/build-webpack@0.1300.0-rc.3": + version "0.1300.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1300.0-rc.3.tgz#795667967d4fccdb0d1e169ce7244c1ccaa43185" + integrity sha512-qbsQYCE55SQDOrFTwZMAFPhEM+v7etTcqhidrzi0+DJzJZEb9W9Zi98e7BeYiT40OCP8sTRg4JBL/13o3PwESQ== dependencies: - "@angular-devkit/architect" "0.1300.0-next.7" + "@angular-devkit/architect" "0.1300.0-rc.3" rxjs "6.6.7" -"@angular-devkit/core@13.0.0-next.7": - version "13.0.0-next.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.0.0-next.7.tgz#0a76419dd62827db2fe0af955348fe3f8fba8270" - integrity sha512-UQhdiE4whWiYQTSIHvRvLTAZEG1VOAPNAX4wU9vh3l1VsF9a8ilRExeo9h8pEHaSj6fXpDinM3axhE7M9FA8DQ== +"@angular-devkit/core@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.0.0-rc.3.tgz#088962130b206e4f2e4a5042a5e12cf887a01078" + integrity sha512-n0A8WAjvuImVCI+tF+y2UdHb35Kw4RCDmqNEZnojjItUbSpudRSjM4md+OjPMxXGdcie7FdqpsCUG99Ri9t0dg== dependencies: ajv "8.6.3" ajv-formats "2.1.1" @@ -151,30 +141,30 @@ rxjs "6.6.7" source-map "0.7.3" -"@angular-devkit/schematics@13.0.0-next.7": - version "13.0.0-next.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.0.0-next.7.tgz#c53dd063946add9c2bcd66e886b7865fb9a11677" - integrity sha512-OGQdXJPnmISJFP91KV/y8I5PMtpuXu+26ZLYcVsjhMHY682wqRWUqWUVZRQbeY2K3ky96w3jqQmQKAW2iuRTTA== +"@angular-devkit/schematics@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.0.0-rc.3.tgz#7798626a42ec6d166b9927e2cfb961f16633df30" + integrity sha512-RPyfSUCPn+I6/eiA4GOvNDEg9qIfe1FbrjpkwR+DeJmxPbad6zsjFR3kqMJGVpU3nBgDmGoqrpYnmxR/XiG0kA== dependencies: - "@angular-devkit/core" "13.0.0-next.7" + "@angular-devkit/core" "13.0.0-rc.3" jsonc-parser "3.0.0" magic-string "0.25.7" ora "5.4.1" rxjs "6.6.7" -"@angular/animations@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.0.0-next.15.tgz#28a716223439e136b03f1944d0c407fcf1847b4a" - integrity sha512-MZUlSyMSdW5eqpvDy5nGWg3hUQnoQwbYIqiDigFLyjaWcaQ0mkXA1M4Kidmo6D/aT0YInRBugSnGUS4RJ4la+w== +"@angular/animations@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.0.0-rc.3.tgz#d4c3484a5f1241293bb383bf6f3259c1a2beab25" + integrity sha512-LEnTekuuzowD3z3nz42lcHEG2LKh1cqPFimW/rloyFiboLB051K73439BE0xbOD16j0qdaxcIuBE99PfnuU6Xg== dependencies: tslib "^2.3.0" -"@angular/bazel@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-13.0.0-next.15.tgz#fe35f7728c71687f52e51f2d6d258bc1c8db133b" - integrity sha512-hR1X42UmM2L3FSaj0cIlLSDopkqgMvw7nAREeDSaoMr2qk3BqfvpUx4P71KXMSKSJ1h+moKyPas07mRoLBGGyw== +"@angular/bazel@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-13.0.0-rc.3.tgz#1ed23887088d9fd0dac277efa92d398436a2cf59" + integrity sha512-VcBOe6njpkJWjbl2IcA8QMO0tFlRQN+Y+nCLRRh9VxeGlsgo2kdkGCTknihdEMDJ91aGeBvUjcLLsLfj3s1LQA== dependencies: - "@microsoft/api-extractor" "7.18.11" + "@microsoft/api-extractor" "7.18.16" shelljs "0.8.4" tsickle "^0.38.0" tslib "^2.3.0" @@ -187,42 +177,42 @@ "@angular/core" "^10.0.0-0 || ^11.0.0" reflect-metadata "^0.1.13" -"@angular/cli@13.0.0-next.7": - version "13.0.0-next.7" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.0.0-next.7.tgz#01cd3d5c8ef2bf281a69b8b6820d5a08f0d55b63" - integrity sha512-pmAwmJNz2XvTCKBswwdThp2oasWbPHdGEFJnJEoOlE55fHwba155SSzKbWIOTavKmkeVLc5Z24MqUffaSa7LJA== +"@angular/cli@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.0.0-rc.3.tgz#5130b1a6b7d6d6e1e8d6f6ab064de0969f79218f" + integrity sha512-hc1WTRoYY7KMpQcKeIZWXjClRQfa/7IZITpXsWM5KvvlToWPUrGFrRII5SCNeL4Gs15wOLvxx85w1nMFot8EsA== dependencies: - "@angular-devkit/architect" "0.1300.0-next.7" - "@angular-devkit/core" "13.0.0-next.7" - "@angular-devkit/schematics" "13.0.0-next.7" - "@schematics/angular" "13.0.0-next.7" + "@angular-devkit/architect" "0.1300.0-rc.3" + "@angular-devkit/core" "13.0.0-rc.3" + "@angular-devkit/schematics" "13.0.0-rc.3" + "@schematics/angular" "13.0.0-rc.3" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.1" debug "4.3.2" ini "2.0.0" - inquirer "8.1.5" + inquirer "8.2.0" jsonc-parser "3.0.0" npm-package-arg "8.1.5" npm-pick-manifest "6.1.1" - open "8.2.1" + open "8.4.0" ora "5.4.1" - pacote "11.3.5" + pacote "12.0.2" resolve "1.20.0" semver "7.3.5" symbol-observable "4.0.0" uuid "8.3.2" -"@angular/common@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.0.0-next.15.tgz#9d55f51fbda235bea9510ca30a2f6389b22a19c2" - integrity sha512-T0LPfZ4kKbcoT0QVluyT1Jo7J5ZK3vVSKSYMEHxqE21pFqlI5MMGdqn9X+SDlIEvEikARXG4w10Q3uJuAaaS5Q== +"@angular/common@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.0.0-rc.3.tgz#eab3a8ed4b9fdf9f74dca234c7a4538c2971682e" + integrity sha512-DtFn2iJNRnMx0Imxz/gxO3n3MkjgfaefQA/oRxQZ2cLtm0dDpnNO7z1YQhbE3glq3+1pd+HudqzXEBwgxHAxOA== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.0.0-next.15.tgz#4f25b6d3feb1dbb0a6dd0f7d5445f24d20b49709" - integrity sha512-15w0fFrqFfHNbQ7nrzTB4rrObsIpmsbGAlrKoFPdWN2LbAYUEauUhRIPi1Et+4A1eh9beIUHpofwb+VRrUhuLw== +"@angular/compiler-cli@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.0.0-rc.3.tgz#738588801dfca8e1325c2594652af56e7e787893" + integrity sha512-pzPoxhxs+PYc9FyE5KFp1X6o0jj8b82Ush6SiNg/gye8MYc7CaGWZRubMBD73N3iv2rqd2R4neGbALkBM49gmA== dependencies: "@babel/core" "^7.8.6" canonical-path "1.0.0" @@ -236,10 +226,10 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.0.0-next.15.tgz#bd9eaf5edc017112cf0c43de584f4167c6a3008f" - integrity sha512-R2rKkSvONDuSW7D7WsN4nBH1fmZ9YagSiAb4F7cch5408DOMT6OlEgJDWAp69eWXiVDagd8R3e6K8j8StoZ6PQ== +"@angular/compiler@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.0.0-rc.3.tgz#d3643d8d283a6eb8444360df3d861036c5d93601" + integrity sha512-H4tvadjSd8ACtI7zBHrvjkERPoC3zJaODhZ+4tzzOVIFb23t4dn+whBkGjkxOZufwHSrALknLq2JI7lzm6w3Vg== dependencies: tslib "^2.3.0" @@ -248,10 +238,10 @@ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== -"@angular/core@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.0.0-next.15.tgz#0d6083c7154bedf9a825e6270f41b83bacb325b3" - integrity sha512-lBjH+dUWCj+Ki4najMRF4yoXq0p6MF+4hEQEwimlvUo3BFRMRTl9CMv82oSBeSYJkZlov1w5zhaA1PQO6zjyKQ== +"@angular/core@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.0.0-rc.3.tgz#253f20f99295fa1e32701f293038f5d907de3905" + integrity sha512-TDPlg9Oa3ihOiN/Zvyc02jqIKy21WdRsdno38YyqlqSna/sNGpxZ5hXNTGcJUk+oWGRAfTA6jMQnrymnUh27yQ== dependencies: tslib "^2.3.0" @@ -324,49 +314,49 @@ yaml "^1.10.0" yargs "^17.0.0" -"@angular/forms@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.0.0-next.15.tgz#2959885bfe32b146b9065ae155fd1b52c73e51bf" - integrity sha512-SvO818CJnxxiNSEGtWyJ+kpEtQoWtyIWXWHNkXUmjob6glGQatSDUlrkjx8oHNkqHnYyy7FMQXwRpzk/PWjBKw== +"@angular/forms@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.0.0-rc.3.tgz#05f952dd9bf1bd9afee98835d80c3f4f8b26a3c8" + integrity sha512-iAEAKPndPuxMOTLqU8mYmIOWAH/7OwRqGRGqk0fbnQqm35H4YBRZadZgDXYgMrs68lmASYPaaWn2+FCGgvthGw== dependencies: tslib "^2.3.0" -"@angular/localize@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-13.0.0-next.15.tgz#28cadbddaf09986441d8bda091e23486d6fa6633" - integrity sha512-FABnmk1QQ3oEdIeTF/pXaNQ6sWMo99imTBigIV8o6xrHymAy/qKMFSlbDDYFbYJTcqUFlVwt2CShHNfjXJkv5Q== +"@angular/localize@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-13.0.0-rc.3.tgz#bdc196ba614b9f787e9c401c0daf12a720960da8" + integrity sha512-Ga93BzlprQdEQM3Rl0VJF45agCyKudZYSvoEMPfyUqM0vydAWGh7jVRmYr4iuB+M4HnHr+2yCRf1OLggD7IZmw== dependencies: "@babel/core" "7.8.6" glob "7.2.0" yargs "^17.2.1" -"@angular/platform-browser-dynamic@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.0-next.15.tgz#f65308bb815a777134b5dcc89c2bb3ad09b3e563" - integrity sha512-RanfSIIQBDy4QIK4hlCdlQUPch4BGW5J7uf1sgCUdOIQFkrkteEQ6wak1Bz6DL3ZXS5rz6XDepzI7aPuKkycMQ== +"@angular/platform-browser-dynamic@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.0-rc.3.tgz#e895e083e8cfe18a0ac44625f1a2df1c9a3f1c9b" + integrity sha512-dDKCSbgIbUnneGBLTMDw1s3WRLBM2VWmSejoqpeOtgILNbpcaze5mTrMrqpmj7O7DiMP+IwsmJXI4m1ZkXPK4g== dependencies: tslib "^2.3.0" -"@angular/platform-browser@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.0.0-next.15.tgz#188c4c10f89f327fa4c759c4761246849dc5c1ea" - integrity sha512-eVReO/qM7VpOW6mT3OB7LvVK0Fyd4yRmab2IOKYbrxXSkw4gzMmCrBbZqmE5nmR0mWEFP+swejrBGcp6A9duVg== +"@angular/platform-browser@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.0.0-rc.3.tgz#82c6f2a746790a45ff33bd25699bd912cc61465a" + integrity sha512-gnzrGEiGqr623aYeNmdoyURIRZVVRmlpYsJvqkIzu6dDW/4ms4RhMwSQ3SAWJV95ZmrY9xgfpolhdHFnX2TJ1Q== dependencies: tslib "^2.3.0" -"@angular/platform-server@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-13.0.0-next.15.tgz#a734183f48856cb19c6170bf4519912d3c2c1085" - integrity sha512-5hObrIfGGVLKBENTcrhMzb7cAXsljViElvTrD6PVMeWJV15yMOUtYUVBNUF3s+T8An/hxEWFTNay2P+E+mFRAA== +"@angular/platform-server@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-13.0.0-rc.3.tgz#0bdab39a2208e092c0a917fbec69095e3db2e29a" + integrity sha512-rCC1m8kNG5Hmu+oMktgrld5gmoN99DFaRb8rQk5RztPvlwTMj6Lvw9o5ohSCD8nc3wEz55Dd76jiuF2cyZwQZw== dependencies: domino "^2.1.2" tslib "^2.3.0" xhr2 "^0.2.0" -"@angular/router@13.0.0-next.15": - version "13.0.0-next.15" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.0.0-next.15.tgz#056f4adbed9ca6ccb98d19660421eadb5f6c22a4" - integrity sha512-sYcSKnVv+/Sh9IivyUYmbPCACFVsoBLv/ZxhaRWR5dcjCunTsO65fhxtP3W75AOTkteyzVAmze3wXh3wM4TbrA== +"@angular/router@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.0.0-rc.3.tgz#1854ea0e1d5dcdfa945c1b4e6f29fa90bc6d00de" + integrity sha512-/eAARt+SlcVzQvyla0tDWdI9FrTSHcOukIi15tfRzKY50FibW6AFZrzjISZbYC7IbFcKher5wx0XqlJbjGpyUA== dependencies: tslib "^2.3.0" @@ -406,6 +396,13 @@ dependencies: "@babel/highlight" "^7.14.5" +"@babel/code-frame@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0": version "7.15.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" @@ -416,20 +413,25 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== -"@babel/core@7.15.5": - version "7.15.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9" - integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg== +"@babel/compat-data@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" + integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== + +"@babel/core@7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" + integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.4" + "@babel/code-frame" "^7.15.8" + "@babel/generator" "^7.15.8" "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.8" "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.5" + "@babel/parser" "^7.15.8" "@babel/template" "^7.15.4" "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.4" + "@babel/types" "^7.15.6" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -479,20 +481,20 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.7.5": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" - integrity sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og== - dependencies: - "@babel/code-frame" "^7.15.8" - "@babel/generator" "^7.15.8" - "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.8" - "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.8" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" +"@babel/core@^7.12.3": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" + integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-compilation-targets" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helpers" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -500,12 +502,12 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@7.15.4", "@babel/generator@^7.15.4", "@babel/generator@^7.8.6": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" - integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== +"@babel/generator@7.15.8", "@babel/generator@^7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" + integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== dependencies: - "@babel/types" "^7.15.4" + "@babel/types" "^7.15.6" jsesc "^2.5.1" source-map "^0.5.0" @@ -518,12 +520,21 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.15.8": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" - integrity sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g== +"@babel/generator@^7.15.4", "@babel/generator@^7.8.6": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" + integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== dependencies: - "@babel/types" "^7.15.6" + "@babel/types" "^7.15.4" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" + integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== + dependencies: + "@babel/types" "^7.16.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -534,6 +545,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" + integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f" @@ -562,6 +580,16 @@ browserslist "^4.16.6" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz#01d615762e796c17952c29e3ede9d6de07d235a8" + integrity sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg== + dependencies: + "@babel/compat-data" "^7.16.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e" @@ -621,6 +649,15 @@ "@babel/template" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" + integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== + dependencies: + "@babel/helper-get-function-arity" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-get-function-arity@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" @@ -635,6 +672,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-get-function-arity@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" + integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-hoist-variables@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" @@ -649,6 +693,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-hoist-variables@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" + integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-member-expression-to-functions@^7.14.5": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" @@ -663,6 +714,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-member-expression-to-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" + integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" @@ -677,6 +735,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-module-imports@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" + integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4", "@babel/helper-module-transforms@^7.15.8": version "7.15.8" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz#d8c0e75a87a52e374a8f25f855174786a09498b2" @@ -705,6 +770,20 @@ "@babel/traverse" "^7.14.8" "@babel/types" "^7.14.8" +"@babel/helper-module-transforms@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" + integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-simple-access" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-validator-identifier" "^7.15.7" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-optimise-call-expression@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" @@ -719,6 +798,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-optimise-call-expression@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" + integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" @@ -733,6 +819,15 @@ "@babel/helper-wrap-function" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-remap-async-to-generator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz#d5aa3b086e13a5fe05238ff40c3a5a0c2dab3ead" + integrity sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-replace-supers@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" @@ -753,6 +848,16 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-replace-supers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" + integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-simple-access@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" @@ -767,6 +872,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-simple-access@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" + integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb" @@ -774,6 +886,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" @@ -788,6 +907,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-split-export-declaration@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" + integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" @@ -813,6 +939,16 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helper-wrap-function@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" + integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== + dependencies: + "@babel/helper-function-name" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helpers@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" @@ -831,6 +967,15 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" +"@babel/helpers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.0.tgz#875519c979c232f41adfbd43a3b0398c2e388183" + integrity sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ== + dependencies: + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" @@ -840,6 +985,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.0.0", "@babel/parser@^7.10.5", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz#66fd41666b2d7b840bd5ace7f7416d5ac60208d4" @@ -850,7 +1004,12 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== -"@babel/parser@^7.15.5", "@babel/parser@^7.15.8": +"@babel/parser@^7.14.7", "@babel/parser@^7.16.0": + version "7.16.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" + integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== + +"@babel/parser@^7.15.8": version "7.15.8" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" integrity sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA== @@ -869,22 +1028,22 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/plugin-proposal-async-generator-functions@7.15.4": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e" - integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw== +"@babel/plugin-proposal-async-generator-functions@7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz#a3100f785fab4357987c4223ab1b02b599048403" + integrity sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-remap-async-to-generator" "^7.15.4" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.15.4": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz#a3100f785fab4357987c4223ab1b02b599048403" - integrity sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA== +"@babel/plugin-proposal-async-generator-functions@^7.15.8": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz#11425d47a60364352f668ad5fbc1d6596b2c5caf" + integrity sha512-nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.15.4" + "@babel/helper-remap-async-to-generator" "^7.16.0" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.14.5": @@ -1301,15 +1460,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-runtime@7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" - integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== +"@babel/plugin-transform-runtime@7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.8.tgz#9d15b1e94e1c7f6344f65a8d573597d93c6cd886" + integrity sha512-+6zsde91jMzzvkzuEA3k63zCw+tm/GvuuabkpisgbDMTPQsIMHllE3XczJFFtEHLjjhKQFZmGQVRdELetlWpVw== dependencies: - "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-module-imports" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.5" babel-plugin-polyfill-regenerator "^0.2.2" semver "^6.3.0" @@ -1320,13 +1479,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-spread@^7.14.6": - version "7.15.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz#79d5aa27f68d700449b2da07691dfa32d2f6d468" - integrity sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ== +"@babel/plugin-transform-spread@^7.15.8": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz#d21ca099bbd53ab307a8621e019a7bd0f40cdcfb" + integrity sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-transform-sticky-regex@^7.14.5": version "7.14.5" @@ -1364,17 +1523,17 @@ "@babel/helper-create-regexp-features-plugin" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5" -"@babel/preset-env@7.15.6": - version "7.15.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.6.tgz#0f3898db9d63d320f21b17380d8462779de57659" - integrity sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw== +"@babel/preset-env@7.15.8": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.8.tgz#f527ce5bcb121cd199f6b502bf23e420b3ff8dba" + integrity sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA== dependencies: "@babel/compat-data" "^7.15.0" "@babel/helper-compilation-targets" "^7.15.4" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-validator-option" "^7.14.5" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.15.4" - "@babel/plugin-proposal-async-generator-functions" "^7.15.4" + "@babel/plugin-proposal-async-generator-functions" "^7.15.8" "@babel/plugin-proposal-class-properties" "^7.14.5" "@babel/plugin-proposal-class-static-block" "^7.15.4" "@babel/plugin-proposal-dynamic-import" "^7.14.5" @@ -1429,7 +1588,7 @@ "@babel/plugin-transform-regenerator" "^7.14.5" "@babel/plugin-transform-reserved-words" "^7.14.5" "@babel/plugin-transform-shorthand-properties" "^7.14.5" - "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-spread" "^7.15.8" "@babel/plugin-transform-sticky-regex" "^7.14.5" "@babel/plugin-transform-template-literals" "^7.14.5" "@babel/plugin-transform-typeof-symbol" "^7.14.5" @@ -1438,7 +1597,7 @@ "@babel/preset-modules" "^0.1.4" "@babel/types" "^7.15.6" babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.5" babel-plugin-polyfill-regenerator "^0.2.2" core-js-compat "^3.16.0" semver "^6.3.0" @@ -1479,6 +1638,15 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" +"@babel/template@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" + integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.8.tgz#c0253f02677c5de1a8ff9df6b0aacbec7da1a8ce" @@ -1509,6 +1677,21 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.0.tgz#965df6c6bfc0a958c1e739284d3c9fa4a6e3c45b" + integrity sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/traverse@~7.10.3": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" @@ -1540,6 +1723,14 @@ "@babel/helper-validator-identifier" "^7.14.8" to-fast-properties "^2.0.0" +"@babel/types@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" + integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + to-fast-properties "^2.0.0" + "@babel/types@~7.10.3": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" @@ -1752,6 +1943,17 @@ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + "@istanbuljs/schema@^0.1.2": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" @@ -1762,17 +1964,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz#3fdf5798f0b49e90155896f6291df186eac06c83" integrity sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA== -"@jsdevtools/coverage-istanbul-loader@3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz#2a4bc65d0271df8d4435982db4af35d81754ee26" - integrity sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA== - dependencies: - convert-source-map "^1.7.0" - istanbul-lib-instrument "^4.0.3" - loader-utils "^2.0.0" - merge-source-map "^1.1.0" - schema-utils "^2.7.0" - "@jsdevtools/ono@^7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" @@ -2449,26 +2640,26 @@ "@microsoft/tsdoc-config" "~0.15.2" "@rushstack/node-core-library" "3.42.1" -"@microsoft/api-extractor-model@7.13.9": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.13.9.tgz#018fb37ac0147595832e13db17509f6adafbad9c" - integrity sha512-t/XKTr8MlHRWgDr1fkyCzTQRR5XICf/WzIFs8yw1JLU8Olw99M3by4/dtpOZNskfqoW+J8NwOxovduU2csi4Ww== +"@microsoft/api-extractor-model@7.13.13": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.13.13.tgz#5c1ac0fff0410b8f23478b15560b24096b8869c6" + integrity sha512-4Hz2TOL4TljsAfMQe7a8tm+Am8+AkrcgkbnH62S9YuaIC3Cw6jE4H2qP8WC2JJInWJP4pg/ZrUlHrtmtgrqn9Q== dependencies: "@microsoft/tsdoc" "0.13.2" "@microsoft/tsdoc-config" "~0.15.2" - "@rushstack/node-core-library" "3.41.0" + "@rushstack/node-core-library" "3.42.3" -"@microsoft/api-extractor@7.18.11": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.11.tgz#24910c2432362b09900b493a0713919b662cdb0f" - integrity sha512-WfN5MZry4TrF60OOcGadFDsGECF9JNKNT+8P/8crYAumAYQRitI2cUiQRlCWrgmFgCWNezsNZeI/2BggdnUqcg== +"@microsoft/api-extractor@7.18.14": + version "7.18.14" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.14.tgz#a12a8ccfdf51894768a33d5a67563bb97a769b2f" + integrity sha512-MLO3WVYkIWkMDz9LMgwIgOQEVDLOyLjngZ72HvqtALoWV/Gf3ftYtl5dIche2Q15ZKpLFF2WpNuW8pBFqt2NFg== dependencies: - "@microsoft/api-extractor-model" "7.13.9" + "@microsoft/api-extractor-model" "7.13.11" "@microsoft/tsdoc" "0.13.2" "@microsoft/tsdoc-config" "~0.15.2" - "@rushstack/node-core-library" "3.41.0" - "@rushstack/rig-package" "0.3.1" - "@rushstack/ts-command-line" "4.9.1" + "@rushstack/node-core-library" "3.42.1" + "@rushstack/rig-package" "0.3.2" + "@rushstack/ts-command-line" "4.10.1" colors "~1.2.1" lodash "~4.17.15" resolve "~1.17.0" @@ -2476,17 +2667,17 @@ source-map "~0.6.1" typescript "~4.4.2" -"@microsoft/api-extractor@7.18.14": - version "7.18.14" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.14.tgz#a12a8ccfdf51894768a33d5a67563bb97a769b2f" - integrity sha512-MLO3WVYkIWkMDz9LMgwIgOQEVDLOyLjngZ72HvqtALoWV/Gf3ftYtl5dIche2Q15ZKpLFF2WpNuW8pBFqt2NFg== +"@microsoft/api-extractor@7.18.16": + version "7.18.16" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.16.tgz#c5e077e417938da7e7026124c51d34a90868e7bd" + integrity sha512-f0EcjGgS8IToUHxfQIr4vxGpBhUdaDOhGyddZpZ5K9e/GcGkImfkGeHpYbK043f2bZV3aagTx6NcIawwE72BKA== dependencies: - "@microsoft/api-extractor-model" "7.13.11" + "@microsoft/api-extractor-model" "7.13.13" "@microsoft/tsdoc" "0.13.2" "@microsoft/tsdoc-config" "~0.15.2" - "@rushstack/node-core-library" "3.42.1" - "@rushstack/rig-package" "0.3.2" - "@rushstack/ts-command-line" "4.10.1" + "@rushstack/node-core-library" "3.42.3" + "@rushstack/rig-package" "0.3.3" + "@rushstack/ts-command-line" "4.10.2" colors "~1.2.1" lodash "~4.17.15" resolve "~1.17.0" @@ -2509,10 +2700,10 @@ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.13.2.tgz#3b0efb6d3903bd49edb073696f60e90df08efb26" integrity sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg== -"@ngtools/webpack@13.0.0-next.7": - version "13.0.0-next.7" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.0.0-next.7.tgz#260a5f1b50090bf3b6b7391b5480a9b85e771e6a" - integrity sha512-8qgeRMbLlcLpk8qZS2gUtUmPvGRBVOYWlhVc4qBRqccAoDqPgFMCldR8GQupJxeIr1wgk7vWt0g6A0oEuxSIKA== +"@ngtools/webpack@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.0.0-rc.3.tgz#3d4d0a388fe3a9c455349d4e85b7e048151b849f" + integrity sha512-GTCFi/94M1T4zrCkeMLiOlLGpQMFtYmFZfDzpboM7y1cmGM+U/laV9FrF2YRwpbhkktmZ+qoVQoa4CV6C1Vgcg== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2585,14 +2776,14 @@ dependencies: infer-owner "^1.0.4" -"@npmcli/run-script@^1.8.2": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" - integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== +"@npmcli/run-script@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-2.0.0.tgz#9949c0cab415b17aaac279646db4f027d6f1e743" + integrity sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig== dependencies: "@npmcli/node-gyp" "^1.0.2" "@npmcli/promise-spawn" "^1.3.2" - node-gyp "^7.1.0" + node-gyp "^8.2.0" read-package-json-fast "^2.0.1" "@octokit/auth-app@^3.6.0": @@ -2906,10 +3097,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rushstack/node-core-library@3.41.0": - version "3.41.0" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.41.0.tgz#36f79ecf1a3c9b417690d95bbfcdf40390bf5f51" - integrity sha512-JxdmqR+SHU04jTDaZhltMZL3/XTz2ZZM47DTN+FSPUGUVp6WmxLlvJnT5FoHrOZWUjL/FoIlZUdUPTSXjTjIcg== +"@rushstack/node-core-library@3.42.1": + version "3.42.1" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.42.1.tgz#b076cd9af03ab678df35f3172386804677991fc7" + integrity sha512-XwCM9UwvWxxA5usz5Qk/qnO5ilIJNBdGTntLbXI3bZW+LR1I9a9iG1BSJWB7dNij2eFs2I2kPm8E6ttOd8ODiw== dependencies: "@types/node" "12.20.24" colors "~1.2.1" @@ -2921,10 +3112,10 @@ timsort "~0.3.0" z-schema "~3.18.3" -"@rushstack/node-core-library@3.42.1": - version "3.42.1" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.42.1.tgz#b076cd9af03ab678df35f3172386804677991fc7" - integrity sha512-XwCM9UwvWxxA5usz5Qk/qnO5ilIJNBdGTntLbXI3bZW+LR1I9a9iG1BSJWB7dNij2eFs2I2kPm8E6ttOd8ODiw== +"@rushstack/node-core-library@3.42.3": + version "3.42.3" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.42.3.tgz#e9bc8aee4ba047d1858afcb7822b5aaf973b4fd8" + integrity sha512-xtiJsHtO4Sf/hVKyf/8d58p3zQh2JAZNs1mmDNCyIlgSRYGdqUkpadvvn5mz7EwF6lwn+xTTaTV5/a32xKjbdw== dependencies: "@types/node" "12.20.24" colors "~1.2.1" @@ -2936,14 +3127,6 @@ timsort "~0.3.0" z-schema "~3.18.3" -"@rushstack/rig-package@0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.1.tgz#b70ab9ffe3b6347eb799f5c6c5b6f5882039a60f" - integrity sha512-DXQmrPWOCNoE2zPzHCShE1y47FlgbAg48wpaY058Qo/yKDzL0GlEGf5Ra2NIt22pMcp0R/HHh+kZGbqTnF4CrA== - dependencies: - resolve "~1.17.0" - strip-json-comments "~3.1.1" - "@rushstack/rig-package@0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.2.tgz#128afc04647471b3abf341dc3d03fc1530cf37ed" @@ -2952,6 +3135,14 @@ resolve "~1.17.0" strip-json-comments "~3.1.1" +"@rushstack/rig-package@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.3.tgz#6e291d181b2b9b114dd8e806e8389d999142d137" + integrity sha512-ElPnChxIkUzcU3ywI0Cl7E1aM+2w6vFpAwM6X+oWk7Cyjf2ofItThje9e5qUBtKqvI9sc5jVsHY1bRC8rVwOqQ== + dependencies: + resolve "~1.17.0" + strip-json-comments "~3.1.1" + "@rushstack/ts-command-line@4.10.1": version "4.10.1" resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.10.1.tgz#ec2532c4d0ff9fb76f4aabdff96321d95be92324" @@ -2962,23 +3153,23 @@ colors "~1.2.1" string-argv "~0.3.1" -"@rushstack/ts-command-line@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.9.1.tgz#9fe594a408c7ef1b67f57b41ba931ecd3f420e92" - integrity sha512-zzoWB6OqVbMjnxlxbAUqbZqDWITUSHqwFCx7JbH5CVrjR9kcsB4NeWkN1I8GcR92beiOGvO3yPlB2NRo5Ugh+A== +"@rushstack/ts-command-line@4.10.2": + version "4.10.2" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.10.2.tgz#019d43d8428e243031c66aeac1f088687f6730f3" + integrity sha512-Weq8B7oJeCQ4ITsaVLhOQombipyg+idpkdkhA6UqLtKvuzq8zTtPpAfhP5ff5L+RCmo1CFCVOBE3i+MvzUR5vA== dependencies: "@types/argparse" "1.0.38" argparse "~1.0.9" colors "~1.2.1" string-argv "~0.3.1" -"@schematics/angular@13.0.0-next.7": - version "13.0.0-next.7" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.0-next.7.tgz#b8d3ee053d23d49f75db5ea375cdf82df0800695" - integrity sha512-CvpWN4h7Vo4ynu3WfxLr2Ev3ziVl/xKLmyKrUNlXKUK4yl9J2jIyYCs5oA+tXV7BT/sVIJe4+MSRKVUc+XV/+Q== +"@schematics/angular@13.0.0-rc.3": + version "13.0.0-rc.3" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.0-rc.3.tgz#2ad36fac2640c36a5dfef727650f8845f9cc7df6" + integrity sha512-KWJFdWuEG+MTG+uS9MrxwruYqwsFoo6lrz0cMmiMmwindukHsZCVD2rh36WuMt+iiE+kaHcWrbqFk/21YDEk0w== dependencies: - "@angular-devkit/core" "13.0.0-next.7" - "@angular-devkit/schematics" "13.0.0-next.7" + "@angular-devkit/core" "13.0.0-rc.3" + "@angular-devkit/schematics" "13.0.0-rc.3" jsonc-parser "3.0.0" "@sindresorhus/is@^0.14.0": @@ -3415,11 +3606,6 @@ "@types/glob" "*" "@types/node" "*" -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - "@types/stylelint@^13.13.2": version "13.13.2" resolved "https://registry.yarnpkg.com/@types/stylelint/-/stylelint-13.13.2.tgz#7a8a99bdbe19187b973a290dd3f821cfe5caff6e" @@ -3461,15 +3647,6 @@ "@types/unist" "*" "@types/vfile-message" "*" -"@types/webpack-sources@^0.1.5": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.9.tgz#da69b06eb34f6432e6658acb5a6893c55d983920" - integrity sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.6.1" - "@types/which@^1.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf" @@ -4300,10 +4477,10 @@ axobject-query@2.0.2: dependencies: ast-types-flow "0.0.7" -babel-loader@8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== +babel-loader@8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" + integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== dependencies: find-cache-dir "^3.3.1" loader-utils "^1.4.0" @@ -4317,6 +4494,17 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" +babel-plugin-istanbul@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + babel-plugin-polyfill-corejs2@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" @@ -4326,7 +4514,7 @@ babel-plugin-polyfill-corejs2@^0.2.2: "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.2.2: +babel-plugin-polyfill-corejs3@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz#2779846a16a1652244ae268b1e906ada107faf92" integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw== @@ -4449,6 +4637,11 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +big.js@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-6.1.1.tgz#63b35b19dc9775c94991ee5db7694880655d5537" + integrity sha512-1vObw81a8ylZO5ePrtMay0n018TcftpTA5HFKDaSuiUDBo8biRBtjIobw60OpwuvrGk+FsxKamqN4cnmj/eXdg== + bignumber.js@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" @@ -4588,6 +4781,11 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + boolean@^3.0.1: version "3.1.2" resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz#e30f210a26b02458482a8cc353ab06f262a780c2" @@ -5214,7 +5412,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2, chokidar@^3.4.1, chokidar@^3.5.1: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2, chokidar@^3.4.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -5925,10 +6123,10 @@ core-js-compat@^3.16.0, core-js-compat@^3.16.2: browserslist "^4.17.3" semver "7.0.0" -core-js@3.18.1: - version "3.18.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.1.tgz#289d4be2ce0085d40fc1244c0b1a54c00454622f" - integrity sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA== +core-js@3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.0.tgz#9e40098a9bc326c7e81b486abbd5e12b9d275176" + integrity sha512-L1TpFRWXZ76vH1yLM+z6KssLZrP8Z6GxxW4auoCj+XiViOzNPJCAuTIkn03BGdFe6Z5clX5t64wRIRypsZQrUg== core-js@^3.6.5: version "3.16.0" @@ -5980,15 +6178,16 @@ 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.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.10.tgz#edd0e962fc5af6c4adb6dbf1a71bae2d3f917000" - integrity sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw== +critters@0.0.14: + version "0.0.14" + resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.14.tgz#08e585ce9cb9b9a3eab88cafda7bde7f6cd0763f" + integrity sha512-YiBoGKfU8/xg+tVMw0KfMBgmr0TWa1JGmRXDzbQRQQaDarGUcZZtZEB25QyYrLasQZAnvqoZhSg2GW0zdsQkYQ== dependencies: chalk "^4.1.0" - css "^3.0.0" + css-select "^4.1.3" parse5 "^6.0.1" parse5-htmlparser2-tree-adapter "^6.0.1" + postcss "^8.3.7" pretty-bytes "^5.3.0" cross-env@^5.1.3: @@ -6047,10 +6246,10 @@ css-has-pseudo@^0.10.0: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" -css-loader@6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.3.0.tgz#334d3500ff0a0c14cfbd4b0670088dbb5b5c1530" - integrity sha512-9NGvHOR+L6ps13Ilw/b216++Q8q+5RpJcVufCdW9S/9iCzs4KBDNa8qnA/n3FK/sSfWmH35PAIK/cfPi7LOSUg== +css-loader@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.0.tgz#9d1cf7766a9a8f0b3c6e1638309b964dbdab46d3" + integrity sha512-VmuSdQa3K+wJsl39i7X3qGBM5+ZHmtTnv65fqMGI+fzmHoYmszTVvTqC1XN8JwWDViCB1a8wgNim5SV4fb37xg== dependencies: icss-utils "^5.1.0" postcss "^8.2.15" @@ -6068,6 +6267,17 @@ css-prefers-color-scheme@^3.1.1: dependencies: postcss "^7.0.5" +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + css-selector-tokenizer@^0.7.1: version "0.7.3" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" @@ -6086,6 +6296,11 @@ css-value@^0.0.1: resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea" integrity sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo= +css-what@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + css@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" @@ -6712,12 +6927,21 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: +domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== @@ -6729,6 +6953,13 @@ domhandler@^2.3.0: dependencies: domelementtype "1" +domhandler@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== + dependencies: + domelementtype "^2.2.0" + domino@^2.1.2: version "2.1.6" resolved "https://registry.yarnpkg.com/domino/-/domino-2.1.6.tgz#fe4ace4310526e5e7b9d12c7de01b7f485a57ffe" @@ -6742,6 +6973,15 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" +domutils@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" @@ -7081,92 +7321,200 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" +esbuild-android-arm64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.12.tgz#e1f199dc05405cdc6670c00fb6c793822bf8ae4c" + integrity sha512-TSVZVrb4EIXz6KaYjXfTzPyyRpXV5zgYIADXtQsIenjZ78myvDGaPi11o4ZSaHIwFHsuwkB6ne5SZRBwAQ7maw== + esbuild-android-arm64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.3.tgz#ef734c76eeff42e8c53acdffe901da090164a890" integrity sha512-jc9E8vGTHkzb0Vwl74H8liANV9BWsqtzLHaKvcsRgf1M+aVCBSF0gUheduAKfDsbDMT0judeMLhwBP34EUesTA== +esbuild-darwin-64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.12.tgz#f5c59e622955c01f050e5a7ac9c1d41db714b94d" + integrity sha512-c51C+N+UHySoV2lgfWSwwmlnLnL0JWj/LzuZt9Ltk9ub1s2Y8cr6SQV5W3mqVH1egUceew6KZ8GyI4nwu+fhsw== + esbuild-darwin-64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.3.tgz#35f29376b7451add79f0640980683ef923365385" integrity sha512-8bG3Zq+ZNuLlIJebOO2+weI7P2LVf33sOzaUfHj8MuJ+1Ixe4KtQxfYp7qhFnP6xP2ToJaYHxGUfLeiUCEz9hw== +esbuild-darwin-arm64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.12.tgz#8abae74c2956a8aa568fc52c78829338c4a4b988" + integrity sha512-JvAMtshP45Hd8A8wOzjkY1xAnTKTYuP/QUaKp5eUQGX+76GIie3fCdUUr2ZEKdvpSImNqxiZSIMziEiGB5oUmQ== + esbuild-darwin-arm64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.3.tgz#530a1326e7d18d62c9a54b6dce70f2b77ed50eec" integrity sha512-5E81eImYtTgh8pY7Gq4WQHhWkR/LvYadUXmuYeZBiP+3ADZJZcG60UFceZrjqNPaFOWKr/xmh4aNocwagEubcA== +esbuild-freebsd-64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.12.tgz#6ad2ab8c0364ee7dd2d6e324d876a8e60ae75d12" + integrity sha512-r6On/Skv9f0ZjTu6PW5o7pdXr8aOgtFOEURJZYf1XAJs0IQ+gW+o1DzXjVkIoT+n1cm3N/t1KRJfX71MPg/ZUA== + esbuild-freebsd-64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.3.tgz#ce2896ac362e06eb82ca5dec06b2568901eb5afc" integrity sha512-ou+f91KkTGexi8HvF/BdtsITL6plbciQfZGys7QX6/QEwyE96PmL5KnU6ZQwoU7E99Ts6Sc9bUDq8HXJubKtBA== +esbuild-freebsd-arm64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.12.tgz#6f38155f4c300ac4c8adde1fde3cc6a4440a8294" + integrity sha512-F6LmI2Q1gii073kmBE3NOTt/6zLL5zvZsxNLF8PMAwdHc+iBhD1vzfI8uQZMJA1IgXa3ocr3L3DJH9fLGXy6Yw== + esbuild-freebsd-arm64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.3.tgz#a20454f99e060bea4e465d131556a9f0533f403f" integrity sha512-F1zV7nySjHswJuvIgjkiG5liZ63MeazDGXGKViTCeegjZ71sAhOChcaGhKcu6vq9+vqZxlfEi1fmXlx6Pc3coQ== +esbuild-linux-32@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.12.tgz#b1d15e330188a8c21de75c3f0058628a3eefade7" + integrity sha512-U1UZwG3UIwF7/V4tCVAo/nkBV9ag5KJiJTt+gaCmLVWH3bPLX7y+fNlhIWZy8raTMnXhMKfaTvWZ9TtmXzvkuQ== + esbuild-linux-32@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.3.tgz#ad56f18208ecf007cd9ab16cd39626ca0312b8ee" integrity sha512-mHHc2v6uLrHH4zaaq5RB/5IWzgimEJ1HGldzf1qtGI513KZWfH0HRRQ8p1di4notJgBn7tDzWQ1f34ZHy69viQ== +esbuild-linux-64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.12.tgz#25bd64b66162b02348e32d8f12e4c9ee61f1d070" + integrity sha512-YpXSwtu2NxN3N4ifJxEdsgd6Q5d8LYqskrAwjmoCT6yQnEHJSF5uWcxv783HWN7lnGpJi9KUtDvYsnMdyGw71Q== + esbuild-linux-64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.3.tgz#be1eabadf68d153897ed887678f7496d3949810f" integrity sha512-FJ1De2O89mrOuqtaEXu41qIYJU6R41F+OA6vheNwcAQcX8fu0aiA13FJeLABq29BYJuTVgRj3cyC8q+tz19/dQ== +esbuild-linux-arm64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.12.tgz#ba582298457cc5c9ac823a275de117620c06537f" + integrity sha512-sgDNb8kb3BVodtAlcFGgwk+43KFCYjnFOaOfJibXnnIojNWuJHpL6aQJ4mumzNWw8Rt1xEtDQyuGK9f+Y24jGA== + esbuild-linux-arm64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.3.tgz#329348bb4a19cfb5e9046cc5d97ba5017d8f74ad" integrity sha512-Cauhr45KSo+wRUojs+1qfycQqQCAXTOvsWvkZ6xmEMAXLAm+f8RQGDQeP8CAf8Yeelnegcn6UNdvzdzLHhWDFg== +esbuild-linux-arm@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.12.tgz#6bc81c957bff22725688cc6359c29a25765be09b" + integrity sha512-SyiT/JKxU6J+DY2qUiSLZJqCAftIt3uoGejZ0HDnUM2MGJqEGSGh7p1ecVL2gna3PxS4P+j6WAehCwgkBPXNIw== + esbuild-linux-arm@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.3.tgz#b3b3167c9d5d3038894fbc75b194a4fbe93eaf09" integrity sha512-9BJNRtLwBh3OP22cln9g3AJdbAQUcjRHqA4BScx9k4RZpGqPokFr548zpeplxWhcwrIjT8qPebwH9CrRVy8Bsw== +esbuild-linux-mips64le@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.12.tgz#ef3c4aba3e585d847cbade5945a8b4a5c62c7ce2" + integrity sha512-qQJHlZBG+QwVIA8AbTEtbvF084QgDi4DaUsUnA+EolY1bxrG+UyOuGflM2ZritGhfS/k7THFjJbjH2wIeoKA2g== + esbuild-linux-mips64le@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.3.tgz#ea1687f28ea2c85399ecc2fe23a48ab343b7b35d" integrity sha512-YVzJUGCncuuLm2boYyVeuMFsak4ZAhdiBwi0xNDZCC8sy+tS6Boe2mzcrD2uubv5JKAUOrpN186S1DtU4WgBgw== +esbuild-linux-ppc64le@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.12.tgz#a21fb64e80c38bef06122e48283990fc6db578e1" + integrity sha512-2dSnm1ldL7Lppwlo04CGQUpwNn5hGqXI38OzaoPOkRsBRWFBozyGxTFSee/zHFS+Pdh3b28JJbRK3owrrRgWNw== + esbuild-linux-ppc64le@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.3.tgz#a462cf42eae3d7fc29a9f277679f5adee70afa67" integrity sha512-GU6CqqKtJEoyxC2QWHiJtmuOz9wc/jMv8ZloK2WwiGY5yMvAmM3PI103Dj7xcjebNTHBqITTUw/aigY1wx5A3w== +esbuild-netbsd-64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.12.tgz#1ea7fc8cfce88a20a4047b867ef184049a6641ae" + integrity sha512-D4raxr02dcRiQNbxOLzpqBzcJNFAdsDNxjUbKkDMZBkL54Z0vZh4LRndycdZAMcIdizC/l/Yp/ZsBdAFxc5nbA== + +esbuild-openbsd-64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.12.tgz#adde32f2f1b05dc4bd4fc544d6ea5a4379f9ca4d" + integrity sha512-KuLCmYMb2kh05QuPJ+va60bKIH5wHL8ypDkmpy47lzwmdxNsuySeCMHuTv5o2Af1RUn5KLO5ZxaZeq4GEY7DaQ== + esbuild-openbsd-64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.3.tgz#0cb15bd86d20eb19cb548b530f1a533197532cf9" integrity sha512-HVpkgpn4BQt4BPDAjTOpeMub6mzNWw6Y3gaLQJrpbO24pws6ZwYkY24OI3/Uo3LDCbH6856MM81JxECt92OWjA== +esbuild-sunos-64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.12.tgz#a7ecaf52b7364fbee76dc8aa707fa3e1cff3342c" + integrity sha512-jBsF+e0woK3miKI8ufGWKG3o3rY9DpHvCVRn5eburMIIE+2c+y3IZ1srsthKyKI6kkXLvV4Cf/E7w56kLipMXw== + esbuild-sunos-64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.3.tgz#53a941241f881010969cc8f1acb1ada49c4cd3c2" integrity sha512-XncBVOtnEfUbPV4CaiFBxh38ychnBfwCxuTm9iAqcHzIwkmeNRN5qMzDyfE1jyfJje+Bbt6AvIfz6SdYt8/UEQ== -esbuild-wasm@0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.13.3.tgz#241b261b5cc0d0bf18e205b7d625675f31be78d8" - integrity sha512-kkTvRzVeE8U2oewyeEyrMJAv53zsYLNF4xLsXWZt8yvV9+HEM0TlaLAszvRBdHpqoxDSliLJIvU1TatQn33gXQ== +esbuild-wasm@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.13.12.tgz#1f78316c12e66ca7dffded832d5a9630b34b7657" + integrity sha512-eGdiSewbnJffEvyA0qQmr+w3HurBMVp4QhOfICzeeoL9naC8qC3PFaw6hZaqSgks5DXnQONtUGUFLsX3eXpq8A== + +esbuild-windows-32@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.12.tgz#a8756033dc905c4b7bea19be69f7ee68809f8770" + integrity sha512-L9m4lLFQrFeR7F+eLZXG82SbXZfUhyfu6CexZEil6vm+lc7GDCE0Q8DiNutkpzjv1+RAbIGVva9muItQ7HVTkQ== esbuild-windows-32@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.3.tgz#265dc0d0cdb5374685a851c584857055e12865a4" integrity sha512-ZlgDz7d1nk8wQACi+z8IDzNZVUlN9iprAme+1YSTsfFDlkyI8jeaGWPk9EQFNY7rJzsLVYm6eZ2mhPioc7uT5A== +esbuild-windows-64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.12.tgz#ae694aa66ca078acb8509b2da31197ed1f40f798" + integrity sha512-k4tX4uJlSbSkfs78W5d9+I9gpd+7N95W7H2bgOMFPsYREVJs31+Q2gLLHlsnlY95zBoPQMIzHooUIsixQIBjaQ== + esbuild-windows-64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.3.tgz#ae710c0629ec8c39c5ef1f69e86ed5592bb4128f" integrity sha512-YX7KvRez3TR+GudlQm9tND/ssj2FsF9vb8ZWzAoZOLxpPzE3y+3SFJNrfDzzQKPzJ0Pnh9KBP4gsaMwJjKHDhw== +esbuild-windows-arm64@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.12.tgz#782c5a8bd6d717ea55aaafe648f9926ca36a4a88" + integrity sha512-2tTv/BpYRIvuwHpp2M960nG7uvL+d78LFW/ikPItO+2GfK51CswIKSetSpDii+cjz8e9iSPgs+BU4o8nWICBwQ== + esbuild-windows-arm64@0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.3.tgz#a236199a26b1205573dcb571f966189326a4c953" integrity sha512-nP7H0Y2a6OJd3Qi1Q8sehhyP4x4JoXK4S5y6FzH2vgaJgiyEurzFxjUufGdMaw+RxtxiwD/uRndUgwaZ2JD8lg== -esbuild@0.13.3, esbuild@^0.13.3: +esbuild@0.13.12: + version "0.13.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.12.tgz#9cac641594bf03cf34145258c093d743ebbde7ca" + integrity sha512-vTKKUt+yoz61U/BbrnmlG9XIjwpdIxmHB8DlPR0AAW6OdS+nBQBci6LUHU2q9WbBobMEIQxxDpKbkmOGYvxsow== + optionalDependencies: + esbuild-android-arm64 "0.13.12" + esbuild-darwin-64 "0.13.12" + esbuild-darwin-arm64 "0.13.12" + esbuild-freebsd-64 "0.13.12" + esbuild-freebsd-arm64 "0.13.12" + esbuild-linux-32 "0.13.12" + esbuild-linux-64 "0.13.12" + esbuild-linux-arm "0.13.12" + esbuild-linux-arm64 "0.13.12" + esbuild-linux-mips64le "0.13.12" + esbuild-linux-ppc64le "0.13.12" + esbuild-netbsd-64 "0.13.12" + esbuild-openbsd-64 "0.13.12" + esbuild-sunos-64 "0.13.12" + esbuild-windows-32 "0.13.12" + esbuild-windows-64 "0.13.12" + esbuild-windows-arm64 "0.13.12" + +esbuild@^0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.3.tgz#cc9fc347fc81ff6440cdd1fdb9fe65c02eddcc97" integrity sha512-98xovMLKnyhv3gcReUuAEi5Ig1rK6SIgvsJuBIcfwzqGSEHsV8UJjMlmkhHoHMf9XZybMpE9Zax8AA8f7i2hlQ== @@ -7621,7 +7969,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.1.1, fast-glob@^3.2.5: +fast-glob@^3.1.1, fast-glob@^3.2.5, fast-glob@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== @@ -7839,7 +8187,7 @@ finalhandler@1.1.2, finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@3.3.2, find-cache-dir@^3.3.1: +find-cache-dir@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== @@ -8240,6 +8588,11 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-pkg-repo@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.1.2.tgz#c4ffd60015cf091be666a0212753fc158f01a4c0" @@ -8646,11 +8999,6 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -graceful-fs@^4.2.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - grapheme-splitter@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -9124,10 +9472,10 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore-walk@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== +ignore-walk@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" + integrity sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== dependencies: minimatch "^3.0.4" @@ -9232,10 +9580,10 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inquirer@8.1.5: - version "8.1.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.1.5.tgz#2dc5159203c826d654915b5fe6990fd17f54a150" - integrity sha512-G6/9xUqmt/r+UvufSyrPpt84NYwhKZ9jLsgMbQzlx804XErNupor8WQdBnBRrXmBfTPpuwf1sV+ss2ovjgdXIg== +inquirer@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.0.tgz#f44f008dd344bbfc4b30031f45d984e034a3ac3a" + integrity sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.1" @@ -9855,14 +10203,20 @@ istanbul-lib-coverage@^3.0.0: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== +istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4: + version "5.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== dependencies: - "@babel/core" "^7.7.5" + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" + istanbul-lib-coverage "^3.2.0" semver "^6.3.0" istanbul-lib-report@^3.0.0: @@ -10379,21 +10733,21 @@ lazystream@^1.0.0: dependencies: readable-stream "^2.0.5" -less-loader@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-10.0.1.tgz#c05aaba68d00400820275f21c2ad87cb9fa9923f" - integrity sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA== +less-loader@10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-10.2.0.tgz#97286d8797dc3dc05b1d16b0ecec5f968bdd4e32" + integrity sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg== dependencies: klona "^2.0.4" -less@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/less/-/less-4.1.1.tgz#15bf253a9939791dc690888c3ff424f3e6c7edba" - integrity sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw== +less@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/less/-/less-4.1.2.tgz#6099ee584999750c2624b65f80145f8674e4b4b0" + integrity sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA== dependencies: copy-anything "^2.0.1" parse-node-version "^1.0.1" - tslib "^1.10.0" + tslib "^2.3.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" @@ -10416,13 +10770,10 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -license-webpack-plugin@2.3.21: - version "2.3.21" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.21.tgz#152f5e82d5f51f8bab78905731f2b8042aa5691b" - integrity sha512-rVaYU9TddZN3ao8M/0PrRSCdTp2EW6VQymlgsuScld1vef0Ou7fALx3ePe83KLP3xAEDcPK5fkqUVqGBnbz1zQ== - dependencies: - "@types/webpack-sources" "^0.1.5" - webpack-sources "^1.2.0" +license-webpack-plugin@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-3.0.0.tgz#530fb297cee402cdf19a80f59e1c1ec1720dbc7e" + integrity sha512-Owp0mXaJu/09h9hvZTazMni/Ni7bjh4R4xIfLhWP1O2wrhhKtezAA8U42TTeNDpyDMUD2ljeGC8Jh9xSFnyq4Q== lie@~3.3.0: version "3.3.0" @@ -10469,14 +10820,12 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@2.0.0, loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== +loader-utils@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.0.0.tgz#dfcd9d1101bc4512d4956e1d5d67577c647b47fe" + integrity sha512-ry4RE7qen73BFLgihlbyllGIW9SVWLUD5Cq9VWtzrqhntOMOJl8yEjA89d5mCUTT0puCnHo4EecO6bz+BOAS8w== dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" + big.js "^6.1.1" loader-utils@^1.4.0: version "1.4.0" @@ -10487,6 +10836,15 @@ loader-utils@^1.4.0: emojis-list "^3.0.0" json5 "^1.0.1" +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + localtunnel@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.1.tgz#8f7c593f3005647f7675e6e69af9bf746571a631" @@ -10907,7 +11265,7 @@ make-fetch-happen@^8.0.14: socks-proxy-agent "^5.0.0" ssri "^8.0.0" -make-fetch-happen@^9.0.1: +make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== @@ -11160,13 +11518,6 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -11281,10 +11632,10 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.3.0.tgz#87515f185533752944d753ac7216fc876779dafe" - integrity sha512-uzWaOwC+gJrnKbr23J1ZRWx/Wd9W9Ce1mKPlsBGBV/r8zG7/G7oKMxGmxbI65pVGbae2cR7CUx9Ulk0HQt8BfQ== +mini-css-extract-plugin@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.3.tgz#be742943c192b028645d4389084ef187615fff82" + integrity sha512-zekavl9mZuGyk7COjsfFY/f655AX61EKE0AthXPrmDk+oZyjZ9WzO4WPjXnnO9xl8obK2kmM6rAQrBEmk+WK1g== dependencies: schema-utils "^3.1.0" @@ -11536,21 +11887,21 @@ nan@^2.12.1, nan@^2.14.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanocolors@^0.2.2: - version "0.2.13" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.13.tgz#dfd1ed0bfab05e9fe540eb6874525f0a1684099b" - integrity sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA== - nanoid@^3.1.23: version "3.1.23" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== -nanoid@^3.1.25, nanoid@^3.1.28: +nanoid@^3.1.28: version "3.1.29" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.29.tgz#214fb2d7a33e1a5bef4757b779dfaeb6a4e5aeb4" integrity sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg== +nanoid@^3.1.30: + version "3.1.30" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" + integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -11677,36 +12028,36 @@ node-gyp-build@^4.2.2: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== -node-gyp@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" - integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== +node-gyp@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.1.0.tgz#81f43283e922d285c886fb0e0f520a7fd431d8c2" + integrity sha512-o2elh1qt7YUp3lkMwY3/l4KF3j/A3fI/Qt4NH+CQQgPJdqGE9y7qnP84cjIWN27Q0jJkrSAhCVDg+wBVNBYdBg== dependencies: env-paths "^2.2.0" glob "^7.1.4" - graceful-fs "^4.2.3" + graceful-fs "^4.2.6" + make-fetch-happen "^8.0.14" nopt "^5.0.0" npmlog "^4.1.2" - request "^2.88.2" rimraf "^3.0.2" - semver "^7.3.2" - tar "^6.0.2" + semver "^7.3.5" + tar "^6.1.0" which "^2.0.2" -node-gyp@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.1.0.tgz#81f43283e922d285c886fb0e0f520a7fd431d8c2" - integrity sha512-o2elh1qt7YUp3lkMwY3/l4KF3j/A3fI/Qt4NH+CQQgPJdqGE9y7qnP84cjIWN27Q0jJkrSAhCVDg+wBVNBYdBg== +node-gyp@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.3.0.tgz#ebc36a146d45095e1c6af6ccb0e47d1c8fc3fe69" + integrity sha512-e+vmKyTiybKgrmvs4M2REFKCnOd+NcrAAnn99Yko6NQA+zZdMlRvbIUHojfsHrSQ1CddLgZnHicnEVgDHziJzA== dependencies: env-paths "^2.2.0" glob "^7.1.4" graceful-fs "^4.2.6" - make-fetch-happen "^8.0.14" + make-fetch-happen "^9.1.0" nopt "^5.0.0" npmlog "^4.1.2" rimraf "^3.0.2" semver "^7.3.5" - tar "^6.1.0" + tar "^6.1.2" which "^2.0.2" node-releases@^1.1.71: @@ -11837,13 +12188,13 @@ npm-package-arg@8.1.5, npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-packa semver "^7.3.4" validate-npm-package-name "^3.0.0" -npm-packlist@^2.1.4: - version "2.2.2" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" - integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== +npm-packlist@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" + integrity sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== dependencies: glob "^7.1.6" - ignore-walk "^3.0.3" + ignore-walk "^4.0.1" npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" @@ -11893,6 +12244,13 @@ npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" +nth-check@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -12033,10 +12391,10 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@8.2.1: - version "8.2.1" - resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" - integrity sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ== +open@8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" @@ -12295,15 +12653,15 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -pacote@11.3.5: - version "11.3.5" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" - integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== +pacote@12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-12.0.2.tgz#14ae30a81fe62ec4fc18c071150e6763e932527c" + integrity sha512-Ar3mhjcxhMzk+OVZ8pbnXdb0l8+pimvlsqBGRNkble2NVgyqOGE3yrCGi/lAYq7E7NRDMz89R1Wx5HIMCGgeYg== dependencies: "@npmcli/git" "^2.1.0" "@npmcli/installed-package-contents" "^1.0.6" "@npmcli/promise-spawn" "^1.2.0" - "@npmcli/run-script" "^1.8.2" + "@npmcli/run-script" "^2.0.0" cacache "^15.0.5" chownr "^2.0.0" fs-minipass "^2.1.0" @@ -12311,7 +12669,7 @@ pacote@11.3.5: minipass "^3.1.3" mkdirp "^1.0.3" npm-package-arg "^8.0.1" - npm-packlist "^2.1.4" + npm-packlist "^3.0.0" npm-pick-manifest "^6.0.0" npm-registry-fetch "^11.0.0" promise-retry "^2.0.1" @@ -12570,6 +12928,11 @@ picocolors@^0.2.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" @@ -12819,10 +13182,10 @@ postcss-less@^3.1.4: dependencies: postcss "^7.0.14" -postcss-loader@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.1.1.tgz#58dd0a3accd9bc87cc52eff75244db578d11301a" - integrity sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug== +postcss-loader@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.0.tgz#714370a3f567141cf4cadcdf9575f5234d186bc5" + integrity sha512-H9hv447QjQJVDbHj3OUdciyAXY3v5+UDduzEytAlZCVHCpNAAg/mCSwhYYqZr9BiGYhmYspU8QXxZwiHTLn3yA== dependencies: cosmiconfig "^7.0.0" klona "^2.0.4" @@ -13050,13 +13413,13 @@ postcss@7.x.x, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26 source-map "^0.6.1" supports-color "^6.1.0" -postcss@8.3.8: - version "8.3.8" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.8.tgz#9ebe2a127396b4b4570ae9f7770e7fb83db2bac1" - integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== +postcss@8.3.11, postcss@^8.3.7: + version "8.3.11" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" + integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== dependencies: - nanocolors "^0.2.2" - nanoid "^3.1.25" + nanoid "^3.1.30" + picocolors "^1.0.0" source-map-js "^0.6.2" postcss@^7.0.17, postcss@^7.0.5: @@ -14099,7 +14462,7 @@ rxjs-tslint-rules@^4.33.1: tsutils "^3.0.0" tsutils-etc "^1.2.2" -rxjs@6.6.7, rxjs@^6.4.0, rxjs@^6.5.3: +rxjs@6.6.7, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.6.7: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -14142,10 +14505,10 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.1.0.tgz#b73324622231009da6fba61ab76013256380d201" - integrity sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg== +sass-loader@12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.3.0.tgz#93278981c189c36a58cbfc37d4b9cef0cdc02871" + integrity sha512-6l9qwhdOb7qSrtOu96QQ81LVl8v6Dp9j1w3akOm0aWHyrTYtagDt5+kS32N4yq4hHk3M+rdqoRMH+lIdqvW6HA== dependencies: klona "^2.0.4" neo-async "^2.6.2" @@ -14157,10 +14520,10 @@ sass-lookup@^3.0.0: dependencies: commander "^2.16.0" -sass@1.42.1: - version "1.42.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.42.1.tgz#5ab17bebc1cb1881ad2e0c9a932c66ad64e441e2" - integrity sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg== +sass@1.43.4: + version "1.43.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.4.tgz#68c7d6a1b004bef49af0d9caf750e9b252105d1f" + integrity sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -14196,7 +14559,7 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -schema-utils@^2.6.5, schema-utils@^2.7.0: +schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -14728,11 +15091,6 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" @@ -15240,12 +15598,12 @@ stylelint@^13.13.1: v8-compile-cache "^2.3.0" write-file-atomic "^3.0.3" -stylus-loader@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-6.1.0.tgz#7a3a719a27cb2b9617896d6da28fda94c3ed9762" - integrity sha512-qKO34QCsOtSJrXxQQmXsPeaVHh6hMumBAFIoJTcsSr2VzrA6o/CW9HCGR8spCjzJhN8oKQHdj/Ytx0wwXyElkw== +stylus-loader@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-6.2.0.tgz#0ba499e744e7fb9d9b3977784c8639728a7ced8c" + integrity sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg== dependencies: - fast-glob "^3.2.5" + fast-glob "^3.2.7" klona "^2.0.4" normalize-path "^3.0.0" @@ -15462,6 +15820,18 @@ tar@^6.0.2, tar@^6.1.0: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.1.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + tcp-port-used@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.2.tgz#9652b7436eb1f4cfae111c79b558a25769f6faea" @@ -15930,16 +16300,16 @@ typescript@4.4.2, typescript@^3.2.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== -typescript@4.4.3, typescript@~4.4.0, typescript@~4.4.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" - integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== - typescript@^3.9.5, typescript@^3.9.7: version "3.9.10" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== +typescript@~4.4.0, typescript@~4.4.2: + version "4.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" + integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== + ua-parser-js@^0.7.18, ua-parser-js@^0.7.21: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" @@ -16512,14 +16882,14 @@ webpack-dev-middleware@5.2.1, webpack-dev-middleware@^5.2.1: range-parser "^1.2.1" schema-utils "^3.1.0" -webpack-dev-server@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.3.0.tgz#732f5869d4c06e222b599daee64bc268f5edea24" - integrity sha512-kuqP9Xn4OzcKe7f0rJwd4p8xqiD+4b5Lzu8tJa8OttRL3E1Q8gI2KmUtouJTgDswjjvHOHlZDV8LTQfSY5qZSA== +webpack-dev-server@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.4.0.tgz#10ec17088f840c9ccb2ebb0b43c49ec293206f7e" + integrity sha512-+S0XRIbsopVjPFjCO8I07FXYBWYqkFmuP56ucGMTs2hA/gV4q2M9xTmNo5Tg4o8ffRR+Nm3AsXnQXxKRyYovrA== dependencies: ansi-html-community "^0.0.8" bonjour "^3.5.0" - chokidar "^3.5.1" + chokidar "^3.5.2" colorette "^2.0.10" compression "^1.7.4" connect-history-api-fallback "^1.6.0" @@ -16551,14 +16921,6 @@ webpack-merge@5.8.0: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^1.2.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - webpack-sources@^3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" @@ -16571,10 +16933,10 @@ webpack-subresource-integrity@5.0.0: dependencies: typed-assert "^1.0.8" -webpack@5.55.1: - version "5.55.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.55.1.tgz#426ebe54c15fa57f7b242590f65fd182382b5998" - integrity sha512-EYp9lwaOOAs+AA/KviNZ7bQiITHm4bXQvyTPewD2+f5YGjv6sfiClm40yeX5FgBMxh5bxcB6LryiFoP09B97Ug== +webpack@5.60.0: + version "5.60.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.60.0.tgz#9c26f38a57c9688b0a8c5c885e05197344eae67d" + integrity sha512-OL5GDYi2dKxnwJPSOg2tODgzDxAffN0osgWkZaBo/l3ikCxDFP+tuJT3uF7GyBE3SDBpKML/+a8EobyWAQO3DQ== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" From 4579377297db4dbd0dcc4148af07c20a35b48422 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 2 Nov 2021 21:47:10 +0200 Subject: [PATCH 013/358] build: fix error when dev app is deployed (#23864) The `index.html` of the dev app assumes that the `DEV_APP_VARIABLES` global variable will always be present, but that's not the case when it is deployed. This causes an error which prevents the Google Maps script from loading. These changes add a null check, as well as some docs about the `variables.json`. --- DEV_ENVIRONMENT.md | 12 ++++++++---- src/dev-app/index.html | 5 +++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/DEV_ENVIRONMENT.md b/DEV_ENVIRONMENT.md index e24b2e2ac045..2b5024063fe2 100644 --- a/DEV_ENVIRONMENT.md +++ b/DEV_ENVIRONMENT.md @@ -1,5 +1,4 @@ # Developer guide: getting your environment set up - 1. Make sure you have both `node` and `yarn` installed. We recommend using `nvm` to manage your node versions. 2. angular/components uses Bazel which requires certain Bash and UNIX tools. @@ -19,7 +18,6 @@ To bring up a local server, run `yarn dev-app`. This will automatically watch fo and rebuild. The browser should refresh automatically when changes are made. ### Running tests - To run unit tests, run `yarn test `. The `target` can be either a short name (e.g. `yarn test button`) or an explicit path `yarn test src/cdk/stepper`. To run the e2e tests, run `yarn e2e`. To run lint, run `yarn lint`. @@ -67,7 +65,6 @@ at the file under `tools/public_api_guard/.d.ts`. ### Disabling Git hooks - If your development workflow does not intend the commit message validation to run automatically when commits are being created, or if you do not want to run the formatter upon `git commit`, you can disable any installed Git hooks by setting `HUSKY=0` in your shell environment. e.g. @@ -78,4 +75,11 @@ export HUSKY=0 # .bashrc export HUSKY=0 -``` \ No newline at end of file +``` + +### Injecting variables into the dev app +Variables can be injected into the dev app by creating the `src/dev-app/variables.json` file. +They'll be made available under the `window.DEV_APP_VARIABLES` object. The file isn't checked into +Git and it can be used to pass private configuration like API keys. Variables currently being used: + +* `GOOGLE_MAPS_KEY` - Optional key for the Google Maps API. diff --git a/src/dev-app/index.html b/src/dev-app/index.html index 7c4b4f43a484..28a6a610043a 100644 --- a/src/dev-app/index.html +++ b/src/dev-app/index.html @@ -23,12 +23,13 @@ From 88b718e8d947def1dc8c03050a4fb12fbe1e4ace Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Tue, 2 Nov 2021 20:53:25 +0100 Subject: [PATCH 014/358] build: remove init test environment calls from harness examples (#23853) Removes the init test environment calls from the harness examples. This is meant to make the examples a little more readable, and easier to integrate within CLI projects (especially when are starting to use a plain CLI project as foundation for our StackBlitz examples). The CLI sets up the test environment in a global test init file, so we should make this assumption in our examples as well. This also helps with reducing duplication in our code base. --- .../material-experimental/mdc-table/BUILD.bazel | 1 - .../table-harness/table-harness-example.spec.ts | 10 +--------- .../material/autocomplete/BUILD.bazel | 1 - .../autocomplete-harness-example.spec.ts | 10 +--------- src/components-examples/material/badge/BUILD.bazel | 1 - .../badge-harness/badge-harness-example.spec.ts | 10 +--------- .../material/bottom-sheet/BUILD.bazel | 1 - .../bottom-sheet-harness-example.spec.ts | 10 +--------- .../material/button-toggle/BUILD.bazel | 1 - .../button-toggle-harness-example.spec.ts | 10 +--------- src/components-examples/material/button/BUILD.bazel | 1 - .../button-harness/button-harness-example.spec.ts | 10 +--------- src/components-examples/material/card/BUILD.bazel | 1 - .../card/card-harness/card-harness-example.spec.ts | 10 ++-------- .../material/checkbox/BUILD.bazel | 1 - .../checkbox-harness-example.spec.ts | 10 +--------- src/components-examples/material/chips/BUILD.bazel | 1 - .../chips-harness/chips-harness-example.spec.ts | 10 +--------- .../material/datepicker/BUILD.bazel | 1 - .../datepicker-harness-example.spec.ts | 10 +--------- src/components-examples/material/dialog/BUILD.bazel | 1 - .../dialog-harness/dialog-harness-example.spec.ts | 10 +--------- src/components-examples/material/divider/BUILD.bazel | 1 - .../divider-harness/divider-harness-example.spec.ts | 10 +--------- .../material/expansion/BUILD.bazel | 1 - .../expansion-harness-example.spec.ts | 12 ++---------- .../material/form-field/BUILD.bazel | 1 - .../form-field-harness-example.spec.ts | 10 +--------- .../material/grid-list/BUILD.bazel | 1 - .../grid-list-harness-example.spec.ts | 10 +--------- src/components-examples/material/icon/BUILD.bazel | 1 - .../icon/icon-harness/icon-harness-example.spec.ts | 10 +--------- src/components-examples/material/input/BUILD.bazel | 1 - .../input-harness/input-harness-example.spec.ts | 10 +--------- src/components-examples/material/list/BUILD.bazel | 1 - .../list/list-harness/list-harness-example.spec.ts | 10 +--------- src/components-examples/material/menu/BUILD.bazel | 1 - .../menu/menu-harness/menu-harness-example.spec.ts | 10 +--------- .../material/paginator/BUILD.bazel | 1 - .../paginator-harness-example.spec.ts | 10 +--------- .../material/progress-bar/BUILD.bazel | 1 - .../progress-bar-harness-example.spec.ts | 10 +--------- .../material/progress-spinner/BUILD.bazel | 1 - .../progress-spinner-harness-example.spec.ts | 10 +--------- src/components-examples/material/radio/BUILD.bazel | 1 - .../radio-harness/radio-harness-example.spec.ts | 10 +--------- src/components-examples/material/select/BUILD.bazel | 1 - .../select-harness/select-harness-example.spec.ts | 10 +--------- src/components-examples/material/sidenav/BUILD.bazel | 1 - .../sidenav-harness/sidenav-harness-example.spec.ts | 12 ++---------- .../material/slide-toggle/BUILD.bazel | 1 - .../slide-toggle-harness-example.spec.ts | 10 +--------- src/components-examples/material/slider/BUILD.bazel | 1 - .../slider-harness/slider-harness-example.spec.ts | 10 +--------- .../material/snack-bar/BUILD.bazel | 1 - .../snack-bar-harness-example.spec.ts | 10 +--------- src/components-examples/material/sort/BUILD.bazel | 1 - .../sort/sort-harness/sort-harness-example.spec.ts | 10 +--------- src/components-examples/material/stepper/BUILD.bazel | 1 - .../stepper-harness/stepper-harness-example.spec.ts | 10 +--------- src/components-examples/material/table/BUILD.bazel | 1 - .../table-harness/table-harness-example.spec.ts | 10 +--------- src/components-examples/material/tabs/BUILD.bazel | 1 - .../tab-group-harness-example.spec.ts | 10 +--------- src/components-examples/material/toolbar/BUILD.bazel | 1 - .../toolbar-harness/toolbar-harness-example.spec.ts | 10 +--------- src/components-examples/material/tooltip/BUILD.bazel | 1 - .../tooltip-harness/tooltip-harness-example.spec.ts | 10 +--------- src/components-examples/material/tree/BUILD.bazel | 1 - .../tree/tree-harness/tree-harness-example.spec.ts | 10 +--------- 70 files changed, 38 insertions(+), 351 deletions(-) diff --git a/src/components-examples/material-experimental/mdc-table/BUILD.bazel b/src/components-examples/material-experimental/mdc-table/BUILD.bazel index 3fba175cb728..661cf4a7e719 100644 --- a/src/components-examples/material-experimental/mdc-table/BUILD.bazel +++ b/src/components-examples/material-experimental/mdc-table/BUILD.bazel @@ -58,6 +58,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material-experimental/mdc-table/table-harness/table-harness-example.spec.ts b/src/components-examples/material-experimental/mdc-table/table-harness/table-harness-example.spec.ts index 937ba450e72d..89d9ded55bf5 100644 --- a/src/components-examples/material-experimental/mdc-table/table-harness/table-harness-example.spec.ts +++ b/src/components-examples/material-experimental/mdc-table/table-harness/table-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatTableHarness} from '@angular/material/table/testing'; import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatTableModule} from '@angular/material/table'; import {TableHarnessExample} from './table-harness-example'; @@ -13,10 +9,6 @@ describe('TableHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatTableModule], diff --git a/src/components-examples/material/autocomplete/BUILD.bazel b/src/components-examples/material/autocomplete/BUILD.bazel index 68c88dade12c..a6d934871958 100644 --- a/src/components-examples/material/autocomplete/BUILD.bazel +++ b/src/components-examples/material/autocomplete/BUILD.bazel @@ -52,6 +52,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts b/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts index 61cbdaa84690..69cdfb434b53 100644 --- a/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts +++ b/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatAutocompleteHarness} from '@angular/material/autocomplete/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatAutocompleteModule} from '@angular/material/autocomplete'; import {AutocompleteHarnessExample} from './autocomplete-harness-example'; @@ -13,10 +9,6 @@ describe('AutocompleteHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatAutocompleteModule], diff --git a/src/components-examples/material/badge/BUILD.bazel b/src/components-examples/material/badge/BUILD.bazel index cc3188921bb0..e7aa5a21781a 100644 --- a/src/components-examples/material/badge/BUILD.bazel +++ b/src/components-examples/material/badge/BUILD.bazel @@ -49,6 +49,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts b/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts index 40bef9bc9a00..bb34e6d6208d 100644 --- a/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts +++ b/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatBadgeHarness} from '@angular/material/badge/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatBadgeModule} from '@angular/material/badge'; import {BadgeHarnessExample} from './badge-harness-example'; @@ -13,10 +9,6 @@ describe('BadgeHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatBadgeModule], diff --git a/src/components-examples/material/bottom-sheet/BUILD.bazel b/src/components-examples/material/bottom-sheet/BUILD.bazel index 066502c32350..d2eaac889ff2 100644 --- a/src/components-examples/material/bottom-sheet/BUILD.bazel +++ b/src/components-examples/material/bottom-sheet/BUILD.bazel @@ -51,6 +51,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts b/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts index 7d202a97d36d..e6db2c1e2277 100644 --- a/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts +++ b/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatBottomSheetHarness} from '@angular/material/bottom-sheet/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatBottomSheetModule} from '@angular/material/bottom-sheet'; import {BottomSheetHarnessExample} from './bottom-sheet-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('BottomSheetHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatBottomSheetModule, NoopAnimationsModule], diff --git a/src/components-examples/material/button-toggle/BUILD.bazel b/src/components-examples/material/button-toggle/BUILD.bazel index e1930d6c7dce..0fc38b599c0f 100644 --- a/src/components-examples/material/button-toggle/BUILD.bazel +++ b/src/components-examples/material/button-toggle/BUILD.bazel @@ -48,6 +48,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts b/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts index 2b117710d0fc..5f4e9ed5e618 100644 --- a/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts +++ b/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatButtonToggleGroupHarness} from '@angular/material/button-toggle/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatButtonToggleModule} from '@angular/material/button-toggle'; import {ButtonToggleHarnessExample} from './button-toggle-harness-example'; @@ -13,10 +9,6 @@ describe('ButtonToggleHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatButtonToggleModule], diff --git a/src/components-examples/material/button/BUILD.bazel b/src/components-examples/material/button/BUILD.bazel index 09a746a31e1f..c535f58d8b7c 100644 --- a/src/components-examples/material/button/BUILD.bazel +++ b/src/components-examples/material/button/BUILD.bazel @@ -49,6 +49,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/button/button-harness/button-harness-example.spec.ts b/src/components-examples/material/button/button-harness/button-harness-example.spec.ts index ce608ac7ffc6..8ad4300ea4b2 100644 --- a/src/components-examples/material/button/button-harness/button-harness-example.spec.ts +++ b/src/components-examples/material/button/button-harness/button-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatButtonHarness} from '@angular/material/button/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatButtonModule} from '@angular/material/button'; import {ButtonHarnessExample} from './button-harness-example'; @@ -14,10 +10,6 @@ describe('ButtonHarnessExample', () => { let loader: HarnessLoader; let buttonHarness = MatButtonHarness; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatButtonModule], diff --git a/src/components-examples/material/card/BUILD.bazel b/src/components-examples/material/card/BUILD.bazel index d5a81324ed05..1925520019ca 100644 --- a/src/components-examples/material/card/BUILD.bazel +++ b/src/components-examples/material/card/BUILD.bazel @@ -52,6 +52,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/card/card-harness/card-harness-example.spec.ts b/src/components-examples/material/card/card-harness/card-harness-example.spec.ts index 718c352721e6..8c589e07fa99 100644 --- a/src/components-examples/material/card/card-harness/card-harness-example.spec.ts +++ b/src/components-examples/material/card/card-harness/card-harness-example.spec.ts @@ -1,21 +1,15 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatButtonHarness} from '@angular/material/button/testing'; import {MatCardHarness} from '@angular/material/card/testing'; import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatCardModule} from '@angular/material/card'; import {CardHarnessExample} from './card-harness-example'; describe('CardHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); + beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatCardModule], diff --git a/src/components-examples/material/checkbox/BUILD.bazel b/src/components-examples/material/checkbox/BUILD.bazel index fd9d48000608..90654ce87ee9 100644 --- a/src/components-examples/material/checkbox/BUILD.bazel +++ b/src/components-examples/material/checkbox/BUILD.bazel @@ -51,6 +51,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts b/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts index 8eea3ca06480..8741332bdc38 100644 --- a/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts +++ b/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts @@ -1,12 +1,8 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatCheckboxHarness} from '@angular/material/checkbox/testing'; import {HarnessLoader} from '@angular/cdk/testing'; import {ReactiveFormsModule} from '@angular/forms'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatCheckboxModule} from '@angular/material/checkbox'; import {CheckboxHarnessExample} from './checkbox-harness-example'; @@ -14,10 +10,6 @@ describe('CheckboxHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatCheckboxModule, ReactiveFormsModule], diff --git a/src/components-examples/material/chips/BUILD.bazel b/src/components-examples/material/chips/BUILD.bazel index 3bc90dc9be3a..94b28e48fc51 100644 --- a/src/components-examples/material/chips/BUILD.bazel +++ b/src/components-examples/material/chips/BUILD.bazel @@ -54,6 +54,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts b/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts index e46be6ccb177..b114d002c0fa 100644 --- a/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts +++ b/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatChipHarness, MatChipListboxHarness} from '@angular/material/chips/testing'; import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {ChipsHarnessExample} from './chips-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; import {MatChipsModule} from '@angular/material/chips'; @@ -14,10 +10,6 @@ describe('ChipsHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatChipsModule, NoopAnimationsModule], diff --git a/src/components-examples/material/datepicker/BUILD.bazel b/src/components-examples/material/datepicker/BUILD.bazel index 024498433387..e6b0ec539f9a 100644 --- a/src/components-examples/material/datepicker/BUILD.bazel +++ b/src/components-examples/material/datepicker/BUILD.bazel @@ -58,6 +58,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts b/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts index 1ff4f8adf951..132f5447ad1b 100644 --- a/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts +++ b/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatDatepickerInputHarness} from '@angular/material/datepicker/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatDatepickerModule} from '@angular/material/datepicker'; import {DatepickerHarnessExample} from './datepicker-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -16,10 +12,6 @@ describe('DatepickerHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatDatepickerModule, NoopAnimationsModule, MatNativeDateModule, FormsModule], diff --git a/src/components-examples/material/dialog/BUILD.bazel b/src/components-examples/material/dialog/BUILD.bazel index 5d1c87bacd5c..2a82c7c9becb 100644 --- a/src/components-examples/material/dialog/BUILD.bazel +++ b/src/components-examples/material/dialog/BUILD.bazel @@ -52,6 +52,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts b/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts index f245d4acb179..e64bf9f4f1d0 100644 --- a/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts +++ b/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture, waitForAsync} from '@angular/core/testing'; +import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatDialogHarness} from '@angular/material/dialog/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatDialogModule} from '@angular/material/dialog'; import {DialogHarnessExample} from './dialog-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('DialogHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach( waitForAsync(async () => { await TestBed.configureTestingModule({ diff --git a/src/components-examples/material/divider/BUILD.bazel b/src/components-examples/material/divider/BUILD.bazel index 8c8722cd2671..0203ff33234a 100644 --- a/src/components-examples/material/divider/BUILD.bazel +++ b/src/components-examples/material/divider/BUILD.bazel @@ -48,6 +48,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts b/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts index 386b08e8c739..24c8911fddeb 100644 --- a/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts +++ b/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatDividerHarness} from '@angular/material/divider/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatDividerModule} from '@angular/material/divider'; import {DividerHarnessExample} from './divider-harness-example'; @@ -13,10 +9,6 @@ describe('DividerHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatDividerModule], diff --git a/src/components-examples/material/expansion/BUILD.bazel b/src/components-examples/material/expansion/BUILD.bazel index 631e5a98c240..23c22d84c9fd 100644 --- a/src/components-examples/material/expansion/BUILD.bazel +++ b/src/components-examples/material/expansion/BUILD.bazel @@ -52,6 +52,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts b/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts index c8f8e5a2bb6d..aa82d2a7fb66 100644 --- a/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts +++ b/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; -import {MatExpansionPanelHarness, MatAccordionHarness} from '@angular/material/expansion/testing'; +import {MatAccordionHarness, MatExpansionPanelHarness} from '@angular/material/expansion/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatExpansionModule} from '@angular/material/expansion'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; import {ExpansionHarnessExample} from './expansion-harness-example'; @@ -14,10 +10,6 @@ describe('ExpansionHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatExpansionModule, NoopAnimationsModule], diff --git a/src/components-examples/material/form-field/BUILD.bazel b/src/components-examples/material/form-field/BUILD.bazel index acd30ab6506f..82d4e5b025b3 100644 --- a/src/components-examples/material/form-field/BUILD.bazel +++ b/src/components-examples/material/form-field/BUILD.bazel @@ -59,6 +59,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts b/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts index 7d1ac57b380f..77e14d92c1c9 100644 --- a/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts +++ b/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatFormFieldHarness} from '@angular/material/form-field/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatFormFieldModule} from '@angular/material/form-field'; import {FormFieldHarnessExample} from './form-field-harness-example'; import {MatInputModule} from '@angular/material/input'; @@ -17,10 +13,6 @@ describe('FormFieldHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatFormFieldModule, MatInputModule, ReactiveFormsModule, NoopAnimationsModule], diff --git a/src/components-examples/material/grid-list/BUILD.bazel b/src/components-examples/material/grid-list/BUILD.bazel index c60e61c14c8f..29722177bd67 100644 --- a/src/components-examples/material/grid-list/BUILD.bazel +++ b/src/components-examples/material/grid-list/BUILD.bazel @@ -47,6 +47,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts b/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts index b48f54428260..ec4ca1033d1f 100644 --- a/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts +++ b/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatGridListHarness, MatGridTileHarness} from '@angular/material/grid-list/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatGridListModule} from '@angular/material/grid-list'; import {GridListHarnessExample} from './grid-list-harness-example'; @@ -13,10 +9,6 @@ describe('GridListHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatGridListModule], diff --git a/src/components-examples/material/icon/BUILD.bazel b/src/components-examples/material/icon/BUILD.bazel index a1fb78c2d500..daa4a02f1c7c 100644 --- a/src/components-examples/material/icon/BUILD.bazel +++ b/src/components-examples/material/icon/BUILD.bazel @@ -48,6 +48,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts b/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts index 8bd83e4d024b..4b6f1c9d3dd1 100644 --- a/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts +++ b/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts @@ -1,10 +1,6 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {IconHarnessExample} from './icon-harness-example'; import {MatIconModule, MatIconRegistry} from '@angular/material/icon'; import {MatIconHarness} from '@angular/material/icon/testing'; @@ -14,10 +10,6 @@ describe('IconHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatIconModule], diff --git a/src/components-examples/material/input/BUILD.bazel b/src/components-examples/material/input/BUILD.bazel index 9dca2cc5f16d..effa093d61bd 100644 --- a/src/components-examples/material/input/BUILD.bazel +++ b/src/components-examples/material/input/BUILD.bazel @@ -52,6 +52,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/input/input-harness/input-harness-example.spec.ts b/src/components-examples/material/input/input-harness/input-harness-example.spec.ts index ba00d26a4ee2..a2483c7c7dc0 100644 --- a/src/components-examples/material/input/input-harness/input-harness-example.spec.ts +++ b/src/components-examples/material/input/input-harness/input-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatInputHarness} from '@angular/material/input/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatInputModule} from '@angular/material/input'; import {InputHarnessExample} from './input-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -15,10 +11,6 @@ describe('InputHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatInputModule, NoopAnimationsModule, ReactiveFormsModule], diff --git a/src/components-examples/material/list/BUILD.bazel b/src/components-examples/material/list/BUILD.bazel index a569f71ebf91..fc7e0e692d46 100644 --- a/src/components-examples/material/list/BUILD.bazel +++ b/src/components-examples/material/list/BUILD.bazel @@ -48,6 +48,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/list/list-harness/list-harness-example.spec.ts b/src/components-examples/material/list/list-harness/list-harness-example.spec.ts index 8d6af7b3f019..463bb0cf31cd 100644 --- a/src/components-examples/material/list/list-harness/list-harness-example.spec.ts +++ b/src/components-examples/material/list/list-harness/list-harness-example.spec.ts @@ -1,11 +1,7 @@ import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatListHarness} from '@angular/material/list/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatListModule} from '@angular/material/list'; import {ListHarnessExample} from './list-harness-example'; @@ -13,10 +9,6 @@ describe('ListHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatListModule], diff --git a/src/components-examples/material/menu/BUILD.bazel b/src/components-examples/material/menu/BUILD.bazel index 5d77ea390f12..8b8880375d8d 100644 --- a/src/components-examples/material/menu/BUILD.bazel +++ b/src/components-examples/material/menu/BUILD.bazel @@ -51,6 +51,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts b/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts index 34e3e39452d3..3338af752ca7 100644 --- a/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts +++ b/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatMenuHarness} from '@angular/material/menu/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatMenuModule} from '@angular/material/menu'; import {MenuHarnessExample} from './menu-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('MenuHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatMenuModule, NoopAnimationsModule], diff --git a/src/components-examples/material/paginator/BUILD.bazel b/src/components-examples/material/paginator/BUILD.bazel index a0f904cc472a..9ef16ce35c9c 100644 --- a/src/components-examples/material/paginator/BUILD.bazel +++ b/src/components-examples/material/paginator/BUILD.bazel @@ -51,6 +51,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts b/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts index c5dd9e4ba28a..cd4da36067f3 100644 --- a/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts +++ b/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatPaginatorHarness} from '@angular/material/paginator/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatPaginatorModule} from '@angular/material/paginator'; import {PaginatorHarnessExample} from './paginator-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -15,10 +11,6 @@ describe('PaginatorHarnessExample', () => { let loader: HarnessLoader; let instance: PaginatorHarnessExample; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatPaginatorModule, NoopAnimationsModule], diff --git a/src/components-examples/material/progress-bar/BUILD.bazel b/src/components-examples/material/progress-bar/BUILD.bazel index e3e5620f6c76..be34e4cbb586 100644 --- a/src/components-examples/material/progress-bar/BUILD.bazel +++ b/src/components-examples/material/progress-bar/BUILD.bazel @@ -51,6 +51,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts b/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts index 5b7502baa24d..a932f940cb80 100644 --- a/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts +++ b/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatProgressBarHarness} from '@angular/material/progress-bar/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatProgressBarModule} from '@angular/material/progress-bar'; import {ProgressBarHarnessExample} from './progress-bar-harness-example'; @@ -13,10 +9,6 @@ describe('ProgressBarHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatProgressBarModule], diff --git a/src/components-examples/material/progress-spinner/BUILD.bazel b/src/components-examples/material/progress-spinner/BUILD.bazel index 775e0b81a1e5..9a419122be24 100644 --- a/src/components-examples/material/progress-spinner/BUILD.bazel +++ b/src/components-examples/material/progress-spinner/BUILD.bazel @@ -51,6 +51,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts b/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts index fb9b9ed5305c..3a58eabb03a7 100644 --- a/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts +++ b/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatProgressSpinnerHarness} from '@angular/material/progress-spinner/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; import {ProgressSpinnerHarnessExample} from './progress-spinner-harness-example'; @@ -13,10 +9,6 @@ describe('ProgressSpinnerHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatProgressSpinnerModule], diff --git a/src/components-examples/material/radio/BUILD.bazel b/src/components-examples/material/radio/BUILD.bazel index 517a4b5b2b00..63b6858eb0a5 100644 --- a/src/components-examples/material/radio/BUILD.bazel +++ b/src/components-examples/material/radio/BUILD.bazel @@ -49,6 +49,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts b/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts index 6d951d02fed3..7e80fea61cde 100644 --- a/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts +++ b/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatRadioButtonHarness, MatRadioGroupHarness} from '@angular/material/radio/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatRadioModule} from '@angular/material/radio'; import {RadioHarnessExample} from './radio-harness-example'; import {ReactiveFormsModule} from '@angular/forms'; @@ -14,10 +10,6 @@ describe('RadioHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatRadioModule, ReactiveFormsModule], diff --git a/src/components-examples/material/select/BUILD.bazel b/src/components-examples/material/select/BUILD.bazel index 5fc777377cdb..ebab21f47731 100644 --- a/src/components-examples/material/select/BUILD.bazel +++ b/src/components-examples/material/select/BUILD.bazel @@ -52,6 +52,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/select/select-harness/select-harness-example.spec.ts b/src/components-examples/material/select/select-harness/select-harness-example.spec.ts index d2d0c6971267..17a3198fb891 100644 --- a/src/components-examples/material/select/select-harness/select-harness-example.spec.ts +++ b/src/components-examples/material/select/select-harness/select-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatSelectHarness} from '@angular/material/select/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatSelectModule} from '@angular/material/select'; import {SelectHarnessExample} from './select-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('SelectHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatSelectModule, NoopAnimationsModule], diff --git a/src/components-examples/material/sidenav/BUILD.bazel b/src/components-examples/material/sidenav/BUILD.bazel index 6fb6317eb4ad..a8fdecada5ad 100644 --- a/src/components-examples/material/sidenav/BUILD.bazel +++ b/src/components-examples/material/sidenav/BUILD.bazel @@ -56,6 +56,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts b/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts index 8cda9c61c48a..0c4f7693f5b0 100644 --- a/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts +++ b/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts @@ -1,15 +1,11 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import { - MatDrawerHarness, MatDrawerContainerHarness, MatDrawerContentHarness, + MatDrawerHarness, } from '@angular/material/sidenav/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatSidenavModule} from '@angular/material/sidenav'; import {SidenavHarnessExample} from './sidenav-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -18,10 +14,6 @@ describe('SidenavHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatSidenavModule, NoopAnimationsModule], diff --git a/src/components-examples/material/slide-toggle/BUILD.bazel b/src/components-examples/material/slide-toggle/BUILD.bazel index cb72e3750145..f38c4d02929c 100644 --- a/src/components-examples/material/slide-toggle/BUILD.bazel +++ b/src/components-examples/material/slide-toggle/BUILD.bazel @@ -53,6 +53,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts b/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts index afc480bd917b..ca7d37bfd678 100644 --- a/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts +++ b/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatSlideToggleHarness} from '@angular/material/slide-toggle/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatSlideToggleModule} from '@angular/material/slide-toggle'; import {SlideToggleHarnessExample} from './slide-toggle-harness-example'; import {ReactiveFormsModule} from '@angular/forms'; @@ -14,10 +10,6 @@ describe('SlideToggleHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatSlideToggleModule, ReactiveFormsModule], diff --git a/src/components-examples/material/slider/BUILD.bazel b/src/components-examples/material/slider/BUILD.bazel index c37115bc7448..8b2c483176ee 100644 --- a/src/components-examples/material/slider/BUILD.bazel +++ b/src/components-examples/material/slider/BUILD.bazel @@ -51,6 +51,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts b/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts index 1d3f20fcf1fb..73ce8581256e 100644 --- a/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts +++ b/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatSliderHarness} from '@angular/material/slider/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatSliderModule} from '@angular/material/slider'; import {SliderHarnessExample} from './slider-harness-example'; @@ -13,10 +9,6 @@ describe('SliderHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatSliderModule], diff --git a/src/components-examples/material/snack-bar/BUILD.bazel b/src/components-examples/material/snack-bar/BUILD.bazel index f4924c420e02..114c13561e06 100644 --- a/src/components-examples/material/snack-bar/BUILD.bazel +++ b/src/components-examples/material/snack-bar/BUILD.bazel @@ -52,6 +52,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts b/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts index 9a570d1e5b00..04cf9e811242 100644 --- a/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts +++ b/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatSnackBarHarness} from '@angular/material/snack-bar/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatSnackBarModule} from '@angular/material/snack-bar'; import {SnackBarHarnessExample} from './snack-bar-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('SnackBarHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatSnackBarModule, NoopAnimationsModule], diff --git a/src/components-examples/material/sort/BUILD.bazel b/src/components-examples/material/sort/BUILD.bazel index 7f9eb9b672cc..952f2f3ac806 100644 --- a/src/components-examples/material/sort/BUILD.bazel +++ b/src/components-examples/material/sort/BUILD.bazel @@ -48,6 +48,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts b/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts index 5a533462675b..b2dd25f707ff 100644 --- a/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts +++ b/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatSortHarness} from '@angular/material/sort/testing'; import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatSortModule} from '@angular/material/sort'; import {SortHarnessExample} from './sort-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('SortHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatSortModule, NoopAnimationsModule], diff --git a/src/components-examples/material/stepper/BUILD.bazel b/src/components-examples/material/stepper/BUILD.bazel index f61a9f286abf..e1627932e1aa 100644 --- a/src/components-examples/material/stepper/BUILD.bazel +++ b/src/components-examples/material/stepper/BUILD.bazel @@ -57,6 +57,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts b/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts index 7b4aa541ec39..a0d31944ebc0 100644 --- a/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts +++ b/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatStepperHarness, MatStepperNextHarness} from '@angular/material/stepper/testing'; import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatStepperModule} from '@angular/material/stepper'; import {StepperHarnessExample} from './stepper-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -15,10 +11,6 @@ describe('StepperHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatStepperModule, NoopAnimationsModule, ReactiveFormsModule], diff --git a/src/components-examples/material/table/BUILD.bazel b/src/components-examples/material/table/BUILD.bazel index e3a95c9097a3..36598e0bd5ab 100644 --- a/src/components-examples/material/table/BUILD.bazel +++ b/src/components-examples/material/table/BUILD.bazel @@ -58,6 +58,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/table/table-harness/table-harness-example.spec.ts b/src/components-examples/material/table/table-harness/table-harness-example.spec.ts index 937ba450e72d..89d9ded55bf5 100644 --- a/src/components-examples/material/table/table-harness/table-harness-example.spec.ts +++ b/src/components-examples/material/table/table-harness/table-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatTableHarness} from '@angular/material/table/testing'; import {HarnessLoader, parallel} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatTableModule} from '@angular/material/table'; import {TableHarnessExample} from './table-harness-example'; @@ -13,10 +9,6 @@ describe('TableHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatTableModule], diff --git a/src/components-examples/material/tabs/BUILD.bazel b/src/components-examples/material/tabs/BUILD.bazel index fee95ae80343..9520fc4ac30e 100644 --- a/src/components-examples/material/tabs/BUILD.bazel +++ b/src/components-examples/material/tabs/BUILD.bazel @@ -54,6 +54,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts b/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts index 77fb3cb7f21e..e72a17b306df 100644 --- a/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts +++ b/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatTabGroupHarness} from '@angular/material/tabs/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatTabsModule} from '@angular/material/tabs'; import {TabGroupHarnessExample} from './tab-group-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('TabGroupHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatTabsModule, NoopAnimationsModule], diff --git a/src/components-examples/material/toolbar/BUILD.bazel b/src/components-examples/material/toolbar/BUILD.bazel index 97338367850f..7a8a564d5c37 100644 --- a/src/components-examples/material/toolbar/BUILD.bazel +++ b/src/components-examples/material/toolbar/BUILD.bazel @@ -50,6 +50,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts b/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts index dfb1c78c661d..b35ed37b6465 100644 --- a/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts +++ b/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatToolbarHarness} from '@angular/material/toolbar/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatToolbarModule} from '@angular/material/toolbar'; import {ToolbarHarnessExample} from './toolbar-harness-example'; import {MatIconModule} from '@angular/material/icon'; @@ -14,10 +10,6 @@ describe('ToolbarHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatToolbarModule, MatIconModule], diff --git a/src/components-examples/material/tooltip/BUILD.bazel b/src/components-examples/material/tooltip/BUILD.bazel index 46417bf0695f..e84968f98639 100644 --- a/src/components-examples/material/tooltip/BUILD.bazel +++ b/src/components-examples/material/tooltip/BUILD.bazel @@ -54,6 +54,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts b/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts index 3395e0baab64..b8fed047ee6c 100644 --- a/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts +++ b/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatTooltipHarness} from '@angular/material/tooltip/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatTooltipModule} from '@angular/material/tooltip'; import {TooltipHarnessExample} from './tooltip-harness-example'; import {NoopAnimationsModule} from '@angular/platform-browser/animations'; @@ -14,10 +10,6 @@ describe('TooltipHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatTooltipModule, NoopAnimationsModule], diff --git a/src/components-examples/material/tree/BUILD.bazel b/src/components-examples/material/tree/BUILD.bazel index a9a9cf3eb6c2..8ea4f4365480 100644 --- a/src/components-examples/material/tree/BUILD.bazel +++ b/src/components-examples/material/tree/BUILD.bazel @@ -53,6 +53,5 @@ ng_test_library( ng_web_test_suite( name = "unit_tests", - exclude_init_script = True, deps = [":unit_tests_lib"], ) diff --git a/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts b/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts index a3da7b6558d8..36ea70854e2d 100644 --- a/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts +++ b/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts @@ -1,11 +1,7 @@ -import {TestBed, ComponentFixture} from '@angular/core/testing'; +import {ComponentFixture, TestBed} from '@angular/core/testing'; import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {MatTreeHarness} from '@angular/material/tree/testing'; import {HarnessLoader} from '@angular/cdk/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; import {MatTreeModule} from '@angular/material/tree'; import {TreeHarnessExample} from './tree-harness-example'; import {MatIconModule} from '@angular/material/icon'; @@ -14,10 +10,6 @@ describe('TreeHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; - beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); - }); - beforeEach(async () => { await TestBed.configureTestingModule({ imports: [MatTreeModule, MatIconModule], From a674720ba76eeaba4fc257d111699f38c9adbc6b Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Tue, 2 Nov 2021 20:54:19 +0100 Subject: [PATCH 015/358] build: update firebase preview instance to internal one (#23842) Updates the Firebase preview instance for the dev-app previews to an internal one with more capacity. --- .github/workflows/deploy-dev-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-dev-app.yml b/.github/workflows/deploy-dev-app.yml index db1ecc7ecc38..01669e07e7c6 100644 --- a/.github/workflows/deploy-dev-app.yml +++ b/.github/workflows/deploy-dev-app.yml @@ -42,7 +42,7 @@ jobs: repoToken: '${{secrets.GITHUB_TOKEN}}' firebaseServiceAccount: '${{secrets.FIREBASE_PREVIEW_SERVICE_TOKEN}}' expires: 20d - projectId: angular-components-test + projectId: ng-comp-dev channelId: pr-${{steps.pr_info.outputs.number}}-${{steps.pr_info.outputs.sha}} - uses: marocchino/sticky-pull-request-comment@v2 From 8f167ec26a339953c1cc797a4a593a42f9f5c040 Mon Sep 17 00:00:00 2001 From: Andrew Seguin Date: Tue, 2 Nov 2021 15:07:42 -0600 Subject: [PATCH 016/358] fix(material-experimental/mdc-tabs): update theming api (#23855) --- package.json | 96 +- packages.bzl | 2 +- .../mdc-tabs/_tabs-theme.scss | 52 +- yarn.lock | 1202 ++++++++--------- 4 files changed, 677 insertions(+), 675 deletions(-) diff --git a/package.json b/package.json index c01f187a3308..da6ed81ffb40 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@types/google.maps": "^3.45.6", "@types/youtube": "^0.0.42", "core-js-bundle": "^3.8.2", - "material-components-web": "14.0.0-canary.c78ff0429.0", + "material-components-web": "14.0.0-canary.1af7c1c4a.0", "rxjs": "^6.6.7", "rxjs-tslint-rules": "^4.33.1", "tslib": "^2.3.0", @@ -92,53 +92,53 @@ "@bazel/terser": "4.3.0", "@bazel/typescript": "4.3.0", "@firebase/app-types": "^0.6.1", - "@material/animation": "14.0.0-canary.c78ff0429.0", - "@material/auto-init": "14.0.0-canary.c78ff0429.0", - "@material/banner": "14.0.0-canary.c78ff0429.0", - "@material/base": "14.0.0-canary.c78ff0429.0", - "@material/button": "14.0.0-canary.c78ff0429.0", - "@material/card": "14.0.0-canary.c78ff0429.0", - "@material/checkbox": "14.0.0-canary.c78ff0429.0", - "@material/chips": "14.0.0-canary.c78ff0429.0", - "@material/circular-progress": "14.0.0-canary.c78ff0429.0", - "@material/data-table": "14.0.0-canary.c78ff0429.0", - "@material/density": "14.0.0-canary.c78ff0429.0", - "@material/dialog": "14.0.0-canary.c78ff0429.0", - "@material/dom": "14.0.0-canary.c78ff0429.0", - "@material/drawer": "14.0.0-canary.c78ff0429.0", - "@material/elevation": "14.0.0-canary.c78ff0429.0", - "@material/fab": "14.0.0-canary.c78ff0429.0", - "@material/feature-targeting": "14.0.0-canary.c78ff0429.0", - "@material/floating-label": "14.0.0-canary.c78ff0429.0", - "@material/form-field": "14.0.0-canary.c78ff0429.0", - "@material/icon-button": "14.0.0-canary.c78ff0429.0", - "@material/image-list": "14.0.0-canary.c78ff0429.0", - "@material/layout-grid": "14.0.0-canary.c78ff0429.0", - "@material/line-ripple": "14.0.0-canary.c78ff0429.0", - "@material/linear-progress": "14.0.0-canary.c78ff0429.0", - "@material/list": "14.0.0-canary.c78ff0429.0", - "@material/menu": "14.0.0-canary.c78ff0429.0", - "@material/menu-surface": "14.0.0-canary.c78ff0429.0", - "@material/notched-outline": "14.0.0-canary.c78ff0429.0", - "@material/radio": "14.0.0-canary.c78ff0429.0", - "@material/ripple": "14.0.0-canary.c78ff0429.0", - "@material/rtl": "14.0.0-canary.c78ff0429.0", - "@material/segmented-button": "14.0.0-canary.c78ff0429.0", - "@material/select": "14.0.0-canary.c78ff0429.0", - "@material/shape": "14.0.0-canary.c78ff0429.0", - "@material/slider": "14.0.0-canary.c78ff0429.0", - "@material/snackbar": "14.0.0-canary.c78ff0429.0", - "@material/switch": "14.0.0-canary.c78ff0429.0", - "@material/tab": "14.0.0-canary.c78ff0429.0", - "@material/tab-bar": "14.0.0-canary.c78ff0429.0", - "@material/tab-indicator": "14.0.0-canary.c78ff0429.0", - "@material/tab-scroller": "14.0.0-canary.c78ff0429.0", - "@material/textfield": "14.0.0-canary.c78ff0429.0", - "@material/theme": "14.0.0-canary.c78ff0429.0", - "@material/tooltip": "14.0.0-canary.c78ff0429.0", - "@material/top-app-bar": "14.0.0-canary.c78ff0429.0", - "@material/touch-target": "14.0.0-canary.c78ff0429.0", - "@material/typography": "14.0.0-canary.c78ff0429.0", + "@material/animation": "14.0.0-canary.1af7c1c4a.0", + "@material/auto-init": "14.0.0-canary.1af7c1c4a.0", + "@material/banner": "14.0.0-canary.1af7c1c4a.0", + "@material/base": "14.0.0-canary.1af7c1c4a.0", + "@material/button": "14.0.0-canary.1af7c1c4a.0", + "@material/card": "14.0.0-canary.1af7c1c4a.0", + "@material/checkbox": "14.0.0-canary.1af7c1c4a.0", + "@material/chips": "14.0.0-canary.1af7c1c4a.0", + "@material/circular-progress": "14.0.0-canary.1af7c1c4a.0", + "@material/data-table": "14.0.0-canary.1af7c1c4a.0", + "@material/density": "14.0.0-canary.1af7c1c4a.0", + "@material/dialog": "14.0.0-canary.1af7c1c4a.0", + "@material/dom": "14.0.0-canary.1af7c1c4a.0", + "@material/drawer": "14.0.0-canary.1af7c1c4a.0", + "@material/elevation": "14.0.0-canary.1af7c1c4a.0", + "@material/fab": "14.0.0-canary.1af7c1c4a.0", + "@material/feature-targeting": "14.0.0-canary.1af7c1c4a.0", + "@material/floating-label": "14.0.0-canary.1af7c1c4a.0", + "@material/form-field": "14.0.0-canary.1af7c1c4a.0", + "@material/icon-button": "14.0.0-canary.1af7c1c4a.0", + "@material/image-list": "14.0.0-canary.1af7c1c4a.0", + "@material/layout-grid": "14.0.0-canary.1af7c1c4a.0", + "@material/line-ripple": "14.0.0-canary.1af7c1c4a.0", + "@material/linear-progress": "14.0.0-canary.1af7c1c4a.0", + "@material/list": "14.0.0-canary.1af7c1c4a.0", + "@material/menu": "14.0.0-canary.1af7c1c4a.0", + "@material/menu-surface": "14.0.0-canary.1af7c1c4a.0", + "@material/notched-outline": "14.0.0-canary.1af7c1c4a.0", + "@material/radio": "14.0.0-canary.1af7c1c4a.0", + "@material/ripple": "14.0.0-canary.1af7c1c4a.0", + "@material/rtl": "14.0.0-canary.1af7c1c4a.0", + "@material/segmented-button": "14.0.0-canary.1af7c1c4a.0", + "@material/select": "14.0.0-canary.1af7c1c4a.0", + "@material/shape": "14.0.0-canary.1af7c1c4a.0", + "@material/slider": "14.0.0-canary.1af7c1c4a.0", + "@material/snackbar": "14.0.0-canary.1af7c1c4a.0", + "@material/switch": "14.0.0-canary.1af7c1c4a.0", + "@material/tab": "14.0.0-canary.1af7c1c4a.0", + "@material/tab-bar": "14.0.0-canary.1af7c1c4a.0", + "@material/tab-indicator": "14.0.0-canary.1af7c1c4a.0", + "@material/tab-scroller": "14.0.0-canary.1af7c1c4a.0", + "@material/textfield": "14.0.0-canary.1af7c1c4a.0", + "@material/theme": "14.0.0-canary.1af7c1c4a.0", + "@material/tooltip": "14.0.0-canary.1af7c1c4a.0", + "@material/top-app-bar": "14.0.0-canary.1af7c1c4a.0", + "@material/touch-target": "14.0.0-canary.1af7c1c4a.0", + "@material/typography": "14.0.0-canary.1af7c1c4a.0", "@octokit/rest": "18.3.5", "@rollup/plugin-babel": "^5.3.0", "@rollup/plugin-commonjs": "^20.0.0", diff --git a/packages.bzl b/packages.bzl index ff1a76f5169c..9836d33994dc 100644 --- a/packages.bzl +++ b/packages.bzl @@ -2,7 +2,7 @@ # all in-sync. This map is passed to each ng_package rule to stamp out the appropriate # version for the placeholders. ANGULAR_PACKAGE_VERSION = "^13.0.0-0 || ^14.0.0-0" -MDC_PACKAGE_VERSION = "14.0.0-canary.c78ff0429.0" +MDC_PACKAGE_VERSION = "14.0.0-canary.1af7c1c4a.0" TSLIB_PACKAGE_VERSION = "^2.3.0" RXJS_PACKAGE_VERSION = "^6.5.3 || ^7.0.0" diff --git a/src/material-experimental/mdc-tabs/_tabs-theme.scss b/src/material-experimental/mdc-tabs/_tabs-theme.scss index ccb1253521bb..c9bca6b13355 100644 --- a/src/material-experimental/mdc-tabs/_tabs-theme.scss +++ b/src/material-experimental/mdc-tabs/_tabs-theme.scss @@ -25,30 +25,32 @@ // `theme-styles` are included in the `tab` mixin inside `_tabs-common.scss`. Currently // they are not, because `theme-styles` outputs the token values directly, rather than // generating CSS variables. - @include mdc-tab-theme.theme-styles(map.merge(mdc-tab-theme.$light-theme, ( - container-color: $surface, - inactive-focus-state-layer-color: $on-surface, - inactive-hover-state-layer-color: $on-surface, - inactive-pressed-state-layer-color: $on-surface, - with-icon-inactive-focus-icon-color: $on-surface, - with-icon-inactive-hover-icon-color: $on-surface, - with-icon-inactive-icon-color: $on-surface, - with-icon-inactive-pressed-icon-color: $on-surface, - with-label-text-inactive-focus-label-text-color: $on-surface, - with-label-text-inactive-hover-label-text-color: $on-surface, - with-label-text-inactive-label-text-color: $on-surface, - with-label-text-inactive-pressed-label-text-color: $on-surface, - - // TODO(crisbeto): MDC's styles are set up so that the icon size is set through a - // `font-size` at the root of the tab while the text size of the tab is set on - // `.mdc-tab__text-label` which overrides the one from the root. The problem is that the - // `$light-theme` is looking for a `subhead2` level which doesn't exist in MDC's code which - // in turn causes no text label styles to be emitted and for the icon size to be applied to - // the entire tab. Since we don't support icons inside the tab anyway, we can temporarily - // work around it by preventing MDC from emitting icon styles. The correct label typography - // will be applied by our theme instead. - with-icon-icon-size: null - ))); + @include mdc-tab-theme.primary-navigation-tab-theme-styles(map.merge( + mdc-tab-theme.$primary-light-theme, + ( + container-color: $surface, + inactive-focus-state-layer-color: $on-surface, + inactive-hover-state-layer-color: $on-surface, + inactive-pressed-state-layer-color: $on-surface, + with-icon-inactive-focus-icon-color: $on-surface, + with-icon-inactive-hover-icon-color: $on-surface, + with-icon-inactive-icon-color: $on-surface, + with-icon-inactive-pressed-icon-color: $on-surface, + with-label-text-inactive-focus-label-text-color: $on-surface, + with-label-text-inactive-hover-label-text-color: $on-surface, + with-label-text-inactive-label-text-color: $on-surface, + with-label-text-inactive-pressed-label-text-color: $on-surface, + + // TODO(crisbeto): MDC's styles are set up so that the icon size is set through a + // `font-size` at the root of the tab while the text size of the tab is set on + // `.mdc-tab__text-label` which overrides the one from the root. The problem is that + // the `$light-theme` is looking for a `subhead2` level which doesn't exist in MDC's + // code which in turn causes no text label styles to be emitted and for the icon size + // to be applied to the entire tab. Since we don't support icons inside the tab + // anyway, we can temporarily work around it by preventing MDC from emitting icon + // styles. The correct label typography will be applied by our theme instead. + with-icon-icon-size: null + ))); // MDC seems to include a background color on tabs which only stands out on dark themes. // Disable for now for backwards compatibility. These styles are inside the theme in order @@ -127,7 +129,7 @@ // `theme-styles` are included in the `tab` mixin inside `_tabs-common.scss`. Currently // they are not, because `theme-styles` outputs the token values directly, rather than // generating CSS variables. - @include mdc-tab-theme.theme-styles(( + @include mdc-tab-theme.primary-navigation-tab-theme-styles(( active-focus-state-layer-color: $color, active-hover-state-layer-color: $color, active-pressed-state-layer-color: $color, diff --git a/yarn.lock b/yarn.lock index a63db7ab4176..edc10cb1697d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1969,666 +1969,666 @@ resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== -"@material/animation@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/animation/-/animation-14.0.0-canary.c78ff0429.0.tgz#2374577bc7f2cc9eb0d098c40dc01c87c3e6c87d" - integrity sha512-dbj2aeZID9JFQNfxcxdHz1wCOik7ZGKQ+ShHu7oMlGLKU2evQXZ8jTog9X7cWyj6RF+QsjK/PXJHnZD5u7V8Fw== +"@material/animation@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/animation/-/animation-14.0.0-canary.1af7c1c4a.0.tgz#19718e1fabc8580ef96e228e50c89b7d1ec5462f" + integrity sha512-iPMyADIFJa2F1aFIq4xS4Fh8429Ka2zlhOW57nJTbJ+zopPcCLVejSPAh0Vr1aO5wbWXuo+nC7RtpFETRYdvMg== dependencies: tslib "^2.1.0" -"@material/auto-init@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/auto-init/-/auto-init-14.0.0-canary.c78ff0429.0.tgz#a2e141b992354cc6f76c73eedf3a59713942cf99" - integrity sha512-kBnCwZ+B3PnvQ/Ic9iCqDX7oGF6qXiZBMjFI+AGJ9w2fBhTeO0r3nbHzsnJ2kn8lIBeVrkTA4hklKn07Nhn3zg== +"@material/auto-init@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/auto-init/-/auto-init-14.0.0-canary.1af7c1c4a.0.tgz#5c4c8d3fbb53b879205be398c7427a31962489e8" + integrity sha512-jQUT2F354Z/z0XM7kP1d3ijxohZJW1H0ZzPVlFAo1A898hRxVRLFLtiCtMcw96ws6yQFpj1y6GefWx4VosU6Bg== dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/banner@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/banner/-/banner-14.0.0-canary.c78ff0429.0.tgz#158ad66425c5d51fba07dc082fc3cd1a5ac3b371" - integrity sha512-aZbJyJtxQcCC1e3Vyed7as1kSKNVkdEW+Hal2lzHeczw3f08Qlw9pQlOiqAIxvQQAJ4PysfOeKd/+fLQLTIhpA== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/button" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/tokens" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/banner@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/banner/-/banner-14.0.0-canary.1af7c1c4a.0.tgz#ab1b82b0c76a0af412a2a118806a8427b6e620cd" + integrity sha512-+VVNRg2RTciR9o7Oo5+7ghFNXnQ22eMmm8cur7CJ0XhO/iBrQ6lJu3r7F9VgUQpop9EWJS4ghqJ72W8SpMyQDg== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/button" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/tokens" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/base@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/base/-/base-14.0.0-canary.c78ff0429.0.tgz#928f83eb9652e8cecf861f0e60d6dff304232674" - integrity sha512-Uxcj11+cM2urNlIOJm6Gae0hYLKkQoK5fjYn41gCplAAKQLFiOS975T7d9urZ7emXoJd4EAkXFxKnwRXdf9rEQ== +"@material/base@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/base/-/base-14.0.0-canary.1af7c1c4a.0.tgz#40b9cae06ac536ae7f582e4b2956d725209d3f28" + integrity sha512-w7TMG+7RIXwEqJUZEiLClpRutCHOO9Ry9PYJ+StXO4jLMpEPwpoPRxTM9jWk105y/fLPmT6/WSaqqrXSAhvRAg== dependencies: tslib "^2.1.0" -"@material/button@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/button/-/button-14.0.0-canary.c78ff0429.0.tgz#01aeb1bf164f2405a6efcc46a55429a6b444722f" - integrity sha512-hkqFYzac+qsRWxwh3/N0zvew5wI3m5cvRA+wWJKXg0JVZ2bxhI/XZmI/aATgWayizh7vQdY28QamJO2VY7R2fQ== - dependencies: - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/tokens" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/button@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/button/-/button-14.0.0-canary.1af7c1c4a.0.tgz#f415afa0bf066a962c243c78b06b2b22bfe697a2" + integrity sha512-8IJXZ4xZN7pyFiXMqZf8TIAd0MPmm8bCfzo87A4xBsOdG7ffwqcmDE3CjTKojSi1KualqCWgWenCZaLZn27zBA== + dependencies: + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/tokens" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/card@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/card/-/card-14.0.0-canary.c78ff0429.0.tgz#061baba9a9b507dc9a207f1e577fab98fee49fe8" - integrity sha512-XyAUjraBgOs5SgN1prPcpeaNEAs9tQeQjAPAkma/A0ZDvj7o1D2hPUG/EJfRG5JUFwsDd8Xe7VBy90Ix+al17Q== - dependencies: - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" +"@material/card@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/card/-/card-14.0.0-canary.1af7c1c4a.0.tgz#8876fe26f9b55b7a1e739e559bcb528bf8361618" + integrity sha512-vTbHjnzUfvOp9Wgk0NUcIbvH5rqROJff4kgx9tjLFAxPlemyaqzvJHTtMNEiaynmCIXs28agPSbt1z53m2qHEQ== + dependencies: + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/checkbox@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-14.0.0-canary.c78ff0429.0.tgz#d343277321f761f63980af6332f47489b1999c39" - integrity sha512-Z3UwvQeCXEW0jDNwtS/1DsXwysPLpiWxm1fjKxDTO8EwQ/GWQi1JqFFNBAfCv1A+wiLrW8xHw5kOgaXNX6aeFw== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" +"@material/checkbox@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-14.0.0-canary.1af7c1c4a.0.tgz#80eea647764f543670bd7720ed90ee48e72e2eb2" + integrity sha512-pC+LN5CeTLh1qwsRXH7+FRgjkNslJQ9y2At03yf1lKZ/+iqujMupaKTyn9KyAr6MYVZKTgWZALOiIlXOhKfyHg== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/chips@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/chips/-/chips-14.0.0-canary.c78ff0429.0.tgz#2be34bd62a172c48ac88284d83114217c76dc79d" - integrity sha512-IrsOkp+BPoByPp+fEYllRoOK4yUvZvHs0lLdQnURBhOESMuNFbaaEjAaHLtcRn0K4c5KaVgnmtRk516grp9/mg== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/checkbox" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/tokens" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/chips@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/chips/-/chips-14.0.0-canary.1af7c1c4a.0.tgz#318c3489e09c5c14b6bb8a6d46ccb237de7fa723" + integrity sha512-pWL8CZnRnSQcwI/DySjiPW92r4eRVwV6DEdlDGVaRlu0LprI5+bjbmBjjq6amoEPk/tAivrakkY0y6hFpPuUvw== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/checkbox" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/tokens" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/circular-progress@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-14.0.0-canary.c78ff0429.0.tgz#91f33c6edfd38965742ad3cccfb24dd640b4a9fb" - integrity sha512-SU9OP9H6L+mOHYIDXbJnRqdR96zakUnwyoIl+EYbmDTQT62bShvJWygXQbUIW3JPxx+7xfPfTQLwg4mP8sbiNA== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/progress-indicator" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" +"@material/circular-progress@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-14.0.0-canary.1af7c1c4a.0.tgz#470ca168c326b0a043a01bfcf57925896b9b6127" + integrity sha512-zczDw9XGWLrtLzEtiQWNiDdV3rIljG2UevduJekW0uq7A+DtKysL9fP/FmKuFKjOtbn9kw93USr5nVBXtFDlEA== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/progress-indicator" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/data-table@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/data-table/-/data-table-14.0.0-canary.c78ff0429.0.tgz#de80eae3a7cfadc999b74d9326b5b77bd8fdaa50" - integrity sha512-Ou7UoStHt8x3cvLjw937wW/vT/OJ4kRF4bsB1dWFdt4jeo5Qmwe8h3p6iJRFgsdr2kHWjwrFvgzVWCHDg8FDtA== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/checkbox" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/icon-button" "14.0.0-canary.c78ff0429.0" - "@material/linear-progress" "14.0.0-canary.c78ff0429.0" - "@material/list" "14.0.0-canary.c78ff0429.0" - "@material/menu" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/select" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/data-table@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/data-table/-/data-table-14.0.0-canary.1af7c1c4a.0.tgz#091ab12128b2c341352c175d3004185c1f29c049" + integrity sha512-R1LwNQKKtC8jFKoEbPtF3u+J9P9sQ4/oSlEOmhf7RJq9Y3WgXzaMjCVZrkRLVBInH6m0nhKicAgIPzRBCV4M1Q== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/checkbox" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/icon-button" "14.0.0-canary.1af7c1c4a.0" + "@material/linear-progress" "14.0.0-canary.1af7c1c4a.0" + "@material/list" "14.0.0-canary.1af7c1c4a.0" + "@material/menu" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/select" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/density@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/density/-/density-14.0.0-canary.c78ff0429.0.tgz#f8e9e1e6cdfef479fce71de7c1072356311966ba" - integrity sha512-PkEtiDu8DP9D46Z2e9REDFi+LUOc7UftHindrsJRWWx/GtFzbVp1paX6E4hFeb/liDp5tJMw4Fd6EKUGxih8Cg== +"@material/density@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/density/-/density-14.0.0-canary.1af7c1c4a.0.tgz#2155cc7358a0350acfa734957c73ec4b935d1baa" + integrity sha512-OHtoQygsCW09FLPp2RcW+vqv2fqonJlbswQnfbLJ2lBEv68bcIviG5yWT5eKowhUHesH86kfqajdYJecMRSx0w== dependencies: tslib "^2.1.0" -"@material/dialog@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-14.0.0-canary.c78ff0429.0.tgz#ef2909aa321333b983cf930c6bc7ba86d7e99260" - integrity sha512-scF04SWC/tkk/HGT0450+iz0cPSuL9cnNFU5gofnU0z8rikwJEavLcEdUETKUEd1ValoMjcevX+icAxYcvUPyA== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/button" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/icon-button" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/tokens" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/dialog@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-14.0.0-canary.1af7c1c4a.0.tgz#c74782629ec5ab794489980b6119a91b2fa03b9f" + integrity sha512-MRjzutmeUSJ8yXPheHjqCj09JweNR7lWNTpry0YqMeF39hdZTt4/kcwUFeHketgtuAL+yoCAbkueoVV5yr661w== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/button" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/icon-button" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/tokens" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/dom@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/dom/-/dom-14.0.0-canary.c78ff0429.0.tgz#28ab7a21d6be3b9870a5f4a9291c0fd60187b19e" - integrity sha512-YbtomD+HjzrjCRfsAnPcopzMazJl8m9ulywl4b7bAlB6MKNjRAmNkWzRzkQ+2X4uKLmh/mKvafCH0X6zliHc+g== +"@material/dom@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/dom/-/dom-14.0.0-canary.1af7c1c4a.0.tgz#9b9041c7a4ccb2d5865c8b63c3ba48863b029194" + integrity sha512-wQGo5kBdenfw5esfLOae1ST8gWx6Ac8Axl8BUGxmpKVDRJ0mkKCZkvmhi9GIvt68cE2rOF9PO4oXd8DeFzTpGw== dependencies: - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/drawer@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/drawer/-/drawer-14.0.0-canary.c78ff0429.0.tgz#319785611541eefe058eef8c25e618082c7296c2" - integrity sha512-a8RSZYRl1do22PBk4G0S6n567bx+yTwDA5rWM9h8FCiKzg3+SW0cZJZVNVntn1+gpoGc3dj46IEUB6bVek4Eiw== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/list" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/drawer@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/drawer/-/drawer-14.0.0-canary.1af7c1c4a.0.tgz#170f71abf60a604e5b16757198e175d0effc7767" + integrity sha512-HcaG3WjzA+yQN4lb9jW9ErY52Pc0HtquRJWGfOE2t3JorpPQH0myxMsOnd4QjMBKPAwUW+5ZcU278fkFEOf2pA== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/list" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/elevation@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-14.0.0-canary.c78ff0429.0.tgz#70e4ce37cb4486526cb0c8632fe8ee3bf68f9828" - integrity sha512-1Wb2K45CRGdMACo16WW52/UHYHmvc9gCqMC9EMKpsg43C1TyFJY/ATt9Ikrvc3SpCBPdg1u1keD250KJPUXVMA== +"@material/elevation@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-14.0.0-canary.1af7c1c4a.0.tgz#efaad2d8cf9edb374f38997d39e4e78c7e03bfc6" + integrity sha512-BP/IaFFfbl2xsDrMVwJHOrphfXrK1lE/r42zMCyOTuc6McyEPBn37YSzrpCAKtOUmJ5hTRxpf+rKpmL6xMcTzg== dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/fab@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/fab/-/fab-14.0.0-canary.c78ff0429.0.tgz#774412fe62cea30bc811523ed81f42014fc2440a" - integrity sha512-r5UiehjHuf+Q30YLiBeinymWCzUV8QmbhGi6vB+Dm6QsOEIqsfBhezZnxdGJ4VROk+uhNZbjJnfYJ1/cxW49yA== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/tokens" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/fab@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/fab/-/fab-14.0.0-canary.1af7c1c4a.0.tgz#b2d5f057250f41539cc10c7ddcc62576e0b3f700" + integrity sha512-VV29vzjWbOOo+fsUyZt40jjZlGVUHLVhxGc9uyo8dljIoN4WAybgWEenVMQKOrsD03+oD3LCXe9HK6aqom3NcQ== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/tokens" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/feature-targeting@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-14.0.0-canary.c78ff0429.0.tgz#42bcf8edaf0e2678966b76296699a1de759f0187" - integrity sha512-6cFV+UjmJ1TaHRMc4Un2GK2IupbzZKwKWTeRsAW/tbGqnsAxixXcVUQmhVU5vLbRgx8yNplDVaeo8x1jhZIxVA== +"@material/feature-targeting@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-14.0.0-canary.1af7c1c4a.0.tgz#b2d90a3c31e42a864606cc5f85e8a8c0f27dee99" + integrity sha512-sVDX9649S9zq4Ywuw6mcx7DFnLSy9Ls02hSibIwZXvWcKkND8kLBO/q0Tc7sy6w5MC4P1oDuGaLZWxCWtab5Kw== dependencies: tslib "^2.1.0" -"@material/floating-label@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-14.0.0-canary.c78ff0429.0.tgz#84c2d40f6f242758a6dfb616ba2160fdbd52f8d7" - integrity sha512-4IYo7qO/QCKyaZqeI2bt1QhO2u//bRC5c7HkYhreD8KYEceo2VCBw1Xdh9xhU3qtyhDDxutyNCjCqil5vBxvvA== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/floating-label@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-14.0.0-canary.1af7c1c4a.0.tgz#c10e5bec1598cdc2f640aca92bdf22a4d9cae6af" + integrity sha512-ELj4sbCLJKLeh93xFOIE36UE7RlvBPeWPynzl00AslQhRIBgH8Hkta2j2sKPBbAgsYWaq+59oeryD52qQjlXXA== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/form-field@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-14.0.0-canary.c78ff0429.0.tgz#03afc2047e3ef4ed09eec35e5e8eacf6db2d544c" - integrity sha512-8khbIQI1Q9pGGMWBqDIRZ5WARde8SwxjSEeW4Gk0oUfJsLu8Bh7huOAg1Gz2TcCLnQzaAJoUhJtYifC7inmQ4g== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/form-field@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-14.0.0-canary.1af7c1c4a.0.tgz#6c972aeace705fa28a1912438e2db965440b4360" + integrity sha512-MeY7DASplc9rKLA7O0PAwZ6LFeDogvLvGY68rJLllrE19XeUxna7Mj2H9C77jubUXHSBR1FeWZSFDYKrmxwLtg== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/icon-button@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/icon-button/-/icon-button-14.0.0-canary.c78ff0429.0.tgz#233c5eae4949901db40f477c9f47f98bc5a267e1" - integrity sha512-4MTgqbyR3RhLIZk/RF5ZgaA9clDULDkQhIngpnCTiOvP8JLPnkMVrXgs447n0fAv7K8U2UP3uNpY1vwpEcACUg== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" +"@material/icon-button@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/icon-button/-/icon-button-14.0.0-canary.1af7c1c4a.0.tgz#703e631f391e855f71a1b3ef4d68a1c4fd729c5f" + integrity sha512-/gRqNehNUGh+zSunECp2T7p8jn2P8M5zp6PtA4voq2vBKKNHcwlhdr2OsiBDPi26fZmHX8ntUAE2Zk6YwdNRWw== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/image-list@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/image-list/-/image-list-14.0.0-canary.c78ff0429.0.tgz#46acba28adb69082d31a78054a0e561d742a6998" - integrity sha512-FdtWDsX/48bgX+sPpcwdY7F8ximrUqZoLigSqVaCQOMwineq69+OODH6zxY1fgpqu2LRAtSM4/xQK6E5EQhQGg== +"@material/image-list@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/image-list/-/image-list-14.0.0-canary.1af7c1c4a.0.tgz#4f3361605b553b90845007cfbc0abfb56842bc85" + integrity sha512-9CJAaVt7jEl4bD1IXY2qjncC4S5/u32SWb6jFPT3TyUTmwRu34UTIz76wPXQCK2vp+8d5WpGDkvfiggfgFspNA== dependencies: - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/layout-grid@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/layout-grid/-/layout-grid-14.0.0-canary.c78ff0429.0.tgz#7ef723f19f33a46dfed406cf8e178623cbc3400d" - integrity sha512-pPYjwnGZEStvImgi04ZQzs7X87MDNWXc/GdtjBleJRBH98F9XF98glu2Clh3fiag/Ik0WbL3xnZKYLIrcz3VNQ== +"@material/layout-grid@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/layout-grid/-/layout-grid-14.0.0-canary.1af7c1c4a.0.tgz#9e93df5af4487458d3831d2c6842a3a3503af4b8" + integrity sha512-EoVkitL+HGcpuml5ARFzvf7Rad34zqgDg5g1TiwIldgW8bESUmgXfiN3JLFUm6kfAhDKNDUWkO2a4D6XxycV8w== dependencies: tslib "^2.1.0" -"@material/line-ripple@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-14.0.0-canary.c78ff0429.0.tgz#ca2ab6e3bf05d274d0195b26a24a587fbb67062b" - integrity sha512-1XqroaCU7a9JZokvqXLP7q6RQIUdazXFf9rfEVK48ZXgUGhrC6h6y9Jf2FzZjYpzkxb6Oe9cdcU4Z15rpbcwYg== +"@material/line-ripple@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-14.0.0-canary.1af7c1c4a.0.tgz#656927d2fb8e06e5b80517a4e43b72a851c9c01c" + integrity sha512-2lY77ibaCsQGLvndXpaLSy7DbsmC2uE5GHA5GPPwif72cyE1QkM8haZWpBoyGh4I6vZUGzicN7qtqA7s+W+vUg== dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/linear-progress@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/linear-progress/-/linear-progress-14.0.0-canary.c78ff0429.0.tgz#6d9ab4d5ea4cde537fc1370cd88c880563001eb0" - integrity sha512-XX1cQrVQ5OHGKxzu85CRLwfJ+KvZTwj3b1f0xRuT26McTDJ2F6ABukzaJTuUteJEpdmD8eKKORYR6I4HaDCKUg== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/progress-indicator" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" +"@material/linear-progress@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/linear-progress/-/linear-progress-14.0.0-canary.1af7c1c4a.0.tgz#d1df6136b6b503e255b69e9593787c2306a605ba" + integrity sha512-SbQ2Hl2SpO8sOCFxBOhhW5VPpOSbsU9ryoBF4CdvQsKVDXThyly0kMv8AfDDsiTvwh+ovTq3e2Qo/qxArgcukw== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/progress-indicator" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/list@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/list/-/list-14.0.0-canary.c78ff0429.0.tgz#5467df28d604bbe42dd67b966190b179299e1ed0" - integrity sha512-hjNB5/zGqG+1nhV266qQ3oD+P3gULuAPxOrhvDzLZT5wDhF/cSGD0jKKxDMLu+n5UlHHJuEtctDHBWluo4bagg== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/list@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/list/-/list-14.0.0-canary.1af7c1c4a.0.tgz#30382722c8a704ce86a4a2dbdc6f31be340177d4" + integrity sha512-zgJM09OX99vTdD3hUrvliDkH5sDWkMziYKNMsHht3iRkQEoPF8oY8IyWXFbyvLp9+nqdaX3Me74aUS6dEEtLPA== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/menu-surface@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-14.0.0-canary.c78ff0429.0.tgz#084349a9b9c20cbf61534b9a529af67129345bd9" - integrity sha512-5j0vKwMJeaLQ1Khlkxw3TsVxCnxdEk7R2Y7ZnV1pEgHdqsSQUDGsW5kSWIBfzXIzTi1MvjkRzBJD2Q2T6mglhQ== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" +"@material/menu-surface@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-14.0.0-canary.1af7c1c4a.0.tgz#db03495cba95096535ec95cf7f23fb75a18cbfc2" + integrity sha512-V8CKM/oS6mrS20MWs9nvNuTZiuc6o6df+QMeqzjxFRUKwSqn1KOj3O+mCvFoDqixIQx4pXxJTniltGP4V3ALEw== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/menu@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/menu/-/menu-14.0.0-canary.c78ff0429.0.tgz#f361f98f45d66e8e03d5ce7ec89be649d7edb2ce" - integrity sha512-tY68s5TiMCkgYb2NUCzU0S76J83dMXXWoogYC5nuwCweZW6tGyMFgggxLfWICNxoAuD11eOIln4BO1+jEWRh3g== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/list" "14.0.0-canary.c78ff0429.0" - "@material/menu-surface" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" +"@material/menu@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/menu/-/menu-14.0.0-canary.1af7c1c4a.0.tgz#f930a0d660c3b317b9458d468e0115e0e6e8b2f1" + integrity sha512-H8pUjoempYskp8Gs1em2wFGsgoLHzsBqWQ754eMI7kIFlVkRQgzxdZ7+vEE3IqptfPUpYtY6Y7s1EH+FW5VzFw== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/list" "14.0.0-canary.1af7c1c4a.0" + "@material/menu-surface" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/notched-outline@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-14.0.0-canary.c78ff0429.0.tgz#18727dc5020fd613ea02484380c12ce23cec5c62" - integrity sha512-f4Nx8KwqaqmR4n3h3H/kEOTMh74UYyc1yxtI/MQfrDiU2/+29ooZor1yRASWGg8lVG0VUy93vCLDRjNzVzoN0A== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/floating-label" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" +"@material/notched-outline@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-14.0.0-canary.1af7c1c4a.0.tgz#63b95d148e34942a5c29b4058650e1892ab8938a" + integrity sha512-duJ8KE2juuU1Vo8ia7zcHH2RCZUFaUMaCoSLbFbeUVRomDkxpi0DBRF+VSAaw4hvUFRaI0fM+IfmmlXr/gziKA== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/floating-label" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/progress-indicator@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-14.0.0-canary.c78ff0429.0.tgz#98fa20a1b1752819e9903f98a2f789a8b441158c" - integrity sha512-zES1nWFlgDshZuju2rrK0ofymL/jwTszqUAtzdHUcZBiBEWis6LOJue9hXBZLyG28CjYmKe3Dkvrl1mVcUQ2hg== +"@material/progress-indicator@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-14.0.0-canary.1af7c1c4a.0.tgz#58c3a4db55e66d7974feebf3d33d3e2a82123ec2" + integrity sha512-05z6HR+X0LGh5gxj1DfwagqyWRHiggbUc5n9ikHXdnxHyTQXXZVD+61YNpRMWHjmznLFcR4YclxpRGQUmAFtXg== dependencies: tslib "^2.1.0" -"@material/radio@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/radio/-/radio-14.0.0-canary.c78ff0429.0.tgz#9f104d7ef087a02a65cd1672ca0fd18a1bd1de16" - integrity sha512-ZANWUYlmyDBQYEk/zA7uIul7n2PR47yio+V13Vg0ZRBqEPOOCrQ3KsKA/pfNyGcUVZscfvcWwquS/YNxzEtxxQ== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" +"@material/radio@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/radio/-/radio-14.0.0-canary.1af7c1c4a.0.tgz#a31e68ae64edb44dbf669aa1c160e37a256eadfd" + integrity sha512-vyQRz5oG9lQcrBCvJHnqytAgVwOjScvsY+EkVOFU/3n6lLM0YB3czGn8jOaSnVurQx6jAcjfFZoNJHMOSDiCcA== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/ripple@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-14.0.0-canary.c78ff0429.0.tgz#4b2c21343fbb758de1cc4196f9de1890a64dafa4" - integrity sha512-e8iL5ATHkz7jDCjV5BCIMSf7gmuRw5IhOF8jiU5OEYTW4//MdWoXafLelPEDq2jGqFbEF1kM0tjZWBAK2o1jAw== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" +"@material/ripple@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-14.0.0-canary.1af7c1c4a.0.tgz#4645353aada04742fbe12c1d97757cb78c21508b" + integrity sha512-xbTIHYApFyUz2tgW04aYKuI3l6Z41NTb3HNNLVCH0gGNpy/071D38RKgHy9OPCKL0Jhnw9waef2Mn+PWkjPV1Q== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/rtl@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-14.0.0-canary.c78ff0429.0.tgz#e69f7a68fd91c925a41871fbe25d905cdb0963e3" - integrity sha512-mOyqd/XnDgBtWWcBR/aVFKYx6dxVjgT4qkzMbDvp62v86C3LtetDtPRd7+qlPiapZdoYMWFeDIuMEet1t+Gq4g== +"@material/rtl@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-14.0.0-canary.1af7c1c4a.0.tgz#ed81ef2bc3c990e169a85bd7d5d85959194b2fae" + integrity sha512-NWVGgXpqZQbu2Civhm0LgPrgpGbN5h8HSDNhk/jBQeZ9BDdobDj9Z6Sr3fr44tIlNadpXMeDBPNzpyKDQu8Wcw== dependencies: - "@material/theme" "14.0.0-canary.c78ff0429.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/segmented-button@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/segmented-button/-/segmented-button-14.0.0-canary.c78ff0429.0.tgz#065d80c8a6b33f716b12fb5a62a4f4112a4d304d" - integrity sha512-UeOIVmWCfNyOSlfHjeWbI5/Rd6XVo4Hnh85t5aaoAiBnID7vbExEgwyz87pQ5tgSROehcTgcy1lz1Of8J2vvCg== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/segmented-button@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/segmented-button/-/segmented-button-14.0.0-canary.1af7c1c4a.0.tgz#88a44c6ce229a36144a71f089a631c0f5ab2d4ee" + integrity sha512-Qn8vB5RCcyOpNXggYCpnBoFI4Z++Qi7xIO/DAWFVn8EbSBzMSItNr9276Qm4NG/Q9pyihaYEUXEM4ViG5dEbCg== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/select@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/select/-/select-14.0.0-canary.c78ff0429.0.tgz#d942725a2d729423cc1f0ba54de1b2268444c8d0" - integrity sha512-vGJl7ehD8A/1CjaX4/uwN46VfGNBsNjOpyyW71WwWscuaR2+WI4+W6aDf+Oy7aFnTyqmLyRsLlIE8VdnEgoH2A== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/floating-label" "14.0.0-canary.c78ff0429.0" - "@material/line-ripple" "14.0.0-canary.c78ff0429.0" - "@material/list" "14.0.0-canary.c78ff0429.0" - "@material/menu" "14.0.0-canary.c78ff0429.0" - "@material/menu-surface" "14.0.0-canary.c78ff0429.0" - "@material/notched-outline" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/select@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/select/-/select-14.0.0-canary.1af7c1c4a.0.tgz#72a513044e16a5c8210df3d77599888250231e73" + integrity sha512-YvYg1oTEjm1qKxMQu9LcZwmNuf/WtF3ovfOlqLOs8diOHjNhjpA0JEkNlKh0KSwljEMA0bgsIoE5MXCTP67jww== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/floating-label" "14.0.0-canary.1af7c1c4a.0" + "@material/line-ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/list" "14.0.0-canary.1af7c1c4a.0" + "@material/menu" "14.0.0-canary.1af7c1c4a.0" + "@material/menu-surface" "14.0.0-canary.1af7c1c4a.0" + "@material/notched-outline" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/shape@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/shape/-/shape-14.0.0-canary.c78ff0429.0.tgz#27bbcef72ff231f15948047d30e12cf95c934802" - integrity sha512-0JSV3+rEl4oKH2JMIlG0yvp+60rYD0ahdVjq+6jgU9CprSaegI1EFRI8o2HFEy0jN0MkSQ4wx88wC8XqWYb4aQ== +"@material/shape@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/shape/-/shape-14.0.0-canary.1af7c1c4a.0.tgz#f7e5e088cdeea739db18bafe38289ff6ea74c8e2" + integrity sha512-sZ3AK8JvLUiylVd/yMLR+4WbxC9zLCibeaU5zz0PFSsbuoWwo4vwWXhBIox/bsLzp9BZPDi89+SG5B07UyPx1Q== dependencies: - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/slider@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/slider/-/slider-14.0.0-canary.c78ff0429.0.tgz#31d8d4d04abb46284742ec0a1ce3a006d0cfe0d2" - integrity sha512-sajgvrPfa0AoVqi5Oz8h0H7+iaIMoNH4I4K2FL1z7abZ0V9n8VrN8M3RDTjdGaDAci7dDNLYsnlGlgTUHEaqpg== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/slider@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/slider/-/slider-14.0.0-canary.1af7c1c4a.0.tgz#8d98b9747ecb5d9303e8126787faa41de028a376" + integrity sha512-dIyJr8wGAg+H8jebMzArJ5Mot7scAOsoStso3TrCPYodQwUxOJ6Sl2uroJAE1tTIGaI+ehgl9rkZMGNWT+4YhA== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/snackbar@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/snackbar/-/snackbar-14.0.0-canary.c78ff0429.0.tgz#a52a197e0168b17b437f0026357df082b5138909" - integrity sha512-fjVoKLcvwjr0QlHGXJ/Mv/vnP8xlSXcfm51SnWI+zYj8CIN3w7fmas68UAREBQJj1VI4w/4Bbm/OISPEWt4LqA== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/button" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/icon-button" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/snackbar@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/snackbar/-/snackbar-14.0.0-canary.1af7c1c4a.0.tgz#89332a89f575d3e16d22d19c3cd45f12c25c3b13" + integrity sha512-XLVPY0DNQ11/PukrLJ7cxu6NhsekJPJHarg2Le8VnPqAy2lUeIezldgpojTMvPfRv0bRJc7sB/i8F9wkDnj42Q== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/button" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/icon-button" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/switch@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/switch/-/switch-14.0.0-canary.c78ff0429.0.tgz#839b54ca48bbf95ab4fadc7fb3d2e8c0942f256d" - integrity sha512-IoN9BxXHsMtRmFK6GOGiku9/vbxGTAZ/KEgWVCndR5C6/5P82TRQBtjFJqCPWjCpM86Hex/xjeg4t5tBxqHYqg== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/tokens" "14.0.0-canary.c78ff0429.0" +"@material/switch@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/switch/-/switch-14.0.0-canary.1af7c1c4a.0.tgz#adccd76b2958237c0c778c7ff8cd263be0c3bab6" + integrity sha512-ckHnt9zBSIy0E1XTligNmZRvtSV+v5Hvl5Kd8UCbEpMa2zEY7KXa6koLZVNcE8+oyR9x23dCVEBoVz9S1cwF8Q== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/tokens" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/tab-bar@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-14.0.0-canary.c78ff0429.0.tgz#5ee83494f8cfc356d8fc161614fec652cf6d5ffa" - integrity sha512-YOGOuPwwbA/huCmMYVC2b8cdzlGXQEyGigQyPMpQuVvdKwrbdDPHaa70fPYqLy9q25yBxoP0no5l6ZiFjSUQNw== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/tab" "14.0.0-canary.c78ff0429.0" - "@material/tab-indicator" "14.0.0-canary.c78ff0429.0" - "@material/tab-scroller" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/tab-bar@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-14.0.0-canary.1af7c1c4a.0.tgz#1e09d3cc6cb4e07846d8377f41226de8de1885c5" + integrity sha512-rn7fDyUK8LDl/7TGjCQn7OXB1AwoOfb956XLp5n9rthWFlDgpxcJBNMiyE1BLLGVBbUTRJu/YaNFa9D2Gi0OCg== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/tab" "14.0.0-canary.1af7c1c4a.0" + "@material/tab-indicator" "14.0.0-canary.1af7c1c4a.0" + "@material/tab-scroller" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/tab-indicator@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-14.0.0-canary.c78ff0429.0.tgz#07a33f9d17333512085a5df6ce44e3417454b900" - integrity sha512-3UHnPMSm+39rvoB5I5BIOpAdHzbxZqjZrk1980hJiW6Q2iLsnvYa4Di8lb19Qqx8Qg2ruptlg8XQa4zKPW3s5Q== +"@material/tab-indicator@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-14.0.0-canary.1af7c1c4a.0.tgz#835aef2f4754b81c3065a9f7e0d31f39679cf183" + integrity sha512-yiQqmgJy2O8z8eKVckp0bU3v19Za1tFP0v625M/S9PEJrTnYvQsMRKAR6JZEie1Smu8JMdTEqlk/3cKjek4hFg== dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/tab-scroller@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-14.0.0-canary.c78ff0429.0.tgz#0b650f6140eb335ce9f2494e95cbfe16525eb090" - integrity sha512-pu9SXllMJs30Xk+D+9jJEb84cWK0wXgoLfgQ5dqiljcXp3rmFF8DA0i4RnooKY1o6yXFXR7gctVuYZU3Y+VOAw== +"@material/tab-scroller@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-14.0.0-canary.1af7c1c4a.0.tgz#7a020734e7da61119c8b9ea4711a7b22dc0444d7" + integrity sha512-YtJ7d+AIDRsMvHvrKiLLyu3yZte98/IzSbg5Kxl/fmaqrZZn3VSEP0hsVPSjNuqa4RsWIqFB0PCUI/nodbtGGA== dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/tab" "14.0.0-canary.c78ff0429.0" + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/tab" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/tab@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/tab/-/tab-14.0.0-canary.c78ff0429.0.tgz#f72ea5dee3f664672923863d747a3ec27200f313" - integrity sha512-4J5C2vwn7blnt6vDM+60RzfGbkxTQRVhBIfiTpumXn5DwaE+oYrs/0SOC2EL8Hdwh5gCtRF+2B9NbvTzSkMrNQ== - dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/tab-indicator" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/tab@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/tab/-/tab-14.0.0-canary.1af7c1c4a.0.tgz#3235eb3f4ad75aab1e0e03919778edaa8a18e958" + integrity sha512-3HMhnfu8PiXQ94zFAquHVXU/gzlYaq+Uo0YxGoqrm7RkNnTMzlIC3XVFYGhBboSzm2uf4xes+DIGEIw6U9jYhQ== + dependencies: + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/tab-indicator" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/textfield@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-14.0.0-canary.c78ff0429.0.tgz#b26c2393001ed29447a1428c3e3e429f52f33d81" - integrity sha512-d7LwFcQPiM7uDpd1gZrh2DvHWfY2N50JmYSPRezgPego1Q5LP6FZglnOIFPI9chLk4byAJT6bJ5GKf9NASOSRw== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/floating-label" "14.0.0-canary.c78ff0429.0" - "@material/line-ripple" "14.0.0-canary.c78ff0429.0" - "@material/notched-outline" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/textfield@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-14.0.0-canary.1af7c1c4a.0.tgz#a896ea3308c3598b492227dc04d3fb7f052d9d95" + integrity sha512-rmxt0VfiT2IIhHF6reAAFZ+vENtuCxZOm8o8KZn2ltWpgOBiipTM/6ploI/lD8rekia4HFoSNOm0Ti8ThxT7KA== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/floating-label" "14.0.0-canary.1af7c1c4a.0" + "@material/line-ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/notched-outline" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/theme@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/theme/-/theme-14.0.0-canary.c78ff0429.0.tgz#eb0b6147f39aefb530c14e80054a68b9f0f6faef" - integrity sha512-/OgDoLvlsrBVHePIr0jM8Th8g2dAaqwe4zgiqM4Dvs8YQOcIt7przqOYquIeHSUkX9eBVdXKLnKJBAEiwEFZUg== +"@material/theme@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/theme/-/theme-14.0.0-canary.1af7c1c4a.0.tgz#9ad1f1883674de258815c8729d8ffa7f2bfd2cca" + integrity sha512-9VW1D9zTKZt/FdWuASnwEZZMD1m5y79bscB5UmH4BfOATlAz4IpYKsJQot71PsYW9uBA3FXrW5JOXIYTdC5uxQ== dependencies: - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/tokens@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/tokens/-/tokens-14.0.0-canary.c78ff0429.0.tgz#6b97852714015660ee156edae11179e29ea8a29d" - integrity sha512-ndoyWFaAm2zMfyhsSUQsIqZrnWlvAmrq1U4ryxjvWt74cnbgOSaqjQ9rA/TUgQhVnN4UzBxCb3gvKpIlzEmZCQ== - dependencies: - "@material/elevation" "14.0.0-canary.c78ff0429.0" - -"@material/tooltip@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/tooltip/-/tooltip-14.0.0-canary.c78ff0429.0.tgz#31155ffe7df17fc23bae861e7ed1991c6e023be6" - integrity sha512-wLIfDOzAKD+aXH0qf+mJt/40Ly6LX8HTmZ0bgSVUDMkSyMmJC5ScqbUsND5Lbkw5s7C8qjeJHcKbefDm2j0/hg== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/tokens@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/tokens/-/tokens-14.0.0-canary.1af7c1c4a.0.tgz#6741f5aa54eb0bcad674fafce2b7c326f9027924" + integrity sha512-IvVk44Aa5T3/MBPH1u97yWe9OUjZhpdulORrT7mSlazsCJjweFIBuO4zPpvOMS/n5UJonE1VdajtsbF6jLg2Og== + dependencies: + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + +"@material/tooltip@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/tooltip/-/tooltip-14.0.0-canary.1af7c1c4a.0.tgz#6cd3ef4a127961765807fa60af437ed88150b8d0" + integrity sha512-qe8hqE5yF/qWav8S2d9CKEkS3vIETR3SzI1sZIsY/EiD+YcAPSZFo2T+EK4ZnFoxQKhAjEWHzEB+krpS92QyAg== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/top-app-bar@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-14.0.0-canary.c78ff0429.0.tgz#c00335c4c364259be601440b5721d20b60746fb7" - integrity sha512-pHEksbjDyltoqpyOuryb3k2quh3mDnzOjcys7MWqas5Le6IF4nVcdc/TAoH1VpNwYeTqmatOXO0/WZdOK43eIw== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +"@material/top-app-bar@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-14.0.0-canary.1af7c1c4a.0.tgz#95679ecb1428b0a80411a08dc34e6574f83c0f7d" + integrity sha512-tbb0OC6BAYe0TJTm16Aa4XWaSc4FHxikN9YGXFZ8Jq1NV6p9ZPc6KWp4V8ywwWtXHuGaZCP9Hz3R2y3IAGdaQQ== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/touch-target@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-14.0.0-canary.c78ff0429.0.tgz#59eeab90dedf5498b783fea913215af199120740" - integrity sha512-gs30aDfi+HLeyB86QGvfiLEHJ6Ypun1mPtI+6meSKUGjj+kxDwWIRRgEWIEjIzlxdkfKrBs1vH6xMsbNmKuDXQ== +"@material/touch-target@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-14.0.0-canary.1af7c1c4a.0.tgz#5bbe1310ae10bbc3ca357247a9ebb7626b76bc2b" + integrity sha512-tIW2Ju9nTCibcgL9/N8AhVEwHdOvWu6nsWFAIu2WsstOJbBcA1aDXfzd2JPU0Yhn4Weo1wJQU5iD9lo/uX9NXg== dependencies: - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@material/typography@14.0.0-canary.c78ff0429.0": - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/@material/typography/-/typography-14.0.0-canary.c78ff0429.0.tgz#294a41b804d357f4b27371ee1b2a4cba1e8448e2" - integrity sha512-wGehXTuV7tA7eE+C72VkIooQcEhZlO29pdP4adYFowH1EIGp3uB/gSCUBXVdBog/wkX/1Vs7QnVwDjWXs05UPA== +"@material/typography@14.0.0-canary.1af7c1c4a.0": + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/@material/typography/-/typography-14.0.0-canary.1af7c1c4a.0.tgz#457b9c276d0168f3d50a46bb474cc587c8da184e" + integrity sha512-sBnN+ZuMOEQ2u5eI6/OxewFqlVoeoQssZwR2lb4XUVDHrGKWUNbPvnbs1O8Ijybw4IttWVRG8TJMiLJmFRorPQ== dependencies: - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" "@microsoft/api-extractor-model@7.13.11": @@ -11348,59 +11348,59 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" -material-components-web@14.0.0-canary.c78ff0429.0: - version "14.0.0-canary.c78ff0429.0" - resolved "https://registry.yarnpkg.com/material-components-web/-/material-components-web-14.0.0-canary.c78ff0429.0.tgz#fea8cd6e4979bfeb5e79e5a2b386b17792b0dbd9" - integrity sha512-uowe50uULbHDdiVZhAzFToh6iqKHmVZVzvelNVV9YVJQhiUTDO9iUGcM3sRQu4tg9hknNgqMpBL/IO4JvXekqw== - dependencies: - "@material/animation" "14.0.0-canary.c78ff0429.0" - "@material/auto-init" "14.0.0-canary.c78ff0429.0" - "@material/banner" "14.0.0-canary.c78ff0429.0" - "@material/base" "14.0.0-canary.c78ff0429.0" - "@material/button" "14.0.0-canary.c78ff0429.0" - "@material/card" "14.0.0-canary.c78ff0429.0" - "@material/checkbox" "14.0.0-canary.c78ff0429.0" - "@material/chips" "14.0.0-canary.c78ff0429.0" - "@material/circular-progress" "14.0.0-canary.c78ff0429.0" - "@material/data-table" "14.0.0-canary.c78ff0429.0" - "@material/density" "14.0.0-canary.c78ff0429.0" - "@material/dialog" "14.0.0-canary.c78ff0429.0" - "@material/dom" "14.0.0-canary.c78ff0429.0" - "@material/drawer" "14.0.0-canary.c78ff0429.0" - "@material/elevation" "14.0.0-canary.c78ff0429.0" - "@material/fab" "14.0.0-canary.c78ff0429.0" - "@material/feature-targeting" "14.0.0-canary.c78ff0429.0" - "@material/floating-label" "14.0.0-canary.c78ff0429.0" - "@material/form-field" "14.0.0-canary.c78ff0429.0" - "@material/icon-button" "14.0.0-canary.c78ff0429.0" - "@material/image-list" "14.0.0-canary.c78ff0429.0" - "@material/layout-grid" "14.0.0-canary.c78ff0429.0" - "@material/line-ripple" "14.0.0-canary.c78ff0429.0" - "@material/linear-progress" "14.0.0-canary.c78ff0429.0" - "@material/list" "14.0.0-canary.c78ff0429.0" - "@material/menu" "14.0.0-canary.c78ff0429.0" - "@material/menu-surface" "14.0.0-canary.c78ff0429.0" - "@material/notched-outline" "14.0.0-canary.c78ff0429.0" - "@material/radio" "14.0.0-canary.c78ff0429.0" - "@material/ripple" "14.0.0-canary.c78ff0429.0" - "@material/rtl" "14.0.0-canary.c78ff0429.0" - "@material/segmented-button" "14.0.0-canary.c78ff0429.0" - "@material/select" "14.0.0-canary.c78ff0429.0" - "@material/shape" "14.0.0-canary.c78ff0429.0" - "@material/slider" "14.0.0-canary.c78ff0429.0" - "@material/snackbar" "14.0.0-canary.c78ff0429.0" - "@material/switch" "14.0.0-canary.c78ff0429.0" - "@material/tab" "14.0.0-canary.c78ff0429.0" - "@material/tab-bar" "14.0.0-canary.c78ff0429.0" - "@material/tab-indicator" "14.0.0-canary.c78ff0429.0" - "@material/tab-scroller" "14.0.0-canary.c78ff0429.0" - "@material/textfield" "14.0.0-canary.c78ff0429.0" - "@material/theme" "14.0.0-canary.c78ff0429.0" - "@material/tokens" "14.0.0-canary.c78ff0429.0" - "@material/tooltip" "14.0.0-canary.c78ff0429.0" - "@material/top-app-bar" "14.0.0-canary.c78ff0429.0" - "@material/touch-target" "14.0.0-canary.c78ff0429.0" - "@material/typography" "14.0.0-canary.c78ff0429.0" +material-components-web@14.0.0-canary.1af7c1c4a.0: + version "14.0.0-canary.1af7c1c4a.0" + resolved "https://registry.yarnpkg.com/material-components-web/-/material-components-web-14.0.0-canary.1af7c1c4a.0.tgz#5d90eb623404dfd51217f824fabeb50d3a3edd30" + integrity sha512-3e5VfmMMqqpXoZFcqnYH5x/smiLDFllInUMuz1JAvgzerdNxxn/ioDkUK62etMhUydADbrDfViwN2uPRPFq0Ww== + dependencies: + "@material/animation" "14.0.0-canary.1af7c1c4a.0" + "@material/auto-init" "14.0.0-canary.1af7c1c4a.0" + "@material/banner" "14.0.0-canary.1af7c1c4a.0" + "@material/base" "14.0.0-canary.1af7c1c4a.0" + "@material/button" "14.0.0-canary.1af7c1c4a.0" + "@material/card" "14.0.0-canary.1af7c1c4a.0" + "@material/checkbox" "14.0.0-canary.1af7c1c4a.0" + "@material/chips" "14.0.0-canary.1af7c1c4a.0" + "@material/circular-progress" "14.0.0-canary.1af7c1c4a.0" + "@material/data-table" "14.0.0-canary.1af7c1c4a.0" + "@material/density" "14.0.0-canary.1af7c1c4a.0" + "@material/dialog" "14.0.0-canary.1af7c1c4a.0" + "@material/dom" "14.0.0-canary.1af7c1c4a.0" + "@material/drawer" "14.0.0-canary.1af7c1c4a.0" + "@material/elevation" "14.0.0-canary.1af7c1c4a.0" + "@material/fab" "14.0.0-canary.1af7c1c4a.0" + "@material/feature-targeting" "14.0.0-canary.1af7c1c4a.0" + "@material/floating-label" "14.0.0-canary.1af7c1c4a.0" + "@material/form-field" "14.0.0-canary.1af7c1c4a.0" + "@material/icon-button" "14.0.0-canary.1af7c1c4a.0" + "@material/image-list" "14.0.0-canary.1af7c1c4a.0" + "@material/layout-grid" "14.0.0-canary.1af7c1c4a.0" + "@material/line-ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/linear-progress" "14.0.0-canary.1af7c1c4a.0" + "@material/list" "14.0.0-canary.1af7c1c4a.0" + "@material/menu" "14.0.0-canary.1af7c1c4a.0" + "@material/menu-surface" "14.0.0-canary.1af7c1c4a.0" + "@material/notched-outline" "14.0.0-canary.1af7c1c4a.0" + "@material/radio" "14.0.0-canary.1af7c1c4a.0" + "@material/ripple" "14.0.0-canary.1af7c1c4a.0" + "@material/rtl" "14.0.0-canary.1af7c1c4a.0" + "@material/segmented-button" "14.0.0-canary.1af7c1c4a.0" + "@material/select" "14.0.0-canary.1af7c1c4a.0" + "@material/shape" "14.0.0-canary.1af7c1c4a.0" + "@material/slider" "14.0.0-canary.1af7c1c4a.0" + "@material/snackbar" "14.0.0-canary.1af7c1c4a.0" + "@material/switch" "14.0.0-canary.1af7c1c4a.0" + "@material/tab" "14.0.0-canary.1af7c1c4a.0" + "@material/tab-bar" "14.0.0-canary.1af7c1c4a.0" + "@material/tab-indicator" "14.0.0-canary.1af7c1c4a.0" + "@material/tab-scroller" "14.0.0-canary.1af7c1c4a.0" + "@material/textfield" "14.0.0-canary.1af7c1c4a.0" + "@material/theme" "14.0.0-canary.1af7c1c4a.0" + "@material/tokens" "14.0.0-canary.1af7c1c4a.0" + "@material/tooltip" "14.0.0-canary.1af7c1c4a.0" + "@material/top-app-bar" "14.0.0-canary.1af7c1c4a.0" + "@material/touch-target" "14.0.0-canary.1af7c1c4a.0" + "@material/typography" "14.0.0-canary.1af7c1c4a.0" mathml-tag-names@^2.1.3: version "2.1.3" From c7017df6327056402fb1f40e7d6c9602006390b7 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 2 Nov 2021 23:08:36 +0200 Subject: [PATCH 017/358] build: update dev-infra package and format mjs files (#23857) Updates to the latest version of the `dev-infra` package and fixes that we weren't enforcing formatting on `.mjs` files. --- .prettierrc | 4 +-- integration/linker/link-packages-test.mjs | 12 ++++--- integration/npm-packages-from-runfiles.mjs | 6 ++-- integration/ts-compat/helpers.mjs | 24 +++++++------- scripts/create-legacy-tests-bundle.mjs | 31 ++++++++++--------- scripts/github/fetch-workflow-artifact.mjs | 4 +-- .../angular/create_linker_esbuild_plugin.mjs | 18 ++++++----- tools/angular/esbuild.config.mjs | 4 +-- tools/esbuild/esbuild-amd-config.mjs | 4 +-- tools/spec-bundling/esbuild.config-tmpl.mjs | 9 +++--- 10 files changed, 63 insertions(+), 53 deletions(-) diff --git a/.prettierrc b/.prettierrc index 8822ece50ee9..da93a7ee3ab0 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,5 +5,5 @@ "quoteProps": "preserve", "bracketSpacing": false, "arrowParens": "avoid", - "embeddedLanguageFormatting": "off", -} \ No newline at end of file + "embeddedLanguageFormatting": "off" +} diff --git a/integration/linker/link-packages-test.mjs b/integration/linker/link-packages-test.mjs index 12bf58a8d299..c53b1a4c2169 100644 --- a/integration/linker/link-packages-test.mjs +++ b/integration/linker/link-packages-test.mjs @@ -76,17 +76,19 @@ function testPackage(pkg) { ast: true, filename: diskFilePath, filenameRelative: debugFileName, - plugins: [linkerPlugin] + plugins: [linkerPlugin], }); // Naively check if there are any Angular declarations left that haven't been linked. traverse(ast, { - Identifier: (astPath) => { + Identifier: astPath => { if (astPath.node.name.startsWith('ɵɵngDeclare')) { throw astPath.buildCodeFrameError( - 'Found Angular declaration that has not been linked.', Error); + 'Found Angular declaration that has not been linked.', + Error, + ); } - } + }, }); passedFiles.push(debugFileName); @@ -95,5 +97,5 @@ function testPackage(pkg) { } } - return {passedFiles, failures} + return {passedFiles, failures}; } diff --git a/integration/npm-packages-from-runfiles.mjs b/integration/npm-packages-from-runfiles.mjs index a649b63c1f05..db16950d7c07 100644 --- a/integration/npm-packages-from-runfiles.mjs +++ b/integration/npm-packages-from-runfiles.mjs @@ -20,12 +20,14 @@ export function getNpmPackagesFromRunfiles() { const workspacePath = 'angular_material/src'; if (!runfilesManifestPath) { const packageRunfilesDir = path.join(process.env.RUNFILES, workspacePath); - return fs.readdirSync(packageRunfilesDir) + return fs + .readdirSync(packageRunfilesDir) .map(name => ({name, pkgPath: path.join(packageRunfilesDir, name, 'npm_package/')})) .filter(({pkgPath}) => fs.existsSync(pkgPath)); } const workspaceManifestPathRegex = new RegExp(`^${workspacePath}/[\\w-]+/npm_package$`); - return fs.readFileSync(runfilesManifestPath, 'utf8') + return fs + .readFileSync(runfilesManifestPath, 'utf8') .split('\n') .map(mapping => mapping.split(' ')) .filter(([runfilePath]) => runfilePath.match(workspaceManifestPathRegex)) diff --git a/integration/ts-compat/helpers.mjs b/integration/ts-compat/helpers.mjs index c5ab89a8512f..685b520b6073 100644 --- a/integration/ts-compat/helpers.mjs +++ b/integration/ts-compat/helpers.mjs @@ -1,8 +1,8 @@ -import {join} from 'path'; -import {unlinkSync} from 'fs'; +import {join} from 'path'; +import {unlinkSync} from 'fs'; import shelljs from 'shelljs'; -import {fork} from 'child_process'; -import {getNpmPackagesFromRunfiles} from '../npm-packages-from-runfiles.mjs'; +import {fork} from 'child_process'; +import {getNpmPackagesFromRunfiles} from '../npm-packages-from-runfiles.mjs'; import {runfiles} from '@bazel/runfiles'; // Exit if any command fails. @@ -14,7 +14,8 @@ const npmPackages = getNpmPackagesFromRunfiles(); const nodeModulesDir = runfiles.resolve('npm/node_modules'); // Path to the generated file that imports all entry-points. const testFilePath = runfiles.resolveWorkspaceRelative( - 'integration/ts-compat/import-all-entry-points.ts'); + 'integration/ts-compat/import-all-entry-points.ts', +); /** * Runs the TypeScript compatibility test with the specified tsc binary. The @@ -40,17 +41,19 @@ export async function runTypeScriptCompatibilityTest(tscBinPath) { // Disables automatic type resolution. In non-sandbox environments, the node modules // are accessible and types could end up as part of the program. '--types', - '--lib', 'es2015,dom', + '--lib', + 'es2015,dom', // Ensures that `node_modules` can be resolved. By default, in sandbox environments the // node modules cannot be resolved because they are wrapped in the `npm/node_modules` folder - '--baseUrl', nodeModulesDir, - testFilePath + '--baseUrl', + nodeModulesDir, + testFilePath, ]; // Run `tsc` to compile the project. The stdout/stderr output is inherited, so that // warnings and errors are printed to the console. const tscProcess = fork(tscBinPath, tscArgs, {stdio: 'inherit'}); - tscProcess.on('exit', (exitCode) => { + tscProcess.on('exit', exitCode => { // Remove symlinks to keep a clean repository state. for (const {name} of npmPackages) { console.info(`Removing link for "@angular/${name}"..`); @@ -60,5 +63,4 @@ export async function runTypeScriptCompatibilityTest(tscBinPath) { exitCode === 0 ? resolve() : reject(); }); }); -}; - +} diff --git a/scripts/create-legacy-tests-bundle.mjs b/scripts/create-legacy-tests-bundle.mjs index eaea311483f9..1c71e09c1b54 100644 --- a/scripts/create-legacy-tests-bundle.mjs +++ b/scripts/create-legacy-tests-bundle.mjs @@ -21,7 +21,6 @@ const outFile = join(distDir, 'legacy-test-bundle.spec.js'); const ngcBinFile = join(nodeModulesDir, '@angular/compiler-cli/bundles/src/bin/ngc.js'); const legacyOutputDir = join(distDir, 'legacy-test-out'); - /** * This script builds the whole library in `angular/components` together with its * spec files into a single IIFE bundle. @@ -72,10 +71,10 @@ async function compileSassFiles() { for (const file of sassFiles) { const outRelativePath = relative(projectDir, file).replace(/\.scss$/, '.css'); const outPath = join(projectDir, outRelativePath); - const task = renderSassFileAsync(file).then(async (content) => { + const task = renderSassFileAsync(file).then(async content => { console.info('Compiled, now writing:', outRelativePath); await fs.promises.mkdir(dirname(outPath), {recursive: true}); - await fs.promises.writeFile(outPath, content) + await fs.promises.writeFile(outPath, content); }); sassTasks.push(task); @@ -93,7 +92,10 @@ async function compileSassFiles() { async function compileProjectWithNgtsc() { // Build the project with Ngtsc so that external resources are inlined. const ngcProcess = child_process.spawnSync( - 'node', [ngcBinFile, '--project', legacyTsconfigPath], {shell: true, stdio: 'inherit'}); + 'node', + [ngcBinFile, '--project', legacyTsconfigPath], + {shell: true, stdio: 'inherit'}, + ); if (ngcProcess.error || ngcProcess.status !== 0) { throw Error('Unable to compile tests and library. See error above.'); @@ -137,9 +139,9 @@ async function createEntryPointSpecFile() { /** Helper function to render a Sass file asynchronously using promises. */ async function renderSassFileAsync(inputFile) { return new Promise((resolve, reject) => { - sass.render( - {file: inputFile, includePaths: [nodeModulesDir]}, - (err, result) => err ? reject(err) : resolve(result.css)); + sass.render({file: inputFile, includePaths: [nodeModulesDir]}, (err, result) => + err ? reject(err) : resolve(result.css), + ); }); } @@ -149,10 +151,11 @@ async function renderSassFileAsync(inputFile) { */ async function createResolveEsbuildPlugin() { return { - name: 'ng-resolve-esbuild', setup: (build) => { - build.onResolve({filter: /@angular\//}, async (args) => { + name: 'ng-resolve-esbuild', + setup: build => { + build.onResolve({filter: /@angular\//}, async args => { const pkgName = args.path.substr('@angular/'.length); - let resolvedPath = join(legacyOutputDir, pkgName) + let resolvedPath = join(legacyOutputDir, pkgName); let stats = await statGraceful(resolvedPath); // If the resolved path points to a directory, resolve the contained `index.js` file @@ -168,8 +171,8 @@ async function createResolveEsbuildPlugin() { return stats !== null ? {path: resolvedPath} : undefined; }); - } - } + }, + }; } /** Creates an ESBuild plugin that runs the Angular linker on framework packages. */ @@ -183,8 +186,8 @@ async function createLinkerEsbuildPlugin() { return { name: 'ng-linker-esbuild', - setup: (build) => { - build.onLoad({filter: /fesm2020/}, async (args) => { + setup: build => { + build.onLoad({filter: /fesm2020/}, async args => { const filePath = args.path; const content = await fs.promises.readFile(filePath, 'utf8'); const {code} = await transformAsync(content, { diff --git a/scripts/github/fetch-workflow-artifact.mjs b/scripts/github/fetch-workflow-artifact.mjs index 81efbf952c05..bdac64108b40 100755 --- a/scripts/github/fetch-workflow-artifact.mjs +++ b/scripts/github/fetch-workflow-artifact.mjs @@ -20,9 +20,7 @@ async function main() { run_id: workflowId, }); - const matchArtifact = artifacts.data.artifacts.find( - artifact => artifact.name === artifactName, - ); + const matchArtifact = artifacts.data.artifacts.find(artifact => artifact.name === artifactName); const download = await github.actions.downloadArtifact({ owner, diff --git a/tools/angular/create_linker_esbuild_plugin.mjs b/tools/angular/create_linker_esbuild_plugin.mjs index c328a7b1ed5b..6b0a315d90f2 100644 --- a/tools/angular/create_linker_esbuild_plugin.mjs +++ b/tools/angular/create_linker_esbuild_plugin.mjs @@ -16,20 +16,24 @@ function isNgDeclareCallExpression(nodePath) { // Expect the `ngDeclare` identifier to be used as part of a property access that // is invoked within a call expression. e.g. `i0.ɵɵngDeclare<>`. - return nodePath.parentPath?.type === 'MemberExpression' && - nodePath.parentPath.parentPath?.type === 'CallExpression'; + return ( + nodePath.parentPath?.type === 'MemberExpression' && + nodePath.parentPath.parentPath?.type === 'CallExpression' + ); } /** Asserts that the given AST does not contain any Angular partial declaration. */ async function assertNoPartialDeclaration(filePath, ast, traverseFn) { // Naively check if there are any Angular declarations left that haven't been linked. traverseFn(ast, { - Identifier: (astPath) => { + Identifier: astPath => { if (isNgDeclareCallExpression(astPath)) { throw astPath.buildCodeFrameError( - `Found Angular declaration that has not been linked. ${filePath}`, Error); + `Found Angular declaration that has not been linked. ${filePath}`, + Error, + ); } - } + }, }); } @@ -57,8 +61,8 @@ export async function createLinkerEsbuildPlugin(filter, ensureNoPartialDeclarati return { name: 'ng-linker-esbuild', - setup: (build) => { - build.onLoad({filter}, async (args) => { + setup: build => { + build.onLoad({filter}, async args => { const filePath = args.path; const content = await fs.promises.readFile(filePath, 'utf8'); const {ast, code} = await babel.transformAsync(content, { diff --git a/tools/angular/esbuild.config.mjs b/tools/angular/esbuild.config.mjs index 99a2bd9d8e9b..d61e8deb4c35 100644 --- a/tools/angular/esbuild.config.mjs +++ b/tools/angular/esbuild.config.mjs @@ -15,6 +15,6 @@ export default { plugins: [ // Only run the linker on `fesm2020/` bundles. This should not have an effect on // the bundle output, but helps speeding up ESBuild when it visits other modules. - await createLinkerEsbuildPlugin(/fesm2020/) - ] + await createLinkerEsbuildPlugin(/fesm2020/), + ], }; diff --git a/tools/esbuild/esbuild-amd-config.mjs b/tools/esbuild/esbuild-amd-config.mjs index 03905a0b3ded..2650b211e338 100644 --- a/tools/esbuild/esbuild-amd-config.mjs +++ b/tools/esbuild/esbuild-amd-config.mjs @@ -2,7 +2,7 @@ import url from 'url'; import path from 'path'; /** Path to the ESBuild configuration maintained by the user. */ -const userConfigExecPath = "TMPL_CONFIG_PATH" +const userConfigExecPath = 'TMPL_CONFIG_PATH'; /** User ESBuild config. Empty if none is loaded. */ let userConfig = {}; @@ -17,7 +17,7 @@ if (userConfigExecPath !== '') { export default { ...userConfig, - globalName: "__exports", + globalName: '__exports', format: 'iife', banner: {js: 'define("TMPL_MODULE_NAME", [], function() {'}, footer: {js: 'return __exports;})'}, diff --git a/tools/spec-bundling/esbuild.config-tmpl.mjs b/tools/spec-bundling/esbuild.config-tmpl.mjs index 40b694be9547..1790ee4a2dea 100644 --- a/tools/spec-bundling/esbuild.config-tmpl.mjs +++ b/tools/spec-bundling/esbuild.config-tmpl.mjs @@ -8,14 +8,13 @@ // Note: This needs to be a workspace manifest path as this ESBuild config // is generated and can end up in arbitrary Bazel packages. -import { - createLinkerEsbuildPlugin -} from 'angular_material/tools/angular/create_linker_esbuild_plugin.mjs'; +import {createLinkerEsbuildPlugin} from 'angular_material/tools/angular/create_linker_esbuild_plugin.mjs'; // Conditionally, based on whether partial compilation is enabled, we run the // linker on all files part of the test. -const plugins = TMPL_PARTIAL_COMPILATION_ENABLED ? - [await createLinkerEsbuildPlugin(/.*/, /* ensureNoPartialDeclaration */ true)] : [] +const plugins = TMPL_PARTIAL_COMPILATION_ENABLED + ? [await createLinkerEsbuildPlugin(/.*/, /* ensureNoPartialDeclaration */ true)] + : []; export default { // `tslib` sets the `module` condition to resolve to ESM. From f8e28cbc8c3dcede52e2f37210c0f81d0d8f6560 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Tue, 2 Nov 2021 22:10:45 +0100 Subject: [PATCH 018/358] build: cleanup unused dependencies (#23839) Cleans up unused dependencies. --- package.json | 7 +- yarn.lock | 392 +++------------------------------------------------ 2 files changed, 20 insertions(+), 379 deletions(-) diff --git a/package.json b/package.json index da6ed81ffb40..b9bea7e636d4 100644 --- a/package.json +++ b/package.json @@ -140,8 +140,7 @@ "@material/touch-target": "14.0.0-canary.1af7c1c4a.0", "@material/typography": "14.0.0-canary.1af7c1c4a.0", "@octokit/rest": "18.3.5", - "@rollup/plugin-babel": "^5.3.0", - "@rollup/plugin-commonjs": "^20.0.0", + "@rollup/plugin-commonjs": "^21.0.0", "@rollup/plugin-node-resolve": "^13.0.5", "@schematics/angular": "13.0.0-rc.3", "@types/babel__core": "^7.1.16", @@ -152,7 +151,6 @@ "@types/jasmine": "^3.6.0", "@types/luxon": "^1.27.0", "@types/marked": "^2.0.0", - "@types/merge2": "^0.3.30", "@types/minimist": "^1.2.0", "@types/node": "^14.14.22", "@types/node-fetch": "^2.5.5", @@ -168,11 +166,9 @@ "browser-sync": "2.26.13", "chalk": "^4.1.0", "codelyzer": "^6.0.2", - "conventional-changelog": "^3.0.5", "date-fns": "^2.23.0", "dgeni": "^0.4.11", "dgeni-packages": "^0.28.4", - "diff": "^5.0.0", "esbuild": "^0.13.3", "firebase-tools": "^9.2.1", "fs-extra": "^9.0.1", @@ -196,7 +192,6 @@ "luxon": "^2.0.0", "madge": "^4.0.0", "marked": "^2.0.0", - "merge2": "^1.2.3", "minimatch": "^3.0.4", "minimist": "^1.2.0", "moment": "^2.18.1", diff --git a/yarn.lock b/yarn.lock index edc10cb1697d..de023ea51859 100644 --- a/yarn.lock +++ b/yarn.lock @@ -721,13 +721,6 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== - dependencies: - "@babel/types" "^7.14.5" - "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" @@ -735,6 +728,13 @@ dependencies: "@babel/types" "^7.15.4" +"@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-module-imports@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" @@ -1938,11 +1938,6 @@ protobufjs "^6.10.0" yargs "^16.1.1" -"@hutson/parse-repository-url@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" - integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -3042,27 +3037,6 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@rollup/plugin-babel@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879" - integrity sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@rollup/pluginutils" "^3.1.0" - -"@rollup/plugin-commonjs@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz#3246872dcbcb18a54aaa6277a8c7d7f1b155b745" - integrity sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg== - dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" - "@rollup/plugin-commonjs@^21.0.0": version "21.0.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.0.tgz#b9e4342855ea20b5528f4587b9a90f642196a502" @@ -3450,13 +3424,6 @@ dependencies: "@types/unist" "*" -"@types/merge2@^0.3.30": - version "0.3.30" - resolved "https://registry.yarnpkg.com/@types/merge2/-/merge2-0.3.30.tgz#9e39d04f6fe4f36fa7477566cad1faf80b2a671f" - integrity sha1-njnQT2/k82+nR3VmytH6+AsqZx8= - dependencies: - "@types/node" "*" - "@types/micromatch@^2": version "2.3.31" resolved "https://registry.yarnpkg.com/@types/micromatch/-/micromatch-2.3.31.tgz#d13641cb6965294ed1b1d2ad561a331d6306962b" @@ -3941,11 +3908,6 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= - adjust-sourcemap-loader@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" @@ -4253,11 +4215,6 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= - array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -5769,14 +5726,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - compare-semver@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/compare-semver/-/compare-semver-1.1.0.tgz#7c0a79a27bb80b6c6994445f82958259d3d02153" @@ -5918,139 +5867,7 @@ content-type@^1.0.4, content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -conventional-changelog-angular@^5.0.12: - version "5.0.12" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" - integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-atom@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" - integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" - integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== - dependencies: - q "^1.5.1" - -conventional-changelog-conventionalcommits@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.0.tgz#7fc17211dbca160acf24687bd2fdd5fd767750eb" - integrity sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-core@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.3.tgz#ce44d4bbba4032e3dc14c00fcd5b53fc00b66433" - integrity sha512-MwnZjIoMRL3jtPH5GywVNqetGILC7g6RQFvdb8LRU/fA/338JbeWAku3PZ8yQ+mtVRViiISqJlb0sOz0htBZig== - dependencies: - add-stream "^1.0.0" - conventional-changelog-writer "^5.0.0" - conventional-commits-parser "^3.2.0" - dateformat "^3.0.0" - get-pkg-repo "^4.0.0" - git-raw-commits "^2.0.8" - git-remote-origin-url "^2.0.0" - git-semver-tags "^4.1.1" - lodash "^4.17.15" - normalize-package-data "^3.0.0" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - through2 "^4.0.0" - -conventional-changelog-ember@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" - integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" - integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== - dependencies: - q "^1.5.1" - -conventional-changelog-express@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" - integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^3.0.11: - version "3.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" - integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== - dependencies: - q "^1.5.1" - -conventional-changelog-jshint@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" - integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-preset-loader@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" - integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== - -conventional-changelog-writer@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz#c4042f3f1542f2f41d7d2e0d6cad23aba8df8eec" - integrity sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g== - dependencies: - conventional-commits-filter "^2.0.7" - dateformat "^3.0.0" - handlebars "^4.7.6" - json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^8.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^4.0.0" - -conventional-changelog@^3.0.5: - version "3.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.24.tgz#ebd180b0fd1b2e1f0095c4b04fd088698348a464" - integrity sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg== - dependencies: - conventional-changelog-angular "^5.0.12" - conventional-changelog-atom "^2.0.8" - conventional-changelog-codemirror "^2.0.8" - conventional-changelog-conventionalcommits "^4.5.0" - conventional-changelog-core "^4.2.1" - conventional-changelog-ember "^2.0.9" - conventional-changelog-eslint "^3.0.9" - conventional-changelog-express "^2.0.6" - conventional-changelog-jquery "^3.0.11" - conventional-changelog-jshint "^2.0.9" - conventional-changelog-preset-loader "^2.3.4" - -conventional-commits-filter@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" - integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== - dependencies: - lodash.ismatch "^4.4.0" - modify-values "^1.0.0" - -conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.1: +conventional-commits-parser@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== @@ -6389,11 +6206,6 @@ date-format@^2.0.0: resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -6872,11 +6684,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -6997,7 +6804,7 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^5.1.0, dot-prop@^5.2.0: +dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== @@ -8196,13 +8003,6 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -8593,16 +8393,6 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-pkg-repo@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.1.2.tgz#c4ffd60015cf091be666a0212753fc158f01a4c0" - integrity sha512-/FjamZL9cBYllEbReZkxF2IMh80d8TJoC4e3bmLNif8ibHw95aj0N/tzqK0kZz9eU/3w3dL6lF4fnnX/sDdW3A== - dependencies: - "@hutson/parse-repository-url" "^3.0.0" - hosted-git-info "^4.0.0" - meow "^7.0.0" - through2 "^2.0.0" - get-port@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" @@ -8676,7 +8466,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-raw-commits@^2.0.10, git-raw-commits@^2.0.8: +git-raw-commits@^2.0.10: version "2.0.10" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== @@ -8687,29 +8477,6 @@ git-raw-commits@^2.0.10, git-raw-commits@^2.0.8: split2 "^3.0.0" through2 "^4.0.0" -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" - integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== - dependencies: - meow "^8.0.0" - semver "^6.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= - dependencies: - ini "^1.3.2" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -9025,7 +8792,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -handlebars@^4.0.1, handlebars@^4.7.6: +handlebars@^4.0.1: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -9271,7 +9038,7 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: +hosted-git-info@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== @@ -9575,7 +9342,7 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -10389,7 +10156,7 @@ json-buffer@3.0.1: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -10805,16 +10572,6 @@ listenercount@~1.0.1: resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -10855,14 +10612,6 @@ localtunnel@^2.0.0: openurl "1.1.1" yargs "16.2.0" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -10964,11 +10713,6 @@ lodash.isinteger@^4.0.4: resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= - lodash.isnumber@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" @@ -11461,23 +11205,6 @@ memoizee@^0.4.14: next-tick "^1.1.0" timers-ext "^0.1.7" -meow@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306" - integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^2.5.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" - meow@^8.0.0: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -11523,7 +11250,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0: +merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -11788,11 +11515,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== - module-definition@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.3.1.tgz#fedef71667713e36988b93d0626a4fe7b35aebfc" @@ -12091,7 +11813,7 @@ nopt@^5.0.0: dependencies: abbrev "1" -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -12538,13 +12260,6 @@ p-is-promise@^1.1.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -12559,13 +12274,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -12609,11 +12317,6 @@ p-timeout@^3.1.0: dependencies: p-finally "^1.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -12717,14 +12420,6 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -12847,11 +12542,6 @@ path-dirname@^1.0.0: resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -12894,13 +12584,6 @@ path-to-regexp@^1.8.0: dependencies: isarray "0.0.1" -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -13737,7 +13420,7 @@ q@1.4.1: resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= -q@^1.4.1, q@^1.5.1, q@~1.5.0: +q@^1.4.1, q@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -13864,14 +13547,6 @@ read-package-json-fast@^2.0.1: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -13881,15 +13556,6 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" @@ -15264,13 +14930,6 @@ split@0.3: dependencies: through "2" -split@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - sprintf-js@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" @@ -15493,11 +15152,6 @@ strip-ansi@^7.0.0: dependencies: ansi-regex "^6.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-dirs@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" @@ -15918,14 +15572,6 @@ through2@2.0.1: readable-stream "~2.0.0" xtend "~4.0.0" -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through2@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" @@ -17170,7 +16816,7 @@ xregexp@2.0.0: resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -17205,7 +16851,7 @@ yaml@*, yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^18.1.2, yargs-parser@^18.1.3: +yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== From 7cd3a36fd202d14d893505f90ec501a6d90939c8 Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Tue, 2 Nov 2021 14:14:04 -0700 Subject: [PATCH 019/358] ci: update to the latest version of commit-message-based-labels for github action (#23830) --- .github/workflows/dev-infra.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 0b93642575f1..6b15570dd297 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -5,10 +5,10 @@ on: types: [opened, synchronize, reopened] jobs: - breaking-changes-label: + labels: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: angular/dev-infra/github-actions/breaking-changes-label@3f4646c252bc54b2ae93b4e322ebde9030de30b2 + - uses: angular/dev-infra/github-actions/commit-message-based-labels@589f402fa601c4c8ab006bdfb337564b3ea32338 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} From 665479a1f845fe5414c98c02b6955dfa05823e99 Mon Sep 17 00:00:00 2001 From: Suguru Inatomi Date: Wed, 3 Nov 2021 06:16:00 +0900 Subject: [PATCH 020/358] docs(cdk/a11y): fix typo in a11y-visually-hidden SassDoc (#23791) --- src/cdk/a11y/_index.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cdk/a11y/_index.scss b/src/cdk/a11y/_index.scss index f49e590fbf88..2db185eb6518 100644 --- a/src/cdk/a11y/_index.scss +++ b/src/cdk/a11y/_index.scss @@ -1,5 +1,5 @@ /// Emits a CSS class, `.cdk-visually-hidden`. This class can be applied to an element -/// to make that element visually hidden while remaining available to assitive technology. +/// to make that element visually hidden while remaining available to assistive technology. @mixin a11y-visually-hidden() { .cdk-visually-hidden { border: 0; From a80160321ba15eff7e124cfd231d157199a7e5c6 Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Tue, 2 Nov 2021 17:13:51 -0700 Subject: [PATCH 021/358] docs: release notes for the v13.0.0-rc.3 release (#23877) --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d73b548cc22..18647ebf0eb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ + +# 13.0.0-rc.3 "fir-valise" (2021-11-02) +### material-experimental +| Commit | Type | Description | +| -- | -- | -- | +| [e7a77edf1e](https://github.com/angular/components/commit/e7a77edf1e3f0215c26715366a31bf9c3f5e6cfd) | fix | **mdc-tabs:** update theming api ([#23855](https://github.com/angular/components/pull/23855)) | +## Special Thanks +Andrew Seguin, Joey Perrott, Kristiyan Kostadinov, Paul Gschwendtner and Suguru Inatomi + + + # 13.0.0-rc.2 "tweed-thimble" (2021-10-27) ### cdk From a662737cc81f0994cb3b9fc36703f035cf7d30c2 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Wed, 3 Nov 2021 19:29:38 +0100 Subject: [PATCH 022/358] build: update peer dependency ranges for v13 stable release (#23874) Updates the peer dependency ranges for the v13 stable version: * v13.0.0 of Angular Components requires at minimum a stable v13 version of Angular framework (no pre-releases allowed once we hit stable) * For RxJS v7, minimum `7.4.0` is needed as that version comes with a ES2015 distibution wired up in the `package.json`, allowing for better optimized applications. This matches with `@angular/core` and the CLI. https://github.com/angular/angular/commit/48aa0039ea75693f751b26474029efdb6c22377://github.com/angular/angular/commit/48aa0039ea75693f751b26474029efdb6c223770 --- packages.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages.bzl b/packages.bzl index 9836d33994dc..329e7ff57245 100644 --- a/packages.bzl +++ b/packages.bzl @@ -1,10 +1,10 @@ # 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. -ANGULAR_PACKAGE_VERSION = "^13.0.0-0 || ^14.0.0-0" +ANGULAR_PACKAGE_VERSION = "^13.0.0 || ^14.0.0-0" MDC_PACKAGE_VERSION = "14.0.0-canary.1af7c1c4a.0" TSLIB_PACKAGE_VERSION = "^2.3.0" -RXJS_PACKAGE_VERSION = "^6.5.3 || ^7.0.0" +RXJS_PACKAGE_VERSION = "^6.5.3 || ^7.4.0" # Each placeholder is used to stamp versions during the build process, replacing the key with it's # value pair. These replacements occur during building of `npm_package` and `ng_package` stamping in From be9e11ba4f40a644b0fc3f6399306518682809ec Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Wed, 3 Nov 2021 12:44:35 -0700 Subject: [PATCH 023/358] docs: release notes for the v13.0.0 release (#23886) --- CHANGELOG.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18647ebf0eb6..7384021e580f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,96 @@ + +# 13.0.0 "fir-valise" (2021-11-03) +## Breaking Changes +### cdk +- * `CKD_COPY_TO_CLIPBOARD_CONFIG` has been removed. Use `CDK_COPY_TO_CLIPBOARD_CONFIG` instead. + +- * `ConnectedPositionStrategy` has been removed. Use `FlexibleConnectedPositionStrategy` instead. +* `OverlayPositionBuilder.connectedTo` has been removed. Use `OverlayPositionBuilder.flexibleConnectedTo` instead. +### material +- * `CanColorCtor` is no longer necessary and has been removed. +* `CanDisableRippleCtor` is no longer necessary and has been removed. +* `CanDisableCtor` is no longer necessary and has been removed. +* `CanUpdateErrorStateCtor` is no longer necessary and has been removed. +* `HasInitializedCtor` is no longer necessary and has been removed. +* `HasTabIndexCtor` is no longer necessary and has been removed. + +- * Material now requires at least version 1.34.0 of Sass. Version 1.38.0 is recommended. + +- * The `_document` and `_dialog` parameters have been removed from the `MatDatepicker` and `MatDateRangePicker` constructors. + +- * `MatFormFieldHarness.getHarnessLoaderForPrefix` has been removed. Use `MatFormFieldHarness.getPrefixText` instead. +* `MatFormFieldHarness.getHarnessLoaderForSuffix` has been removed. Use `MatFormFieldHarness.getSuffixText` instead. +* The `_labelOptions` parameter of the `MatFormField` constructor has been removed. +* `MatFormField.underlineRef` has been removed. + +- * `matTextareaAutosize` has been removed. Use `cdkTextareaAutosize` from the `@angular/cdk/text-field` module instead. + +- * `MatTabHarness.getHarnessLoaderForContent` has been removed. Use `MatTabHarness.getRootHarnessLoader` instead. +### youtube-player +- * `YouTubePlayer.createEventsBoundInZone` has been removed. +### material-date-fns-adapter +| Commit | Type | Description | +| -- | -- | -- | +| [e8dd070bbd](https://github.com/angular/components/commit/e8dd070bbdfa77b9799d4baabb97d564176d7c05) | feat | add date adapter for date-fns ([#23262](https://github.com/angular/components/pull/23262)) | +| [2a358120f4](https://github.com/angular/components/commit/2a358120f4623efdb614017719a79cf3df6ba2fd) | fix | locale not passed into parse function ([#23653](https://github.com/angular/components/pull/23653)) | +### material-experimental +| Commit | Type | Description | +| -- | -- | -- | +| [2789d8eb5f](https://github.com/angular/components/commit/2789d8eb5f61ea4cb28ff8c6225178179e610571) | feat | **mdc-card:** add DI token for configuring appearance ([#23302](https://github.com/angular/components/pull/23302)) | +| [a4ae3b88c0](https://github.com/angular/components/commit/a4ae3b88c0f2d7a0110ec08787db33dc1991c2c5) | feat | **mdc-slide-toggle:** switch to non-deprecated styles ([#23143](https://github.com/angular/components/pull/23143)) | +| [e7a77edf1e](https://github.com/angular/components/commit/e7a77edf1e3f0215c26715366a31bf9c3f5e6cfd) | fix | **mdc-tabs:** update theming api ([#23855](https://github.com/angular/components/pull/23855)) | +### youtube-player +| Commit | Type | Description | +| -- | -- | -- | +| [7539cf2837](https://github.com/angular/components/commit/7539cf28371a938bc4f052d14be4bfa1b529300c) | refactor | remove deprecated APIs for v13 ([#23520](https://github.com/angular/components/pull/23520)) | +### google-maps +| Commit | Type | Description | +| -- | -- | -- | +| [7c16258cfb](https://github.com/angular/components/commit/7c16258cfb18c2d74b692e53e640e56b5d877e75) | feat | switch to non-deprecated typings ([#23350](https://github.com/angular/components/pull/23350)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [3dc5af4bfd](https://github.com/angular/components/commit/3dc5af4bfd2e15fe9a1330740068732cfc65d29f) | feat | **dialog:** add support for content sections in harness ([#23357](https://github.com/angular/components/pull/23357)) | +| [e4b54aa2b7](https://github.com/angular/components/commit/e4b54aa2b7afeb9fe228f1d3638eb44192353e8b) | feat | **progress-bar:** add default options injection token ([#23363](https://github.com/angular/components/pull/23363)) | +| [6c724c18a7](https://github.com/angular/components/commit/6c724c18a7520e686ed9779d8aa058d8c1e5e435) | fix | **chips:** show required asterisk when using required validator ([#23379](https://github.com/angular/components/pull/23379)) | +| [728cf1c8eb](https://github.com/angular/components/commit/728cf1c8ebd49e089f4bae945511bb0918972c26) | fix | **dialog:** improve screen reader support when opened ([#23085](https://github.com/angular/components/pull/23085)) | +| [881edec3e6](https://github.com/angular/components/commit/881edec3e6fa837c913006df12299448bba62853) | fix | **icon:** make icon-registry compatible with Trusted Types ([#23140](https://github.com/angular/components/pull/23140)) | +| [1568b35972](https://github.com/angular/components/commit/1568b3597236549b0669aee869f5f0875c18db4d) | fix | **input:** show required asterisk when using required validator ([#23362](https://github.com/angular/components/pull/23362)) | +| [64ba72f1fd](https://github.com/angular/components/commit/64ba72f1fd39623c96589ad00347f895ffb88b8a) | fix | **select:** show required asterisk when using required validator ([#23500](https://github.com/angular/components/pull/23500)) | +| [01734b35af](https://github.com/angular/components/commit/01734b35afa10be68c482dc7370c4d1ae88e499c) | fix | **sidenav:** restore focus with correct origin when closing via the backdrop ([#23492](https://github.com/angular/components/pull/23492)) | +| [7bc9bfb9dc](https://github.com/angular/components/commit/7bc9bfb9dc233256f6e7063c62e4371a5a1da346) | refactor | **core:** remove deprecated APIs for v13 ([#23529](https://github.com/angular/components/pull/23529)) | +| [40f0674e39](https://github.com/angular/components/commit/40f0674e3959d53cd6413cf3a5c30053ca0973d9) | refactor | **core:** update minimum required sass version and clean up workarounds ([#23414](https://github.com/angular/components/pull/23414)) | +| [f8dc1770d1](https://github.com/angular/components/commit/f8dc1770d100e272bbfa7e89e6376751caa35d5c) | refactor | **datepicker:** remove deprecated APIs for v13 ([#23574](https://github.com/angular/components/pull/23574)) | +| [700c0601c0](https://github.com/angular/components/commit/700c0601c03c113925562fd31f49d66a65ac3dae) | refactor | **form-field:** remove deprecated APIs for version 13 ([#23389](https://github.com/angular/components/pull/23389)) | +| [760b4564fa](https://github.com/angular/components/commit/760b4564fa41f1d13d4e07e9cba4fa3440284af7) | refactor | **input:** remove deprecated autosize directive ([#23408](https://github.com/angular/components/pull/23408)) | +| [3ad08940f1](https://github.com/angular/components/commit/3ad08940f13aad9403b89722eb7dd5f388a4d536) | refactor | **tabs:** remove deprecated APIs for v13 ([#23426](https://github.com/angular/components/pull/23426)) | +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [51796e1601](https://github.com/angular/components/commit/51796e160199d0c369931585d4bd3b0eeedf5684) | feat | **overlay:** Extend `cdkConnectedOverlayOrigin` to support more types. ([#23253](https://github.com/angular/components/pull/23253)) | +| [04b5a08190](https://github.com/angular/components/commit/04b5a08190a1d7b126846317d9aad9c954c5e0f9) | feat | **schematics:** add migration for removed symbols ([#23530](https://github.com/angular/components/pull/23530)) | +| [b25283cda9](https://github.com/angular/components/commit/b25283cda9be37d11f8c380ad6fcc078d5be5da0) | fix | **a11y:** error on firefox ([#23395](https://github.com/angular/components/pull/23395)) | +| [219e1f558a](https://github.com/angular/components/commit/219e1f558a93378cad9f9ceeb225fe5a4e833022) | fix | **drag-drop:** add conditional to scroll update ([#23337](https://github.com/angular/components/pull/23337)) | +| [6e1f522d6a](https://github.com/angular/components/commit/6e1f522d6a50d6f589d069775bc771b5590bff4c) | fix | **drag-drop:** allow using cdkDragRootElement w/ comment tag ([#23596](https://github.com/angular/components/pull/23596)) | +| [d70faa0018](https://github.com/angular/components/commit/d70faa001872361cad7ac19cba51fe69f42f73d2) | fix | **drag-drop:** sorted event emitted multiple times for single-item list ([#23589](https://github.com/angular/components/pull/23589)) | +| [f2ff9e3142](https://github.com/angular/components/commit/f2ff9e31425f0e395e6926bcaf48f876688000d8) | fix | **schematics:** drop tilde imports when updating to v13 ([#23732](https://github.com/angular/components/pull/23732)) | +| [692ebafe7b](https://github.com/angular/components/commit/692ebafe7baab75771f0f279b7e7090ec4f903aa) | fix | **testing:** fake touch event does not set proper touch identifier | +| [5833597a7a](https://github.com/angular/components/commit/5833597a7ad8adca95da5533fb6f1efa5340a623) | refactor | **clipboard:** clean up deprecated APIs for v13 ([#23401](https://github.com/angular/components/pull/23401)) | +| [8d39384770](https://github.com/angular/components/commit/8d393847704cb8a2fa9c28bd1feb3ed8700fdea0) | refactor | **overlay:** remove deprecated connected position strategy | +### multiple +| Commit | Type | Description | +| -- | -- | -- | +| [769996ed3f](https://github.com/angular/components/commit/769996ed3f359c1a168ae35abb1de1231958f7bc) | feat | add options to autoFocus field for dialogs ([#22780](https://github.com/angular/components/pull/22780)) | +| [db18b4093f](https://github.com/angular/components/commit/db18b4093f23ae5c0ef76f6a9699c670ee5d55f7) | feat | add support for TypeScript 4.4 ([#23646](https://github.com/angular/components/pull/23646)) | +### ng-add +| Commit | Type | Description | +| -- | -- | -- | +| [5c22a1dbf0](https://github.com/angular/components/commit/5c22a1dbf0c7e808e28749870415fbba31f2d9e9) | fix | syntax error due to ES2020 being used for ng-add with NodeJS 12.x ([#23744](https://github.com/angular/components/pull/23744)) | +## Special Thanks +Amy Sorto, Andrew Seguin, Charles, Jeremy Elbourn, Joey Perrott, Kristiyan Kostadinov, Md. Enzam Hossain, Michael Prentice, Miles Malerba, Paul Gschwendtner, Ruslan Lekhman, Suguru Inatomi, Wagner Maciel, Zach Arend, bjarkler and mmalerba + + + # 13.0.0-rc.3 "fir-valise" (2021-11-02) ### material-experimental From 21151939043ca67af03a07831bc1fdcb671895de Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Wed, 3 Nov 2021 13:56:03 -0700 Subject: [PATCH 024/358] release: cut the v13.1.0-next.0 release (#23888) --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7384021e580f..a5a48f424b1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ + +# 13.1.0-next.0 "tungsten-dodecahedron" (2021-11-03) +### material +| Commit | Type | Description | +| -- | -- | -- | +| [1b6c93571c](https://github.com/angular/components/commit/1b6c93571c4615deb929f7b0e72c3e42478a31ec) | fix | **table:** set class and role on no data row ([#23749](https://github.com/angular/components/pull/23749)) | +## Special Thanks +Amy Sorto, Andrew Seguin, Jeremy Elbourn, Kristiyan Kostadinov, Paul Gschwendtner, Wagner Maciel and Zach Arend + + + # 13.0.0 "fir-valise" (2021-11-03) ## Breaking Changes From 18d549e967349e7a45225f72d618316b86f38b14 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Wed, 3 Nov 2021 22:25:00 +0100 Subject: [PATCH 025/358] build: update linker integration test to work with APF v13 (#23883) Updates the linker integration test, which is an additional test we run for the linker, besides running our tests with the linker. The linker integration test ensures that the NPM package partial compilation output can be processed properly, and ensures that there are no unprocessable partial declarations. --- integration/linker/BUILD.bazel | 1 - integration/linker/link-packages-test.mjs | 5 ++--- package.json | 3 +-- yarn.lock | 4 ++-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/integration/linker/BUILD.bazel b/integration/linker/BUILD.bazel index 4747b77cfc4c..0e3d610a34fc 100644 --- a/integration/linker/BUILD.bazel +++ b/integration/linker/BUILD.bazel @@ -15,7 +15,6 @@ nodejs_test( "//src/youtube-player:npm_package", "@npm//@angular/compiler-cli", "@npm//@babel/core", - "@npm//@babel/traverse", "@npm//chalk", "@npm//glob", ], diff --git a/integration/linker/link-packages-test.mjs b/integration/linker/link-packages-test.mjs index c53b1a4c2169..d7375d676dc2 100644 --- a/integration/linker/link-packages-test.mjs +++ b/integration/linker/link-packages-test.mjs @@ -9,7 +9,6 @@ import {getNpmPackagesFromRunfiles} from '../npm-packages-from-runfiles.mjs'; import fs from 'fs'; import path from 'path'; import babel from '@babel/core'; -import traverse from '@babel/traverse'; import glob from 'glob'; import chalk from 'chalk'; @@ -57,7 +56,7 @@ if (failedPackages) { * @returns An object containing linker failures and passed files. */ function testPackage(pkg) { - const entryPointFesmFiles = glob.sync(`fesm2015/**/*.js`, {cwd: pkg.pkgPath}); + const entryPointFesmFiles = glob.sync(`+(fesm2015|fesm2020)/**/*.mjs`, {cwd: pkg.pkgPath}); const passedFiles = []; const failures = []; @@ -80,7 +79,7 @@ function testPackage(pkg) { }); // Naively check if there are any Angular declarations left that haven't been linked. - traverse(ast, { + babel.traverse(ast, { Identifier: astPath => { if (astPath.node.name.startsWith('ɵɵngDeclare')) { throw astPath.buildCodeFrameError( diff --git a/package.json b/package.json index b9bea7e636d4..3c9c60aba000 100644 --- a/package.json +++ b/package.json @@ -78,8 +78,7 @@ "@angular/platform-server": "13.0.0-rc.3", "@angular/router": "13.0.0-rc.3", "@axe-core/webdriverjs": "^4.1.0", - "@babel/core": "^7.13.10", - "@babel/traverse": "^7.13.0", + "@babel/core": "^7.16.0", "@bazel/bazelisk": "1.10.1", "@bazel/buildifier": "4.2.1", "@bazel/concatjs": "4.3.0", diff --git a/yarn.lock b/yarn.lock index de023ea51859..613b7a53956f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -460,7 +460,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@>=7.9.0", "@babel/core@^7.13.10", "@babel/core@^7.8.6": +"@babel/core@>=7.9.0", "@babel/core@^7.8.6": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== @@ -481,7 +481,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.12.3": +"@babel/core@^7.12.3", "@babel/core@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== From 7c1e975dbdb5a1c6901c0d2f65a15dc0ff0a2ce1 Mon Sep 17 00:00:00 2001 From: Ruslan Lekhman Date: Thu, 4 Nov 2021 15:38:25 -0600 Subject: [PATCH 026/358] build: use issue forms for issue creation (#23812) --- .github/ISSUE_TEMPLATE/bug.md | 34 ----------- .github/ISSUE_TEMPLATE/bug.yml | 65 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ .github/ISSUE_TEMPLATE/docs.md | 15 ----- .github/ISSUE_TEMPLATE/docs.yml | 21 +++++++ .github/ISSUE_TEMPLATE/feature.md | 14 ----- .github/ISSUE_TEMPLATE/feature.yml | 19 +++++++ .github/ISSUE_TEMPLATE/troubleshooting.md | 51 ----------------- .github/ISSUE_TEMPLATE/troubleshooting.yml | 55 ++++++++++++++++++ 9 files changed, 165 insertions(+), 114 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug.md create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/docs.md create mode 100644 .github/ISSUE_TEMPLATE/docs.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature.md create mode 100644 .github/ISSUE_TEMPLATE/feature.yml delete mode 100644 .github/ISSUE_TEMPLATE/troubleshooting.md create mode 100644 .github/ISSUE_TEMPLATE/troubleshooting.yml diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md deleted file mode 100644 index a77209ec73ee..000000000000 --- a/.github/ISSUE_TEMPLATE/bug.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Bug Report -title: "bug(COMPONENT): TITLE" -about: Report a bug in Angular Material or the CDK -labels: needs triage ---- - -#### Reproduction - -Use StackBlitz to reproduce your issue: -- Components: https://stackblitz.com/fork/components-issue -- Harnesses: https://stackblitz.com/fork/harness-issue - -Steps to reproduce: -1. -2. - - -#### Expected Behavior - -What behavior were you expecting to see? - - -#### Actual Behavior - -What behavior did you actually see? - - -#### Environment - -- Angular: -- CDK/Material: -- Browser(s): -- Operating System (e.g. Windows, macOS, Ubuntu): diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 000000000000..a4923a2c100e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,65 @@ +name: Bug Report +description: Report a bug in Angular Material or the CDK +title: "bug(COMPONENT): TITLE" +labels: ["needs triage"] +body: + - type: checkboxes + id: is-regression + attributes: + label: Is this a regression? + description: Did this behavior use to work in the previous version? + options: + - label: Yes, this behavior used to work in the previous version + - type: input + id: version-bug-was-not-present + attributes: + label: The previous version in which this bug was not present was + validations: + required: false + - type: textarea + id: description + attributes: + label: Description + description: A clear and concise description of the problem. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Reproduction + description: | + **Use StackBlitz to reproduce your issue:** + - [Components](https://stackblitz.com/fork/components-issue) + - [Harnesses](https://stackblitz.com/fork/harness-issue) + value: | + Steps to reproduce: + 1. + 2. + validations: + required: true + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: What behavior were you expecting to see? + validations: + required: true + - type: textarea + id: actual-behavior + attributes: + label: Actual Behavior + description: What behavior did you actually see? + validations: + required: true + - type: textarea + id: environment + attributes: + label: Environment + description: You can use `ng version` command. + value: | + - Angular: + - CDK/Material: + - Browser(s): + - Operating System (e.g. Windows, macOS, Ubuntu): + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000000..486735b8058b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Angular Framework + url: https://github.com/angular/angular/issues/new + about: Issues and feature requests for Angular Framework diff --git a/.github/ISSUE_TEMPLATE/docs.md b/.github/ISSUE_TEMPLATE/docs.md deleted file mode 100644 index 40947c2ca6dd..000000000000 --- a/.github/ISSUE_TEMPLATE/docs.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Documentation -title: "docs-bug(COMPONENT): TITLE" -about: Suggest an improvement to our documentation at material.angular.io -labels: docs, needs triage ---- - -#### Documentation Feedback - -Provide a brief summary of what you would like to see changed in our -documentation at material.angular.io. - -Feel free to provide any suggestions of content or examples you’d like us to include. - -**Affected documentation page:** Insert a link to the affected page on material.angular.io diff --git a/.github/ISSUE_TEMPLATE/docs.yml b/.github/ISSUE_TEMPLATE/docs.yml new file mode 100644 index 000000000000..afc76a94cb7d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/docs.yml @@ -0,0 +1,21 @@ +name: Documentation +description: Suggest an improvement to our documentation at material.angular.io +title: "docs-bug(COMPONENT): TITLE" +labels: ["docs", "needs triage"] +body: + - type: textarea + id: description + attributes: + label: Documentation Feedback + description: | + Provide a brief summary of what you would like to see changed in our documentation at [material.angular.io](https://material.angular.io/). + Feel free to provide any suggestions of content or examples you’d like us to include. + validations: + required: true + - type: input + id: affected-documentation-page + attributes: + label: Affected documentation page + description: Insert a link to the affected page on [material.angular.io](https://material.angular.io/). + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md deleted file mode 100644 index bce7e24680fa..000000000000 --- a/.github/ISSUE_TEMPLATE/feature.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Feature -title: "feat(COMPONENT): TITLE" -about: Propose a new feature for Angular Material or the CDK -labels: feature, needs triage ---- - -#### Feature Description - -Provide a brief summary of the feature you would like to see. - -#### Use Case - -Describe the use case(s) that the proposed feature would enable. diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 000000000000..8c01fd13a222 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,19 @@ +name: Feature +description: Propose a new feature for Angular Material or the CDK +title: "feat(COMPONENT): TITLE" +labels: ["feature", "needs triage"] +body: + - type: textarea + id: description + attributes: + label: Feature Description + description: Provide a brief summary of the feature you would like to see. + validations: + required: true + - type: textarea + id: use-case + attributes: + label: Use Case + description: Describe the use case(s) that the proposed feature would enable. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/troubleshooting.md b/.github/ISSUE_TEMPLATE/troubleshooting.md deleted file mode 100644 index 6762501f38f3..000000000000 --- a/.github/ISSUE_TEMPLATE/troubleshooting.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -name: Troubleshooting -title: "help(COMPONENT): TITLE" -about: Request for help on an issue you are facing with Angular Material or the CDK -labels: troubleshooting, needs triage ---- - - - - -#### What are you trying to do? - -What are you trying to do? - -#### What troubleshooting steps have you tried? - -What are you seeing that does not match your expectations? - -#### Reproduction - -We can only help if we can reproduce the problem ourselves. - -Use StackBlitz to demonstrate what you are trying to do: -- Components: https://stackblitz.com/fork/components-issue -- Harnesses: https://stackblitz.com/fork/harness-issue - -Steps to reproduce: -1. -2. - -#### Environment - -- Angular: -- CDK/Material: -- Browser(s): -- Operating System (e.g. Windows, macOS, Ubuntu): diff --git a/.github/ISSUE_TEMPLATE/troubleshooting.yml b/.github/ISSUE_TEMPLATE/troubleshooting.yml new file mode 100644 index 000000000000..1fc66dcb5d3b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/troubleshooting.yml @@ -0,0 +1,55 @@ +name: Troubleshooting +description: Request for help on an issue you are facing with Angular Material or the CDK +title: "help(COMPONENT): TITLE" +labels: ["troubleshooting", "needs triage"] +body: + - type: markdown + attributes: + value: | + The Angular team can't provide general troubleshooting help. However, the extended community of users can provide more help: + - [StackOverflow](https://stackoverflow.com/questions/tagged/angular-material2) + - [Gitter](https://gitter.im/angular/material2) + - [Google Groups](https://groups.google.com/forum/#!forum/angular-material2) + + Issues should capture only bug reports and feature requests. However, we understand that it is not always clear whether an issue is caused by a bug or incorrect usage of a feature/component. + Most support requests will be automatically closed. If the answer is quickly obvious, though, we might be able to provide a brief answer. + - type: textarea + id: description + attributes: + label: What are you trying to do? + validations: + required: true + - type: textarea + id: troubleshooting-steps + attributes: + label: What troubleshooting steps have you tried? + description: What are you seeing that does not match your expectations? + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Reproduction + description: | + We can only help if we can reproduce the problem ourselves. + **Use StackBlitz to demonstrate what you are trying to do:** + - [Components](https://stackblitz.com/fork/components-issue) + - [Harnesses](https://stackblitz.com/fork/harness-issue) + value: | + Steps to reproduce: + 1. + 2. + validations: + required: true + - type: textarea + id: environment + attributes: + label: Environment + description: You can use `ng version` command. + value: | + - Angular: + - CDK/Material: + - Browser(s): + - Operating System (e.g. Windows, macOS, Ubuntu): + validations: + required: true From acd5ee19bf06dec70902d8a5be9759c4e7594560 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Thu, 4 Nov 2021 22:39:08 +0100 Subject: [PATCH 027/358] build: do not accidentally cache undesired files in github action (#23875) This commit fixes that the Github actions currently may cache undesired files. e.g. when Bazel runs the `dist/` folder is populated and symlinked with the execroot, where another clone of the `node_modules` would be cached accidentally then. We use an explicit path instead of a pattern as it has been recommended by the Github action documentation. Additionally, we fix that the dev-app building on RBE occurs with 2 concurrent jobs due to the host containers only having 2 cores. We can run more jobs in the RBE containers. --- .github/actions/yarn-install/action.yml | 6 +++--- .github/workflows/build-dev-app.yml | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/actions/yarn-install/action.yml b/.github/actions/yarn-install/action.yml index 25e654d125e6..fc29e4503bb3 100644 --- a/.github/actions/yarn-install/action.yml +++ b/.github/actions/yarn-install/action.yml @@ -7,12 +7,12 @@ runs: - uses: actions/cache@v2 with: path: | - **/node_modules + ./node_modules/ # Cache key. Whenever the postinstall patches change, the cache needs to be invalidated. # If just the `yarn.lock` file changes, the most recent cache can be restored though. # See: https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows#example-using-the-cache-action. - key: v2-${{hashFiles('tools/postinstall/apply-patches.js')}}-${{hashFiles('yarn.lock')}} - restore-keys: v2-${{hashFiles('tools/postinstall/apply-patches.js')}}- + key: v3-${{hashFiles('tools/postinstall/apply-patches.js')}}-${{hashFiles('yarn.lock')}} + restore-keys: v3-${{hashFiles('tools/postinstall/apply-patches.js')}}- - run: yarn install --frozen-lockfile --non-interactive shell: bash diff --git a/.github/workflows/build-dev-app.yml b/.github/workflows/build-dev-app.yml index 6e0337d207c3..83ac750ac49c 100644 --- a/.github/workflows/build-dev-app.yml +++ b/.github/workflows/build-dev-app.yml @@ -28,11 +28,13 @@ jobs: GCP_DECRYPT_TOKEN: angular # Build the web package. Note that we also need to make the Github environment - # variables available so that the RBE is configured. + # variables available so that the RBE is configured. Note: We run Bazel from a + # low-resource Github action container, so we manually need to instruct Bazel to run + # more actions concurrently as by default this is computed based on the host resources. - name: Building dev-app run: | source ${GITHUB_ENV} - bazel build //src/dev-app:web_package --symlink_prefix=dist/ + bazel build //src/dev-app:web_package --symlink_prefix=dist/ --jobs=32 # Prepare the workflow artifact that is available for the deploy workflow. We store the pull # request number and SHA in a file that can be read by the deploy workflow. This is necessary From 22d092e5d601ca338ff7389149ca01c7e1e1f20c Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Thu, 4 Nov 2021 22:40:33 +0100 Subject: [PATCH 028/358] build: update to stable v13.0.0 Angular packages (#23892) Updates framework packages to v13.0.0 and the CLI to v13.0.1. This ensures our integration tests run with a stable version. --- package.json | 34 +++++----- yarn.lock | 186 +++++++++++++++++++++++++-------------------------- 2 files changed, 110 insertions(+), 110 deletions(-) diff --git a/package.json b/package.json index 3c9c60aba000..de8ca41aaeaa 100644 --- a/package.json +++ b/package.json @@ -50,12 +50,12 @@ }, "version": "13.1.0-next.0", "dependencies": { - "@angular/animations": "13.0.0-rc.3", - "@angular/common": "13.0.0-rc.3", - "@angular/compiler": "13.0.0-rc.3", - "@angular/core": "13.0.0-rc.3", - "@angular/forms": "13.0.0-rc.3", - "@angular/platform-browser": "13.0.0-rc.3", + "@angular/animations": "13.0.0", + "@angular/common": "13.0.0", + "@angular/compiler": "13.0.0", + "@angular/core": "13.0.0", + "@angular/forms": "13.0.0", + "@angular/platform-browser": "13.0.0", "@types/google.maps": "^3.45.6", "@types/youtube": "^0.0.42", "core-js-bundle": "^3.8.2", @@ -66,17 +66,17 @@ "zone.js": "~0.11.3" }, "devDependencies": { - "@angular-devkit/build-angular": "13.0.0-rc.3", - "@angular-devkit/core": "13.0.0-rc.3", - "@angular-devkit/schematics": "13.0.0-rc.3", - "@angular/bazel": "13.0.0-rc.3", - "@angular/cli": "13.0.0-rc.3", - "@angular/compiler-cli": "13.0.0-rc.3", + "@angular-devkit/build-angular": "13.0.1", + "@angular-devkit/core": "13.0.1", + "@angular-devkit/schematics": "13.0.1", + "@angular/bazel": "13.0.0", + "@angular/cli": "13.0.1", + "@angular/compiler-cli": "13.0.0", "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#26d2e72c0311590097861c87319ba8acbd898f63", - "@angular/localize": "13.0.0-rc.3", - "@angular/platform-browser-dynamic": "13.0.0-rc.3", - "@angular/platform-server": "13.0.0-rc.3", - "@angular/router": "13.0.0-rc.3", + "@angular/localize": "13.0.0", + "@angular/platform-browser-dynamic": "13.0.0", + "@angular/platform-server": "13.0.0", + "@angular/router": "13.0.0", "@axe-core/webdriverjs": "^4.1.0", "@babel/core": "^7.16.0", "@bazel/bazelisk": "1.10.1", @@ -141,7 +141,7 @@ "@octokit/rest": "18.3.5", "@rollup/plugin-commonjs": "^21.0.0", "@rollup/plugin-node-resolve": "^13.0.5", - "@schematics/angular": "13.0.0-rc.3", + "@schematics/angular": "13.0.1", "@types/babel__core": "^7.1.16", "@types/browser-sync": "^2.26.1", "@types/fs-extra": "^9.0.5", diff --git a/yarn.lock b/yarn.lock index 613b7a53956f..a56de2e3160f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,23 +32,23 @@ "@jridgewell/resolve-uri" "1.0.0" sourcemap-codec "1.4.8" -"@angular-devkit/architect@0.1300.0-rc.3": - version "0.1300.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1300.0-rc.3.tgz#ab091d7af2b587b210e8a4b8d625c30330cbe35a" - integrity sha512-UXMgKMAdhckfzLoC/ZPlsvldgDk0aFUBN95RyP//WxA5+kzcci+upGYTXp+Oo72Jiflyxpm2hLRGuSqbPO3fUg== +"@angular-devkit/architect@0.1300.1": + version "0.1300.1" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1300.1.tgz#974725b1bc0f82cc6c310d5b59da5e44b6a46b51" + integrity sha512-D6R2kYnZlKIpVx+lnuC8MRu8ZUqq2dkpeNJ1yP2IgkRdRktXWOOc2xj8utZ6NVCn8m/9kdOceQDlceVz/XT0+g== dependencies: - "@angular-devkit/core" "13.0.0-rc.3" + "@angular-devkit/core" "13.0.1" rxjs "6.6.7" -"@angular-devkit/build-angular@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.0.0-rc.3.tgz#81ee1bafef0698d013441c1482c0c688253a2a3d" - integrity sha512-bATESoljocZUlGOjEXRVw5p8O56FsICYgZXLQdpHD/WhK0Df0Nl5G3Lv3YPXDkvIi/SK1yDqRUuF6IQXPDyAdg== +"@angular-devkit/build-angular@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.0.1.tgz#50fb87b9d64dd4d5056c76a57ef7c31772d36ddc" + integrity sha512-w0eLR+KWIEV4ER7rd1AGeod6il25x983MVKHiLbOLIlRMxQVZCjpNCp07zjl6izdX3eLDKnpX3T8e1sjeg2DXQ== dependencies: "@ampproject/remapping" "1.0.1" - "@angular-devkit/architect" "0.1300.0-rc.3" - "@angular-devkit/build-webpack" "0.1300.0-rc.3" - "@angular-devkit/core" "13.0.0-rc.3" + "@angular-devkit/architect" "0.1300.1" + "@angular-devkit/build-webpack" "0.1300.1" + "@angular-devkit/core" "13.0.1" "@babel/core" "7.15.8" "@babel/generator" "7.15.8" "@babel/helper-annotate-as-pure" "7.15.4" @@ -59,7 +59,7 @@ "@babel/runtime" "7.15.4" "@babel/template" "7.15.4" "@discoveryjs/json-ext" "0.5.5" - "@ngtools/webpack" "13.0.0-rc.3" + "@ngtools/webpack" "13.0.1" ansi-colors "4.1.1" babel-loader "8.2.3" babel-plugin-istanbul "6.1.1" @@ -121,18 +121,18 @@ tslib "2.3.0" typescript "4.3.5" -"@angular-devkit/build-webpack@0.1300.0-rc.3": - version "0.1300.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1300.0-rc.3.tgz#795667967d4fccdb0d1e169ce7244c1ccaa43185" - integrity sha512-qbsQYCE55SQDOrFTwZMAFPhEM+v7etTcqhidrzi0+DJzJZEb9W9Zi98e7BeYiT40OCP8sTRg4JBL/13o3PwESQ== +"@angular-devkit/build-webpack@0.1300.1": + version "0.1300.1" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1300.1.tgz#25df724bcaf5c723ab82434adbe34b3a0dad211e" + integrity sha512-Sw5BMc7bCebr0CnPPinyqfgl13U68+ggyosIdNTVo0uWz9GRtace89VOfgPP0SK9Rw+V4hlU9RoD4tV8R4jLsg== dependencies: - "@angular-devkit/architect" "0.1300.0-rc.3" + "@angular-devkit/architect" "0.1300.1" rxjs "6.6.7" -"@angular-devkit/core@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.0.0-rc.3.tgz#088962130b206e4f2e4a5042a5e12cf887a01078" - integrity sha512-n0A8WAjvuImVCI+tF+y2UdHb35Kw4RCDmqNEZnojjItUbSpudRSjM4md+OjPMxXGdcie7FdqpsCUG99Ri9t0dg== +"@angular-devkit/core@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.0.1.tgz#f84d3290a9d99f83a1431438860c8c6bfb89c777" + integrity sha512-RfhpPw7vU5ok7ICUwEx4Lic+HCHrMjKnj/Tbk+CfSqONTFtqDaMoC8itQE2risLugT4mzO+3Cy95eccpf282kQ== dependencies: ajv "8.6.3" ajv-formats "2.1.1" @@ -141,28 +141,28 @@ rxjs "6.6.7" source-map "0.7.3" -"@angular-devkit/schematics@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.0.0-rc.3.tgz#7798626a42ec6d166b9927e2cfb961f16633df30" - integrity sha512-RPyfSUCPn+I6/eiA4GOvNDEg9qIfe1FbrjpkwR+DeJmxPbad6zsjFR3kqMJGVpU3nBgDmGoqrpYnmxR/XiG0kA== +"@angular-devkit/schematics@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.0.1.tgz#6e1ddc2b7d6b031f0e6362e62fd5c56bb08a1b67" + integrity sha512-WEhotd5H82W8LHo9tgTh547A1pxwmcKDHLhlsko5dg/HuHHhEYuxUxlLaBs1yHl+VVPG+Cwnf3pEbVhWGHVS3Q== dependencies: - "@angular-devkit/core" "13.0.0-rc.3" + "@angular-devkit/core" "13.0.1" jsonc-parser "3.0.0" magic-string "0.25.7" ora "5.4.1" rxjs "6.6.7" -"@angular/animations@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.0.0-rc.3.tgz#d4c3484a5f1241293bb383bf6f3259c1a2beab25" - integrity sha512-LEnTekuuzowD3z3nz42lcHEG2LKh1cqPFimW/rloyFiboLB051K73439BE0xbOD16j0qdaxcIuBE99PfnuU6Xg== +"@angular/animations@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.0.0.tgz#61bdbbbf4391beaf744339eb37c76ba750bb539c" + integrity sha512-tFe40hc+asglO6C2XDM+dWXrSPdCxqzHR3b83pH1TdhoYSLt43P7bOPP4uKH0AWCMUMpKcpJGkcbzPPCVO0QZw== dependencies: tslib "^2.3.0" -"@angular/bazel@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-13.0.0-rc.3.tgz#1ed23887088d9fd0dac277efa92d398436a2cf59" - integrity sha512-VcBOe6njpkJWjbl2IcA8QMO0tFlRQN+Y+nCLRRh9VxeGlsgo2kdkGCTknihdEMDJ91aGeBvUjcLLsLfj3s1LQA== +"@angular/bazel@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-13.0.0.tgz#088306010575d374c6fa53765f3ab0378df071c4" + integrity sha512-7zkRTYFCqnm9DzWnMw30OSziB8gPXyQQYKsUsF831yfRL74PKuMLsaFfIsBsISPvzLyhsZllWSOYWqsJt3F8uQ== dependencies: "@microsoft/api-extractor" "7.18.16" shelljs "0.8.4" @@ -177,15 +177,15 @@ "@angular/core" "^10.0.0-0 || ^11.0.0" reflect-metadata "^0.1.13" -"@angular/cli@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.0.0-rc.3.tgz#5130b1a6b7d6d6e1e8d6f6ab064de0969f79218f" - integrity sha512-hc1WTRoYY7KMpQcKeIZWXjClRQfa/7IZITpXsWM5KvvlToWPUrGFrRII5SCNeL4Gs15wOLvxx85w1nMFot8EsA== +"@angular/cli@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.0.1.tgz#f83796a2f7fbde16ed7fc3a62fc404a444d86909" + integrity sha512-QLrG4FCwqeRePQvZkpx0GsrXm9a+2YmqPr+1Qwfl0RWJpb/3YtqHnmDk7cT7jpqyx9BY2M7YP2Rb27Rgdy4Alg== dependencies: - "@angular-devkit/architect" "0.1300.0-rc.3" - "@angular-devkit/core" "13.0.0-rc.3" - "@angular-devkit/schematics" "13.0.0-rc.3" - "@schematics/angular" "13.0.0-rc.3" + "@angular-devkit/architect" "0.1300.1" + "@angular-devkit/core" "13.0.1" + "@angular-devkit/schematics" "13.0.1" + "@schematics/angular" "13.0.1" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.1" debug "4.3.2" @@ -202,17 +202,17 @@ symbol-observable "4.0.0" uuid "8.3.2" -"@angular/common@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.0.0-rc.3.tgz#eab3a8ed4b9fdf9f74dca234c7a4538c2971682e" - integrity sha512-DtFn2iJNRnMx0Imxz/gxO3n3MkjgfaefQA/oRxQZ2cLtm0dDpnNO7z1YQhbE3glq3+1pd+HudqzXEBwgxHAxOA== +"@angular/common@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.0.0.tgz#17adba12ed4cdf70e3c16546f072632a60583470" + integrity sha512-7KNu6fcNeX71nrOAs29T/PGdO0fAHaX0mtmobIBeIwMF9qY1fqc7a1Rssp6/dUe9XlADf2sXVtx5ZQ8c6bAMsA== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.0.0-rc.3.tgz#738588801dfca8e1325c2594652af56e7e787893" - integrity sha512-pzPoxhxs+PYc9FyE5KFp1X6o0jj8b82Ush6SiNg/gye8MYc7CaGWZRubMBD73N3iv2rqd2R4neGbALkBM49gmA== +"@angular/compiler-cli@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.0.0.tgz#1847bca54be89fa8317b9d7a5a30f127bb29e1f7" + integrity sha512-t0ayzBT2QIKehqNaCfO2wS+WBU0PyzV2eiOnNu7rKTLrw5wlamq5nWGeT5P9yuLjjiVHYl96QyydoY1L938OeQ== dependencies: "@babel/core" "^7.8.6" canonical-path "1.0.0" @@ -226,10 +226,10 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.0.0-rc.3.tgz#d3643d8d283a6eb8444360df3d861036c5d93601" - integrity sha512-H4tvadjSd8ACtI7zBHrvjkERPoC3zJaODhZ+4tzzOVIFb23t4dn+whBkGjkxOZufwHSrALknLq2JI7lzm6w3Vg== +"@angular/compiler@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.0.0.tgz#27feba7c56855204edc271a91bbcf8cb7a2566cb" + integrity sha512-EBFHKDbYHSjVNlz0/7FmWU6owFAaRSx0OVjkq2zvR+ECUT8qsQNAfUAeaGHK3a4TMJ/fbgUFC3cSUY6/jhgcgg== dependencies: tslib "^2.3.0" @@ -238,10 +238,10 @@ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== -"@angular/core@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.0.0-rc.3.tgz#253f20f99295fa1e32701f293038f5d907de3905" - integrity sha512-TDPlg9Oa3ihOiN/Zvyc02jqIKy21WdRsdno38YyqlqSna/sNGpxZ5hXNTGcJUk+oWGRAfTA6jMQnrymnUh27yQ== +"@angular/core@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.0.0.tgz#55528b74afe49e6c0f822050c092c24ca012fabf" + integrity sha512-OU7VDJR4pN0yUUbhlLiHgkTK8kcJFccHMBEtx3TKenBMkFU3CRynSzz67M4zBmXHR15729/UloL/8xuvxKQsGQ== dependencies: tslib "^2.3.0" @@ -314,49 +314,49 @@ yaml "^1.10.0" yargs "^17.0.0" -"@angular/forms@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.0.0-rc.3.tgz#05f952dd9bf1bd9afee98835d80c3f4f8b26a3c8" - integrity sha512-iAEAKPndPuxMOTLqU8mYmIOWAH/7OwRqGRGqk0fbnQqm35H4YBRZadZgDXYgMrs68lmASYPaaWn2+FCGgvthGw== +"@angular/forms@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.0.0.tgz#9d76cefac87f6167f276b4f96cbd38921410a3e3" + integrity sha512-F2XO1vOzIgGj0OfSLJHPzKcVTKmyttlBWBxIuRoVw3yxdGPKa83ka6B+/+byEE6SY0EvIRt3uJKTqS6iA9/ZxA== dependencies: tslib "^2.3.0" -"@angular/localize@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-13.0.0-rc.3.tgz#bdc196ba614b9f787e9c401c0daf12a720960da8" - integrity sha512-Ga93BzlprQdEQM3Rl0VJF45agCyKudZYSvoEMPfyUqM0vydAWGh7jVRmYr4iuB+M4HnHr+2yCRf1OLggD7IZmw== +"@angular/localize@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-13.0.0.tgz#6021afc70a8425695069e834c7ded68ca659eada" + integrity sha512-RjfFKO+2syZTLVL6YkK7QwHyalYKxRnYCb7Ma/xjHAsucp5x/d6OuK1BJEAMvZRkTLlqcShaXSyIpJ2eGlMtzQ== dependencies: "@babel/core" "7.8.6" glob "7.2.0" yargs "^17.2.1" -"@angular/platform-browser-dynamic@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.0-rc.3.tgz#e895e083e8cfe18a0ac44625f1a2df1c9a3f1c9b" - integrity sha512-dDKCSbgIbUnneGBLTMDw1s3WRLBM2VWmSejoqpeOtgILNbpcaze5mTrMrqpmj7O7DiMP+IwsmJXI4m1ZkXPK4g== +"@angular/platform-browser-dynamic@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.0.tgz#7f4cffcecc8ea02cbdea13d90fbad8322a9e0039" + integrity sha512-CmQGPyCIh3Fd+hZSt1jSLSBdVwppU1x76vyQ7C33qpNt921VhuVfB54bcbMjD+PTc+Fh1+KVI5R/sUscp0F/Bw== dependencies: tslib "^2.3.0" -"@angular/platform-browser@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.0.0-rc.3.tgz#82c6f2a746790a45ff33bd25699bd912cc61465a" - integrity sha512-gnzrGEiGqr623aYeNmdoyURIRZVVRmlpYsJvqkIzu6dDW/4ms4RhMwSQ3SAWJV95ZmrY9xgfpolhdHFnX2TJ1Q== +"@angular/platform-browser@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.0.0.tgz#4317d28b49395594aeab05339b005d594506ec65" + integrity sha512-3svk0R9UVDL0600Lf5sfFKcOrduKU17UIqrXm+iN0EBGCGostKfQb+GCFPJVZ0wUFJuXyHGovESIJX85uGhpHA== dependencies: tslib "^2.3.0" -"@angular/platform-server@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-13.0.0-rc.3.tgz#0bdab39a2208e092c0a917fbec69095e3db2e29a" - integrity sha512-rCC1m8kNG5Hmu+oMktgrld5gmoN99DFaRb8rQk5RztPvlwTMj6Lvw9o5ohSCD8nc3wEz55Dd76jiuF2cyZwQZw== +"@angular/platform-server@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-13.0.0.tgz#f1d8bb84d8df7c6ef3e53c31038011beb323c6d6" + integrity sha512-qTBGmqsUleMbWvfZPG5k5coF+yqq9fITfu0sTAlHvXWRhFO/Uz9c8BPk0WUauiX05/VBHEbq+Xix1J2CMt3Oog== dependencies: domino "^2.1.2" tslib "^2.3.0" xhr2 "^0.2.0" -"@angular/router@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.0.0-rc.3.tgz#1854ea0e1d5dcdfa945c1b4e6f29fa90bc6d00de" - integrity sha512-/eAARt+SlcVzQvyla0tDWdI9FrTSHcOukIi15tfRzKY50FibW6AFZrzjISZbYC7IbFcKher5wx0XqlJbjGpyUA== +"@angular/router@13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.0.0.tgz#d2f530d8a0bb67270e07916327105afa289647bb" + integrity sha512-+aNeABp83pEz6NGJ70aplsf2Dy+z4ef5vlm8ICMxUUdfQdiY1sZ/UVjMbbEYb+0XKVNc/1cVCb5xlr3KlpXXng== dependencies: tslib "^2.3.0" @@ -2695,10 +2695,10 @@ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.13.2.tgz#3b0efb6d3903bd49edb073696f60e90df08efb26" integrity sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg== -"@ngtools/webpack@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.0.0-rc.3.tgz#3d4d0a388fe3a9c455349d4e85b7e048151b849f" - integrity sha512-GTCFi/94M1T4zrCkeMLiOlLGpQMFtYmFZfDzpboM7y1cmGM+U/laV9FrF2YRwpbhkktmZ+qoVQoa4CV6C1Vgcg== +"@ngtools/webpack@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.0.1.tgz#a610d8b6664c6b18a129cfc346551d92d611a22f" + integrity sha512-ZWsuwgwNZp0cmlvGNcWChltbY8BxfwifscLteSXIC2x7RvPaXhdUhmzvRDeQJa1KUmXd/xUuHZqgiAQsWRT7IA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -3137,13 +3137,13 @@ colors "~1.2.1" string-argv "~0.3.1" -"@schematics/angular@13.0.0-rc.3": - version "13.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.0-rc.3.tgz#2ad36fac2640c36a5dfef727650f8845f9cc7df6" - integrity sha512-KWJFdWuEG+MTG+uS9MrxwruYqwsFoo6lrz0cMmiMmwindukHsZCVD2rh36WuMt+iiE+kaHcWrbqFk/21YDEk0w== +"@schematics/angular@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.1.tgz#0145bb65cf2e3a7d1c9156091e25c7a5326674bc" + integrity sha512-Qs3vcpSmBpzIxyaihDP3rtc6ge13t8dhqq9vXzE0MCq+HRUptAPmsx7JOUiB0/3T33XGNC9ICKdpGD+6xNltgw== dependencies: - "@angular-devkit/core" "13.0.0-rc.3" - "@angular-devkit/schematics" "13.0.0-rc.3" + "@angular-devkit/core" "13.0.1" + "@angular-devkit/schematics" "13.0.1" jsonc-parser "3.0.0" "@sindresorhus/is@^0.14.0": From df89f0df45091cec3888434e4b820b7dd2c2984d Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Thu, 4 Nov 2021 14:44:46 -0700 Subject: [PATCH 029/358] docs: update readme for Q4 2021 (#23898) --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index abeb35c605e4..620ddf279427 100644 --- a/README.md +++ b/README.md @@ -33,20 +33,20 @@ If you'd like to contribute, please follow our [contributing guidelines][contrib our [`help wanted`][help-wanted] label for a list of issues with good opportunities for contribution. -## What we're working on now (Q2 2021): +## What we're working on now (Q4 2021): * Continuing to create new, API-compatible versions of the Angular Material components backed by [MDC Web][] ([see @jelbourn's ng-conf talk](https://youtu.be/4EXQKP-Sihw?t=891)). Much of our effort is dedicated towards rolling out these new versions of the components across Angular apps -inside Google. This work will payoff with the following benefits: +inside Google. This work will pay off with the following benefits: * Dramatically improve consistency with the Material Design spec, which has changed significantly - since Angular Material's 2016 inception. + since Angular Material's 2016 inception. This also makes future versions of Material Design + significantly easier to adopt. * Introduce a new theming API for component density, a top feature request. * Fix a number of longstanding accessibility bugs. - * Increase number of people working to continuously improve the components on an on-going basis + * Increase number of people working to continuously improve the components on an ongoing basis (both the Angular team and the Material Design team). -* Continue work on virtual-scroll support for cdk/table. -* Accessibility - we'll be doing a major pass on outstanding accessibility issues and reviewing all -of the components for accessibility best practices such as WCAG. +* Accessibility - we'll be focusing on improving the accessibility of `MatDatepicker` as well as +evaluating accessibility bugs for mobile web platforms. ## About the team From e7a3f683c80601c6e023f25626cffb0aeafa9032 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Thu, 4 Nov 2021 22:45:38 +0100 Subject: [PATCH 030/358] refactor: fix examples not recognizing webcontainer stackblitz instances (#23901) Fixes that examples do not properly recognize webcontainer Stackblitz instances. This causes some sidenav examples to not even work within Stackblitz as a message `Please open on Stackblitz` is displayed. Fixes #23895. --- .../sidenav-disable-close/sidenav-disable-close-example.ts | 2 +- .../material/sidenav/sidenav-fixed/sidenav-fixed-example.ts | 2 +- .../material/sidenav/sidenav-mode/sidenav-mode-example.ts | 2 +- .../sidenav/sidenav-open-close/sidenav-open-close-example.ts | 2 +- .../sidenav/sidenav-overview/sidenav-overview-example.ts | 2 +- .../sidenav/sidenav-position/sidenav-position-example.ts | 2 +- .../sidenav/sidenav-responsive/sidenav-responsive-example.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components-examples/material/sidenav/sidenav-disable-close/sidenav-disable-close-example.ts b/src/components-examples/material/sidenav/sidenav-disable-close/sidenav-disable-close-example.ts index db846639fc6e..9143b27591db 100644 --- a/src/components-examples/material/sidenav/sidenav-disable-close/sidenav-disable-close-example.ts +++ b/src/components-examples/material/sidenav/sidenav-disable-close/sidenav-disable-close-example.ts @@ -17,5 +17,5 @@ export class SidenavDisableCloseExample { this.sidenav.close(); } - shouldRun = [/(^|\.)plnkr\.co$/, /(^|\.)stackblitz\.io$/].some(h => h.test(window.location.host)); + shouldRun = /(^|.)(stackblitz|webcontainer).(io|com)$/.test(window.location.host); } diff --git a/src/components-examples/material/sidenav/sidenav-fixed/sidenav-fixed-example.ts b/src/components-examples/material/sidenav/sidenav-fixed/sidenav-fixed-example.ts index 093a1bd3fe27..320224bc0594 100644 --- a/src/components-examples/material/sidenav/sidenav-fixed/sidenav-fixed-example.ts +++ b/src/components-examples/material/sidenav/sidenav-fixed/sidenav-fixed-example.ts @@ -18,5 +18,5 @@ export class SidenavFixedExample { }); } - shouldRun = [/(^|\.)plnkr\.co$/, /(^|\.)stackblitz\.io$/].some(h => h.test(window.location.host)); + shouldRun = /(^|.)(stackblitz|webcontainer).(io|com)$/.test(window.location.host); } diff --git a/src/components-examples/material/sidenav/sidenav-mode/sidenav-mode-example.ts b/src/components-examples/material/sidenav/sidenav-mode/sidenav-mode-example.ts index b1b01f1c44d9..4c3aee20aa87 100644 --- a/src/components-examples/material/sidenav/sidenav-mode/sidenav-mode-example.ts +++ b/src/components-examples/material/sidenav/sidenav-mode/sidenav-mode-example.ts @@ -9,5 +9,5 @@ import {FormControl} from '@angular/forms'; }) export class SidenavModeExample { mode = new FormControl('over'); - shouldRun = [/(^|\.)plnkr\.co$/, /(^|\.)stackblitz\.io$/].some(h => h.test(window.location.host)); + shouldRun = /(^|.)(stackblitz|webcontainer).(io|com)$/.test(window.location.host); } diff --git a/src/components-examples/material/sidenav/sidenav-open-close/sidenav-open-close-example.ts b/src/components-examples/material/sidenav/sidenav-open-close/sidenav-open-close-example.ts index 23577563157a..e404f9b072a3 100644 --- a/src/components-examples/material/sidenav/sidenav-open-close/sidenav-open-close-example.ts +++ b/src/components-examples/material/sidenav/sidenav-open-close/sidenav-open-close-example.ts @@ -10,5 +10,5 @@ export class SidenavOpenCloseExample { events: string[] = []; opened: boolean; - shouldRun = [/(^|\.)plnkr\.co$/, /(^|\.)stackblitz\.io$/].some(h => h.test(window.location.host)); + shouldRun = /(^|.)(stackblitz|webcontainer).(io|com)$/.test(window.location.host); } diff --git a/src/components-examples/material/sidenav/sidenav-overview/sidenav-overview-example.ts b/src/components-examples/material/sidenav/sidenav-overview/sidenav-overview-example.ts index 8222f8b9e56c..8feb401d502c 100644 --- a/src/components-examples/material/sidenav/sidenav-overview/sidenav-overview-example.ts +++ b/src/components-examples/material/sidenav/sidenav-overview/sidenav-overview-example.ts @@ -7,5 +7,5 @@ import {Component} from '@angular/core'; styleUrls: ['sidenav-overview-example.css'], }) export class SidenavOverviewExample { - shouldRun = [/(^|\.)plnkr\.co$/, /(^|\.)stackblitz\.io$/].some(h => h.test(window.location.host)); + shouldRun = /(^|.)(stackblitz|webcontainer).(io|com)$/.test(window.location.host); } diff --git a/src/components-examples/material/sidenav/sidenav-position/sidenav-position-example.ts b/src/components-examples/material/sidenav/sidenav-position/sidenav-position-example.ts index 56d0373bb4db..65281fa24408 100644 --- a/src/components-examples/material/sidenav/sidenav-position/sidenav-position-example.ts +++ b/src/components-examples/material/sidenav/sidenav-position/sidenav-position-example.ts @@ -7,5 +7,5 @@ import {Component} from '@angular/core'; styleUrls: ['sidenav-position-example.css'], }) export class SidenavPositionExample { - shouldRun = [/(^|\.)plnkr\.co$/, /(^|\.)stackblitz\.io$/].some(h => h.test(window.location.host)); + shouldRun = /(^|.)(stackblitz|webcontainer).(io|com)$/.test(window.location.host); } diff --git a/src/components-examples/material/sidenav/sidenav-responsive/sidenav-responsive-example.ts b/src/components-examples/material/sidenav/sidenav-responsive/sidenav-responsive-example.ts index 7c03d83604e2..5ddea4ff3023 100644 --- a/src/components-examples/material/sidenav/sidenav-responsive/sidenav-responsive-example.ts +++ b/src/components-examples/material/sidenav/sidenav-responsive/sidenav-responsive-example.ts @@ -34,5 +34,5 @@ export class SidenavResponsiveExample implements OnDestroy { this.mobileQuery.removeListener(this._mobileQueryListener); } - shouldRun = [/(^|\.)plnkr\.co$/, /(^|\.)stackblitz\.io$/].some(h => h.test(window.location.host)); + shouldRun = /(^|.)(stackblitz|webcontainer).(io|com)$/.test(window.location.host); } From 3240a5030769d1ac94f73cddc9fdd7673c0b8066 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Fri, 5 Nov 2021 22:22:11 +0100 Subject: [PATCH 031/358] docs: add detailed breaking change note for Sass tilde change (#23910) * docs: add detailed breaking change note for Sass tilde change Adds a detailed breaking change note for the Sass tilde change, and cleans up some other auto-generated notes. * fixup! docs: add detailed breaking change note for Sass tilde change use permalink --- CHANGELOG.md | 55 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5a48f424b1b..02c873935033 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,30 +13,59 @@ Amy Sorto, Andrew Seguin, Jeremy Elbourn, Kristiyan Kostadinov, Paul Gschwendtne # 13.0.0 "fir-valise" (2021-11-03) ## Breaking Changes ### cdk -- * `CKD_COPY_TO_CLIPBOARD_CONFIG` has been removed. Use `CDK_COPY_TO_CLIPBOARD_CONFIG` instead. -- * `ConnectedPositionStrategy` has been removed. Use `FlexibleConnectedPositionStrategy` instead. +If your application imports styles from `~@angular/cdk`, the `@import`/`@use` statements need to +be updated to omit the tilde. The tilde syntax is deprecated within the webpack `sass-loader` and +does not work with [APF v13](https://v13.angular.io/guide/angular-package-format). + +```scss +// before +@use '~@angular/cdk' as cdk; + +// after +@use '@angular/cdk' as cdk; +``` + +The Angular CLI will automatically migrate your application with: `ng update @angular/cdk`. + +Additional breaking changes: +* `CKD_COPY_TO_CLIPBOARD_CONFIG` has been removed. Use `CDK_COPY_TO_CLIPBOARD_CONFIG` instead. +* `ConnectedPositionStrategy` has been removed. Use `FlexibleConnectedPositionStrategy` instead. * `OverlayPositionBuilder.connectedTo` has been removed. Use `OverlayPositionBuilder.flexibleConnectedTo` instead. + ### material -- * `CanColorCtor` is no longer necessary and has been removed. + +If your application imports styles from `~@angular/material`, the `@import`/`@use` statements need to +be updated to omit the tilde. The tilde syntax is deprecated within the webpack `sass-loader` and +does not work with [APF v13](https://v13.angular.io/guide/angular-package-format). + +```scss +// before +@use '~@angular/material' as mat; + +// after +@use '@angular/material' as mat; +``` + +The Angular CLI will automatically migrate your application with: `ng update @angular/material`. + +Additionally, the following breaking changes have been made: + +* The minimum version of Sass has been bumped to `1.34.0`. Version `1.38.0` is recommended. +* `CanColorCtor` is no longer necessary and has been removed. * `CanDisableRippleCtor` is no longer necessary and has been removed. * `CanDisableCtor` is no longer necessary and has been removed. * `CanUpdateErrorStateCtor` is no longer necessary and has been removed. * `HasInitializedCtor` is no longer necessary and has been removed. * `HasTabIndexCtor` is no longer necessary and has been removed. - -- * Material now requires at least version 1.34.0 of Sass. Version 1.38.0 is recommended. - -- * The `_document` and `_dialog` parameters have been removed from the `MatDatepicker` and `MatDateRangePicker` constructors. - -- * `MatFormFieldHarness.getHarnessLoaderForPrefix` has been removed. Use `MatFormFieldHarness.getPrefixText` instead. +* The `_document` and `_dialog` parameters have been removed from the `MatDatepicker` and `MatDateRangePicker` constructors. +* `MatFormFieldHarness.getHarnessLoaderForPrefix` has been removed. Use `MatFormFieldHarness.getPrefixText` instead. * `MatFormFieldHarness.getHarnessLoaderForSuffix` has been removed. Use `MatFormFieldHarness.getSuffixText` instead. * The `_labelOptions` parameter of the `MatFormField` constructor has been removed. * `MatFormField.underlineRef` has been removed. +* `matTextareaAutosize` has been removed. Use `cdkTextareaAutosize` from the `@angular/cdk/text-field` module instead. +* `MatTabHarness.getHarnessLoaderForContent` has been removed. Use `MatTabHarness.getRootHarnessLoader` instead. -- * `matTextareaAutosize` has been removed. Use `cdkTextareaAutosize` from the `@angular/cdk/text-field` module instead. - -- * `MatTabHarness.getHarnessLoaderForContent` has been removed. Use `MatTabHarness.getRootHarnessLoader` instead. ### youtube-player - * `YouTubePlayer.createEventsBoundInZone` has been removed. ### material-date-fns-adapter @@ -5237,4 +5266,4 @@ You can view a beta version of the docs at https://beta-angular-material-io.fire # Changes Prior to 7.0.0 -To view changes that occurred prior to 7.0.0, see [CHANGELOG_ARCHIVE.md](https://github.com/angular/components/blob/master/CHANGELOG_ARCHIVE.md). \ No newline at end of file +To view changes that occurred prior to 7.0.0, see [CHANGELOG_ARCHIVE.md](https://github.com/angular/components/blob/master/CHANGELOG_ARCHIVE.md). From be9abca016ac381d552592787209d48a38349aec Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Fri, 5 Nov 2021 22:22:38 +0100 Subject: [PATCH 032/358] build: remove unused code from legacy tooling and remove view-engine leftovers (#23899) * build: remove unused code from legacy tooling and remove viewengine leftovers Removes unused code from legacy tooling and View Engine compilation within Bazel. Also the clang-format file is removed given that we run prettier in the whole repository now. * fixup! build: remove unused code from legacy tooling and remove viewengine leftovers ds --- .clang-format | 14 ------- build-config.js | 41 ------------------- tools/BUILD.bazel | 9 ---- .../tslint-rules/requireLicenseBannerRule.ts | 10 +++-- 4 files changed, 7 insertions(+), 67 deletions(-) delete mode 100644 .clang-format delete mode 100644 build-config.js diff --git a/.clang-format b/.clang-format deleted file mode 100644 index b3462b5403c2..000000000000 --- a/.clang-format +++ /dev/null @@ -1,14 +0,0 @@ -Language: JavaScript -BasedOnStyle: Google -ColumnLimit: 100 - -TabWidth: 2 -ContinuationIndentWidth: 4 -MaxEmptyLinesToKeep: 2 - -AllowShortBlocksOnASingleLine: false -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false -AllowShortFunctionsOnASingleLine: Empty -JavaScriptWrapImports: true - diff --git a/build-config.js b/build-config.js deleted file mode 100644 index 1f17293da35d..000000000000 --- a/build-config.js +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Build configuration for the packaging tool. This file will be automatically detected and used - * to build the different packages inside of Material. - */ -const {join} = require('path'); - -const packageJson = require('./package.json'); - -/** Current version of the project*/ -const buildVersion = packageJson.version; - -/** - * Required Angular version for all Angular Material packages. This version will be used - * as the peer dependency version for Angular in all release packages. - */ -const angularVersion = packageJson.requiredAngularVersion; - -/** - * Required MDC Web version for all Angular Material packages. This version will be used - * as the peer dependency version for MDC Web in all release packages that require MDC Web. - */ -const mdcVersion = packageJson.requiredMDCVersion; - -/** License that will be placed inside of all created bundles. */ -const buildLicense = `/** - * @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 - */`; - -module.exports = { - projectVersion: buildVersion, - angularVersion: angularVersion, - mdcVersion: mdcVersion, - projectDir: __dirname, - packagesDir: join(__dirname, 'src'), - outputDir: join(__dirname, 'dist'), - licenseBanner: buildLicense, -}; diff --git a/tools/BUILD.bazel b/tools/BUILD.bazel index df498adeec7c..846a8305a8b0 100644 --- a/tools/BUILD.bazel +++ b/tools/BUILD.bazel @@ -18,12 +18,3 @@ config_setting( name = "stamp", values = {"stamp": "true"}, ) - -# This file generates the `angular_ivy_enabled.js` file, which exports a truthy value -# whether Ivy should be enabled based on the `--defined=angular_ivy_enabled` value -# so runtime can detect which mode it is running in. -genrule( - name = "angular_ivy_enabled", - outs = ["angular_ivy_enabled.js"], - cmd = "echo exports.ivyEnabled = \"'True' === '$(angular_ivy_enabled)'\"\\; > $@", -) diff --git a/tools/tslint-rules/requireLicenseBannerRule.ts b/tools/tslint-rules/requireLicenseBannerRule.ts index 501ed6021084..5b7bf512e892 100644 --- a/tools/tslint-rules/requireLicenseBannerRule.ts +++ b/tools/tslint-rules/requireLicenseBannerRule.ts @@ -3,10 +3,14 @@ import * as ts from 'typescript'; import * as Lint from 'tslint'; import minimatch from 'minimatch'; -const buildConfig = require('../../build-config'); - /** License banner that is placed at the top of every public TypeScript file. */ -const licenseBanner = buildConfig.licenseBanner; +const licenseBanner = `/** + * @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 + */`; /** Failure message that will be shown if a license banner is missing. */ const ERROR_MESSAGE = From ff7fd485d61f1ac38df11ff49825d03db44eac54 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 8 Nov 2021 18:11:17 +0200 Subject: [PATCH 033/358] fix(material/core): test environment check not picking up jest (#23722) In #23636 the test environment check was changed so that it looks for the test objects either on `window` or `global`, however it looks like this isn't enough to pick up Jest which isn't published on either. These changes simplify the setup by looking up the value globally and disabling the type checkng error with `@ts-ignore`. We can't use `declare const` for it, because it causes issues in g3. I've also reverted some of the `any` types that had to be added in #23636. Fixes #23365. --- src/cdk/a11y/focus-monitor/focus-monitor.ts | 4 +- src/cdk/a11y/live-announcer/live-announcer.ts | 2 +- src/cdk/overlay/overlay-ref.ts | 2 +- src/cdk/platform/BUILD.bazel | 1 - src/cdk/platform/features/test-environment.ts | 39 ++++++------------- .../mdc-chips/chip-row.ts | 2 +- .../mdc-dialog/dialog-container.ts | 2 +- .../mdc-snack-bar/snack-bar-container.ts | 2 +- src/material/bottom-sheet/bottom-sheet-ref.ts | 2 +- src/material/dialog/dialog-ref.ts | 2 +- src/material/snack-bar/snack-bar-container.ts | 2 +- src/material/snack-bar/snack-bar-ref.ts | 2 +- src/material/tooltip/tooltip.ts | 6 +-- src/tsconfig-legacy.json | 2 +- tools/public_api_guard/material/tooltip.md | 4 +- 15 files changed, 29 insertions(+), 45 deletions(-) diff --git a/src/cdk/a11y/focus-monitor/focus-monitor.ts b/src/cdk/a11y/focus-monitor/focus-monitor.ts index 9e0149a9b5e2..4b827bf0e731 100644 --- a/src/cdk/a11y/focus-monitor/focus-monitor.ts +++ b/src/cdk/a11y/focus-monitor/focus-monitor.ts @@ -95,10 +95,10 @@ export class FocusMonitor implements OnDestroy { private _windowFocused = false; /** The timeout id of the window focus timeout. */ - private _windowFocusTimeoutId: any; + private _windowFocusTimeoutId: number; /** The timeout id of the origin clearing timeout. */ - private _originTimeoutId: any; + private _originTimeoutId: number; /** * Whether the origin was determined via a touch interaction. Necessary as properly attributing diff --git a/src/cdk/a11y/live-announcer/live-announcer.ts b/src/cdk/a11y/live-announcer/live-announcer.ts index 551e7b3e0058..cc78425ade11 100644 --- a/src/cdk/a11y/live-announcer/live-announcer.ts +++ b/src/cdk/a11y/live-announcer/live-announcer.ts @@ -30,7 +30,7 @@ import { export class LiveAnnouncer implements OnDestroy { private _liveElement: HTMLElement; private _document: Document; - private _previousTimeout: any; + private _previousTimeout: number; constructor( @Optional() @Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN) elementToken: any, diff --git a/src/cdk/overlay/overlay-ref.ts b/src/cdk/overlay/overlay-ref.ts index 457d02b67951..0dc05592cd0c 100644 --- a/src/cdk/overlay/overlay-ref.ts +++ b/src/cdk/overlay/overlay-ref.ts @@ -418,7 +418,7 @@ export class OverlayRef implements PortalOutlet, OverlayReference { return; } - let timeoutId: any; + let timeoutId: number; const finishDetach = () => { // It may not be attached to anything in certain cases (e.g. unit tests). if (backdropToDetach) { diff --git a/src/cdk/platform/BUILD.bazel b/src/cdk/platform/BUILD.bazel index 274d24e8896b..c6dfc3ea5206 100644 --- a/src/cdk/platform/BUILD.bazel +++ b/src/cdk/platform/BUILD.bazel @@ -11,7 +11,6 @@ ng_module( deps = [ "@npm//@angular/common", "@npm//@angular/core", - "@npm//@types/node", ], ) diff --git a/src/cdk/platform/features/test-environment.ts b/src/cdk/platform/features/test-environment.ts index 8bca4244d3fe..fabcdfb72b3b 100644 --- a/src/cdk/platform/features/test-environment.ts +++ b/src/cdk/platform/features/test-environment.ts @@ -6,35 +6,20 @@ * found in the LICENSE file at https://angular.io/license */ -// Avoid using `declare const` because it caused conflicts inside Google -// with the real typings for these symbols. We use `declare interface` instead -// of just `interface` for interop with Closure Compiler (prevents property renaming): -// https://github.com/angular/tsickle/blob/master/README.md#differences-from-typescript -declare interface TestGlobals { - jasmine: unknown; - __karma__: unknown; - jest: unknown; - Mocha: unknown; -} - -let testGlobals: TestGlobals; - -// We check the Node-specific `global` first, because tools tend to add a fake -// `window` in Node environments which won't actually receive global variables. -if (typeof global !== 'undefined') { - testGlobals = global as {} as TestGlobals; -} else if (typeof window !== 'undefined') { - testGlobals = window as {} as TestGlobals; -} else { - testGlobals = {} as TestGlobals; -} - /** Gets whether the code is currently running in a test environment. */ export function _isTestEnvironment(): boolean { + // We can't use `declare const` because it causes conflicts inside Google with the real typings + // for these symbols and we can't read them off the global object, because they don't appear to + // be attached there for some runners like Jest. + // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643) return ( - (typeof testGlobals.__karma__ !== 'undefined' && !!testGlobals.__karma__) || - (typeof testGlobals.jasmine !== 'undefined' && !!testGlobals.jasmine) || - (typeof testGlobals.jest !== 'undefined' && !!testGlobals.jest) || - (typeof testGlobals.Mocha !== 'undefined' && !!testGlobals.Mocha) + // @ts-ignore + (typeof __karma__ !== 'undefined' && !!__karma__) || + // @ts-ignore + (typeof jasmine !== 'undefined' && !!jasmine) || + // @ts-ignore + (typeof jest !== 'undefined' && !!jest) || + // @ts-ignore + (typeof Mocha !== 'undefined' && !!Mocha) ); } diff --git a/src/material-experimental/mdc-chips/chip-row.ts b/src/material-experimental/mdc-chips/chip-row.ts index 6a136cc6e00c..768553eb2739 100644 --- a/src/material-experimental/mdc-chips/chip-row.ts +++ b/src/material-experimental/mdc-chips/chip-row.ts @@ -104,7 +104,7 @@ export class MatChipRow * Timeout used to give some time between `focusin` and `focusout` * in order to determine whether focus has left the chip. */ - private _focusoutTimeout: any; + private _focusoutTimeout: number | null; constructor( @Inject(DOCUMENT) private readonly _document: any, diff --git a/src/material-experimental/mdc-dialog/dialog-container.ts b/src/material-experimental/mdc-dialog/dialog-container.ts index 7fc441a0087d..f94ef3dac2c7 100644 --- a/src/material-experimental/mdc-dialog/dialog-container.ts +++ b/src/material-experimental/mdc-dialog/dialog-container.ts @@ -60,7 +60,7 @@ export class MatDialogContainer extends _MatDialogContainerBase implements OnDes ? numbers.DIALOG_ANIMATION_CLOSE_TIME_MS : 0; /** Current timer for dialog animations. */ - private _animationTimer: any = null; + private _animationTimer: number | null = null; constructor( elementRef: ElementRef, diff --git a/src/material-experimental/mdc-snack-bar/snack-bar-container.ts b/src/material-experimental/mdc-snack-bar/snack-bar-container.ts index c32c4c91efd8..a8a157561a63 100644 --- a/src/material-experimental/mdc-snack-bar/snack-bar-container.ts +++ b/src/material-experimental/mdc-snack-bar/snack-bar-container.ts @@ -71,7 +71,7 @@ export class MatSnackBarContainer private readonly _announceDelay: number = 150; /** The timeout for announcing the snack bar's content. */ - private _announceTimeoutId: any; + private _announceTimeoutId: number; /** Subject for notifying that the snack bar has announced to screen readers. */ readonly _onAnnounce: Subject = new Subject(); diff --git a/src/material/bottom-sheet/bottom-sheet-ref.ts b/src/material/bottom-sheet/bottom-sheet-ref.ts index 6a94f546c097..d3aa2de16f62 100644 --- a/src/material/bottom-sheet/bottom-sheet-ref.ts +++ b/src/material/bottom-sheet/bottom-sheet-ref.ts @@ -38,7 +38,7 @@ export class MatBottomSheetRef { private _result: R | undefined; /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */ - private _closeFallbackTimeout: any; + private _closeFallbackTimeout: number; constructor(containerInstance: MatBottomSheetContainer, private _overlayRef: OverlayRef) { this.containerInstance = containerInstance; diff --git a/src/material/dialog/dialog-ref.ts b/src/material/dialog/dialog-ref.ts index add2c64bad85..df3f51868be9 100644 --- a/src/material/dialog/dialog-ref.ts +++ b/src/material/dialog/dialog-ref.ts @@ -49,7 +49,7 @@ export class MatDialogRef { private _result: R | undefined; /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */ - private _closeFallbackTimeout: any; + private _closeFallbackTimeout: number; /** Current state of the dialog. */ private _state = MatDialogState.OPEN; diff --git a/src/material/snack-bar/snack-bar-container.ts b/src/material/snack-bar/snack-bar-container.ts index b92dc74b5ae4..2bf4a2d901d5 100644 --- a/src/material/snack-bar/snack-bar-container.ts +++ b/src/material/snack-bar/snack-bar-container.ts @@ -77,7 +77,7 @@ export class MatSnackBarContainer private readonly _announceDelay: number = 150; /** The timeout for announcing the snack bar's content. */ - private _announceTimeoutId: any; + private _announceTimeoutId: number; /** Whether the component has been destroyed. */ private _destroyed = false; diff --git a/src/material/snack-bar/snack-bar-ref.ts b/src/material/snack-bar/snack-bar-ref.ts index 1b657134189d..0d7de41d9706 100644 --- a/src/material/snack-bar/snack-bar-ref.ts +++ b/src/material/snack-bar/snack-bar-ref.ts @@ -45,7 +45,7 @@ export class MatSnackBarRef { * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is * dismissed before the duration passes. */ - private _durationTimeoutId: any; + private _durationTimeoutId: number; /** Whether the snack bar was dismissed using the action button. */ private _dismissedByAction = false; diff --git a/src/material/tooltip/tooltip.ts b/src/material/tooltip/tooltip.ts index 632a7d222ea9..55a735e9aaad 100644 --- a/src/material/tooltip/tooltip.ts +++ b/src/material/tooltip/tooltip.ts @@ -258,7 +258,7 @@ export abstract class _MatTooltipBase private _document: Document; /** Timer started at the last `touchstart` event. */ - private _touchstartTimeout: any; + private _touchstartTimeout: number; /** Emits when the component is destroyed. */ private readonly _destroyed = new Subject(); @@ -807,10 +807,10 @@ export abstract class _TooltipComponentBase implements OnDestroy { tooltipClass: string | string[] | Set | {[key: string]: any}; /** The timeout ID of any current timer set to show the tooltip */ - _showTimeoutId: any; + _showTimeoutId: number | undefined; /** The timeout ID of any current timer set to hide the tooltip */ - _hideTimeoutId: any; + _hideTimeoutId: number | undefined; /** Property watched by the animation framework to show or hide the tooltip */ _visibility: TooltipVisibility = 'initial'; diff --git a/src/tsconfig-legacy.json b/src/tsconfig-legacy.json index f43a6876e9b1..813c81f0fea5 100644 --- a/src/tsconfig-legacy.json +++ b/src/tsconfig-legacy.json @@ -8,7 +8,7 @@ "paths": { "@angular/*": ["./*"] }, - "types": ["jasmine", "node"], + "types": ["jasmine"], "emitDecoratorMetadata": true, "experimentalDecorators": true }, diff --git a/tools/public_api_guard/material/tooltip.md b/tools/public_api_guard/material/tooltip.md index bf87a52a729e..6cbe483528cd 100644 --- a/tools/public_api_guard/material/tooltip.md +++ b/tools/public_api_guard/material/tooltip.md @@ -183,7 +183,7 @@ export abstract class _TooltipComponentBase implements OnDestroy { _animationStart(): void; _handleBodyInteraction(): void; hide(delay: number): void; - _hideTimeoutId: any; + _hideTimeoutId: number | undefined; isVisible(): boolean; _markForCheck(): void; message: string; @@ -191,7 +191,7 @@ export abstract class _TooltipComponentBase implements OnDestroy { ngOnDestroy(): void; protected _onShow(): void; show(delay: number): void; - _showTimeoutId: any; + _showTimeoutId: number | undefined; tooltipClass: string | string[] | Set | { [key: string]: any; }; From 7dbe9a42829a2e71cca3363e9a97ec0ea45be276 Mon Sep 17 00:00:00 2001 From: Umer Naeem <34766137+umernaeem217@users.noreply.github.com> Date: Mon, 8 Nov 2021 21:12:04 +0500 Subject: [PATCH 034/358] feat(google-maps): Getting google.maps.Map instance (#23856) Added mapInitialized event which is emitted when the map is initialized and returns the map instance. For #23703 --- src/google-maps/google-map/google-map.spec.ts | 16 +++++++++++++++- src/google-maps/google-map/google-map.ts | 5 +++++ .../public_api_guard/google-maps/google-maps.md | 3 ++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/google-maps/google-map/google-map.spec.ts b/src/google-maps/google-map/google-map.spec.ts index 0472272c217a..5eea53ede1c3 100644 --- a/src/google-maps/google-map/google-map.spec.ts +++ b/src/google-maps/google-map/google-map.spec.ts @@ -363,6 +363,18 @@ describe('GoogleMap', () => { expect(mapConstructorSpy.calls.mostRecent()?.args[1].mapTypeId).toBe('satellite'); }); + it('should emit mapInitialized event when the map is initialized', () => { + mapSpy = createMapSpy(DEFAULT_OPTIONS); + mapConstructorSpy = createMapConstructorSpy(mapSpy); + + const fixture = TestBed.createComponent(TestApp); + fixture.detectChanges(); + + expect(fixture.componentInstance.mapInitializedSpy).toHaveBeenCalledOnceWith( + fixture.componentInstance.map.googleMap, + ); + }); + it('should emit authFailure event when window.gm_authFailure is called', () => { mapSpy = createMapSpy(DEFAULT_OPTIONS); mapConstructorSpy = createMapConstructorSpy(mapSpy); @@ -397,7 +409,8 @@ describe('GoogleMap', () => { [mapTypeId]="mapTypeId" (mapClick)="handleClick($event)" (centerChanged)="handleCenterChanged()" - (mapRightclick)="handleRightclick($event)"> + (mapRightclick)="handleRightclick($event)" + (mapInitialized)="mapInitializedSpy($event)"> `, }) class TestApp { @@ -412,4 +425,5 @@ class TestApp { handleClick(event: google.maps.MapMouseEvent) {} handleCenterChanged() {} handleRightclick(event: google.maps.MapMouseEvent) {} + mapInitializedSpy = jasmine.createSpy('mapInitialized'); } diff --git a/src/google-maps/google-map/google-map.ts b/src/google-maps/google-map/google-map.ts index 5bfbf7f55020..1014fe7be4df 100644 --- a/src/google-maps/google-map/google-map.ts +++ b/src/google-maps/google-map/google-map.ts @@ -104,6 +104,10 @@ export class GoogleMap implements OnChanges, OnInit, OnDestroy { } private _options = DEFAULT_OPTIONS; + /** Event emitted when the map is initialized. */ + @Output() readonly mapInitialized: EventEmitter = + new EventEmitter(); + /** * See * https://developers.google.com/maps/documentation/javascript/events#auth-errors @@ -305,6 +309,7 @@ export class GoogleMap implements OnChanges, OnInit, OnDestroy { this.googleMap = new google.maps.Map(this._mapEl, this._combineOptions()); }); this._eventManager.setTarget(this.googleMap); + this.mapInitialized.emit(this.googleMap); } } diff --git a/tools/public_api_guard/google-maps/google-maps.md b/tools/public_api_guard/google-maps/google-maps.md index 2147c7593a0e..a58e189075c3 100644 --- a/tools/public_api_guard/google-maps/google-maps.md +++ b/tools/public_api_guard/google-maps/google-maps.md @@ -65,6 +65,7 @@ export class GoogleMap implements OnChanges, OnInit, OnDestroy { readonly mapDrag: Observable; readonly mapDragend: Observable; readonly mapDragstart: Observable; + readonly mapInitialized: EventEmitter; readonly mapMousemove: Observable; readonly mapMouseout: Observable; readonly mapMouseover: Observable; @@ -92,7 +93,7 @@ export class GoogleMap implements OnChanges, OnInit, OnDestroy { set zoom(zoom: number); readonly zoomChanged: Observable; // (undocumented) - static ɵcmp: i0.ɵɵComponentDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; // (undocumented) static ɵfac: i0.ɵɵFactoryDeclaration; } From 72d2e5af89944fe30a11e7487c17ffc3ce863dc6 Mon Sep 17 00:00:00 2001 From: Miles Malerba Date: Mon, 8 Nov 2021 08:12:27 -0800 Subject: [PATCH 035/358] fix(material/chips): Declare that MatChipInput.inputElement is always defined (#23868) It is initialized in the contructor, so there is no chance of it being undefined. --- src/material-experimental/mdc-chips/chip-input.ts | 2 +- src/material/chips/chip-input.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/material-experimental/mdc-chips/chip-input.ts b/src/material-experimental/mdc-chips/chip-input.ts index d334bbcf62b5..4d921d5e208f 100644 --- a/src/material-experimental/mdc-chips/chip-input.ts +++ b/src/material-experimental/mdc-chips/chip-input.ts @@ -136,7 +136,7 @@ export class MatChipInput implements MatChipTextControl, AfterContentInit, OnCha } /** The native input element to which this directive is attached. */ - readonly inputElement: HTMLInputElement; + readonly inputElement!: HTMLInputElement; constructor( protected _elementRef: ElementRef, diff --git a/src/material/chips/chip-input.ts b/src/material/chips/chip-input.ts index d462855fc543..4f17bac9f54a 100644 --- a/src/material/chips/chip-input.ts +++ b/src/material/chips/chip-input.ts @@ -129,7 +129,7 @@ export class MatChipInput implements MatChipTextControl, OnChanges, OnDestroy, A } /** The native input element to which this directive is attached. */ - readonly inputElement: HTMLInputElement; + readonly inputElement!: HTMLInputElement; constructor( protected _elementRef: ElementRef, From a6d41413cca4ce446c3eebc03318c880f3b8ef1a Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 8 Nov 2021 18:13:00 +0200 Subject: [PATCH 036/358] fix(material/form-field): update outline gap when prefix changes (#23869) The position of the outline gap depends on the size of the prefix, but we weren't set up to update it when that happens. Fixes #23863. --- src/material/form-field/form-field.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/material/form-field/form-field.html b/src/material/form-field/form-field.html index 8b58dba3248d..5141b1d545f9 100644 --- a/src/material/form-field/form-field.html +++ b/src/material/form-field/form-field.html @@ -16,7 +16,11 @@ -
+
From 5fb821f658e9a4a50387747fdc5ea4cff42ce784 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 8 Nov 2021 18:13:22 +0200 Subject: [PATCH 037/358] refactor(multiple): clean up host decorator workarounds (#23879) We had some workarounds with `HostListener` and `HostBinding` which go against our conventions. They were used to support ViewEngine, but they are no longer necessary. --- .../dialog/dialog-container.ts | 30 ++--------- src/cdk-experimental/menu/menu-bar.ts | 13 +---- src/cdk-experimental/menu/menu-item.ts | 29 +++------- src/cdk-experimental/menu/menu.ts | 13 +---- .../popover-edit/lens-directives.ts | 54 ++++++------------- .../popover-edit/table-directives.ts | 9 ++-- src/cdk/coercion/coercion.md | 2 +- src/cdk/stepper/stepper-button.ts | 24 ++------- src/cdk/text-field/autosize.ts | 7 +-- src/cdk/tree/nested-node.ts | 15 ++---- src/cdk/tree/toggle.ts | 15 +++--- src/cdk/tree/tree.ts | 29 ++-------- .../mdc-button/button-base.ts | 14 +++-- src/material-experimental/mdc-chips/chip.ts | 8 +-- .../mdc-list/interactive-list-base.ts | 23 ++++---- .../mdc-list/list-base.ts | 19 ++++--- src/material/input/input.ts | 18 ++----- src/material/menu/menu-item.ts | 15 +----- src/material/menu/menu-trigger.ts | 32 ++++------- src/material/sidenav/drawer.ts | 30 ++--------- src/material/tree/node.ts | 30 +++-------- src/material/tree/tree.ts | 9 +--- tools/public_api_guard/cdk/stepper.md | 4 -- tools/public_api_guard/cdk/tree.md | 11 +--- tools/public_api_guard/material/menu.md | 6 --- tools/public_api_guard/material/sidenav.md | 4 -- tools/public_api_guard/material/tree.md | 9 +--- 27 files changed, 113 insertions(+), 359 deletions(-) diff --git a/src/cdk-experimental/dialog/dialog-container.ts b/src/cdk-experimental/dialog/dialog-container.ts index 57298e0fd86a..aa7744418b8b 100644 --- a/src/cdk-experimental/dialog/dialog-container.ts +++ b/src/cdk-experimental/dialog/dialog-container.ts @@ -24,7 +24,6 @@ import { ComponentRef, ElementRef, EmbeddedViewRef, - HostBinding, Inject, NgZone, OnDestroy, @@ -70,6 +69,11 @@ export function throwDialogContentAlreadyAttachedError() { }`, '(@dialog.start)': '_onAnimationStart($event)', '(@dialog.done)': '_animationDone.next($event)', + 'tabindex': '-1', + '[attr.role]': '_config.role', + 'aria-modal': 'true', + '[attr.aria-label]': '_config.ariaLabel || null', + '[attr.aria-describedby]': '_config.ariaDescribedBy', }, }) export class CdkDialogContainer extends BasePortalOutlet implements OnDestroy { @@ -84,30 +88,6 @@ export class CdkDialogContainer extends BasePortalOutlet implements OnDestroy { /** The class that traps and manages focus within the dialog. */ private _focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement); - // @HostBinding is used in the class as it is expected to be extended. Since @Component decorator - // metadata is not inherited by child classes, instead the host binding data is defined in a way - // that can be inherited. - // tslint:disable:no-host-decorator-in-concrete no-private-getters - @HostBinding('attr.aria-label') get _ariaLabel() { - return this._config.ariaLabel || null; - } - - @HostBinding('attr.aria-describedby') - get _ariaDescribedBy() { - return this._config.ariaDescribedBy; - } - - @HostBinding('attr.role') get _role() { - return this._config.role; - } - - @HostBinding('attr.aria-modal') _ariaModal: boolean = true; - - @HostBinding('attr.tabindex') get _tabindex() { - return -1; - } - // tslint:disable:no-host-decorator-in-concrete no-private-getters - /** The portal host inside of this container into which the dialog content will be loaded. */ @ViewChild(CdkPortalOutlet, {static: true}) _portalHost: CdkPortalOutlet; diff --git a/src/cdk-experimental/menu/menu-bar.ts b/src/cdk-experimental/menu/menu-bar.ts index c68a7f006b52..255f8623cfd7 100644 --- a/src/cdk-experimental/menu/menu-bar.ts +++ b/src/cdk-experimental/menu/menu-bar.ts @@ -15,7 +15,6 @@ import { OnDestroy, Optional, NgZone, - HostListener, ElementRef, Inject, Self, @@ -46,6 +45,8 @@ import {MenuAim, MENU_AIM} from './menu-aim'; 'class': 'cdk-menu-bar', 'tabindex': '0', '[attr.aria-orientation]': 'orientation', + '(focus)': 'focusFirstItem()', + '(keydown)': '_handleKeyEvent($event)', }, providers: [ {provide: CdkMenuGroup, useExisting: CdkMenuBar}, @@ -97,11 +98,6 @@ export class CdkMenuBar extends CdkMenuGroup implements Menu, AfterContentInit, this._menuAim?.initialize(this, this._pointerTracker!); } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('focus') /** Place focus on the first MenuItem in the menu and set the focus origin. */ focusFirstItem(focusOrigin: FocusOrigin = 'program') { this._keyManager.setFocusOrigin(focusOrigin); @@ -114,11 +110,6 @@ export class CdkMenuBar extends CdkMenuGroup implements Menu, AfterContentInit, this._keyManager.setLastItemActive(); } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('keydown', ['$event']) /** * Handle keyboard events, specifically changing the focused element and/or toggling the active * items menu. diff --git a/src/cdk-experimental/menu/menu-item.ts b/src/cdk-experimental/menu/menu-item.ts index 62ae49e1f5d8..8ae61cf087fa 100644 --- a/src/cdk-experimental/menu/menu-item.ts +++ b/src/cdk-experimental/menu/menu-item.ts @@ -15,7 +15,6 @@ import { Output, EventEmitter, Inject, - HostListener, NgZone, OnDestroy, } from '@angular/core'; @@ -53,6 +52,12 @@ function removeIcons(element: Element) { 'role': 'menuitem', 'class': 'cdk-menu-item', '[attr.aria-disabled]': 'disabled || null', + '(blur)': '_resetTabIndex()', + '(mouseout)': '_resetTabIndex()', + '(focus)': '_setTabIndex()', + '(mouseenter)': '_setTabIndex($event)', + '(click)': 'trigger()', + '(keydown)': '_onKeydown($event)', }, }) export class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, OnDestroy { @@ -104,12 +109,6 @@ export class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, this._elementRef.nativeElement.focus(); } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('blur') - @HostListener('mouseout') /** Reset the _tabindex to -1. */ _resetTabIndex() { if (!this._isStandaloneItem()) { @@ -117,12 +116,6 @@ export class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, } } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('focus') - @HostListener('mouseenter', ['$event']) /** * Set the tab index to 0 if not disabled and it's a focus event, or a mouse enter if this element * is not in a menu bar. @@ -143,11 +136,6 @@ export class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, return !this._parentMenu; } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('click') /** * If the menu item is not disabled and the element does not have a menu trigger attached, emit * on the cdkMenuItemTriggered emitter and close all open menus. @@ -192,11 +180,6 @@ export class CdkMenuItem implements FocusableOption, FocusableElement, Toggler, return clone.textContent?.trim() || ''; } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('keydown', ['$event']) /** * Handles keyboard events for the menu item, specifically either triggering the user defined * callback or opening/closing the current menu based on whether the left or right arrow key was diff --git a/src/cdk-experimental/menu/menu.ts b/src/cdk-experimental/menu/menu.ts index c168940dd213..59d51401ac8d 100644 --- a/src/cdk-experimental/menu/menu.ts +++ b/src/cdk-experimental/menu/menu.ts @@ -18,7 +18,6 @@ import { Optional, OnInit, NgZone, - HostListener, ElementRef, Inject, Self, @@ -60,6 +59,8 @@ import {MENU_AIM, MenuAim} from './menu-aim'; 'class': 'cdk-menu', '[class.cdk-menu-inline]': '_isInline()', '[attr.aria-orientation]': 'orientation', + '(focus)': 'focusFirstItem()', + '(keydown)': '_handleKeyEvent($event)', }, providers: [ {provide: CdkMenuGroup, useExisting: CdkMenu}, @@ -136,11 +137,6 @@ export class CdkMenu extends CdkMenuGroup implements Menu, AfterContentInit, OnI this._menuAim?.initialize(this, this._pointerTracker!); } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('focus') /** Place focus on the first MenuItem in the menu and set the focus origin. */ focusFirstItem(focusOrigin: FocusOrigin = 'program') { this._keyManager.setFocusOrigin(focusOrigin); @@ -153,11 +149,6 @@ export class CdkMenu extends CdkMenuGroup implements Menu, AfterContentInit, OnI this._keyManager.setLastItemActive(); } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('keydown', ['$event']) /** Handle keyboard events for the Menu. */ _handleKeyEvent(event: KeyboardEvent) { const keyManager = this._keyManager; diff --git a/src/cdk-experimental/popover-edit/lens-directives.ts b/src/cdk-experimental/popover-edit/lens-directives.ts index 312731cded75..7d5670707640 100644 --- a/src/cdk-experimental/popover-edit/lens-directives.ts +++ b/src/cdk-experimental/popover-edit/lens-directives.ts @@ -7,15 +7,7 @@ */ import {Subject} from 'rxjs'; -import { - Directive, - ElementRef, - EventEmitter, - OnDestroy, - OnInit, - Input, - HostListener, -} from '@angular/core'; +import {Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Input} from '@angular/core'; import {hasModifierKey} from '@angular/cdk/keycodes'; import {EDIT_PANE_SELECTOR} from './constants'; import {closest} from './polyfill'; @@ -39,6 +31,11 @@ export type PopoverEditClickOutBehavior = 'close' | 'submit' | 'noop'; ], outputs: ['preservedFormValueChange: cdkEditControlPreservedFormValueChange'], providers: [EditRef], + host: { + '(ngSubmit)': 'handleFormSubmit()', + '(document:click)': 'handlePossibleClickOut($event)', + '(keydown)': '_handleKeydown($event)', + }, }) export class CdkEditControl implements OnDestroy, OnInit { protected readonly destroyed = new Subject(); @@ -81,11 +78,6 @@ export class CdkEditControl implements OnDestroy, OnInit { * the form for validity before proceeding. * Updates the revert state with the latest submitted value then closes the edit. */ - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('ngSubmit') handleFormSubmit(): void { if (this.ignoreSubmitUnlessValid && !this.editRef.isValid()) { return; @@ -106,11 +98,6 @@ export class CdkEditControl implements OnDestroy, OnInit { * Called on click anywhere in the document. * If the click was outside of the lens, trigger the specified click out behavior. */ - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('document:click', ['$event']) handlePossibleClickOut(evt: Event): void { if (closest(evt.target, EDIT_PANE_SELECTOR)) { return; @@ -129,11 +116,6 @@ export class CdkEditControl implements OnDestroy, OnInit { } } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('keydown', ['$event']) _handleKeydown(event: KeyboardEvent) { if (event.key === 'Escape' && !hasModifierKey(event)) { this.close(); @@ -159,6 +141,7 @@ export class CdkEditControl implements OnDestroy, OnInit { selector: 'button[cdkEditRevert]', host: { 'type': 'button', // Prevents accidental form submits. + '(click)': 'revertEdit()', }, }) export class CdkEditRevert { @@ -167,18 +150,20 @@ export class CdkEditRevert { constructor(protected readonly editRef: EditRef) {} - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click') revertEdit(): void { this.editRef.reset(); } } /** Closes the lens on click. */ -@Directive({selector: '[cdkEditClose]'}) +@Directive({ + selector: '[cdkEditClose]', + host: { + '(click)': 'closeEdit()', + '(keydown.enter)': 'closeEdit()', + '(keydown.space)': 'closeEdit()', + }, +}) export class CdkEditClose { constructor( protected readonly elementRef: ElementRef, @@ -192,15 +177,6 @@ export class CdkEditClose { } } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click') - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('keydown.enter') - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('keydown.space') closeEdit(): void { // Note that we use `click` here, rather than a keyboard event, because some screen readers // will emit a fake click event instead of an enter keyboard event on buttons. For the keyboard diff --git a/src/cdk-experimental/popover-edit/table-directives.ts b/src/cdk-experimental/popover-edit/table-directives.ts index 2c128a075afd..05520e727a4b 100644 --- a/src/cdk-experimental/popover-edit/table-directives.ts +++ b/src/cdk-experimental/popover-edit/table-directives.ts @@ -17,7 +17,6 @@ import { OnDestroy, TemplateRef, ViewContainerRef, - HostListener, } from '@angular/core'; import {fromEvent, fromEventPattern, merge, Subject} from 'rxjs'; import { @@ -496,6 +495,9 @@ export class CdkRowHoverContent implements AfterViewInit, OnDestroy { */ @Directive({ selector: '[cdkEditOpen]', + host: { + '(click)': 'openEdit($event)', + }, }) export class CdkEditOpen { constructor( @@ -510,11 +512,6 @@ export class CdkEditOpen { } } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click', ['$event']) openEdit(evt: Event): void { this.editEventDispatcher.editing.next(closest(this.elementRef.nativeElement!, CELL_SELECTOR)); evt.stopPropagation(); diff --git a/src/cdk/coercion/coercion.md b/src/cdk/coercion/coercion.md index 6a6fdd3058c2..de31cf23b359 100644 --- a/src/cdk/coercion/coercion.md +++ b/src/cdk/coercion/coercion.md @@ -3,7 +3,7 @@ Utility functions for coercing `@Input`s into specific types. ### Example ```ts -import {Directive, ElementRef, HostListener} from '@angular/core'; +import {Directive, ElementRef} from '@angular/core'; import { coerceBooleanProperty, BooleanInput, diff --git a/src/cdk/stepper/stepper-button.ts b/src/cdk/stepper/stepper-button.ts index f58699be07ba..92f73c4e001c 100644 --- a/src/cdk/stepper/stepper-button.ts +++ b/src/cdk/stepper/stepper-button.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {Directive, HostListener, Input} from '@angular/core'; +import {Directive, Input} from '@angular/core'; import {CdkStepper} from './stepper'; @@ -15,6 +15,7 @@ import {CdkStepper} from './stepper'; selector: 'button[cdkStepperNext]', host: { '[type]': 'type', + '(click)': '_stepper.next()', }, }) export class CdkStepperNext { @@ -22,16 +23,6 @@ export class CdkStepperNext { @Input() type: string = 'submit'; constructor(public _stepper: CdkStepper) {} - - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click') - _handleClick() { - this._stepper.next(); - } } /** Button that moves to the previous step in a stepper workflow. */ @@ -39,6 +30,7 @@ export class CdkStepperNext { selector: 'button[cdkStepperPrevious]', host: { '[type]': 'type', + '(click)': '_stepper.previous()', }, }) export class CdkStepperPrevious { @@ -46,14 +38,4 @@ export class CdkStepperPrevious { @Input() type: string = 'button'; constructor(public _stepper: CdkStepper) {} - - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click') - _handleClick() { - this._stepper.previous(); - } } diff --git a/src/cdk/text-field/autosize.ts b/src/cdk/text-field/autosize.ts index 7a0b6895a724..7ec45ff3bedf 100644 --- a/src/cdk/text-field/autosize.ts +++ b/src/cdk/text-field/autosize.ts @@ -20,7 +20,6 @@ import { DoCheck, OnDestroy, NgZone, - HostListener, Optional, Inject, } from '@angular/core'; @@ -38,6 +37,7 @@ import {DOCUMENT} from '@angular/common'; // Textarea elements that have the directive applied should have a single row by default. // Browsers normally show two rows by default and therefore this limits the minRows binding. 'rows': '1', + '(input)': '_noopInputHandler()', }, }) export class CdkTextareaAutosize implements AfterViewInit, DoCheck, OnDestroy { @@ -335,11 +335,6 @@ export class CdkTextareaAutosize implements AfterViewInit, DoCheck, OnDestroy { } } - // In Ivy the `host` metadata will be merged, whereas in ViewEngine it is overridden. In order - // to avoid double event listeners, we need to use `HostListener`. Once Ivy is the default, we - // can move this back into `host`. - // tslint:disable:no-host-decorator-in-concrete - @HostListener('input') _noopInputHandler() { // no-op handler that ensures we're running change detection on input events. } diff --git a/src/cdk/tree/nested-node.ts b/src/cdk/tree/nested-node.ts index 3f9c2ce42992..44d62083a620 100644 --- a/src/cdk/tree/nested-node.ts +++ b/src/cdk/tree/nested-node.ts @@ -9,7 +9,6 @@ import { AfterContentInit, ContentChildren, Directive, - DoCheck, ElementRef, IterableDiffer, IterableDiffers, @@ -38,10 +37,13 @@ import {getTreeControlFunctionsMissingError} from './tree-errors'; {provide: CdkTreeNode, useExisting: CdkNestedTreeNode}, {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: CdkNestedTreeNode}, ], + host: { + 'class': 'cdk-nested-tree-node', + }, }) export class CdkNestedTreeNode extends CdkTreeNode - implements AfterContentInit, DoCheck, OnDestroy, OnInit + implements AfterContentInit, OnDestroy, OnInit { /** Differ used to find the changes in the data provided by the data source. */ private _dataDiffer: IterableDiffer; @@ -63,11 +65,6 @@ export class CdkNestedTreeNode protected _differs: IterableDiffers, ) { super(elementRef, tree); - // The classes are directly added here instead of in the host property because classes on - // the host property are not inherited with View Engine. It is not set as a @HostBinding because - // it is not set by the time it's children nodes try to read the class from it. - // TODO: move to host after View Engine deprecation - elementRef.nativeElement.classList.add('cdk-nested-tree-node'); } ngAfterContentInit() { @@ -94,10 +91,6 @@ export class CdkNestedTreeNode super.ngOnInit(); } - override ngDoCheck() { - super.ngDoCheck(); - } - override ngOnDestroy() { this._clear(); super.ngOnDestroy(); diff --git a/src/cdk/tree/toggle.ts b/src/cdk/tree/toggle.ts index 41bf9bd27e8d..87ffd46d025c 100644 --- a/src/cdk/tree/toggle.ts +++ b/src/cdk/tree/toggle.ts @@ -7,14 +7,19 @@ */ import {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion'; -import {Directive, HostListener, Input} from '@angular/core'; +import {Directive, Input} from '@angular/core'; import {CdkTree, CdkTreeNode} from './tree'; /** * Node toggle to expand/collapse the node. */ -@Directive({selector: '[cdkTreeNodeToggle]'}) +@Directive({ + selector: '[cdkTreeNodeToggle]', + host: { + '(click)': '_toggle($event)', + }, +}) export class CdkTreeNodeToggle { /** Whether expand/collapse the node recursively. */ @Input('cdkTreeNodeToggleRecursive') @@ -28,12 +33,6 @@ export class CdkTreeNodeToggle { constructor(protected _tree: CdkTree, protected _treeNode: CdkTreeNode) {} - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click', ['$event']) _toggle(event: Event): void { this.recursive ? this._tree.treeControl.toggleDescendants(this._treeNode.data) diff --git a/src/cdk/tree/tree.ts b/src/cdk/tree/tree.ts index 3b443ceb0f14..16a6c0058bd5 100644 --- a/src/cdk/tree/tree.ts +++ b/src/cdk/tree/tree.ts @@ -14,7 +14,6 @@ import { Component, ContentChildren, Directive, - DoCheck, ElementRef, Input, IterableChangeRecord, @@ -316,8 +315,12 @@ export class CdkTree implements AfterContentChecked, CollectionViewer, @Directive({ selector: 'cdk-tree-node', exportAs: 'cdkTreeNode', + host: { + 'class': 'cdk-tree-node', + '[attr.aria-expanded]': 'isExpanded', + }, }) -export class CdkTreeNode implements DoCheck, FocusableOption, OnDestroy, OnInit { +export class CdkTreeNode implements FocusableOption, OnDestroy, OnInit { /** * The role of the tree node. * @deprecated The correct role is 'treeitem', 'group' should not be used. This input will be @@ -364,13 +367,6 @@ export class CdkTreeNode implements DoCheck, FocusableOption, OnDestro return this._tree.treeControl.isExpanded(this._data); } - private _setExpanded(_expanded: boolean) { - this._isAriaExpanded = _expanded; - this._elementRef.nativeElement.setAttribute('aria-expanded', `${_expanded}`); - } - - protected _isAriaExpanded: boolean; - get level(): number { // If the treeControl has a getLevel method, use it to get the level. Otherwise read the // aria-level off the parent node and use it as the level for this node (note aria-level is @@ -382,11 +378,6 @@ export class CdkTreeNode implements DoCheck, FocusableOption, OnDestro constructor(protected _elementRef: ElementRef, protected _tree: CdkTree) { CdkTreeNode.mostRecentTreeNode = this as CdkTreeNode; - // The classes are directly added here instead of in the host property because classes on - // the host property are not inherited with View Engine. It is not set as a @HostBinding because - // it is not set by the time it's children nodes try to read the class from it. - // TODO: move to host after View Engine deprecation - this._elementRef.nativeElement.classList.add('cdk-tree-node'); this.role = 'treeitem'; } @@ -395,16 +386,6 @@ export class CdkTreeNode implements DoCheck, FocusableOption, OnDestro this._elementRef.nativeElement.setAttribute('aria-level', `${this.level + 1}`); } - ngDoCheck() { - // aria-expanded is be set here because the expanded state is stored in the tree control and - // the node isn't aware when the state is changed. - // It is not set using a @HostBinding because they sometimes get lost with Mixin based classes. - // TODO: move to host after View Engine deprecation - if (this.isExpanded != this._isAriaExpanded) { - this._setExpanded(this.isExpanded); - } - } - ngOnDestroy() { // If this is the last tree node being destroyed, // clear out the reference to avoid leaking memory. diff --git a/src/material-experimental/mdc-button/button-base.ts b/src/material-experimental/mdc-button/button-base.ts index f20cd6bec6dc..82df10547557 100644 --- a/src/material-experimental/mdc-button/button-base.ts +++ b/src/material-experimental/mdc-button/button-base.ts @@ -8,7 +8,7 @@ import {BooleanInput} from '@angular/cdk/coercion'; import {Platform} from '@angular/cdk/platform'; -import {Directive, ElementRef, HostListener, NgZone, ViewChild} from '@angular/core'; +import {Directive, ElementRef, NgZone, ViewChild} from '@angular/core'; import { CanColor, CanDisable, @@ -159,7 +159,11 @@ export const MAT_ANCHOR_HOST = { /** * Anchor button base. */ -@Directive() +@Directive({ + host: { + '(click)': '_haltDisabledEvents($event)', + }, +}) export class MatAnchorBase extends MatButtonBase { tabIndex: number; @@ -167,12 +171,6 @@ export class MatAnchorBase extends MatButtonBase { super(elementRef, platform, ngZone, animationMode); } - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(mmalerba): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click', ['$event']) _haltDisabledEvents(event: Event) { // A disabled button shouldn't apply any actions if (this.disabled) { diff --git a/src/material-experimental/mdc-chips/chip.ts b/src/material-experimental/mdc-chips/chip.ts index 27ca314a9273..9016c07d2cc4 100644 --- a/src/material-experimental/mdc-chips/chip.ts +++ b/src/material-experimental/mdc-chips/chip.ts @@ -19,7 +19,6 @@ import { Directive, ElementRef, EventEmitter, - HostListener, Inject, Input, NgZone, @@ -106,6 +105,7 @@ const _MatChipMixinBase = mixinTabIndex(mixinColor(mixinDisableRipple(MatChipBas '[id]': 'id', '[attr.disabled]': 'disabled || null', '[attr.aria-disabled]': 'disabled.toString()', + '(transitionend)': '_handleTransitionEnd($event)', }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, @@ -141,12 +141,6 @@ export class MatChip /** Whether animations for the chip are enabled. */ _animationsDisabled: boolean; - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(mmalerba): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('transitionend', ['$event']) _handleTransitionEnd(event: TransitionEvent) { this._chipFoundation.handleTransitionEnd(event); } diff --git a/src/material-experimental/mdc-list/interactive-list-base.ts b/src/material-experimental/mdc-list/interactive-list-base.ts index 805c69246c97..ce1be7fab9b2 100644 --- a/src/material-experimental/mdc-list/interactive-list-base.ts +++ b/src/material-experimental/mdc-list/interactive-list-base.ts @@ -7,33 +7,30 @@ */ import {DOCUMENT} from '@angular/common'; -import { - AfterViewInit, - Directive, - ElementRef, - HostListener, - Inject, - OnDestroy, - QueryList, -} from '@angular/core'; +import {AfterViewInit, Directive, ElementRef, Inject, OnDestroy, QueryList} from '@angular/core'; import {MDCListAdapter, MDCListFoundation} from '@material/list'; import {Subscription} from 'rxjs'; import {startWith} from 'rxjs/operators'; import {MatListBase, MatListItemBase} from './list-base'; -@Directive() +@Directive({ + host: { + '(keydown)': '_handleKeydown($event)', + '(click)': '_handleClick($event)', + '(focusin)': '_handleFocusin($event)', + '(focusout)': '_handleFocusout($event)', + }, +}) /** @docs-private */ export abstract class MatInteractiveListBase extends MatListBase implements AfterViewInit, OnDestroy { - @HostListener('keydown', ['$event']) _handleKeydown(event: KeyboardEvent) { const index = this._indexForElement(event.target as HTMLElement); this._foundation.handleKeydown(event, this._elementAtIndex(index) === event.target, index); } - @HostListener('click', ['$event']) _handleClick(event: MouseEvent) { // The `toggleCheckbox` parameter can always be `true` as it only has an effect if the list // is recognized as checkbox selection list. For such lists, we would always want to toggle @@ -47,7 +44,6 @@ export abstract class MatInteractiveListBase ); } - @HostListener('focusin', ['$event']) _handleFocusin(event: FocusEvent) { const itemIndex = this._indexForElement(event.target as HTMLElement); const tabIndex = this._itemsArr[itemIndex]?._hostElement.tabIndex; @@ -64,7 +60,6 @@ export abstract class MatInteractiveListBase this._foundation.handleFocusIn(itemIndex); } - @HostListener('focusout', ['$event']) _handleFocusout(event: FocusEvent) { this._foundation.handleFocusOut(this._indexForElement(event.target as HTMLElement)); } diff --git a/src/material-experimental/mdc-list/list-base.ts b/src/material-experimental/mdc-list/list-base.ts index 5133c4d7859e..314f028c2cb1 100644 --- a/src/material-experimental/mdc-list/list-base.ts +++ b/src/material-experimental/mdc-list/list-base.ts @@ -13,7 +13,6 @@ import { ContentChildren, Directive, ElementRef, - HostBinding, Inject, Input, NgZone, @@ -42,7 +41,12 @@ function toggleClass(el: Element, className: string, on: boolean) { } } -@Directive() +@Directive({ + host: { + '[class.mdc-list-item--disabled]': 'disabled', + '[attr.aria-disabled]': 'disabled', + }, +}) /** @docs-private */ export abstract class MatListItemBase implements AfterContentInit, OnDestroy, RippleTarget { /** Query list matching list-item line elements. */ @@ -72,8 +76,6 @@ export abstract class MatListItemBase implements AfterContentInit, OnDestroy, Ri private _disableRipple: boolean = false; /** Whether the list-item is disabled. */ - @HostBinding('class.mdc-list-item--disabled') - @HostBinding('attr.aria-disabled') @Input() get disabled(): boolean { return this._disabled || (this._listBase && this._listBase.disabled); @@ -194,10 +196,14 @@ export abstract class MatListItemBase implements AfterContentInit, OnDestroy, Ri static ngAcceptInputType_disableRipple: BooleanInput; } -@Directive() +@Directive({ + host: { + '[class.mat-mdc-list-non-interactive]': '_isNonInteractive', + '[attr.aria-disabled]': 'disabled', + }, +}) /** @docs-private */ export abstract class MatListBase { - @HostBinding('class.mat-mdc-list-non-interactive') _isNonInteractive: boolean = true; /** Whether ripples for all list items is disabled. */ @@ -211,7 +217,6 @@ export abstract class MatListBase { private _disableRipple: boolean = false; /** Whether all list items are disabled. */ - @HostBinding('attr.aria-disabled') @Input() get disabled(): boolean { return this._disabled; diff --git a/src/material/input/input.ts b/src/material/input/input.ts index 761cab242e89..473040a9ba6d 100644 --- a/src/material/input/input.ts +++ b/src/material/input/input.ts @@ -14,7 +14,6 @@ import { Directive, DoCheck, ElementRef, - HostListener, Inject, Input, NgZone, @@ -85,6 +84,9 @@ const _MatInputBase = mixinErrorState( // state usually overlaps with `aria-required` when the input is empty and can be redundant. '[attr.aria-invalid]': '(empty && required) ? null : errorState', '[attr.aria-required]': 'required', + '(focus)': '_focusChanged(true)', + '(blur)': '_focusChanged(false)', + '(input)': '_onInput()', }, providers: [{provide: MatFormFieldControl, useExisting: MatInput}], }) @@ -365,15 +367,7 @@ export class MatInput this._elementRef.nativeElement.focus(options); } - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. /** Callback for the cases where the focused state of the input changes. */ - // tslint:disable:no-host-decorator-in-concrete - @HostListener('focus', ['true']) - @HostListener('blur', ['false']) - // tslint:enable:no-host-decorator-in-concrete _focusChanged(isFocused: boolean) { if (isFocused !== this.focused) { this.focused = isFocused; @@ -381,12 +375,6 @@ export class MatInput } } - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('input') _onInput() { // This is a noop function and is used to let Angular know whenever the value changes. // Angular will run a new change detection each time the `input` event has been dispatched. diff --git a/src/material/menu/menu-item.ts b/src/material/menu/menu-item.ts index c94c292866cc..b165c22b5830 100644 --- a/src/material/menu/menu-item.ts +++ b/src/material/menu/menu-item.ts @@ -17,7 +17,6 @@ import { Inject, Optional, Input, - HostListener, AfterViewInit, ChangeDetectorRef, } from '@angular/core'; @@ -51,6 +50,8 @@ const _MatMenuItemBase = mixinDisableRipple(mixinDisabled(class {})); '[attr.aria-disabled]': 'disabled.toString()', '[attr.disabled]': 'disabled || null', 'class': 'mat-focus-indicator', + '(click)': '_checkDisabled($event)', + '(mouseenter)': '_handleMouseEnter()', }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, @@ -142,12 +143,6 @@ export class MatMenuItem } /** Prevents the default element actions if it is disabled. */ - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('click', ['$event']) _checkDisabled(event: Event): void { if (this.disabled) { event.preventDefault(); @@ -156,12 +151,6 @@ export class MatMenuItem } /** Emits to the hover stream. */ - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('mouseenter') _handleMouseEnter() { this._hovered.next(this); } diff --git a/src/material/menu/menu-trigger.ts b/src/material/menu/menu-trigger.ts index a046af2c4eb4..0456a2e79ac5 100644 --- a/src/material/menu/menu-trigger.ts +++ b/src/material/menu/menu-trigger.ts @@ -29,8 +29,6 @@ import { Directive, ElementRef, EventEmitter, - HostBinding, - HostListener, Inject, InjectionToken, Input, @@ -74,7 +72,16 @@ const passiveEventListenerOptions = normalizePassiveListenerOptions({passive: tr // TODO(andrewseguin): Remove the kebab versions in favor of camelCased attribute selectors -@Directive() +@Directive({ + host: { + 'aria-haspopup': 'true', + '[attr.aria-expanded]': 'menuOpen || null', + '[attr.aria-controls]': 'menuOpen ? menu.panelId : null', + '(click)': '_handleClick($event)', + '(mousedown)': '_handleMousedown($event)', + '(keydown)': '_handleKeydown($event)', + }, +}) export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy { private _portal: TemplatePortal; private _overlayRef: OverlayRef | null = null; @@ -104,22 +111,6 @@ export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy // the first item of the list when the menu is opened via the keyboard _openedBy: Exclude | undefined = undefined; - @HostBinding('attr.aria-expanded') - // Need tp use getter for HostBinding - // tslint:disable-next-line:no-private-getters - get _ariaExpanded() { - return this.menuOpen || null; - } - - @HostBinding('attr.aria-controls') - // Need tp use getter for HostBinding - // tslint:disable-next-line:no-private-getters - get _ariaControl() { - return this.menuOpen ? this.menu.panelId : null; - } - - @HostBinding('attr.aria-haspopup') _ariaHaspopup = true; - /** * @deprecated * @breaking-change 8.0.0 @@ -529,7 +520,6 @@ export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy } /** Handles mouse presses on the trigger. */ - @HostListener('mousedown', ['$event']) _handleMousedown(event: MouseEvent): void { if (!isFakeMousedownFromScreenReader(event)) { // Since right or middle button clicks won't trigger the `click` event, @@ -546,7 +536,6 @@ export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy } /** Handles key presses on the trigger. */ - @HostListener('keydown', ['$event']) _handleKeydown(event: KeyboardEvent): void { const keyCode = event.keyCode; @@ -566,7 +555,6 @@ export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy } /** Handles click events on the trigger. */ - @HostListener('click', ['$event']) _handleClick(event: MouseEvent): void { if (this.triggersSubmenu()) { // Stop event propagation to avoid closing the parent menu. diff --git a/src/material/sidenav/drawer.ts b/src/material/sidenav/drawer.ts index fdd174498e3f..2989dbd1f697 100644 --- a/src/material/sidenav/drawer.ts +++ b/src/material/sidenav/drawer.ts @@ -41,8 +41,6 @@ import { QueryList, ViewChild, ViewEncapsulation, - HostListener, - HostBinding, } from '@angular/core'; import {fromEvent, merge, Observable, Subject} from 'rxjs'; import { @@ -142,6 +140,9 @@ export class MatDrawerContent extends CdkScrollable implements AfterContentInit '[class.mat-drawer-side]': 'mode === "side"', '[class.mat-drawer-opened]': 'opened', 'tabIndex': '-1', + '[@transform]': '_animationState', + '(@transform.start)': '_animationStarted.next($event)', + '(@transform.done)': '_animationEnd.next($event)', }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, @@ -244,11 +245,6 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr readonly _animationEnd = new Subject(); /** Current state of the sidenav animation. */ - // @HostBinding is used in the class as it is expected to be extended. Since @Component decorator - // metadata is not inherited by child classes, instead the host binding data is defined in a way - // that can be inherited. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostBinding('@transform') _animationState: 'open-instant' | 'open' | 'void' = 'void'; /** Event emitted when the drawer open state is changed. */ @@ -566,26 +562,6 @@ export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestr } } - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('@transform.start', ['$event']) - _animationStartListener(event: AnimationEvent) { - this._animationStarted.next(event); - } - - // We have to use a `HostListener` here in order to support both Ivy and ViewEngine. - // In Ivy the `host` bindings will be merged when this class is extended, whereas in - // ViewEngine they're overwritten. - // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default. - // tslint:disable-next-line:no-host-decorator-in-concrete - @HostListener('@transform.done', ['$event']) - _animationDoneListener(event: AnimationEvent) { - this._animationEnd.next(event); - } - static ngAcceptInputType_disableClose: BooleanInput; static ngAcceptInputType_autoFocus: AutoFocusTarget | string | BooleanInput; static ngAcceptInputType_opened: BooleanInput; diff --git a/src/material/tree/node.ts b/src/material/tree/node.ts index e9c8eba25c95..ecec48805e84 100644 --- a/src/material/tree/node.ts +++ b/src/material/tree/node.ts @@ -17,7 +17,6 @@ import { AfterContentInit, Attribute, Directive, - DoCheck, ElementRef, Input, IterableDiffers, @@ -37,10 +36,13 @@ const _MatTreeNodeBase = mixinTabIndex(mixinDisabled(CdkTreeNode)); exportAs: 'matTreeNode', inputs: ['role', 'disabled', 'tabIndex'], providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}], + host: { + 'class': 'mat-tree-node', + }, }) export class MatTreeNode extends _MatTreeNodeBase - implements CanDisable, DoCheck, HasTabIndex, OnInit, OnDestroy + implements CanDisable, HasTabIndex, OnInit, OnDestroy { constructor( elementRef: ElementRef, @@ -48,13 +50,7 @@ export class MatTreeNode @Attribute('tabindex') tabIndex: string, ) { super(elementRef, tree); - this.tabIndex = Number(tabIndex) || 0; - // The classes are directly added here instead of in the host property because classes on - // the host property are not inherited with View Engine. It is not set as a @HostBinding because - // it is not set by the time it's children nodes try to read the class from it. - // TODO: move to host after View Engine deprecation - elementRef.nativeElement.classList.add('mat-tree-node'); } // This is a workaround for https://github.com/angular/angular/issues/23091 @@ -63,10 +59,6 @@ export class MatTreeNode super.ngOnInit(); } - override ngDoCheck() { - super.ngDoCheck(); - } - override ngOnDestroy() { super.ngOnDestroy(); } @@ -100,10 +92,13 @@ export class MatTreeNodeDef extends CdkTreeNodeDef { {provide: CdkTreeNode, useExisting: MatNestedTreeNode}, {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode}, ], + host: { + 'class': 'mat-nested-tree-node', + }, }) export class MatNestedTreeNode extends CdkNestedTreeNode - implements AfterContentInit, DoCheck, OnDestroy, OnInit + implements AfterContentInit, OnDestroy, OnInit { @Input('matNestedTreeNode') node: T; @@ -136,11 +131,6 @@ export class MatNestedTreeNode ) { super(elementRef, tree, differs); this.tabIndex = Number(tabIndex) || 0; - // The classes are directly added here instead of in the host property because classes on - // the host property are not inherited with View Engine. It is not set as a @HostBinding because - // it is not set by the time it's children nodes try to read the class from it. - // TODO: move to host after View Engine deprecation - elementRef.nativeElement.classList.add('mat-nested-tree-node'); } // This is a workaround for https://github.com/angular/angular/issues/19145 @@ -150,10 +140,6 @@ export class MatNestedTreeNode super.ngOnInit(); } - override ngDoCheck() { - super.ngDoCheck(); - } - override ngAfterContentInit() { super.ngAfterContentInit(); } diff --git a/src/material/tree/tree.ts b/src/material/tree/tree.ts index f87feb4d2c64..e546cac0b234 100644 --- a/src/material/tree/tree.ts +++ b/src/material/tree/tree.ts @@ -18,14 +18,7 @@ import {MatTreeNodeOutlet} from './outlet'; exportAs: 'matTree', template: ``, host: { - // The 'cdk-tree' class needs to be included here because classes set in the host in the - // parent class are not inherited with View Engine. The 'cdk-tree' class in CdkTreeNode has - // to be set in the host because: - // if it is set as a @HostBinding it is not set by the time the tree nodes try to read the - // class from it. - // the ElementRef is not available in the constructor so the class can't be applied directly - // without a breaking constructor change. - 'class': 'mat-tree cdk-tree', + 'class': 'mat-tree', 'role': 'tree', }, styleUrls: ['tree.css'], diff --git a/tools/public_api_guard/cdk/stepper.md b/tools/public_api_guard/cdk/stepper.md index e5731456d2ca..a94e3e2ad480 100644 --- a/tools/public_api_guard/cdk/stepper.md +++ b/tools/public_api_guard/cdk/stepper.md @@ -163,8 +163,6 @@ export class CdkStepperModule { export class CdkStepperNext { constructor(_stepper: CdkStepper); // (undocumented) - _handleClick(): void; - // (undocumented) _stepper: CdkStepper; type: string; // (undocumented) @@ -177,8 +175,6 @@ export class CdkStepperNext { export class CdkStepperPrevious { constructor(_stepper: CdkStepper); // (undocumented) - _handleClick(): void; - // (undocumented) _stepper: CdkStepper; type: string; // (undocumented) diff --git a/tools/public_api_guard/cdk/tree.md b/tools/public_api_guard/cdk/tree.md index 652a6e73cabe..f264884d7790 100644 --- a/tools/public_api_guard/cdk/tree.md +++ b/tools/public_api_guard/cdk/tree.md @@ -12,7 +12,6 @@ import { ChangeDetectorRef } from '@angular/core'; import { CollectionViewer } from '@angular/cdk/collections'; import { DataSource } from '@angular/cdk/collections'; import { Directionality } from '@angular/cdk/bidi'; -import { DoCheck } from '@angular/core'; import { ElementRef } from '@angular/core'; import { FocusableOption } from '@angular/cdk/a11y'; import * as i0 from '@angular/core'; @@ -56,7 +55,7 @@ export abstract class BaseTreeControl implements TreeControl { export const CDK_TREE_NODE_OUTLET_NODE: InjectionToken<{}>; // @public -export class CdkNestedTreeNode extends CdkTreeNode implements AfterContentInit, DoCheck, OnDestroy, OnInit { +export class CdkNestedTreeNode extends CdkTreeNode implements AfterContentInit, OnDestroy, OnInit { constructor(elementRef: ElementRef, tree: CdkTree, _differs: IterableDiffers); protected _children: T[]; protected _clear(): void; @@ -65,8 +64,6 @@ export class CdkNestedTreeNode extends CdkTreeNode implements Af // (undocumented) ngAfterContentInit(): void; // (undocumented) - ngDoCheck(): void; - // (undocumented) ngOnDestroy(): void; // (undocumented) ngOnInit(): void; @@ -118,7 +115,7 @@ export class CdkTreeModule { } // @public -export class CdkTreeNode implements DoCheck, FocusableOption, OnDestroy, OnInit { +export class CdkTreeNode implements FocusableOption, OnDestroy, OnInit { constructor(_elementRef: ElementRef, _tree: CdkTree); get data(): T; set data(value: T); @@ -130,15 +127,11 @@ export class CdkTreeNode implements DoCheck, FocusableOption, OnDestro protected _elementRef: ElementRef; focus(): void; // (undocumented) - protected _isAriaExpanded: boolean; - // (undocumented) get isExpanded(): boolean; // (undocumented) get level(): number; static mostRecentTreeNode: CdkTreeNode | null; // (undocumented) - ngDoCheck(): void; - // (undocumented) ngOnDestroy(): void; // (undocumented) ngOnInit(): void; diff --git a/tools/public_api_guard/material/menu.md b/tools/public_api_guard/material/menu.md index 2a53f47f5303..31286c5d44c9 100644 --- a/tools/public_api_guard/material/menu.md +++ b/tools/public_api_guard/material/menu.md @@ -288,12 +288,6 @@ export class MatMenuTrigger extends _MatMenuTriggerBase { // @public (undocumented) export abstract class _MatMenuTriggerBase implements AfterContentInit, OnDestroy { constructor(_overlay: Overlay, _element: ElementRef, _viewContainerRef: ViewContainerRef, scrollStrategy: any, parentMenu: MatMenuPanel, _menuItemInstance: MatMenuItem, _dir: Directionality, _focusMonitor?: FocusMonitor | undefined); - // (undocumented) - get _ariaControl(): string | null | undefined; - // (undocumented) - get _ariaExpanded(): true | null; - // (undocumented) - _ariaHaspopup: boolean; closeMenu(): void; // @deprecated (undocumented) get _deprecatedMatMenuTriggerFor(): MatMenuPanel; diff --git a/tools/public_api_guard/material/sidenav.md b/tools/public_api_guard/material/sidenav.md index b1cf9df053e6..29e5b2a47cf2 100644 --- a/tools/public_api_guard/material/sidenav.md +++ b/tools/public_api_guard/material/sidenav.md @@ -50,12 +50,8 @@ export function MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY(): boolean; // @public export class MatDrawer implements AfterContentInit, AfterContentChecked, OnDestroy { constructor(_elementRef: ElementRef, _focusTrapFactory: FocusTrapFactory, _focusMonitor: FocusMonitor, _platform: Platform, _ngZone: NgZone, _interactivityChecker: InteractivityChecker, _doc: any, _container?: MatDrawerContainer | undefined); - // (undocumented) - _animationDoneListener(event: AnimationEvent_2): void; readonly _animationEnd: Subject; readonly _animationStarted: Subject; - // (undocumented) - _animationStartListener(event: AnimationEvent_2): void; _animationState: 'open-instant' | 'open' | 'void'; get autoFocus(): AutoFocusTarget | string | boolean; set autoFocus(value: AutoFocusTarget | string | boolean); diff --git a/tools/public_api_guard/material/tree.md b/tools/public_api_guard/material/tree.md index 1f4149934c5e..10b51b166c38 100644 --- a/tools/public_api_guard/material/tree.md +++ b/tools/public_api_guard/material/tree.md @@ -18,7 +18,6 @@ import { CdkTreeNodeToggle } from '@angular/cdk/tree'; import { CollectionViewer } from '@angular/cdk/collections'; import { _Constructor } from '@angular/material/core'; import { DataSource } from '@angular/cdk/collections'; -import { DoCheck } from '@angular/core'; import { ElementRef } from '@angular/core'; import { FlatTreeControl } from '@angular/cdk/tree'; import { HasTabIndex } from '@angular/material/core'; @@ -34,7 +33,7 @@ import { TreeControl } from '@angular/cdk/tree'; import { ViewContainerRef } from '@angular/core'; // @public -export class MatNestedTreeNode extends CdkNestedTreeNode implements AfterContentInit, DoCheck, OnDestroy, OnInit { +export class MatNestedTreeNode extends CdkNestedTreeNode implements AfterContentInit, OnDestroy, OnInit { constructor(elementRef: ElementRef, tree: CdkTree, differs: IterableDiffers, tabIndex: string); get disabled(): any; set disabled(value: any); @@ -43,8 +42,6 @@ export class MatNestedTreeNode extends CdkNestedTreeNode impleme // (undocumented) ngAfterContentInit(): void; // (undocumented) - ngDoCheck(): void; - // (undocumented) ngOnDestroy(): void; // (undocumented) ngOnInit(): void; @@ -120,15 +117,13 @@ export class MatTreeNestedDataSource extends DataSource { } // @public -export class MatTreeNode extends _MatTreeNodeBase implements CanDisable, DoCheck, HasTabIndex, OnInit, OnDestroy { +export class MatTreeNode extends _MatTreeNodeBase implements CanDisable, HasTabIndex, OnInit, OnDestroy { constructor(elementRef: ElementRef, tree: CdkTree, tabIndex: string); // (undocumented) static ngAcceptInputType_disabled: BooleanInput; // (undocumented) static ngAcceptInputType_tabIndex: NumberInput; // (undocumented) - ngDoCheck(): void; - // (undocumented) ngOnDestroy(): void; // (undocumented) ngOnInit(): void; From f69cf6c39e459b6c492b03e4a7193a6c7fdfb75b Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Tue, 9 Nov 2021 01:17:58 +0100 Subject: [PATCH 038/358] build: update karma to v6.3.8 which contains sourcemap generated-code fix (#23922) Updates to Karma v6.3.8 which contains a sourcemap fix we landed upstream. Previous versions of Karma printed/polluted the log output when an error is thrown due to generated-code being part of stack traces (due to ESBuild downleveling). More details here: https://gist.github.com/devversion/549d25915c2dc98a8896ba4408a1e27c. https://github.com/karma-runner/karma/commit/4f23b14d3e774c0401f2c9eecb188b37aed020eb --- package.json | 8 +- yarn.lock | 282 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 173 insertions(+), 117 deletions(-) diff --git a/package.json b/package.json index de8ca41aaeaa..93b004703cee 100644 --- a/package.json +++ b/package.json @@ -179,15 +179,15 @@ "jasmine-core": "^3.6.0", "jsonc-parser": "^3.0.0", "kagekiri": "^1.4.1", - "karma": "^4.4.1", + "karma": "^6.3.8", "karma-browserstack-launcher": "^1.6.0", "karma-chrome-launcher": "^3.1.0", - "karma-firefox-launcher": "^2.0.0", + "karma-firefox-launcher": "^2.1.2", "karma-jasmine": "^4.0.1", - "karma-parallel": "^0.3.0", + "karma-parallel": "^0.3.1", "karma-requirejs": "^1.1.0", "karma-sauce-launcher": "^4.3.6", - "karma-sourcemap-loader": "^0.3.7", + "karma-sourcemap-loader": "^0.3.8", "luxon": "^2.0.0", "madge": "^4.0.0", "marked": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index a56de2e3160f..05ff795edf73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3285,6 +3285,21 @@ "@types/node" "*" "@types/responselike" "*" +"@types/component-emitter@^1.2.10": + version "1.2.11" + resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506" + integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== + +"@types/cookie@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + +"@types/cors@^2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + "@types/duplexify@^3.6.0": version "3.6.0" resolved "https://registry.yarnpkg.com/@types/duplexify/-/duplexify-3.6.0.tgz#dfc82b64bd3a2168f5bd26444af165bf0237dcd8" @@ -3464,6 +3479,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== +"@types/node@>=10.0.0": + version "16.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" + integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== + "@types/node@^10.1.0": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -4516,6 +4536,11 @@ base64-arraybuffer@0.1.5: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= +base64-arraybuffer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz#87bd13525626db4a9838e00a508c2b73efcf348c" + integrity sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA== + base64-js@^1.2.0, base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -4526,6 +4551,11 @@ base64id@1.0.0: resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= +base64id@2.0.0, base64id@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -4700,17 +4730,12 @@ blocking-proxy@^1.0.0: dependencies: minimist "^1.2.0" -bluebird@^3.3.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - bluebird@~3.4.1: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= -body-parser@1.19.0, body-parser@^1.16.1, body-parser@^1.18.3, body-parser@^1.19.0: +body-parser@1.19.0, body-parser@^1.18.3, body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -5369,7 +5394,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2, chokidar@^3.4.1, chokidar@^3.5.2: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.0.2, chokidar@^3.4.1, chokidar@^3.5.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -5671,7 +5696,7 @@ colors@1.0.3, colors@1.0.x: resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -colors@^1.1.0, colors@^1.1.2, colors@^1.2.1: +colors@^1.1.2, colors@^1.2.1, colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -5823,7 +5848,7 @@ connect@3.6.6: parseurl "~1.3.2" utils-merge "1.0.1" -connect@^3.6.0, connect@^3.6.2: +connect@^3.6.2, connect@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== @@ -5902,6 +5927,11 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + copy-anything@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.3.tgz#842407ba02466b0df844819bbe3baebbe5d45d87" @@ -5955,7 +5985,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.5: +cors@^2.8.5, cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -6201,11 +6231,16 @@ date-fns@^2.23.0: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.23.0.tgz#4e886c941659af0cf7b30fafdd1eaa37e88788a9" integrity sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA== -date-format@^2.0.0: +date-format@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== +date-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" + integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -6213,7 +6248,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.2, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@4, debug@4.3.2, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1, debug@~4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -6716,7 +6751,7 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -dom-serialize@^2.2.0: +dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= @@ -7015,6 +7050,13 @@ engine.io-parser@~2.2.0: blob "0.0.5" has-binary2 "~1.0.2" +engine.io-parser@~5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.1.tgz#6695fc0f1e6d76ad4a48300ff80db5f6b3654939" + integrity sha512-j4p3WwJrG2k92VISM0op7wiq60vO92MlF3CRGxhKHy9ywG1/Dkc72g0dXeDQ+//hrcDn8gqQzoEkdO9FN0d9AA== + dependencies: + base64-arraybuffer "~1.0.1" + engine.io@~3.2.0: version "3.2.1" resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" @@ -7027,6 +7069,22 @@ engine.io@~3.2.0: engine.io-parser "~2.1.0" ws "~3.3.1" +engine.io@~6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.0.1.tgz#4a37754c6067415e9bfbcc82e49e572437354615" + integrity sha512-Y53UaciUh2Rmx5MiogtMxOQcfh7pnemday+Bb4QDg0Wjmnvo/VTvuEyNGQgYmh8L7VOe8Je1QuiqjLNDelMqLA== + dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~5.0.0" + ws "~8.2.3" + enhanced-resolve@^5.3.2: version "5.8.2" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" @@ -8108,7 +8166,7 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flatted@^2.0.0: +flatted@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== @@ -8227,15 +8285,6 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.1, fs-extra@~7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -8255,6 +8304,15 @@ fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@~7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -8518,7 +8576,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.2.0: +glob@7.2.0, glob@^7.1.7: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -9164,7 +9222,7 @@ http-proxy-middleware@^2.0.0: is-plain-obj "^3.0.0" micromatch "^4.0.2" -http-proxy@^1.13.0, http-proxy@^1.18.1: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -9936,12 +9994,10 @@ isarray@2.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" +isbinaryfile@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" + integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== isexe@^2.0.0: version "2.0.0" @@ -10338,10 +10394,10 @@ karma-chrome-launcher@^3.1.0: dependencies: which "^1.2.1" -karma-firefox-launcher@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.1.tgz#6457226f8e4f091b664cef79bb5d39bf1e008765" - integrity sha512-VzDMgPseXak9DtfyE1O5bB2BwsMy1zzO1kUxVW1rP0yhC4tDNJ0p3JoFdzvrK4QqVzdqUMa9Rx9YzkdFp8hz3Q== +karma-firefox-launcher@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz#9a38cc783c579a50f3ed2a82b7386186385cfc2d" + integrity sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA== dependencies: is-wsl "^2.2.0" which "^2.0.1" @@ -10353,7 +10409,7 @@ karma-jasmine@^4.0.1: dependencies: jasmine-core "^3.6.0" -karma-parallel@^0.3.0: +karma-parallel@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/karma-parallel/-/karma-parallel-0.3.1.tgz#781876e5992b2781619e762f3e04dcbf85f47fa1" integrity sha512-64jxNYamYi/9Y67h4+FfViSYhwDgod3rLuq+ZdZ0c3XeZFp/3q3v3HVkd8b5Czp3hCB+LLF8DIv4zlR4xFqbRw== @@ -10382,44 +10438,41 @@ karma-source-map-support@1.4.0: dependencies: source-map-support "^0.5.5" -karma-sourcemap-loader@^0.3.7: +karma-sourcemap-loader@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz#d4bae72fb7a8397328a62b75013d2df937bdcf9c" integrity sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g== dependencies: graceful-fs "^4.1.2" -karma@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== +karma@^6.3.8: + version "6.3.8" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.8.tgz#6a192f24b7dddf45fad564ce2e52673aec4f746e" + integrity sha512-10wBBU9S0lBHhbCNfmmbWQaY5C1bXlKdnvzN2QKThujCI/+DKaezrI08l6bfTlpJ92VsEboq3zYKpXwK6DOi3A== dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" + body-parser "^1.19.0" braces "^3.0.2" - chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" + chokidar "^3.5.1" + colors "^1.4.0" + connect "^3.7.0" di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" + dom-serialize "^2.2.1" + glob "^7.1.7" + graceful-fs "^4.2.6" + http-proxy "^1.18.1" + isbinaryfile "^4.0.8" + lodash "^4.17.21" + log4js "^6.3.0" + mime "^2.5.2" + minimatch "^3.0.4" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^4.2.0" source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" + tmp "^0.2.1" + ua-parser-js "^0.7.30" + yargs "^16.1.1" keyv@3.0.0: version "3.0.0" @@ -10816,16 +10869,16 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== +log4js@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" + integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== dependencies: - date-format "^2.0.0" + date-format "^3.0.0" debug "^4.1.1" - flatted "^2.0.0" + flatted "^2.0.1" rfdc "^1.1.4" - streamroller "^1.0.6" + streamroller "^2.2.4" logform@^2.2.0: version "2.2.0" @@ -10892,7 +10945,7 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@4.1.x, lru-cache@^4.0.1: +lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -11329,7 +11382,7 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.3.1, mime@^2.5.2: +mime@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== @@ -11392,11 +11445,6 @@ minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -12157,14 +12205,6 @@ opn@5.3.0: dependencies: is-wsl "^1.1.0" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -13425,7 +13465,7 @@ q@^1.4.1, q@~1.5.0: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qjobs@^1.1.4: +qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== @@ -13488,7 +13528,7 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.0, range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2.1: +range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -14018,7 +14058,7 @@ rgb2hex@0.2.3: resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.2.3.tgz#8aa464c517b8a26c7a79d767dabaec2b49ee78ec" integrity sha512-clEe0m1xv+Tva1B/TOepuIcvLAxP0U+sCDfgt1SX1HmI2Ahr5/Cd/nzJM1e78NKVtWdoo0s33YehpFA8UfIShQ== -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -14634,6 +14674,11 @@ socket.io-adapter@~1.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== +socket.io-adapter@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz#039cd7c71a52abad984a6d57da2c0b7ecdd3c289" + integrity sha512-PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg== + socket.io-client@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" @@ -14689,6 +14734,15 @@ socket.io-parser@~3.3.0: debug "~3.1.0" isarray "2.0.1" +socket.io-parser@~4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" + integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== + dependencies: + "@types/component-emitter" "^1.2.10" + component-emitter "~1.3.0" + debug "~4.3.1" + socket.io@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" @@ -14701,6 +14755,18 @@ socket.io@2.1.1: socket.io-client "2.1.1" socket.io-parser "~3.2.0" +socket.io@^4.2.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.3.2.tgz#85ae0cf5cf18acbce648ac9f48aba66df8cea6bf" + integrity sha512-6S5tV4jcY6dbZ/lLzD6EkvNWI3s81JO6ABP/EpvOlK1NPOcIj3AS4khi6xXw6JlZCASq82HQV4SapfmVMMl2dg== + dependencies: + accepts "~1.3.4" + base64id "~2.0.0" + debug "~4.3.2" + engine.io "~6.0.0" + socket.io-adapter "~2.3.2" + socket.io-parser "~4.0.4" + sockjs@^0.3.21: version "0.3.21" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" @@ -15010,16 +15076,14 @@ stream-throttle@^0.1.3: commander "^2.2.0" limiter "^1.0.5" -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== +streamroller@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" + integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" + date-format "^2.1.0" + debug "^4.1.1" + fs-extra "^8.1.0" strict-uri-encode@^1.0.0: version "1.1.0" @@ -15622,7 +15686,7 @@ tmp@0.0.30: dependencies: os-tmpdir "~1.0.1" -tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: +tmp@0.0.33, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -15961,6 +16025,11 @@ ua-parser-js@^0.7.18, ua-parser-js@^0.7.21: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== +ua-parser-js@^0.7.30: + version "0.7.31" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" + integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== + uglify-js@^3.1.4: version "3.14.1" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" @@ -16280,14 +16349,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -16706,11 +16767,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -16749,7 +16805,7 @@ ws@^7.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@^8.1.0: +ws@^8.1.0, ws@~8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== From b533e619ec724ec76deffc67ff6cf923bb7d9c91 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 9 Nov 2021 18:28:35 +0100 Subject: [PATCH 039/358] fix(material/slide-toggle): remove tabindex from host node (#23891) The `tabindex="-1"` on the host node was causing VoicerOver to read out the slide toggle as a group and to read out the label twice. These changes remove the `tabindex` like we've done for `mat-radio` and `mat-checkbox` in the past. --- .../mdc-slide-toggle/slide-toggle.spec.ts | 14 ++------------ .../mdc-slide-toggle/slide-toggle.ts | 9 ++------- src/material/slide-toggle/slide-toggle.spec.ts | 14 ++------------ src/material/slide-toggle/slide-toggle.ts | 12 +++--------- 4 files changed, 9 insertions(+), 40 deletions(-) diff --git a/src/material-experimental/mdc-slide-toggle/slide-toggle.spec.ts b/src/material-experimental/mdc-slide-toggle/slide-toggle.spec.ts index 152aa17b3973..5b55cd224e9e 100644 --- a/src/material-experimental/mdc-slide-toggle/slide-toggle.spec.ts +++ b/src/material-experimental/mdc-slide-toggle/slide-toggle.spec.ts @@ -287,16 +287,6 @@ describe('MDC-based MatSlideToggle without forms', () => { expect(document.activeElement).toBe(buttonElement); })); - it('should focus on underlying element when the host is focused', fakeAsync(() => { - expect(document.activeElement).not.toBe(buttonElement); - - slideToggleElement.focus(); - fixture.detectChanges(); - tick(); - - expect(document.activeElement).toBe(buttonElement); - })); - it('should not manually move focus to underlying when focus comes from mouse or touch', fakeAsync( inject([FocusMonitor], (focusMonitor: FocusMonitor) => { expect(document.activeElement).not.toBe(buttonElement); @@ -397,13 +387,13 @@ describe('MDC-based MatSlideToggle without forms', () => { expect(switchEl.classList).toContain('mdc-switch--checked'); })); - it('should set the tabindex of the host element to -1', fakeAsync(() => { + it('should remove the tabindex from the host node', fakeAsync(() => { const fixture = TestBed.createComponent(SlideToggleWithTabindexAttr); fixture.detectChanges(); const slideToggle = fixture.debugElement.query(By.directive(MatSlideToggle))!.nativeElement; - expect(slideToggle.getAttribute('tabindex')).toBe('-1'); + expect(slideToggle.hasAttribute('tabindex')).toBe(false); })); it('should remove the tabindex from the host element when disabled', fakeAsync(() => { diff --git a/src/material-experimental/mdc-slide-toggle/slide-toggle.ts b/src/material-experimental/mdc-slide-toggle/slide-toggle.ts index 458970f5e499..058238c8a43a 100644 --- a/src/material-experimental/mdc-slide-toggle/slide-toggle.ts +++ b/src/material-experimental/mdc-slide-toggle/slide-toggle.ts @@ -66,8 +66,8 @@ export class MatSlideToggleChange { host: { 'class': 'mat-mdc-slide-toggle', '[id]': 'id', - // Needs to be `-1` so it can still receive programmatic focus. - '[attr.tabindex]': 'disabled ? null : -1', + // Needs to be removed since it causes some a11y issues (see #21266). + '[attr.tabindex]': 'null', '[attr.aria-label]': 'null', '[attr.aria-labelledby]': 'null', '[class.mat-primary]': 'color === "primary"', @@ -221,12 +221,7 @@ export class MatSlideToggle implements ControlValueAccessor, AfterViewInit, OnDe foundation.setChecked(this.checked); this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => { - // Only forward focus manually when it was received programmatically or through the - // keyboard. We should not do this for mouse/touch focus for two reasons: - // 1. It can prevent clicks from landing in Chrome (see #18269). - // 2. They're already handled by the wrapping `label` element. if (focusOrigin === 'keyboard' || focusOrigin === 'program') { - this._switchElement.nativeElement.focus(); this._focused = true; } else if (!focusOrigin) { // When a focused element becomes disabled, the browser *immediately* fires a blur event. diff --git a/src/material/slide-toggle/slide-toggle.spec.ts b/src/material/slide-toggle/slide-toggle.spec.ts index 071d81f0728c..fd6e137bed9f 100644 --- a/src/material/slide-toggle/slide-toggle.spec.ts +++ b/src/material/slide-toggle/slide-toggle.spec.ts @@ -318,16 +318,6 @@ describe('MatSlideToggle without forms', () => { expect(document.activeElement).toBe(inputElement); })); - it('should focus on underlying element when the host is focused', fakeAsync(() => { - expect(document.activeElement).not.toBe(inputElement); - - slideToggleElement.focus(); - fixture.detectChanges(); - flush(); - - expect(document.activeElement).toBe(inputElement); - })); - it('should not manually move focus to underlying when focus comes from mouse or touch', inject( [FocusMonitor], (focusMonitor: FocusMonitor) => { @@ -410,13 +400,13 @@ describe('MatSlideToggle without forms', () => { .toBe(5); })); - it('should set the tabindex of the host element to -1', fakeAsync(() => { + it('should remove the tabindex from the host node', fakeAsync(() => { const fixture = TestBed.createComponent(SlideToggleWithTabindexAttr); fixture.detectChanges(); const slideToggle = fixture.debugElement.query(By.directive(MatSlideToggle))!.nativeElement; - expect(slideToggle.getAttribute('tabindex')).toBe('-1'); + expect(slideToggle.hasAttribute('tabindex')).toBe(false); })); it('should remove the tabindex from the host element when disabled', fakeAsync(() => { diff --git a/src/material/slide-toggle/slide-toggle.ts b/src/material/slide-toggle/slide-toggle.ts index 19205094945c..6cb2215e3c24 100644 --- a/src/material/slide-toggle/slide-toggle.ts +++ b/src/material/slide-toggle/slide-toggle.ts @@ -83,8 +83,8 @@ const _MatSlideToggleBase = mixinTabIndex( host: { 'class': 'mat-slide-toggle', '[id]': 'id', - // Needs to be `-1` so it can still receive programmatic focus. - '[attr.tabindex]': 'disabled ? null : -1', + // Needs to be removed since it causes some a11y issues (see #21266). + '[attr.tabindex]': 'null', '[attr.aria-label]': 'null', '[attr.aria-labelledby]': 'null', '[class.mat-checked]': 'checked', @@ -198,13 +198,7 @@ export class MatSlideToggle ngAfterContentInit() { this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => { - // Only forward focus manually when it was received programmatically or through the - // keyboard. We should not do this for mouse/touch focus for two reasons: - // 1. It can prevent clicks from landing in Chrome (see #18269). - // 2. They're already handled by the wrapping `label` element. - if (focusOrigin === 'keyboard' || focusOrigin === 'program') { - this._inputElement.nativeElement.focus(); - } else if (!focusOrigin) { + if (!focusOrigin) { // When a focused element becomes disabled, the browser *immediately* fires a blur event. // Angular does not expect events to be raised during change detection, so any state // change (such as a form control's 'ng-touched') will cause a changed-after-checked From 2c637d3129865d3e3e475fea3f1cd3353e06394f Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 9 Nov 2021 18:30:46 +0100 Subject: [PATCH 040/358] fix(material/chips): add selected indication in high contrast mode (#23828) Currently the single-selection chip shows that it's selected by changing its background color, but that doesn't work in high contrast mode. These changes add a thicker outline when the chip is selected. --- src/material-experimental/mdc-chips/chip-option.ts | 1 + src/material-experimental/mdc-chips/chips.scss | 8 ++++++++ src/material/chips/chips.scss | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/src/material-experimental/mdc-chips/chip-option.ts b/src/material-experimental/mdc-chips/chip-option.ts index 119124a2112a..551619e2fc2a 100644 --- a/src/material-experimental/mdc-chips/chip-option.ts +++ b/src/material-experimental/mdc-chips/chip-option.ts @@ -50,6 +50,7 @@ export class MatChipSelectionChange { '[class.mat-mdc-chip-with-avatar]': 'leadingIcon', '[class.mat-mdc-chip-with-trailing-icon]': 'trailingIcon || removeIcon', '[class.mat-mdc-chip-selected]': 'selected', + '[class.mat-mdc-chip-multiple]': '_chipListMultiple', '[id]': 'id', '[tabIndex]': 'tabIndex', '[attr.disabled]': 'disabled || null', diff --git a/src/material-experimental/mdc-chips/chips.scss b/src/material-experimental/mdc-chips/chips.scss index 8ef7df07f689..a54134b604a3 100644 --- a/src/material-experimental/mdc-chips/chips.scss +++ b/src/material-experimental/mdc-chips/chips.scss @@ -141,6 +141,14 @@ $chip-margin: 4px; } } +// Single-selection chips show their selected state using a background color which won't be visible +// in high contrast mode. This isn't necessary in multi-selection since there's a checkmark. +.mat-mdc-chip-selected:not(.mat-mdc-chip-multiple) { + @include a11y.high-contrast(active, off) { + outline-width: 3px; + } +} + .mat-mdc-chip-row-focusable-text-content, .mat-mdc-chip-remove-icon { display: flex; diff --git a/src/material/chips/chips.scss b/src/material/chips/chips.scss index 00e171e358f2..4dfeb723ea42 100644 --- a/src/material/chips/chips.scss +++ b/src/material/chips/chips.scss @@ -98,6 +98,11 @@ $chip-remove-size: 18px; // Use 2px here since the dotted outline is a little thinner. outline: dotted 2px; } + + // Seleted state is shown using a background color which isn't visible in high contrast mode. + &.mat-chip-selected { + outline-width: 3px; + } } &.mat-chip-disabled { From 1267263a83d039a62011ac189cdf81b772a39310 Mon Sep 17 00:00:00 2001 From: Marco Marche Date: Tue, 9 Nov 2021 18:33:20 +0100 Subject: [PATCH 041/358] fix(cdk/overlay): remove Optional decorator in ConnectedOverlayPositionChange constructor (#23735) --- src/cdk/overlay/position/connected-position.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/cdk/overlay/position/connected-position.ts b/src/cdk/overlay/position/connected-position.ts index e9a42b432e21..42954a37a636 100644 --- a/src/cdk/overlay/position/connected-position.ts +++ b/src/cdk/overlay/position/connected-position.ts @@ -7,7 +7,6 @@ */ /** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */ -import {Optional} from '@angular/core'; export type HorizontalConnectionPos = 'start' | 'center' | 'end'; /** Vertical dimension of a connection point on the perimeter of the origin or overlay element. */ @@ -91,7 +90,7 @@ export class ConnectedOverlayPositionChange { /** The position used as a result of this change. */ public connectionPair: ConnectionPositionPair, /** @docs-private */ - @Optional() public scrollableViewProperties: ScrollingVisibility, + public scrollableViewProperties: ScrollingVisibility, ) {} } From ca18e2df71478fd86f525af7f851ef3b93c96933 Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Wed, 10 Nov 2021 15:25:21 -0800 Subject: [PATCH 042/358] build: update to latest @angular/dev-infra-private to address issues related to verifying environment (#23944) Update to the latest package which properly checks if the running version of ng-dev is the version described in yarn lock. --- package.json | 2 +- yarn.lock | 196 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 117 insertions(+), 81 deletions(-) diff --git a/package.json b/package.json index 93b004703cee..1f1f247d2d9f 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@angular/bazel": "13.0.0", "@angular/cli": "13.0.1", "@angular/compiler-cli": "13.0.0", - "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#26d2e72c0311590097861c87319ba8acbd898f63", + "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#2cfe4b98a157927b319a3a00b467ff6233dc3337", "@angular/localize": "13.0.0", "@angular/platform-browser-dynamic": "13.0.0", "@angular/platform-server": "13.0.0", diff --git a/yarn.lock b/yarn.lock index 05ff795edf73..423e6689255f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -112,14 +112,14 @@ optionalDependencies: esbuild "0.13.12" -"@angular-devkit/build-optimizer@^0.1202.0": - version "0.1202.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.1.tgz#96ce0d33d438f724866c1f171ac3886a95422dde" - integrity sha512-eMyPdfudKek4buv5b2lBRKrv8r2P/soPOsLVcyt2pgrA6V1I8UaJKEDmBwxQ//RwwrvMdD/OWfRxxJm7YvD8kQ== +"@angular-devkit/build-optimizer@^0.1300.0": + version "0.1300.1" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.1300.1.tgz#75019895cc5ba256b59018fe82019ac5aa2122eb" + integrity sha512-Y97HdkZQmKggDrAvgqKtikYKwwuUiHdQPMxmclN2zlw7vskmkhLF3Te1pWW/i1W3bgcS4nc244vf/cWLhyTy/w== dependencies: source-map "0.7.3" - tslib "2.3.0" - typescript "4.3.5" + tslib "2.3.1" + typescript "4.4.4" "@angular-devkit/build-webpack@0.1300.1": version "0.1300.1" @@ -257,22 +257,22 @@ dependencies: tslib "^2.0.0" -"@angular/dev-infra-private@https://github.com/angular/dev-infra-private-builds.git#26d2e72c0311590097861c87319ba8acbd898f63": - version "0.0.0" - resolved "https://github.com/angular/dev-infra-private-builds.git#26d2e72c0311590097861c87319ba8acbd898f63" +"@angular/dev-infra-private@https://github.com/angular/dev-infra-private-builds.git#2cfe4b98a157927b319a3a00b467ff6233dc3337": + version "0.0.0-0474a28f6c7dbc47b8075e78223b2eeb8cd37c2e" + resolved "https://github.com/angular/dev-infra-private-builds.git#2cfe4b98a157927b319a3a00b467ff6233dc3337" dependencies: "@actions/core" "^1.4.0" "@actions/github" "^5.0.0" - "@angular-devkit/build-optimizer" "^0.1202.0" + "@angular-devkit/build-optimizer" "^0.1300.0" "@angular/benchpress" "0.2.1" "@bazel/bazelisk" "^1.10.1" "@bazel/buildifier" "^4.0.1" - "@bazel/esbuild" "4.3.0" - "@bazel/jasmine" "4.3.0" - "@bazel/protractor" "4.3.0" - "@bazel/runfiles" "4.3.0" - "@bazel/typescript" "4.3.0" - "@microsoft/api-extractor" "7.18.14" + "@bazel/esbuild" "4.4.2" + "@bazel/jasmine" "4.4.2" + "@bazel/protractor" "4.4.2" + "@bazel/runfiles" "4.4.2" + "@bazel/typescript" "4.4.2" + "@microsoft/api-extractor" "7.18.19" "@octokit/auth-app" "^3.6.0" "@octokit/core" "^3.5.1" "@octokit/graphql" "^4.8.0" @@ -284,6 +284,7 @@ "@rollup/plugin-commonjs" "^21.0.0" "@rollup/plugin-node-resolve" "^13.0.4" "@types/tmp" "^0.2.1" + "@yarnpkg/lockfile" "^1.1.0" chalk "^4.1.0" clang-format "^1.4.0" cli-progress "^3.7.0" @@ -300,7 +301,7 @@ node-fetch "^2.6.1" prettier "^2.3.2" protractor "^7.0.0" - rollup "2.58.0" + rollup "2.59.0" rollup-plugin-sourcemaps "^0.6.3" selenium-webdriver "3.5.0" semver "^7.3.5" @@ -1769,6 +1770,11 @@ resolved "https://registry.yarnpkg.com/@bazel/esbuild/-/esbuild-4.3.0.tgz#a511d2090c4fccf865b7f6eafc95673f0486450b" integrity sha512-AUyyCYO17Uk/vaG9VSyDgLbQuW0ZY2ciDDp9frgHWPv55SdZolzAK0lA36QVJuz6/7I4EQBvox6KEpMPBR2f/A== +"@bazel/esbuild@4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@bazel/esbuild/-/esbuild-4.4.2.tgz#e1f35922cc9b63e96cc8c263a77b8e1b2938a445" + integrity sha512-P3cXIje01zsg3TMhTwwbA0sKldYa1J2EGVwahmOPfXlxewd+6cwjhQBQV8SSoxZeFLmCuoMu8eA++mnXgHzm2g== + "@bazel/ibazel@0.15.10": version "0.15.10" resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.15.10.tgz#cf0cff1aec6d8e7bb23e1fc618d09fbd39b7a13f" @@ -1782,10 +1788,10 @@ c8 "~7.5.0" jasmine-reporters "~2.4.0" -"@bazel/jasmine@4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-4.3.0.tgz#d2dd29deb56cffae2b3bd7be706fb1b3dd532fc7" - integrity sha512-lROo6iAdyqmqVNe8M5or6Vkzcn5wyBSI4MJBqqLJVjejhlhU6Mg27j1xC+VJPlnQkiEyeHLV5WNndp50ROivSw== +"@bazel/jasmine@4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-4.4.2.tgz#04fc413856984456525d3e2e3ebf7f308e915c54" + integrity sha512-r0ZUB//pRZnpXiy5keSt2vDQfV/3a9x/kar865CgMJRV+mVQsHMF4l72rQD8LPhGzx4QgX+yOWI2gpAq5E5/zQ== dependencies: c8 "~7.5.0" jasmine-reporters "~2.4.0" @@ -1795,6 +1801,11 @@ resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-4.3.0.tgz#8dd36e1e4ed3b6512951f48fa3dad89867853cc3" integrity sha512-Ncd9Se9NYn2UUHSPQv6uUZnzWBQjXaLGWj0MFxqXC3fVGyyvPNSxlOzloiIWFhy/NYz9r49haeHaM5pd1tamtQ== +"@bazel/protractor@4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-4.4.2.tgz#0d2b7ba2a003b30d54c1383b3de2e9f7d80642a5" + integrity sha512-mryiNMyQEEeMubjAM9yZpMIex388kvLxmfhhZpbePxLRG7Nm9Lr4C/+fn7iho3GDAPS04HggQLCYsYj+nQ9Rug== + "@bazel/rollup@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-4.3.0.tgz#fbf52eba47d2c7458415d378e59329aa99983723" @@ -1807,6 +1818,11 @@ resolved "https://registry.yarnpkg.com/@bazel/runfiles/-/runfiles-4.3.0.tgz#068c4f2816cedff131801c6865c9e216c882931b" integrity sha512-T1BURxP6OPF4Q1LZElhpOJR0VM1J9Tfk4L8se0bhZfBH72MtYDfI7MmhS/wh74/XSVK7SK7YerEkolcyZajRKw== +"@bazel/runfiles@4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@bazel/runfiles/-/runfiles-4.4.2.tgz#9d424f0f9ad7505d2ff2f854a450b986e132ac8e" + integrity sha512-Om8T+Chx//6DoxghILc6tUXtXkotvO3I5loNpU76OTf9tgiIZ9wlDtgHkaXxthoe0cYLZFai6GCaKFPyAL+ztw== + "@bazel/terser@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-4.3.0.tgz#3824546f37e21e3681b78000aa1b54cc9b6abd2a" @@ -1823,6 +1839,17 @@ source-map-support "0.5.9" tsutils "3.21.0" +"@bazel/typescript@4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-4.4.2.tgz#987000806043d9df1388debcd576420ce5b8c860" + integrity sha512-dTt/AvlnwWiUXF7T25FpAozmLKN9Z+me07iSOcjDv7+6aVcxV5vJTbhpktZO1Ij0oSaYew4I8e/NlRf/mS2k7g== + dependencies: + "@bazel/worker" "4.4.2" + protobufjs "6.8.8" + semver "5.6.0" + source-map-support "0.5.9" + tsutils "3.21.0" + "@bazel/worker@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-4.3.0.tgz#5ba7da1efa772f5dade5dfd4b662dcaa60ed7c1c" @@ -1830,6 +1857,13 @@ dependencies: google-protobuf "^3.6.1" +"@bazel/worker@4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-4.4.2.tgz#01dcfa873786d4ad0b7150b8f9d03a23aa0c19e4" + integrity sha512-EkxgsV2o6nPd/+ujnyCuKU3C57sjYDdtQVPLdBBIiOmx37RPBw+tRMrp6XYgU3PkhqgMqNQPpS/9Exbj0XSihQ== + dependencies: + google-protobuf "^3.6.1" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -2626,15 +2660,6 @@ "@material/theme" "14.0.0-canary.1af7c1c4a.0" tslib "^2.1.0" -"@microsoft/api-extractor-model@7.13.11": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.13.11.tgz#36e17b4b43b0260144ad1348a8140e52c9aacc0d" - integrity sha512-l38PC3TUaSu77jW8ry8Fxbhab+msUMRQq16gLNl3yu+jvM5dTJ8jxT/Yp/Zrv+T9e161bbOt4buD+nNjeLkeUQ== - dependencies: - "@microsoft/tsdoc" "0.13.2" - "@microsoft/tsdoc-config" "~0.15.2" - "@rushstack/node-core-library" "3.42.1" - "@microsoft/api-extractor-model@7.13.13": version "7.13.13" resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.13.13.tgz#5c1ac0fff0410b8f23478b15560b24096b8869c6" @@ -2644,23 +2669,14 @@ "@microsoft/tsdoc-config" "~0.15.2" "@rushstack/node-core-library" "3.42.3" -"@microsoft/api-extractor@7.18.14": - version "7.18.14" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.14.tgz#a12a8ccfdf51894768a33d5a67563bb97a769b2f" - integrity sha512-MLO3WVYkIWkMDz9LMgwIgOQEVDLOyLjngZ72HvqtALoWV/Gf3ftYtl5dIche2Q15ZKpLFF2WpNuW8pBFqt2NFg== +"@microsoft/api-extractor-model@7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.13.16.tgz#1d67541ebbcea32672c5fdd9392dc1579b2fc23a" + integrity sha512-ttdxVXsTWL5dd26W1YNLe3LgDsE0EE273aZlcLe58W0opymBybCYU1Mn+OHQM8BuErrdvdN8LdpWAAbkiOEN/Q== dependencies: - "@microsoft/api-extractor-model" "7.13.11" "@microsoft/tsdoc" "0.13.2" "@microsoft/tsdoc-config" "~0.15.2" - "@rushstack/node-core-library" "3.42.1" - "@rushstack/rig-package" "0.3.2" - "@rushstack/ts-command-line" "4.10.1" - colors "~1.2.1" - lodash "~4.17.15" - resolve "~1.17.0" - semver "~7.3.0" - source-map "~0.6.1" - typescript "~4.4.2" + "@rushstack/node-core-library" "3.43.2" "@microsoft/api-extractor@7.18.16": version "7.18.16" @@ -2680,6 +2696,24 @@ source-map "~0.6.1" typescript "~4.4.2" +"@microsoft/api-extractor@7.18.19": + version "7.18.19" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.18.19.tgz#f09afc1c210aa67e2f3f34b0a68281a12f144541" + integrity sha512-aY+/XR7PtQXtnqNPFRs3/+iVRlQJpo6uLTjO2g7PqmnMywl3GBU3bCgAlV/khZtAQbIs6Le57XxmSE6rOqbcfg== + dependencies: + "@microsoft/api-extractor-model" "7.13.16" + "@microsoft/tsdoc" "0.13.2" + "@microsoft/tsdoc-config" "~0.15.2" + "@rushstack/node-core-library" "3.43.2" + "@rushstack/rig-package" "0.3.5" + "@rushstack/ts-command-line" "4.10.4" + colors "~1.2.1" + lodash "~4.17.15" + resolve "~1.17.0" + semver "~7.3.0" + source-map "~0.6.1" + typescript "~4.4.2" + "@microsoft/tsdoc-config@~0.15.2": version "0.15.2" resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.15.2.tgz#eb353c93f3b62ab74bdc9ab6f4a82bcf80140f14" @@ -3071,10 +3105,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rushstack/node-core-library@3.42.1": - version "3.42.1" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.42.1.tgz#b076cd9af03ab678df35f3172386804677991fc7" - integrity sha512-XwCM9UwvWxxA5usz5Qk/qnO5ilIJNBdGTntLbXI3bZW+LR1I9a9iG1BSJWB7dNij2eFs2I2kPm8E6ttOd8ODiw== +"@rushstack/node-core-library@3.42.3": + version "3.42.3" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.42.3.tgz#e9bc8aee4ba047d1858afcb7822b5aaf973b4fd8" + integrity sha512-xtiJsHtO4Sf/hVKyf/8d58p3zQh2JAZNs1mmDNCyIlgSRYGdqUkpadvvn5mz7EwF6lwn+xTTaTV5/a32xKjbdw== dependencies: "@types/node" "12.20.24" colors "~1.2.1" @@ -3086,10 +3120,10 @@ timsort "~0.3.0" z-schema "~3.18.3" -"@rushstack/node-core-library@3.42.3": - version "3.42.3" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.42.3.tgz#e9bc8aee4ba047d1858afcb7822b5aaf973b4fd8" - integrity sha512-xtiJsHtO4Sf/hVKyf/8d58p3zQh2JAZNs1mmDNCyIlgSRYGdqUkpadvvn5mz7EwF6lwn+xTTaTV5/a32xKjbdw== +"@rushstack/node-core-library@3.43.2": + version "3.43.2" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.43.2.tgz#f067371a94fd92ed8f9d9aa8201c5e9e17a19f0f" + integrity sha512-b7AEhSf6CvZgvuDcWMFDeKx2mQSn9AVnMQVyxNxFeHCtLz3gJicqCOlw2GOXM8HKh6PInLdil/NVCDcstwSrIw== dependencies: "@types/node" "12.20.24" colors "~1.2.1" @@ -3101,14 +3135,6 @@ timsort "~0.3.0" z-schema "~3.18.3" -"@rushstack/rig-package@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.2.tgz#128afc04647471b3abf341dc3d03fc1530cf37ed" - integrity sha512-lJbud9zBY8+OOjkeQ+4zIVCvt2I8y1C3WcVx3g6NJgjf0pi6IYfbAWXXG+mVzevQmqanNCLyhyXSNP3E6u5OvQ== - dependencies: - resolve "~1.17.0" - strip-json-comments "~3.1.1" - "@rushstack/rig-package@0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.3.tgz#6e291d181b2b9b114dd8e806e8389d999142d137" @@ -3117,15 +3143,13 @@ resolve "~1.17.0" strip-json-comments "~3.1.1" -"@rushstack/ts-command-line@4.10.1": - version "4.10.1" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.10.1.tgz#ec2532c4d0ff9fb76f4aabdff96321d95be92324" - integrity sha512-FhWnQCjHtxmZr5sVEgoV1VHTFaPfJXQbVwujAaZUzuFfgqX+v2P9o0AXmUi/LED4tmPJp7A1nVgPx0ClyGUbWA== +"@rushstack/rig-package@0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.5.tgz#7ddab0994647837bab8fdef26f990f1774d82e78" + integrity sha512-CvqWw+E81U5lRBN/lUj7Ngr/XQa/PPb2jAS5QcLP7WL+IMUl+3+Cc2qYrsDoB4zke81kz+usWGmBQpBzGMLmAA== dependencies: - "@types/argparse" "1.0.38" - argparse "~1.0.9" - colors "~1.2.1" - string-argv "~0.3.1" + resolve "~1.17.0" + strip-json-comments "~3.1.1" "@rushstack/ts-command-line@4.10.2": version "4.10.2" @@ -3137,6 +3161,16 @@ colors "~1.2.1" string-argv "~0.3.1" +"@rushstack/ts-command-line@4.10.4": + version "4.10.4" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.10.4.tgz#05142b74e5cb207d3dd9b935c82f80d7fcb68042" + integrity sha512-4T5ao4UgDb6LmiRj4GumvG3VT/p6RSMgl7TN7S58ifaAGN2GeTNBajFCDdJs9QQP0d/4tA5p0SFzT7Ps5Byirg== + dependencies: + "@types/argparse" "1.0.38" + argparse "~1.0.9" + colors "~1.2.1" + string-argv "~0.3.1" + "@schematics/angular@13.0.1": version "13.0.1" resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.1.tgz#0145bb65cf2e3a7d1c9156091e25c7a5326674bc" @@ -3865,7 +3899,7 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@yarnpkg/lockfile@1.1.0": +"@yarnpkg/lockfile@1.1.0", "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== @@ -14099,7 +14133,14 @@ rollup-plugin-sourcemaps@^0.6.3: "@rollup/pluginutils" "^3.0.9" source-map-resolve "^0.6.0" -rollup@2.58.0, rollup@^2.58.0: +rollup@2.59.0: + version "2.59.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.59.0.tgz#108c61b0fa0a37ebc8d1f164f281622056f0db59" + integrity sha512-l7s90JQhCQ6JyZjKgo7Lq1dKh2RxatOM+Jr6a9F7WbS9WgKbocyUSeLmZl8evAse7y96Ae98L2k1cBOwWD8nHw== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^2.58.0: version "2.58.0" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.58.0.tgz#a643983365e7bf7f5b7c62a8331b983b7c4c67fb" integrity sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw== @@ -15837,11 +15878,6 @@ tsickle@^0.38.0: resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.38.1.tgz#30762db759d40c435943093b6972c7f2efb384ef" integrity sha512-4xZfvC6+etRu6ivKCNqMOd1FqcY/m6JY3Y+yr5+Xw+i751ciwrWINi6x/3l1ekcODH9GZhlf0ny2LpzWxnjWYA== -tslib@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" - integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - tslib@2.3.1, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" @@ -16000,16 +16036,16 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== - typescript@4.4.2, typescript@^3.2.2: version "4.4.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86" integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ== +typescript@4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== + typescript@^3.9.5, typescript@^3.9.7: version "3.9.10" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" From 15949a47ec84029e3188b12168fcad38c4fd4206 Mon Sep 17 00:00:00 2001 From: Amy Sorto <8575252+amysorto@users.noreply.github.com> Date: Thu, 11 Nov 2021 00:31:12 +0000 Subject: [PATCH 043/358] docs: release notes for the v12.2.13 release --- CHANGELOG.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02c873935033..0a70352fd2f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ + +# 12.2.13 "sandstone-salamander" (2021-11-11) +### material +| Commit | Type | Description | +| -- | -- | -- | +| [a0cf5220f8](https://github.com/angular/components/commit/a0cf5220f8bad29c3ce979d25b96177cb79d390f) | fix | **core:** test environment check not picking up jest ([#23722](https://github.com/angular/components/pull/23722)) ([#23924](https://github.com/angular/components/pull/23924)) | +## Special Thanks +Amy Sorto, Kristiyan Kostadinov, Paul Gschwendtner and Suguru Inatomi + + + # 13.1.0-next.0 "tungsten-dodecahedron" (2021-11-03) ### material @@ -5266,4 +5277,4 @@ You can view a beta version of the docs at https://beta-angular-material-io.fire # Changes Prior to 7.0.0 -To view changes that occurred prior to 7.0.0, see [CHANGELOG_ARCHIVE.md](https://github.com/angular/components/blob/master/CHANGELOG_ARCHIVE.md). +To view changes that occurred prior to 7.0.0, see [CHANGELOG_ARCHIVE.md](https://github.com/angular/components/blob/master/CHANGELOG_ARCHIVE.md). \ No newline at end of file From 8cb0f129243af31545f884668fdcd91f772272c4 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Thu, 11 Nov 2021 17:59:47 +0100 Subject: [PATCH 044/358] fix(multiple): update to angular v13.0.1 to emit proper partial compilation output (#23951) Updates to Angular v13.0.1 which fixes the partial compilation output for `forwardRef` usages in queries. The fixed partial compilation output will ensure that Angular CDK/Material works with JIT linking at runtime, as done in e.g. Jest. Fix upstream: https://github.com/angular/angular/pull/44113. We will add some testing for the JIT linker to the `angular/components` repository with: https://github.com/angular/components/pull/23882. That should help ensuring JIT linking does not regress. Fixes #23907. --- package.json | 34 +++++----- yarn.lock | 186 +++++++++++++++++++++++++-------------------------- 2 files changed, 110 insertions(+), 110 deletions(-) diff --git a/package.json b/package.json index 1f1f247d2d9f..86b5c08fecbb 100644 --- a/package.json +++ b/package.json @@ -50,12 +50,12 @@ }, "version": "13.1.0-next.0", "dependencies": { - "@angular/animations": "13.0.0", - "@angular/common": "13.0.0", - "@angular/compiler": "13.0.0", - "@angular/core": "13.0.0", - "@angular/forms": "13.0.0", - "@angular/platform-browser": "13.0.0", + "@angular/animations": "13.0.1", + "@angular/common": "13.0.1", + "@angular/compiler": "13.0.1", + "@angular/core": "13.0.1", + "@angular/forms": "13.0.1", + "@angular/platform-browser": "13.0.1", "@types/google.maps": "^3.45.6", "@types/youtube": "^0.0.42", "core-js-bundle": "^3.8.2", @@ -66,17 +66,17 @@ "zone.js": "~0.11.3" }, "devDependencies": { - "@angular-devkit/build-angular": "13.0.1", - "@angular-devkit/core": "13.0.1", - "@angular-devkit/schematics": "13.0.1", - "@angular/bazel": "13.0.0", - "@angular/cli": "13.0.1", - "@angular/compiler-cli": "13.0.0", + "@angular-devkit/build-angular": "13.0.2", + "@angular-devkit/core": "13.0.2", + "@angular-devkit/schematics": "13.0.2", + "@angular/bazel": "13.0.1", + "@angular/cli": "13.0.2", + "@angular/compiler-cli": "13.0.1", "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#2cfe4b98a157927b319a3a00b467ff6233dc3337", - "@angular/localize": "13.0.0", - "@angular/platform-browser-dynamic": "13.0.0", - "@angular/platform-server": "13.0.0", - "@angular/router": "13.0.0", + "@angular/localize": "13.0.1", + "@angular/platform-browser-dynamic": "13.0.1", + "@angular/platform-server": "13.0.1", + "@angular/router": "13.0.1", "@axe-core/webdriverjs": "^4.1.0", "@babel/core": "^7.16.0", "@bazel/bazelisk": "1.10.1", @@ -141,7 +141,7 @@ "@octokit/rest": "18.3.5", "@rollup/plugin-commonjs": "^21.0.0", "@rollup/plugin-node-resolve": "^13.0.5", - "@schematics/angular": "13.0.1", + "@schematics/angular": "13.0.2", "@types/babel__core": "^7.1.16", "@types/browser-sync": "^2.26.1", "@types/fs-extra": "^9.0.5", diff --git a/yarn.lock b/yarn.lock index 423e6689255f..b4e7ef53dbad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,23 +32,23 @@ "@jridgewell/resolve-uri" "1.0.0" sourcemap-codec "1.4.8" -"@angular-devkit/architect@0.1300.1": - version "0.1300.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1300.1.tgz#974725b1bc0f82cc6c310d5b59da5e44b6a46b51" - integrity sha512-D6R2kYnZlKIpVx+lnuC8MRu8ZUqq2dkpeNJ1yP2IgkRdRktXWOOc2xj8utZ6NVCn8m/9kdOceQDlceVz/XT0+g== +"@angular-devkit/architect@0.1300.2": + version "0.1300.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1300.2.tgz#3de9c667d2a83e0e40056daf7dc0c27f4d3dddb1" + integrity sha512-cCTPFKZlR+Szt+X/l/eo4KBYnRba2NiCpFNPVsujitm7JqCXkjab7NDlf+2XMVD8vZl/kR1hfyF6O9ywYmhEFA== dependencies: - "@angular-devkit/core" "13.0.1" + "@angular-devkit/core" "13.0.2" rxjs "6.6.7" -"@angular-devkit/build-angular@13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.0.1.tgz#50fb87b9d64dd4d5056c76a57ef7c31772d36ddc" - integrity sha512-w0eLR+KWIEV4ER7rd1AGeod6il25x983MVKHiLbOLIlRMxQVZCjpNCp07zjl6izdX3eLDKnpX3T8e1sjeg2DXQ== +"@angular-devkit/build-angular@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-13.0.2.tgz#a181dddf88269918eacf5285c91302646f30b5e9" + integrity sha512-BIxRt+kgl2hrJOGzttMdhIm0P4inErZh9/aJyz6nOKa3XgsS7cDzEwph7TJqHTuEP4n+orl8hpbZOuxCUCvdVA== dependencies: "@ampproject/remapping" "1.0.1" - "@angular-devkit/architect" "0.1300.1" - "@angular-devkit/build-webpack" "0.1300.1" - "@angular-devkit/core" "13.0.1" + "@angular-devkit/architect" "0.1300.2" + "@angular-devkit/build-webpack" "0.1300.2" + "@angular-devkit/core" "13.0.2" "@babel/core" "7.15.8" "@babel/generator" "7.15.8" "@babel/helper-annotate-as-pure" "7.15.4" @@ -59,7 +59,7 @@ "@babel/runtime" "7.15.4" "@babel/template" "7.15.4" "@discoveryjs/json-ext" "0.5.5" - "@ngtools/webpack" "13.0.1" + "@ngtools/webpack" "13.0.2" ansi-colors "4.1.1" babel-loader "8.2.3" babel-plugin-istanbul "6.1.1" @@ -121,18 +121,18 @@ tslib "2.3.1" typescript "4.4.4" -"@angular-devkit/build-webpack@0.1300.1": - version "0.1300.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1300.1.tgz#25df724bcaf5c723ab82434adbe34b3a0dad211e" - integrity sha512-Sw5BMc7bCebr0CnPPinyqfgl13U68+ggyosIdNTVo0uWz9GRtace89VOfgPP0SK9Rw+V4hlU9RoD4tV8R4jLsg== +"@angular-devkit/build-webpack@0.1300.2": + version "0.1300.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1300.2.tgz#500027fb674560798adc284aa92714117ab2776c" + integrity sha512-cl5L7VwbLlpCnaiIIcS6vOdOdDPWReN7Yhl9HIEazFNZ1MCq9lOkLWmF8cvCwmbX7hv5uibeJmHhRXiihkAwOA== dependencies: - "@angular-devkit/architect" "0.1300.1" + "@angular-devkit/architect" "0.1300.2" rxjs "6.6.7" -"@angular-devkit/core@13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.0.1.tgz#f84d3290a9d99f83a1431438860c8c6bfb89c777" - integrity sha512-RfhpPw7vU5ok7ICUwEx4Lic+HCHrMjKnj/Tbk+CfSqONTFtqDaMoC8itQE2risLugT4mzO+3Cy95eccpf282kQ== +"@angular-devkit/core@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-13.0.2.tgz#1ef92388464ca86d22b21c6ebcb9fc3b6a16c374" + integrity sha512-I4co4GH+iu0tns+UXfMtjJISO+cLpaUuiEH6kf0wF5cqjaIeluA9UjIRnxuNbdTW8iE2xVj/UWhQfHe/Ncp76w== dependencies: ajv "8.6.3" ajv-formats "2.1.1" @@ -141,28 +141,28 @@ rxjs "6.6.7" source-map "0.7.3" -"@angular-devkit/schematics@13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.0.1.tgz#6e1ddc2b7d6b031f0e6362e62fd5c56bb08a1b67" - integrity sha512-WEhotd5H82W8LHo9tgTh547A1pxwmcKDHLhlsko5dg/HuHHhEYuxUxlLaBs1yHl+VVPG+Cwnf3pEbVhWGHVS3Q== +"@angular-devkit/schematics@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-13.0.2.tgz#975e5e1494261d5efac2848f42e83c7cc25a32ed" + integrity sha512-qrTe1teQptgP8gmVy6QX0T4dNfnNipEv+cM2cr7JXOmkPpwF+6oBDrTRIJ55t6rziqrXHJ3rxjKm1aHAxFrIEQ== dependencies: - "@angular-devkit/core" "13.0.1" + "@angular-devkit/core" "13.0.2" jsonc-parser "3.0.0" magic-string "0.25.7" ora "5.4.1" rxjs "6.6.7" -"@angular/animations@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.0.0.tgz#61bdbbbf4391beaf744339eb37c76ba750bb539c" - integrity sha512-tFe40hc+asglO6C2XDM+dWXrSPdCxqzHR3b83pH1TdhoYSLt43P7bOPP4uKH0AWCMUMpKcpJGkcbzPPCVO0QZw== +"@angular/animations@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-13.0.1.tgz#5af75e9659167c6ab886af644e45aa4f531d15c6" + integrity sha512-tT/aWbfMs4QpqA/nblLJYTb1sF/FAS2y4rGjtQ5D/tAwyIdIqLS3PKrE7eL3vdcRs9cEa94ZWnNiTkRMviP84w== dependencies: tslib "^2.3.0" -"@angular/bazel@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-13.0.0.tgz#088306010575d374c6fa53765f3ab0378df071c4" - integrity sha512-7zkRTYFCqnm9DzWnMw30OSziB8gPXyQQYKsUsF831yfRL74PKuMLsaFfIsBsISPvzLyhsZllWSOYWqsJt3F8uQ== +"@angular/bazel@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-13.0.1.tgz#4dd4697fc39f79dda8a945764a746ccc95b2f150" + integrity sha512-AdJv+tOby26uImcSMHqEeD9Iztxvjd1NRr8/2qvIx4Byjw2h4y2S1rPpKuWI2fydDyykGv5jh2aV2yLjvcbpOg== dependencies: "@microsoft/api-extractor" "7.18.16" shelljs "0.8.4" @@ -177,15 +177,15 @@ "@angular/core" "^10.0.0-0 || ^11.0.0" reflect-metadata "^0.1.13" -"@angular/cli@13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.0.1.tgz#f83796a2f7fbde16ed7fc3a62fc404a444d86909" - integrity sha512-QLrG4FCwqeRePQvZkpx0GsrXm9a+2YmqPr+1Qwfl0RWJpb/3YtqHnmDk7cT7jpqyx9BY2M7YP2Rb27Rgdy4Alg== +"@angular/cli@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-13.0.2.tgz#b3a922adae67ce5f0584df5bbee3195a902e7b20" + integrity sha512-eFEVZR56q1zCCBfp7e7sqmrqbHhdDd/1QGv9FYD+2HoC1VHYQf5w+NyWofQhx7a+tnGGqoR28LYzSsL7fFW8pw== dependencies: - "@angular-devkit/architect" "0.1300.1" - "@angular-devkit/core" "13.0.1" - "@angular-devkit/schematics" "13.0.1" - "@schematics/angular" "13.0.1" + "@angular-devkit/architect" "0.1300.2" + "@angular-devkit/core" "13.0.2" + "@angular-devkit/schematics" "13.0.2" + "@schematics/angular" "13.0.2" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.1" debug "4.3.2" @@ -202,17 +202,17 @@ symbol-observable "4.0.0" uuid "8.3.2" -"@angular/common@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.0.0.tgz#17adba12ed4cdf70e3c16546f072632a60583470" - integrity sha512-7KNu6fcNeX71nrOAs29T/PGdO0fAHaX0mtmobIBeIwMF9qY1fqc7a1Rssp6/dUe9XlADf2sXVtx5ZQ8c6bAMsA== +"@angular/common@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-13.0.1.tgz#64e5ee6ab3c9a409e85ec00c30fb8af700ad1676" + integrity sha512-uFSYJ3Z+3ZotFZIpMlECOipOD9M6h7Y2743AMPBfi2cuLO5Ap9iqbHzInvZwO2ysGv/ZNn3lUXBXLGTkbM5HCQ== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.0.0.tgz#1847bca54be89fa8317b9d7a5a30f127bb29e1f7" - integrity sha512-t0ayzBT2QIKehqNaCfO2wS+WBU0PyzV2eiOnNu7rKTLrw5wlamq5nWGeT5P9yuLjjiVHYl96QyydoY1L938OeQ== +"@angular/compiler-cli@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-13.0.1.tgz#94895d1982ca1d3f14284b63c3ed4f1726f3d776" + integrity sha512-YmX+8rspvfzhTi5ildkIVidd9xmmdGyI8Zo2u0qUCuHx6dtEr/s7M6H2h0FRK9Inc4Icl72dJ6erD1CanEEYpg== dependencies: "@babel/core" "^7.8.6" canonical-path "1.0.0" @@ -226,10 +226,10 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.0.0.tgz#27feba7c56855204edc271a91bbcf8cb7a2566cb" - integrity sha512-EBFHKDbYHSjVNlz0/7FmWU6owFAaRSx0OVjkq2zvR+ECUT8qsQNAfUAeaGHK3a4TMJ/fbgUFC3cSUY6/jhgcgg== +"@angular/compiler@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-13.0.1.tgz#8bf87c50635646c6a4f5c60bf7ee8393e2d21bde" + integrity sha512-ruGAKIlgZmz3/y/juXj7jLoqgu+fDvGeWkqIxhDtNHrhn9u9cwK+2BZFL4BJ1Y6DIaHGLtBQXdo7kR3n71Gncw== dependencies: tslib "^2.3.0" @@ -238,10 +238,10 @@ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== -"@angular/core@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.0.0.tgz#55528b74afe49e6c0f822050c092c24ca012fabf" - integrity sha512-OU7VDJR4pN0yUUbhlLiHgkTK8kcJFccHMBEtx3TKenBMkFU3CRynSzz67M4zBmXHR15729/UloL/8xuvxKQsGQ== +"@angular/core@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-13.0.1.tgz#901837868bfb9b36ca4ee5fdc72ccc7222ec1c9d" + integrity sha512-5VAeafT+ro2PHGEjmeg6mJhQO+R7w16c1i8EGa7iN9vBn8uYwJ9aF+/ycZruq/MKoUhQhZlwk0yoBBqqq8A7oA== dependencies: tslib "^2.3.0" @@ -315,49 +315,49 @@ yaml "^1.10.0" yargs "^17.0.0" -"@angular/forms@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.0.0.tgz#9d76cefac87f6167f276b4f96cbd38921410a3e3" - integrity sha512-F2XO1vOzIgGj0OfSLJHPzKcVTKmyttlBWBxIuRoVw3yxdGPKa83ka6B+/+byEE6SY0EvIRt3uJKTqS6iA9/ZxA== +"@angular/forms@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-13.0.1.tgz#4e6ddbc2ebe76d3b9d662d01bbd73942e7b524ab" + integrity sha512-O0N7fkVz+2rld2O/1R7rLWwjs4yu5VgQUznH/OJSiL4sBUj977yCXrjfU7w3IWaDTsWRuUXopqnR8Gym6xIcVQ== dependencies: tslib "^2.3.0" -"@angular/localize@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-13.0.0.tgz#6021afc70a8425695069e834c7ded68ca659eada" - integrity sha512-RjfFKO+2syZTLVL6YkK7QwHyalYKxRnYCb7Ma/xjHAsucp5x/d6OuK1BJEAMvZRkTLlqcShaXSyIpJ2eGlMtzQ== +"@angular/localize@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-13.0.1.tgz#b839ad7740e65617f78f397a640a378d7815155b" + integrity sha512-JT7p03kAN4KSfi2EsG1uKwYr+n5MPUC1TyAsW63D8I5INl4Lq+NaA4j9sH1HefWj3XIQstzffN2nbjLaCEBx6w== dependencies: "@babel/core" "7.8.6" glob "7.2.0" yargs "^17.2.1" -"@angular/platform-browser-dynamic@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.0.tgz#7f4cffcecc8ea02cbdea13d90fbad8322a9e0039" - integrity sha512-CmQGPyCIh3Fd+hZSt1jSLSBdVwppU1x76vyQ7C33qpNt921VhuVfB54bcbMjD+PTc+Fh1+KVI5R/sUscp0F/Bw== +"@angular/platform-browser-dynamic@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.0.1.tgz#ba9fec893ee6054385502b0ae6d4645b30ce8692" + integrity sha512-eUE7z+M4IgqdWIzJJjjlfszPMcoIstLwF/VDsMSm5lDUfn183evnXlL+bnAcj8ieh19HWNGZW06rH5qvTPY7bQ== dependencies: tslib "^2.3.0" -"@angular/platform-browser@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.0.0.tgz#4317d28b49395594aeab05339b005d594506ec65" - integrity sha512-3svk0R9UVDL0600Lf5sfFKcOrduKU17UIqrXm+iN0EBGCGostKfQb+GCFPJVZ0wUFJuXyHGovESIJX85uGhpHA== +"@angular/platform-browser@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-13.0.1.tgz#77cd7f69ba160de29f3a034fbd359861c0f7a34c" + integrity sha512-j/4o5Y4zY06K5fEwXsT79NKygSzn8dP9mrnqOqJXK+3qgfqY3DlpVPV8h54JRz1Ru48RsKrvej/a1rPn9/6GAg== dependencies: tslib "^2.3.0" -"@angular/platform-server@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-13.0.0.tgz#f1d8bb84d8df7c6ef3e53c31038011beb323c6d6" - integrity sha512-qTBGmqsUleMbWvfZPG5k5coF+yqq9fITfu0sTAlHvXWRhFO/Uz9c8BPk0WUauiX05/VBHEbq+Xix1J2CMt3Oog== +"@angular/platform-server@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-13.0.1.tgz#4e5779925a72942e70483701c1f1569574df1cdf" + integrity sha512-RAPqtwxMo416jqwKDzl5qZWN/b9QLWZ6lpOoPA6a+XKbUUzNfQFZuzpIWIUcAeV72ERSyklAVRenCjlhpX5zNA== dependencies: domino "^2.1.2" tslib "^2.3.0" xhr2 "^0.2.0" -"@angular/router@13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.0.0.tgz#d2f530d8a0bb67270e07916327105afa289647bb" - integrity sha512-+aNeABp83pEz6NGJ70aplsf2Dy+z4ef5vlm8ICMxUUdfQdiY1sZ/UVjMbbEYb+0XKVNc/1cVCb5xlr3KlpXXng== +"@angular/router@13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-13.0.1.tgz#3183af7d447e1c283e62aa653608a090f9043c03" + integrity sha512-qKrH+JebvJH6Gc0xO28M+nnMqrhcvkFFzy0z3/a1k/ZGbeMwTOS/Mlpz9WICg3NCI+I+imRLYl8QjzVUsgpMcA== dependencies: tslib "^2.3.0" @@ -2729,10 +2729,10 @@ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.13.2.tgz#3b0efb6d3903bd49edb073696f60e90df08efb26" integrity sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg== -"@ngtools/webpack@13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.0.1.tgz#a610d8b6664c6b18a129cfc346551d92d611a22f" - integrity sha512-ZWsuwgwNZp0cmlvGNcWChltbY8BxfwifscLteSXIC2x7RvPaXhdUhmzvRDeQJa1KUmXd/xUuHZqgiAQsWRT7IA== +"@ngtools/webpack@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-13.0.2.tgz#de663f51631bb873520ec1bbab12003de2ba2a99" + integrity sha512-eCtPydszVvKtkvL4HeDMvWC3IqTF/xZF6CTumMweRNInc6mTZiwwLwLDk8pg3xVp3ttZUOwV17BUnEs4/Q4qMA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -3171,13 +3171,13 @@ colors "~1.2.1" string-argv "~0.3.1" -"@schematics/angular@13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.1.tgz#0145bb65cf2e3a7d1c9156091e25c7a5326674bc" - integrity sha512-Qs3vcpSmBpzIxyaihDP3rtc6ge13t8dhqq9vXzE0MCq+HRUptAPmsx7JOUiB0/3T33XGNC9ICKdpGD+6xNltgw== +"@schematics/angular@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-13.0.2.tgz#82e2726ecadb61715214072896e12c5733c77595" + integrity sha512-qdzgd/CT6Y3U/98f/n66pnIMY5RuLW7WAmz+KQiuqaLgYWZNUbqYtAoxFI5ABTSKQoZSjjfescWL2R3XN9g3Xw== dependencies: - "@angular-devkit/core" "13.0.1" - "@angular-devkit/schematics" "13.0.1" + "@angular-devkit/core" "13.0.2" + "@angular-devkit/schematics" "13.0.2" jsonc-parser "3.0.0" "@sindresorhus/is@^0.14.0": From 565a96225214d573b328b0f8e53ef71142deb5e7 Mon Sep 17 00:00:00 2001 From: Amy Sorto <8575252+amysorto@users.noreply.github.com> Date: Thu, 11 Nov 2021 18:43:50 +0000 Subject: [PATCH 045/358] docs: release notes for the v13.0.1 release --- CHANGELOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a70352fd2f0..9323eb07cad2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,26 @@ + +# 13.0.1 "chalk-city" (2021-11-11) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [36fa18b5a4](https://github.com/angular/components/commit/36fa18b5a4dfbd7fbd2a629121d5e59b1d60e3d1) | fix | **overlay:** remove Optional decorator in ConnectedOverlayPositionChange constructor ([#23735](https://github.com/angular/components/pull/23735)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [15237f8c13](https://github.com/angular/components/commit/15237f8c131afde6eb3735689a980a4e18233d03) | fix | **chips:** add selected indication in high contrast mode ([#23828](https://github.com/angular/components/pull/23828)) | +| [e8a6eed7bf](https://github.com/angular/components/commit/e8a6eed7bf19faf1b6a011f56aad08ca70b7fb49) | fix | **chips:** Declare that MatChipInput.inputElement is always defined ([#23868](https://github.com/angular/components/pull/23868)) | +| [2fc63ef9e7](https://github.com/angular/components/commit/2fc63ef9e712483bbb8c850a624e5dcf0b156aac) | fix | **core:** test environment check not picking up jest ([#23722](https://github.com/angular/components/pull/23722)) | +| [5d49df1df6](https://github.com/angular/components/commit/5d49df1df6193bd5f15ebd871ca41473ad4aef6e) | fix | **form-field:** update outline gap when prefix changes ([#23869](https://github.com/angular/components/pull/23869)) | +| [2b99632813](https://github.com/angular/components/commit/2b9963281300a43c33251a3b512a97b7084d6ebe) | fix | **slide-toggle:** remove tabindex from host node ([#23891](https://github.com/angular/components/pull/23891)) | +### multiple +| Commit | Type | Description | +| -- | -- | -- | +| [9a3fc9a1ad](https://github.com/angular/components/commit/9a3fc9a1ad0e306d12c9fb56e74b4d933620f9e2) | fix | update to angular v13.0.1 to emit proper partial compilation output ([#23951](https://github.com/angular/components/pull/23951)) | +## Special Thanks +Jeremy Elbourn, Joey Perrott, Kristiyan Kostadinov, Marco Marche, Miles Malerba, Paul Gschwendtner and Ruslan Lekhman + + + # 12.2.13 "sandstone-salamander" (2021-11-11) ### material From d4a6c3bfb4c603bfbd2dd5f625d00c01b0c073c7 Mon Sep 17 00:00:00 2001 From: Amy Sorto <8575252+amysorto@users.noreply.github.com> Date: Thu, 11 Nov 2021 23:45:51 +0000 Subject: [PATCH 046/358] release: cut the v13.1.0-next.1 release --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9323eb07cad2..1360b3ff4e2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ + +# 13.1.0-next.1 "tulle-turkey" (2021-11-11) +### cdk +| Commit | Type | Description | +| -- | -- | -- | +| [1267263a83](https://github.com/angular/components/commit/1267263a83d039a62011ac189cdf81b772a39310) | fix | **overlay:** remove Optional decorator in ConnectedOverlayPositionChange constructor ([#23735](https://github.com/angular/components/pull/23735)) | +### material +| Commit | Type | Description | +| -- | -- | -- | +| [2c637d3129](https://github.com/angular/components/commit/2c637d3129865d3e3e475fea3f1cd3353e06394f) | fix | **chips:** add selected indication in high contrast mode ([#23828](https://github.com/angular/components/pull/23828)) | +| [72d2e5af89](https://github.com/angular/components/commit/72d2e5af89944fe30a11e7487c17ffc3ce863dc6) | fix | **chips:** Declare that MatChipInput.inputElement is always defined ([#23868](https://github.com/angular/components/pull/23868)) | +| [ff7fd485d6](https://github.com/angular/components/commit/ff7fd485d61f1ac38df11ff49825d03db44eac54) | fix | **core:** test environment check not picking up jest ([#23722](https://github.com/angular/components/pull/23722)) | +| [a6d41413cc](https://github.com/angular/components/commit/a6d41413cca4ce446c3eebc03318c880f3b8ef1a) | fix | **form-field:** update outline gap when prefix changes ([#23869](https://github.com/angular/components/pull/23869)) | +| [b533e619ec](https://github.com/angular/components/commit/b533e619ec724ec76deffc67ff6cf923bb7d9c91) | fix | **slide-toggle:** remove tabindex from host node ([#23891](https://github.com/angular/components/pull/23891)) | +### google-maps +| Commit | Type | Description | +| -- | -- | -- | +| [7dbe9a4282](https://github.com/angular/components/commit/7dbe9a42829a2e71cca3363e9a97ec0ea45be276) | feat | Getting google.maps.Map instance ([#23856](https://github.com/angular/components/pull/23856)) | +### multiple +| Commit | Type | Description | +| -- | -- | -- | +| [8cb0f12924](https://github.com/angular/components/commit/8cb0f129243af31545f884668fdcd91f772272c4) | fix | update to angular v13.0.1 to emit proper partial compilation output ([#23951](https://github.com/angular/components/pull/23951)) | +## Special Thanks +Amy Sorto, Jeremy Elbourn, Joey Perrott, Kristiyan Kostadinov, Marco Marche, Miles Malerba, Paul Gschwendtner, Ruslan Lekhman and Umer Naeem + + + # 13.0.1 "chalk-city" (2021-11-11) ### cdk diff --git a/package.json b/package.json index 86b5c08fecbb..78e6a920e983 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "tsc": "node ./node_modules/typescript/bin/tsc", "prepare": "husky install" }, - "version": "13.1.0-next.0", + "version": "13.1.0-next.1", "dependencies": { "@angular/animations": "13.0.1", "@angular/common": "13.0.1", From c381a6c5ae1bd0b25e91384bc8bf03198064aa2b Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 15 Nov 2021 18:28:44 +0100 Subject: [PATCH 047/358] feat(cdk/bidi): support `auto` direction value (#23906) Adds support for the `auto` value of the `dir` attribute. The value gets resolved to `ltr` or `rtl` based on browser's locale. Fixes #10186. --- src/cdk/bidi/bidi.md | 26 +++++++++++++++++--------- src/cdk/bidi/dir.ts | 14 ++++++++------ src/cdk/bidi/directionality.ts | 22 ++++++++++++++++------ tools/public_api_guard/cdk/bidi.md | 2 +- 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/src/cdk/bidi/bidi.md b/src/cdk/bidi/bidi.md index 272c92e1b466..3c79bdf5709d 100644 --- a/src/cdk/bidi/bidi.md +++ b/src/cdk/bidi/bidi.md @@ -1,34 +1,34 @@ The `bidi` package provides a common system for components to get and respond to change in the -application's LTR/RTL layout direction. +application's LTR/RTL layout direction. ### Directionality - + When including the CDK's `BidiModule`, components can inject `Directionality` to get the current text direction (RTL or LTR); #### Example ```ts -@Component({ ... }) +@Component({ ... }) export class MyWidget implements OnDestroy { /** Whether the widget is in RTL mode or not. */ private isRtl: boolean; - + /** Subscription to the Directionality change EventEmitter. */ - private _dirChangeSubscription = Subscription.EMPTY; - + private _dirChangeSubscription = Subscription.EMPTY; + constructor(dir: Directionality) { this.isRtl = dir.value === 'rtl'; - + this._dirChangeSubscription = dir.change.subscribe(() => { this.flipDirection(); }); } - + ngOnDestroy() { this._dirChangeSubscription.unsubscribe(); } -} +} ``` ### The `Dir` directive @@ -36,3 +36,11 @@ The `BidiModule` also includes a directive that matches any elements with a `dir directive has the same API as Directionality and provides itself _as_ `Directionality`. By doing this, any component that injects `Directionality` will get the closest ancestor layout direction context. + +### Interpreting the `auto` value +The CDK also supports the native `auto` value for the `dir` attribute, however there's a difference +in how it is interpreted. Some parts of the CDK, like overlays and keyboard navigation, need to know +if the element is in an RTL or LTR layout in order to work correctly. For performance reasons, we +resolve the `auto` value by looking at the browser's language (`navigator.language`) and matching +it against a set of known RTL locales. This differs from the way the browser handles it, which is +based on the text content of the element. diff --git a/src/cdk/bidi/dir.ts b/src/cdk/bidi/dir.ts index 1ce6b20802a3..249fab27b467 100644 --- a/src/cdk/bidi/dir.ts +++ b/src/cdk/bidi/dir.ts @@ -8,7 +8,7 @@ import {Directive, Output, Input, EventEmitter, AfterContentInit, OnDestroy} from '@angular/core'; -import {Direction, Directionality} from './directionality'; +import {Direction, Directionality, _resolveDirectionality} from './directionality'; /** * Directive to listen for changes of direction of part of the DOM. @@ -40,14 +40,16 @@ export class Dir implements Directionality, AfterContentInit, OnDestroy { get dir(): Direction { return this._dir; } - set dir(value: Direction) { - const old = this._dir; - const normalizedValue = value ? value.toLowerCase() : value; + set dir(value: Direction | 'auto') { + const previousValue = this._dir; + // Note: `_resolveDirectionality` resolves the language based on the browser's language, + // whereas the browser does it based on the content of the element. Since doing so based + // on the content can be expensive, for now we're doing the simpler matching. + this._dir = _resolveDirectionality(value); this._rawDir = value; - this._dir = normalizedValue === 'ltr' || normalizedValue === 'rtl' ? normalizedValue : 'ltr'; - if (old !== this._dir && this._isInitialized) { + if (previousValue !== this._dir && this._isInitialized) { this.change.emit(this._dir); } } diff --git a/src/cdk/bidi/directionality.ts b/src/cdk/bidi/directionality.ts index 91d0fa358443..3eda68cfc6b1 100644 --- a/src/cdk/bidi/directionality.ts +++ b/src/cdk/bidi/directionality.ts @@ -11,6 +11,21 @@ import {DIR_DOCUMENT} from './dir-document-token'; export type Direction = 'ltr' | 'rtl'; +/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */ +const RTL_LOCALE_PATTERN = + /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i; + +/** Resolves a string value to a specific direction. */ +export function _resolveDirectionality(rawValue: string): Direction { + const value = rawValue?.toLowerCase() || ''; + + if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) { + return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr'; + } + + return value === 'rtl' ? 'rtl' : 'ltr'; +} + /** * The directionality (LTR / RTL) context for the application (or a subtree of it). * Exposes the current direction and a stream of direction changes. @@ -25,14 +40,9 @@ export class Directionality implements OnDestroy { constructor(@Optional() @Inject(DIR_DOCUMENT) _document?: any) { if (_document) { - // TODO: handle 'auto' value - - // We still need to account for dir="auto". - // It looks like HTMLElemenet.dir is also "auto" when that's set to the attribute, - // but getComputedStyle return either "ltr" or "rtl". avoiding getComputedStyle for now const bodyDir = _document.body ? _document.body.dir : null; const htmlDir = _document.documentElement ? _document.documentElement.dir : null; - const value = bodyDir || htmlDir; - this.value = value === 'ltr' || value === 'rtl' ? value : 'ltr'; + this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr'); } } diff --git a/tools/public_api_guard/cdk/bidi.md b/tools/public_api_guard/cdk/bidi.md index fb394856c8e3..3529507f406e 100644 --- a/tools/public_api_guard/cdk/bidi.md +++ b/tools/public_api_guard/cdk/bidi.md @@ -24,7 +24,7 @@ export class BidiModule { export class Dir implements Directionality, AfterContentInit, OnDestroy { readonly change: EventEmitter; get dir(): Direction; - set dir(value: Direction); + set dir(value: Direction | 'auto'); ngAfterContentInit(): void; // (undocumented) ngOnDestroy(): void; From 6f1a1b75201a6eeacf9b02f4ba35672c1e9b66b7 Mon Sep 17 00:00:00 2001 From: ByzantineFailure Date: Mon, 15 Nov 2021 11:26:23 -0800 Subject: [PATCH 048/358] fix(material/datepicker): Add aria-current="date" to current date (#23714) --- src/material/datepicker/calendar-body.html | 1 + src/material/datepicker/calendar-body.spec.ts | 38 ++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/material/datepicker/calendar-body.html b/src/material/datepicker/calendar-body.html index 14a60fd862d2..a59bd39774d8 100644 --- a/src/material/datepicker/calendar-body.html +++ b/src/material/datepicker/calendar-body.html @@ -49,6 +49,7 @@ [attr.aria-label]="item.ariaLabel" [attr.aria-disabled]="!item.enabled || null" [attr.aria-selected]="_isSelected(item.compareValue)" + [attr.aria-current]="todayValue === item.compareValue ? 'date' : null" (click)="_cellClicked(item, $event)" [style.width]="_cellWidth" [style.paddingTop]="_cellPadding" diff --git a/src/material/datepicker/calendar-body.spec.ts b/src/material/datepicker/calendar-body.spec.ts index 7237b8ab6841..df10b757c081 100644 --- a/src/material/datepicker/calendar-body.spec.ts +++ b/src/material/datepicker/calendar-body.spec.ts @@ -47,9 +47,43 @@ describe('MatCalendarBody', () => { }); it('highlights today', () => { - const todayCell = calendarBodyNativeElement.querySelector('.mat-calendar-body-today')!; + const todayCells = calendarBodyNativeElement.querySelectorAll('.mat-calendar-body-today')!; + expect(todayCells.length).toBe(1); + + const todayCell = todayCells[0]; + expect(todayCell).not.toBeNull(); - expect(todayCell.innerHTML.trim()).toBe('3'); + expect(todayCell.textContent!.trim()).toBe('3'); + }); + + it('sets aria-current="date" on today', () => { + const todayCells = calendarBodyNativeElement.querySelectorAll( + '[aria-current="date"] .mat-calendar-body-today', + )!; + expect(todayCells.length).toBe(1); + + const todayCell = todayCells[0]; + + expect(todayCell).not.toBeNull(); + expect(todayCell.textContent!.trim()).toBe('3'); + }); + + it('does not highlight today if today is not within the scope', () => { + testComponent.todayValue = 100000; + fixture.detectChanges(); + + const todayCell = calendarBodyNativeElement.querySelector('.mat-calendar-body-today')!; + expect(todayCell).toBeNull(); + }); + + it('does not set aria-current="date" on any cell if today is not ' + 'the scope', () => { + testComponent.todayValue = 100000; + fixture.detectChanges(); + + const todayCell = calendarBodyNativeElement.querySelector( + '[aria-current="date"] .mat-calendar-body-today', + )!; + expect(todayCell).toBeNull(); }); it('highlights selected', () => { From 4be9a6e4a44d88bd91bebef31490b0adada0775f Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 15 Nov 2021 20:27:16 +0100 Subject: [PATCH 049/358] refactor(multiple): clean up more ViewEngine-specific code (#23960) Cleans up a bunch of workarounds and docs that were specific to ViewEngine. There are still more places to clean up, but I'm trying to make it easier to track down any potential failures. --- src/cdk-experimental/dialog/dialog-module.ts | 1 - src/cdk/drag-drop/directives/drag.spec.ts | 11 ---- src/cdk/portal/portal.md | 4 +- src/dev-app/main-module.ts | 2 - .../column-resize/column-resize-module.ts | 1 - src/material-experimental/mdc-button/fab.ts | 32 ++--------- .../mdc-dialog/module.ts | 1 - .../mdc-snack-bar/module.ts | 1 - .../mdc-tooltip/module.ts | 1 - .../selection/row-selection.ts | 14 +---- .../selection/selection-toggle.ts | 14 +---- .../bottom-sheet/bottom-sheet-module.ts | 1 - src/material/bottom-sheet/bottom-sheet.md | 33 ----------- .../datepicker/date-range-input-parts.ts | 56 +------------------ src/material/datepicker/datepicker-module.ts | 1 - src/material/dialog/dialog-module.ts | 1 - src/material/dialog/dialog.md | 34 +---------- src/material/snack-bar/snack-bar-module.ts | 1 - src/material/tooltip/tooltip-module.ts | 1 - src/material/tree/toggle.ts | 17 +----- .../kitchen-sink-mdc/kitchen-sink-mdc.ts | 1 - .../kitchen-sink/kitchen-sink.ts | 1 - tools/public_api_guard/material/datepicker.md | 12 +--- tools/public_api_guard/material/tree.md | 3 - 24 files changed, 15 insertions(+), 229 deletions(-) diff --git a/src/cdk-experimental/dialog/dialog-module.ts b/src/cdk-experimental/dialog/dialog-module.ts index e6be6d315a14..22bccdc6c8c0 100644 --- a/src/cdk-experimental/dialog/dialog-module.ts +++ b/src/cdk-experimental/dialog/dialog-module.ts @@ -37,6 +37,5 @@ import { {provide: DIALOG_CONTAINER, useValue: CdkDialogContainer}, {provide: DIALOG_CONFIG, useValue: DialogConfig}, ], - entryComponents: [CdkDialogContainer], }) export class DialogModule {} diff --git a/src/cdk/drag-drop/directives/drag.spec.ts b/src/cdk/drag-drop/directives/drag.spec.ts index 71b67e7f0451..651ac3d0ee42 100644 --- a/src/cdk/drag-drop/directives/drag.spec.ts +++ b/src/cdk/drag-drop/directives/drag.spec.ts @@ -4698,17 +4698,6 @@ describe('CdkDrag', () => { })); it('should be able to start dragging again if the dragged item is destroyed', fakeAsync(() => { - // We have some behavior where we move the dragged element out to the bottom of the `body`, - // in order to work around a browser issue. We restore the element when dragging stops, but - // the problem is that if it's destroyed before we've had a chance to return it, ViewEngine - // will throw an error since the element isn't in its original parent. Skip this test if the - // component hasn't been compiled with Ivy since the assertions depend on the element being - // removed while dragging. - // TODO(crisbeto): remove this check once ViewEngine has been dropped. - if (!DraggableInDropZone.hasOwnProperty('ɵcmp')) { - return; - } - const fixture = createComponent(DraggableInDropZone); fixture.detectChanges(); diff --git a/src/cdk/portal/portal.md b/src/cdk/portal/portal.md index a5919ae7afe4..6c75a6bb6105 100644 --- a/src/cdk/portal/portal.md +++ b/src/cdk/portal/portal.md @@ -50,9 +50,7 @@ A component can use `@ViewChild` or `@ViewChildren` to get a reference to a `CdkPortal`. ##### `ComponentPortal` -Used to create a portal from a component type. When a component is dynamically created using -portals, it must be included in the `entryComponents` of its `NgModule`if your project uses ViewEngine. Projects -using Angular Ivy don't need `entryComponents`. +Used to create a portal from a component type. Usage: ```ts diff --git a/src/dev-app/main-module.ts b/src/dev-app/main-module.ts index c14ad3506f8b..8e2b6c951cb0 100644 --- a/src/dev-app/main-module.ts +++ b/src/dev-app/main-module.ts @@ -24,8 +24,6 @@ import {ANIMATIONS_STORAGE_KEY} from './dev-app/dev-app-layout'; @NgModule({ imports: [ BrowserAnimationsModule.withConfig({ - // Note that this doesn't seem to work on ViewEngine, but it's - // not a compilation error either so we can live with it. disableAnimations: localStorage.getItem(ANIMATIONS_STORAGE_KEY) === 'true', }), BrowserModule, diff --git a/src/material-experimental/column-resize/column-resize-module.ts b/src/material-experimental/column-resize/column-resize-module.ts index 5b7a78717115..55add11dcc99 100644 --- a/src/material-experimental/column-resize/column-resize-module.ts +++ b/src/material-experimental/column-resize/column-resize-module.ts @@ -23,7 +23,6 @@ const ENTRY_COMMON_COMPONENTS = [MatColumnResizeOverlayHandle]; @NgModule({ declarations: ENTRY_COMMON_COMPONENTS, exports: ENTRY_COMMON_COMPONENTS, - entryComponents: ENTRY_COMMON_COMPONENTS, }) export class MatColumnResizeCommonModule {} diff --git a/src/material-experimental/mdc-button/fab.ts b/src/material-experimental/mdc-button/fab.ts index bfd96b75232c..d666aecbaa5e 100644 --- a/src/material-experimental/mdc-button/fab.ts +++ b/src/material-experimental/mdc-button/fab.ts @@ -66,20 +66,11 @@ const defaults = MAT_FAB_DEFAULT_OPTIONS_FACTORY(); selector: `button[mat-fab]`, templateUrl: 'button.html', styleUrls: ['fab.css'], - // TODO: change to MAT_BUTTON_INPUTS/MAT_BUTTON_HOST with spread after ViewEngine is deprecated - inputs: ['disabled', 'disableRipple', 'color', 'extended'], + inputs: [...MAT_BUTTON_INPUTS, 'extended'], host: { + ...MAT_BUTTON_HOST, '[class.mdc-fab--extended]': 'extended', '[class.mat-mdc-extended-fab]': 'extended', - '[attr.disabled]': 'disabled || null', - '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"', - // MDC automatically applies the primary theme color to the button, but we want to support - // an unthemed version. If color is undefined, apply a CSS class that makes it easy to - // select and style this "theme". - '[class.mat-unthemed]': '!color', - // Add a class that applies to all buttons. This makes it easier to target if somebody - // wants to target all Material buttons. - '[class.mat-mdc-button-base]': 'true', }, exportAs: 'matButton', encapsulation: ViewEncapsulation.None, @@ -153,26 +144,11 @@ export class MatMiniFabButton extends MatButtonBase { selector: `a[mat-fab]`, templateUrl: 'button.html', styleUrls: ['fab.css'], - // TODO: change to MAT_ANCHOR_INPUTS/MAT_ANCHOR_HOST with spread after ViewEngine is deprecated - inputs: ['disabled', 'disableRipple', 'color', 'tabIndex', 'extended'], + inputs: [...MAT_BUTTON_INPUTS, 'extended'], host: { + ...MAT_ANCHOR_HOST, '[class.mdc-fab--extended]': 'extended', '[class.mat-mdc-extended-fab]': 'extended', - '[attr.disabled]': 'disabled || null', - '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"', - - // Note that we ignore the user-specified tabindex when it's disabled for - // consistency with the `mat-button` applied on native buttons where even - // though they have an index, they're not tabbable. - '[attr.tabindex]': 'disabled ? -1 : (tabIndex || 0)', - '[attr.aria-disabled]': 'disabled.toString()', - // MDC automatically applies the primary theme color to the button, but we want to support - // an unthemed version. If color is undefined, apply a CSS class that makes it easy to - // select and style this "theme". - '[class.mat-unthemed]': '!color', - // Add a class that applies to all buttons. This makes it easier to target if somebody - // wants to target all Material buttons. - '[class.mat-mdc-button-base]': 'true', }, exportAs: 'matButton, matAnchor', encapsulation: ViewEncapsulation.None, diff --git a/src/material-experimental/mdc-dialog/module.ts b/src/material-experimental/mdc-dialog/module.ts index e4b26d298239..955ff295e8c4 100644 --- a/src/material-experimental/mdc-dialog/module.ts +++ b/src/material-experimental/mdc-dialog/module.ts @@ -37,6 +37,5 @@ import { MatDialogContent, ], providers: [MatDialog, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER], - entryComponents: [MatDialogContainer], }) export class MatDialogModule {} diff --git a/src/material-experimental/mdc-snack-bar/module.ts b/src/material-experimental/mdc-snack-bar/module.ts index d48f54fd5293..8c655c815b3d 100644 --- a/src/material-experimental/mdc-snack-bar/module.ts +++ b/src/material-experimental/mdc-snack-bar/module.ts @@ -33,6 +33,5 @@ import {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-b MatSnackBarActions, MatSnackBarAction, ], - entryComponents: [MatSimpleSnackBar, MatSnackBarContainer], }) export class MatSnackBarModule {} diff --git a/src/material-experimental/mdc-tooltip/module.ts b/src/material-experimental/mdc-tooltip/module.ts index 641c3c1ecf03..33aca8410dd2 100644 --- a/src/material-experimental/mdc-tooltip/module.ts +++ b/src/material-experimental/mdc-tooltip/module.ts @@ -19,7 +19,6 @@ import {MatTooltip, TooltipComponent} from './tooltip'; imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule], exports: [MatTooltip, TooltipComponent, MatCommonModule, CdkScrollableModule], declarations: [MatTooltip, TooltipComponent], - entryComponents: [TooltipComponent], providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER], }) export class MatTooltipModule {} diff --git a/src/material-experimental/selection/row-selection.ts b/src/material-experimental/selection/row-selection.ts index 8996c3b0c4e1..66138133e10c 100644 --- a/src/material-experimental/selection/row-selection.ts +++ b/src/material-experimental/selection/row-selection.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.io/license */ -import {coerceNumberProperty} from '@angular/cdk/coercion'; import {CdkRowSelection} from '@angular/cdk-experimental/selection'; import {Input, Directive} from '@angular/core'; @@ -24,20 +23,9 @@ import {Input, Directive} from '@angular/core'; '[attr.aria-selected]': '_selection.isSelected(this.value, this.index)', }, providers: [{provide: CdkRowSelection, useExisting: MatRowSelection}], + inputs: ['index: matRowSelectionIndex'], }) -// tslint:disable-next-line: coercion-types export class MatRowSelection extends CdkRowSelection { /** The value that is associated with the row */ @Input('matRowSelectionValue') override value: T; - - /** The index of the value in the list. Required when used with `trackBy` */ - @Input('matRowSelectionIndex') - override get index(): number | undefined { - return this._index; - } - override set index(index: number | undefined) { - // TODO: when we remove support for ViewEngine, change this setter to an input - // alias in the decorator metadata. - this._index = coerceNumberProperty(index); - } } diff --git a/src/material-experimental/selection/selection-toggle.ts b/src/material-experimental/selection/selection-toggle.ts index f9e1706a8f13..671277726c72 100644 --- a/src/material-experimental/selection/selection-toggle.ts +++ b/src/material-experimental/selection/selection-toggle.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.io/license */ -import {coerceNumberProperty} from '@angular/cdk/coercion'; import {CdkSelectionToggle} from '@angular/cdk-experimental/selection'; import {Directive, Input} from '@angular/core'; @@ -23,21 +22,10 @@ import {Directive, Input} from '@angular/core'; @Directive({ selector: '[matSelectionToggle]', exportAs: 'matSelectionToggle', + inputs: ['index: matSelectionToggleIndex'], providers: [{provide: CdkSelectionToggle, useExisting: MatSelectionToggle}], }) -// tslint:disable-next-line: coercion-types export class MatSelectionToggle extends CdkSelectionToggle { /** The value that is associated with the toggle */ @Input('matSelectionToggleValue') override value: T; - - /** The index of the value in the list. Required when used with `trackBy` */ - @Input('matSelectionToggleIndex') - override get index(): number | undefined { - return this._index; - } - override set index(index: number | undefined) { - // TODO: when we remove support for ViewEngine, change this setter to an input - // alias in the decorator metadata. - this._index = coerceNumberProperty(index); - } } diff --git a/src/material/bottom-sheet/bottom-sheet-module.ts b/src/material/bottom-sheet/bottom-sheet-module.ts index e4826af000d9..38a5c3957291 100644 --- a/src/material/bottom-sheet/bottom-sheet-module.ts +++ b/src/material/bottom-sheet/bottom-sheet-module.ts @@ -16,6 +16,5 @@ import {MatBottomSheetContainer} from './bottom-sheet-container'; imports: [OverlayModule, MatCommonModule, PortalModule], exports: [MatBottomSheetContainer, MatCommonModule], declarations: [MatBottomSheetContainer], - entryComponents: [MatBottomSheetContainer], }) export class MatBottomSheetModule {} diff --git a/src/material/bottom-sheet/bottom-sheet.md b/src/material/bottom-sheet/bottom-sheet.md index 89b659320dd5..3dc4a822fdee 100644 --- a/src/material/bottom-sheet/bottom-sheet.md +++ b/src/material/bottom-sheet/bottom-sheet.md @@ -49,39 +49,6 @@ export class HobbitSheet { } ``` -### Configuring bottom sheet content via `entryComponents` -**You only need to specify `entryComponents` if your project uses ViewEngine. Projects -using Angular Ivy don't need `entryComponents`.** - -Similarly to `MatDialog`, `MatBottomSheet` instantiates components at run-time. In order for it to -work, the Angular compiler needs extra information to create the necessary `ComponentFactory` for -your bottom sheet content component. - -Any components that are included inside of a bottom sheet have to be added to the `entryComponents` -inside your `NgModule`. - - -```ts -@NgModule({ - imports: [ - // ... - MatBottomSheetModule - ], - - declarations: [ - AppComponent, - ExampleBottomSheetComponent - ], - - entryComponents: [ - ExampleBottomSheetComponent - ], - - bootstrap: [AppComponent] -}) -export class AppModule {} -``` - ### Specifying global configuration defaults Default bottom sheet options can be specified by providing an instance of `MatBottomSheetConfig` for `MAT_BOTTOM_SHEET_DEFAULT_OPTIONS` in your application's root module. diff --git a/src/material/datepicker/date-range-input-parts.ts b/src/material/datepicker/date-range-input-parts.ts index f161e45d33d1..19e5641ac8bd 100644 --- a/src/material/datepicker/date-range-input-parts.ts +++ b/src/material/datepicker/date-range-input-parts.ts @@ -208,10 +208,7 @@ const _MatDateRangeInputBase = mixinErrorState(MatDateRangeInputPartBase); outputs: ['dateChange', 'dateInput'], inputs: ['errorStateMatcher'], }) -export class MatStartDate - extends _MatDateRangeInputBase - implements CanUpdateErrorState, DoCheck, OnInit -{ +export class MatStartDate extends _MatDateRangeInputBase implements CanUpdateErrorState { /** Validator that checks that the start date isn't after the end date. */ private _startValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => { const start = this._dateAdapter.getValidDateOrNull( @@ -233,9 +230,6 @@ export class MatStartDate @Optional() dateAdapter: DateAdapter, @Optional() @Inject(MAT_DATE_FORMATS) dateFormats: MatDateFormats, ) { - // TODO(crisbeto): this constructor shouldn't be necessary, but ViewEngine doesn't seem to - // handle DI correctly when it is inherited from `MatDateRangeInputPartBase`. We can drop this - // constructor once ViewEngine is removed. super( rangeInput, elementRef, @@ -248,26 +242,6 @@ export class MatStartDate ); } - override ngOnInit() { - // Normally this happens automatically, but it seems to break if not added explicitly when all - // of the criteria below are met: - // 1) The class extends a TS mixin. - // 2) The application is running in ViewEngine. - // 3) The application is being transpiled through tsickle. - // This can be removed once google3 is completely migrated to Ivy. - super.ngOnInit(); - } - - override ngDoCheck() { - // Normally this happens automatically, but it seems to break if not added explicitly when all - // of the criteria below are met: - // 1) The class extends a TS mixin. - // 2) The application is running in ViewEngine. - // 3) The application is being transpiled through tsickle. - // This can be removed once google3 is completely migrated to Ivy. - super.ngDoCheck(); - } - protected _validator = Validators.compose([...super._getValidators(), this._startValidator]); protected _getValueFromModel(modelValue: DateRange) { @@ -334,10 +308,7 @@ export class MatStartDate outputs: ['dateChange', 'dateInput'], inputs: ['errorStateMatcher'], }) -export class MatEndDate - extends _MatDateRangeInputBase - implements CanUpdateErrorState, DoCheck, OnInit -{ +export class MatEndDate extends _MatDateRangeInputBase implements CanUpdateErrorState { /** Validator that checks that the end date isn't before the start date. */ private _endValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => { const end = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value)); @@ -357,9 +328,6 @@ export class MatEndDate @Optional() dateAdapter: DateAdapter, @Optional() @Inject(MAT_DATE_FORMATS) dateFormats: MatDateFormats, ) { - // TODO(crisbeto): this constructor shouldn't be necessary, but ViewEngine doesn't seem to - // handle DI correctly when it is inherited from `MatDateRangeInputPartBase`. We can drop this - // constructor once ViewEngine is removed. super( rangeInput, elementRef, @@ -372,26 +340,6 @@ export class MatEndDate ); } - override ngOnInit() { - // Normally this happens automatically, but it seems to break if not added explicitly when all - // of the criteria below are met: - // 1) The class extends a TS mixin. - // 2) The application is running in ViewEngine. - // 3) The application is being transpiled through tsickle. - // This can be removed once google3 is completely migrated to Ivy. - super.ngOnInit(); - } - - override ngDoCheck() { - // Normally this happens automatically, but it seems to break if not added explicitly when all - // of the criteria below are met: - // 1) The class extends a TS mixin. - // 2) The application is running in ViewEngine. - // 3) The application is being transpiled through tsickle. - // This can be removed once google3 is completely migrated to Ivy. - super.ngDoCheck(); - } - protected _validator = Validators.compose([...super._getValidators(), this._endValidator]); protected _getValueFromModel(modelValue: DateRange) { diff --git a/src/material/datepicker/datepicker-module.ts b/src/material/datepicker/datepicker-module.ts index 001fbf0db1e1..4732992723eb 100644 --- a/src/material/datepicker/datepicker-module.ts +++ b/src/material/datepicker/datepicker-module.ts @@ -83,6 +83,5 @@ import {MatDatepickerActions, MatDatepickerApply, MatDatepickerCancel} from './d MatDatepickerApply, ], providers: [MatDatepickerIntl, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER], - entryComponents: [MatDatepickerContent, MatCalendarHeader], }) export class MatDatepickerModule {} diff --git a/src/material/dialog/dialog-module.ts b/src/material/dialog/dialog-module.ts index 608a1912fb48..01442e29c80b 100644 --- a/src/material/dialog/dialog-module.ts +++ b/src/material/dialog/dialog-module.ts @@ -37,6 +37,5 @@ import { MatDialogContent, ], providers: [MatDialog, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER], - entryComponents: [MatDialogContainer], }) export class MatDialogModule {} diff --git a/src/material/dialog/dialog.md b/src/material/dialog/dialog.md index ad29d63fc096..6aefedfce50b 100644 --- a/src/material/dialog/dialog.md +++ b/src/material/dialog/dialog.md @@ -39,38 +39,6 @@ export class YourDialog { } ``` -### Configuring dialog content via `entryComponents` -**You only need to specify `entryComponents` if your project uses ViewEngine. Projects -using Angular Ivy don't need `entryComponents`.** - -Because `MatDialog` instantiates components at run-time, the Angular compiler needs extra -information to create the necessary `ComponentFactory` for your dialog content component. - -For any component loaded into a dialog, you must include your component class in the list of -`entryComponents` in your NgModule definition so that the Angular compiler knows to create -the `ComponentFactory` for it. - -```ts -@NgModule({ - imports: [ - // ... - MatDialogModule - ], - - declarations: [ - AppComponent, - ExampleDialogComponent - ], - - entryComponents: [ - ExampleDialogComponent - ], - - bootstrap: [AppComponent] -}) -export class AppModule {} -``` - ### Specifying global configuration defaults Default dialog options can be specified by providing an instance of `MatDialogConfig` for MAT_DIALOG_DEFAULT_OPTIONS in your application's root module. @@ -194,5 +162,5 @@ sheet attempts to restore focus. You can add handling for this situation with the `afterClosed()` observable from `MatDialogRef`. diff --git a/src/material/snack-bar/snack-bar-module.ts b/src/material/snack-bar/snack-bar-module.ts index a24d6f505e83..881c55389909 100644 --- a/src/material/snack-bar/snack-bar-module.ts +++ b/src/material/snack-bar/snack-bar-module.ts @@ -19,6 +19,5 @@ import {MatSnackBarContainer} from './snack-bar-container'; imports: [OverlayModule, PortalModule, CommonModule, MatButtonModule, MatCommonModule], exports: [MatSnackBarContainer, MatCommonModule], declarations: [MatSnackBarContainer, SimpleSnackBar], - entryComponents: [MatSnackBarContainer, SimpleSnackBar], }) export class MatSnackBarModule {} diff --git a/src/material/tooltip/tooltip-module.ts b/src/material/tooltip/tooltip-module.ts index 080a69d27ab8..da0a2bb3cfa6 100644 --- a/src/material/tooltip/tooltip-module.ts +++ b/src/material/tooltip/tooltip-module.ts @@ -22,7 +22,6 @@ import { imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule], exports: [MatTooltip, TooltipComponent, MatCommonModule, CdkScrollableModule], declarations: [MatTooltip, TooltipComponent], - entryComponents: [TooltipComponent], providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER], }) export class MatTooltipModule {} diff --git a/src/material/tree/toggle.ts b/src/material/tree/toggle.ts index a61102eebf35..370abd8423d1 100644 --- a/src/material/tree/toggle.ts +++ b/src/material/tree/toggle.ts @@ -6,9 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import {coerceBooleanProperty} from '@angular/cdk/coercion'; import {CdkTreeNodeToggle} from '@angular/cdk/tree'; -import {Directive, Input} from '@angular/core'; +import {Directive} from '@angular/core'; /** * Wrapper for the CdkTree's toggle with Material design styles. @@ -16,16 +15,6 @@ import {Directive, Input} from '@angular/core'; @Directive({ selector: '[matTreeNodeToggle]', providers: [{provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle}], + inputs: ['recursive: matTreeNodeToggleRecursive'], }) -// tslint:disable-next-line: coercion-types -export class MatTreeNodeToggle extends CdkTreeNodeToggle { - @Input('matTreeNodeToggleRecursive') - override get recursive(): boolean { - return this._recursive; - } - override set recursive(value: boolean) { - // TODO: when we remove support for ViewEngine, change this setter to an input - // alias in the decorator metadata. - this._recursive = coerceBooleanProperty(value); - } -} +export class MatTreeNodeToggle extends CdkTreeNodeToggle {} diff --git a/src/universal-app/kitchen-sink-mdc/kitchen-sink-mdc.ts b/src/universal-app/kitchen-sink-mdc/kitchen-sink-mdc.ts index 9afeb3f473a3..0b4b248ec134 100644 --- a/src/universal-app/kitchen-sink-mdc/kitchen-sink-mdc.ts +++ b/src/universal-app/kitchen-sink-mdc/kitchen-sink-mdc.ts @@ -62,7 +62,6 @@ export class KitchenSinkMdc { ], declarations: [KitchenSinkMdc, TestEntryComponent], exports: [KitchenSinkMdc, TestEntryComponent], - entryComponents: [TestEntryComponent], providers: [ { // If an error is thrown asynchronously during server-side rendering it'll get logged to stderr, diff --git a/src/universal-app/kitchen-sink/kitchen-sink.ts b/src/universal-app/kitchen-sink/kitchen-sink.ts index f3dbc2239e92..72b7f3cb65a9 100644 --- a/src/universal-app/kitchen-sink/kitchen-sink.ts +++ b/src/universal-app/kitchen-sink/kitchen-sink.ts @@ -145,7 +145,6 @@ export class KitchenSink { ], declarations: [KitchenSink, TestEntryComponent], exports: [KitchenSink, TestEntryComponent], - entryComponents: [TestEntryComponent], providers: [ { // If an error is thrown asynchronously during server-side rendering it'll get logged to stderr, diff --git a/tools/public_api_guard/material/datepicker.md b/tools/public_api_guard/material/datepicker.md index 510ea0ec7719..bc0afe8e697e 100644 --- a/tools/public_api_guard/material/datepicker.md +++ b/tools/public_api_guard/material/datepicker.md @@ -741,17 +741,13 @@ export abstract class MatDateSelectionModel extends _MatDateRangeInputBase implements CanUpdateErrorState, DoCheck, OnInit { +export class MatEndDate extends _MatDateRangeInputBase implements CanUpdateErrorState { constructor(rangeInput: MatDateRangeInputParent, elementRef: ElementRef, defaultErrorStateMatcher: ErrorStateMatcher, injector: Injector, parentForm: NgForm, parentFormGroup: FormGroupDirective, dateAdapter: DateAdapter, dateFormats: MatDateFormats); // (undocumented) protected _assignValueToModel(value: D | null): void; // (undocumented) protected _getValueFromModel(modelValue: DateRange): D | null; // (undocumented) - ngDoCheck(): void; - // (undocumented) - ngOnInit(): void; - // (undocumented) _onKeydown(event: KeyboardEvent): void; // (undocumented) protected _shouldHandleChangeEvent(change: DateSelectionModelChange>): boolean; @@ -885,7 +881,7 @@ export class MatSingleDateSelectionModel extends MatDateSelectionModel extends _MatDateRangeInputBase implements CanUpdateErrorState, DoCheck, OnInit { +export class MatStartDate extends _MatDateRangeInputBase implements CanUpdateErrorState { constructor(rangeInput: MatDateRangeInputParent, elementRef: ElementRef, defaultErrorStateMatcher: ErrorStateMatcher, injector: Injector, parentForm: NgForm, parentFormGroup: FormGroupDirective, dateAdapter: DateAdapter, dateFormats: MatDateFormats); // (undocumented) protected _assignValueToModel(value: D | null): void; @@ -895,10 +891,6 @@ export class MatStartDate extends _MatDateRangeInputBase implements CanUpd // (undocumented) protected _getValueFromModel(modelValue: DateRange): D | null; // (undocumented) - ngDoCheck(): void; - // (undocumented) - ngOnInit(): void; - // (undocumented) protected _shouldHandleChangeEvent(change: DateSelectionModelChange>): boolean; // (undocumented) protected _validator: ValidatorFn | null; diff --git a/tools/public_api_guard/material/tree.md b/tools/public_api_guard/material/tree.md index 10b51b166c38..b8f9ddc2a93f 100644 --- a/tools/public_api_guard/material/tree.md +++ b/tools/public_api_guard/material/tree.md @@ -170,9 +170,6 @@ export class MatTreeNodePadding extends CdkTreeNodePadding { // @public export class MatTreeNodeToggle extends CdkTreeNodeToggle { - // (undocumented) - get recursive(): boolean; - set recursive(value: boolean); // (undocumented) static ɵdir: i0.ɵɵDirectiveDeclaration, "[matTreeNodeToggle]", never, { "recursive": "matTreeNodeToggleRecursive"; }, {}, never>; // (undocumented) From 4350552f5c145182c8fc17586d8a826c40481b59 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 15 Nov 2021 20:27:31 +0100 Subject: [PATCH 050/358] perf(multiple): don't emit fallbacks for CSS variables in experimental components (#23912) Reworks the theming for the MDC-based components so that it doesn't emit fallback values for CSS variables. This trims ~27kb from the dev app theme. Also wraps the structural styles of the MDC-based radio button and slide toggle who have been converted to the new MDC theming API. --- .../mdc-helpers/_mdc-helpers.scss | 17 ++++++++++++-- .../mdc-radio/radio.scss | 22 +++++++++++++------ .../mdc-slide-toggle/slide-toggle.scss | 10 ++++++--- .../mdc-tabs/_tabs-common.scss | 6 +++-- 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/material-experimental/mdc-helpers/_mdc-helpers.scss b/src/material-experimental/mdc-helpers/_mdc-helpers.scss index 828f5027ff26..58abe05ac36c 100644 --- a/src/material-experimental/mdc-helpers/_mdc-helpers.scss +++ b/src/material-experimental/mdc-helpers/_mdc-helpers.scss @@ -5,6 +5,7 @@ @use '@material/feature-targeting' as mdc-feature-targeting; @use '@material/typography' as mdc-typography; @use '@material/theme/theme-color' as mdc-theme-color; +@use '@material/theme/css' as mdc-theme-css; @use 'sass:map'; @use '../../material/core/theming/theming'; @use '../../material/core/typography/typography'; @@ -169,7 +170,9 @@ $mat-typography-mdc-level-mappings: ( ); // Apply given rules. - @content; + @include disable-fallback-declarations { + @content; + } // Reset the original values. mdc-theme-color.$primary: $orig-primary; @@ -196,8 +199,18 @@ $mat-typography-mdc-level-mappings: ( } // Apply given rules. - @content; + @include disable-fallback-declarations { + @content; + } // Reset the original values. mdc-typography.$styles: $orig-mdc-typography-styles; } + +// Disables MDC's CSS custom property fallbacks for the specified mixin content. +@mixin disable-fallback-declarations { + $previous-value: mdc-theme-css.$enable-fallback-declarations; + mdc-theme-css.$enable-fallback-declarations: false; + @content; + mdc-theme-css.$enable-fallback-declarations: $previous-value; +} diff --git a/src/material-experimental/mdc-radio/radio.scss b/src/material-experimental/mdc-radio/radio.scss index 3be586f6050e..fff2351c07cd 100644 --- a/src/material-experimental/mdc-radio/radio.scss +++ b/src/material-experimental/mdc-radio/radio.scss @@ -6,18 +6,24 @@ @use '../../cdk/a11y'; @use '../../material/core/style/layout-common'; -@include mdc-radio.without-ripple($query: mdc-helpers.$mat-base-styles-without-animation-query); -@include mdc-form-field.core-styles($query: mdc-helpers.$mat-base-styles-query); +@include mdc-helpers.disable-fallback-declarations { + @include mdc-radio.without-ripple($query: mdc-helpers.$mat-base-styles-without-animation-query); + @include mdc-form-field.core-styles($query: mdc-helpers.$mat-base-styles-query); +} .mat-mdc-radio-button { &:not(._mat-animation-noopable) { - @include mdc-radio.without-ripple($query: animation); + @include mdc-helpers.disable-fallback-declarations { + @include mdc-radio.without-ripple($query: animation); + } } .mdc-radio { // MDC theme styles also include structural styles so we have to include the theme at least // once here. The values will be overwritten by our own theme file afterwards. - @include mdc-radio-theme.theme-styles(mdc-radio-theme.$light-theme); + @include mdc-helpers.disable-fallback-declarations { + @include mdc-radio-theme.theme-styles(mdc-radio-theme.$light-theme); + } } // This is necessary because we do not depend on MDC's ripple, but have our own that should be @@ -35,9 +41,11 @@ // Element used to provide a larger tap target for users on touch devices. .mat-mdc-radio-touch-target { - @include mdc-touch-target.touch-target( - $set-width: true, - $query: mdc-helpers.$mat-base-styles-query); + @include mdc-helpers.disable-fallback-declarations { + @include mdc-touch-target.touch-target( + $set-width: true, + $query: mdc-helpers.$mat-base-styles-query); + } [dir='rtl'] & { left: 0; diff --git a/src/material-experimental/mdc-slide-toggle/slide-toggle.scss b/src/material-experimental/mdc-slide-toggle/slide-toggle.scss index b2340c42604b..5b815d842fb8 100644 --- a/src/material-experimental/mdc-slide-toggle/slide-toggle.scss +++ b/src/material-experimental/mdc-slide-toggle/slide-toggle.scss @@ -8,8 +8,10 @@ @use '../../material/core/style/layout-common'; @use '../../cdk/a11y'; -@include mdc-form-field.core-styles($query: mdc-helpers.$mat-base-styles-query); -@include mdc-switch.static-styles-without-ripple; +@include mdc-helpers.disable-fallback-declarations { + @include mdc-form-field.core-styles($query: mdc-helpers.$mat-base-styles-query); + @include mdc-switch.static-styles-without-ripple; +} .mat-mdc-slide-toggle { display: inline-block; @@ -20,7 +22,9 @@ .mdc-switch { // MDC theme styles also include structural styles so we have to include the theme at least // once here. The values will be overwritten by our own theme file afterwards. - @include mdc-switch-theme.theme-styles(mdc-switch-theme.$light-theme); + @include mdc-helpers.disable-fallback-declarations { + @include mdc-switch-theme.theme-styles(mdc-switch-theme.$light-theme); + } } // The ripple needs extra specificity so the base ripple styling doesn't override its `position`. diff --git a/src/material-experimental/mdc-tabs/_tabs-common.scss b/src/material-experimental/mdc-tabs/_tabs-common.scss index 432aa2964b69..95412c1c69be 100644 --- a/src/material-experimental/mdc-tabs/_tabs-common.scss +++ b/src/material-experimental/mdc-tabs/_tabs-common.scss @@ -10,8 +10,10 @@ $mat-tab-animation-duration: 500ms !default; // Combines the various structural styles we need for the tab group and tab nav bar. @mixin structural-styles { - @include mdc-tab.without-ripple($query: mdc-helpers.$mat-base-styles-query); - @include mdc-tab-indicator.core-styles($query: mdc-helpers.$mat-base-styles-query); + @include mdc-helpers.disable-fallback-declarations { + @include mdc-tab.without-ripple($query: mdc-helpers.$mat-base-styles-query); + @include mdc-tab-indicator.core-styles($query: mdc-helpers.$mat-base-styles-query); + } .mat-mdc-tab-ripple { position: absolute; From 48df9d6788c2bc4e7622755284b4901447a568bb Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Wed, 6 Oct 2021 11:17:29 +0200 Subject: [PATCH 051/358] fix(cdk/testing): fake events not propagating through shadow DOM Adds the `composed` flag to the fake event objects so that they can propagate through a `mode: 'open'` shadow root. --- .../testbed/fake-events/event-objects.spec.ts | 72 +++++++++++++++++++ .../testbed/fake-events/event-objects.ts | 7 +- 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/src/cdk/testing/testbed/fake-events/event-objects.spec.ts b/src/cdk/testing/testbed/fake-events/event-objects.spec.ts index 643341c823b8..0fe80cca0f8e 100644 --- a/src/cdk/testing/testbed/fake-events/event-objects.spec.ts +++ b/src/cdk/testing/testbed/fake-events/event-objects.spec.ts @@ -1,3 +1,9 @@ +import { + dispatchMouseEvent, + dispatchKeyboardEvent, + dispatchPointerEvent, + dispatchFakeEvent, +} from './dispatch-events'; import {createKeyboardEvent, createMouseEvent} from './event-objects'; describe('event objects', () => { @@ -40,4 +46,70 @@ describe('event objects', () => { expect(preventDefaultSpy).toHaveBeenCalledTimes(2); }); }); + + describe('shadow DOM', () => { + it('should allow dispatched mouse events to propagate through the shadow root', () => { + if (!testElement.attachShadow) { + return; + } + + const spy = jasmine.createSpy('listener'); + const shadowRoot = testElement.attachShadow({mode: 'open'}); + const child = document.createElement('div'); + shadowRoot.appendChild(child); + + testElement.addEventListener('mousedown', spy); + dispatchMouseEvent(child, 'mousedown'); + + expect(spy).toHaveBeenCalled(); + }); + + it('should allow dispatched keyboard events to propagate through the shadow root', () => { + if (!testElement.attachShadow) { + return; + } + + const spy = jasmine.createSpy('listener'); + const shadowRoot = testElement.attachShadow({mode: 'open'}); + const child = document.createElement('div'); + shadowRoot.appendChild(child); + + testElement.addEventListener('keydown', spy); + dispatchKeyboardEvent(child, 'keydown'); + + expect(spy).toHaveBeenCalled(); + }); + + it('should allow dispatched pointer events to propagate through the shadow root', () => { + if (!testElement.attachShadow) { + return; + } + + const spy = jasmine.createSpy('listener'); + const shadowRoot = testElement.attachShadow({mode: 'open'}); + const child = document.createElement('div'); + shadowRoot.appendChild(child); + + testElement.addEventListener('pointerdown', spy); + dispatchPointerEvent(child, 'pointerdown'); + + expect(spy).toHaveBeenCalled(); + }); + + it('should allow dispatched fake events to propagate through the shadow root', () => { + if (!testElement.attachShadow) { + return; + } + + const spy = jasmine.createSpy('listener'); + const shadowRoot = testElement.attachShadow({mode: 'open'}); + const child = document.createElement('div'); + shadowRoot.appendChild(child); + + testElement.addEventListener('fake', spy); + dispatchFakeEvent(child, 'fake'); + + expect(spy).toHaveBeenCalled(); + }); + }); }); diff --git a/src/cdk/testing/testbed/fake-events/event-objects.ts b/src/cdk/testing/testbed/fake-events/event-objects.ts index 547252ba7dd9..d68892693ce5 100644 --- a/src/cdk/testing/testbed/fake-events/event-objects.ts +++ b/src/cdk/testing/testbed/fake-events/event-objects.ts @@ -32,6 +32,7 @@ export function createMouseEvent( const event = new MouseEvent(type, { bubbles: true, cancelable: true, + composed: true, // Required for shadow DOM events. view: window, detail: 0, relatedTarget: null, @@ -74,6 +75,7 @@ export function createPointerEvent( return new PointerEvent(type, { bubbles: true, cancelable: true, + composed: true, // Required for shadow DOM events. view: window, clientX, clientY, @@ -116,6 +118,7 @@ export function createKeyboardEvent( return new KeyboardEvent(type, { bubbles: true, cancelable: true, + composed: true, // Required for shadow DOM events. view: window, keyCode: keyCode, key: key, @@ -130,8 +133,8 @@ export function createKeyboardEvent( * Creates a fake event object with any desired event type. * @docs-private */ -export function createFakeEvent(type: string, bubbles = false, cancelable = true) { - return new Event(type, {bubbles, cancelable}); +export function createFakeEvent(type: string, bubbles = false, cancelable = true, composed = true) { + return new Event(type, {bubbles, cancelable, composed}); } /** From b9cda574c9f9b127b7b018212556678e4fd573c2 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Wed, 6 Oct 2021 11:31:03 +0200 Subject: [PATCH 052/358] fix(cdk/drag-drop): handle not working when it has a child inside shadow DOM Fixes that the children of the drag handle inside a shadow root weren't being detected. The problem was that we were using `_getEventTarget` to resolve the actual event target and using `contains` to verify that it's inside the handle. Since `contains` doesn't descend into shadow root, the call failed. These changes remove the `_getEventTarget` call since we can use the event `target` directly. Fixes #23680. --- src/cdk/drag-drop/directives/drag.spec.ts | 43 +++++++++++++++++++++++ src/cdk/drag-drop/drag-ref.ts | 3 +- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/cdk/drag-drop/directives/drag.spec.ts b/src/cdk/drag-drop/directives/drag.spec.ts index 651ac3d0ee42..4e5b687d9a75 100644 --- a/src/cdk/drag-drop/directives/drag.spec.ts +++ b/src/cdk/drag-drop/directives/drag.spec.ts @@ -1581,6 +1581,26 @@ describe('CdkDrag', () => { flush(); }).toThrowError(/^cdkDragHandle must be attached to an element node/); })); + + it('should be able to drag an element using a handle with a shadow DOM child', fakeAsync(() => { + if (!_supportsShadowDom()) { + return; + } + + const fixture = createComponent( + StandaloneDraggableWithShadowInsideHandle, + undefined, + undefined, + [ShadowWrapper], + ); + fixture.detectChanges(); + const dragElement = fixture.componentInstance.dragElement.nativeElement; + const handleChild = fixture.componentInstance.handleChild.nativeElement; + + expect(dragElement.style.transform).toBeFalsy(); + dragElementViaMouse(fixture, handleChild, 50, 100); + expect(dragElement.style.transform).toBe('translate3d(50px, 100px, 0px)'); + })); }); describe('in a drop container', () => { @@ -6461,6 +6481,29 @@ class StandaloneDraggableWithIndirectHandle { @ViewChild('handleElement') handleElement: ElementRef; } +@Component({ + selector: 'shadow-wrapper', + template: '', + encapsulation: ViewEncapsulation.ShadowDom, +}) +class ShadowWrapper {} + +@Component({ + template: ` +
+
+ +
+
+
+
+ `, +}) +class StandaloneDraggableWithShadowInsideHandle { + @ViewChild('dragElement') dragElement: ElementRef; + @ViewChild('handleChild') handleChild: ElementRef; +} + @Component({ encapsulation: ViewEncapsulation.None, styles: [ diff --git a/src/cdk/drag-drop/drag-ref.ts b/src/cdk/drag-drop/drag-ref.ts index c1dedf537add..ac23a0ad4838 100644 --- a/src/cdk/drag-drop/drag-ref.ts +++ b/src/cdk/drag-drop/drag-ref.ts @@ -629,8 +629,7 @@ export class DragRef { // Delegate the event based on whether it started from a handle or the element itself. if (this._handles.length) { const targetHandle = this._handles.find(handle => { - const target = _getEventTarget(event); - return !!target && (target === handle || handle.contains(target as HTMLElement)); + return event.target && (event.target === handle || handle.contains(event.target as Node)); }); if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) { From 8cdd3d7c763113ed03cf6b6889fb41f40f57dda9 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Mon, 15 Nov 2021 20:28:39 +0100 Subject: [PATCH 053/358] fix(material/tabs): pagination sometimes incorrectly shown after zoom (#23759) Currently if one of the end tabs is selected and the user zooms in, we may end up showing the pagination unnecessarily. The issue comes from the fact that there's a transition on the ink bar which can cause the parent overflow while it is being measured. These changes resolve the issue by measuring a different element. Fixes #23724. --- src/material-experimental/mdc-tabs/tab-header.html | 2 +- src/material-experimental/mdc-tabs/tab-header.ts | 1 + .../mdc-tabs/tab-nav-bar/tab-nav-bar.html | 2 +- .../mdc-tabs/tab-nav-bar/tab-nav-bar.ts | 1 + src/material/tabs/paginated-tab-header.ts | 7 ++++--- src/material/tabs/tab-header.html | 2 +- src/material/tabs/tab-header.ts | 1 + src/material/tabs/tab-nav-bar/tab-nav-bar.html | 2 +- src/material/tabs/tab-nav-bar/tab-nav-bar.ts | 1 + tools/public_api_guard/material/tabs.md | 4 ++++ 10 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/material-experimental/mdc-tabs/tab-header.html b/src/material-experimental/mdc-tabs/tab-header.html index bb0d58bf46f0..90931f7cd96d 100644 --- a/src/material-experimental/mdc-tabs/tab-header.html +++ b/src/material-experimental/mdc-tabs/tab-header.html @@ -21,7 +21,7 @@ class="mat-mdc-tab-list" role="tablist" (cdkObserveContent)="_onContentChanges()"> -
+
diff --git a/src/material-experimental/mdc-tabs/tab-header.ts b/src/material-experimental/mdc-tabs/tab-header.ts index dd3721875d28..9d080ac7a599 100644 --- a/src/material-experimental/mdc-tabs/tab-header.ts +++ b/src/material-experimental/mdc-tabs/tab-header.ts @@ -54,6 +54,7 @@ export class MatTabHeader extends _MatTabHeaderBase implements AfterContentInit @ContentChildren(MatTabLabelWrapper, {descendants: false}) _items: QueryList; @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef; @ViewChild('tabList', {static: true}) _tabList: ElementRef; + @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef; @ViewChild('nextPaginator') _nextPaginator: ElementRef; @ViewChild('previousPaginator') _previousPaginator: ElementRef; _inkBar: MatInkBar; diff --git a/src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html b/src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html index 84e155b3bde9..10e25a46578c 100644 --- a/src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html +++ b/src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html @@ -12,7 +12,7 @@