From 1121d53af762ce725c10af8e40eeaf5d8c8062ef Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Tue, 19 Dec 2017 16:45:54 -0800 Subject: [PATCH] chore: create cdk-experimental package (#9059) --- .github/CODEOWNERS | 3 ++ src/cdk-experimental/index.ts | 9 +++++ src/cdk-experimental/package.json | 25 ++++++++++++ src/cdk-experimental/public-api.ts | 9 +++++ src/cdk-experimental/tsconfig-build.json | 40 +++++++++++++++++++ src/cdk-experimental/tsconfig-tests.json | 21 ++++++++++ src/cdk-experimental/tsconfig.json | 15 +++++++ src/cdk-experimental/typings.d.ts | 1 + src/cdk-experimental/version.ts | 12 ++++++ src/demo-app/system-config.ts | 2 + src/demo-app/tsconfig-aot.json | 2 + src/demo-app/tsconfig-build.json | 2 + src/demo-app/tsconfig.json | 2 + src/e2e-app/system-config.ts | 2 + src/e2e-app/tsconfig.json | 2 + src/material-experimental/tsconfig-build.json | 4 +- src/material-experimental/tsconfig.json | 4 +- test/karma-test-shim.js | 2 + tools/gulp/gulpfile.ts | 6 ++- tools/gulp/packages.ts | 3 +- tools/gulp/tasks/aot.ts | 1 + tools/gulp/tasks/development.ts | 16 ++++++-- tools/gulp/tasks/e2e.ts | 2 + tools/gulp/tasks/publish.ts | 1 + tools/gulp/tasks/unit-test.ts | 1 + tslint.json | 8 ++-- 26 files changed, 183 insertions(+), 12 deletions(-) create mode 100644 src/cdk-experimental/index.ts create mode 100644 src/cdk-experimental/package.json create mode 100644 src/cdk-experimental/public-api.ts create mode 100644 src/cdk-experimental/tsconfig-build.json create mode 100644 src/cdk-experimental/tsconfig-tests.json create mode 100644 src/cdk-experimental/tsconfig.json create mode 100644 src/cdk-experimental/typings.d.ts create mode 100644 src/cdk-experimental/version.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d104fce5889..a8117b64b74 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -76,6 +76,9 @@ /src/material-experimental/** @jelbourn /src/material-experimental/dialog/** @jelbourn @josephperrott @crisbeto +# CDK experimental package +/src/cdk-experimental/** @jelbourn + # Docs examples & guides /guides/** @amcdnl @jelbourn /src/material-examples/** @amcdnl @jelbourn diff --git a/src/cdk-experimental/index.ts b/src/cdk-experimental/index.ts new file mode 100644 index 00000000000..676ca90f1ff --- /dev/null +++ b/src/cdk-experimental/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/package.json b/src/cdk-experimental/package.json new file mode 100644 index 00000000000..4a4a2607869 --- /dev/null +++ b/src/cdk-experimental/package.json @@ -0,0 +1,25 @@ +{ + "name": "@angular/cdk-experimental", + "version": "0.0.0-PLACEHOLDER", + "description": "Experimental components for Angular CDK", + "main": "./bundles/cdk-experimental.umd.js", + "module": "./esm5/cdk-experimental.es5.js", + "es2015": "./esm2015/cdk-experimental.js", + "typings": "./cdk-experimental.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/angular/material2.git" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/material2/issues" + }, + "homepage": "https://github.com/angular/material2#readme", + "peerDependencies": { + "@angular/material": "0.0.0-PLACEHOLDER", + "@angular/core": "0.0.0-NG" + }, + "dependencies": { + "tslib": "^1.7.1" + } +} diff --git a/src/cdk-experimental/public-api.ts b/src/cdk-experimental/public-api.ts new file mode 100644 index 00000000000..326c704b094 --- /dev/null +++ b/src/cdk-experimental/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/tsconfig-build.json b/src/cdk-experimental/tsconfig-build.json new file mode 100644 index 00000000000..9315bcd7d5c --- /dev/null +++ b/src/cdk-experimental/tsconfig-build.json @@ -0,0 +1,40 @@ +// TypeScript config file that is used to compile the experimental package into ES2015. +{ + "compilerOptions": { + "baseUrl": ".", + "declaration": true, + "stripInternal": false, + "experimentalDecorators": true, + "noUnusedParameters": true, + "strictNullChecks": true, + "importHelpers": true, + "newLine": "lf", + "module": "es2015", + "moduleResolution": "node", + "outDir": "../../dist/packages/cdk-experimental", + "rootDir": ".", + "sourceMap": true, + "inlineSources": true, + "target": "es2015", + "lib": ["es2015", "dom"], + "skipLibCheck": true, + "types": [], + "paths": { + "@angular/material/*": ["../../dist/packages/material/*"], + "@angular/material": ["../../dist/packages/material/public-api"], + "@angular/cdk/*": ["../../dist/packages/cdk/*"], + "@angular/cdk": ["../../dist/packages/cdk"] + } + }, + "files": [ + "public-api.ts", + "typings.d.ts" + ], + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "strictMetadataEmit": true, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/cdk-experimental", + "skipTemplateCodegen": true + } +} diff --git a/src/cdk-experimental/tsconfig-tests.json b/src/cdk-experimental/tsconfig-tests.json new file mode 100644 index 00000000000..dfd4fb7afce --- /dev/null +++ b/src/cdk-experimental/tsconfig-tests.json @@ -0,0 +1,21 @@ +// TypeScript config file that extends the default build tsconfig file. This config is used to +// also compile the unit-test files. Since the code will run inside of the browser, the target is +// set to ES5. Also the format needs to be CommonJS for Karma. +{ + "extends": "./tsconfig-build", + "compilerOptions": { + "importHelpers": false, + "module": "commonjs", + "target": "es5", + "types": ["jasmine"] + }, + "angularCompilerOptions": { + "strictMetadataEmit": true, + "skipTemplateCodegen": true, + "emitDecoratorMetadata": true + }, + "include": [ + "**/*.spec.ts", + "index.ts" + ] +} diff --git a/src/cdk-experimental/tsconfig.json b/src/cdk-experimental/tsconfig.json new file mode 100644 index 00000000000..7e813547746 --- /dev/null +++ b/src/cdk-experimental/tsconfig.json @@ -0,0 +1,15 @@ +// Configuration for IDEs only. +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "rootDir": "..", + "baseUrl": ".", + "paths": { + "@angular/cdk/*": ["../cdk/*"], + "@angular/cdk": ["../cdk"], + "@angular/material/*": ["../lib/*"], + "@angular/material": ["../lib/public-api.ts"] + } + }, + "include": ["./**/*.ts"] +} diff --git a/src/cdk-experimental/typings.d.ts b/src/cdk-experimental/typings.d.ts new file mode 100644 index 00000000000..ce4ae9b66cf --- /dev/null +++ b/src/cdk-experimental/typings.d.ts @@ -0,0 +1 @@ +declare var module: {id: string}; diff --git a/src/cdk-experimental/version.ts b/src/cdk-experimental/version.ts new file mode 100644 index 00000000000..a892eb481e7 --- /dev/null +++ b/src/cdk-experimental/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 CDK Experimental package. */ +export const VERSION = new Version('0.0.0-PLACEHOLDER'); diff --git a/src/demo-app/system-config.ts b/src/demo-app/system-config.ts index a7d719fb66b..5d1b09b57a7 100644 --- a/src/demo-app/system-config.ts +++ b/src/demo-app/system-config.ts @@ -41,6 +41,8 @@ System.config({ '@angular/material-experimental': 'dist/packages/material-experimental/index.js', '@angular/material-moment-adapter': 'dist/packages/material-moment-adapter/index.js', '@angular/cdk': 'dist/packages/cdk/index.js', + '@angular/cdk-experimental': 'dist/packages/cdk-experimental/index.js', + '@angular/cdk/a11y': 'dist/packages/cdk/a11y/index.js', '@angular/cdk/accordion': 'dist/packages/cdk/accordion/index.js', '@angular/cdk/bidi': 'dist/packages/cdk/bidi/index.js', diff --git a/src/demo-app/tsconfig-aot.json b/src/demo-app/tsconfig-aot.json index cc296c8e071..2699042b0c4 100644 --- a/src/demo-app/tsconfig-aot.json +++ b/src/demo-app/tsconfig-aot.json @@ -20,6 +20,8 @@ "@angular/cdk": ["../../dist/releases/cdk"], "@angular/material-experimental/*": ["../../dist/releases/material-experimental/*"], "@angular/material-experimental": ["../../dist/releases/material-experimental"], + "@angular/cdk-experimental/*": ["../../dist/releases/cdk-experimental/*"], + "@angular/cdk-experimental": ["../../dist/releases/cdk-experimental"], "@angular/material-moment-adapter": ["../../dist/releases/material-moment-adapter"] } }, diff --git a/src/demo-app/tsconfig-build.json b/src/demo-app/tsconfig-build.json index 4b169482b0a..970698b31d8 100644 --- a/src/demo-app/tsconfig-build.json +++ b/src/demo-app/tsconfig-build.json @@ -30,6 +30,8 @@ "@angular/cdk": ["../../dist/packages/cdk"], "@angular/material-experimental/*": ["../../dist/packages/material-experimental/*"], "@angular/material-experimental": ["../../dist/packages/material-experimental"], + "@angular/cdk-experimental/*": ["../../dist/packages/cdk-experimental/*"], + "@angular/cdk-experimental": ["../../dist/packages/cdk-experimental"], "@angular/material-moment-adapter": ["../../dist/packages/material-moment-adapter"] } }, diff --git a/src/demo-app/tsconfig.json b/src/demo-app/tsconfig.json index bf3f8171191..743af61b539 100644 --- a/src/demo-app/tsconfig.json +++ b/src/demo-app/tsconfig.json @@ -12,6 +12,8 @@ "@angular/material": ["../lib/public-api.ts"], "@angular/material-experimental/*": ["../material-experimental/*"], "@angular/material-experimental": ["../material-experimental"], + "@angular/cdk-experimental/*": ["../cdk-experimental/*"], + "@angular/cdk-experimental": ["../cdk-experimental"], "@angular/material-moment-adapter": ["../material-moment-adapter/public-api.ts"] } }, diff --git a/src/e2e-app/system-config.ts b/src/e2e-app/system-config.ts index a75b5518ea5..003fb31696b 100644 --- a/src/e2e-app/system-config.ts +++ b/src/e2e-app/system-config.ts @@ -31,6 +31,8 @@ System.config({ '@angular/material-experimental': 'dist/bundles/material-experimental.umd.js', '@angular/material-moment-adapter': 'dist/bundles/material-moment-adapter.umd.js', '@angular/cdk': 'dist/bundles/cdk.umd.js', + '@angular/cdk-experimental': 'dist/bundles/cdk-experimental.umd.js', + '@angular/cdk/a11y': 'dist/bundles/cdk-a11y.umd.js', '@angular/cdk/accordion': 'dist/bundles/cdk-accordion.umd.js', '@angular/cdk/bidi': 'dist/bundles/cdk-bidi.umd.js', diff --git a/src/e2e-app/tsconfig.json b/src/e2e-app/tsconfig.json index 8e0b412887c..4fd572d6eb5 100644 --- a/src/e2e-app/tsconfig.json +++ b/src/e2e-app/tsconfig.json @@ -10,6 +10,8 @@ "@angular/material": ["../lib/public-api.ts"], "@angular/material-experimental/*": ["../material-experimental/*"], "@angular/material-experimental": ["../material-experimental/"], + "@angular/cdk-experimental/*": ["../cdk-experimental/*"], + "@angular/cdk-experimental": ["../cdk-experimental/"], "@angular/material-moment-adapter": ["../material-moment-adapter/"], "@angular/material-examples": ["../material-examples/"] } diff --git a/src/material-experimental/tsconfig-build.json b/src/material-experimental/tsconfig-build.json index 83102880b96..ee616611456 100644 --- a/src/material-experimental/tsconfig-build.json +++ b/src/material-experimental/tsconfig-build.json @@ -23,7 +23,9 @@ "@angular/material/*": ["../../dist/packages/material/*"], "@angular/material": ["../../dist/packages/material/public-api"], "@angular/cdk/*": ["../../dist/packages/cdk/*"], - "@angular/cdk": ["../../dist/packages/cdk"] + "@angular/cdk": ["../../dist/packages/cdk"], + "@angular/cdk-experimental/*": ["../../dist/packages/cdk-experimental/*"], + "@angular/cdk-experimental": ["../../dist/packages/cdk-experimental"] } }, "files": [ diff --git a/src/material-experimental/tsconfig.json b/src/material-experimental/tsconfig.json index 7e813547746..3a8e8306acb 100644 --- a/src/material-experimental/tsconfig.json +++ b/src/material-experimental/tsconfig.json @@ -8,7 +8,9 @@ "@angular/cdk/*": ["../cdk/*"], "@angular/cdk": ["../cdk"], "@angular/material/*": ["../lib/*"], - "@angular/material": ["../lib/public-api.ts"] + "@angular/material": ["../lib/public-api.ts"], + "@angular/cdk-experimental/*": ["../cdk-experimental/*"], + "@angular/cdk-experimental": ["../cdk-experimental/public-api.ts"] } }, "include": ["./**/*.ts"] diff --git a/test/karma-test-shim.js b/test/karma-test-shim.js index a89cd45ccbc..6eafa15ec1a 100644 --- a/test/karma-test-shim.js +++ b/test/karma-test-shim.js @@ -51,6 +51,8 @@ System.config({ // TODO(devversion): replace once the index.ts file for the Material package has been added. '@angular/material': 'dist/packages/material/public-api.js', '@angular/material-experimental': 'dist/packages/material-experimental/index.js', + '@angular/cdk-experimental': 'dist/packages/cdk-experimental/index.js', + '@angular/cdk': 'dist/packages/cdk/index.js', '@angular/cdk/a11y': 'dist/packages/cdk/a11y/index.js', '@angular/cdk/accordion': 'dist/packages/cdk/accordion/index.js', diff --git a/tools/gulp/gulpfile.ts b/tools/gulp/gulpfile.ts index 27b93982e38..95fd1fe355f 100644 --- a/tools/gulp/gulpfile.ts +++ b/tools/gulp/gulpfile.ts @@ -1,15 +1,17 @@ import {createPackageBuildTasks} from 'material2-build-tools'; import { cdkPackage, + cdkExperimentalPackage, examplesPackage, - experimentalPackage, + materialExperimentalPackage, materialPackage, momentAdapterPackage } from './packages'; createPackageBuildTasks(cdkPackage); +createPackageBuildTasks(cdkExperimentalPackage); createPackageBuildTasks(materialPackage); -createPackageBuildTasks(experimentalPackage); +createPackageBuildTasks(materialExperimentalPackage); createPackageBuildTasks(examplesPackage); createPackageBuildTasks(momentAdapterPackage); diff --git a/tools/gulp/packages.ts b/tools/gulp/packages.ts index bc07baebdbc..cc7260b9347 100644 --- a/tools/gulp/packages.ts +++ b/tools/gulp/packages.ts @@ -3,7 +3,8 @@ import {join} from 'path'; export const cdkPackage = new BuildPackage('cdk'); export const materialPackage = new BuildPackage('material', [cdkPackage]); -export const experimentalPackage = new BuildPackage('material-experimental', [materialPackage]); +export const cdkExperimentalPackage = new BuildPackage('cdk-experimental', [materialPackage]); +export const materialExperimentalPackage = new BuildPackage('material-experimental', [cdkPackage]); export const momentAdapterPackage = new BuildPackage('material-moment-adapter', [materialPackage]); export const examplesPackage = new BuildPackage('material-examples', [momentAdapterPackage]); diff --git a/tools/gulp/tasks/aot.ts b/tools/gulp/tasks/aot.ts index eaa02813616..248491c1d27 100644 --- a/tools/gulp/tasks/aot.ts +++ b/tools/gulp/tasks/aot.ts @@ -16,6 +16,7 @@ task('aot:deps', sequenceTask( [ 'cdk:build-release', 'material:build-release', + 'cdk-experimental:build-release', 'material-experimental:build-release', 'material-moment-adapter:build-release' ], diff --git a/tools/gulp/tasks/development.ts b/tools/gulp/tasks/development.ts index bdf310785f8..c2045c4e4e5 100644 --- a/tools/gulp/tasks/development.ts +++ b/tools/gulp/tasks/development.ts @@ -4,7 +4,13 @@ import {join} from 'path'; import { buildConfig, copyFiles, buildScssTask, sequenceTask, watchFiles } from 'material2-build-tools'; -import {cdkPackage, experimentalPackage, materialPackage, momentAdapterPackage} from '../packages'; +import { + cdkPackage, + materialExperimentalPackage, + cdkExperimentalPackage, + materialPackage, + momentAdapterPackage +} from '../packages'; // These imports don't have any typings provided. const firebaseTools = require('firebase-tools'); @@ -48,8 +54,10 @@ task(':watch:devapp', () => { watchFiles(join(materialPackage.sourceDir, '**/*.scss'), [':build:devapp:material-with-styles']); watchFiles(join(momentAdapterPackage.sourceDir, '**/*'), ['material-moment-adapter:build-no-bundles']); - watchFiles(join(experimentalPackage.sourceDir, '**/*'), + watchFiles(join(materialExperimentalPackage.sourceDir, '**/*'), ['material-experimental:build-no-bundles']); + watchFiles(join(cdkExperimentalPackage.sourceDir, '**/*'), + ['cdk-experimental:build-no-bundles']); }); /** Path to the demo-app tsconfig file. */ @@ -83,8 +91,10 @@ task('stage-deploy:devapp', ['build:devapp'], () => { copyFiles(bundlesDir, '*.+(js|map)', join(outDir, 'dist/bundles')); copyFiles(cdkPackage.outputDir, '**/*.+(js|map)', join(outDir, 'dist/packages/cdk')); copyFiles(materialPackage.outputDir, '**/*.+(js|map)', join(outDir, 'dist/packages/material')); - copyFiles(experimentalPackage.outputDir, '**/*.+(js|map)', + copyFiles(materialExperimentalPackage.outputDir, '**/*.+(js|map)', join(outDir, 'dist/packages/material-experimental')); + copyFiles(cdkExperimentalPackage.outputDir, '**/*.+(js|map)', + join(outDir, 'dist/packages/cdk-experimental')); copyFiles(materialPackage.outputDir, '**/prebuilt/*.+(css|map)', join(outDir, 'dist/packages/material')); }); diff --git a/tools/gulp/tasks/e2e.ts b/tools/gulp/tasks/e2e.ts index c56765a007a..e49b2ed29ba 100644 --- a/tools/gulp/tasks/e2e.ts +++ b/tools/gulp/tasks/e2e.ts @@ -37,6 +37,7 @@ task('e2e-app:build', sequenceTask( [ 'cdk:build-release', 'material:build-release', + 'cdk-experimental:build-release', 'material-experimental:build-release', 'material-moment-adapter:build-release', 'material-examples:build-release' @@ -82,6 +83,7 @@ task('serve:e2eapp:watch', ['serve:e2eapp', 'material:watch', ':watch:e2eapp']); task('e2e-app:copy-release', () => { copySync(join(releasesDir, 'cdk'), join(outDir, 'cdk')); copySync(join(releasesDir, 'material'), join(outDir, 'material')); + copySync(join(releasesDir, 'cdk-experimental'), join(outDir, 'cdk-experimental')); copySync(join(releasesDir, 'material-experimental'), join(outDir, 'material-experimental')); copySync(join(releasesDir, 'material-examples'), join(outDir, 'material-examples')); copySync(join(releasesDir, 'material-moment-adapter'), join(outDir, 'material-moment-adapter')); diff --git a/tools/gulp/tasks/publish.ts b/tools/gulp/tasks/publish.ts index 6e418c0ebc7..a4905cc7f77 100644 --- a/tools/gulp/tasks/publish.ts +++ b/tools/gulp/tasks/publish.ts @@ -10,6 +10,7 @@ import * as minimist from 'minimist'; /** Packages that will be published to NPM by the release task. */ export const releasePackages = [ 'cdk', + 'cdk-experimental', 'material', 'material-experimental', 'material-moment-adapter' diff --git a/tools/gulp/tasks/unit-test.ts b/tools/gulp/tasks/unit-test.ts index 3aa96487e2e..198f88092db 100644 --- a/tools/gulp/tasks/unit-test.ts +++ b/tools/gulp/tasks/unit-test.ts @@ -16,6 +16,7 @@ const defaultOptions = { task(':test:build', sequenceTask( 'clean', 'cdk:build-no-bundles', + 'cdk-experimental:build-no-bundles', 'material:build-no-bundles', 'material-experimental:build-no-bundles', 'material-moment-adapter:build-no-bundles' diff --git a/tslint.json b/tslint.json index 12fa6cd3a18..944c5ad7226 100644 --- a/tslint.json +++ b/tslint.json @@ -99,19 +99,19 @@ "changeDetection": "\\.OnPush$", "!styles": ".*" } - }, "src/+(lib|cdk|material-experimental)/**/!(*.spec).ts"], + }, "src/+(lib|cdk|material-experimental|cdk-experimental)/**/!(*.spec).ts"], "require-license-banner": [ true, - "src/+(lib|cdk|material-experimental|demo-app)/**/!(*.spec).ts" + "src/+(lib|cdk|material-experimental|cdk-experimental|demo-app)/**/!(*.spec).ts" ], "no-rxjs-patch-imports": [ true, - "src/+(lib|cdk|material-experimental)/**/*.ts" + "src/+(lib|cdk|material-experimental|cdk-experimental)/**/*.ts" ], "missing-rollup-globals": [ true, "./tools/package-tools/rollup-globals.ts", - "src/+(lib|cdk|material-examples|material-experimental)/**/*.ts" + "src/+(lib|cdk|material-examples|material-experimental|cdk-experimental)/**/*.ts" ] } }