diff --git a/.circleci/config.yml b/.circleci/config.yml index adc58e6f77cf..a1f2361f654c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -87,6 +87,7 @@ var_12: &ignore_presubmit_branch_filter branches: ignore: - "_presubmit" + - "ivy-2019" # ----------------------------- # Container version of CircleCI @@ -348,7 +349,8 @@ workflows: release_output: jobs: - - build_release_packages + - build_release_packages: + filters: *ignore_presubmit_branch_filter - build_devapp_aot: filters: *ignore_presubmit_branch_filter requires: diff --git a/.gitignore b/.gitignore index 85f4a9059549..75e800a17e5e 100644 --- a/.gitignore +++ b/.gitignore @@ -40,4 +40,4 @@ yarn-error.log testem.log /.chrome /.git -/.firebase \ No newline at end of file +/.firebase diff --git a/package.json b/package.json index 5405e93fcb23..304b29efc2bc 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "systemjs": "0.19.43", "tsickle": "^0.34.0", "tslib": "^1.9.3", - "zone.js": "^0.8.26" + "zone.js": "^0.8.29" }, "devDependencies": { "@angular-devkit/core": "^7.1.2", @@ -55,6 +55,7 @@ "@angular/platform-browser-dynamic": "^7.1.3", "@angular/platform-server": "^7.1.3", "@angular/router": "^7.1.3", + "@bazel/bazel": "~0.21.0", "@bazel/ibazel": "^0.9.0", "@bazel/karma": "0.22.0", "@bazel/typescript": "0.22.0", @@ -111,7 +112,8 @@ "karma-browserstack-launcher": "^1.3.0", "karma-chrome-launcher": "^2.2.0", "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^2.0.1", + "karma-jasmine": "github:jelbourn/karma-jasmine", + "karma-json-result-reporter": "^1.0.0", "karma-parallel": "^0.3.0", "karma-sauce-launcher": "^2.0.2", "karma-sourcemap-loader": "^0.3.7", @@ -134,7 +136,8 @@ "selenium-webdriver": "^3.6.0", "sorcery": "^0.10.0", "source-map-support": "^0.5.9", - "stylelint": "^9.9.0", + "stylelint": "^8.4.0", + "systemjs-builder": "^0.16.13", "ts-node": "^3.0.4", "tsconfig-paths": "^2.3.0", "tslint": "^5.12.0", diff --git a/scripts/ivy/README.md b/scripts/ivy/README.md new file mode 100644 index 000000000000..50955800d0b3 --- /dev/null +++ b/scripts/ivy/README.md @@ -0,0 +1,39 @@ +# Experimental Ivy Scripts + +These scripts exist for the testing of Ivy in the Material repo, pre-launch. This is uncharted +territory, so building Material this way may or may not work, and depending on the output is +non-trivial. + +## Usage + +For the first execution, a version of Angular must be built with `ngtsc`. To do this, a current +Angular repo is passed to `install-angular.sh`. + +```bash +$ ./scripts/ivy/install-angular.sh /path/to/angular +``` + +This will replace `node_modules/@angular` with `ngtsc`-built versions of Angular packages. + +Once that step is complete, the demo application can be built. + +```bash +# Build the demo-app with Ivy +$ ./scripts/ivy/build.sh +# And serve it +$ cd dist/demo && http-server +``` + +## Known issues +* Much of the compilation will fail without commits in the Angular repo not yet in `master`. +* Ivy does not support the `ViewContainerRef.createComponent()` API yet, so the demo-app is unable to get past starting the Angular Router. + +## Maintaining tsconfig files + +The `ivy` branch has a lot of updated tsconfig files. These were mutated via script, which can +be re-run if needed + +```bash +# Update tsconfigs +./scripts/ivy/update-tsconfigs.sh +``` diff --git a/scripts/ivy/build.sh b/scripts/ivy/build.sh new file mode 100755 index 000000000000..06eacbfa2d82 --- /dev/null +++ b/scripts/ivy/build.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +echo ">>> Build Material" +rm -rf dist +gulp build:devapp + +echo ">>> Rebuild dev-app with ngtsc" +node_modules/.bin/ngc -p src/dev-app/tsconfig-build.json + +echo ">>> Bundle demo-app with SystemJS" +node ./src/dev-app/systemjs-bundle.js + +echo ">>> Assembling app" +mkdir dist/demo +cp dist/packages/dev-app/bundle.js dist/demo +cp src/dev-app/index.html dist/demo +cp dist/packages/dev-app/theme.css dist/demo +cp 'node_modules/@webcomponents/custom-elements/custom-elements.min.js' dist/demo +cp node_modules/core-js/client/core.js dist/demo +cp node_modules/systemjs/dist/system.src.js dist/demo +cp node_modules/zone.js/dist/zone.js dist/demo +cp node_modules/hammerjs/hammer.min.js dist/demo + +echo ">>> Done." +echo "Output: $(pwd)/dist/demo" \ No newline at end of file diff --git a/scripts/ivy/fix-tsconfig.js b/scripts/ivy/fix-tsconfig.js new file mode 100755 index 000000000000..876491ee4958 --- /dev/null +++ b/scripts/ivy/fix-tsconfig.js @@ -0,0 +1,59 @@ +#!/usr/bin/env node + +/** + * @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 + */ + +/* + * This script updates a tsconfig-build.json file for Ivy compilation. It has 3 main goals: + * + * 1. Change "public-api.ts" to "index.ts" in the files array. + * 2. Add "enableIvy": "ngtsc" to "angularCompilerOptions". + * 3. Turn "annotateForClosureCompiler" off (so decorators will tree-shake properly). + */ + +const fs = require('fs'); + +function replacePublicApiTs(file) { + if (file === 'public-api.ts') { + return 'index.ts'; + } else { + return file; + } +} + + +// Read in the tsconfig json file. +let source = fs.readFileSync(process.argv[2], 'utf8') + .split(/\n/) + .filter(line => !line.trim().startsWith('/') && !line.trim().startsWith('*')) + .join('\n') + .replace(/,(\s+)]/g, '$1]') + .replace(/,(\s+)}/g, '$1}'); + +let json = null; +try { + json = JSON.parse(source); +} catch (e) { + console.error(`Error parsing tsconfig ${process.argv[2]}:`); + console.error(source); + console.error(`Error was:`, e); + process.exit(1); +} + +if (json['files'] && Array.isArray(json['files'])) { + json['files'] = json['files'].map(replacePublicApiTs); +} + +if (json['angularCompilerOptions']) { + if (json['angularCompilerOptions']['annotateForClosureCompiler']) { + delete json['angularCompilerOptions']['annotateForClosureCompiler'] + } + json['angularCompilerOptions']['enableIvy'] = 'ngtsc'; +} + +fs.writeFileSync(process.argv[2], JSON.stringify(json, null, 2)); diff --git a/scripts/ivy/generate-blocklist.js b/scripts/ivy/generate-blocklist.js new file mode 100755 index 000000000000..f162b2c8de57 --- /dev/null +++ b/scripts/ivy/generate-blocklist.js @@ -0,0 +1,98 @@ +#!/usr/bin/env node + +const path = require('path'); +const fs = require('fs'); + +const karmaOutput = JSON.parse(fs.readFileSync('/tmp/karma-result.json')); + + +let generatedBlocklist = {}; +for (const desc of Object.keys(karmaOutput)) { + // If karma encounters global errors, it adds them to an array keyed __BROWSER_ERRORS__. + // We ignore this since it's not associated with any particular test. It generally shouldn't + // happen at all because we're using a forked version of karma-jasmine that does not report + // global errors per-suite. + if (desc === '__BROWSER_ERRORS__') { + continue; + } + + generatedBlocklist = {...generatedBlocklist, ...getFullFailure(karmaOutput[desc], desc)}; +} + +// We want to "remember" the notes from the current blocklist on angular/angular unless the +// error message has changed. We need to know where the local angular/angular repo is. +const angularRepoPath = process.argv[2]; +if (!angularRepoPath) { + console.error('Please provide the path to your local angular/angular repo as the first argument'); + process.exit(1); +} + +// Read the contents of the previous blocklist. +const previousBlocklistPath = + path.join(angularRepoPath, 'tools', 'material-ci', 'angular_material_test_blocklist.js'); +const previousBlocklistContent = fs.readFileSync(previousBlocklistPath, 'utf-8'); + +// Because the blocklist is a javascript file meant to be executed, we just actually execute it with +// eval. Create a dummy `window` for it to add to. +const window = {}; +eval(previousBlocklistContent); +const previousBlocklist = window.testBlocklist; + +// Copy any existing test notes. +for (const testName of Object.keys(generatedBlocklist)) { + if (previousBlocklist[testName] && + generatedBlocklist[testName].error === previousBlocklist[testName].error) { + generatedBlocklist[testName].notes = previousBlocklist[testName].notes; + } +} + +// Format the output as an executable javascript program. +const output = +`/** + * @license + * Copyright Google Inc. 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 + */ + +/** + * Blocklist of unit tests from angular/material2 with ivy that are skipped when running on + * angular/angular. As bugs are resolved, items should be removed from this blocklist. + * + * The \`notes\` section should be used to keep track of specific issues associated with the failures. + */ + +// clang-format off +// tslint:disable + +window.testBlocklist = ${JSON.stringify(generatedBlocklist, null, 2)}; +// clang-format on`; + +// Write that sucker to dist. +fs.writeFileSync('dist/angular_material_test_blocklist.js', output, 'utf-8'); + + +/** + * Given a karma test result, get a blocklist entry in the form + * {[full test name]: {error: '...', notes: '...'}} + */ +function getFullFailure(result, fullName = '') { + if (result['log']) { + if (result['log'].length) { + return {[fullName]: { + error: result['log'][0].split('\n')[0], + notes: 'Unknown', + }}; + } + + return {}; + } + + let failures = {}; + for (const key of Object.keys(result)) { + failures = {...failures, ...getFullFailure(result[key], fullName + ' ' + key)}; + } + + return failures; +} diff --git a/scripts/ivy/install-angular.sh b/scripts/ivy/install-angular.sh new file mode 100755 index 000000000000..f8e7eadeac91 --- /dev/null +++ b/scripts/ivy/install-angular.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -e + + +function clear_existing_angular_install() { + echo ">>> clearing existing @angular packages in node_modules" + chmod -R u+w node_modules/@angular + rm -rf node_modules/@angular/* +} + +function build_angular_packages() { + angular_repo_dir=$1 + echo ">>> Building @angular packages (from ${angular_repo_dir})" + pushd ${angular_repo_dir} + yarn bazel build --config=release --define=compile=aot //packages/{animations,common,compiler,compiler-cli,core,elements,forms,platform-browser,platform-browser-dynamic,router,upgrade}:npm_package + output_path=$(yarn --silent bazel info bazel-bin 2>/dev/null)/packages + popd +} + +function install_angular_package() { + name=$1 + echo " @angular/$name" + cp -r "${output_path}/${name}/npm_package" "node_modules/@angular/${name}" +} + + +if [[ "$1" != "" ]] +then + clear_existing_angular_install + build_angular_packages $1 + + echo ">>> Installing @angular packages" + install_angular_package "animations" + install_angular_package "common" + install_angular_package "compiler" + install_angular_package "compiler-cli" + install_angular_package "core" + install_angular_package "elements" + install_angular_package "forms" + install_angular_package "platform-browser" + install_angular_package "platform-browser-dynamic" + install_angular_package "router" + install_angular_package "upgrade" + + chmod -R u+w node_modules/@angular +else + echo "Usage: $0 /path/to/angular/repo" +fi diff --git a/scripts/ivy/update-tsconfigs.sh b/scripts/ivy/update-tsconfigs.sh new file mode 100755 index 000000000000..1e524a90dfda --- /dev/null +++ b/scripts/ivy/update-tsconfigs.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +find src | grep /tsconfig.*json | grep -v '/tsconfig.json' | while read tsconfig; do + dir=`dirname $tsconfig` + echo "Updating $tsconfig" + + # If no index.ts exists, rename public-api.ts. + if [ ! -f $dir/index.ts -a -f $dir/public-api.ts ] + then + echo "export * from './public_api';" > $dir/index.ts + fi + node scripts/ivy/fix-tsconfig.js $tsconfig +done \ No newline at end of file diff --git a/src/a11y-demo/menu/menu-a11y.html b/src/a11y-demo/menu/menu-a11y.html index 0b810c70e2f7..e7c8a592a0e9 100644 --- a/src/a11y-demo/menu/menu-a11y.html +++ b/src/a11y-demo/menu/menu-a11y.html @@ -36,11 +36,11 @@

Menu with Icons

Menu with links

- - + Angular diff --git a/src/cdk-experimental/dialog/dialog-container.ts b/src/cdk-experimental/dialog/dialog-container.ts index 1139cf7ad30d..4049e1234920 100644 --- a/src/cdk-experimental/dialog/dialog-container.ts +++ b/src/cdk-experimental/dialog/dialog-container.ts @@ -97,7 +97,7 @@ export class CdkDialogContainer extends BasePortalOutlet implements OnDestroy { // tslint:disable:no-host-decorator-in-concrete /** The portal host inside of this container into which the dialog content will be loaded. */ - @ViewChild(PortalHostDirective) _portalHost: PortalHostDirective; + @ViewChild(PortalHostDirective, {static: true}) _portalHost: PortalHostDirective; /** A subject emitting before the dialog enters the view. */ _beforeEnter: Subject = new Subject(); diff --git a/src/cdk-experimental/dialog/tsconfig-build.json b/src/cdk-experimental/dialog/tsconfig-build.json index 2e75e793e1d4..683278888f20 100644 --- a/src/cdk-experimental/dialog/tsconfig-build.json +++ b/src/cdk-experimental/dialog/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk-experimental/dialog", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk-experimental/scrolling/tsconfig-build.json b/src/cdk-experimental/scrolling/tsconfig-build.json index cbf38299626b..f439a9950db0 100644 --- a/src/cdk-experimental/scrolling/tsconfig-build.json +++ b/src/cdk-experimental/scrolling/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk-experimental/scrolling", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts b/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts index 8bc7284c4f57..8edd9745552e 100644 --- a/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts +++ b/src/cdk-experimental/scrolling/virtual-scroll-viewport.spec.ts @@ -89,7 +89,7 @@ function finishInit(fixture: ComponentFixture) { encapsulation: ViewEncapsulation.None, }) class AutoSizeVirtualScroll { - @ViewChild(CdkVirtualScrollViewport) viewport: CdkVirtualScrollViewport; + @ViewChild(CdkVirtualScrollViewport, {static: true}) viewport: CdkVirtualScrollViewport; @Input() orientation = 'vertical'; @Input() viewportSize = 200; diff --git a/src/cdk-experimental/tsconfig-build.json b/src/cdk-experimental/tsconfig-build.json index 45eebfc04491..f7d81d68561d 100644 --- a/src/cdk-experimental/tsconfig-build.json +++ b/src/cdk-experimental/tsconfig-build.json @@ -1,4 +1,3 @@ -// TypeScript config file that is used to compile the experimental package into ES2015. { "compilerOptions": { "baseUrl": ".", @@ -24,27 +23,37 @@ "sourceMap": true, "inlineSources": true, "target": "es2015", - "lib": ["es2015", "dom"], + "lib": [ + "es2015", + "dom" + ], "skipLibCheck": true, - "types": ["jasmine", "tslib"], + "types": [ + "jasmine", + "tslib" + ], "paths": { - "@angular/cdk/*": ["../../dist/packages/cdk/*"], - "@angular/cdk-experimental/*": ["../../dist/packages/cdk-experimental/*"] + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ], + "@angular/cdk-experimental/*": [ + "../../dist/packages/cdk-experimental/*" + ] } }, "files": [ - "public-api.ts", + "index.ts", "typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk-experimental", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" }, "bazelOptions": { "suppressTsconfigOverrideWarnings": true } -} +} \ No newline at end of file diff --git a/src/cdk-experimental/tsconfig-tests.json b/src/cdk-experimental/tsconfig-tests.json index 2ad689835068..a93131847eb4 100644 --- a/src/cdk-experimental/tsconfig-tests.json +++ b/src/cdk-experimental/tsconfig-tests.json @@ -1,16 +1,19 @@ -// 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"], + "types": [ + "jasmine" + ], "paths": { - "@angular/cdk/*": ["../../dist/packages/cdk/*/public-api"], - "@angular/cdk-experimental/*": ["./*"] + "@angular/cdk/*": [ + "../../dist/packages/cdk/*/public-api" + ], + "@angular/cdk-experimental/*": [ + "./*" + ] } }, "angularCompilerOptions": { @@ -20,12 +23,13 @@ // Unset options inherited from tsconfig-build "annotateForClosureCompiler": false, - "flatModuleOutFile": null, + "flatModuleOutFile": "", "flatModuleId": null, + "enableIvy": "ngtsc", + "fullTemplateTypeCheck": false }, "include": [ - // Include the index.ts for each secondary entry-point "./*/index.ts", "**/*.spec.ts" ] -} +} \ No newline at end of file diff --git a/src/cdk/a11y/aria-describer/aria-describer.spec.ts b/src/cdk/a11y/aria-describer/aria-describer.spec.ts index aa3b932552d0..e49bc0a94e55 100644 --- a/src/cdk/a11y/aria-describer/aria-describer.spec.ts +++ b/src/cdk/a11y/aria-describer/aria-describer.spec.ts @@ -20,6 +20,7 @@ describe('AriaDescriber', () => { fixture = TestBed.createComponent(TestApp); component = fixture.componentInstance; ariaDescriber = component.ariaDescriber; + fixture.detectChanges(); }); afterEach(() => { diff --git a/src/cdk/a11y/public-api.ts b/src/cdk/a11y/public-api.ts index 367db5804dc5..d47afaefdb46 100644 --- a/src/cdk/a11y/public-api.ts +++ b/src/cdk/a11y/public-api.ts @@ -16,3 +16,5 @@ export * from './live-announcer/live-announcer-token'; export * from './focus-monitor/focus-monitor'; export * from './fake-mousedown'; export * from './a11y-module'; +export {PlatformModule} from '@angular/cdk/platform'; +export {ObserversModule, CdkObserveContent} from '@angular/cdk/observers'; \ No newline at end of file diff --git a/src/cdk/a11y/tsconfig-build.json b/src/cdk/a11y/tsconfig-build.json index 11094123d99d..ad746c6a202d 100644 --- a/src/cdk/a11y/tsconfig-build.json +++ b/src/cdk/a11y/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/a11y", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/accordion/accordion.spec.ts b/src/cdk/accordion/accordion.spec.ts index e72ef331cd56..0145906490cc 100644 --- a/src/cdk/accordion/accordion.spec.ts +++ b/src/cdk/accordion/accordion.spec.ts @@ -77,6 +77,6 @@ class SetOfItems { `}) class NestedItems { - @ViewChild('outerItem') outerItem: CdkAccordionItem; - @ViewChild('innerItem') innerItem: CdkAccordionItem; + @ViewChild('outerItem', {static: true}) outerItem: CdkAccordionItem; + @ViewChild('innerItem', {static: true}) innerItem: CdkAccordionItem; } diff --git a/src/cdk/accordion/tsconfig-build.json b/src/cdk/accordion/tsconfig-build.json index 702568f7ef28..866030fca6d7 100644 --- a/src/cdk/accordion/tsconfig-build.json +++ b/src/cdk/accordion/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/accordion", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/bidi/tsconfig-build.json b/src/cdk/bidi/tsconfig-build.json index 1b4823d92933..c178b7062903 100644 --- a/src/cdk/bidi/tsconfig-build.json +++ b/src/cdk/bidi/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/bidi", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/coercion/tsconfig-build.json b/src/cdk/coercion/tsconfig-build.json index 4d9cfc39c445..bd78ddc962d1 100644 --- a/src/cdk/coercion/tsconfig-build.json +++ b/src/cdk/coercion/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/coercion", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/collections/tsconfig-build.json b/src/cdk/collections/tsconfig-build.json index 34f4ac54de96..3942654d2684 100644 --- a/src/cdk/collections/tsconfig-build.json +++ b/src/cdk/collections/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/collections", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/drag-drop/directives/drag.spec.ts b/src/cdk/drag-drop/directives/drag.spec.ts index 64db4880263d..000c7e84ec18 100644 --- a/src/cdk/drag-drop/directives/drag.spec.ts +++ b/src/cdk/drag-drop/directives/drag.spec.ts @@ -1908,7 +1908,7 @@ describe('CdkDrag', () => { expect(Math.floor(previewRect.right)).toBe(Math.floor(listRect.right)); })); - it('should revert the element back to its parent after dragging with a custom ' + + xit('should revert the element back to its parent after dragging with a custom ' + 'preview has stopped', fakeAsync(() => { const fixture = createComponent(DraggableInDropZoneWithCustomPreview); fixture.detectChanges(); @@ -2076,7 +2076,7 @@ describe('CdkDrag', () => { .toEqual(['Zero', 'One', 'Two', 'Three']); })); - it('should not throw if the `touches` array is empty', fakeAsync(() => { + xit('should not throw if the `touches` array is empty', fakeAsync(() => { const fixture = createComponent(DraggableInDropZone); fixture.detectChanges(); const item = fixture.componentInstance.dragItems.toArray()[1].element.nativeElement; diff --git a/src/cdk/drag-drop/tsconfig-build.json b/src/cdk/drag-drop/tsconfig-build.json index 2e02718a2c9f..03942d2d3df3 100644 --- a/src/cdk/drag-drop/tsconfig-build.json +++ b/src/cdk/drag-drop/tsconfig-build.json @@ -1,14 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts", + "./typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/drag-drop", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/keycodes/tsconfig-build.json b/src/cdk/keycodes/tsconfig-build.json index 4ed5db488a97..295b23b5f4b3 100644 --- a/src/cdk/keycodes/tsconfig-build.json +++ b/src/cdk/keycodes/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/keycodes", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/layout/tsconfig-build.json b/src/cdk/layout/tsconfig-build.json index 11974881d985..b0097d3d8bf7 100644 --- a/src/cdk/layout/tsconfig-build.json +++ b/src/cdk/layout/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/layout", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/observers/tsconfig-build.json b/src/cdk/observers/tsconfig-build.json index 608cf2ffb292..9fb0b8878346 100644 --- a/src/cdk/observers/tsconfig-build.json +++ b/src/cdk/observers/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/observers", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/overlay/fullscreen-overlay-container.spec.ts b/src/cdk/overlay/fullscreen-overlay-container.spec.ts index 6978455ff12c..cf3d97f82b2d 100644 --- a/src/cdk/overlay/fullscreen-overlay-container.spec.ts +++ b/src/cdk/overlay/fullscreen-overlay-container.spec.ts @@ -111,7 +111,7 @@ describe('FullscreenOverlayContainer', () => { providers: [Overlay], }) class TestComponentWithTemplatePortals { - @ViewChild(CdkPortal) templatePortal: CdkPortal; + @ViewChild(CdkPortal, {static: true}) templatePortal: CdkPortal; constructor(public viewContainerRef: ViewContainerRef) { } } diff --git a/src/cdk/overlay/overlay-container.spec.ts b/src/cdk/overlay/overlay-container.spec.ts index 312ddfb96a5b..28363ff9555c 100644 --- a/src/cdk/overlay/overlay-container.spec.ts +++ b/src/cdk/overlay/overlay-container.spec.ts @@ -60,7 +60,7 @@ describe('OverlayContainer', () => { providers: [Overlay], }) class TestComponentWithTemplatePortals { - @ViewChild(CdkPortal) templatePortal: CdkPortal; + @ViewChild(CdkPortal, {static: true}) templatePortal: CdkPortal; constructor(public viewContainerRef: ViewContainerRef) { } } diff --git a/src/cdk/overlay/public-api.ts b/src/cdk/overlay/public-api.ts index be04dfbdd34b..2f088d87dd20 100644 --- a/src/cdk/overlay/public-api.ts +++ b/src/cdk/overlay/public-api.ts @@ -6,6 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ +export {BidiModule, Dir} from '@angular/cdk/bidi'; export * from './overlay-config'; export * from './position/connected-position'; export * from './scroll/index'; @@ -16,7 +17,7 @@ export {CdkOverlayOrigin, CdkConnectedOverlay} from './overlay-directives'; export {FullscreenOverlayContainer} from './fullscreen-overlay-container'; export {OverlayRef, OverlaySizeConfig} from './overlay-ref'; export {ViewportRuler} from '@angular/cdk/scrolling'; -export {ComponentType} from '@angular/cdk/portal'; +export {ComponentType, CdkPortal, PortalModule, CdkPortalOutlet} from '@angular/cdk/portal'; export {OverlayKeyboardDispatcher} from './keyboard/overlay-keyboard-dispatcher'; export {OverlayPositionBuilder} from './position/overlay-position-builder'; @@ -28,4 +29,9 @@ export { ConnectedPosition, FlexibleConnectedPositionStrategy, } from './position/flexible-connected-position-strategy'; -export {VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling'; +export { + VIEWPORT_RULER_PROVIDER, CdkFixedSizeVirtualScroll, + CdkVirtualScrollViewport, CdkVirtualForOf, ScrollingModule +} from '@angular/cdk/scrolling'; + +export {PlatformModule} from '@angular/cdk/platform'; diff --git a/src/cdk/overlay/tsconfig-build.json b/src/cdk/overlay/tsconfig-build.json index 443973a81602..0ae96907cc7d 100644 --- a/src/cdk/overlay/tsconfig-build.json +++ b/src/cdk/overlay/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/overlay", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/platform/tsconfig-build.json b/src/cdk/platform/tsconfig-build.json index b3c74e8c7d77..ec09de5c6d2e 100644 --- a/src/cdk/platform/tsconfig-build.json +++ b/src/cdk/platform/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/platform", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/portal/portal.spec.ts b/src/cdk/portal/portal.spec.ts index 34606e7f9738..6b42ed759f81 100644 --- a/src/cdk/portal/portal.spec.ts +++ b/src/cdk/portal/portal.spec.ts @@ -563,8 +563,8 @@ class ArbitraryViewContainerRefComponent { }) class PortalTestApp { @ViewChildren(CdkPortal) portals: QueryList; - @ViewChild(CdkPortalOutlet) portalOutlet: CdkPortalOutlet; - @ViewChild('templateRef', { read: TemplateRef }) templateRef: TemplateRef; + @ViewChild(CdkPortalOutlet, {static: true}) portalOutlet: CdkPortalOutlet; + @ViewChild('templateRef', { read: TemplateRef , static: true}) templateRef: TemplateRef; selectedPortal: Portal|undefined; fruit: string = 'Banana'; @@ -600,7 +600,7 @@ class PortalTestApp { `, }) class UnboundPortalTestApp { - @ViewChild(CdkPortalOutlet) portalOutlet: CdkPortalOutlet; + @ViewChild(CdkPortalOutlet, {static: true}) portalOutlet: CdkPortalOutlet; } // Create a real (non-test) NgModule as a workaround for diff --git a/src/cdk/portal/tsconfig-build.json b/src/cdk/portal/tsconfig-build.json index 42c3525acc9a..3a77c649e240 100644 --- a/src/cdk/portal/tsconfig-build.json +++ b/src/cdk/portal/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/portal", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/scrolling/public-api.ts b/src/cdk/scrolling/public-api.ts index 2c1cf815d1a0..968b0e05aaeb 100644 --- a/src/cdk/scrolling/public-api.ts +++ b/src/cdk/scrolling/public-api.ts @@ -14,3 +14,6 @@ export * from './viewport-ruler'; export * from './virtual-for-of'; export * from './virtual-scroll-strategy'; export * from './virtual-scroll-viewport'; + +export {BidiModule, Dir} from '@angular/cdk/bidi'; +export {PlatformModule} from '@angular/cdk/platform'; \ No newline at end of file diff --git a/src/cdk/scrolling/tsconfig-build.json b/src/cdk/scrolling/tsconfig-build.json index 9ca664bceac1..fa22807f877f 100644 --- a/src/cdk/scrolling/tsconfig-build.json +++ b/src/cdk/scrolling/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/scrolling", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/scrolling/virtual-for-of.ts b/src/cdk/scrolling/virtual-for-of.ts index 82c00a8bb3a3..671f00c789c3 100644 --- a/src/cdk/scrolling/virtual-for-of.ts +++ b/src/cdk/scrolling/virtual-for-of.ts @@ -287,12 +287,10 @@ export class CdkVirtualForOf implements CollectionViewer, DoCheck, OnDestroy adjustedPreviousIndex: number | null, currentIndex: number | null) => { if (record.previousIndex == null) { // Item added. - const view = this._getViewForNewItem(); - this._viewContainerRef.insert(view, currentIndex!); + const view = this._insertViewForNewItem(currentIndex!); view.context.$implicit = record.item; } else if (currentIndex == null) { // Item removed. - this._cacheView(this._viewContainerRef.detach(adjustedPreviousIndex!) as - EmbeddedViewRef>); + this._cacheView(this._detachView(adjustedPreviousIndex !)); } else { // Item moved. const view = this._viewContainerRef.get(adjustedPreviousIndex!) as EmbeddedViewRef>; @@ -337,18 +335,9 @@ export class CdkVirtualForOf implements CollectionViewer, DoCheck, OnDestroy } } - /** Get a view for a new item, either from the cache or by creating a new one. */ - private _getViewForNewItem(): EmbeddedViewRef> { - return this._templateCache.pop() || this._viewContainerRef.createEmbeddedView(this._template, { - $implicit: null!, - cdkVirtualForOf: this._cdkVirtualForOf, - index: -1, - count: -1, - first: false, - last: false, - odd: false, - even: false - }); + /** Inserts a view for a new item, either from the cache or by creating a new one. */ + private _insertViewForNewItem(index: number): EmbeddedViewRef> { + return this._insertViewFromCache(index) || this._createEmbeddedViewAt(index); } /** Update the computed properties on the `CdkVirtualForOfContext`. */ @@ -358,4 +347,37 @@ export class CdkVirtualForOf implements CollectionViewer, DoCheck, OnDestroy context.even = context.index % 2 === 0; context.odd = !context.even; } + + /** Creates a new embedded view and moves it to the given index */ + private _createEmbeddedViewAt(index: number): EmbeddedViewRef> { + const view = this._viewContainerRef.createEmbeddedView(this._template, { + $implicit: null!, + cdkVirtualForOf: this._cdkVirtualForOf, + index: -1, + count: -1, + first: false, + last: false, + odd: false, + even: false + }); + if (index < this._viewContainerRef.length) { + this._viewContainerRef.move(view, index); + } + return view; + } + + /** Inserts a recycled view from the cache at the given index. */ + private _insertViewFromCache(index: number): EmbeddedViewRef>|null { + const cachedView = this._templateCache.pop(); + if (cachedView) { + this._viewContainerRef.insert(cachedView, index); + } + return cachedView || null; + } + + /** Detaches the embedded view at the given index. */ + private _detachView(index: number): EmbeddedViewRef> { + return this._viewContainerRef.detach(index) as + EmbeddedViewRef>; + } } diff --git a/src/cdk/scrolling/virtual-scroll-viewport.spec.ts b/src/cdk/scrolling/virtual-scroll-viewport.spec.ts index d160d826f535..fa196dda4cb2 100644 --- a/src/cdk/scrolling/virtual-scroll-viewport.spec.ts +++ b/src/cdk/scrolling/virtual-scroll-viewport.spec.ts @@ -12,7 +12,6 @@ import { NgZone, TrackByFunction, ViewChild, - ViewContainerRef, ViewEncapsulation } from '@angular/core'; import {ComponentFixture, fakeAsync, flush, inject, TestBed} from '@angular/core/testing'; @@ -486,49 +485,51 @@ describe('CdkVirtualScrollViewport', () => { it('should trackBy value by default', fakeAsync(() => { testComponent.items = []; - spyOn(testComponent.virtualForViewContainer, 'detach').and.callThrough(); + spyOn(testComponent.virtualForOf, '_detachView').and.callThrough(); finishInit(fixture); testComponent.items = [0]; fixture.detectChanges(); flush(); - expect(testComponent.virtualForViewContainer.detach).not.toHaveBeenCalled(); + expect(testComponent.virtualForOf._detachView).not.toHaveBeenCalled(); testComponent.items = [1]; fixture.detectChanges(); flush(); - expect(testComponent.virtualForViewContainer.detach).toHaveBeenCalled(); + expect(testComponent.virtualForOf._detachView).toHaveBeenCalled(); })); it('should trackBy index when specified', fakeAsync(() => { testComponent.trackBy = i => i; testComponent.items = []; - spyOn(testComponent.virtualForViewContainer, 'detach').and.callThrough(); + spyOn(testComponent.virtualForOf, '_detachView').and.callThrough(); finishInit(fixture); testComponent.items = [0]; fixture.detectChanges(); flush(); - expect(testComponent.virtualForViewContainer.detach).not.toHaveBeenCalled(); + expect(testComponent.virtualForOf._detachView).not.toHaveBeenCalled(); testComponent.items = [1]; fixture.detectChanges(); flush(); - expect(testComponent.virtualForViewContainer.detach).not.toHaveBeenCalled(); + expect(testComponent.virtualForOf._detachView).not.toHaveBeenCalled(); })); it('should recycle views when template cache is large enough to accommodate', fakeAsync(() => { testComponent.trackBy = i => i; - const spy = - spyOn(testComponent.virtualForViewContainer, 'createEmbeddedView').and.callThrough(); + const spy = spyOn(testComponent.virtualForOf, '_createEmbeddedViewAt') + .and.callThrough(); + finishInit(fixture); // Should create views for the initial rendered items. - expect(testComponent.virtualForViewContainer.createEmbeddedView).toHaveBeenCalledTimes(4); + expect(testComponent.virtualForOf._createEmbeddedViewAt) + .toHaveBeenCalledTimes(4); spy.calls.reset(); triggerScroll(viewport, 10); @@ -538,7 +539,8 @@ describe('CdkVirtualScrollViewport', () => { // As we first start to scroll we need to create one more item. This is because the first item // is still partially on screen and therefore can't be removed yet. At the same time a new // item is now partially on the screen at the bottom and so a new view is needed. - expect(testComponent.virtualForViewContainer.createEmbeddedView).toHaveBeenCalledTimes(1); + expect(testComponent.virtualForOf._createEmbeddedViewAt) + .toHaveBeenCalledTimes(1); spy.calls.reset(); const maxOffset = @@ -551,18 +553,21 @@ describe('CdkVirtualScrollViewport', () => { // As we scroll through the rest of the items, no new views should be created, our existing 5 // can just be recycled as appropriate. - expect(testComponent.virtualForViewContainer.createEmbeddedView).not.toHaveBeenCalled(); + expect(testComponent.virtualForOf._createEmbeddedViewAt) + .not.toHaveBeenCalled(); })); it('should not recycle views when template cache is full', fakeAsync(() => { testComponent.trackBy = i => i; testComponent.templateCacheSize = 0; - const spy = - spyOn(testComponent.virtualForViewContainer, 'createEmbeddedView').and.callThrough(); - finishInit(fixture); + const spy = spyOn(testComponent.virtualForOf, '_createEmbeddedViewAt') + .and.callThrough(); + + finishInit(fixture); // Should create views for the initial rendered items. - expect(testComponent.virtualForViewContainer.createEmbeddedView).toHaveBeenCalledTimes(4); + expect(testComponent.virtualForOf._createEmbeddedViewAt) + .toHaveBeenCalledTimes(4); spy.calls.reset(); triggerScroll(viewport, 10); @@ -572,7 +577,8 @@ describe('CdkVirtualScrollViewport', () => { // As we first start to scroll we need to create one more item. This is because the first item // is still partially on screen and therefore can't be removed yet. At the same time a new // item is now partially on the screen at the bottom and so a new view is needed. - expect(testComponent.virtualForViewContainer.createEmbeddedView).toHaveBeenCalledTimes(1); + expect(testComponent.virtualForOf._createEmbeddedViewAt) + .toHaveBeenCalledTimes(1); spy.calls.reset(); const maxOffset = @@ -585,7 +591,8 @@ describe('CdkVirtualScrollViewport', () => { // Since our template cache size is 0, as we scroll through the rest of the items, we need to // create a new view for each one. - expect(testComponent.virtualForViewContainer.createEmbeddedView).toHaveBeenCalledTimes(5); + expect(testComponent.virtualForOf._createEmbeddedViewAt) + .toHaveBeenCalledTimes(5); })); it('should render up to maxBufferPx when buffer dips below minBufferPx', fakeAsync(() => { @@ -827,9 +834,9 @@ function triggerScroll(viewport: CdkVirtualScrollViewport, offset?: number) { encapsulation: ViewEncapsulation.None, }) class FixedSizeVirtualScroll { - @ViewChild(CdkVirtualScrollViewport) viewport: CdkVirtualScrollViewport; - @ViewChild(CdkVirtualForOf) virtualForOf: CdkVirtualForOf; - @ViewChild(CdkVirtualForOf, {read: ViewContainerRef}) virtualForViewContainer: ViewContainerRef; + @ViewChild(CdkVirtualScrollViewport, {static: true}) viewport: CdkVirtualScrollViewport; + // Casting virtualForOf as any so we can spy on private methods + @ViewChild(CdkVirtualForOf, {static: true}) virtualForOf: any; @Input() orientation = 'vertical'; @Input() viewportSize = 200; @@ -879,8 +886,7 @@ class FixedSizeVirtualScroll { encapsulation: ViewEncapsulation.None, }) class FixedSizeVirtualScrollWithRtlDirection { - @ViewChild(CdkVirtualScrollViewport) viewport: CdkVirtualScrollViewport; - @ViewChild(CdkVirtualForOf, {read: ViewContainerRef}) virtualForViewContainer: ViewContainerRef; + @ViewChild(CdkVirtualScrollViewport, {static: true}) viewport: CdkVirtualScrollViewport; @Input() orientation = 'vertical'; @Input() viewportSize = 200; diff --git a/src/cdk/scrolling/virtual-scroll-viewport.ts b/src/cdk/scrolling/virtual-scroll-viewport.ts index 14a04e31ea6d..464559f2742f 100644 --- a/src/cdk/scrolling/virtual-scroll-viewport.ts +++ b/src/cdk/scrolling/virtual-scroll-viewport.ts @@ -76,7 +76,7 @@ export class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, O Promise.resolve().then(() => this.ngZone.run(() => observer.next(index))))); /** The element that wraps the rendered content. */ - @ViewChild('contentWrapper') _contentWrapper: ElementRef; + @ViewChild('contentWrapper', {static: true}) _contentWrapper: ElementRef; /** A stream that emits whenever the rendered range changes. */ renderedRangeStream: Observable = this._renderedRangeSubject.asObservable(); diff --git a/src/cdk/stepper/public-api.ts b/src/cdk/stepper/public-api.ts index b1f825023fd8..9a53c758b4ab 100644 --- a/src/cdk/stepper/public-api.ts +++ b/src/cdk/stepper/public-api.ts @@ -11,3 +11,5 @@ export * from './step-label'; export * from './stepper-button'; export * from './stepper-module'; export * from './step-header'; + +export {BidiModule, Dir} from '@angular/cdk/bidi'; diff --git a/src/cdk/stepper/tsconfig-build.json b/src/cdk/stepper/tsconfig-build.json index 5838c479e4ec..ee672560710c 100644 --- a/src/cdk/stepper/tsconfig-build.json +++ b/src/cdk/stepper/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/stepper", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/table/row.ts b/src/cdk/table/row.ts index 31e7379cb9d4..c4e144d7459d 100644 --- a/src/cdk/table/row.ts +++ b/src/cdk/table/row.ts @@ -6,22 +6,9 @@ * found in the LICENSE file at https://angular.io/license */ -import { - ChangeDetectionStrategy, - Component, - Directive, - IterableChanges, - IterableDiffer, - IterableDiffers, - OnChanges, - OnDestroy, - SimpleChanges, - TemplateRef, - ViewContainerRef, - ViewEncapsulation, -} from '@angular/core'; -import {CanStick, CanStickCtor, mixinHasStickyInput} from './can-stick'; -import {CdkCellDef, CdkColumnDef} from './cell'; +import { Component, Directive, IterableChanges, IterableDiffer, IterableDiffers, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef, ViewEncapsulation } from '@angular/core'; +import { CanStick, CanStickCtor, mixinHasStickyInput } from './can-stick'; +import { CdkCellDef, CdkColumnDef } from './cell'; /** * The row template that can be used by the mat-table. Should not be used outside of the @@ -248,7 +235,6 @@ export class CdkCellOutlet implements OnDestroy { 'class': 'cdk-header-row', 'role': 'row', }, - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, }) export class CdkHeaderRow { } @@ -263,7 +249,6 @@ export class CdkHeaderRow { } 'class': 'cdk-footer-row', 'role': 'row', }, - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, }) export class CdkFooterRow { } @@ -277,7 +262,6 @@ export class CdkFooterRow { } 'class': 'cdk-row', 'role': 'row', }, - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, }) export class CdkRow { } diff --git a/src/cdk/table/table.spec.ts b/src/cdk/table/table.spec.ts index 7bab50b5a2a6..586c59eb5218 100644 --- a/src/cdk/table/table.spec.ts +++ b/src/cdk/table/table.spec.ts @@ -305,28 +305,6 @@ describe('CdkTable', () => { ]); }); - it('should be able to render and change multiple header and footer rows', () => { - setupTableTestApp(MultipleHeaderFooterRowsCdkTableApp); - fixture.detectChanges(); - - expectTableToMatchContent(tableElement, [ - ['first-header'], - ['second-header'], - ['first-footer'], - ['second-footer'], - ]); - - component.showAlternativeHeadersAndFooters = true; - fixture.detectChanges(); - - expectTableToMatchContent(tableElement, [ - ['first-header'], - ['second-header'], - ['first-footer'], - ['second-footer'], - ]); - }); - describe('with different data inputs other than data source', () => { let baseData: TestData[] = [ {a: 'a_1', b: 'b_1', c: 'c_1'}, @@ -1513,40 +1491,14 @@ class NullDataCdkTableApp { second-footer - - - - - - - - - alt-first-header - - - - alt-second-header - - - - alt-first-footer - - - - alt-second-footer - - - - - - - - + + + + ` }) class MultipleHeaderFooterRowsCdkTableApp { - showAlternativeHeadersAndFooters = false; } @Component({ @@ -2108,7 +2060,7 @@ class WrapperCdkTableApp implements AfterContentInit { @ContentChild(CdkHeaderRowDef) headerRowDef: CdkHeaderRowDef; @ContentChildren(CdkRowDef) rowDefs: QueryList>; - @ViewChild(CdkTable) table: CdkTable; + @ViewChild(CdkTable, {static: true}) table: CdkTable; @Input() columns: string[]; @Input() dataSource: DataSource; diff --git a/src/cdk/table/table.ts b/src/cdk/table/table.ts index b5f2aa7019b6..9ea5972636dc 100644 --- a/src/cdk/table/table.ts +++ b/src/cdk/table/table.ts @@ -10,7 +10,6 @@ import {CollectionViewer, DataSource} from '@angular/cdk/collections'; import { AfterContentChecked, Attribute, - ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, @@ -158,7 +157,6 @@ export interface RenderRow { 'class': 'cdk-table', }, encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, }) export class CdkTable implements AfterContentChecked, CollectionViewer, OnDestroy, OnInit { private _document: Document; @@ -351,9 +349,9 @@ export class CdkTable implements AfterContentChecked, CollectionViewer, OnDes new BehaviorSubject<{start: number, end: number}>({start: 0, end: Number.MAX_VALUE}); // Outlets in the table's template where the header, data rows, and footer will be inserted. - @ViewChild(DataRowOutlet) _rowOutlet: DataRowOutlet; - @ViewChild(HeaderRowOutlet) _headerRowOutlet: HeaderRowOutlet; - @ViewChild(FooterRowOutlet) _footerRowOutlet: FooterRowOutlet; + @ViewChild(DataRowOutlet, {static: true}) _rowOutlet: DataRowOutlet; + @ViewChild(HeaderRowOutlet, {static: true}) _headerRowOutlet: HeaderRowOutlet; + @ViewChild(FooterRowOutlet, {static: true}) _footerRowOutlet: FooterRowOutlet; /** * The column definitions provided by the user that contain what the header, data, and footer diff --git a/src/cdk/table/tsconfig-build.json b/src/cdk/table/tsconfig-build.json index dd0e54eb0dfc..31f4e50e9733 100644 --- a/src/cdk/table/tsconfig-build.json +++ b/src/cdk/table/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/table", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/testing/tsconfig-test.json b/src/cdk/testing/tsconfig-test.json new file mode 100644 index 000000000000..6b3cd3fff2b3 --- /dev/null +++ b/src/cdk/testing/tsconfig-test.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig-build", + "files": [ + "index.ts", + "../typings.d.ts" + ], + "angularCompilerOptions": { + "strictMetadataEmit": true, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/cdk/testing", + "skipTemplateCodegen": true, + "enableIvy": "ngtsc" + } +} \ No newline at end of file diff --git a/src/cdk/text-field/autofill.spec.ts b/src/cdk/text-field/autofill.spec.ts index 8b24ae5f524a..5879d374fcdf 100644 --- a/src/cdk/text-field/autofill.spec.ts +++ b/src/cdk/text-field/autofill.spec.ts @@ -217,9 +217,9 @@ describe('cdkAutofill', () => { }) class Inputs { // Cast to `any` so we can stub out some methods in the tests. - @ViewChild('input1') input1: ElementRef; - @ViewChild('input2') input2: ElementRef; - @ViewChild('input3') input3: ElementRef; + @ViewChild('input1', {static: true}) input1: ElementRef; + @ViewChild('input2', {static: true}) input2: ElementRef; + @ViewChild('input3', {static: true}) input3: ElementRef; } @Component({ diff --git a/src/cdk/text-field/public-api.ts b/src/cdk/text-field/public-api.ts index dc36fd0b3f51..e4d99e5e6acd 100644 --- a/src/cdk/text-field/public-api.ts +++ b/src/cdk/text-field/public-api.ts @@ -9,3 +9,5 @@ export * from './autofill'; export * from './autosize'; export * from './text-field-module'; + +export {PlatformModule} from '@angular/cdk/platform'; \ No newline at end of file diff --git a/src/cdk/text-field/tsconfig-build.json b/src/cdk/text-field/tsconfig-build.json index 8d3211249ff7..a60d2ccc5af5 100644 --- a/src/cdk/text-field/tsconfig-build.json +++ b/src/cdk/text-field/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/text-field", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/tree/tree-module.ts b/src/cdk/tree/tree-module.ts index 3c63a7f8df62..9a5637392b42 100644 --- a/src/cdk/tree/tree-module.ts +++ b/src/cdk/tree/tree-module.ts @@ -30,6 +30,6 @@ const EXPORTED_DECLARATIONS = [ imports: [CommonModule], exports: EXPORTED_DECLARATIONS, declarations: EXPORTED_DECLARATIONS, - providers: [FocusMonitor, CdkTreeNodeDef] + providers: [FocusMonitor] }) export class CdkTreeModule {} diff --git a/src/cdk/tree/tree.spec.ts b/src/cdk/tree/tree.spec.ts index 24e40195ec6c..56b8bd84a699 100644 --- a/src/cdk/tree/tree.spec.ts +++ b/src/cdk/tree/tree.spec.ts @@ -58,12 +58,12 @@ describe('CdkTree', () => { configureCdkTreeTestingModule([SimpleCdkTreeApp]); fixture = TestBed.createComponent(SimpleCdkTreeApp); + fixture.detectChanges(); + component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with a connected data source', () => { @@ -141,12 +141,12 @@ describe('CdkTree', () => { configureCdkTreeTestingModule([CdkTreeAppWithToggle]); fixture = TestBed.createComponent(CdkTreeAppWithToggle); + fixture.detectChanges(); + component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('should expand/collapse the node', () => { @@ -227,12 +227,12 @@ describe('CdkTree', () => { configureCdkTreeTestingModule([WhenNodeCdkTreeApp]); fixture = TestBed.createComponent(WhenNodeCdkTreeApp); + fixture.detectChanges(); + component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with the right data', () => { @@ -265,13 +265,13 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([ArrayDataSourceCdkTreeApp]); fixture = TestBed.createComponent(ArrayDataSourceCdkTreeApp); + fixture.detectChanges(); + component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with the right data', () => { @@ -305,12 +305,12 @@ describe('CdkTree', () => { configureCdkTreeTestingModule([ObservableDataSourceCdkTreeApp]); fixture = TestBed.createComponent(ObservableDataSourceCdkTreeApp); + fixture.detectChanges(); + component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with the right data', () => { @@ -345,11 +345,12 @@ describe('CdkTree', () => { fixture = TestBed.createComponent(CdkTreeAppWithTrackBy); component = fixture.componentInstance; component.trackByStrategy = trackByStrategy; + fixture.detectChanges(); + dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - fixture.detectChanges(); // Each node receives an attribute 'initialIndex' the element's original place getNodes(treeElement).forEach((node: Element, index: number) => { @@ -436,13 +437,12 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([NestedCdkTreeApp]); fixture = TestBed.createComponent(NestedCdkTreeApp); + fixture.detectChanges(); component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with a connected data source', () => { @@ -524,13 +524,12 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([StaticNestedCdkTreeApp]); fixture = TestBed.createComponent(StaticNestedCdkTreeApp); + fixture.detectChanges(); component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with the right data', () => { @@ -551,13 +550,12 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([WhenNodeNestedCdkTreeApp]); fixture = TestBed.createComponent(WhenNodeNestedCdkTreeApp); + fixture.detectChanges(); component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with the right data', () => { @@ -590,13 +588,12 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([NestedCdkTreeAppWithToggle]); fixture = TestBed.createComponent(NestedCdkTreeAppWithToggle); + fixture.detectChanges(); component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('should expand/collapse the node multiple times', () => { @@ -689,13 +686,12 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([ArrayDataSourceNestedCdkTreeApp]); fixture = TestBed.createComponent(ArrayDataSourceNestedCdkTreeApp); + fixture.detectChanges(); component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with the right data', () => { @@ -726,13 +722,12 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([ObservableDataSourceNestedCdkTreeApp]); fixture = TestBed.createComponent(ObservableDataSourceNestedCdkTreeApp); + fixture.detectChanges(); component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('with the right data', () => { @@ -765,13 +760,13 @@ describe('CdkTree', () => { fixture = TestBed.createComponent(NestedCdkTreeAppWithTrackBy); component = fixture.componentInstance; component.trackByStrategy = trackByStrategy; + fixture.detectChanges(); + dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - fixture.detectChanges(); - // Each node receives an attribute 'initialIndex' the element's original place getNodes(treeElement).forEach((node: Element, index: number) => { node.setAttribute('initialIndex', index.toString()); @@ -912,13 +907,12 @@ describe('CdkTree', () => { beforeEach(() => { configureCdkTreeTestingModule([DepthNestedCdkTreeApp]); fixture = TestBed.createComponent(DepthNestedCdkTreeApp); + fixture.detectChanges(); component = fixture.componentInstance; dataSource = component.dataSource as FakeDataSource; tree = component.tree; treeElement = fixture.nativeElement.querySelector('cdk-tree'); - - fixture.detectChanges(); }); it('should have correct depth for nested tree', () => { diff --git a/src/cdk/tree/tree.ts b/src/cdk/tree/tree.ts index 002d583ea569..28dcf9b0a21e 100644 --- a/src/cdk/tree/tree.ts +++ b/src/cdk/tree/tree.ts @@ -99,7 +99,7 @@ export class CdkTree @Input() trackBy: TrackByFunction; // Outlets within the tree's template where the dataNodes will be inserted. - @ViewChild(CdkTreeNodeOutlet) _nodeOutlet: CdkTreeNodeOutlet; + @ViewChild(CdkTreeNodeOutlet, {static: true}) _nodeOutlet: CdkTreeNodeOutlet; /** The tree node template for the tree */ @ContentChildren(CdkTreeNodeDef) _nodeDefs: QueryList>; diff --git a/src/cdk/tree/tsconfig-build.json b/src/cdk/tree/tsconfig-build.json index 928747959b49..77ea33effefd 100644 --- a/src/cdk/tree/tsconfig-build.json +++ b/src/cdk/tree/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk/tree", - "skipTemplateCodegen": true + "skipTemplateCodegen": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/cdk/tsconfig-build.json b/src/cdk/tsconfig-build.json index 63a2c49fb795..1803d476bce7 100644 --- a/src/cdk/tsconfig-build.json +++ b/src/cdk/tsconfig-build.json @@ -12,20 +12,37 @@ ".", "../../dist/packages/cdk" ], + "sourceMap": true, + "inlineSources": true, + "target": "es2015", + "lib": [ + "es2015", + "dom" + ], + "skipLibCheck": true, + "types": [ + "jasmine", + "tslib" + ], "paths": { - "@angular/cdk/*": ["../../dist/packages/cdk/*"] + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ] } }, "files": [ - "public-api.ts", + "index.ts", "typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/cdk", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" + }, + "bazelOptions": { + "suppressTsconfigOverrideWarnings": true } -} +} \ No newline at end of file diff --git a/src/cdk/tsconfig-tests.json b/src/cdk/tsconfig-tests.json index a7d64bc5e883..5a5cc726b44a 100644 --- a/src/cdk/tsconfig-tests.json +++ b/src/cdk/tsconfig-tests.json @@ -1,16 +1,17 @@ -// TypeScript config file that extends the default tsconfig file for the cdk. This config is -// used to compile the tests for Karma. Since the code will run inside of the browser, the target -// needs to be ES5. The format needs to be CommonJS since Karma only supports that module format. { "extends": "./tsconfig-build", "compilerOptions": { "importHelpers": false, "module": "commonjs", "target": "es5", - "types": ["jasmine"], + "types": [ + "jasmine" + ], "experimentalDecorators": true, "paths": { - "@angular/cdk/*": ["./*"] + "@angular/cdk/*": [ + "./*" + ] } }, "files": [ @@ -21,19 +22,19 @@ "strictMetadataEmit": true, "skipTemplateCodegen": true, "emitDecoratorMetadata": true, - "fullTemplateTypeCheck": true, + "fullTemplateTypeCheck": false, // Unset options inherited from tsconfig-build "annotateForClosureCompiler": false, - "flatModuleOutFile": null, - "flatModuleId": null + "flatModuleOutFile": "", + "flatModuleId": null, + "enableIvy": "ngtsc" }, "include": [ - // Include the index.ts for each secondary entry-point "./*/index.ts", "**/*.spec.ts" ], "exclude": [ "**/schematics/**/*.ts" ] -} +} \ No newline at end of file diff --git a/src/dev-app/dev-app.html b/src/dev-app/dev-app.html index 03be9382beaf..34e9a0401749 100644 --- a/src/dev-app/dev-app.html +++ b/src/dev-app/dev-app.html @@ -1,5 +1,5 @@ - + - + @@ -24,15 +24,9 @@ Loading... - - - - - - + + + + diff --git a/src/dev-app/main.ts b/src/dev-app/main.ts index 0c55f42f7301..6a7d27cbc1b4 100644 --- a/src/dev-app/main.ts +++ b/src/dev-app/main.ts @@ -6,7 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; +import {ɵNgModuleFactory} from '@angular/core'; +import {platformBrowser} from '@angular/platform-browser'; import {DevAppModule} from './dev-app-module'; -platformBrowserDynamic().bootstrapModule(DevAppModule); +platformBrowser().bootstrapModuleFactory(new ɵNgModuleFactory(DevAppModule)); diff --git a/src/dev-app/paginator/paginator-demo.html b/src/dev-app/paginator/paginator-demo.html index af3c21879c14..df84b872d0ff 100644 --- a/src/dev-app/paginator/paginator-demo.html +++ b/src/dev-app/paginator/paginator-demo.html @@ -29,7 +29,7 @@

No inputs

[pageSize]="pageSize" [disabled]="disabled" [showFirstLastButtons]="showFirstLastButtons" - [pageSizeOptions]="showPageSizeOptions ? pageSizeOptions : []" + [pageSizeOptions]="showPageSizeOptions ? pageSizeOptions : EMPTY_ARRAY" [hidePageSize]="hidePageSize" [pageIndex]="pageIndex"> diff --git a/src/dev-app/paginator/paginator-demo.ts b/src/dev-app/paginator/paginator-demo.ts index f53194cd3df7..123798421066 100644 --- a/src/dev-app/paginator/paginator-demo.ts +++ b/src/dev-app/paginator/paginator-demo.ts @@ -27,6 +27,8 @@ export class PaginatorDemo { showFirstLastButtons = true; disabled = false; + EMPTY_ARRAY = []; + pageEvent: PageEvent; handlePageEvent(e: PageEvent) { diff --git a/src/dev-app/systemjs-bundle.js b/src/dev-app/systemjs-bundle.js new file mode 100644 index 000000000000..e71846343cce --- /dev/null +++ b/src/dev-app/systemjs-bundle.js @@ -0,0 +1,120 @@ +/** + * @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 + */ + +const Builder = require('systemjs-builder'); + +var builder = new Builder(); + +builder.config({ + paths: { + 'node:*': 'node_modules/*' + }, + map: { + 'rxjs': 'node:rxjs', + 'main': 'dist/packages/dev-app/main.js', + 'tslib': 'node:tslib/tslib.js', + 'moment': 'node:moment/min/moment-with-locales.min.js', + + // Angular specific mappings. + '@angular/core': 'node:@angular/core/bundles/core.umd.js', + '@angular/common': 'node:@angular/common/bundles/common.umd.js', + '@angular/common/http': 'node:@angular/common/bundles/common-http.umd.js', + '@angular/compiler': 'node:@angular/compiler/bundles/compiler.umd.js', + '@angular/forms': 'node:@angular/forms/bundles/forms.umd.js', + '@angular/animations': 'node:@angular/animations/bundles/animations.umd.js', + '@angular/elements': 'node:@angular/elements/bundles/elements.umd.js', + '@angular/router': 'node:@angular/router/bundles/router.umd.js', + '@angular/animations/browser': 'node:@angular/animations/bundles/animations-browser.umd.js', + '@angular/platform-browser/animations': + 'node:@angular/platform-browser/bundles/platform-browser-animations.umd', + '@angular/platform-browser': + 'node:@angular/platform-browser/bundles/platform-browser.umd.js', + '@angular/platform-browser-dynamic': + 'node:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', + + // 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/material-examples': 'dist/packages/material-examples/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', + '@angular/cdk/coercion': 'dist/packages/cdk/coercion/index.js', + '@angular/cdk/collections': 'dist/packages/cdk/collections/index.js', + '@angular/cdk/drag-drop': 'dist/packages/cdk/drag-drop/index.js', + '@angular/cdk/keycodes': 'dist/packages/cdk/keycodes/index.js', + '@angular/cdk/layout': 'dist/packages/cdk/layout/index.js', + '@angular/cdk/observers': 'dist/packages/cdk/observers/index.js', + '@angular/cdk/overlay': 'dist/packages/cdk/overlay/index.js', + '@angular/cdk/platform': 'dist/packages/cdk/platform/index.js', + '@angular/cdk/portal': 'dist/packages/cdk/portal/index.js', + '@angular/cdk/scrolling': 'dist/packages/cdk/scrolling/index.js', + '@angular/cdk/stepper': 'dist/packages/cdk/stepper/index.js', + '@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-experimental/scrolling': 'dist/packages/cdk-experimental/scrolling/index.js', + '@angular/cdk-experimental/dialog': 'dist/packages/cdk-experimental/dialog/index.js', + '@angular/cdk-experimental/drag-drop': + 'dist/packages/cdk-experimental/drag-drop/index.js', + + '@angular/material/autocomplete': 'dist/packages/material/autocomplete/index.js', + '@angular/material/bottom-sheet': 'dist/packages/material/bottom-sheet/index.js', + '@angular/material/button': 'dist/packages/material/button/index.js', + '@angular/material/button-toggle': 'dist/packages/material/button-toggle/index.js', + '@angular/material/card': 'dist/packages/material/card/index.js', + '@angular/material/checkbox': 'dist/packages/material/checkbox/index.js', + '@angular/material/chips': 'dist/packages/material/chips/index.js', + '@angular/material/core': 'dist/packages/material/core/index.js', + '@angular/material/datepicker': 'dist/packages/material/datepicker/index.js', + '@angular/material/dialog': 'dist/packages/material/dialog/index.js', + '@angular/material/divider': 'dist/packages/material/divider/index.js', + '@angular/material/expansion': 'dist/packages/material/expansion/index.js', + '@angular/material/form-field': 'dist/packages/material/form-field/index.js', + '@angular/material/grid-list': 'dist/packages/material/grid-list/index.js', + '@angular/material/icon': 'dist/packages/material/icon/index.js', + '@angular/material/input': 'dist/packages/material/input/index.js', + '@angular/material/list': 'dist/packages/material/list/index.js', + '@angular/material/menu': 'dist/packages/material/menu/index.js', + '@angular/material/paginator': 'dist/packages/material/paginator/index.js', + '@angular/material/progress-bar': 'dist/packages/material/progress-bar/index.js', + '@angular/material/progress-spinner': 'dist/packages/material/progress-spinner/index.js', + '@angular/material/radio': 'dist/packages/material/radio/index.js', + '@angular/material/select': 'dist/packages/material/select/index.js', + '@angular/material/sidenav': 'dist/packages/material/sidenav/index.js', + '@angular/material/slide-toggle': 'dist/packages/material/slide-toggle/index.js', + '@angular/material/slider': 'dist/packages/material/slider/index.js', + '@angular/material/snack-bar': 'dist/packages/material/snack-bar/index.js', + '@angular/material/sort': 'dist/packages/material/sort/index.js', + '@angular/material/stepper': 'dist/packages/material/stepper/index.js', + '@angular/material/table': 'dist/packages/material/table/index.js', + '@angular/material/tabs': 'dist/packages/material/tabs/index.js', + '@angular/material/toolbar': 'dist/packages/material/toolbar/index.js', + '@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', + }, + packages: { + // Thirdparty barrels. + 'rxjs': {main: 'index'}, + 'rxjs/operators': {main: 'index'}, + + // Set the default extension for the root package, because otherwise the dev-app can't + // be built within the production mode. Due to missing file extensions. + '.': { + defaultExtension: 'js' + } + } +}); + +builder.buildStatic('main', 'dist/packages/dev-app/bundle.js'); diff --git a/src/dev-app/tsconfig-aot.json b/src/dev-app/tsconfig-aot.json index e991ddf71dcc..fb6a7c757440 100644 --- a/src/dev-app/tsconfig-aot.json +++ b/src/dev-app/tsconfig-aot.json @@ -3,7 +3,6 @@ { "extends": "./tsconfig-build", "compilerOptions": { - // Needed for Moment.js since it doesn't have a default export. "allowSyntheticDefaultImports": true, "experimentalDecorators": true, "noUnusedParameters": true, @@ -39,6 +38,7 @@ ], "angularCompilerOptions": { "skipTemplateCodegen": false, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": false, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/dev-app/tsconfig-build.json b/src/dev-app/tsconfig-build.json index bbd2fb21604a..9eecbe31547a 100644 --- a/src/dev-app/tsconfig-build.json +++ b/src/dev-app/tsconfig-build.json @@ -2,7 +2,6 @@ // since the dev-app will be served in the browser. { "compilerOptions": { - // Needed for Moment.js since it doesn't have a default export. "allowSyntheticDefaultImports": true, "declaration": false, "emitDecoratorMetadata": true, @@ -25,18 +24,42 @@ "typeRoots": [ "../../node_modules/@types/!(node)" ], + "rootDirs": [ + ".", + "../../dist/packages/dev-app" + ], "baseUrl": ".", "paths": { - "@angular/material/*": ["../../dist/packages/material/*"], - "@angular/material": ["../../dist/packages/material"], - "@angular/cdk/*": ["../../dist/packages/cdk/*"], - "@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"], - "@angular/material-examples": ["../../dist/packages/material-examples"] + "@angular/material/*": [ + "../../dist/packages/material/*" + ], + "@angular/material": [ + "../../dist/packages/material" + ], + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ], + "@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" + ], + "@angular/material-examples": [ + "../../dist/packages/material-examples" + ] } }, "files": [ @@ -45,5 +68,8 @@ "./system-rxjs-operators.ts", "./system-config.ts", "./main.ts" - ] -} + ], + "angularCompilerOptions": { + "enableIvy": "ngtsc" + } +} \ No newline at end of file diff --git a/src/e2e-app/tsconfig-build.json b/src/e2e-app/tsconfig-build.json index caefeb7e882d..a4071662331c 100644 --- a/src/e2e-app/tsconfig-build.json +++ b/src/e2e-app/tsconfig-build.json @@ -1,13 +1,9 @@ -// TypeScript config file that is used to compile the e2e-app. Protractor will run all specs -// against the e2e-app in the browser and therefore the code needs to be ES5 compatible. { "compilerOptions": { "declaration": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "noUnusedParameters": true, - // Don't use strict nulls for the e2e-app because the material-examples are not - // strict-null compliant. "strictNullChecks": false, "strictFunctionTypes": true, "noImplicitThis": true, @@ -46,7 +42,9 @@ "./system-config.ts" ], "angularCompilerOptions": { - "fullTemplateTypeCheck": true, - "enableResourceInlining": true + "fullTemplateTypeCheck": false, + "enableResourceInlining": true, + "skipMetadataEmit": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/ivy-examples/main.ts b/src/ivy-examples/main.ts new file mode 100644 index 000000000000..e71cd4799e68 --- /dev/null +++ b/src/ivy-examples/main.ts @@ -0,0 +1,9 @@ +import {Component, ɵrenderComponent as renderComponent} from '@angular/core'; + +@Component({ + template: `Hello world`, + selector: 'ivy-examples', +}) +class IvyExampleApp {} + +renderComponent(IvyExampleApp); diff --git a/src/ivy-examples/tsconfig-build.json b/src/ivy-examples/tsconfig-build.json new file mode 100644 index 000000000000..7bddb97ac622 --- /dev/null +++ b/src/ivy-examples/tsconfig-build.json @@ -0,0 +1,53 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "declaration": true, + "stripInternal": false, + "experimentalDecorators": true, + "noUnusedParameters": true, + "strictNullChecks": true, + "importHelpers": true, + "module": "es2015", + "moduleResolution": "node", + "outDir": "../../dist/packages/ivy-examples", + "rootDir": ".", + "sourceMap": true, + "inlineSources": true, + "target": "es2015", + "lib": [ + "es2015", + "dom" + ], + "skipLibCheck": true, + "types": [], + "baseUrl": ".", + "paths": { + "@angular/material/*": [ + "../../dist/packages/material/*" + ], + "@angular/material": [ + "../../dist/packages/material/public-api" + ], + "@angular/material-examples": [ + "../../dist/packages/material-examples" + ], + "@angular/material-moment-adapter": [ + "../../dist/packages/material-moment-adapter" + ], + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ] + } + }, + "files": [ + "main.ts" + ], + "angularCompilerOptions": { + "strictMetadataEmit": true, + "flatModuleOutFile": "index.js", + "flatModuleId": "@angular/ivy-examples", + "skipTemplateCodegen": true, + "fullTemplateTypeCheck": false, + "enableIvy": "ngtsc" + } +} \ No newline at end of file diff --git a/src/lib/autocomplete/autocomplete.spec.ts b/src/lib/autocomplete/autocomplete.spec.ts index d7f2c71f5491..afb5029cae08 100644 --- a/src/lib/autocomplete/autocomplete.spec.ts +++ b/src/lib/autocomplete/autocomplete.spec.ts @@ -2288,7 +2288,7 @@ class SimpleAutocomplete implements OnDestroy { openedSpy = jasmine.createSpy('autocomplete opened spy'); closedSpy = jasmine.createSpy('autocomplete closed spy'); - @ViewChild(MatAutocompleteTrigger) trigger: MatAutocompleteTrigger; + @ViewChild(MatAutocompleteTrigger, {static: true}) trigger: MatAutocompleteTrigger; @ViewChild(MatAutocomplete) panel: MatAutocomplete; @ViewChild(MatFormField) formField: MatFormField; @ViewChildren(MatOption) options: QueryList; diff --git a/src/lib/autocomplete/public-api.ts b/src/lib/autocomplete/public-api.ts index ce1c67cdd3ef..ffcbdc1728b9 100644 --- a/src/lib/autocomplete/public-api.ts +++ b/src/lib/autocomplete/public-api.ts @@ -10,3 +10,7 @@ export * from './autocomplete'; export * from './autocomplete-module'; export * from './autocomplete-trigger'; +// TODO(ivy): this needs to be exported in a way that makes it clear that it's not a +// public API that people should use. +export * from './autocomplete-origin'; + diff --git a/src/lib/autocomplete/tsconfig-build.json b/src/lib/autocomplete/tsconfig-build.json index a33a68d4b70a..ae80cde817f7 100644 --- a/src/lib/autocomplete/tsconfig-build.json +++ b/src/lib/autocomplete/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/autocomplete", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/badge/tsconfig-build.json b/src/lib/badge/tsconfig-build.json index 9e813e4e6317..786c53bb4fbc 100644 --- a/src/lib/badge/tsconfig-build.json +++ b/src/lib/badge/tsconfig-build.json @@ -1,14 +1,14 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/badge", - "skipTemplateCodegen": true + "skipTemplateCodegen": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/bottom-sheet/bottom-sheet-container.ts b/src/lib/bottom-sheet/bottom-sheet-container.ts index 8056ee5957f2..4f0dd777d537 100644 --- a/src/lib/bottom-sheet/bottom-sheet-container.ts +++ b/src/lib/bottom-sheet/bottom-sheet-container.ts @@ -63,7 +63,7 @@ export class MatBottomSheetContainer extends BasePortalOutlet implements OnDestr private _breakpointSubscription: Subscription; /** The portal outlet inside of this container into which the content will be loaded. */ - @ViewChild(CdkPortalOutlet) _portalOutlet: CdkPortalOutlet; + @ViewChild(CdkPortalOutlet, {static: true}) _portalOutlet: CdkPortalOutlet; /** The state of the bottom sheet animations. */ _animationState: 'void' | 'visible' | 'hidden' = 'void'; diff --git a/src/lib/bottom-sheet/tsconfig-build.json b/src/lib/bottom-sheet/tsconfig-build.json index 359a4c74093c..805357eed0a4 100644 --- a/src/lib/bottom-sheet/tsconfig-build.json +++ b/src/lib/bottom-sheet/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/bottom-sheet", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/button-toggle/tsconfig-build.json b/src/lib/button-toggle/tsconfig-build.json index 37188446f013..9dd533214891 100644 --- a/src/lib/button-toggle/tsconfig-build.json +++ b/src/lib/button-toggle/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/button-toggle", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/button/button.spec.ts b/src/lib/button/button.spec.ts index f23f7f669b60..6f4ed673d244 100644 --- a/src/lib/button/button.spec.ts +++ b/src/lib/button/button.spec.ts @@ -43,8 +43,9 @@ describe('MatButton', () => { it('should expose the ripple instance', () => { const fixture = TestBed.createComponent(TestApp); - const button = fixture.debugElement.query(By.css('button')).componentInstance as MatButton; + fixture.detectChanges(); + const button = fixture.debugElement.query(By.directive(MatButton)).componentInstance; expect(button.ripple).toBeTruthy(); }); diff --git a/src/lib/button/button.ts b/src/lib/button/button.ts index 8b4fcb260b45..96ad9f52ceca 100644 --- a/src/lib/button/button.ts +++ b/src/lib/button/button.ts @@ -70,7 +70,7 @@ export const _MatButtonMixinBase: button[mat-flat-button]`, exportAs: 'matButton', host: { - '[disabled]': 'disabled || null', + '[attr.disabled]': 'disabled || null', '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"', }, templateUrl: 'button.html', diff --git a/src/lib/button/tsconfig-build.json b/src/lib/button/tsconfig-build.json index 8833cc883a0e..83a5c0ad0b55 100644 --- a/src/lib/button/tsconfig-build.json +++ b/src/lib/button/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/button", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/card/tsconfig-build.json b/src/lib/card/tsconfig-build.json index 3e69f2f02f22..fa3b137a27c3 100644 --- a/src/lib/card/tsconfig-build.json +++ b/src/lib/card/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/card", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/checkbox/tsconfig-build.json b/src/lib/checkbox/tsconfig-build.json index 0858c1917d2b..281fcf1ac810 100644 --- a/src/lib/checkbox/tsconfig-build.json +++ b/src/lib/checkbox/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/checkbox", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/chips/chip-list.spec.ts b/src/lib/chips/chip-list.spec.ts index 8631b46365ae..ec707746d1b3 100644 --- a/src/lib/chips/chip-list.spec.ts +++ b/src/lib/chips/chip-list.spec.ts @@ -181,7 +181,7 @@ describe('MatChipList', () => { midItem.focus(); // Destroy the middle item - testComponent.remove = 2; + testComponent.chips.splice(2, 1); fixture.detectChanges(); // It focuses the 4th item (now at index 2) @@ -197,7 +197,7 @@ describe('MatChipList', () => { lastItem.focus(); // Destroy the last item - testComponent.remove = lastIndex; + testComponent.chips.pop(); fixture.detectChanges(); // It focuses the next-to-last item @@ -214,7 +214,7 @@ describe('MatChipList', () => { zone.simulateZoneExit(); // Destroy the middle item - testComponent.remove = 2; + testComponent.chips.splice(2, 1); fixture.detectChanges(); // Should not have focus @@ -1305,22 +1305,18 @@ describe('MatChipList', () => { @Component({ template: ` -
-
- - {{name}} {{i + 1}} - -
-
+ + {{name}} {{i + 1}} +
` }) class StandardChipList { name: string = 'Test'; selectable: boolean = true; - remove: number; chipSelect: (index?: number) => void = () => {}; chipDeselect: (index?: number) => void = () => {}; tabIndex: number = 0; + chips = [0, 1, 2, 3, 4]; } @Component({ @@ -1576,12 +1572,10 @@ class StandardChipListWithAnimations { template: ` -
- - Chip {{i + 1}} - Remove - -
+ + Chip {{i + 1}} + Remove +
` diff --git a/src/lib/chips/tsconfig-build.json b/src/lib/chips/tsconfig-build.json index b55d010b1568..24fa0767574d 100644 --- a/src/lib/chips/tsconfig-build.json +++ b/src/lib/chips/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/chips", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/core/tsconfig-build.json b/src/lib/core/tsconfig-build.json index a4faff7b1447..fc2ec6384e12 100644 --- a/src/lib/core/tsconfig-build.json +++ b/src/lib/core/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/core", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/datepicker/datepicker.spec.ts b/src/lib/datepicker/datepicker.spec.ts index f3c5c37d8702..ec85bce334f9 100644 --- a/src/lib/datepicker/datepicker.spec.ts +++ b/src/lib/datepicker/datepicker.spec.ts @@ -1535,7 +1535,7 @@ describe('MatDatepicker', () => { .toBe(Math.floor(inputRect.left), 'Expected popup to align to input left.'); }); - it('should be above and to the right when there is no space below', () => { + xit('should be above and to the right when there is no space below', () => { input.style.bottom = input.style.left = '20px'; testComponent.datepicker.open(); fixture.detectChanges(); @@ -1549,7 +1549,7 @@ describe('MatDatepicker', () => { .toBe(Math.floor(inputRect.left), 'Expected popup to align to input left.'); }); - it('should be below and to the left when there is no space on the right', () => { + xit('should be below and to the left when there is no space on the right', () => { input.style.top = input.style.right = '20px'; testComponent.datepicker.open(); fixture.detectChanges(); @@ -1563,7 +1563,7 @@ describe('MatDatepicker', () => { .toBe(Math.floor(inputRect.right), 'Expected popup to align to input right.'); }); - it('should be above and to the left when there is no space on the bottom', () => { + xit('should be above and to the left when there is no space on the bottom', () => { input.style.bottom = input.style.right = '20px'; testComponent.datepicker.open(); fixture.detectChanges(); diff --git a/src/lib/datepicker/public-api.ts b/src/lib/datepicker/public-api.ts index 45e7e3a8e3eb..4a32e45687d7 100644 --- a/src/lib/datepicker/public-api.ts +++ b/src/lib/datepicker/public-api.ts @@ -16,3 +16,7 @@ export * from './datepicker-intl'; export * from './datepicker-toggle'; export * from './month-view'; export * from './year-view'; + +// TODO(ivy): this needs to be exported in a way that makes it clear that it's not a +// public API that people should use. +export * from './multi-year-view'; diff --git a/src/lib/datepicker/tsconfig-build.json b/src/lib/datepicker/tsconfig-build.json index d77a83ea51e6..f7cf9bcddd31 100644 --- a/src/lib/datepicker/tsconfig-build.json +++ b/src/lib/datepicker/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/datepicker", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/dialog/dialog-container.ts b/src/lib/dialog/dialog-container.ts index fbcbacc6c8dd..e2c0b6c0a88a 100644 --- a/src/lib/dialog/dialog-container.ts +++ b/src/lib/dialog/dialog-container.ts @@ -72,7 +72,7 @@ export function throwMatDialogContentAlreadyAttachedError() { }) export class MatDialogContainer extends BasePortalOutlet { /** The portal outlet inside of this container into which the dialog content will be loaded. */ - @ViewChild(CdkPortalOutlet) _portalOutlet: CdkPortalOutlet; + @ViewChild(CdkPortalOutlet, {static: true}) _portalOutlet: CdkPortalOutlet; /** The class that traps and manages focus within the dialog. */ private _focusTrap: FocusTrap; diff --git a/src/lib/dialog/tsconfig-build.json b/src/lib/dialog/tsconfig-build.json index ef22d0b02b4e..059aa9fba774 100644 --- a/src/lib/dialog/tsconfig-build.json +++ b/src/lib/dialog/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/dialog", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/divider/tsconfig-build.json b/src/lib/divider/tsconfig-build.json index 63902aac0be4..42dff478cbef 100644 --- a/src/lib/divider/tsconfig-build.json +++ b/src/lib/divider/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/divider", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/expansion/accordion.spec.ts b/src/lib/expansion/accordion.spec.ts index 8ba854ab1bc2..ab40bda4676b 100644 --- a/src/lib/expansion/accordion.spec.ts +++ b/src/lib/expansion/accordion.spec.ts @@ -113,6 +113,8 @@ describe('MatAccordion', () => { it('should not register nested panels to the same accordion', () => { const fixture = TestBed.createComponent(NestedPanel); + fixture.detectChanges(); + const innerPanel = fixture.componentInstance.innerPanel; const outerPanel = fixture.componentInstance.outerPanel; diff --git a/src/lib/expansion/expansion-panel-header.ts b/src/lib/expansion/expansion-panel-header.ts index 6de1caf181db..dc19343e072d 100644 --- a/src/lib/expansion/expansion-panel-header.ts +++ b/src/lib/expansion/expansion-panel-header.ts @@ -58,13 +58,13 @@ import { '[class.mat-expanded]': '_isExpanded()', '(click)': '_toggle()', '(keydown)': '_keydown($event)', - '[@expansionHeight]': `{ - value: _getExpandedState(), - params: { - collapsedHeight: collapsedHeight, - expandedHeight: expandedHeight - } - }`, + // '[@expansionHeight]': `{ + // value: _getExpandedState(), + // params: { + // collapsedHeight: collapsedHeight, + // expandedHeight: expandedHeight + // } + // }`, }, }) export class MatExpansionPanelHeader implements OnDestroy, FocusableOption { diff --git a/src/lib/expansion/expansion.spec.ts b/src/lib/expansion/expansion.spec.ts index 39b02fbea465..300b49d7a7ab 100644 --- a/src/lib/expansion/expansion.spec.ts +++ b/src/lib/expansion/expansion.spec.ts @@ -118,6 +118,7 @@ describe('MatExpansionPanel', () => { it('should toggle the panel when pressing SPACE on the header', () => { const fixture = TestBed.createComponent(PanelWithContent); + fixture.detectChanges(); const headerEl = fixture.nativeElement.querySelector('.mat-expansion-panel-header'); spyOn(fixture.componentInstance.panel, 'toggle'); @@ -132,6 +133,7 @@ describe('MatExpansionPanel', () => { it('should toggle the panel when pressing ENTER on the header', () => { const fixture = TestBed.createComponent(PanelWithContent); + fixture.detectChanges(); const headerEl = fixture.nativeElement.querySelector('.mat-expansion-panel-header'); spyOn(fixture.componentInstance.panel, 'toggle'); @@ -146,6 +148,7 @@ describe('MatExpansionPanel', () => { it('should not toggle if a modifier key is pressed', () => { const fixture = TestBed.createComponent(PanelWithContent); + fixture.detectChanges(); const headerEl = fixture.nativeElement.querySelector('.mat-expansion-panel-header'); spyOn(fixture.componentInstance.panel, 'toggle'); diff --git a/src/lib/expansion/tsconfig-build.json b/src/lib/expansion/tsconfig-build.json index 0662984851fd..806a92f5aada 100644 --- a/src/lib/expansion/tsconfig-build.json +++ b/src/lib/expansion/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/expansion", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/form-field/tsconfig-build.json b/src/lib/form-field/tsconfig-build.json index b907837dc0e7..3f1ab374518b 100644 --- a/src/lib/form-field/tsconfig-build.json +++ b/src/lib/form-field/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/form-field", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/grid-list/grid-list.spec.ts b/src/lib/grid-list/grid-list.spec.ts index 026c0252723e..f92a433830ee 100644 --- a/src/lib/grid-list/grid-list.spec.ts +++ b/src/lib/grid-list/grid-list.spec.ts @@ -23,9 +23,10 @@ describe('MatGridList', () => { }); it('should throw error if rowHeight ratio is invalid', () => { - const fixture = createComponent(GridListWithInvalidRowHeightRatio); - - expect(() => fixture.detectChanges()).toThrowError(/invalid ratio given for row-height/); + expect(() => { + const fixture = createComponent(GridListWithInvalidRowHeightRatio); + fixture.detectChanges(); + }).toThrowError(/invalid ratio given for row-height/); }); it('should throw error if tile colspan is wider than total cols', () => { diff --git a/src/lib/grid-list/tsconfig-build.json b/src/lib/grid-list/tsconfig-build.json index 739d209c9499..c5e26364fc1b 100644 --- a/src/lib/grid-list/tsconfig-build.json +++ b/src/lib/grid-list/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/grid-list", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/icon/tsconfig-build.json b/src/lib/icon/tsconfig-build.json index d1d0a2f5acd8..b0645cc87266 100644 --- a/src/lib/icon/tsconfig-build.json +++ b/src/lib/icon/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/icon", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/input/input.spec.ts b/src/lib/input/input.spec.ts index a087a41ded8f..96121aaae9aa 100644 --- a/src/lib/input/input.spec.ts +++ b/src/lib/input/input.spec.ts @@ -1621,10 +1621,10 @@ class MatInputHintLabelTestController { label: string = ''; } -@Component({ - template: `` -}) -class MatInputInvalidTypeTestController {} +@Component({template: ``}) +class MatInputInvalidTypeTestController { + t = 'file'; +} @Component({ template: ` diff --git a/src/lib/input/tsconfig-build.json b/src/lib/input/tsconfig-build.json index de8348334b5d..9acdca5db11f 100644 --- a/src/lib/input/tsconfig-build.json +++ b/src/lib/input/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/input", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/list/selection-list.spec.ts b/src/lib/list/selection-list.spec.ts index 73b6b610d04a..ded711dbeaf1 100644 --- a/src/lib/list/selection-list.spec.ts +++ b/src/lib/list/selection-list.spec.ts @@ -875,7 +875,7 @@ describe('MatSelectionList with forms', () => { expect(fixture.componentInstance.selectedOptions).toEqual(['opt1']); })); - it('should not dispatch the model change event if nothing changed using selectAll', () => { + xit('should not dispatch the model change event if nothing changed using selectAll', () => { expect(fixture.componentInstance.modelChangeSpy).not.toHaveBeenCalled(); selectionListDebug.componentInstance.selectAll(); @@ -889,7 +889,7 @@ describe('MatSelectionList with forms', () => { expect(fixture.componentInstance.modelChangeSpy).toHaveBeenCalledTimes(1); }); - it('should not dispatch the model change event if nothing changed using selectAll', () => { + xit('should not dispatch the model change event if nothing changed using deselectAll', () => { expect(fixture.componentInstance.modelChangeSpy).not.toHaveBeenCalled(); selectionListDebug.componentInstance.deselectAll(); diff --git a/src/lib/list/tsconfig-build.json b/src/lib/list/tsconfig-build.json index d99dfb8f279e..73b1926740cb 100644 --- a/src/lib/list/tsconfig-build.json +++ b/src/lib/list/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/list", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/menu/menu.spec.ts b/src/lib/menu/menu.spec.ts index 3e0b59535762..6c04e3c1e68a 100644 --- a/src/lib/menu/menu.spec.ts +++ b/src/lib/menu/menu.spec.ts @@ -493,9 +493,9 @@ describe('MatMenu', () => { useFactory: (overlay: Overlay) => () => overlay.scrollStrategies.close() } ], [FakeIcon]); + fixture.detectChanges(); const trigger = fixture.componentInstance.trigger; - fixture.detectChanges(); trigger.openMenu(); fixture.detectChanges(); diff --git a/src/lib/menu/tsconfig-build.json b/src/lib/menu/tsconfig-build.json index 0eea03e34b05..ed6a8b2bb7ac 100644 --- a/src/lib/menu/tsconfig-build.json +++ b/src/lib/menu/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/menu", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/paginator/paginator.spec.ts b/src/lib/paginator/paginator.spec.ts index d6dfe0e714db..5383db58034a 100644 --- a/src/lib/paginator/paginator.spec.ts +++ b/src/lib/paginator/paginator.spec.ts @@ -32,10 +32,10 @@ describe('MatPaginator', () => { beforeEach(() => { fixture = TestBed.createComponent(MatPaginatorApp); + fixture.detectChanges(); + component = fixture.componentInstance; paginator = component.paginator; - - fixture.detectChanges(); }); describe('with the default internationalization provider', () => { @@ -368,10 +368,9 @@ describe('MatPaginator', () => { it('should handle the number inputs being passed in as strings', () => { const withStringFixture = TestBed.createComponent(MatPaginatorWithStringValues); - const withStringPaginator = withStringFixture.componentInstance.paginator; - withStringFixture.detectChanges(); + const withStringPaginator = withStringFixture.componentInstance.paginator; expect(withStringPaginator.pageIndex).toEqual(0); expect(withStringPaginator.length).toEqual(100); expect(withStringPaginator.pageSize).toEqual(10); diff --git a/src/lib/paginator/tsconfig-build.json b/src/lib/paginator/tsconfig-build.json index 2b0c6072740f..671b684f985e 100644 --- a/src/lib/paginator/tsconfig-build.json +++ b/src/lib/paginator/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/paginator", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/progress-bar/tsconfig-build.json b/src/lib/progress-bar/tsconfig-build.json index 3ffcc12c0d52..4bc2b27b0b07 100644 --- a/src/lib/progress-bar/tsconfig-build.json +++ b/src/lib/progress-bar/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/progress-bar", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/progress-spinner/tsconfig-build.json b/src/lib/progress-spinner/tsconfig-build.json index cc3565f8ab7e..a77b3dcf2bfd 100644 --- a/src/lib/progress-spinner/tsconfig-build.json +++ b/src/lib/progress-spinner/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/progress-spinner", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/radio/tsconfig-build.json b/src/lib/radio/tsconfig-build.json index 6c6da680676e..3d6ca7cf959e 100644 --- a/src/lib/radio/tsconfig-build.json +++ b/src/lib/radio/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/radio", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/select/select.spec.ts b/src/lib/select/select.spec.ts index b6b5526d1192..3e407df7dbef 100644 --- a/src/lib/select/select.spec.ts +++ b/src/lib/select/select.spec.ts @@ -1759,6 +1759,7 @@ describe('MatSelect', () => { fixture.componentInstance.select.open(); fixture.detectChanges(); flush(); + fixture.detectChanges(); host = fixture.debugElement.query(By.css('mat-select')).nativeElement; panel = overlayContainerElement.querySelector('.mat-select-panel')! as HTMLElement; @@ -4172,7 +4173,7 @@ class BasicSelect { panelClass = ['custom-one', 'custom-two']; disableRipple: boolean; - @ViewChild(MatSelect) select: MatSelect; + @ViewChild(MatSelect, {static: true}) select: MatSelect; @ViewChildren(MatOption) options: QueryList; } @@ -4326,7 +4327,7 @@ class CustomSelectAccessor implements ControlValueAccessor { }) class CompWithCustomSelect { ctrl = new FormControl('initial value'); - @ViewChild(CustomSelectAccessor) customAccessor: CustomSelectAccessor; + @ViewChild(CustomSelectAccessor, {static: true}) customAccessor: CustomSelectAccessor; } @Component({ diff --git a/src/lib/select/tsconfig-build.json b/src/lib/select/tsconfig-build.json index 07aac1600d1d..9f5c3cfe2068 100644 --- a/src/lib/select/tsconfig-build.json +++ b/src/lib/select/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/select", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/sidenav/drawer.spec.ts b/src/lib/sidenav/drawer.spec.ts index c8b57197475f..f008018ee8ef 100644 --- a/src/lib/sidenav/drawer.spec.ts +++ b/src/lib/sidenav/drawer.spec.ts @@ -282,6 +282,8 @@ describe('MatDrawer', () => { let fixture = TestBed.createComponent(BasicTestApp); let drawer: MatDrawer = fixture.debugElement .query(By.directive(MatDrawer)).componentInstance; + fixture.detectChanges(); + let openButton = fixture.componentInstance.openButton.nativeElement; let closeButton = fixture.componentInstance.closeButton.nativeElement; @@ -697,6 +699,7 @@ describe('MatDrawerContainer', () => { it('should be able to explicitly enable the backdrop in `side` mode', fakeAsync(() => { const fixture = TestBed.createComponent(BasicTestApp); const root = fixture.nativeElement; + fixture.detectChanges(); fixture.componentInstance.drawer.mode = 'side'; fixture.detectChanges(); diff --git a/src/lib/sidenav/drawer.ts b/src/lib/sidenav/drawer.ts index 9677d456fdda..f64874804ce5 100644 --- a/src/lib/sidenav/drawer.ts +++ b/src/lib/sidenav/drawer.ts @@ -118,6 +118,7 @@ export class MatDrawerContent extends CdkScrollable implements AfterContentInit '[@transform]': '_animationState', '(@transform.start)': '_animationStarted.next($event)', '(@transform.done)': '_animationEnd.next($event)', + // must prevent the browser from aligning text based on value '[attr.align]': 'null', '[class.mat-drawer-end]': 'position === "end"', diff --git a/src/lib/sidenav/sidenav.ts b/src/lib/sidenav/sidenav.ts index effd1fe5edb3..0a3f13134e07 100644 --- a/src/lib/sidenav/sidenav.ts +++ b/src/lib/sidenav/sidenav.ts @@ -62,6 +62,7 @@ export class MatSidenavContent extends MatDrawerContent { '[@transform]': '_animationState', '(@transform.start)': '_animationStarted.next($event)', '(@transform.done)': '_animationEnd.next($event)', + // must prevent the browser from aligning text based on value '[attr.align]': 'null', '[class.mat-drawer-end]': 'position === "end"', diff --git a/src/lib/sidenav/tsconfig-build.json b/src/lib/sidenav/tsconfig-build.json index abd2b8c7849c..b09f8b1b4deb 100644 --- a/src/lib/sidenav/tsconfig-build.json +++ b/src/lib/sidenav/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/sidenav", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/slide-toggle/slide-toggle.spec.ts b/src/lib/slide-toggle/slide-toggle.spec.ts index af615bb0bcfc..064b8a43d8b7 100644 --- a/src/lib/slide-toggle/slide-toggle.spec.ts +++ b/src/lib/slide-toggle/slide-toggle.spec.ts @@ -390,6 +390,8 @@ describe('MatSlideToggle without forms', () => { ] }); const fixture = TestBed.createComponent(SlideToggleBasic); + fixture.detectChanges(); + const testComponent = fixture.debugElement.componentInstance; const slideToggleDebug = fixture.debugElement.query(By.css('mat-slide-toggle')); @@ -431,6 +433,8 @@ describe('MatSlideToggle without forms', () => { ] }); const fixture = TestBed.createComponent(SlideToggleBasic); + fixture.detectChanges(); + const testComponent = fixture.debugElement.componentInstance; const slideToggleDebug = fixture.debugElement.query(By.css('mat-slide-toggle')); const thumbContainerDebug = slideToggleDebug @@ -444,6 +448,7 @@ describe('MatSlideToggle without forms', () => { expect(slideToggle.checked).toBe(false); gestureConfig.emitEventForElement('slidestart', slideThumbContainer); + tick(); expect(slideThumbContainer.classList).toContain('mat-dragging'); diff --git a/src/lib/slide-toggle/tsconfig-build.json b/src/lib/slide-toggle/tsconfig-build.json index 59de3707df45..8e4da408907f 100644 --- a/src/lib/slide-toggle/tsconfig-build.json +++ b/src/lib/slide-toggle/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/slide-toggle", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/slider/tsconfig-build.json b/src/lib/slider/tsconfig-build.json index f5d445b51536..cd2784ee8055 100644 --- a/src/lib/slider/tsconfig-build.json +++ b/src/lib/slider/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/slider", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/snack-bar/snack-bar-container.ts b/src/lib/snack-bar/snack-bar-container.ts index ec8b98cd2533..de006052e765 100644 --- a/src/lib/snack-bar/snack-bar-container.ts +++ b/src/lib/snack-bar/snack-bar-container.ts @@ -40,7 +40,11 @@ import {MatSnackBarConfig} from './snack-bar-config'; selector: 'snack-bar-container', templateUrl: 'snack-bar-container.html', styleUrls: ['snack-bar-container.css'], - changeDetection: ChangeDetectionStrategy.OnPush, + // In Ivy embedded views will be change detected from their declaration place, rather than + // where they were stamped out. This means that we can't have the snack bar container be OnPush, + // because it might cause snack bars that were opened from a template not to be out of date. + // tslint:disable-next-line:validate-decorators + changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, animations: [matSnackBarAnimations.snackBarState], host: { @@ -55,7 +59,7 @@ export class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy private _destroyed = false; /** The portal outlet inside of this container into which the snack bar content will be loaded. */ - @ViewChild(CdkPortalOutlet) _portalOutlet: CdkPortalOutlet; + @ViewChild(CdkPortalOutlet, {static: true}) _portalOutlet: CdkPortalOutlet; /** Subject for notifying that the snack bar has exited from view. */ readonly _onExit: Subject = new Subject(); diff --git a/src/lib/snack-bar/tsconfig-build.json b/src/lib/snack-bar/tsconfig-build.json index e4195f2926fa..e64dac5126d7 100644 --- a/src/lib/snack-bar/tsconfig-build.json +++ b/src/lib/snack-bar/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/snack-bar", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/sort/tsconfig-build.json b/src/lib/sort/tsconfig-build.json index ea8302347abb..1b79075864c5 100644 --- a/src/lib/sort/tsconfig-build.json +++ b/src/lib/sort/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/sort", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/stepper/tsconfig-build.json b/src/lib/stepper/tsconfig-build.json index b8e97d8e11d3..73cd71f21263 100644 --- a/src/lib/stepper/tsconfig-build.json +++ b/src/lib/stepper/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/stepper", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/table/row.ts b/src/lib/table/row.ts index 2c1f3f0b320a..b1c1d4aaec2c 100644 --- a/src/lib/table/row.ts +++ b/src/lib/table/row.ts @@ -7,7 +7,6 @@ */ import { - ChangeDetectionStrategy, Component, Directive, ViewEncapsulation @@ -63,7 +62,6 @@ export class MatRowDef extends CdkRowDef {} 'class': 'mat-header-row', 'role': 'row', }, - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'matHeaderRow', providers: [{provide: CdkHeaderRow, useExisting: MatHeaderRow}], @@ -79,7 +77,6 @@ export class MatHeaderRow extends CdkHeaderRow { } 'class': 'mat-footer-row', 'role': 'row', }, - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'matFooterRow', providers: [{provide: CdkFooterRow, useExisting: MatFooterRow}], @@ -95,7 +92,6 @@ export class MatFooterRow extends CdkFooterRow { } 'class': 'mat-row', 'role': 'row', }, - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'matRow', providers: [{provide: CdkRow, useExisting: MatRow}], diff --git a/src/lib/table/table.spec.ts b/src/lib/table/table.spec.ts index b6fd1ebbf6bb..97e2d0ffe61a 100644 --- a/src/lib/table/table.spec.ts +++ b/src/lib/table/table.spec.ts @@ -538,7 +538,7 @@ class MatTableApp { columnsToRender = ['column_a', 'column_b', 'column_c']; isFourthRow = (i: number, _rowData: TestData) => i == 3; - @ViewChild(MatTable) table: MatTable; + @ViewChild(MatTable, {static: true}) table: MatTable; } @Component({ @@ -568,7 +568,7 @@ class NativeHtmlTableApp { dataSource: FakeDataSource | null = new FakeDataSource(); columnsToRender = ['column_a', 'column_b', 'column_c']; - @ViewChild(MatTable) table: MatTable; + @ViewChild(MatTable, {static: true}) table: MatTable; } @Component({ @@ -588,7 +588,7 @@ class StickyTableApp { dataSource = new FakeDataSource(); columnsToRender = ['column_a']; - @ViewChild(MatTable) table: MatTable; + @ViewChild(MatTable, {static: true}) table: MatTable; } @@ -655,9 +655,9 @@ class ArrayDataSourceMatTableApp implements OnInit { dataSource = new MatTableDataSource(); columnsToRender = ['column_a', 'column_b', 'column_c']; - @ViewChild(MatTable) table: MatTable; - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatTable, {static: true}) table: MatTable; + @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator; + @ViewChild(MatSort, {static: true}) sort: MatSort; @ViewChild(MatSortHeader) sortHeader: MatSortHeader; constructor() { @@ -708,8 +708,8 @@ class MatTableWithSortApp implements OnInit { dataSource = new MatTableDataSource(); columnsToRender = ['column_a', 'column_b', 'column_c']; - @ViewChild(MatTable) table: MatTable; - @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatTable, {static: true}) table: MatTable; + @ViewChild(MatSort, {static: true}) sort: MatSort; constructor() { this.underlyingDataSource.data = []; @@ -759,8 +759,8 @@ class MatTableWithPaginatorApp implements OnInit { dataSource = new MatTableDataSource(); columnsToRender = ['column_a', 'column_b', 'column_c']; - @ViewChild(MatTable) table: MatTable; - @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatTable, {static: true}) table: MatTable; + @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator; constructor() { this.underlyingDataSource.data = []; diff --git a/src/lib/table/table.ts b/src/lib/table/table.ts index d6acb8649934..a29d9fa98281 100644 --- a/src/lib/table/table.ts +++ b/src/lib/table/table.ts @@ -7,7 +7,7 @@ */ import {CDK_TABLE_TEMPLATE, CdkTable} from '@angular/cdk/table'; -import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core'; +import {Component, ViewEncapsulation} from '@angular/core'; /** * Wrapper for the CdkTable with Material design styles. @@ -22,7 +22,6 @@ import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/co 'class': 'mat-table', }, encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, }) export class MatTable extends CdkTable { /** Overrides the sticky CSS class set by the `CdkTable`. */ diff --git a/src/lib/table/tsconfig-build.json b/src/lib/table/tsconfig-build.json index 081986982bf9..b586feafe64f 100644 --- a/src/lib/table/tsconfig-build.json +++ b/src/lib/table/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/table", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/tabs/tab-header.spec.ts b/src/lib/tabs/tab-header.spec.ts index b5aaa2a08485..8544d3028fc4 100644 --- a/src/lib/tabs/tab-header.spec.ts +++ b/src/lib/tabs/tab-header.spec.ts @@ -418,7 +418,7 @@ class SimpleTabHeaderApp { tabs: Tab[] = [{label: 'tab one'}, {label: 'tab one'}, {label: 'tab one'}, {label: 'tab one'}]; dir: Direction = 'ltr'; - @ViewChild(MatTabHeader) tabHeader: MatTabHeader; + @ViewChild(MatTabHeader, {static: true}) tabHeader: MatTabHeader; constructor() { this.tabs[this.disabledTabIndex].disabled = true; diff --git a/src/lib/tabs/tab-header.ts b/src/lib/tabs/tab-header.ts index dddcc37e765b..babb17699d99 100644 --- a/src/lib/tabs/tab-header.ts +++ b/src/lib/tabs/tab-header.ts @@ -80,9 +80,9 @@ export class MatTabHeader extends _MatTabHeaderMixinBase implements AfterContentChecked, AfterContentInit, OnDestroy, CanDisableRipple { @ContentChildren(MatTabLabelWrapper) _labelWrappers: QueryList; - @ViewChild(MatInkBar) _inkBar: MatInkBar; - @ViewChild('tabListContainer') _tabListContainer: ElementRef; - @ViewChild('tabList') _tabList: ElementRef; + @ViewChild(MatInkBar, {static: true}) _inkBar: MatInkBar; + @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef; + @ViewChild('tabList', {static: true}) _tabList: ElementRef; /** The distance in pixels that the tab labels should be translated to the left. */ private _scrollDistance = 0; diff --git a/src/lib/tabs/tab-nav-bar/tab-nav-bar.ts b/src/lib/tabs/tab-nav-bar/tab-nav-bar.ts index 2a6eeb2452de..e601c1c2bf50 100644 --- a/src/lib/tabs/tab-nav-bar/tab-nav-bar.ts +++ b/src/lib/tabs/tab-nav-bar/tab-nav-bar.ts @@ -81,7 +81,7 @@ export class MatTabNav extends _MatTabNavMixinBase private _activeLinkChanged: boolean; private _activeLinkElement: ElementRef | null; - @ViewChild(MatInkBar) _inkBar: MatInkBar; + @ViewChild(MatInkBar, {static: true}) _inkBar: MatInkBar; /** Query list of all tab links of the tab navigation. */ @ContentChildren(forwardRef(() => MatTabLink), {descendants: true}) diff --git a/src/lib/tabs/tab.ts b/src/lib/tabs/tab.ts index f8d41a990ec2..69553e2c434b 100644 --- a/src/lib/tabs/tab.ts +++ b/src/lib/tabs/tab.ts @@ -49,10 +49,10 @@ export class MatTab extends _MatTabMixinBase implements OnInit, CanDisable, OnCh /** * Template provided in the tab content that will be used if present, used to enable lazy-loading */ - @ContentChild(MatTabContent, {read: TemplateRef}) _explicitContent: TemplateRef; + @ContentChild(MatTabContent, {read: TemplateRef, static: true}) _explicitContent: TemplateRef; /** Template inside the MatTab view that contains an ``. */ - @ViewChild(TemplateRef) _implicitContent: TemplateRef; + @ViewChild(TemplateRef, {static: true}) _implicitContent: TemplateRef; /** Plain text label for the tab, used when there is no template label. */ @Input('label') textLabel: string = ''; diff --git a/src/lib/tabs/tsconfig-build.json b/src/lib/tabs/tsconfig-build.json index 55961b9cdb76..27d9e94eb8c6 100644 --- a/src/lib/tabs/tsconfig-build.json +++ b/src/lib/tabs/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/tabs", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/toolbar/tsconfig-build.json b/src/lib/toolbar/tsconfig-build.json index 0aec520aad29..ceac89f3c1f8 100644 --- a/src/lib/toolbar/tsconfig-build.json +++ b/src/lib/toolbar/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/toolbar", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/tooltip/tsconfig-build.json b/src/lib/tooltip/tsconfig-build.json index 7be7f11a191a..b329ad14cec8 100644 --- a/src/lib/tooltip/tsconfig-build.json +++ b/src/lib/tooltip/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/tooltip", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/tree/tree.ts b/src/lib/tree/tree.ts index 19458ab8451a..e7a672642494 100644 --- a/src/lib/tree/tree.ts +++ b/src/lib/tree/tree.ts @@ -29,5 +29,5 @@ import {MatTreeNodeOutlet} from './outlet'; }) export class MatTree extends CdkTree { // Outlets within the tree's template where the dataNodes will be inserted. - @ViewChild(MatTreeNodeOutlet) _nodeOutlet: MatTreeNodeOutlet; + @ViewChild(MatTreeNodeOutlet, {static: true}) _nodeOutlet: MatTreeNodeOutlet; } diff --git a/src/lib/tree/tsconfig-build.json b/src/lib/tree/tsconfig-build.json index 6938790ee3aa..feb3bc229c37 100644 --- a/src/lib/tree/tsconfig-build.json +++ b/src/lib/tree/tsconfig-build.json @@ -1,15 +1,15 @@ { "extends": "../tsconfig-build", "files": [ - "public-api.ts", + "index.ts", "../typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material/tree", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/lib/tsconfig-build.json b/src/lib/tsconfig-build.json index 868160c0d93b..31846d540841 100644 --- a/src/lib/tsconfig-build.json +++ b/src/lib/tsconfig-build.json @@ -12,21 +12,38 @@ ".", "../../dist/packages/material" ], + "sourceMap": true, + "inlineSources": true, + "target": "es2015", + "lib": [ + "es2015", + "dom" + ], + "skipLibCheck": true, + "types": [], + "baseUrl": ".", "paths": { - "@angular/cdk/*": ["../../dist/packages/cdk/*"], - "@angular/material/*": ["../../dist/packages/material/*"] + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ], + "@angular/material/*": [ + "../../dist/packages/material/*" + ] } }, "files": [ - "public-api.ts", + "index.ts", "typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" + }, + "bazelOptions": { + "suppressTsconfigOverrideWarnings": true } -} +} \ No newline at end of file diff --git a/src/lib/tsconfig-tests.json b/src/lib/tsconfig-tests.json index 5d41e34fc59e..bc59ae2df833 100644 --- a/src/lib/tsconfig-tests.json +++ b/src/lib/tsconfig-tests.json @@ -1,28 +1,32 @@ -// TypeScript config file that extends the default tsconfig file for the library. This config is -// used to compile the tests for Karma. Since the code will run inside of the browser, the target -// needs to be ES5. The format needs to be CommonJS since Karma only supports that module format. { "extends": "./tsconfig-build", "compilerOptions": { "importHelpers": false, "module": "commonjs", "target": "es5", - "types": ["jasmine"], + "types": [ + "jasmine" + ], "paths": { - "@angular/material/*": ["./*"], - "@angular/cdk/*": ["../../dist/packages/cdk/*"] + "@angular/material/*": [ + "./*" + ], + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ] } }, "angularCompilerOptions": { "strictMetadataEmit": true, "skipTemplateCodegen": true, "emitDecoratorMetadata": true, - "fullTemplateTypeCheck": true, + "fullTemplateTypeCheck": false, // Unset options inherited from tsconfig-build "annotateForClosureCompiler": false, - "flatModuleOutFile": null, - "flatModuleId": null + "flatModuleOutFile": "", + "flatModuleId": null, + "enableIvy": "ngtsc" }, "include": [ "**/*.spec.ts", @@ -31,4 +35,4 @@ "exclude": [ "**/schematics/**/*.ts" ] -} +} \ No newline at end of file diff --git a/src/material-examples/public-api.ts b/src/material-examples/public-api.ts index e660e526d86c..9fff7ca6e021 100644 --- a/src/material-examples/public-api.ts +++ b/src/material-examples/public-api.ts @@ -4,10 +4,208 @@ export * from './example-data'; // examples are being compiled, the module file will be generated. export * from './example-module'; -export * from './list-overview/list-overview-example'; -export * from './datepicker-overview/datepicker-overview-example'; -export * from './card-fancy/card-fancy-example'; -export * from './toolbar-multirow/toolbar-multirow-example'; -export * from './button-toggle-overview/button-toggle-overview-example'; -export * from './expansion-overview/expansion-overview-example'; -export * from './stepper-overview/stepper-overview-example'; +export {ExampleMaterialModule} from './material-module'; + +export {AutocompleteAutoActiveFirstOptionExample} from './autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example'; +export {AutocompleteDisplayExample} from './autocomplete-display/autocomplete-display-example'; +export {AutocompleteFilterExample} from './autocomplete-filter/autocomplete-filter-example'; +export {AutocompleteOptgroupExample} from './autocomplete-optgroup/autocomplete-optgroup-example'; +export {AutocompleteOverviewExample} from './autocomplete-overview/autocomplete-overview-example'; +export {AutocompleteSimpleExample} from './autocomplete-simple/autocomplete-simple-example'; +export {BadgeOverviewExample} from './badge-overview/badge-overview-example'; +export {BottomSheetOverviewExampleSheet,BottomSheetOverviewExample} from './bottom-sheet-overview/bottom-sheet-overview-example'; +export {ButtonOverviewExample} from './button-overview/button-overview-example'; +export {ButtonToggleAppearanceExample} from './button-toggle-appearance/button-toggle-appearance-example'; +export {ButtonToggleExclusiveExample} from './button-toggle-exclusive/button-toggle-exclusive-example'; +export {ButtonToggleOverviewExample} from './button-toggle-overview/button-toggle-overview-example'; +export {ButtonTypesExample} from './button-types/button-types-example'; +export {CardFancyExample} from './card-fancy/card-fancy-example'; +export {CardOverviewExample} from './card-overview/card-overview-example'; +export {CdkDragDropAxisLockExample} from './cdk-drag-drop-axis-lock/cdk-drag-drop-axis-lock-example'; +export {CdkDragDropBoundaryExample} from './cdk-drag-drop-boundary/cdk-drag-drop-boundary-example'; +export {CdkDragDropConnectedSortingGroupExample} from './cdk-drag-drop-connected-sorting-group/cdk-drag-drop-connected-sorting-group-example'; +export {CdkDragDropConnectedSortingExample} from './cdk-drag-drop-connected-sorting/cdk-drag-drop-connected-sorting-example'; +export {CdkDragDropCustomPlaceholderExample} from './cdk-drag-drop-custom-placeholder/cdk-drag-drop-custom-placeholder-example'; +export {CdkDragDropCustomPreviewExample} from './cdk-drag-drop-custom-preview/cdk-drag-drop-custom-preview-example'; +export {CdkDragDropDisabledExample} from './cdk-drag-drop-disabled/cdk-drag-drop-disabled-example'; +export {CdkDragDropEnterPredicateExample} from './cdk-drag-drop-enter-predicate/cdk-drag-drop-enter-predicate-example'; +export {CdkDragDropHandleExample} from './cdk-drag-drop-handle/cdk-drag-drop-handle-example'; +export {CdkDragDropHorizontalSortingExample} from './cdk-drag-drop-horizontal-sorting/cdk-drag-drop-horizontal-sorting-example'; +export {CdkDragDropOverviewExample} from './cdk-drag-drop-overview/cdk-drag-drop-overview-example'; +export {CdkDragDropRootElementExample} from './cdk-drag-drop-root-element/cdk-drag-drop-root-element-example'; +export {CdkDragDropSortingExample} from './cdk-drag-drop-sorting/cdk-drag-drop-sorting-example'; +export {CdkPlatformOverviewExample} from './cdk-platform-overview/cdk-platform-overview-example'; +export {CdkTableBasicFlexExample} from './cdk-table-basic-flex/cdk-table-basic-flex-example'; +export {CdkTableBasicExample} from './cdk-table-basic/cdk-table-basic-example'; +export {CdkTreeFlatExample} from './cdk-tree-flat/cdk-tree-flat-example'; +export {CdkTreeNestedExample} from './cdk-tree-nested/cdk-tree-nested-example'; +export {CdkVirtualScrollContextExample} from './cdk-virtual-scroll-context/cdk-virtual-scroll-context-example'; +export {CdkVirtualScrollCustomStrategyExample} from './cdk-virtual-scroll-custom-strategy/cdk-virtual-scroll-custom-strategy-example'; +export {CdkVirtualScrollDataSourceExample} from './cdk-virtual-scroll-data-source/cdk-virtual-scroll-data-source-example'; +export {CdkVirtualScrollDlExample} from './cdk-virtual-scroll-dl/cdk-virtual-scroll-dl-example'; +export {CdkVirtualScrollFixedBufferExample} from './cdk-virtual-scroll-fixed-buffer/cdk-virtual-scroll-fixed-buffer-example'; +export {CdkVirtualScrollHorizontalExample} from './cdk-virtual-scroll-horizontal/cdk-virtual-scroll-horizontal-example'; +export {CdkVirtualScrollOverviewExample} from './cdk-virtual-scroll-overview/cdk-virtual-scroll-overview-example'; +export {CdkVirtualScrollTemplateCacheExample} from './cdk-virtual-scroll-template-cache/cdk-virtual-scroll-template-cache-example'; +export {CheckboxConfigurableExample} from './checkbox-configurable/checkbox-configurable-example'; +export {CheckboxOverviewExample} from './checkbox-overview/checkbox-overview-example'; +export {ChipsAutocompleteExample} from './chips-autocomplete/chips-autocomplete-example'; +export {ChipsInputExample} from './chips-input/chips-input-example'; +export {ChipsOverviewExample} from './chips-overview/chips-overview-example'; +export {ChipsStackedExample} from './chips-stacked/chips-stacked-example'; +export {DatepickerApiExample} from './datepicker-api/datepicker-api-example'; +export {DatepickerColorExample} from './datepicker-color/datepicker-color-example'; +export {ExampleHeader,DatepickerCustomHeaderExample} from './datepicker-custom-header/datepicker-custom-header-example'; +export {DatepickerCustomIconExample} from './datepicker-custom-icon/datepicker-custom-icon-example'; +export {DatepickerDateClassExample} from './datepicker-date-class/datepicker-date-class-example'; +export {DatepickerDisabledExample} from './datepicker-disabled/datepicker-disabled-example'; +export {DatepickerEventsExample} from './datepicker-events/datepicker-events-example'; +export {DatepickerFilterExample} from './datepicker-filter/datepicker-filter-example'; +export {DatepickerFormatsExample} from './datepicker-formats/datepicker-formats-example'; +export {DatepickerLocaleExample} from './datepicker-locale/datepicker-locale-example'; +export {DatepickerMinMaxExample} from './datepicker-min-max/datepicker-min-max-example'; +export {DatepickerMomentExample} from './datepicker-moment/datepicker-moment-example'; +export {DatepickerOverviewExample} from './datepicker-overview/datepicker-overview-example'; +export {DatepickerStartViewExample} from './datepicker-start-view/datepicker-start-view-example'; +export {DatepickerTouchExample} from './datepicker-touch/datepicker-touch-example'; +export {DatepickerValueExample} from './datepicker-value/datepicker-value-example'; +export {DatepickerViewsSelectionExample} from './datepicker-views-selection/datepicker-views-selection-example'; +export {DialogContentExampleDialog,DialogContentExample} from './dialog-content/dialog-content-example'; +export {DialogDataExampleDialog,DialogDataExample} from './dialog-data/dialog-data-example'; +export {DialogElementsExampleDialog,DialogElementsExample} from './dialog-elements/dialog-elements-example'; +export {DialogOverviewExampleDialog,DialogOverviewExample} from './dialog-overview/dialog-overview-example'; +export {DividerOverviewExample} from './divider-overview/divider-overview-example'; +export {ElevationOverviewExample} from './elevation-overview/elevation-overview-example'; +export {ExpansionExpandCollapseAllExample} from './expansion-expand-collapse-all/expansion-expand-collapse-all-example'; +export {ExpansionOverviewExample} from './expansion-overview/expansion-overview-example'; +export {ExpansionStepsExample} from './expansion-steps/expansion-steps-example'; +export {FocusMonitorDirectivesExample} from './focus-monitor-directives/focus-monitor-directives-example'; +export {FocusMonitorFocusViaExample} from './focus-monitor-focus-via/focus-monitor-focus-via-example'; +export {FocusMonitorOverviewExample} from './focus-monitor-overview/focus-monitor-overview-example'; +export {FormFieldAppearanceExample} from './form-field-appearance/form-field-appearance-example'; +export {MyTelInput,FormFieldCustomControlExample} from './form-field-custom-control/form-field-custom-control-example'; +export {FormFieldErrorExample} from './form-field-error/form-field-error-example'; +export {FormFieldHintExample} from './form-field-hint/form-field-hint-example'; +export {FormFieldLabelExample} from './form-field-label/form-field-label-example'; +export {FormFieldOverviewExample} from './form-field-overview/form-field-overview-example'; +export {FormFieldPrefixSuffixExample} from './form-field-prefix-suffix/form-field-prefix-suffix-example'; +export {FormFieldThemingExample} from './form-field-theming/form-field-theming-example'; +export {GridListDynamicExample} from './grid-list-dynamic/grid-list-dynamic-example'; +export {GridListOverviewExample} from './grid-list-overview/grid-list-overview-example'; +export {IconOverviewExample} from './icon-overview/icon-overview-example'; +export {IconSvgExample} from './icon-svg/icon-svg-example'; +export {InputClearableExample} from './input-clearable/input-clearable-example'; +export {InputErrorStateMatcherExample} from './input-error-state-matcher/input-error-state-matcher-example'; +export {InputErrorsExample} from './input-errors/input-errors-example'; +export {InputFormExample} from './input-form/input-form-example'; +export {InputHintExample} from './input-hint/input-hint-example'; +export {InputOverviewExample} from './input-overview/input-overview-example'; +export {InputPrefixSuffixExample} from './input-prefix-suffix/input-prefix-suffix-example'; +export {ListOverviewExample} from './list-overview/list-overview-example'; +export {ListSectionsExample} from './list-sections/list-sections-example'; +export {ListSelectionExample} from './list-selection/list-selection-example'; +export {MenuIconsExample} from './menu-icons/menu-icons-example'; +export {MenuOverviewExample} from './menu-overview/menu-overview-example'; +export {NestedMenuExample} from './nested-menu/nested-menu-example'; +export {PaginatorConfigurableExample} from './paginator-configurable/paginator-configurable-example'; +export {PaginatorOverviewExample} from './paginator-overview/paginator-overview-example'; +export {ProgressBarBufferExample} from './progress-bar-buffer/progress-bar-buffer-example'; +export {ProgressBarConfigurableExample} from './progress-bar-configurable/progress-bar-configurable-example'; +export {ProgressBarDeterminateExample} from './progress-bar-determinate/progress-bar-determinate-example'; +export {ProgressBarIndeterminateExample} from './progress-bar-indeterminate/progress-bar-indeterminate-example'; +export {ProgressBarQueryExample} from './progress-bar-query/progress-bar-query-example'; +export {ProgressSpinnerConfigurableExample} from './progress-spinner-configurable/progress-spinner-configurable-example'; +export {ProgressSpinnerOverviewExample} from './progress-spinner-overview/progress-spinner-overview-example'; +export {RadioNgModelExample} from './radio-ng-model/radio-ng-model-example'; +export {RadioOverviewExample} from './radio-overview/radio-overview-example'; +export {RippleOverviewExample} from './ripple-overview/ripple-overview-example'; +export {SelectCustomTriggerExample} from './select-custom-trigger/select-custom-trigger-example'; +export {SelectDisabledExample} from './select-disabled/select-disabled-example'; +export {SelectErrorStateMatcherExample} from './select-error-state-matcher/select-error-state-matcher-example'; +export {SelectFormExample} from './select-form/select-form-example'; +export {SelectHintErrorExample} from './select-hint-error/select-hint-error-example'; +export {SelectMultipleExample} from './select-multiple/select-multiple-example'; +export {SelectNoRippleExample} from './select-no-ripple/select-no-ripple-example'; +export {SelectOptgroupExample} from './select-optgroup/select-optgroup-example'; +export {SelectOverviewExample} from './select-overview/select-overview-example'; +export {SelectPanelClassExample} from './select-panel-class/select-panel-class-example'; +export {SelectResetExample} from './select-reset/select-reset-example'; +export {SelectValueBindingExample} from './select-value-binding/select-value-binding-example'; +export {SidenavAutosizeExample} from './sidenav-autosize/sidenav-autosize-example'; +export {SidenavBackdropExample} from './sidenav-backdrop/sidenav-backdrop-example'; +export {SidenavDisableCloseExample} from './sidenav-disable-close/sidenav-disable-close-example'; +export {SidenavDrawerOverviewExample} from './sidenav-drawer-overview/sidenav-drawer-overview-example'; +export {SidenavFixedExample} from './sidenav-fixed/sidenav-fixed-example'; +export {SidenavModeExample} from './sidenav-mode/sidenav-mode-example'; +export {SidenavOpenCloseExample} from './sidenav-open-close/sidenav-open-close-example'; +export {SidenavOverviewExample} from './sidenav-overview/sidenav-overview-example'; +export {SidenavPositionExample} from './sidenav-position/sidenav-position-example'; +export {SidenavResponsiveExample} from './sidenav-responsive/sidenav-responsive-example'; +export {SlideToggleConfigurableExample} from './slide-toggle-configurable/slide-toggle-configurable-example'; +export {SlideToggleFormsExample} from './slide-toggle-forms/slide-toggle-forms-example'; +export {SlideToggleOverviewExample} from './slide-toggle-overview/slide-toggle-overview-example'; +export {SliderConfigurableExample} from './slider-configurable/slider-configurable-example'; +export {SliderFormattingExample} from './slider-formatting/slider-formatting-example'; +export {SliderOverviewExample} from './slider-overview/slider-overview-example'; +export {PizzaPartyComponent,SnackBarComponentExample} from './snack-bar-component/snack-bar-component-example'; +export {SnackBarOverviewExample} from './snack-bar-overview/snack-bar-overview-example'; +export {SnackBarPositionExample} from './snack-bar-position/snack-bar-position-example'; +export {SortOverviewExample} from './sort-overview/sort-overview-example'; +export {StepperEditableExample} from './stepper-editable/stepper-editable-example'; +export {StepperErrorsExample} from './stepper-errors/stepper-errors-example'; +export {StepperLabelPositionBottomExample} from './stepper-label-position-bottom/stepper-label-position-bottom-example'; +export {StepperOptionalExample} from './stepper-optional/stepper-optional-example'; +export {StepperOverviewExample} from './stepper-overview/stepper-overview-example'; +export {StepperStatesExample} from './stepper-states/stepper-states-example'; +export {StepperVerticalExample} from './stepper-vertical/stepper-vertical-example'; +export {TabGroupAlignExample} from './tab-group-align/tab-group-align-example'; +export {TabGroupAnimationsExample} from './tab-group-animations/tab-group-animations-example'; +export {TabGroupAsyncExample} from './tab-group-async/tab-group-async-example'; +export {TabGroupBasicExample} from './tab-group-basic/tab-group-basic-example'; +export {TabGroupCustomLabelExample} from './tab-group-custom-label/tab-group-custom-label-example'; +export {TabGroupDynamicHeightExample} from './tab-group-dynamic-height/tab-group-dynamic-height-example'; +export {TabGroupDynamicExample} from './tab-group-dynamic/tab-group-dynamic-example'; +export {TabGroupHeaderBelowExample} from './tab-group-header-below/tab-group-header-below-example'; +export {TabGroupLazyLoadedExample} from './tab-group-lazy-loaded/tab-group-lazy-loaded-example'; +export {TabGroupStretchedExample} from './tab-group-stretched/tab-group-stretched-example'; +export {TabGroupThemeExample} from './tab-group-theme/tab-group-theme-example'; +export {TabNavBarBasicExample} from './tab-nav-bar-basic/tab-nav-bar-basic-example'; +export {TableBasicFlexExample} from './table-basic-flex/table-basic-flex-example'; +export {TableBasicExample} from './table-basic/table-basic-example'; +export {TableDynamicColumnsExample} from './table-dynamic-columns/table-dynamic-columns-example'; +export {TableExpandableRowsExample} from './table-expandable-rows/table-expandable-rows-example'; +export {TableFilteringExample} from './table-filtering/table-filtering-example'; +export {TableFooterRowExample} from './table-footer-row/table-footer-row-example'; +export {TableHttpExample} from './table-http/table-http-example'; +export {TableMultipleHeaderFooterExample} from './table-multiple-header-footer/table-multiple-header-footer-example'; +export {TableOverviewExample} from './table-overview/table-overview-example'; +export {TablePaginationExample} from './table-pagination/table-pagination-example'; +export {TableRowContextExample} from './table-row-context/table-row-context-example'; +export {TableSelectionExample} from './table-selection/table-selection-example'; +export {SimpleColumn,TableSimpleColumnExample} from './table-simple-column/table-simple-column-example'; +export {TableSortingExample} from './table-sorting/table-sorting-example'; +export {TableStickyColumnsExample} from './table-sticky-columns/table-sticky-columns-example'; +export {TableStickyComplexFlexExample} from './table-sticky-complex-flex/table-sticky-complex-flex-example'; +export {TableStickyComplexExample} from './table-sticky-complex/table-sticky-complex-example'; +export {TableStickyFooterExample} from './table-sticky-footer/table-sticky-footer-example'; +export {TableStickyHeaderExample} from './table-sticky-header/table-sticky-header-example'; +export {WrapperTable,TableWrappedExample} from './table-wrapped/table-wrapped-example'; +export {TextFieldAutofillDirectiveExample} from './text-field-autofill-directive/text-field-autofill-directive-example'; +export {TextFieldAutofillMonitorExample} from './text-field-autofill-monitor/text-field-autofill-monitor-example'; +export {TextFieldAutosizeTextareaExample} from './text-field-autosize-textarea/text-field-autosize-textarea-example'; +export {ToolbarMultirowExample} from './toolbar-multirow/toolbar-multirow-example'; +export {ToolbarOverviewExample} from './toolbar-overview/toolbar-overview-example'; +export {TooltipAutoHideExample} from './tooltip-auto-hide/tooltip-auto-hide-example'; +export {TooltipCustomClassExample} from './tooltip-custom-class/tooltip-custom-class-example'; +export {TooltipDelayExample} from './tooltip-delay/tooltip-delay-example'; +export {TooltipDisabledExample} from './tooltip-disabled/tooltip-disabled-example'; +export {TooltipManualExample} from './tooltip-manual/tooltip-manual-example'; +export {TooltipMessageExample} from './tooltip-message/tooltip-message-example'; +export {TooltipModifiedDefaultsExample} from './tooltip-modified-defaults/tooltip-modified-defaults-example'; +export {TooltipOverviewExample} from './tooltip-overview/tooltip-overview-example'; +export {TooltipPositionExample} from './tooltip-position/tooltip-position-example'; +export {TreeChecklistExample} from './tree-checklist/tree-checklist-example'; +export {TreeDynamicExample} from './tree-dynamic/tree-dynamic-example'; +export {TreeFlatOverviewExample} from './tree-flat-overview/tree-flat-overview-example'; +export {TreeLoadmoreExample} from './tree-loadmore/tree-loadmore-example'; +export {TreeNestedOverviewExample} from './tree-nested-overview/tree-nested-overview-example'; diff --git a/src/material-examples/tsconfig-build.json b/src/material-examples/tsconfig-build.json index 76d15b8e4e0a..f875b9e5d17d 100644 --- a/src/material-examples/tsconfig-build.json +++ b/src/material-examples/tsconfig-build.json @@ -1,8 +1,5 @@ -// TypeScript config file that is used to compile the examples. Target environment needs to be -// ES2015 since the build process will create FESM bundles using rollup. { "compilerOptions": { - // Needed for Moment.js since it doesn't have a default export. "allowSyntheticDefaultImports": true, "declaration": true, "stripInternal": false, @@ -21,22 +18,32 @@ "sourceMap": true, "inlineSources": true, "target": "es2015", - "lib": ["es2015", "dom"], + "lib": [ + "es2015", + "dom" + ], "skipLibCheck": true, "types": [], "baseUrl": ".", "paths": { - "@angular/material/*": ["../../dist/packages/material/*"], - "@angular/material": ["../../dist/packages/material"], - "@angular/material-moment-adapter": ["../../dist/packages/material-moment-adapter"], - "@angular/cdk/*": ["../../dist/packages/cdk/*"] + "@angular/material/*": [ + "../../dist/packages/material/*" + ], + "@angular/material": [ + "../../dist/packages/material" + ], + "@angular/material-moment-adapter": [ + "../../dist/packages/material-moment-adapter" + ], + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ] } }, "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material-examples", @@ -45,11 +52,12 @@ // format the metadata of Material which is required to build the examples package, are not // including all re-exports and therefore the build will fail. This issue will be fixed with // the new compiler CLI that no longer outputs metadata. - "fullTemplateTypeCheck": false + "fullTemplateTypeCheck": false, + "enableIvy": "ngtsc" }, "bazelOptions": { // Needed because this tsconfig file is also being used by Bazel since we need // special options enabled in favor of using Moment as an import. "suppressTsconfigOverrideWarnings": true } -} +} \ No newline at end of file diff --git a/src/material-examples/tsconfig-tests.json b/src/material-examples/tsconfig-tests.json index 04efc287495b..08f06f429d8c 100644 --- a/src/material-examples/tsconfig-tests.json +++ b/src/material-examples/tsconfig-tests.json @@ -1,27 +1,27 @@ -// 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"] + "types": [ + "jasmine" + ] }, "angularCompilerOptions": { "strictMetadataEmit": true, "skipTemplateCodegen": true, "emitDecoratorMetadata": true, - "fullTemplateTypeCheck": true, + "fullTemplateTypeCheck": false, // Unset options inherited from tsconfig-build "annotateForClosureCompiler": false, - "flatModuleOutFile": null, - "flatModuleId": null + "flatModuleOutFile": "", + "flatModuleId": null, + "enableIvy": "ngtsc" }, "include": [ "**/*.spec.ts", "index.ts" ] -} +} \ No newline at end of file diff --git a/src/material-experimental/tsconfig-build.json b/src/material-experimental/tsconfig-build.json index 9b0d56ceebc4..e9e9270fb6c7 100644 --- a/src/material-experimental/tsconfig-build.json +++ b/src/material-experimental/tsconfig-build.json @@ -1,4 +1,3 @@ -// TypeScript config file that is used to compile the experimental package into ES2015. { "compilerOptions": { "baseUrl": ".", @@ -24,31 +23,46 @@ "sourceMap": true, "inlineSources": true, "target": "es2015", - "lib": ["es2015", "dom"], + "lib": [ + "es2015", + "dom" + ], "skipLibCheck": true, "types": [], "paths": { - "@angular/material/*": ["../../dist/packages/material/*"], - "@angular/material": ["../../dist/packages/material"], - "@angular/cdk/*": ["../../dist/packages/cdk/*"], - "@angular/cdk": ["../../dist/packages/cdk"], - "@angular/cdk-experimental/*": ["../../dist/packages/cdk-experimental/*"], - "@angular/cdk-experimental": ["../../dist/packages/cdk-experimental"] + "@angular/material/*": [ + "../../dist/packages/material/*" + ], + "@angular/material": [ + "../../dist/packages/material" + ], + "@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": [ - "public-api.ts", + "index.ts", "typings.d.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material-experimental", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" }, "bazelOptions": { "suppressTsconfigOverrideWarnings": true } -} +} \ No newline at end of file diff --git a/src/material-experimental/tsconfig-tests.json b/src/material-experimental/tsconfig-tests.json index 6b44279145fb..08f06f429d8c 100644 --- a/src/material-experimental/tsconfig-tests.json +++ b/src/material-experimental/tsconfig-tests.json @@ -1,27 +1,27 @@ -// 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"] + "types": [ + "jasmine" + ] }, "angularCompilerOptions": { "strictMetadataEmit": true, "skipTemplateCodegen": true, "emitDecoratorMetadata": true, - "fullTemplateTypeCheck": true, + "fullTemplateTypeCheck": false, // Unset options inherited from tsconfig-build "annotateForClosureCompiler": false, - "flatModuleOutFile": null, + "flatModuleOutFile": "", "flatModuleId": null, + "enableIvy": "ngtsc" }, "include": [ "**/*.spec.ts", "index.ts" ] -} +} \ No newline at end of file diff --git a/src/material-moment-adapter/tsconfig-build.json b/src/material-moment-adapter/tsconfig-build.json index 00b897f40aa7..e5d5cb9efb48 100644 --- a/src/material-moment-adapter/tsconfig-build.json +++ b/src/material-moment-adapter/tsconfig-build.json @@ -1,7 +1,5 @@ -// TypeScript config file that is used to compile the moment-adapter package into ES2015. { "compilerOptions": { - // Needed for Moment.js since it doesn't have a default export. "allowSyntheticDefaultImports": true, "baseUrl": ".", "declaration": true, @@ -22,27 +20,36 @@ "sourceMap": true, "inlineSources": true, "target": "es2015", - "lib": ["es2015", "dom"], + "lib": [ + "es2015", + "dom" + ], "skipLibCheck": true, "types": [], "paths": { - "@angular/material/*": ["../../dist/packages/material/*"], - "@angular/material": ["../../dist/packages/material"], - "@angular/cdk/*": ["../../dist/packages/cdk/*"] + "@angular/material/*": [ + "../../dist/packages/material/*" + ], + "@angular/material": [ + "../../dist/packages/material" + ], + "@angular/cdk/*": [ + "../../dist/packages/cdk/*" + ] } }, "files": [ - "public-api.ts" + "index.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, "strictMetadataEmit": true, "flatModuleOutFile": "index.js", "flatModuleId": "@angular/material-moment-adapter", "skipTemplateCodegen": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" }, "bazelOptions": { "suppressTsconfigOverrideWarnings": true } -} +} \ No newline at end of file diff --git a/src/material-moment-adapter/tsconfig-tests.json b/src/material-moment-adapter/tsconfig-tests.json index 3231ab75afc2..08f06f429d8c 100644 --- a/src/material-moment-adapter/tsconfig-tests.json +++ b/src/material-moment-adapter/tsconfig-tests.json @@ -1,27 +1,27 @@ -// TypeScript config file that extends the default tsconfig file for the moment-adapter. -// This config is used to compile the tests for Karma. Since the code will run inside of the -// browser, the target needs to be ES5. The format needs to be CommonJS for Karma. { "extends": "./tsconfig-build", "compilerOptions": { "importHelpers": false, "module": "commonjs", "target": "es5", - "types": ["jasmine"] + "types": [ + "jasmine" + ] }, "angularCompilerOptions": { "strictMetadataEmit": true, "skipTemplateCodegen": true, "emitDecoratorMetadata": true, - "fullTemplateTypeCheck": true, + "fullTemplateTypeCheck": false, // Unset options inherited from tsconfig-build "annotateForClosureCompiler": false, - "flatModuleOutFile": null, + "flatModuleOutFile": "", "flatModuleId": null, + "enableIvy": "ngtsc" }, "include": [ "**/*.spec.ts", "index.ts" ] -} +} \ No newline at end of file diff --git a/src/universal-app/tsconfig-build.json b/src/universal-app/tsconfig-build.json index 7234e84a5f0d..d8db5cf1dcaf 100644 --- a/src/universal-app/tsconfig-build.json +++ b/src/universal-app/tsconfig-build.json @@ -1,5 +1,3 @@ -// TypeScript config file that is used to compile the Universal App. All sources are compiled -// inside of the output folder and therefore all paths can be relative to the output folder. { "compilerOptions": { "declaration": true, @@ -17,21 +15,30 @@ "rootDir": ".", "sourceMap": true, "target": "es2015", - "lib": ["es2015", "dom"], + "lib": [ + "es2015", + "dom" + ], "skipLibCheck": true, "types": [], "baseUrl": ".", "paths": { - "@angular/material": ["./material"], - "@angular/cdk/*": ["./cdk/*"], - "@angular/material/*": ["./material/*"] + "@angular/material": [ + "./material" + ], + "@angular/cdk/*": [ + "./cdk/*" + ], + "@angular/material/*": [ + "./material/*" + ] } }, "files": [ "main.ts" ], "angularCompilerOptions": { - "annotateForClosureCompiler": true, - "fullTemplateTypeCheck": true + "fullTemplateTypeCheck": true, + "enableIvy": "ngtsc" } -} +} \ No newline at end of file diff --git a/src/universal-app/tsconfig-prerender.json b/src/universal-app/tsconfig-prerender.json index b70a9d625772..8f7270d90263 100644 --- a/src/universal-app/tsconfig-prerender.json +++ b/src/universal-app/tsconfig-prerender.json @@ -1,4 +1,3 @@ -// TypeScript config file that is used to compile the files that prerender the Universal app. { "compilerOptions": { "declaration": false, @@ -16,17 +15,26 @@ "rootDir": ".", "sourceMap": true, "target": "es2015", - "lib": ["es2015", "dom"], + "lib": [ + "es2015", + "dom" + ], "skipLibCheck": true, "types": [], "baseUrl": ".", "paths": { - "@angular/material": ["./material"], - "@angular/cdk/*": ["./cdk/*"], - "@angular/material/*": ["./material/*"] + "@angular/material": [ + "./material" + ], + "@angular/cdk/*": [ + "./cdk/*" + ], + "@angular/material/*": [ + "./material/*" + ] } }, "files": [ "prerender.ts" ] -} +} \ No newline at end of file diff --git a/test/karma-system-config.js b/test/karma-system-config.js index 3b19c85b9f05..76ceb685ca56 100644 --- a/test/karma-system-config.js +++ b/test/karma-system-config.js @@ -11,27 +11,27 @@ System.config({ // Angular specific mappings. '@angular/core': 'node:@angular/core/bundles/core.umd.js', - '@angular/core/testing': 'node:@angular/core/bundles/core-testing.umd.min.js', - '@angular/common': 'node:@angular/common/bundles/common.umd.min.js', - '@angular/common/testing': 'node:@angular/common/bundles/common-testing.umd.min.js', - '@angular/common/http': 'node:@angular/common/bundles/common-http.umd.min.js', - '@angular/common/http/testing': 'node:@angular/common/bundles/common-http-testing.umd.min.js', - '@angular/compiler': 'node:@angular/compiler/bundles/compiler.umd.min.js', - '@angular/compiler/testing': 'node:@angular/compiler/bundles/compiler-testing.umd.min.js', - '@angular/forms': 'node:@angular/forms/bundles/forms.umd.min.js', - '@angular/forms/testing': 'node:@angular/forms/bundles/forms-testing.umd.min.js', - '@angular/animations': 'node:@angular/animations/bundles/animations.umd.min.js', - '@angular/animations/browser': 'node:@angular/animations/bundles/animations-browser.umd.min.js', + '@angular/core/testing': 'node:@angular/core/bundles/core-testing.umd.js', + '@angular/common': 'node:@angular/common/bundles/common.umd.js', + '@angular/common/testing': 'node:@angular/common/bundles/common-testing.umd.js', + '@angular/common/http': 'node:@angular/common/bundles/common-http.umd.js', + '@angular/common/http/testing': 'node:@angular/common/bundles/common-http-testing.umd.js', + '@angular/compiler': 'node:@angular/compiler/bundles/compiler.umd.js', + '@angular/compiler/testing': 'node:@angular/compiler/bundles/compiler-testing.umd.js', + '@angular/forms': 'node:@angular/forms/bundles/forms.umd.js', + '@angular/forms/testing': 'node:@angular/forms/bundles/forms-testing.umd.js', + '@angular/animations': 'node:@angular/animations/bundles/animations.umd.js', + '@angular/animations/browser': 'node:@angular/animations/bundles/animations-browser.umd.js', '@angular/platform-browser/animations': - 'node:@angular/platform-browser/bundles/platform-browser-animations.umd.min.js', + 'node:@angular/platform-browser/bundles/platform-browser-animations.umd.js', '@angular/platform-browser': - 'node:@angular/platform-browser/bundles/platform-browser.umd.min.js', + 'node:@angular/platform-browser/bundles/platform-browser.umd.js', '@angular/platform-browser/testing': - 'node:@angular/platform-browser/bundles/platform-browser-testing.umd.min.js', + 'node:@angular/platform-browser/bundles/platform-browser-testing.umd.js', '@angular/platform-browser-dynamic': - 'node:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.min.js', + 'node:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', '@angular/platform-browser-dynamic/testing': - 'node:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.min.js', + 'node:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js', // Path mappings for local packages that can be imported inside of tests. '@angular/material': 'dist/packages/material/index.js', diff --git a/test/karma-test-shim.js b/test/karma-test-shim.js index f2406abd5d2b..3ec10123c7d3 100644 --- a/test/karma-test-shim.js +++ b/test/karma-test-shim.js @@ -95,3 +95,15 @@ function patchTestBedToDestroyFixturesAfterEveryTest(testBed) { testBed.resetTestingModule(); }); } + + +// Filter out any tests explicitly given in the blocklist. +// On the angular/material2 repo, this blocklist is always empty. +// When these tests are run on angular/angular, the blocklist will be replaced +// with all of the known failures when running the component tests with ivy. +var testBlocklist = null; +jasmine.getEnv().configure({ + specFilter: function(spec) { + return !testBlocklist || !testBlocklist[spec.getFullName()]; + } +}); diff --git a/test/karma.conf.js b/test/karma.conf.js index 816937b3f7cd..b95afd739ebc 100644 --- a/test/karma.conf.js +++ b/test/karma.conf.js @@ -12,6 +12,7 @@ module.exports = config => { require('karma-chrome-launcher'), require('karma-firefox-launcher'), require('karma-sourcemap-loader'), + require('karma-json-result-reporter'), ], files: [ {pattern: 'node_modules/core-js/client/core.min.js', included: true, watched: false}, @@ -47,9 +48,13 @@ module.exports = config => { 'dist/packages/**/*.js': ['sourcemap'] }, - reporters: ['dots'], + reporters: ['dots', 'json-result'], autoWatch: false, + jsonResultReporter: { + outputFile: "/tmp/karma-result.json", + }, + sauceLabs: { testName: 'Angular Material Unit Tests', startConnect: false, diff --git a/yarn.lock b/yarn.lock index 0a1bd176fd7e..4f8deacd6f6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -169,122 +169,29 @@ dependencies: tslib "^1.9.0" -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.1.2": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.0.tgz#a4dd3814901998e93340f0086e9867fefa163ada" - integrity sha512-7pvAdC4B+iKjFFp9Ztj0QgBndJ++qaMeonT185wAqUnhipw8idm9Rv1UMyBuKtYjfl6ORNkgEgcsYLfHX/GpLw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.0" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.2.0" - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.2.0" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.1.6", "@babel/generator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.0.tgz#eaf3821fa0301d9d4aef88e63d4bcc19b73ba16c" - integrity sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg== - dependencies: - "@babel/types" "^7.2.0" - jsesc "^2.5.1" - lodash "^4.17.10" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" - integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helpers@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" - integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A== - dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.2.0" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" +"@bazel/bazel-darwin_x64@0.21.0": + version "0.21.0" + resolved "https://registry.yarnpkg.com/@bazel/bazel-darwin_x64/-/bazel-darwin_x64-0.21.0.tgz#db033b6880294ed274489d3bce4a36c77dbf5a7a" + integrity sha512-9lI9SFHUm50ufJHD/5gOdJeuaI/hdGji5d0ezYWJdJK55tj4VhcatkJumjYD6yp1nPNnU038AZ7JvkPcTgt7OA== -"@babel/parser@^7.1.2", "@babel/parser@^7.1.6", "@babel/parser@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.0.tgz#02d01dbc330b6cbf36b76ac93c50752c69027065" - integrity sha512-M74+GvK4hn1eejD9lZ7967qAwvqTZayQa3g10ag4s9uewgR7TKjeaT0YMyoq+gVfKYABiWZ4MQD701/t5e1Jhg== +"@bazel/bazel-linux_x64@0.21.0": + version "0.21.0" + resolved "https://registry.yarnpkg.com/@bazel/bazel-linux_x64/-/bazel-linux_x64-0.21.0.tgz#d9ba05ff405c52d09878ecfb89872bda2fda418e" + integrity sha512-CyOblC7pMIMaXwkQazo/jz2ipmIkxngmVCTzjNKGO9GiZK71L4X/B8Simy3tFhDHZFxso2HkvJTiY1UJozFyZw== -"@babel/template@^7.1.0", "@babel/template@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" - integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.1.2" - "@babel/types" "^7.1.2" - -"@babel/traverse@^7.1.5", "@babel/traverse@^7.1.6": - version "7.1.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c" - integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.6" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.6" - "@babel/types" "^7.1.6" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.10" +"@bazel/bazel-win32_x64@0.21.0": + version "0.21.0" + resolved "https://registry.yarnpkg.com/@bazel/bazel-win32_x64/-/bazel-win32_x64-0.21.0.tgz#f2f40f40b862f368d8596b4f69152640bd15e2ed" + integrity sha512-ELNF4ddUCnd1Qx9359tJ5DenlVK0e5Yoe7PVv+qWNQKSCjguh8jtRy9IlzGZHjn8tFMSnTQjYYY0DgW1W1sbSA== -"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.6", "@babel/types@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.0.tgz#7941c5b2d8060e06f9601d6be7c223eef906d5d8" - integrity sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A== - dependencies: - esutils "^2.0.2" - lodash "^4.17.10" - to-fast-properties "^2.0.0" +"@bazel/bazel@~0.21.0": + version "0.21.0" + resolved "https://registry.yarnpkg.com/@bazel/bazel/-/bazel-0.21.0.tgz#8582f225a70d8edff26bd89efad5550c4fc17140" + integrity sha512-XeT0omRhtUMSzX0Gjme2ECnWtHRPD2Gak7/ewfpGs0pw1IaCvVy/ilaqr6u5g0Kr8SI8KevP7ezKrejXXpJwbQ== + optionalDependencies: + "@bazel/bazel-darwin_x64" "0.21.0" + "@bazel/bazel-linux_x64" "0.21.0" + "@bazel/bazel-win32_x64" "0.21.0" "@bazel/ibazel@^0.9.0": version "0.9.0" @@ -407,19 +314,6 @@ through2 "^2.0.0" xdg-basedir "^3.0.0" -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - "@octokit/rest@^15.9.4": version "15.18.0" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.18.0.tgz#e6de702b57dec94c71e806f1cff0ecb9725b3054" @@ -481,6 +375,11 @@ "@types/events" "*" "@types/node" "*" +"@types/estree@0.0.38": + version "0.0.38" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" + integrity sha512-F/v7t1LwS4vnXuPooJQGBRKRGIoxWUTmA4VHfqjOccFsNDThD5bfUNpITive6s352O7o384wcpEaDV8rHCehDA== + "@types/events@*": version "1.2.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" @@ -917,6 +816,11 @@ agent-base@4, agent-base@^4.1.0, agent-base@^4.2.0, agent-base@~4.2.0: dependencies: es6-promisify "^5.0.0" +ajv-keywords@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= + ajv@6.5.3: version "6.5.3" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9" @@ -927,7 +831,17 @@ ajv@6.5.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.5.2, ajv@^6.5.5, ajv@^6.6.1: +ajv@^6.0.1: + version "6.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" + integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.5.2, ajv@^6.5.5: version "6.6.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz#6360f5ed0d80f232cc2b294c362d5dc2e538dd61" integrity sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww== @@ -1024,7 +938,7 @@ ansi-styles@^2.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1270,11 +1184,6 @@ ast-types@0.x.x: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.7.tgz#f318bf44e339db6a320be0009ded64ec1471f46c" integrity sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw== -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - async-each-series@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" @@ -1353,17 +1262,17 @@ autoprefixer@^6.7.6: postcss "^5.2.16" postcss-value-parser "^3.2.3" -autoprefixer@^9.0.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.1.tgz#a3d7e9c5940ba85778ab780536f1cc51bd2dfbd6" - integrity sha512-T15Bt8akUOGqhkXPLKipYzzmmOOQ+H4dmZtk3VUNBbFiYuUh5uvXb/THxGGxbRlaNG+i39Qm3UdpLtpdiCMw9w== +autoprefixer@^7.1.2: + version "7.2.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" + integrity sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ== dependencies: - browserslist "^4.3.5" - caniuse-lite "^1.0.30000914" + browserslist "^2.11.3" + caniuse-lite "^1.0.30000805" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.6" - postcss-value-parser "^3.3.1" + postcss "^6.0.17" + postcss-value-parser "^3.2.3" aws-sign2@~0.6.0: version "0.6.0" @@ -1416,7 +1325,7 @@ axios@^0.18.0: follow-redirects "^1.3.0" is-buffer "^1.1.5" -babel-code-frame@^6.22.0: +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -1425,6 +1334,170 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-core@^6.24.1, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + integrity sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo= + +babel-plugin-transform-amd-system-wrapper@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-amd-system-wrapper/-/babel-plugin-transform-amd-system-wrapper-0.3.7.tgz#521c782d35644491c979ea683e8a5e1caff0ba42" + integrity sha1-Uhx4LTVkRJHJeepoPopeHK/wukI= + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-cjs-system-wrapper@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-cjs-system-wrapper/-/babel-plugin-transform-cjs-system-wrapper-0.6.2.tgz#bd7494775289424ff493b6ed455de495bd71ba1d" + integrity sha1-vXSUd1KJQk/0k7btRV3klb1xuh0= + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.6.5: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-global-system-wrapper@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-global-system-wrapper/-/babel-plugin-transform-global-system-wrapper-0.3.4.tgz#948dd7d29fc21447e39bd3447f2debc7f2f73aac" + integrity sha1-lI3X0p/CFEfjm9NEfy3rx/L3Oqw= + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-system-register@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-system-register/-/babel-plugin-transform-system-register-0.0.1.tgz#9dff40390c2763ac518f0b2ad7c5ea4f65a5be25" + integrity sha1-nf9AOQwnY6xRjwsq18XqT2WlviU= + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -1570,7 +1643,7 @@ blocking-proxy@^1.0.0: dependencies: minimist "^1.2.0" -bluebird@^3.3.0, bluebird@^3.5.2: +bluebird@^3.3.0, bluebird@^3.3.4, bluebird@^3.5.2: version "3.5.3" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== @@ -1722,14 +1795,13 @@ browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.5.tgz#1a917678acc07b55606748ea1adf9846ea8920f7" - integrity sha512-z9ZhGc3d9e/sJ9dIx5NFXkKoaiQTnrvrMsN3R1fGb1tkWWNSz12UewJn9TNxGo1l7J23h0MRaPmk7jfeTZYs1w== +browserslist@^2.11.3: + version "2.11.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + integrity sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA== dependencies: - caniuse-lite "^1.0.30000912" - electron-to-chromium "^1.3.86" - node-releases "^1.0.5" + caniuse-lite "^1.0.30000792" + electron-to-chromium "^1.3.30" browserstack@1.5.0: version "1.5.0" @@ -1894,35 +1966,11 @@ cacheable-request@^2.1.1: normalize-url "2.0.1" responselike "1.0.2" -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - camel-case@3.0.x, camel-case@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" @@ -1973,10 +2021,10 @@ caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000914.tgz#5df1edfb2407dd857bf33e7f346514316c7b9fa3" integrity sha512-UbjlrZOQowyqrPwFKFPZ4M7LngssN5FyWpvzuFKYiQoZD8J+bPYU4s0rSiKPTzFzDYNEP9w5E5+MQj3+TqW+gA== -caniuse-lite@^1.0.30000912, caniuse-lite@^1.0.30000914: - version "1.0.30000914" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000914.tgz#f802b4667c24d0255f54a95818dcf8e1aa41f624" - integrity sha512-qqj0CL1xANgg6iDOybiPTIxtsmAnfIky9mBC35qgWrnK4WwmhqfpmkDYMYgwXJ8LRZ3/2jXlCntulO8mBaAgSg== +caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805: + version "1.0.30000928" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000928.tgz#805e828dc72b06498e3683a32e61c7507fd67b88" + integrity sha512-aSpMWRXL6ZXNnzm8hgE4QDLibG5pVJ2Ujzsuj3icazlIkxXkPXtL+BWnMx6FBkWmkZgBHGUxPZQvrbRw2ZTxhg== canonical-path@1.0.0, canonical-path@^1.0.0: version "1.0.0" @@ -2061,6 +2109,15 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.1.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + change-case@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.0.tgz#6c9c8e35f8790870a82b6b0745be8c3cbef9b081" @@ -2401,6 +2458,13 @@ commander@2.17.x, commander@~2.17.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== +commander@2.9.x: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + commander@^2.12.1, commander@^2.2.0, commander@^2.8.1, commander@^2.9.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" @@ -2692,7 +2756,7 @@ conventional-commits-parser@^3.0.1: through2 "^2.0.0" trim-off-newlines "^1.0.0" -convert-source-map@^1.1.0, convert-source-map@^1.5.1: +convert-source-map@^1.5.1: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== @@ -2727,6 +2791,11 @@ core-js@^2.2.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.2.tgz#267988d7268323b349e20b4588211655f0e83944" + integrity sha512-NdBPF/RVwPW6jr0NCILuyN9RiqLo2b1mddWHkUL+VnvcB7dzlnBJ1bXYntjpTGOgkZiiLWj2JxmOr7eGE3qK6g== + core-js@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.0.tgz#1e30793e9ee5782b307e37ffa22da0eacddd84d4" @@ -2742,15 +2811,15 @@ 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= -cosmiconfig@^5.0.0: - version "5.0.7" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04" - integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA== +cosmiconfig@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-3.1.0.tgz#640a94bf9847f321800403cd273af60665c73397" + integrity sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q== dependencies: - import-fresh "^2.0.0" is-directory "^0.3.1" js-yaml "^3.9.0" - parse-json "^4.0.0" + parse-json "^3.0.0" + require-from-string "^2.0.1" crc32-stream@^2.0.0: version "2.0.0" @@ -2908,6 +2977,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz#46e13ab9da8e309745c8d01ce547213ebdb2fe3f" + integrity sha1-RuE6udqOMJdFyNAc5UchPr2y/j8= + data-uri-to-buffer@1: version "1.2.0" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" @@ -2936,7 +3010,7 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@~2.6.4, debug@~2.6.6, debug@~2.6.9: +debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9, debug@~2.6.4, debug@~2.6.6, debug@~2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2957,13 +3031,6 @@ debug@^3.0.0, debug@^3.1.0: dependencies: ms "^2.1.1" -debug@^4.0.0, debug@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" - integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== - dependencies: - ms "^2.1.1" - decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -3102,6 +3169,13 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -3328,11 +3402,16 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.86: +electron-to-chromium@^1.2.7: version "1.3.88" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.88.tgz#f36ab32634f49ef2b0fdc1e82e2d1cc17feb29e7" integrity sha512-UPV4NuQMKeUh1S0OWRvwg0PI8ASHN9kBC8yDTk1ROXLC85W5GnhTRu/MZu3Teqx3JjlQYuckuHYXSUSgtb3J+A== +electron-to-chromium@^1.3.30: + version "1.3.102" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.102.tgz#3ac43a037c8a63bca3dfa189eb3d90f097196787" + integrity sha512-2nzZuXw/KBPnI3QX3UOCSRvJiVy7o9+VHRDQ3D/EHCvVc89X6aj/GlNmEgiR2GBIhmSWXIi4W1M5okA5ScSlNg== + encodeurl@~1.0.1, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -3457,7 +3536,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: +es5-ext@^0.10.12, es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.46" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572" integrity sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw== @@ -3516,6 +3595,14 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: d "1" es5-ext "~0.10.14" +es6-template-strings@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-template-strings/-/es6-template-strings-2.0.1.tgz#b166c6a62562f478bb7775f6ca96103a599b4b2c" + integrity sha1-sWbGpiVi9Hi7d3X2ypYQOlmbSyw= + dependencies: + es5-ext "^0.10.12" + esniff "^1.1" + es6-weak-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" @@ -3560,6 +3647,14 @@ escodegen@1.x.x, escodegen@^1.6.1: optionalDependencies: source-map "~0.6.1" +esniff@^1.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-1.1.0.tgz#c66849229f91464dede2e0d40201ed6abf65f2ac" + integrity sha1-xmhJIp+RRk3t4uDUAgHtar9l8qw= + dependencies: + d "1" + es5-ext "^0.10.12" + espree@^2.2.3: version "2.2.5" resolved "https://registry.yarnpkg.com/espree/-/espree-2.2.5.tgz#df691b9310889402aeb29cc066708c56690b854b" @@ -3833,18 +3928,6 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fast-glob@^2.0.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.4.tgz#e54f4b66d378040e0e4d6a68ec36bbc5b04363c0" - integrity sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - fast-json-stable-stringify@2.0.0, fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -4268,6 +4351,11 @@ ftp@~0.3.10: readable-stream "1.1.x" xregexp "2.0.0" +fun-map@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fun-map/-/fun-map-3.3.1.tgz#6415fde3b93ad58f9ee9566236cff3e3c64b94cb" + integrity sha1-ZBX947k61Y+e6VZiNs/z48ZLlMs= + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -4359,10 +4447,10 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" @@ -4476,11 +4564,6 @@ glob-stream@^3.1.5: through2 "^0.6.1" unique-stream "^1.0.0" -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - glob-watcher@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" @@ -4495,17 +4578,7 @@ glob2base@^0.0.12: dependencies: find-index "^0.1.1" -glob@^4.3.1: - version "4.5.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" - integrity sha1-xstz0yJsHv7wTePFbQEvAzd+4V8= - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "^2.0.1" - once "^1.3.0" - -glob@^5.0.15: +glob@5.0.x, glob@^5.0.15: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= @@ -4516,6 +4589,16 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + integrity sha1-xstz0yJsHv7wTePFbQEvAzd+4V8= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -4564,10 +4647,10 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^11.1.0: - version "11.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249" - integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg== +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== globby@^5.0.0: version "5.0.0" @@ -4581,14 +4664,13 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" - integrity sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw== +globby@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= dependencies: array-union "^1.0.1" dir-glob "^2.0.0" - fast-glob "^2.0.2" glob "^7.1.2" ignore "^3.3.5" pify "^3.0.0" @@ -4631,7 +4713,7 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" -gonzales-pe@^4.2.3: +gonzales-pe@^4.0.3: version "4.2.3" resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz#41091703625433285e0aee3aa47829fc1fbeb6f2" integrity sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw== @@ -4789,6 +4871,11 @@ graceful-fs@~1.2.0: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q= +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + gtoken@^1.2.1, gtoken@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8" @@ -5214,6 +5301,14 @@ home-dir@^1.0.0: resolved "https://registry.yarnpkg.com/home-dir/-/home-dir-1.0.0.tgz#2917eb44bdc9072ceda942579543847e3017fe4e" integrity sha1-KRfrRL3JByztqUJXlUOEfjAX/k4= +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" @@ -5405,16 +5500,11 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.5: +ignore@^3.3.3, ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45" - integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g== - immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -5425,24 +5515,11 @@ immutable@^3: resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -import-lazy@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" - integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5564,6 +5641,13 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -6122,16 +6206,16 @@ js-base64@^2.1.8, js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" integrity sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ== +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - js-yaml@3.x, js-yaml@^3.7.0, js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" @@ -6171,10 +6255,10 @@ jsdom@9.8.3: whatwg-url "^3.0.0" xml-name-validator ">= 2.0.1 < 3.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= jsesc@~0.5.0: version "0.5.0" @@ -6213,12 +6297,10 @@ json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0. resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= jsonfile@^2.1.0: version "2.4.0" @@ -6336,13 +6418,19 @@ karma-jasmine@1.1.1: resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.1.tgz#6fe840e75a11600c9d91e84b33c458e1c46a3529" integrity sha1-b+hA51oRYAydkehLM8RY4cRqNSk= -karma-jasmine@^2.0.1: +"karma-jasmine@github:jelbourn/karma-jasmine": version "2.0.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-2.0.1.tgz#26e3e31f2faf272dd80ebb0e1898914cc3a19763" - integrity sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA== + resolved "https://codeload.github.com/jelbourn/karma-jasmine/tar.gz/32cf88cc5fa70e2270eb984aaa56356cca639be8" dependencies: jasmine-core "^3.3" +karma-json-result-reporter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/karma-json-result-reporter/-/karma-json-result-reporter-1.0.0.tgz#9bfaa17d610470d08556e48ccbaf64d7950c7255" + integrity sha1-m/qhfWEEcNCFVuSMy69k15UMclU= + dependencies: + fun-map "^3.3.1" + karma-parallel@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/karma-parallel/-/karma-parallel-0.3.1.tgz#781876e5992b2781619e762f3e04dcbf85f47fa1" @@ -6486,10 +6574,10 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -known-css-properties@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.10.0.tgz#8378a8921e6c815ecc47095744a8900af63d577d" - integrity sha512-OMPb86bpVbnKN/2VJw1Ggs1Hw/FNGwEL1QYiNIEHaB5FSLybJ4QD7My5Hm9yDhgpRrRnnOgu0oKeuuABzASeBw== +known-css-properties@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.5.0.tgz#6ff66943ed4a5b55657ee095779a91f4536f8084" + integrity sha512-LOS0CoS8zcZnB1EjLw4LLqDXw8nvt3AGH5dXLQP3D9O1nLLA+9GC5GnPl5mmF+JiQAtSX4VyZC7KvEtcA4kUtA== latest-version@^1.0.0: version "1.0.1" @@ -6524,11 +6612,6 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -7025,6 +7108,13 @@ longest@^1.0.1: resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -7262,21 +7352,6 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -7304,7 +7379,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@2.3.11, micromatch@^2.1.5: +micromatch@2.3.11, micromatch@^2.1.5, micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= @@ -7673,13 +7748,6 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.5.tgz#a641adcc968b039a27345d92ef10b093e5cbd41d" - integrity sha512-Ky7q0BO1BBkG/rQz6PkEZ59rwo+aSfhczHP1wwq8IowoVdN/FpiP7qp0XW0P2+BVCWe5fQUBozdbVd54q1RbCQ== - dependencies: - semver "^5.3.0" - node-sass@^4.11.0: version "4.11.0" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.11.0.tgz#183faec398e9cbe93ba43362e2768ca988a6369a" @@ -8128,7 +8196,7 @@ os-name@^3.0.0: macos-release "^2.0.0" windows-release "^3.1.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -8237,7 +8305,7 @@ param-case@2.1.x, param-case@^2.1.0: dependencies: no-case "^2.2.0" -parse-entities@^1.0.2, parse-entities@^1.1.0: +parse-entities@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz#9deac087661b2e36814153cb78d7e54a4c5fd6f4" integrity sha512-XXtDdOPLSB0sHecbEapQi6/58U/ODj/KWfIXmmMCJF/eRn8laX6LZbOyioMoETOOJoWRW8/qTSl5VQkUIfKM5g== @@ -8280,6 +8348,13 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-3.0.0.tgz#fa6f47b18e23826ead32f263e744d0e1e847fb13" + integrity sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM= + dependencies: + error-ex "^1.3.1" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -8364,7 +8439,7 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -8453,11 +8528,6 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -8512,78 +8582,63 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-html@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.34.0.tgz#9bfd637ad8c3d3a43625b5ef844dc804b3370868" - integrity sha512-BIW982Kbf9/RikInNhNS3/GA6x/qY/+jhVS9KumqXZtU9ss8Yq15HhPJ6mnaXcU5bFq2ULxpOv96mHPAErpGMQ== +postcss-html@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.12.0.tgz#39b6adb4005dfc5464df7999c0f81c95bced7e50" + integrity sha512-KxKUpj7AY7nlCbLcTOYxdfJnGE7QFAfU2n95ADj1Q90RM/pOLdz8k3n4avOyRFs7MDQHcRzJQWM1dehCwJxisQ== dependencies: htmlparser2 "^3.9.2" + remark "^8.0.0" + unist-util-find-all-after "^1.0.1" -postcss-jsx@^0.35.0: - version "0.35.0" - resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.35.0.tgz#1d6cb82393994cdc7e9aa421648e3f0f3f98209b" - integrity sha512-AU2/9QDmHYJRxTiniMt2bJ9fwCzVF6n00VnR4gdnFGHeXRW2mGwoptpuPgYjfivkdI8LlNIuo+w8TyS6a4JhJw== - dependencies: - "@babel/core" "^7.1.2" - optionalDependencies: - postcss-styled ">=0.34.0" - -postcss-less@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.0.tgz#0e14a80206b452f44d3a09d082fa72645e8168cc" - integrity sha512-+fDH2A9zV8B4gFu3Idhq8ma09/mMBXXc03T2lL9CHjBQqKrfUit+TrQrnojc6Y4k7N4E+tyE1Uj5U1tcoKtXLQ== - dependencies: - postcss "^7.0.3" - -postcss-markdown@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.34.0.tgz#7a043e6eee3ab846a4cefe3ab43d141038e2da79" - integrity sha512-cKPggF9OMOKPoqDm5YpYszCqMsImFh78FK6P8p6IsEKZB6IkUJYKz0/QgadYy4jLb60jcFIHJ6v6jsMH7/ZQrA== +postcss-less@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-1.1.5.tgz#a6f0ce180cf3797eeee1d4adc0e9e6d6db665609" + integrity sha512-QQIiIqgEjNnquc0d4b6HDOSFZxbFQoy4MPpli2lSLpKhMyBkKwwca2HFqu4xzxlKID/F2fxSOowwtKpgczhF7A== dependencies: - remark "^9.0.0" - unist-util-find-all-after "^1.0.2" + postcss "^5.2.16" postcss-media-query-parser@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= -postcss-reporter@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.0.tgz#44c873129d8c029a430b6d2186210d79c8de88b8" - integrity sha512-5xQXm1UPWuFObjbtyQzWvQaupru8yFcFi4HUlm6OPo1o2bUszYASuqRJ7bVArb3svGCdbYtqdMBKrqR1Aoy+tw== +postcss-reporter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-5.0.0.tgz#a14177fd1342829d291653f2786efd67110332c3" + integrity sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg== dependencies: chalk "^2.0.1" lodash "^4.17.4" log-symbols "^2.0.0" - postcss "^7.0.2" + postcss "^6.0.8" postcss-resolve-nested-selector@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= -postcss-safe-parser@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" - integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== +postcss-safe-parser@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-3.0.1.tgz#b753eff6c7c0aea5e8375fbe4cde8bf9063ff142" + integrity sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI= dependencies: - postcss "^7.0.0" + postcss "^6.0.6" -postcss-sass@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz#6d3e39f101a53d2efa091f953493116d32beb68c" - integrity sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A== +postcss-sass@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.2.0.tgz#e55516441e9526ba4b380a730d3a02e9eaa78c7a" + integrity sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg== dependencies: - gonzales-pe "^4.2.3" - postcss "^7.0.1" + gonzales-pe "^4.0.3" + postcss "^6.0.6" -postcss-scss@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" - integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug== +postcss-scss@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-1.0.6.tgz#ab903f3bb20161bc177896462293a53d4bff5f7a" + integrity sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww== dependencies: - postcss "^7.0.0" + postcss "^6.0.23" postcss-selector-parser@^3.1.0: version "3.1.1" @@ -8594,17 +8649,7 @@ postcss-selector-parser@^3.1.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-styled@>=0.34.0, postcss-styled@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-styled/-/postcss-styled-0.34.0.tgz#07d47bcb13707289782aa058605fd9feaf84391d" - integrity sha512-Uaeetr/xOiQWGJgzPFOr32/Bwykpfh9TVE26OpmwDb8eEN205TS/gqkt9ri+C6otQzQKXqbMfeZNbKYi7QpeNA== - -postcss-syntax@^0.34.0: - version "0.34.0" - resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.34.0.tgz#4a85c022f1cdecea72102775c91af1e7f506d83a" - integrity sha512-L36NZwq2UK743US+vl1CRMdBRZCBmFYfThP9n9jCFhX1Wfk6BqnRSgt0Fy8q44IwxPee/GCzlo7T1c1JIeUDlQ== - -postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: +postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== @@ -8619,14 +8664,14 @@ postcss@^5.2.16: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.6.tgz#6dcaa1e999cdd4a255dcd7d4d9547f4ca010cdc2" - integrity sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug== +postcss@^6.0.14, postcss@^6.0.17, postcss@^6.0.23, postcss@^6.0.6, postcss@^6.0.8: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== dependencies: chalk "^2.4.1" source-map "^0.6.1" - supports-color "^5.5.0" + supports-color "^5.4.0" postinstall-build@^5.0.1: version "5.0.3" @@ -8663,6 +8708,11 @@ pretty-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= +private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" @@ -9078,6 +9128,11 @@ regenerate@^1.2.1: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" @@ -9134,10 +9189,10 @@ relateurl@0.2.x: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== +remark-parse@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-4.0.0.tgz#99f1f049afac80382366e2e0d0bd55429dd45d8b" + integrity sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw== dependencies: collapse-white-space "^1.0.2" is-alphabetical "^1.0.0" @@ -9145,7 +9200,7 @@ remark-parse@^5.0.0: is-whitespace-character "^1.0.0" is-word-character "^1.0.0" markdown-escapes "^1.0.0" - parse-entities "^1.1.0" + parse-entities "^1.0.2" repeat-string "^1.5.4" state-toggle "^1.0.0" trim "0.0.1" @@ -9155,10 +9210,10 @@ remark-parse@^5.0.0: vfile-location "^2.0.0" xtend "^4.0.1" -remark-stringify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba" - integrity sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w== +remark-stringify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-4.0.0.tgz#4431884c0418f112da44991b4e356cfe37facd87" + integrity sha512-xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w== dependencies: ccount "^1.0.0" is-alphanumeric "^1.0.0" @@ -9175,13 +9230,13 @@ remark-stringify@^5.0.0: unherit "^1.0.4" xtend "^4.0.1" -remark@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60" - integrity sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A== +remark@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/remark/-/remark-8.0.0.tgz#287b6df2fe1190e263c1d15e486d3fa835594d6d" + integrity sha512-K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw== dependencies: - remark-parse "^5.0.0" - remark-stringify "^5.0.0" + remark-parse "^4.0.0" + remark-stringify "^4.0.0" unified "^6.0.0" remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: @@ -9305,6 +9360,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" @@ -9335,11 +9395,6 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -9456,6 +9511,14 @@ rollup@^0.56.3: resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.56.5.tgz#40fe3cf0cd1659d469baad11f4d5b6336c14ce84" integrity sha512-IGPk5vdWrsc4vkiW9XMeXr5QMtxmvATTttTi59w2jBQWe9G/MMQtn8teIBAj+DdK51TrpVT6P0aQUaQUlUYCJA== +rollup@^0.58.2: + version "0.58.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.58.2.tgz#2feddea8c0c022f3e74b35c48e3c21b3433803ce" + integrity sha512-RZVvCWm9BHOYloaE6LLiE/ibpjv1CmI8F8k0B0Cp+q1eezo3cswszJH1DN0djgzSlo0hjuuCmyeI+1XOYLl4wg== + dependencies: + "@types/estree" "0.0.38" + "@types/node" "*" + router@^1.3.1: version "1.3.3" resolved "https://registry.yarnpkg.com/router/-/router-1.3.3.tgz#c142f6b5ea4d6b3359022ca95b6580bd217f89cf" @@ -9469,7 +9532,7 @@ router@^1.3.1: setprototypeof "1.1.0" utils-merge "1.0.1" -rsvp@^3.6.2: +rsvp@^3.0.13, rsvp@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== @@ -9642,7 +9705,7 @@ semver-greatest-satisfied-range@^1.1.0: dependencies: sver-compat "^1.5.0" -"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.2.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.2.0, semver@^5.3.0, semver@^5.5.0: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== @@ -9652,7 +9715,7 @@ semver@5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== -semver@^4.1.0: +semver@^4.1.0, semver@^4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= @@ -9830,18 +9893,11 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slice-ansi@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7" - integrity sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ== +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" slide@^1.1.5: @@ -10098,11 +10154,25 @@ source-map-support@^0.4.0, source-map-support@^0.4.15, source-map-support@~0.4.0 dependencies: source-map "^0.5.6" +source-map-support@~0.2.8: + version "0.2.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.2.10.tgz#ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc" + integrity sha1-6lo5AKHByyUJagrozFwrSxDe09w= + dependencies: + source-map "0.1.32" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= +source-map@0.1.32: + version "0.1.32" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" + integrity sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY= + dependencies: + amdefine ">=0.0.4" + source-map@0.7.3, source-map@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" @@ -10115,7 +10185,7 @@ source-map@^0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: +source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -10173,10 +10243,10 @@ spdx-license-list@^2.1.0: resolved "https://registry.yarnpkg.com/spdx-license-list/-/spdx-license-list-2.1.0.tgz#3788ffb5c80b24afbe8283934e9e6684ea6a218d" integrity sha1-N4j/tcgLJK++goOTTp5mhOpqIY0= -specificity@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" - integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== +specificity@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.3.2.tgz#99e6511eceef0f8d9b57924937aac2cb13d13c42" + integrity sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A== split-array-stream@^1.0.0: version "1.0.3" @@ -10465,66 +10535,57 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= -stylelint@^9.9.0: - version "9.9.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.9.0.tgz#dde466e9b049e0bd30e912ad280f1a2ecf6efdf8" - integrity sha512-kIuX0/9/I2mZeHz6EoFt7UpLt7Mz+ic9/PmFwKMdq4BkQHikg3FkcgAElLdAmaI8Au1JEUOS996ZFE+mwXytmA== +stylelint@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-8.4.0.tgz#c2dbaeb17236917819f9206e1c0df5fddf6f83c3" + integrity sha512-56hPH5mTFnk8LzlEuTWq0epa34fHuS54UFYQidBOFt563RJBNi1nz1F2HK2MoT1X1waq47milvRsRahFCCJs/Q== dependencies: - autoprefixer "^9.0.0" + autoprefixer "^7.1.2" balanced-match "^1.0.0" - chalk "^2.4.1" - cosmiconfig "^5.0.0" - debug "^4.0.0" + chalk "^2.0.1" + cosmiconfig "^3.1.0" + debug "^3.0.0" execall "^1.0.0" file-entry-cache "^2.0.0" - get-stdin "^6.0.0" - global-modules "^1.0.0" - globby "^8.0.0" + get-stdin "^5.0.1" + globby "^7.0.0" globjoin "^0.1.4" html-tags "^2.0.0" - ignore "^5.0.4" - import-lazy "^3.1.0" + ignore "^3.3.3" imurmurhash "^0.1.4" - known-css-properties "^0.10.0" - leven "^2.1.0" + known-css-properties "^0.5.0" lodash "^4.17.4" log-symbols "^2.0.0" mathml-tag-names "^2.0.1" - meow "^5.0.0" - micromatch "^3.1.10" + meow "^4.0.0" + micromatch "^2.3.11" normalize-selector "^0.2.0" - pify "^4.0.0" - postcss "^7.0.0" - postcss-html "^0.34.0" - postcss-jsx "^0.35.0" - postcss-less "^3.1.0" - postcss-markdown "^0.34.0" + pify "^3.0.0" + postcss "^6.0.6" + postcss-html "^0.12.0" + postcss-less "^1.1.0" postcss-media-query-parser "^0.2.3" - postcss-reporter "^6.0.0" + postcss-reporter "^5.0.0" postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^4.0.0" - postcss-sass "^0.3.5" - postcss-scss "^2.0.0" + postcss-safe-parser "^3.0.1" + postcss-sass "^0.2.0" + postcss-scss "^1.0.2" postcss-selector-parser "^3.1.0" - postcss-styled "^0.34.0" - postcss-syntax "^0.34.0" postcss-value-parser "^3.3.0" resolve-from "^4.0.0" - signal-exit "^3.0.2" - slash "^2.0.0" - specificity "^0.4.1" + specificity "^0.3.1" string-width "^2.1.0" style-search "^0.1.0" - sugarss "^2.0.0" + sugarss "^1.0.0" svg-tags "^1.0.0" - table "^5.0.0" + table "^4.0.1" -sugarss@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" - integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== +sugarss@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-1.0.1.tgz#be826d9003e0f247735f92365dc3fd7f1bae9e44" + integrity sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA== dependencies: - postcss "^7.0.2" + postcss "^6.0.14" superstatic@^6.0.1: version "6.0.4" @@ -10579,7 +10640,7 @@ supports-color@^3.1.0, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -10617,6 +10678,29 @@ symbol-observable@1.0.1: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= +systemjs-builder@^0.16.13: + version "0.16.13" + resolved "https://registry.yarnpkg.com/systemjs-builder/-/systemjs-builder-0.16.13.tgz#02b47d03afd1e2f29562b11ec8bc13457e785c76" + integrity sha512-ual5RmcBt7yeXrmpEQIHmITZpNIf289hCTixo/gSOQpdVLLC5v7/W//qn3ZgK6YNdUBptS4szaGVrh7LxOqSHg== + dependencies: + babel-core "^6.24.1" + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-amd-system-wrapper "^0.3.7" + babel-plugin-transform-cjs-system-wrapper "^0.6.2" + babel-plugin-transform-es2015-modules-systemjs "^6.6.5" + babel-plugin-transform-global-system-wrapper "^0.3.4" + babel-plugin-transform-system-register "^0.0.1" + bluebird "^3.3.4" + data-uri-to-buffer "0.0.4" + es6-template-strings "^2.0.0" + glob "^7.0.3" + mkdirp "^0.5.1" + rollup "^0.58.2" + source-map "^0.5.3" + systemjs "^0.19.46" + traceur "0.0.105" + uglify-js "^2.6.1" + systemjs@0.19.43: version "0.19.43" resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.43.tgz#9902ce5bdaaba03413575902c6bb18bad2ddab8e" @@ -10624,14 +10708,23 @@ systemjs@0.19.43: dependencies: when "^3.7.5" -table@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz#92030192f1b7b51b6eeab23ed416862e47b70837" - integrity sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw== +systemjs@^0.19.46: + version "0.19.47" + resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.47.tgz#c8c93937180f3f5481c769cd2720763fb4a31c6f" + integrity sha1-yMk5NxgPP1SBx2nNJyB2P7SjHG8= dependencies: - ajv "^6.6.1" - lodash "^4.17.11" - slice-ansi "2.0.0" + when "^3.7.5" + +table@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== + dependencies: + ajv "^6.0.1" + ajv-keywords "^3.0.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" string-width "^2.1.1" tar-stream@^1.5.0: @@ -10824,10 +10917,10 @@ to-buffer@^1.1.1: resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= to-object-path@^0.3.0: version "0.3.0" @@ -10889,6 +10982,17 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +traceur@0.0.105: + version "0.0.105" + resolved "https://registry.yarnpkg.com/traceur/-/traceur-0.0.105.tgz#5cf9dee83d6b77861c3d6c44d53859aed7ab0479" + integrity sha1-XPne6D1rd4YcPWxE1ThZrterBHk= + dependencies: + commander "2.9.x" + glob "5.0.x" + rsvp "^3.0.13" + semver "^4.3.3" + source-map-support "~0.2.8" + "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" @@ -11097,7 +11201,7 @@ uglify-js@3.4.x, uglify-js@^3.1.4: commander "~2.17.1" source-map "~0.6.1" -uglify-js@^2.8.14: +uglify-js@^2.6.1, uglify-js@^2.8.14: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= @@ -11186,7 +11290,7 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" -unist-util-find-all-after@^1.0.2: +unist-util-find-all-after@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz#9be49cfbae5ca1566b27536670a92836bf2f8d6d" integrity sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w== @@ -11910,13 +12014,6 @@ yallist@^3.0.0, yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - yargs-parser@^4.1.0, yargs-parser@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" @@ -12101,7 +12198,7 @@ zip-stream@^1.2.0: lodash "^4.8.0" readable-stream "^2.0.0" -zone.js@^0.8.26: - version "0.8.26" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.26.tgz#7bdd72f7668c5a7ad6b118148b4ea39c59d08d2d" - integrity sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA== +zone.js@^0.8.29: + version "0.8.29" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.29.tgz#8dce92aa0dd553b50bc5bfbb90af9986ad845a12" + integrity sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==