diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b843f43451f8..348dbf449319 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -37,6 +37,7 @@ /src/material/toolbar/** @devversion /src/material/tooltip/** @andrewseguin /src/material/tree/** @jelbourn @andrewseguin +/src/material/version/** @josephperrott # Angular Material core /src/material/core/* @jelbourn @@ -78,6 +79,7 @@ /src/cdk/testing/** @devversion /src/cdk/text-field/** @mmalerba /src/cdk/tree/** @jelbourn @andrewseguin +/src/cdk/version/** @josephperrott # Moment adapter package /src/material-moment-adapter/** @mmalerba @@ -95,6 +97,7 @@ /src/material-experimental/mdc-slide-toggle/** @crisbeto /src/material-experimental/mdc-tabs/** @crisbeto /src/material-experimental/popover-edit/** @kseamon @andrewseguin +/src/material-experimental/version/** @josephperrott # CDK experimental package /src/cdk-experimental/** @jelbourn @@ -102,6 +105,7 @@ /src/cdk-experimental/popover-edit/** @kseamon @andrewseguin /src/cdk-experimental/scrolling/** @mmalerba /src/cdk-experimental/testing/** @mmalerba +/src/cdk-experimental/version/** @josephperrott # Docs examples & guides /guides/** @jelbourn diff --git a/packages.bzl b/packages.bzl index 403fc04ebf77..2ef096dcac3d 100644 --- a/packages.bzl +++ b/packages.bzl @@ -20,7 +20,7 @@ CDK_PACKAGES = [ "tree", ] -CDK_TARGETS = ["//src/cdk"] + ["//src/cdk/%s" % p for p in CDK_PACKAGES] +CDK_TARGETS = ["//src/cdk", "//src/cdk/version"] + ["//src/cdk/%s" % p for p in CDK_PACKAGES] CDK_EXPERIMENTAL_PACKAGES = [ "dialog", @@ -28,7 +28,7 @@ CDK_EXPERIMENTAL_PACKAGES = [ "scrolling", ] -CDK_EXPERIMENTAL_TARGETS = ["//src/cdk-experimental"] + [ +CDK_EXPERIMENTAL_TARGETS = ["//src/cdk-experimental", "//src/cdk-experimental/version"] + [ "//src/cdk-experimental/%s" % p for p in CDK_EXPERIMENTAL_PACKAGES ] @@ -71,7 +71,7 @@ MATERIAL_PACKAGES = [ "tree", ] -MATERIAL_TARGETS = ["//src/material:material"] + ["//src/material/%s" % p for p in MATERIAL_PACKAGES] +MATERIAL_TARGETS = ["//src/material:material", "//src/material/version"] + ["//src/material/%s" % p for p in MATERIAL_PACKAGES] # List that references the sass libraries for each Material package. This can be used to create # the theming scss-bundle or to specify dependencies for the all-theme.scss file. @@ -93,7 +93,7 @@ MATERIAL_EXPERIMENTAL_PACKAGES = [ "popover-edit", ] -MATERIAL_EXPERIMENTAL_TARGETS = ["//src/material-experimental"] + [ +MATERIAL_EXPERIMENTAL_TARGETS = ["//src/material-experimental", "//src/material-experimental/version"] + [ "//src/material-experimental/%s" % p for p in MATERIAL_EXPERIMENTAL_PACKAGES ] diff --git a/src/cdk-experimental/version.ts b/src/cdk-experimental/version.ts index a892eb481e7e..7eee5ff6ec71 100644 --- a/src/cdk-experimental/version.ts +++ b/src/cdk-experimental/version.ts @@ -8,5 +8,9 @@ import {Version} from '@angular/core'; -/** Current version of the CDK Experimental package. */ +/** + * Current version of the CDK Experimental package. + * @deprecated @breaking-change 9.0.0 Import VERSION from @angular/cdk-experimental/version + * instead. + */ export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/src/cdk-experimental/version/BUILD.bazel b/src/cdk-experimental/version/BUILD.bazel new file mode 100644 index 000000000000..41d519a4e3a6 --- /dev/null +++ b/src/cdk-experimental/version/BUILD.bazel @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +load("//tools:defaults.bzl", "ts_library") + +ts_library( + name = "version", + srcs = glob( + ["**/*.ts"], + ), + module_name = "@angular/cdk-experimental/version", + deps = [ + "@npm//@angular/core", + ], +) + +filegroup( + name = "source-files", + srcs = glob(["**/*.ts"]), +) diff --git a/src/cdk-experimental/version/index.ts b/src/cdk-experimental/version/index.ts new file mode 100644 index 000000000000..676ca90f1ffa --- /dev/null +++ b/src/cdk-experimental/version/index.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './public-api'; diff --git a/src/cdk-experimental/version/public-api.ts b/src/cdk-experimental/version/public-api.ts new file mode 100644 index 000000000000..326c704b094c --- /dev/null +++ b/src/cdk-experimental/version/public-api.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './version'; diff --git a/src/cdk-experimental/version/tsconfig-build.json b/src/cdk-experimental/version/tsconfig-build.json new file mode 100644 index 000000000000..7429f7f1f643 --- /dev/null +++ b/src/cdk-experimental/version/tsconfig-build.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig-build", + "files": [ + "public-api.ts" + ], + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "strictMetadataEmit": true, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/cdk-experimental/version", + "skipTemplateCodegen": true, + "fullTemplateTypeCheck": true + } +} diff --git a/src/cdk-experimental/version/version.ts b/src/cdk-experimental/version/version.ts new file mode 100644 index 000000000000..bd900ee9d735 --- /dev/null +++ b/src/cdk-experimental/version/version.ts @@ -0,0 +1,12 @@ +/** + * @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 {Version} from '@angular/core'; + +/** Current version of Angular CDK Experimental. */ +export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/src/cdk/version.ts b/src/cdk/version.ts index fe791edbde7a..0d9db03ed770 100644 --- a/src/cdk/version.ts +++ b/src/cdk/version.ts @@ -8,5 +8,8 @@ import {Version} from '@angular/core'; -/** Current version of the Angular Component Development Kit. */ +/** + * Current version of the Angular Component Development Kit. + * @deprecated @breaking-change 9.0.0 Import VERSION from @angular/cdk/version instead. + */ export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/src/cdk/version/BUILD.bazel b/src/cdk/version/BUILD.bazel new file mode 100644 index 000000000000..b5448b3cf3b8 --- /dev/null +++ b/src/cdk/version/BUILD.bazel @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +load("//tools:defaults.bzl", "ts_library") + +ts_library( + name = "version", + srcs = glob( + ["**/*.ts"], + ), + module_name = "@angular/cdk/version", + deps = [ + "@npm//@angular/core", + ], +) + +filegroup( + name = "source-files", + srcs = glob(["**/*.ts"]), +) diff --git a/src/cdk/version/index.ts b/src/cdk/version/index.ts new file mode 100644 index 000000000000..676ca90f1ffa --- /dev/null +++ b/src/cdk/version/index.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './public-api'; diff --git a/src/cdk/version/public-api.ts b/src/cdk/version/public-api.ts new file mode 100644 index 000000000000..326c704b094c --- /dev/null +++ b/src/cdk/version/public-api.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './version'; diff --git a/src/cdk/version/tsconfig-build.json b/src/cdk/version/tsconfig-build.json new file mode 100644 index 000000000000..dc90854d44a0 --- /dev/null +++ b/src/cdk/version/tsconfig-build.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig-build", + "files": [ + "public-api.ts" + ], + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "strictMetadataEmit": true, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/cdk/version", + "skipTemplateCodegen": true, + "fullTemplateTypeCheck": true + } +} diff --git a/src/cdk/version/version.ts b/src/cdk/version/version.ts new file mode 100644 index 000000000000..fe791edbde7a --- /dev/null +++ b/src/cdk/version/version.ts @@ -0,0 +1,12 @@ +/** + * @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 {Version} from '@angular/core'; + +/** Current version of the Angular Component Development Kit. */ +export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/src/dev-app/system-config.ts b/src/dev-app/system-config.ts index dc4733844b21..e40eb5a221e0 100644 --- a/src/dev-app/system-config.ts +++ b/src/dev-app/system-config.ts @@ -92,11 +92,13 @@ System.config({ '@angular/cdk/table': 'dist/packages/cdk/table/index.js', '@angular/cdk/text-field': 'dist/packages/cdk/text-field/index.js', '@angular/cdk/tree': 'dist/packages/cdk/tree/index.js', + '@angular/cdk/version': 'dist/packages/cdk/version/index.js', '@angular/cdk-experimental/scrolling': 'dist/packages/cdk-experimental/scrolling/index.js', '@angular/cdk-experimental/dialog': 'dist/packages/cdk-experimental/dialog/index.js', '@angular/cdk-experimental/popover-edit': 'dist/packages/cdk-experimental/popover-edit/index.js', + '@angular/cdk-experimental/version': 'dist/packages/cdk-experimental/version/index.js', '@angular/material/autocomplete': 'dist/packages/material/autocomplete/index.js', '@angular/material/bottom-sheet': 'dist/packages/material/bottom-sheet/index.js', @@ -133,6 +135,7 @@ System.config({ '@angular/material/tooltip': 'dist/packages/material/tooltip/index.js', '@angular/material/badge': 'dist/packages/material/badge/index.js', '@angular/material/tree': 'dist/packages/material/tree/index.js', + '@angular/material/version': 'dist/packages/material/version/index.js', '@angular/material-experimental/mdc-button': 'dist/packages/material-experimental/mdc-button/index.js', @@ -154,6 +157,8 @@ System.config({ 'dist/packages/material-experimental/mdc-helpers/index.js', '@angular/material-experimental/popover-edit': 'dist/packages/material-experimental/popover-edit/index.js', + '@angular/material-experimental/version': + 'dist/packages/material-experimental/version/index.js', }, packages: { // Set the default extension for the root package, because otherwise the dev-app can't diff --git a/src/material-experimental/version.ts b/src/material-experimental/version.ts index 06a4542f36fa..2a689544f1d5 100644 --- a/src/material-experimental/version.ts +++ b/src/material-experimental/version.ts @@ -8,5 +8,9 @@ import {Version} from '@angular/core'; -/** Current version of the Material experimental package. */ +/** + * Current version of the Material experimental package. + * @deprecated @breaking-change 9.0.0 Import VERSION from @angular/material-experimental/version + * instead. + */ export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/src/material-experimental/version/BUILD.bazel b/src/material-experimental/version/BUILD.bazel new file mode 100644 index 000000000000..0a1fa88bbc19 --- /dev/null +++ b/src/material-experimental/version/BUILD.bazel @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +load("//tools:defaults.bzl", "ts_library") + +ts_library( + name = "version", + srcs = glob( + ["**/*.ts"], + ), + module_name = "@angular/material-experimental/version", + deps = [ + "@npm//@angular/core", + ], +) + +filegroup( + name = "source-files", + srcs = glob(["**/*.ts"]), +) diff --git a/src/material-experimental/version/index.ts b/src/material-experimental/version/index.ts new file mode 100644 index 000000000000..676ca90f1ffa --- /dev/null +++ b/src/material-experimental/version/index.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './public-api'; diff --git a/src/material-experimental/version/public-api.ts b/src/material-experimental/version/public-api.ts new file mode 100644 index 000000000000..326c704b094c --- /dev/null +++ b/src/material-experimental/version/public-api.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './version'; diff --git a/src/material-experimental/version/tsconfig-build.json b/src/material-experimental/version/tsconfig-build.json new file mode 100644 index 000000000000..0776030740aa --- /dev/null +++ b/src/material-experimental/version/tsconfig-build.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig-build", + "files": [ + "public-api.ts" + ], + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "strictMetadataEmit": true, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/material-experimental/version", + "skipTemplateCodegen": true, + "fullTemplateTypeCheck": true + } +} diff --git a/src/material-experimental/version/version.ts b/src/material-experimental/version/version.ts new file mode 100644 index 000000000000..06a4542f36fa --- /dev/null +++ b/src/material-experimental/version/version.ts @@ -0,0 +1,12 @@ +/** + * @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 {Version} from '@angular/core'; + +/** Current version of the Material experimental package. */ +export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/src/material/core/BUILD.bazel b/src/material/core/BUILD.bazel index 8679e09bd49e..787f57b90d46 100644 --- a/src/material/core/BUILD.bazel +++ b/src/material/core/BUILD.bazel @@ -25,12 +25,13 @@ ng_module( ] + glob(["**/*.html"]), module_name = "@angular/material/core", deps = [ - "//src/cdk", "//src/cdk/a11y", "//src/cdk/bidi", "//src/cdk/coercion", "//src/cdk/keycodes", "//src/cdk/platform", + "//src/cdk/version", + "//src/material/version", "@npm//@angular/animations", "@npm//@angular/common", "@npm//@angular/core", diff --git a/src/material/core/common-behaviors/common-module.ts b/src/material/core/common-behaviors/common-module.ts index b546dc011c9e..9a3d18d93f06 100644 --- a/src/material/core/common-behaviors/common-module.ts +++ b/src/material/core/common-behaviors/common-module.ts @@ -6,16 +6,11 @@ * found in the LICENSE file at https://angular.io/license */ -import {NgModule, InjectionToken, Optional, Inject, isDevMode, Version} from '@angular/core'; +import {NgModule, InjectionToken, Optional, Inject, isDevMode} from '@angular/core'; import {HammerLoader, HAMMER_LOADER} from '@angular/platform-browser'; import {BidiModule} from '@angular/cdk/bidi'; -import {VERSION as CDK_VERSION} from '@angular/cdk'; - -// Private version constant to circumvent test/build issues, -// i.e. avoid core to depend on the @angular/material primary entry-point -// Can be removed once the Material primary entry-point no longer -// re-exports all secondary entry-points -const VERSION = new Version('0.0.0-PLACEHOLDER'); +import {VERSION as CDK_VERSION} from '@angular/cdk/version'; +import {VERSION as MAT_VERSION} from '@angular/material/version'; /** Injection token that configures whether the Material sanity checks are enabled. */ @@ -114,9 +109,9 @@ export class MatCommonModule { /** Checks whether the material version matches the cdk version */ private _checkCdkVersionMatch(): void { - if (VERSION.full !== CDK_VERSION.full) { + if (MAT_VERSION.full !== CDK_VERSION.full) { console.warn( - 'The Angular Material version (' + VERSION.full + ') does not match ' + + 'The Angular Material version (' + MAT_VERSION.full + ') does not match ' + 'the Angular CDK version (' + CDK_VERSION.full + ').\n' + 'Please ensure the versions of these two packages exactly match.' ); diff --git a/src/material/core/version.ts b/src/material/core/version.ts index e983426f6702..2719b60960f6 100644 --- a/src/material/core/version.ts +++ b/src/material/core/version.ts @@ -6,7 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import {Version} from '@angular/core'; - -/** Current version of Angular Material. */ -export const VERSION = new Version('0.0.0-PLACEHOLDER'); +/** + * Current version of Angular Material. + * @deprecated @breaking-change 9.0.0 Import VERSION from @angular/material/version instead. + */ +export {VERSION} from '@angular/material/version'; diff --git a/src/material/version/BUILD.bazel b/src/material/version/BUILD.bazel new file mode 100644 index 000000000000..cd3e666bb9d2 --- /dev/null +++ b/src/material/version/BUILD.bazel @@ -0,0 +1,19 @@ +package(default_visibility = ["//visibility:public"]) + +load("//tools:defaults.bzl", "ts_library") + +ts_library( + name = "version", + srcs = glob( + ["**/*.ts"], + ), + module_name = "@angular/material/version", + deps = [ + "@npm//@angular/core", + ], +) + +filegroup( + name = "source-files", + srcs = glob(["**/*.ts"]), +) diff --git a/src/material/version/index.ts b/src/material/version/index.ts new file mode 100644 index 000000000000..676ca90f1ffa --- /dev/null +++ b/src/material/version/index.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './public-api'; diff --git a/src/material/version/public-api.ts b/src/material/version/public-api.ts new file mode 100644 index 000000000000..326c704b094c --- /dev/null +++ b/src/material/version/public-api.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './version'; diff --git a/src/material/version/tsconfig-build.json b/src/material/version/tsconfig-build.json new file mode 100644 index 000000000000..0855c74ccd81 --- /dev/null +++ b/src/material/version/tsconfig-build.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig-build", + "files": [ + "public-api.ts" + ], + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "strictMetadataEmit": true, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/material/version", + "skipTemplateCodegen": true, + "fullTemplateTypeCheck": true + } +} diff --git a/src/material/version/version.ts b/src/material/version/version.ts new file mode 100644 index 000000000000..e983426f6702 --- /dev/null +++ b/src/material/version/version.ts @@ -0,0 +1,12 @@ +/** + * @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 {Version} from '@angular/core'; + +/** Current version of Angular Material. */ +export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/test/karma-system-config.js b/test/karma-system-config.js index 3239888d0545..b3915dc06538 100644 --- a/test/karma-system-config.js +++ b/test/karma-system-config.js @@ -88,11 +88,13 @@ System.config({ '@angular/cdk/testing': 'dist/packages/cdk/testing/index.js', '@angular/cdk/text-field': 'dist/packages/cdk/text-field/index.js', '@angular/cdk/tree': 'dist/packages/cdk/tree/index.js', + '@angular/cdk/version': 'dist/packages/cdk/version/index.js', '@angular/cdk-experimental/dialog': 'dist/packages/cdk-experimental/dialog/index.js', '@angular/cdk-experimental/popover-edit': 'dist/packages/cdk-experimental/popover-edit/index.js', '@angular/cdk-experimental/scrolling': 'dist/packages/cdk-experimental/scrolling/index.js', '@angular/cdk-experimental/testing': 'dist/packages/cdk-experimental/testing/index.js', + '@angular/cdk-experimental/version': 'dist/packages/cdk-experimental/version/index.js', '@angular/material/autocomplete': 'dist/packages/material/autocomplete/index.js', '@angular/material/badge': 'dist/packages/material/badge/index.js', @@ -130,6 +132,7 @@ System.config({ '@angular/material/toolbar': 'dist/packages/material/toolbar/index.js', '@angular/material/tooltip': 'dist/packages/material/tooltip/index.js', '@angular/material/tree': 'dist/packages/material/tree/index.js', + '@angular/material/version': 'dist/packages/material/version/index.js', '@angular/material-experimental/mdc-button': 'dist/packages/material-experimental/mdc-button/index.js', @@ -151,6 +154,8 @@ System.config({ 'dist/packages/material-experimental/mdc-tabs/index.js', '@angular/material-experimental/popover-edit': 'dist/packages/material-experimental/popover-edit/index.js', + '@angular/material-experimental/version': + 'dist/packages/material-experimental/version/index.js', }, packages: { // Thirdparty barrels. diff --git a/tools/public_api_guard/cdk-experimental/version.d.ts b/tools/public_api_guard/cdk-experimental/version.d.ts new file mode 100644 index 000000000000..6e154bba2805 --- /dev/null +++ b/tools/public_api_guard/cdk-experimental/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION: Version; diff --git a/tools/public_api_guard/cdk/version.d.ts b/tools/public_api_guard/cdk/version.d.ts new file mode 100644 index 000000000000..6e154bba2805 --- /dev/null +++ b/tools/public_api_guard/cdk/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION: Version; diff --git a/tools/public_api_guard/material-experimental/version.d.ts b/tools/public_api_guard/material-experimental/version.d.ts new file mode 100644 index 000000000000..6e154bba2805 --- /dev/null +++ b/tools/public_api_guard/material-experimental/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION: Version; diff --git a/tools/public_api_guard/material/core.d.ts b/tools/public_api_guard/material/core.d.ts index 120a3f6aaf19..d1eb912960cd 100644 --- a/tools/public_api_guard/material/core.d.ts +++ b/tools/public_api_guard/material/core.d.ts @@ -421,5 +421,3 @@ export declare class ShowOnDirtyErrorStateMatcher implements ErrorStateMatcher { } export declare type ThemePalette = 'primary' | 'accent' | 'warn' | undefined; - -export declare const VERSION: Version; diff --git a/tools/public_api_guard/material/version.d.ts b/tools/public_api_guard/material/version.d.ts new file mode 100644 index 000000000000..6e154bba2805 --- /dev/null +++ b/tools/public_api_guard/material/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION: Version;