From 818290ba7518630f78b049355c3d63e54e5d0358 Mon Sep 17 00:00:00 2001 From: Hans Date: Thu, 1 Sep 2016 22:04:14 -0700 Subject: [PATCH] refactor(all): add index.ts, and build using es2015 and UMD bundles. (#1158) --- package.json | 1 + scripts/release/inline-resources.js | 12 ++++ .../button-toggle/button-toggle-demo.ts | 4 +- src/demo-app/demo-app-module.ts | 2 +- src/demo-app/dialog/dialog-demo.ts | 2 +- src/demo-app/grid-list/grid-list-demo.ts | 2 +- src/demo-app/icon/icon-demo.ts | 2 +- .../live-announcer/live-announcer-demo.ts | 2 +- src/demo-app/overlay/overlay-demo.ts | 2 +- src/demo-app/portal/portal-demo.ts | 2 +- src/demo-app/ripple/ripple-demo.ts | 2 +- src/demo-app/system-config.ts | 8 +-- src/demo-app/tooltip/tooltip-demo.ts | 2 +- src/e2e-app/e2e-app-module.ts | 2 +- src/e2e-app/system-config.ts | 4 +- src/lib/all/all.ts | 50 ++++++------- src/lib/all/index.ts | 1 + src/lib/button-toggle/button-toggle.ts | 5 +- src/lib/button-toggle/index.ts | 1 + src/lib/button-toggle/package.json | 5 +- src/lib/button/button.ts | 4 +- src/lib/button/package.json | 5 +- src/lib/card/index.ts | 1 + src/lib/card/package.json | 5 +- src/lib/checkbox/index.ts | 1 + src/lib/checkbox/package.json | 5 +- src/lib/core/core.ts | 21 ++++-- src/lib/core/index.ts | 1 + .../position/connected-position-strategy.ts | 2 +- .../position/global-position-strategy.ts | 2 +- src/lib/core/package.json | 5 +- src/lib/dialog/dialog-container.ts | 4 +- src/lib/dialog/dialog-errors.ts | 2 +- src/lib/dialog/dialog-ref.ts | 2 +- src/lib/dialog/dialog.spec.ts | 2 +- src/lib/dialog/dialog.ts | 4 +- src/lib/dialog/index.ts | 1 + src/lib/grid-list/grid-list-errors.ts | 2 +- src/lib/grid-list/grid-list.ts | 3 +- src/lib/grid-list/grid-tile.ts | 2 +- src/lib/grid-list/index.ts | 1 + src/lib/grid-list/package.json | 5 +- src/lib/icon/icon-registry.ts | 2 +- src/lib/icon/icon.ts | 2 +- src/lib/icon/index.ts | 1 + src/lib/icon/package.json | 5 +- src/lib/input/index.ts | 1 + src/lib/input/input.ts | 3 +- src/lib/input/package.json | 5 +- src/lib/list/index.ts | 1 + src/lib/list/list.ts | 2 +- src/lib/list/package.json | 5 +- src/lib/menu/index.ts | 1 + src/lib/menu/menu-directive.ts | 2 +- src/lib/menu/menu-errors.ts | 2 +- src/lib/menu/menu-trigger.ts | 16 ++--- src/lib/menu/menu.ts | 2 +- src/lib/menu/package.json | 5 +- src/lib/progress-bar/index.ts | 1 + src/lib/progress-bar/package.json | 5 +- src/lib/progress-circle/index.ts | 1 + src/lib/progress-circle/package.json | 5 +- src/lib/radio/index.ts | 1 + src/lib/radio/package.json | 5 +- src/lib/radio/radio.ts | 8 +-- src/lib/sidenav/index.ts | 1 + src/lib/sidenav/package.json | 5 +- src/lib/sidenav/sidenav.ts | 21 +++--- src/lib/slide-toggle/index.ts | 1 + src/lib/slide-toggle/package.json | 5 +- src/lib/slide-toggle/slide-toggle.ts | 5 +- src/lib/slider/index.ts | 1 + src/lib/slider/package.json | 5 +- src/lib/slider/slider.ts | 4 +- src/lib/slider/test-gesture-config.ts | 2 +- ...system-config.ts => system-config-spec.ts} | 6 +- src/lib/tabs/index.ts | 1 + src/lib/tabs/package.json | 5 +- src/lib/tabs/tab-content.ts | 2 +- src/lib/tabs/tab-label.ts | 2 +- src/lib/tabs/tabs.ts | 4 +- src/lib/toolbar/index.ts | 1 + src/lib/toolbar/package.json | 5 +- src/lib/tooltip/index.ts | 1 + src/lib/tooltip/package.json | 5 +- src/lib/tooltip/tooltip.spec.ts | 4 +- src/lib/tooltip/tooltip.ts | 2 +- src/lib/tsconfig-spec.json | 36 ++++++++++ src/lib/tsconfig.json | 9 ++- test/karma-test-shim.js | 4 +- tools/gulp/task_helpers.ts | 4 +- tools/gulp/tasks/components.ts | 70 ++++++++++++++++++- tools/gulp/tasks/development.ts | 2 +- tools/gulp/tasks/unit-test.ts | 15 ++-- 94 files changed, 330 insertions(+), 170 deletions(-) create mode 100644 src/lib/all/index.ts create mode 100644 src/lib/button-toggle/index.ts create mode 100644 src/lib/card/index.ts create mode 100644 src/lib/checkbox/index.ts create mode 100644 src/lib/core/index.ts create mode 100644 src/lib/dialog/index.ts create mode 100644 src/lib/grid-list/index.ts create mode 100644 src/lib/icon/index.ts create mode 100644 src/lib/input/index.ts create mode 100644 src/lib/list/index.ts create mode 100644 src/lib/menu/index.ts create mode 100644 src/lib/progress-bar/index.ts create mode 100644 src/lib/progress-circle/index.ts create mode 100644 src/lib/radio/index.ts create mode 100644 src/lib/sidenav/index.ts create mode 100644 src/lib/slide-toggle/index.ts create mode 100644 src/lib/slider/index.ts rename src/lib/{system-config.ts => system-config-spec.ts} (96%) create mode 100644 src/lib/tabs/index.ts create mode 100644 src/lib/toolbar/index.ts create mode 100644 src/lib/tooltip/index.ts create mode 100644 src/lib/tsconfig-spec.json diff --git a/package.json b/package.json index 972d86818605..2476d3b9b6d1 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "protractor": "^3.3.0", "protractor-accessibility-plugin": "0.1.1", "resolve-bin": "^0.4.0", + "rollup": "^0.34.13", "run-sequence": "^1.2.2", "sass": "^0.5.0", "strip-ansi": "^3.0.0", diff --git a/scripts/release/inline-resources.js b/scripts/release/inline-resources.js index fb4bc16171ec..930dcd97f587 100644 --- a/scripts/release/inline-resources.js +++ b/scripts/release/inline-resources.js @@ -47,6 +47,7 @@ function inlineResources(globs) { readFile(filePath, 'utf-8') .then(content => inlineTemplate(filePath, content)) .then(content => inlineStyle(filePath, content)) + .then(content => removeModuleId(filePath, content)) .then(content => writeFile(filePath, content)) .catch(err => { console.error('An error occured: ', err); @@ -104,4 +105,15 @@ function inlineStyle(filePath, content) { } +/** + * Remove every mention of `moduleId: module.id`. + * @param _ {string} The file path of the source file, currently ignored. + * @param content {string} The source file's content. + * @returns {string} The content with all moduleId: mentions removed. + */ +function removeModuleId(_, content) { + return content.replace(/\s*moduleId:\s*module\.id\s*,?\s*/gm, ''); +} + + module.exports = inlineResources; diff --git a/src/demo-app/button-toggle/button-toggle-demo.ts b/src/demo-app/button-toggle/button-toggle-demo.ts index c246b8731a9f..de862cb47b57 100644 --- a/src/demo-app/button-toggle/button-toggle-demo.ts +++ b/src/demo-app/button-toggle/button-toggle-demo.ts @@ -1,7 +1,5 @@ import {Component} from '@angular/core'; -import { - MdUniqueSelectionDispatcher -} from '@angular2-material/core/coordination/unique-selection-dispatcher'; +import {MdUniqueSelectionDispatcher} from '@angular2-material/core'; @Component({ moduleId: module.id, diff --git a/src/demo-app/demo-app-module.ts b/src/demo-app/demo-app-module.ts index b7645cecc0e9..f743a66ad1b8 100644 --- a/src/demo-app/demo-app-module.ts +++ b/src/demo-app/demo-app-module.ts @@ -4,7 +4,7 @@ import {HttpModule} from '@angular/http'; import {FormsModule} from '@angular/forms'; import {DemoApp, Home} from './demo-app/demo-app'; import {RouterModule} from '@angular/router'; -import {MaterialModule} from '@angular2-material/all/all'; +import {MaterialModule} from '@angular2-material/all'; import {DEMO_APP_ROUTES} from './demo-app/routes'; import {ProgressBarDemo} from './progress-bar/progress-bar-demo'; import {JazzDialog, DialogDemo} from './dialog/dialog-demo'; diff --git a/src/demo-app/dialog/dialog-demo.ts b/src/demo-app/dialog/dialog-demo.ts index 24b58fa1d3e4..dbb32ed25b6e 100644 --- a/src/demo-app/dialog/dialog-demo.ts +++ b/src/demo-app/dialog/dialog-demo.ts @@ -1,5 +1,5 @@ import {Component, ViewContainerRef} from '@angular/core'; -import {MdDialog, MdDialogConfig, MdDialogRef} from '@angular2-material/dialog/dialog'; +import {MdDialog, MdDialogConfig, MdDialogRef} from '@angular2-material/dialog'; @Component({ moduleId: module.id, diff --git a/src/demo-app/grid-list/grid-list-demo.ts b/src/demo-app/grid-list/grid-list-demo.ts index 3ff2db093760..8dcea3db7553 100644 --- a/src/demo-app/grid-list/grid-list-demo.ts +++ b/src/demo-app/grid-list/grid-list-demo.ts @@ -1,5 +1,5 @@ import {Component} from '@angular/core'; -import {MdIconRegistry} from '@angular2-material/icon/icon'; +import {MdIconRegistry} from '@angular2-material/icon'; @Component({ diff --git a/src/demo-app/icon/icon-demo.ts b/src/demo-app/icon/icon-demo.ts index 6ee247a18034..882f228ad22e 100644 --- a/src/demo-app/icon/icon-demo.ts +++ b/src/demo-app/icon/icon-demo.ts @@ -1,5 +1,5 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import {MdIconRegistry} from '@angular2-material/icon/icon'; +import {MdIconRegistry} from '@angular2-material/icon'; @Component({ moduleId: module.id, diff --git a/src/demo-app/live-announcer/live-announcer-demo.ts b/src/demo-app/live-announcer/live-announcer-demo.ts index ea9aab8c75c2..22b3a50fe8ac 100644 --- a/src/demo-app/live-announcer/live-announcer-demo.ts +++ b/src/demo-app/live-announcer/live-announcer-demo.ts @@ -1,5 +1,5 @@ import {Component} from '@angular/core'; -import {MdLiveAnnouncer} from '@angular2-material/core/a11y/live-announcer'; +import {MdLiveAnnouncer} from '@angular2-material/core'; @Component({ moduleId: module.id, diff --git a/src/demo-app/overlay/overlay-demo.ts b/src/demo-app/overlay/overlay-demo.ts index 6931985cf76e..c57b2e13961c 100644 --- a/src/demo-app/overlay/overlay-demo.ts +++ b/src/demo-app/overlay/overlay-demo.ts @@ -13,7 +13,7 @@ import { ComponentPortal, Portal, TemplatePortalDirective, -} from '@angular2-material/core/core'; +} from '@angular2-material/core'; @Component({ diff --git a/src/demo-app/portal/portal-demo.ts b/src/demo-app/portal/portal-demo.ts index e212c1649ecd..7016c7313c68 100644 --- a/src/demo-app/portal/portal-demo.ts +++ b/src/demo-app/portal/portal-demo.ts @@ -3,7 +3,7 @@ import { Portal, ComponentPortal, TemplatePortalDirective, -} from '@angular2-material/core/core'; +} from '@angular2-material/core'; @Component({ diff --git a/src/demo-app/ripple/ripple-demo.ts b/src/demo-app/ripple/ripple-demo.ts index 5072879b58d7..fee4a6f22022 100644 --- a/src/demo-app/ripple/ripple-demo.ts +++ b/src/demo-app/ripple/ripple-demo.ts @@ -1,5 +1,5 @@ import {Component, ViewChild} from '@angular/core'; -import {MdRipple} from '@angular2-material/core/core'; +import {MdRipple} from '@angular2-material/core'; @Component({ diff --git a/src/demo-app/system-config.ts b/src/demo-app/system-config.ts index 923f12a0dc5a..e55f92e599cc 100644 --- a/src/demo-app/system-config.ts +++ b/src/demo-app/system-config.ts @@ -30,7 +30,7 @@ const components = [ const packages: any = { '@angular2-material/core': { format: 'cjs', - defaultExtension: 'js' + main: 'core.umd.js' }, // Set the default extension for the root package, because otherwise the demo-app can't // be built within the production mode. Due to missing file extensions. @@ -41,7 +41,7 @@ const packages: any = { components.forEach(name => { packages[`@angular2-material/${name}`] = { format: 'cjs', - defaultExtension: 'js' + main: `${name}.umd.js` }; }); @@ -81,9 +81,9 @@ const barrels: string[] = [ /** @cli-barrel */ ]; -const _cliSystemConfig = angularPackages; +const _cliSystemConfig: any = angularPackages; barrels.forEach((barrelName: string) => { - ( _cliSystemConfig)[barrelName] = { main: 'index' }; + _cliSystemConfig[barrelName] = { main: 'index' }; }); /** Type declaration for ambient System. */ diff --git a/src/demo-app/tooltip/tooltip-demo.ts b/src/demo-app/tooltip/tooltip-demo.ts index 56dedc97c489..72e4bddced76 100644 --- a/src/demo-app/tooltip/tooltip-demo.ts +++ b/src/demo-app/tooltip/tooltip-demo.ts @@ -1,5 +1,5 @@ import {Component} from '@angular/core'; -import {TooltipPosition} from '@angular2-material/tooltip/tooltip'; +import {TooltipPosition} from '@angular2-material/tooltip'; @Component({ diff --git a/src/e2e-app/e2e-app-module.ts b/src/e2e-app/e2e-app-module.ts index a6ef00be8a01..cf2e0a41d475 100644 --- a/src/e2e-app/e2e-app-module.ts +++ b/src/e2e-app/e2e-app-module.ts @@ -6,7 +6,7 @@ import {IconE2E} from './icon/icon-e2e'; import {ButtonE2E} from './button/button-e2e'; import {MenuE2E} from './menu/menu-e2e'; import {BasicTabs} from './tabs/tabs-e2e'; -import {MaterialModule} from '@angular2-material/all/all'; +import {MaterialModule} from '@angular2-material/all'; import {E2E_APP_ROUTES} from './e2e-app/routes'; diff --git a/src/e2e-app/system-config.ts b/src/e2e-app/system-config.ts index 923f12a0dc5a..cfc4e3baecd4 100644 --- a/src/e2e-app/system-config.ts +++ b/src/e2e-app/system-config.ts @@ -30,7 +30,7 @@ const components = [ const packages: any = { '@angular2-material/core': { format: 'cjs', - defaultExtension: 'js' + main: 'core.umd.js' }, // Set the default extension for the root package, because otherwise the demo-app can't // be built within the production mode. Due to missing file extensions. @@ -41,7 +41,7 @@ const packages: any = { components.forEach(name => { packages[`@angular2-material/${name}`] = { format: 'cjs', - defaultExtension: 'js' + main: `${name}.umd.js` }; }); diff --git a/src/lib/all/all.ts b/src/lib/all/all.ts index 076d885f23b0..fb848bccfa13 100644 --- a/src/lib/all/all.ts +++ b/src/lib/all/all.ts @@ -1,28 +1,30 @@ import {NgModule, ModuleWithProviders} from '@angular/core'; -import {MdButtonToggleModule} from '@angular2-material/button-toggle/button-toggle'; -import {MdButtonModule} from '@angular2-material/button/button'; -import {MdCheckboxModule} from '@angular2-material/checkbox/checkbox'; -import {MdRadioModule} from '@angular2-material/radio/radio'; -import {MdSlideToggleModule} from '@angular2-material/slide-toggle/slide-toggle'; -import {MdSliderModule} from '@angular2-material/slider/slider'; -import {MdSidenavModule} from '@angular2-material/sidenav/sidenav'; -import {MdListModule} from '@angular2-material/list/list'; -import {MdGridListModule} from '@angular2-material/grid-list/grid-list'; -import {MdCardModule} from '@angular2-material/card/card'; -import {MdIconModule} from '@angular2-material/icon/icon'; -import {MdProgressCircleModule} from '@angular2-material/progress-circle/progress-circle'; -import {MdProgressBarModule} from '@angular2-material/progress-bar/progress-bar'; -import {MdInputModule} from '@angular2-material/input/input'; -import {MdTabsModule} from '@angular2-material/tabs/tabs'; -import {MdToolbarModule} from '@angular2-material/toolbar/toolbar'; -import {MdTooltipModule} from '@angular2-material/tooltip/tooltip'; -import {MdRippleModule} from '@angular2-material/core/ripple/ripple'; -import {PortalModule} from '@angular2-material/core/portal/portal-directives'; -import {OverlayModule} from '@angular2-material/core/overlay/overlay-directives'; -import {MdMenuModule} from '@angular2-material/menu/menu'; -import {MdDialogModule} from '@angular2-material/dialog/dialog'; -import {RtlModule} from '@angular2-material/core/rtl/dir'; -import {MdLiveAnnouncer} from '@angular2-material/core/a11y/live-announcer'; +import {MdButtonToggleModule} from '@angular2-material/button-toggle'; +import {MdButtonModule} from '@angular2-material/button'; +import {MdCheckboxModule} from '@angular2-material/checkbox'; +import {MdRadioModule} from '@angular2-material/radio'; +import {MdSlideToggleModule} from '@angular2-material/slide-toggle'; +import {MdSliderModule} from '@angular2-material/slider'; +import {MdSidenavModule} from '@angular2-material/sidenav'; +import {MdListModule} from '@angular2-material/list'; +import {MdGridListModule} from '@angular2-material/grid-list'; +import {MdCardModule} from '@angular2-material/card'; +import {MdIconModule} from '@angular2-material/icon'; +import {MdProgressCircleModule} from '@angular2-material/progress-circle'; +import {MdProgressBarModule} from '@angular2-material/progress-bar'; +import {MdInputModule} from '@angular2-material/input'; +import {MdTabsModule} from '@angular2-material/tabs'; +import {MdToolbarModule} from '@angular2-material/toolbar'; +import {MdTooltipModule} from '@angular2-material/tooltip'; +import { + MdLiveAnnouncer, + MdRippleModule, + RtlModule, + PortalModule, + OverlayModule +} from '@angular2-material/core'; +import {MdMenuModule} from '@angular2-material/menu'; +import {MdDialogModule} from '@angular2-material/dialog'; const MATERIAL_MODULES = [ diff --git a/src/lib/all/index.ts b/src/lib/all/index.ts new file mode 100644 index 000000000000..73508fe9b5e1 --- /dev/null +++ b/src/lib/all/index.ts @@ -0,0 +1 @@ +export * from './all'; diff --git a/src/lib/button-toggle/button-toggle.ts b/src/lib/button-toggle/button-toggle.ts index ca6b2058ff13..0fdbf82368c8 100644 --- a/src/lib/button-toggle/button-toggle.ts +++ b/src/lib/button-toggle/button-toggle.ts @@ -20,10 +20,7 @@ import { FormsModule, } from '@angular/forms'; import {Observable} from 'rxjs/Observable'; -import { - MdUniqueSelectionDispatcher -} from '@angular2-material/core/coordination/unique-selection-dispatcher'; -import {BooleanFieldValue} from '@angular2-material/core/annotations/field-value'; +import {BooleanFieldValue, MdUniqueSelectionDispatcher} from '@angular2-material/core'; export type ToggleType = 'checkbox' | 'radio'; diff --git a/src/lib/button-toggle/index.ts b/src/lib/button-toggle/index.ts new file mode 100644 index 000000000000..9c447d60f111 --- /dev/null +++ b/src/lib/button-toggle/index.ts @@ -0,0 +1 @@ +export * from './button-toggle'; diff --git a/src/lib/button-toggle/package.json b/src/lib/button-toggle/package.json index a8d8e2a12f0e..85e6b9639f4d 100644 --- a/src/lib/button-toggle/package.json +++ b/src/lib/button-toggle/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/button-toggle", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material Button Toggle", - "main": "./button-toggle.js", - "typings": "./button-toggle.d.ts", + "main": "./button-toggle.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/button/button.ts b/src/lib/button/button.ts index 9be2c13ec96f..0310d7ab9581 100644 --- a/src/lib/button/button.ts +++ b/src/lib/button/button.ts @@ -9,8 +9,8 @@ import { NgModule, } from '@angular/core'; import {CommonModule} from '@angular/common'; -import {BooleanFieldValue} from '@angular2-material/core/annotations/field-value'; -import {MdRippleModule} from '@angular2-material/core/ripple/ripple'; +import {BooleanFieldValue} from '@angular2-material/core'; +import {MdRippleModule} from '@angular2-material/core'; // TODO(jelbourn): Make the `isMouseDown` stuff done with one global listener. // TODO(kara): Convert attribute selectors to classes when attr maps become available diff --git a/src/lib/button/package.json b/src/lib/button/package.json index 0f21a4280c44..d0f176ec4b62 100644 --- a/src/lib/button/package.json +++ b/src/lib/button/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/button", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material button", - "main": "./button.js", - "typings": "./button.d.ts", + "main": "./button.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/card/index.ts b/src/lib/card/index.ts new file mode 100644 index 000000000000..cb5809fedb2d --- /dev/null +++ b/src/lib/card/index.ts @@ -0,0 +1 @@ +export * from './card'; diff --git a/src/lib/card/package.json b/src/lib/card/package.json index 14012c7b0a79..8a82b1ec6d05 100644 --- a/src/lib/card/package.json +++ b/src/lib/card/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/card", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material card", - "main": "./card.js", - "typings": "./card.d.ts", + "main": "./card.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/checkbox/index.ts b/src/lib/checkbox/index.ts new file mode 100644 index 000000000000..8d78b3e23f25 --- /dev/null +++ b/src/lib/checkbox/index.ts @@ -0,0 +1 @@ +export * from './checkbox'; diff --git a/src/lib/checkbox/package.json b/src/lib/checkbox/package.json index 753ced076151..39f5ea6a1efc 100644 --- a/src/lib/checkbox/package.json +++ b/src/lib/checkbox/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/checkbox", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material checkbox", - "main": "./checkbox.js", - "typings": "./checkbox.d.ts", + "main": "./checkbox.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/core/core.ts b/src/lib/core/core.ts index b8f66dc7d3f5..ef66a02b0eb6 100644 --- a/src/lib/core/core.ts +++ b/src/lib/core/core.ts @@ -34,10 +34,8 @@ export { OverlayOrigin, OverlayModule, } from './overlay/overlay-directives'; -export { - OverlayConnectionPosition, - OriginConnectionPosition -} from './overlay/position/connected-position'; +export * from './overlay/position/connected-position-strategy'; +export * from './overlay/position/connected-position'; // Gestures export {MdGestureConfig} from './gestures/MdGestureConfig'; @@ -59,6 +57,21 @@ export { export {MdLineModule, MdLine, MdLineSetter} from './line/line'; +// Style +export {applyCssTransform} from './style/apply-transform'; + +// Error +export {MdError} from './errors/error'; + +// Annotations. +export {BooleanFieldValue} from './annotations/field-value'; + +// Misc +export {ComponentType} from './overlay/generic-component-type'; + +// Keybindings +export * from './keyboard/keycodes'; + @NgModule({ imports: [MdLineModule, RtlModule, MdRippleModule, PortalModule, OverlayModule], diff --git a/src/lib/core/index.ts b/src/lib/core/index.ts new file mode 100644 index 000000000000..4b0e04137627 --- /dev/null +++ b/src/lib/core/index.ts @@ -0,0 +1 @@ +export * from './core'; diff --git a/src/lib/core/overlay/position/connected-position-strategy.ts b/src/lib/core/overlay/position/connected-position-strategy.ts index a3b1cb482a4e..713cd7b85efd 100644 --- a/src/lib/core/overlay/position/connected-position-strategy.ts +++ b/src/lib/core/overlay/position/connected-position-strategy.ts @@ -1,7 +1,7 @@ import {PositionStrategy} from './position-strategy'; import {ElementRef} from '@angular/core'; import {ViewportRuler} from './viewport-ruler'; -import {applyCssTransform} from '@angular2-material/core/style/apply-transform'; +import {applyCssTransform} from '@angular2-material/core'; import { ConnectionPositionPair, OriginConnectionPosition, diff --git a/src/lib/core/overlay/position/global-position-strategy.ts b/src/lib/core/overlay/position/global-position-strategy.ts index d14f6c203a1f..1c075ef5f6dd 100644 --- a/src/lib/core/overlay/position/global-position-strategy.ts +++ b/src/lib/core/overlay/position/global-position-strategy.ts @@ -1,4 +1,4 @@ -import {applyCssTransform} from '@angular2-material/core/style/apply-transform'; +import {applyCssTransform} from '@angular2-material/core'; import {PositionStrategy} from './position-strategy'; diff --git a/src/lib/core/package.json b/src/lib/core/package.json index e0fa13f86bcf..592bb88ba64f 100644 --- a/src/lib/core/package.json +++ b/src/lib/core/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/core", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material core", - "main": "./core.js", - "typings": "./core.d.ts", + "main": "./core.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/dialog/dialog-container.ts b/src/lib/dialog/dialog-container.ts index 8753381beb91..6fe610c702e2 100644 --- a/src/lib/dialog/dialog-container.ts +++ b/src/lib/dialog/dialog-container.ts @@ -2,9 +2,9 @@ import {Component, ComponentRef, ViewChild} from '@angular/core'; import { BasePortalHost, ComponentPortal, + PortalHostDirective, TemplatePortal -} from '@angular2-material/core/portal/portal'; -import {PortalHostDirective} from '@angular2-material/core/portal/portal-directives'; +} from '@angular2-material/core'; import {MdDialogConfig} from './dialog-config'; import {MdDialogContentAlreadyAttachedError} from './dialog-errors'; diff --git a/src/lib/dialog/dialog-errors.ts b/src/lib/dialog/dialog-errors.ts index 20a133c6d49f..87ddc0938182 100644 --- a/src/lib/dialog/dialog-errors.ts +++ b/src/lib/dialog/dialog-errors.ts @@ -1,4 +1,4 @@ -import {MdError} from '@angular2-material/core/errors/error'; +import {MdError} from '@angular2-material/core'; /** Exception thrown when a ComponentPortal is attached to a DomPortalHost without an origin. */ export class MdDialogContentAlreadyAttachedError extends MdError { diff --git a/src/lib/dialog/dialog-ref.ts b/src/lib/dialog/dialog-ref.ts index 4be15c812788..927ba71a6032 100644 --- a/src/lib/dialog/dialog-ref.ts +++ b/src/lib/dialog/dialog-ref.ts @@ -1,4 +1,4 @@ -import {OverlayRef} from '@angular2-material/core/overlay/overlay-ref'; +import {OverlayRef} from '@angular2-material/core'; import {Observable} from 'rxjs/Observable'; import {Subject} from 'rxjs/Subject'; diff --git a/src/lib/dialog/dialog.spec.ts b/src/lib/dialog/dialog.spec.ts index 3513421636dc..9fb41d4cc63d 100644 --- a/src/lib/dialog/dialog.spec.ts +++ b/src/lib/dialog/dialog.spec.ts @@ -1,7 +1,7 @@ import {inject, async, ComponentFixture, TestBed} from '@angular/core/testing'; import {NgModule, Component, Directive, ViewChild, ViewContainerRef} from '@angular/core'; import {MdDialog, MdDialogModule} from './dialog'; -import {OverlayContainer} from '@angular2-material/core/overlay/overlay-container'; +import {OverlayContainer} from '@angular2-material/core'; import {MdDialogConfig} from './dialog-config'; import {MdDialogRef} from './dialog-ref'; diff --git a/src/lib/dialog/dialog.ts b/src/lib/dialog/dialog.ts index 775a7cdde2e5..95c7dbe923fa 100644 --- a/src/lib/dialog/dialog.ts +++ b/src/lib/dialog/dialog.ts @@ -7,8 +7,8 @@ import { OverlayState, ComponentPortal, OVERLAY_PROVIDERS, -} from '@angular2-material/core/core'; -import {ComponentType} from '@angular2-material/core/overlay/generic-component-type'; +} from '@angular2-material/core'; +import {ComponentType} from '@angular2-material/core'; import {MdDialogConfig} from './dialog-config'; import {MdDialogRef} from './dialog-ref'; import {DialogInjector} from './dialog-injector'; diff --git a/src/lib/dialog/index.ts b/src/lib/dialog/index.ts new file mode 100644 index 000000000000..20da8e550a61 --- /dev/null +++ b/src/lib/dialog/index.ts @@ -0,0 +1 @@ +export * from './dialog'; diff --git a/src/lib/grid-list/grid-list-errors.ts b/src/lib/grid-list/grid-list-errors.ts index b9220f942aac..559c7fa25cd3 100644 --- a/src/lib/grid-list/grid-list-errors.ts +++ b/src/lib/grid-list/grid-list-errors.ts @@ -1,4 +1,4 @@ -import {MdError} from '@angular2-material/core/errors/error'; +import {MdError} from '@angular2-material/core'; /** * Exception thrown when cols property is missing from grid-list diff --git a/src/lib/grid-list/grid-list.ts b/src/lib/grid-list/grid-list.ts index 5bd544520916..279f26d8f3fc 100644 --- a/src/lib/grid-list/grid-list.ts +++ b/src/lib/grid-list/grid-list.ts @@ -20,8 +20,7 @@ import { FixedTileStyler } from './tile-styler'; import {MdGridListColsError} from './grid-list-errors'; -import {Dir} from '@angular2-material/core/rtl/dir'; -import {MdLineModule} from '@angular2-material/core/line/line'; +import {Dir, MdLineModule} from '@angular2-material/core'; import {coerceToString, coerceToNumber} from './grid-list-measure'; // TODO(kara): Conditional (responsive) column count / row size. diff --git a/src/lib/grid-list/grid-tile.ts b/src/lib/grid-list/grid-tile.ts index f6e5aa00577d..afb30c287ba6 100644 --- a/src/lib/grid-list/grid-tile.ts +++ b/src/lib/grid-list/grid-tile.ts @@ -8,7 +8,7 @@ import { QueryList, AfterContentInit } from '@angular/core'; -import { MdLine, MdLineSetter } from '@angular2-material/core/line/line'; +import { MdLine, MdLineSetter } from '@angular2-material/core'; import {coerceToNumber} from './grid-list-measure'; @Component({ diff --git a/src/lib/grid-list/index.ts b/src/lib/grid-list/index.ts new file mode 100644 index 000000000000..981d0024533e --- /dev/null +++ b/src/lib/grid-list/index.ts @@ -0,0 +1 @@ +export * from './grid-list'; diff --git a/src/lib/grid-list/package.json b/src/lib/grid-list/package.json index fa8805abba70..133f3610afa0 100644 --- a/src/lib/grid-list/package.json +++ b/src/lib/grid-list/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/grid-list", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material grid list", - "main": "./grid-list.js", - "typings": "./grid-list.d.ts", + "main": "./grid-list.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/icon/icon-registry.ts b/src/lib/icon/icon-registry.ts index 469ec294c203..7cdb4ecd4ba7 100644 --- a/src/lib/icon/icon-registry.ts +++ b/src/lib/icon/icon-registry.ts @@ -1,6 +1,6 @@ import {Injectable} from '@angular/core'; import {Http} from '@angular/http'; -import {MdError} from '@angular2-material/core/errors/error'; +import {MdError} from '@angular2-material/core'; import {Observable} from 'rxjs/Observable'; import 'rxjs/add/observable/forkJoin'; import 'rxjs/add/observable/of'; diff --git a/src/lib/icon/icon.ts b/src/lib/icon/icon.ts index 9786ccd699de..ee9a7dcca5f9 100644 --- a/src/lib/icon/icon.ts +++ b/src/lib/icon/icon.ts @@ -13,7 +13,7 @@ import { AfterViewChecked } from '@angular/core'; import {HttpModule} from '@angular/http'; -import {MdError} from '@angular2-material/core/errors/error'; +import {MdError} from '@angular2-material/core'; import {MdIconRegistry} from './icon-registry'; export {MdIconRegistry} from './icon-registry'; diff --git a/src/lib/icon/index.ts b/src/lib/icon/index.ts new file mode 100644 index 000000000000..af77d84efccf --- /dev/null +++ b/src/lib/icon/index.ts @@ -0,0 +1 @@ +export * from './icon'; diff --git a/src/lib/icon/package.json b/src/lib/icon/package.json index 74cc4072eb38..d16c83a671e9 100644 --- a/src/lib/icon/package.json +++ b/src/lib/icon/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/icon", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material icon", - "main": "./icon.js", - "typings": "./icon.d.ts", + "main": "./icon.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/input/index.ts b/src/lib/input/index.ts new file mode 100644 index 000000000000..e3365cb9065e --- /dev/null +++ b/src/lib/input/index.ts @@ -0,0 +1 @@ +export * from './input'; diff --git a/src/lib/input/input.ts b/src/lib/input/input.ts index 43a66f5e512b..345d43efaffc 100644 --- a/src/lib/input/input.ts +++ b/src/lib/input/input.ts @@ -22,8 +22,7 @@ import { FormsModule, } from '@angular/forms'; import {CommonModule} from '@angular/common'; -import {BooleanFieldValue} from '@angular2-material/core/annotations/field-value'; -import {MdError} from '@angular2-material/core/errors/error'; +import {BooleanFieldValue, MdError} from '@angular2-material/core'; import {Observable} from 'rxjs/Observable'; diff --git a/src/lib/input/package.json b/src/lib/input/package.json index 092c0acbfc29..6126ce754f98 100644 --- a/src/lib/input/package.json +++ b/src/lib/input/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/input", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material input", - "main": "./input.js", - "typings": "./input.d.ts", + "main": "./input.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/list/index.ts b/src/lib/list/index.ts new file mode 100644 index 000000000000..71825137f468 --- /dev/null +++ b/src/lib/list/index.ts @@ -0,0 +1 @@ +export * from './list'; diff --git a/src/lib/list/list.ts b/src/lib/list/list.ts index d28ec96cb35a..f2315575866d 100644 --- a/src/lib/list/list.ts +++ b/src/lib/list/list.ts @@ -10,7 +10,7 @@ import { AfterContentInit, NgModule, } from '@angular/core'; -import {MdLine, MdLineSetter, MdLineModule} from '@angular2-material/core/line/line'; +import {MdLine, MdLineSetter, MdLineModule} from '@angular2-material/core'; @Directive({ selector: 'md-divider' diff --git a/src/lib/list/package.json b/src/lib/list/package.json index 1966e8439150..9307e932d735 100644 --- a/src/lib/list/package.json +++ b/src/lib/list/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/list", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material list", - "main": "./list.js", - "typings": "./list.d.ts", + "main": "./list.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/menu/index.ts b/src/lib/menu/index.ts new file mode 100644 index 000000000000..8267df70b37b --- /dev/null +++ b/src/lib/menu/index.ts @@ -0,0 +1 @@ +export * from './menu'; diff --git a/src/lib/menu/menu-directive.ts b/src/lib/menu/menu-directive.ts index de507867ecbf..7306d031a652 100644 --- a/src/lib/menu/menu-directive.ts +++ b/src/lib/menu/menu-directive.ts @@ -15,7 +15,7 @@ import { import {MenuPositionX, MenuPositionY} from './menu-positions'; import {MdMenuInvalidPositionX, MdMenuInvalidPositionY} from './menu-errors'; import {MdMenuItem} from './menu-item'; -import {UP_ARROW, DOWN_ARROW, TAB} from '@angular2-material/core/keyboard/keycodes'; +import {UP_ARROW, DOWN_ARROW, TAB} from '@angular2-material/core'; @Component({ moduleId: module.id, diff --git a/src/lib/menu/menu-errors.ts b/src/lib/menu/menu-errors.ts index 6cef81805120..7e1f1704172d 100644 --- a/src/lib/menu/menu-errors.ts +++ b/src/lib/menu/menu-errors.ts @@ -1,4 +1,4 @@ -import {MdError} from '@angular2-material/core/errors/error'; +import {MdError} from '@angular2-material/core'; /** * Exception thrown when menu trigger doesn't have a valid md-menu instance diff --git a/src/lib/menu/menu-trigger.ts b/src/lib/menu/menu-trigger.ts index 99e7354424d3..a4ba1973d1bc 100644 --- a/src/lib/menu/menu-trigger.ts +++ b/src/lib/menu/menu-trigger.ts @@ -13,19 +13,15 @@ import { import {MdMenu} from './menu-directive'; import {MdMenuMissingError} from './menu-errors'; import { + ENTER, Overlay, OverlayState, OverlayRef, - TemplatePortal -} from '@angular2-material/core/core'; -import { - ConnectedPositionStrategy -} from '@angular2-material/core/overlay/position/connected-position-strategy'; -import { - HorizontalConnectionPos, - VerticalConnectionPos -} from '@angular2-material/core/overlay/position/connected-position'; -import {ENTER} from '@angular2-material/core/keyboard/keycodes'; + TemplatePortal, + ConnectedPositionStrategy, + HorizontalConnectionPos, + VerticalConnectionPos +} from '@angular2-material/core'; /** * This directive is intended to be used in conjunction with an md-menu tag. It is diff --git a/src/lib/menu/menu.ts b/src/lib/menu/menu.ts index 1394864623cc..0c90a96d4d32 100644 --- a/src/lib/menu/menu.ts +++ b/src/lib/menu/menu.ts @@ -1,6 +1,6 @@ import {NgModule, ModuleWithProviders} from '@angular/core'; import {CommonModule} from '@angular/common'; -import {OverlayModule, OVERLAY_PROVIDERS} from '@angular2-material/core/core'; +import {OverlayModule, OVERLAY_PROVIDERS} from '@angular2-material/core'; import {MdMenu} from './menu-directive'; import {MdMenuItem} from './menu-item'; import {MdMenuTrigger} from './menu-trigger'; diff --git a/src/lib/menu/package.json b/src/lib/menu/package.json index c0e5760da7c3..27e827f6d6ee 100644 --- a/src/lib/menu/package.json +++ b/src/lib/menu/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/menu", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material menu", - "main": "./menu.js", - "typings": "./menu.d.ts", + "main": "./menu.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/progress-bar/index.ts b/src/lib/progress-bar/index.ts new file mode 100644 index 000000000000..d71d9b1bf740 --- /dev/null +++ b/src/lib/progress-bar/index.ts @@ -0,0 +1 @@ +export * from './progress-bar'; diff --git a/src/lib/progress-bar/package.json b/src/lib/progress-bar/package.json index 7638376a5cca..c3fcc066fdb9 100644 --- a/src/lib/progress-bar/package.json +++ b/src/lib/progress-bar/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/progress-bar", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material progress-bar", - "main": "./progress-bar.js", - "typings": "./progress-bar.d.ts", + "main": "./progress-bar.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/progress-circle/index.ts b/src/lib/progress-circle/index.ts new file mode 100644 index 000000000000..6fcf6b841168 --- /dev/null +++ b/src/lib/progress-circle/index.ts @@ -0,0 +1 @@ +export * from './progress-circle'; diff --git a/src/lib/progress-circle/package.json b/src/lib/progress-circle/package.json index 44b0cc1a9a60..1e9ebb4eed8a 100644 --- a/src/lib/progress-circle/package.json +++ b/src/lib/progress-circle/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/progress-circle", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material progress-circle", - "main": "./progress-circle.js", - "typings": "./progress-circle.d.ts", + "main": "./progress-circle.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/radio/index.ts b/src/lib/radio/index.ts new file mode 100644 index 000000000000..1140e08e216f --- /dev/null +++ b/src/lib/radio/index.ts @@ -0,0 +1 @@ +export * from './radio'; diff --git a/src/lib/radio/package.json b/src/lib/radio/package.json index cc865570682c..53dc319a7f87 100644 --- a/src/lib/radio/package.json +++ b/src/lib/radio/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/radio", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material radio", - "main": "./radio.js", - "typings": "./radio.d.ts", + "main": "./radio.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/radio/radio.ts b/src/lib/radio/radio.ts index 2fece950f55c..1f9db8306946 100644 --- a/src/lib/radio/radio.ts +++ b/src/lib/radio/radio.ts @@ -19,15 +19,11 @@ import { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'; -import { - MdUniqueSelectionDispatcher -} from '@angular2-material/core/coordination/unique-selection-dispatcher'; +import {MdUniqueSelectionDispatcher} from '@angular2-material/core'; // Re-exports. -export { - MdUniqueSelectionDispatcher -} from '@angular2-material/core/coordination/unique-selection-dispatcher'; +export {MdUniqueSelectionDispatcher} from '@angular2-material/core'; diff --git a/src/lib/sidenav/index.ts b/src/lib/sidenav/index.ts new file mode 100644 index 000000000000..b126f2c842e3 --- /dev/null +++ b/src/lib/sidenav/index.ts @@ -0,0 +1 @@ +export * from './sidenav'; diff --git a/src/lib/sidenav/package.json b/src/lib/sidenav/package.json index cbd240bc6ebf..84dcccbb4662 100644 --- a/src/lib/sidenav/package.json +++ b/src/lib/sidenav/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/sidenav", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material sidenav", - "main": "./sidenav.js", - "typings": "./sidenav.d.ts", + "main": "./sidenav.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/sidenav/sidenav.ts b/src/lib/sidenav/sidenav.ts index 4e809c59b93b..877981cc1561 100644 --- a/src/lib/sidenav/sidenav.ts +++ b/src/lib/sidenav/sidenav.ts @@ -15,10 +15,7 @@ import { ViewEncapsulation, } from '@angular/core'; import {CommonModule} from '@angular/common'; -import {Dir} from '@angular2-material/core/rtl/dir'; -import {PromiseCompleter} from '@angular2-material/core/async/promise-completer'; -import {MdError} from '@angular2-material/core/errors/error'; -import { BooleanFieldValue } from '@angular2-material/core/annotations/field-value'; +import {Dir, MdError, BooleanFieldValue} from '@angular2-material/core'; /** Exception thrown when two MdSidenav are matching the same side. */ export class MdDuplicatedSidenavError extends MdError { @@ -123,18 +120,18 @@ export class MdSidenav { if (isOpen) { if (this._openPromise == null) { - let completer = new PromiseCompleter(); - this._openPromise = completer.promise; - this._openPromiseReject = completer.reject; - this._openPromiseResolve = completer.resolve; + this._openPromise = new Promise((resolve, reject) => { + this._openPromiseResolve = resolve; + this._openPromiseReject = reject; + }); } return this._openPromise; } else { if (this._closePromise == null) { - let completer = new PromiseCompleter(); - this._closePromise = completer.promise; - this._closePromiseReject = completer.reject; - this._closePromiseResolve = completer.resolve; + this._closePromise = new Promise((resolve, reject) => { + this._closePromiseResolve = resolve; + this._closePromiseReject = reject; + }); } return this._closePromise; } diff --git a/src/lib/slide-toggle/index.ts b/src/lib/slide-toggle/index.ts new file mode 100644 index 000000000000..e2f2f602f25c --- /dev/null +++ b/src/lib/slide-toggle/index.ts @@ -0,0 +1 @@ +export * from './slide-toggle'; diff --git a/src/lib/slide-toggle/package.json b/src/lib/slide-toggle/package.json index 3c79e0d6ccbe..61aabc2fdea6 100644 --- a/src/lib/slide-toggle/package.json +++ b/src/lib/slide-toggle/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/slide-toggle", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material Slide Toggle", - "main": "./slide-toggle.js", - "typings": "./slide-toggle.d.ts", + "main": "./slide-toggle.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/slide-toggle/slide-toggle.ts b/src/lib/slide-toggle/slide-toggle.ts index a2b695a7e02e..1b5ea011ca33 100644 --- a/src/lib/slide-toggle/slide-toggle.ts +++ b/src/lib/slide-toggle/slide-toggle.ts @@ -17,10 +17,9 @@ import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; -import {BooleanFieldValue} from '@angular2-material/core/annotations/field-value'; +import {BooleanFieldValue, applyCssTransform} from '@angular2-material/core'; import {Observable} from 'rxjs/Observable'; -import {applyCssTransform} from '@angular2-material/core/style/apply-transform'; -import {MdGestureConfig} from '@angular2-material/core/core'; +import {MdGestureConfig} from '@angular2-material/core'; export const MD_SLIDE_TOGGLE_VALUE_ACCESSOR: any = { diff --git a/src/lib/slider/index.ts b/src/lib/slider/index.ts new file mode 100644 index 000000000000..eb0742f8019b --- /dev/null +++ b/src/lib/slider/index.ts @@ -0,0 +1 @@ +export * from './slider'; diff --git a/src/lib/slider/package.json b/src/lib/slider/package.json index d40b7474c547..c5891045a120 100644 --- a/src/lib/slider/package.json +++ b/src/lib/slider/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/slider", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material Slider", - "main": "./slider.js", - "typings": "./slider.d.ts", + "main": "./slider.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/slider/slider.ts b/src/lib/slider/slider.ts index 625cde9013fe..88b89160e84a 100644 --- a/src/lib/slider/slider.ts +++ b/src/lib/slider/slider.ts @@ -15,9 +15,7 @@ import { FormsModule, } from '@angular/forms'; import {HAMMER_GESTURE_CONFIG} from '@angular/platform-browser'; -import {BooleanFieldValue} from '@angular2-material/core/annotations/field-value'; -import {applyCssTransform} from '@angular2-material/core/style/apply-transform'; -import {MdGestureConfig} from '@angular2-material/core/core'; +import {BooleanFieldValue, MdGestureConfig, applyCssTransform} from '@angular2-material/core'; import {Input as HammerInput} from 'hammerjs'; /** diff --git a/src/lib/slider/test-gesture-config.ts b/src/lib/slider/test-gesture-config.ts index dc308d22242b..e7c99e678929 100644 --- a/src/lib/slider/test-gesture-config.ts +++ b/src/lib/slider/test-gesture-config.ts @@ -1,5 +1,5 @@ import {Injectable} from '@angular/core'; -import {MdGestureConfig} from '@angular2-material/core/gestures/MdGestureConfig'; +import {MdGestureConfig} from '@angular2-material/core'; /** * An extension of MdGestureConfig that exposes the underlying HammerManager instances. diff --git a/src/lib/system-config.ts b/src/lib/system-config-spec.ts similarity index 96% rename from src/lib/system-config.ts rename to src/lib/system-config-spec.ts index a8aef53674cc..a99944db3f86 100644 --- a/src/lib/system-config.ts +++ b/src/lib/system-config-spec.ts @@ -30,7 +30,8 @@ const components = [ const packages: any = { '@angular2-material/core': { format: 'cjs', - defaultExtension: 'js' + defaultExtension: 'js', + main: 'index' }, // Set the default extension for the root package, because otherwise the demo-app can't // be built within the production mode. Due to missing file extensions. @@ -41,7 +42,8 @@ const packages: any = { components.forEach(name => { packages[`@angular2-material/${name}`] = { format: 'cjs', - defaultExtension: 'js' + defaultExtension: 'js', + main: 'index' }; }); diff --git a/src/lib/tabs/index.ts b/src/lib/tabs/index.ts new file mode 100644 index 000000000000..c2d1b4e91b22 --- /dev/null +++ b/src/lib/tabs/index.ts @@ -0,0 +1 @@ +export * from './tabs'; diff --git a/src/lib/tabs/package.json b/src/lib/tabs/package.json index acb6cd164732..649d83bed0ce 100644 --- a/src/lib/tabs/package.json +++ b/src/lib/tabs/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/tabs", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material Tabs", - "main": "./tabs.js", - "typings": "./tabs.d.ts", + "main": "./tabs.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/tabs/tab-content.ts b/src/lib/tabs/tab-content.ts index 20b004bb7954..fd392daeb058 100644 --- a/src/lib/tabs/tab-content.ts +++ b/src/lib/tabs/tab-content.ts @@ -1,5 +1,5 @@ import {Directive, TemplateRef, ViewContainerRef} from '@angular/core'; -import {TemplatePortalDirective} from '@angular2-material/core/portal/portal-directives'; +import {TemplatePortalDirective} from '@angular2-material/core'; /** Used to flag tab contents for use with the portal directive */ @Directive({ diff --git a/src/lib/tabs/tab-label.ts b/src/lib/tabs/tab-label.ts index 8adb67afaf57..8096b14ec82a 100644 --- a/src/lib/tabs/tab-label.ts +++ b/src/lib/tabs/tab-label.ts @@ -1,5 +1,5 @@ import {Directive, TemplateRef, ViewContainerRef} from '@angular/core'; -import {TemplatePortalDirective} from '@angular2-material/core/portal/portal-directives'; +import {TemplatePortalDirective} from '@angular2-material/core'; /** Used to flag tab labels for use with the portal directive */ @Directive({ diff --git a/src/lib/tabs/tabs.ts b/src/lib/tabs/tabs.ts index 60cd893b3b98..73f97e5c1fe0 100644 --- a/src/lib/tabs/tabs.ts +++ b/src/lib/tabs/tabs.ts @@ -12,14 +12,14 @@ import { ContentChildren } from '@angular/core'; import {CommonModule} from '@angular/common'; -import {PortalModule} from '@angular2-material/core/portal/portal-directives'; +import {PortalModule} from '@angular2-material/core'; import {MdTabLabel} from './tab-label'; import {MdTabContent} from './tab-content'; import {MdTabLabelWrapper} from './tab-label-wrapper'; import {MdInkBar} from './ink-bar'; import {Observable} from 'rxjs/Observable'; import 'rxjs/add/operator/map'; -import {RIGHT_ARROW, LEFT_ARROW, ENTER} from '@angular2-material/core/keyboard/keycodes'; +import {RIGHT_ARROW, LEFT_ARROW, ENTER} from '@angular2-material/core'; /** Used to generate unique ID's for each tab component */ let nextId = 0; diff --git a/src/lib/toolbar/index.ts b/src/lib/toolbar/index.ts new file mode 100644 index 000000000000..316a52a324ed --- /dev/null +++ b/src/lib/toolbar/index.ts @@ -0,0 +1 @@ +export * from './toolbar'; diff --git a/src/lib/toolbar/package.json b/src/lib/toolbar/package.json index f43846e81a9b..10fe7b678052 100644 --- a/src/lib/toolbar/package.json +++ b/src/lib/toolbar/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/toolbar", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material toolbar", - "main": "./toolbar.js", - "typings": "./toolbar.d.ts", + "main": "./toolbar.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/tooltip/index.ts b/src/lib/tooltip/index.ts new file mode 100644 index 000000000000..ed8326d5e7c1 --- /dev/null +++ b/src/lib/tooltip/index.ts @@ -0,0 +1 @@ +export * from './tooltip'; diff --git a/src/lib/tooltip/package.json b/src/lib/tooltip/package.json index 577424acafd4..802030c05417 100644 --- a/src/lib/tooltip/package.json +++ b/src/lib/tooltip/package.json @@ -2,8 +2,9 @@ "name": "@angular2-material/tooltip", "version": "2.0.0-alpha.7-12", "description": "Angular 2 Material tooltip", - "main": "./tooltip.js", - "typings": "./tooltip.d.ts", + "main": "./tooltip.umd.js", + "module": "./index.js", + "typings": "./index.d.ts", "repository": { "type": "git", "url": "https://github.com/angular/material2.git" diff --git a/src/lib/tooltip/tooltip.spec.ts b/src/lib/tooltip/tooltip.spec.ts index d67089932ac8..821047b28601 100644 --- a/src/lib/tooltip/tooltip.spec.ts +++ b/src/lib/tooltip/tooltip.spec.ts @@ -1,8 +1,8 @@ import {async, ComponentFixture, TestBed} from '@angular/core/testing'; import {Component, DebugElement} from '@angular/core'; import {By} from '@angular/platform-browser'; -import {TooltipPosition, MdTooltip} from '@angular2-material/tooltip/tooltip'; -import {OverlayContainer} from '@angular2-material/core/overlay/overlay-container'; +import {TooltipPosition, MdTooltip} from '@angular2-material/tooltip'; +import {OverlayContainer} from '@angular2-material/core'; import {MdTooltipModule} from './tooltip'; diff --git a/src/lib/tooltip/tooltip.ts b/src/lib/tooltip/tooltip.ts index 1ede574846e3..3ddbf12fc382 100644 --- a/src/lib/tooltip/tooltip.ts +++ b/src/lib/tooltip/tooltip.ts @@ -17,7 +17,7 @@ import { OverlayConnectionPosition, OriginConnectionPosition, OVERLAY_PROVIDERS, -} from '@angular2-material/core/core'; +} from '@angular2-material/core'; export type TooltipPosition = 'before' | 'after' | 'above' | 'below'; diff --git a/src/lib/tsconfig-spec.json b/src/lib/tsconfig-spec.json new file mode 100644 index 000000000000..3646ff4eb4ee --- /dev/null +++ b/src/lib/tsconfig-spec.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "declaration": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "lib": ["es6", "es2015", "dom"], + "mapRoot": "", + "module": "commonjs", + "moduleResolution": "node", + "noEmitOnError": true, + "noImplicitAny": true, + "outDir": "../../dist/@angular2-material", + "rootDir": ".", + "sourceMap": true, + "target": "es5", + "inlineSources": true, + "stripInternal": true, + "baseUrl": "", + "paths": { + "@angular2-material/*": [ + "./*" + ] + }, + "typeRoots": [ + "../../node_modules/@types" + ], + "types": [ + "jasmine" + ] + }, + "angularCompilerOptions": { + "genDir": "../../dist", + "skipTemplateCodegen": true, + "debug": true + } +} diff --git a/src/lib/tsconfig.json b/src/lib/tsconfig.json index 21887d61a536..3257b3e00d47 100644 --- a/src/lib/tsconfig.json +++ b/src/lib/tsconfig.json @@ -5,7 +5,7 @@ "experimentalDecorators": true, "lib": ["es6", "es2015", "dom"], "mapRoot": "", - "module": "commonjs", + "module": "umd", "moduleResolution": "node", "noEmitOnError": true, "noImplicitAny": true, @@ -25,11 +25,14 @@ "../../node_modules/@types" ], "types": [ - "jasmine" ] }, + "exclude": [ + "**/*.spec.*", + "system-config-spec" + ], "angularCompilerOptions": { - "genDir": "../dist", + "genDir": "../../dist", "skipTemplateCodegen": true, "debug": true } diff --git a/test/karma-test-shim.js b/test/karma-test-shim.js index 9807aba5196a..8e3dc73bf1fd 100644 --- a/test/karma-test-shim.js +++ b/test/karma-test-shim.js @@ -1,6 +1,6 @@ /*global jasmine, __karma__, window*/ Error.stackTraceLimit = Infinity; -jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000; +jasmine.DEFAULT_TIMEOUT_INTERVAL = 3000; __karma__.loaded = function () { }; @@ -28,7 +28,7 @@ System.config({ baseURL: distPath }); -System.import(distPath + '@angular2-material/system-config.js').then(function() { +System.import(distPath + '@angular2-material/system-config-spec.js').then(function() { // Load and configure the TestComponentBuilder. return Promise.all([ System.import('@angular/core/testing'), diff --git a/tools/gulp/task_helpers.ts b/tools/gulp/task_helpers.ts index 03a23ee9c660..fa21f9915e47 100644 --- a/tools/gulp/task_helpers.ts +++ b/tools/gulp/task_helpers.ts @@ -25,10 +25,12 @@ function _globify(maybeGlob: string, suffix = '**/*') { /** Create a TS Build Task, based on the options. */ export function tsBuildTask(tsConfigPath: string) { - const tsConfigDir = tsConfigPath; + let tsConfigDir = tsConfigPath; if (fs.existsSync(path.join(tsConfigDir, 'tsconfig.json'))) { // Append tsconfig.json tsConfigPath = path.join(tsConfigDir, 'tsconfig.json'); + } else { + tsConfigDir = path.dirname(tsConfigDir); } return () => { diff --git a/tools/gulp/tasks/components.ts b/tools/gulp/tasks/components.ts index 2f10cc65b116..1a9ea12efff2 100644 --- a/tools/gulp/tasks/components.ts +++ b/tools/gulp/tasks/components.ts @@ -1,15 +1,24 @@ import {task, watch} from 'gulp'; +import {readdirSync, statSync, writeFileSync} from 'fs'; import * as path from 'path'; import {SOURCE_ROOT, DIST_COMPONENTS_ROOT, PROJECT_ROOT} from '../constants'; import {sassBuildTask, tsBuildTask, execNodeTask, copyTask} from '../task_helpers'; -// No typings for this. +// No typings for these. const inlineResources = require('../../../scripts/release/inline-resources'); +const rollup = require('rollup').rollup; const componentsDir = path.join(SOURCE_ROOT, 'lib'); +function camelCase(str: string) { + return str.replace(/-(\w)/g, (_: any, letter: string) => { + return letter.toUpperCase(); + }) +} + + task(':watch:components', () => { watch(path.join(componentsDir, '**/*.ts'), [':build:components:ts']); watch(path.join(componentsDir, '**/*.scss'), [':build:components:scss']); @@ -18,18 +27,73 @@ task(':watch:components', () => { task(':build:components:ts', tsBuildTask(componentsDir)); +task(':build:components:spec', tsBuildTask(path.join(componentsDir, 'tsconfig-spec.json'))); task(':build:components:assets', copyTask(path.join(componentsDir, '*/**/*.!(ts|spec.ts)'), DIST_COMPONENTS_ROOT)); task(':build:components:scss', sassBuildTask( DIST_COMPONENTS_ROOT, componentsDir, [path.join(componentsDir, 'core/style')] )); +task(':build:components:rollup', [':build:components:ts'], () => { + const components = readdirSync(componentsDir) + .filter(componentName => (statSync(path.join(componentsDir, componentName))).isDirectory()); + + const globals: {[name: string]: string} = { + // Angular dependencies + '@angular/core': 'ng.core', + '@angular/common': 'ng.common', + '@angular/forms': 'ng.forms', + '@angular/http': 'ng.http', + '@angular/platform-browser': 'ng.platformBrowser', + '@angular/platform-browser-dynamic': 'ng.platformBrowserDynamic', + + // Rxjs dependencies + 'rxjs/Subject': 'Rx', + 'rxjs/add/observable/forkJoin': 'Rx.Observable', + 'rxjs/add/observable/of': 'Rx.Observable', + 'rxjs/add/operator/toPromise': 'Rx.Observable.prototype', + 'rxjs/add/operator/map': 'Rx.Observable.prototype', + 'rxjs/add/operator/filter': 'Rx.Observable.prototype', + 'rxjs/add/operator/do': 'Rx.Observable.prototype', + 'rxjs/add/operator/share': 'Rx.Observable.prototype', + 'rxjs/add/operator/finally': 'Rx.Observable.prototype', + 'rxjs/add/operator/catch': 'Rx.Observable.prototype', + 'rxjs/Observable': 'Rx' + }; + components.forEach(name => { + globals[`@angular2-material/${name}`] = `md.${camelCase(name)}` + }); + + // Build all of them asynchronously. + return components.reduce((previous, name) => { + return previous + .then(() => { + return rollup({ + entry: path.join(DIST_COMPONENTS_ROOT, name, 'index.js'), + context: 'window', + external: [ + ...Object.keys(globals), + ...components.map(name => `@angular2-material/${name}`) + ] + }); + }) + .then((bundle: any) => { + const result = bundle.generate({ + moduleName: `md.${camelCase(name)}`, + format: 'umd', + globals + }); + const outputPath = path.join(DIST_COMPONENTS_ROOT, name, `${name}.umd.js`); + writeFileSync( outputPath, result.code ); + }); + }, Promise.resolve()); +}); task('build:components', [ - ':build:components:ts', + ':build:components:rollup', ':build:components:assets', ':build:components:scss' ], () => inlineResources([DIST_COMPONENTS_ROOT])); task(':build:components:ngc', ['build:components'], execNodeTask( - '@angular/compiler-cli', 'ngc', ['-p', path.relative(PROJECT_ROOT, componentsDir)] + '@angular/compiler-cli', 'ngc', ['-p', path.relative(PROJECT_ROOT, path.join(componentsDir, 'tsconfig.json'))] )); diff --git a/tools/gulp/tasks/development.ts b/tools/gulp/tasks/development.ts index ea35a5825d51..ab3692297084 100644 --- a/tools/gulp/tasks/development.ts +++ b/tools/gulp/tasks/development.ts @@ -20,7 +20,7 @@ task(':watch:devapp', () => { task(':build:devapp:vendor', vendorTask()); -task(':build:devapp:ts', [':build:components:ts'], tsBuildTask(appDir)); +task(':build:devapp:ts', [':build:components:rollup'], tsBuildTask(appDir)); task(':build:devapp:scss', [':build:components:scss'], sassBuildTask(outDir, appDir, [])); task(':build:devapp:assets', copyTask(appDir, outDir)); task('build:devapp', buildAppTask('devapp')); diff --git a/tools/gulp/tasks/unit-test.ts b/tools/gulp/tasks/unit-test.ts index f97cb1855fbf..7fe371aca784 100644 --- a/tools/gulp/tasks/unit-test.ts +++ b/tools/gulp/tasks/unit-test.ts @@ -4,6 +4,7 @@ import path = require('path'); import gulpMerge = require('merge2'); import {PROJECT_ROOT} from '../constants'; +import {sequenceTask} from '../task_helpers'; gulp.task(':build:test:vendor', function() { @@ -19,16 +20,22 @@ gulp.task(':build:test:vendor', function() { })); }); -gulp.task('test', [':build:test:vendor', 'build:components'], function(done: () => void) { +gulp.task(':test:deps', sequenceTask( + 'clean', + [ + ':build:test:vendor', ':build:components:assets', ':build:components:scss', + ':build:components:spec' + ] +)); + +gulp.task('test', [':test:deps'], (done: () => void) => { new karma.Server({ configFile: path.join(PROJECT_ROOT, 'test/karma.conf.js') }, done).start(); }); - -gulp.task('test:single-run', [':build:test:vendor', 'build:components'], function(done: () => void) { +gulp.task('test:single-run', [':test:deps'], (done: () => void) => { new karma.Server({ configFile: path.join(PROJECT_ROOT, 'test/karma.conf.js'), singleRun: true }, done).start(); }); -