diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad466a0985ef..041032ccd16c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+
+# 20.0.6 "plastic-moon" (2025-07-09)
+### material
+| Commit | Type | Description |
+| -- | -- | -- |
+| [1f15ad392c](https://github.com/angular/components/commit/1f15ad392ccb2e18f2fd6cccfcf41a77d78ea701) | fix | **tabs:** remove delay on touch devices ([#31489](https://github.com/angular/components/pull/31489)) |
+
+
+
# 20.0.5 "agardite-ant" (2025-07-02)
### cdk
diff --git a/package.json b/package.json
index 2b6b137bce71..c682fb62fc47 100644
--- a/package.json
+++ b/package.json
@@ -53,7 +53,7 @@
"ci-notify-slack-failure": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only scripts/circleci/notify-slack-job-failure.mts",
"prepare": "husky"
},
- "version": "20.0.5",
+ "version": "20.0.6",
"dependencies": {
"@angular-devkit/core": "catalog:",
"@angular-devkit/schematics": "catalog:",
diff --git a/src/cdk/dialog/BUILD.bazel b/src/cdk/dialog/BUILD.bazel
index 252e8c6b2ee7..95735b0b92b3 100644
--- a/src/cdk/dialog/BUILD.bazel
+++ b/src/cdk/dialog/BUILD.bazel
@@ -17,7 +17,6 @@ ng_project(
),
assets = [":dialog-container.css"] + glob(["**/*.html"]),
deps = [
- "//:node_modules/@angular/animations",
"//:node_modules/@angular/common",
"//:node_modules/@angular/core",
"//:node_modules/rxjs",
diff --git a/src/cdk/scrolling/virtual-scroll-viewport.spec.ts b/src/cdk/scrolling/virtual-scroll-viewport.spec.ts
index a023cb718439..2357db6d4f29 100644
--- a/src/cdk/scrolling/virtual-scroll-viewport.spec.ts
+++ b/src/cdk/scrolling/virtual-scroll-viewport.spec.ts
@@ -7,7 +7,6 @@ import {
ScrollingModule,
} from '../scrolling';
import {
- ApplicationRef,
Component,
Directive,
TrackByFunction,
@@ -814,25 +813,17 @@ describe('CdkVirtualScrollViewport', () => {
}));
describe('viewChange change detection behavior', () => {
- let appRef: ApplicationRef;
-
- beforeEach(() => {
- appRef = TestBed.inject(ApplicationRef);
- });
-
- it('should not run change detection if there are no viewChange listeners', fakeAsync(() => {
+ it('should not emit viewChange if there are no listeners', fakeAsync(() => {
+ const viewChangeSpy = spyOn(testComponent.virtualForOf.viewChange, 'next');
finishInit(fixture);
testComponent.items = Array(10).fill(0);
fixture.changeDetectorRef.markForCheck();
fixture.detectChanges();
flush();
- spyOn(appRef, 'tick');
-
viewport.scrollToIndex(5);
triggerScroll(viewport);
-
- expect(appRef.tick).not.toHaveBeenCalled();
+ expect(viewChangeSpy).not.toHaveBeenCalled();
}));
});
});
diff --git a/src/e2e-app/BUILD.bazel b/src/e2e-app/BUILD.bazel
index 659b2c473d52..9d6e7e992781 100644
--- a/src/e2e-app/BUILD.bazel
+++ b/src/e2e-app/BUILD.bazel
@@ -34,7 +34,6 @@ ng_project(
exclude = ["index.html"],
),
deps = [
- "//:node_modules/@angular/animations",
"//:node_modules/@angular/core",
"//:node_modules/@angular/forms",
"//:node_modules/@angular/platform-browser",
diff --git a/src/google-maps/README.md b/src/google-maps/README.md
index e43b0cdb4df3..5b4488a6b575 100644
--- a/src/google-maps/README.md
+++ b/src/google-maps/README.md
@@ -86,3 +86,14 @@ zoom = 4;
Not every option has its own input. See the API for each component to see if the option has a
dedicated input or if it should be set in the options input.
+
+## Terms of Service
+
+This library uses Google Maps Platform services. Use of Google Maps Platform services through this library is subject to the Google Maps Platform [Terms of Service].
+
+This library is not a Google Maps Platform Core Service. Therefore, the Google Maps Platform Terms of Service (e.g. Technical Support Services, Service Level Agreements, and Deprecation Policy) do not apply to the code in this library.
+
+### European Economic Area (EEA) developers
+
+If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](https://developers.google.com/maps/comms/eea/faq).
+
diff --git a/src/material/badge/BUILD.bazel b/src/material/badge/BUILD.bazel
index b44cb37fab25..42c911bc9f0b 100644
--- a/src/material/badge/BUILD.bazel
+++ b/src/material/badge/BUILD.bazel
@@ -71,7 +71,6 @@ ng_project(
],
assets = [":badge_css"],
deps = [
- "//:node_modules/@angular/animations",
"//:node_modules/@angular/common",
"//:node_modules/@angular/core",
"//:node_modules/@angular/platform-browser",
diff --git a/src/material/checkbox/BUILD.bazel b/src/material/checkbox/BUILD.bazel
index 443e706556eb..7316d2d58227 100644
--- a/src/material/checkbox/BUILD.bazel
+++ b/src/material/checkbox/BUILD.bazel
@@ -87,7 +87,6 @@ ng_project(
":css",
],
deps = [
- "//:node_modules/@angular/animations",
"//:node_modules/@angular/core",
"//:node_modules/@angular/forms",
"//src/material/core",
diff --git a/src/material/chips/BUILD.bazel b/src/material/chips/BUILD.bazel
index 9b5d385a2155..ff69bad4d322 100644
--- a/src/material/chips/BUILD.bazel
+++ b/src/material/chips/BUILD.bazel
@@ -96,7 +96,6 @@ ng_project(
":chip_set_css",
],
deps = [
- "//:node_modules/@angular/animations",
"//:node_modules/@angular/common",
"//:node_modules/@angular/core",
"//:node_modules/@angular/forms",
@@ -116,7 +115,6 @@ ts_project(
),
deps = [
":chips",
- "//:node_modules/@angular/animations",
"//:node_modules/@angular/common",
"//:node_modules/@angular/core",
"//:node_modules/@angular/forms",
diff --git a/src/material/slide-toggle/BUILD.bazel b/src/material/slide-toggle/BUILD.bazel
index 6481aa1e20d9..f1c00a4dcd8d 100644
--- a/src/material/slide-toggle/BUILD.bazel
+++ b/src/material/slide-toggle/BUILD.bazel
@@ -77,7 +77,6 @@ ng_project(
":css",
],
deps = [
- "//:node_modules/@angular/animations",
"//:node_modules/@angular/core",
"//:node_modules/@angular/forms",
"//:node_modules/rxjs",
diff --git a/src/material/tabs/_tabs-common.scss b/src/material/tabs/_tabs-common.scss
index ed8f1c06247e..7523f6010dfd 100644
--- a/src/material/tabs/_tabs-common.scss
+++ b/src/material/tabs/_tabs-common.scss
@@ -21,6 +21,7 @@ $mat-tab-animation-duration: 500ms !default;
white-space: nowrap;
cursor: pointer;
z-index: 1;
+ touch-action: manipulation;
}
.mdc-tab__content {