diff --git a/scripts/ci/forbidden-identifiers.js b/scripts/ci/forbidden-identifiers.js
index b08b60c5af21..26dbe0d48d0e 100755
--- a/scripts/ci/forbidden-identifiers.js
+++ b/scripts/ci/forbidden-identifiers.js
@@ -29,7 +29,7 @@ const blocked_statements = [
];
const sourceFolders = ['./src', './e2e'];
-const scopePackages = glob('src/lib/*');
+const libRoot = 'src/lib';
const blockedRegex = new RegExp(blocked_statements.join('|'), 'g');
const importRegex = /from\s+'(.*)';/g;
@@ -58,7 +58,9 @@ findTestFiles()
lineCount++;
let matches = line.match(blockedRegex);
- let scopeImport = isRelativeScopeImport(fileName, line);
+ let scopeImport = path.relative(libRoot, fileName).startsWith('..')
+ ? isRelativeScopeImport(fileName, line)
+ : false;
if (matches || scopeImport) {
@@ -155,6 +157,10 @@ function findChangedFiles() {
* @param line Line to be checked.
*/
function isRelativeScopeImport(fileName, line) {
+ if (fileName.startsWith(libRoot)) {
+ return false;
+ }
+
let importMatch = importRegex.exec(line);
// We have to reset the last index of the import regex, otherwise we
@@ -184,8 +190,7 @@ function isRelativeScopeImport(fileName, line) {
if (fileScope.path !== importScope.path) {
// Creates a valid import statement, which uses the correct scope package.
- let importFilePath = path.relative(importScope.path, importPath);
- let validImportPath = `@angular2-material/${importScope.name}/${importFilePath}`;
+ let validImportPath = `@angular/material`;
return {
fileScope: fileScope.name,
@@ -200,9 +205,7 @@ function isRelativeScopeImport(fileName, line) {
filePath = path.normalize(filePath);
// Iterate through all scope paths and try to find them inside of the file path.
- var scopePath = scopePackages
- .filter(scope => filePath.indexOf(path.normalize(scope)) !== -1)
- .pop();
+ var scopePath = filePath.indexOf(path.normalize(libRoot)) == -1 ? libRoot : filePath;
// Return an object containing the name of the scope and the associated path.
return {
diff --git a/scripts/release/inline-resources.js b/scripts/release/inline-resources.js
index 930dcd97f587..45e9ef137e40 100644
--- a/scripts/release/inline-resources.js
+++ b/scripts/release/inline-resources.js
@@ -30,10 +30,14 @@ const writeFile = promiseify(fs.writeFile);
function inlineResources(globs) {
+ if (typeof globs == 'string') {
+ globs = [globs];
+ }
+
/**
* For every argument, inline the templates and styles under it and write the new file.
*/
- for (let pattern of globs) {
+ return Promise.all(globs.map(pattern => {
if (pattern.indexOf('*') < 0) {
// Argument is a directory target, add glob patterns to include every files.
pattern = path.join(pattern, '**', '*');
@@ -43,17 +47,32 @@ function inlineResources(globs) {
.filter(name => /\.js$/.test(name)); // Matches only JavaScript files.
// Generate all files content with inlined templates.
- files.forEach(filePath => {
- readFile(filePath, 'utf-8')
- .then(content => inlineTemplate(filePath, content))
- .then(content => inlineStyle(filePath, content))
- .then(content => removeModuleId(filePath, content))
+ return Promise.all(files.map(filePath => {
+ return readFile(filePath, 'utf-8')
+ .then(content => inlineResourcesFromString(content, url => {
+ return path.join(path.dirname(filePath), url);
+ }))
.then(content => writeFile(filePath, content))
.catch(err => {
console.error('An error occured: ', err);
});
- });
- }
+ }));
+ }));
+}
+
+/**
+ * Inline resources from a string content.
+ * @param content {string} The source file's content.
+ * @param urlResolver {Function} A resolver that takes a URL and return a path.
+ * @returns {string} The content with resources inlined.
+ */
+function inlineResourcesFromString(content, urlResolver) {
+ // Curry through the inlining functions.
+ return [
+ inlineTemplate,
+ inlineStyle,
+ removeModuleId
+ ].reduce((content, fn) => fn(content, urlResolver), content);
}
if (require.main === module) {
@@ -64,13 +83,13 @@ if (require.main === module) {
/**
* Inline the templates for a source file. Simply search for instances of `templateUrl: ...` and
* replace with `template: ...` (with the content of the file included).
- * @param filePath {string} The path of the source file.
* @param content {string} The source file's content.
+ * @param urlResolver {Function} A resolver that takes a URL and return a path.
* @return {string} The content with all templates inlined.
*/
-function inlineTemplate(filePath, content) {
+function inlineTemplate(content, urlResolver) {
return content.replace(/templateUrl:\s*'([^']+?\.html)'/g, function(m, templateUrl) {
- const templateFile = path.join(path.dirname(filePath), templateUrl);
+ const templateFile = urlResolver(templateUrl);
const templateContent = fs.readFileSync(templateFile, 'utf-8');
const shortenedTemplate = templateContent
.replace(/([\n\r]\s*)+/gm, ' ')
@@ -83,16 +102,16 @@ function inlineTemplate(filePath, content) {
/**
* Inline the styles for a source file. Simply search for instances of `styleUrls: [...]` and
* replace with `styles: [...]` (with the content of the file included).
- * @param filePath {string} The path of the source file.
+ * @param urlResolver {Function} A resolver that takes a URL and return a path.
* @param content {string} The source file's content.
* @return {string} The content with all styles inlined.
*/
-function inlineStyle(filePath, content) {
+function inlineStyle(content, urlResolver) {
return content.replace(/styleUrls:\s*(\[[\s\S]*?\])/gm, function(m, styleUrls) {
const urls = eval(styleUrls);
return 'styles: ['
+ urls.map(styleUrl => {
- const styleFile = path.join(path.dirname(filePath), styleUrl);
+ const styleFile = urlResolver(styleUrl);
const styleContent = fs.readFileSync(styleFile, 'utf-8');
const shortenedStyle = styleContent
.replace(/([\n\r]\s*)+/gm, ' ')
@@ -107,13 +126,13 @@ 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) {
+function removeModuleId(content) {
return content.replace(/\s*moduleId:\s*module\.id\s*,?\s*/gm, '');
}
module.exports = inlineResources;
+module.exports.inlineResourcesFromString = inlineResourcesFromString;
diff --git a/src/demo-app/button-toggle/button-toggle-demo.ts b/src/demo-app/button-toggle/button-toggle-demo.ts
index de862cb47b57..e2b184db4c56 100644
--- a/src/demo-app/button-toggle/button-toggle-demo.ts
+++ b/src/demo-app/button-toggle/button-toggle-demo.ts
@@ -1,5 +1,5 @@
import {Component} from '@angular/core';
-import {MdUniqueSelectionDispatcher} from '@angular2-material/core';
+import {MdUniqueSelectionDispatcher} from '@angular/material';
@Component({
moduleId: module.id,
diff --git a/src/demo-app/demo-app-module.ts b/src/demo-app/demo-app-module.ts
index d0a14dfd475f..4d20d1ee3047 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';
+import {MaterialModule} from '@angular/material';
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 dbb32ed25b6e..6fb4e994c7ef 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';
+import {MdDialog, MdDialogConfig, MdDialogRef} from '@angular/material';
@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 7ca17f45cd74..8e68cda8b96b 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';
+import {MdIconRegistry} from '@angular/material';
@Component({
diff --git a/src/demo-app/icon/icon-demo.ts b/src/demo-app/icon/icon-demo.ts
index 882f228ad22e..8f6a1dc9f9b2 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';
+import {MdIconRegistry} from '@angular/material';
@Component({
moduleId: module.id,
diff --git a/src/demo-app/index.html b/src/demo-app/index.html
index 45384eb6713f..8498715397d1 100644
--- a/src/demo-app/index.html
+++ b/src/demo-app/index.html
@@ -8,7 +8,7 @@
-
+
diff --git a/src/demo-app/live-announcer/live-announcer-demo.ts b/src/demo-app/live-announcer/live-announcer-demo.ts
index 22b3a50fe8ac..d0538ad3ed01 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';
+import {MdLiveAnnouncer} from '@angular/material';
@Component({
moduleId: module.id,
diff --git a/src/demo-app/overlay/overlay-demo.ts b/src/demo-app/overlay/overlay-demo.ts
index c57b2e13961c..f3164777657c 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';
+} from '@angular/material';
@Component({
diff --git a/src/demo-app/portal/portal-demo.ts b/src/demo-app/portal/portal-demo.ts
index 7016c7313c68..b00a1789ff86 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';
+} from '@angular/material';
@Component({
diff --git a/src/demo-app/ripple/ripple-demo.ts b/src/demo-app/ripple/ripple-demo.ts
index fee4a6f22022..c1fc3675b423 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';
+import {MdRipple} from '@angular/material';
@Component({
diff --git a/src/demo-app/system-config.ts b/src/demo-app/system-config.ts
index 1ad0109145b7..a067613be96e 100644
--- a/src/demo-app/system-config.ts
+++ b/src/demo-app/system-config.ts
@@ -1,104 +1,34 @@
-/***********************************************************************************************
- * User Configuration.
- **********************************************************************************************/
-
-const components = [
- 'all',
- 'button',
- 'card',
- 'checkbox',
- 'dialog',
- 'grid-list',
- 'icon',
- 'input',
- 'list',
- 'menu',
- 'progress-bar',
- 'progress-circle',
- 'radio',
- 'select',
- 'sidenav',
- 'slider',
- 'slide-toggle',
- 'button-toggle',
- 'tabs',
- 'toolbar',
- 'tooltip',
-];
-
-
-/** User packages configuration. */
-const packages: any = {
- '@angular2-material/core': {
- format: 'cjs',
- 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.
- '.': {
- defaultExtension: 'js'
- }
-};
-components.forEach(name => {
- packages[`@angular2-material/${name}`] = {
- format: 'cjs',
- main: `${name}.umd.js`
- };
-});
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/***********************************************************************************************
- * Everything underneath this line is managed by the CLI.
- **********************************************************************************************/
-const angularPackages = {
- // Angular specific barrels.
- '@angular/core': { main: 'bundles/core.umd.js'},
- '@angular/core/testing': { main: 'bundles/core-testing.umd.js'},
- '@angular/common': { main: 'bundles/common.umd.js'},
- '@angular/compiler': { main: 'bundles/compiler.umd.js'},
- '@angular/http': { main: 'bundles/http.umd.js'},
- '@angular/forms': { main: 'bundles/forms.umd.js'},
- '@angular/router': { main: 'bundles/router.umd.js'},
- '@angular/platform-browser': { main: 'bundles/platform-browser.umd.js'},
- '@angular/platform-browser-dynamic': { main: 'bundles/platform-browser-dynamic.umd.js'},
- '@angular/platform-browser-dynamic/testing': {
- main: 'bundles/platform-browser-dynamic-testing.umd.js'
- },
-};
-
-const barrels: string[] = [
- // Thirdparty barrels.
- 'rxjs',
-
- // App specific barrels.
- 'demo-app',
- 'button-toggle',
- 'gestures',
- 'live-announcer',
- 'portal',
- 'overlay',
- ...components
- /** @cli-barrel */
-];
-
-const _cliSystemConfig: any = angularPackages;
-barrels.forEach((barrelName: string) => {
- _cliSystemConfig[barrelName] = { main: 'index' };
-});
-
/** Type declaration for ambient System. */
declare var System: any;
// Apply the CLI SystemJS configuration.
System.config({
map: {
- '@angular': 'vendor/@angular',
'rxjs': 'vendor/rxjs',
- 'main': 'main.js'
+ 'main': 'main.js',
+
+ // Angular specific mappings.
+ '@angular/core': 'vendor/@angular/core/bundles/core.umd.js',
+ '@angular/common': 'vendor/@angular/common/bundles/common.umd.js',
+ '@angular/compiler': 'vendor/@angular/compiler/bundles/compiler.umd.js',
+ '@angular/http': 'vendor/@angular/http/bundles/http.umd.js',
+ '@angular/forms': 'vendor/@angular/forms/bundles/forms.umd.js',
+ '@angular/router': 'vendor/@angular/router/bundles/router.umd.js',
+ '@angular/platform-browser': 'vendor/@angular/platform-browser/bundles/platform-browser.umd.js',
+ '@angular/platform-browser-dynamic':
+ 'vendor/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
},
- packages: _cliSystemConfig
+ packages: {
+ // Thirdparty barrels.
+ 'rxjs': { main: 'index' },
+ '@angular/material': {
+ format: 'cjs',
+ main: 'material.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.
+ '.': {
+ defaultExtension: 'js'
+ }
+ }
});
-
-// Apply the user's configuration.
-System.config({ packages });
diff --git a/src/demo-app/tooltip/tooltip-demo.ts b/src/demo-app/tooltip/tooltip-demo.ts
index 72e4bddced76..48b01283939c 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';
+import {TooltipPosition} from '@angular/material';
@Component({
diff --git a/src/demo-app/tsconfig.json b/src/demo-app/tsconfig.json
index 9adf574b20fb..fd28b81478f9 100644
--- a/src/demo-app/tsconfig.json
+++ b/src/demo-app/tsconfig.json
@@ -15,12 +15,11 @@
"stripInternal": true,
"baseUrl": "",
"typeRoots": [
- "../../node_modules/@types",
- "../../node_modules"
+ "../../node_modules/@types"
],
"paths": {
- "@angular2-material/*": [
- "../../dist/@angular2-material/*"
+ "@angular/material": [
+ "../../dist/@angular/material"
]
},
"types": [
diff --git a/src/e2e-app/e2e-app-module.ts b/src/e2e-app/e2e-app-module.ts
index cf2e0a41d475..7c30a9e0f02d 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';
+import {MaterialModule} from '@angular/material';
import {E2E_APP_ROUTES} from './e2e-app/routes';
diff --git a/src/e2e-app/index.html b/src/e2e-app/index.html
index 60bf8b923f8d..33f6caabcb10 100644
--- a/src/e2e-app/index.html
+++ b/src/e2e-app/index.html
@@ -8,7 +8,7 @@
-
+
diff --git a/src/e2e-app/system-config.ts b/src/e2e-app/system-config.ts
index 1ef123b00edc..a067613be96e 100644
--- a/src/e2e-app/system-config.ts
+++ b/src/e2e-app/system-config.ts
@@ -1,104 +1,34 @@
-/***********************************************************************************************
- * User Configuration.
- **********************************************************************************************/
-
-const components = [
- 'all',
- 'button',
- 'card',
- 'checkbox',
- 'dialog',
- 'grid-list',
- 'icon',
- 'input',
- 'list',
- 'menu',
- 'progress-bar',
- 'progress-circle',
- 'radio',
- 'select',
- 'sidenav',
- 'slider',
- 'slide-toggle',
- 'button-toggle',
- 'tabs',
- 'toolbar',
- 'tooltip',
-];
-
-
-/** User packages configuration. */
-const packages: any = {
- '@angular2-material/core': {
- format: 'cjs',
- 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.
- '.': {
- defaultExtension: 'js'
- }
-};
-components.forEach(name => {
- packages[`@angular2-material/${name}`] = {
- format: 'cjs',
- main: `${name}.umd.js`
- };
-});
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/***********************************************************************************************
- * Everything underneath this line is managed by the CLI.
- **********************************************************************************************/
-const angularPackages = {
- // Angular specific barrels.
- '@angular/core': { main: 'bundles/core.umd.js'},
- '@angular/core/testing': { main: 'bundles/core-testing.umd.js'},
- '@angular/common': { main: 'bundles/common.umd.js'},
- '@angular/compiler': { main: 'bundles/compiler.umd.js'},
- '@angular/http': { main: 'bundles/http.umd.js'},
- '@angular/forms': { main: 'bundles/forms.umd.js'},
- '@angular/router': { main: 'bundles/router.umd.js'},
- '@angular/platform-browser': { main: 'bundles/platform-browser.umd.js'},
- '@angular/platform-browser-dynamic': { main: 'bundles/platform-browser-dynamic.umd.js'},
- '@angular/platform-browser-dynamic/testing': {
- main: 'bundles/platform-browser-dynamic-testing.umd.js'
- },
-};
-
-const barrels: string[] = [
- // Thirdparty barrels.
- 'rxjs',
-
- // App specific barrels.
- 'demo-app',
- 'button-toggle',
- 'gestures',
- 'live-announcer',
- 'portal',
- 'overlay',
- ...components
- /** @cli-barrel */
-];
-
-const _cliSystemConfig = angularPackages;
-barrels.forEach((barrelName: string) => {
- ( _cliSystemConfig)[barrelName] = { main: 'index' };
-});
-
/** Type declaration for ambient System. */
declare var System: any;
// Apply the CLI SystemJS configuration.
System.config({
map: {
- '@angular': 'vendor/@angular',
'rxjs': 'vendor/rxjs',
- 'main': 'main.js'
+ 'main': 'main.js',
+
+ // Angular specific mappings.
+ '@angular/core': 'vendor/@angular/core/bundles/core.umd.js',
+ '@angular/common': 'vendor/@angular/common/bundles/common.umd.js',
+ '@angular/compiler': 'vendor/@angular/compiler/bundles/compiler.umd.js',
+ '@angular/http': 'vendor/@angular/http/bundles/http.umd.js',
+ '@angular/forms': 'vendor/@angular/forms/bundles/forms.umd.js',
+ '@angular/router': 'vendor/@angular/router/bundles/router.umd.js',
+ '@angular/platform-browser': 'vendor/@angular/platform-browser/bundles/platform-browser.umd.js',
+ '@angular/platform-browser-dynamic':
+ 'vendor/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
},
- packages: _cliSystemConfig
+ packages: {
+ // Thirdparty barrels.
+ 'rxjs': { main: 'index' },
+ '@angular/material': {
+ format: 'cjs',
+ main: 'material.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.
+ '.': {
+ defaultExtension: 'js'
+ }
+ }
});
-
-// Apply the user's configuration.
-System.config({ packages });
diff --git a/src/e2e-app/tsconfig.json b/src/e2e-app/tsconfig.json
index c1db83cd29fb..e6c34fe73258 100644
--- a/src/e2e-app/tsconfig.json
+++ b/src/e2e-app/tsconfig.json
@@ -19,8 +19,8 @@
"../../node_modules"
],
"paths": {
- "@angular2-material/*": [
- "../../dist/@angular2-material/*"
+ "@angular/material": [
+ "../../dist/@angular/material"
]
},
"types": [
diff --git a/src/lib/all/_all-theme.scss b/src/lib/all/_all-theme.scss
deleted file mode 100644
index 368e5851f1cb..000000000000
--- a/src/lib/all/_all-theme.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-@import '../core/core';
-@import '../button/button-theme';
-@import '../button-toggle/button-toggle-theme';
-@import '../card/card-theme';
-@import '../checkbox/checkbox-theme';
-@import '../dialog/dialog-theme';
-@import '../grid-list/grid-list-theme';
-@import '../icon/icon-theme';
-@import '../input/input-theme';
-@import '../list/list-theme';
-@import '../menu/menu-theme';
-@import '../progress-bar/progress-bar-theme';
-@import '../progress-circle/progress-circle-theme';
-@import '../radio/radio-theme';
-@import '../sidenav/sidenav-theme';
-@import '../slide-toggle/slide-toggle-theme';
-@import '../slider/slider-theme';
-@import '../tabs/tabs-theme';
-@import '../toolbar/toolbar-theme';
-@import '../tooltip/tooltip-theme';
-
-
-@mixin angular-material-theme($theme) {
- @include md-core-theme($theme);
- @include md-button-theme($theme);
- @include md-button-toggle-theme($theme);
- @include md-card-theme($theme);
- @include md-checkbox-theme($theme);
- @include md-dialog-theme($theme);
- @include md-grid-list-theme($theme);
- @include md-icon-theme($theme);
- @include md-input-theme($theme);
- @include md-list-theme($theme);
- @include md-menu-theme($theme);
- @include md-progress-bar-theme($theme);
- @include md-progress-circle-theme($theme);
- @include md-radio-theme($theme);
- @include md-sidenav-theme($theme);
- @include md-slide-toggle-theme($theme);
- @include md-slider-theme($theme);
- @include md-tabs-theme($theme);
- @include md-toolbar-theme($theme);
- @include md-tooltip-theme($theme);
-}
diff --git a/src/lib/all/index.ts b/src/lib/all/index.ts
deleted file mode 100644
index 73508fe9b5e1..000000000000
--- a/src/lib/all/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './all';
diff --git a/src/lib/button-toggle/button-toggle.ts b/src/lib/button-toggle/button-toggle.ts
index 918d48945c37..ca1698cb9351 100644
--- a/src/lib/button-toggle/button-toggle.ts
+++ b/src/lib/button-toggle/button-toggle.ts
@@ -21,7 +21,7 @@ import {
FormsModule,
} from '@angular/forms';
import {Observable} from 'rxjs/Observable';
-import {BooleanFieldValue, MdUniqueSelectionDispatcher} from '@angular2-material/core';
+import {BooleanFieldValue, MdUniqueSelectionDispatcher} from '../core';
export type ToggleType = 'checkbox' | 'radio';
diff --git a/src/lib/button-toggle/package.json b/src/lib/button-toggle/package.json
deleted file mode 100644
index 38a84ef81119..000000000000
--- a/src/lib/button-toggle/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@angular2-material/button-toggle",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material Button Toggle",
- "main": "./button-toggle.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "button-toggle",
- "button",
- "toggle"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2",
- "@angular/forms": "^2.0.0"
- }
-}
diff --git a/src/lib/button/button.ts b/src/lib/button/button.ts
index df523a339b9d..03ac5438f1a3 100644
--- a/src/lib/button/button.ts
+++ b/src/lib/button/button.ts
@@ -10,8 +10,7 @@ import {
ModuleWithProviders,
} from '@angular/core';
import {CommonModule} from '@angular/common';
-import {BooleanFieldValue} from '@angular2-material/core';
-import {MdRippleModule} from '@angular2-material/core';
+import {BooleanFieldValue, MdRippleModule} from '../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
deleted file mode 100644
index c2a28a13b43d..000000000000
--- a/src/lib/button/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "@angular2-material/button",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material button",
- "main": "./button.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "button",
- "anchor",
- "linkbutton"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/card/package.json b/src/lib/card/package.json
deleted file mode 100644
index 1e33c75d6bd8..000000000000
--- a/src/lib/card/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@angular2-material/card",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material card",
- "main": "./card.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "card"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/checkbox/package.json b/src/lib/checkbox/package.json
deleted file mode 100644
index 261cb8345923..000000000000
--- a/src/lib/checkbox/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "@angular2-material/checkbox",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material checkbox",
- "main": "./checkbox.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "checkbox"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2",
- "@angular/forms": "^2.0.0"
- }
-}
diff --git a/src/lib/core.ts b/src/lib/core.ts
new file mode 100644
index 000000000000..65c514e92521
--- /dev/null
+++ b/src/lib/core.ts
@@ -0,0 +1 @@
+export * from './core/index';
diff --git a/src/lib/core/theming/_all-theme.scss b/src/lib/core/theming/_all-theme.scss
new file mode 100644
index 000000000000..a4a03a561dc5
--- /dev/null
+++ b/src/lib/core/theming/_all-theme.scss
@@ -0,0 +1,46 @@
+// Import all the theming functionality.
+@import '../core';
+@import '../../button/button-theme';
+@import '../../button-toggle/button-toggle-theme';
+@import '../../card/card-theme';
+@import '../../checkbox/checkbox-theme';
+@import '../../dialog/dialog-theme';
+@import '../../grid-list/grid-list-theme';
+@import '../../icon/icon-theme';
+@import '../../input/input-theme';
+@import '../../list/list-theme';
+@import '../../menu/menu-theme';
+@import '../../progress-bar/progress-bar-theme';
+@import '../../progress-circle/progress-circle-theme';
+@import '../../radio/radio-theme';
+@import '../../sidenav/sidenav-theme';
+@import '../../slide-toggle/slide-toggle-theme';
+@import '../../slider/slider-theme';
+@import '../../tabs/tabs-theme';
+@import '../../toolbar/toolbar-theme';
+@import '../../tooltip/tooltip-theme';
+
+
+// Create a theme.
+@mixin angular-material-theme($theme) {
+ @include md-core-theme($theme);
+ @include md-button-theme($theme);
+ @include md-button-toggle-theme($theme);
+ @include md-card-theme($theme);
+ @include md-checkbox-theme($theme);
+ @include md-dialog-theme($theme);
+ @include md-grid-list-theme($theme);
+ @include md-icon-theme($theme);
+ @include md-input-theme($theme);
+ @include md-list-theme($theme);
+ @include md-menu-theme($theme);
+ @include md-progress-bar-theme($theme);
+ @include md-progress-circle-theme($theme);
+ @include md-radio-theme($theme);
+ @include md-sidenav-theme($theme);
+ @include md-slide-toggle-theme($theme);
+ @include md-slider-theme($theme);
+ @include md-tabs-theme($theme);
+ @include md-toolbar-theme($theme);
+ @include md-tooltip-theme($theme);
+}
diff --git a/src/lib/core/theming/prebuilt/deeppurple-amber.scss b/src/lib/core/theming/prebuilt/deeppurple-amber.scss
index dac3949f1c19..ef5d2aa394b3 100644
--- a/src/lib/core/theming/prebuilt/deeppurple-amber.scss
+++ b/src/lib/core/theming/prebuilt/deeppurple-amber.scss
@@ -1,7 +1,7 @@
@import '../theming';
+@import '../all-theme';
@import '../palette';
@import '../../core';
-@import '../../../all/all-theme';
$primary: md-palette($md-deep-purple);
diff --git a/src/lib/core/theming/prebuilt/indigo-pink.scss b/src/lib/core/theming/prebuilt/indigo-pink.scss
index 6ef380548323..a7b9c1d9498b 100644
--- a/src/lib/core/theming/prebuilt/indigo-pink.scss
+++ b/src/lib/core/theming/prebuilt/indigo-pink.scss
@@ -1,8 +1,7 @@
-
@import '../theming';
+@import '../all-theme';
@import '../palette';
@import '../../core';
-@import '../../../all/all-theme';
$primary: md-palette($md-indigo);
diff --git a/src/lib/core/theming/prebuilt/purple-green.scss b/src/lib/core/theming/prebuilt/purple-green.scss
index 39d0c764ec07..b994144f6eb2 100644
--- a/src/lib/core/theming/prebuilt/purple-green.scss
+++ b/src/lib/core/theming/prebuilt/purple-green.scss
@@ -1,7 +1,7 @@
@import '../theming';
+@import '../all-theme';
@import '../palette';
@import '../../core';
-@import '../../../all/all-theme';
$primary: md-palette($md-purple, 700, 500, 800);
diff --git a/src/lib/dialog/dialog-container.ts b/src/lib/dialog/dialog-container.ts
index 43ec0f390ba5..8f7345a87f28 100644
--- a/src/lib/dialog/dialog-container.ts
+++ b/src/lib/dialog/dialog-container.ts
@@ -4,7 +4,7 @@ import {
ComponentPortal,
PortalHostDirective,
TemplatePortal
-} from '@angular2-material/core';
+} from '../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 87ddc0938182..08f1172f62b9 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';
+import {MdError} from '../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 927ba71a6032..4c2a03c87ba8 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';
+import {OverlayRef} from '../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 feaa57d52ee5..a1465652680e 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';
+import {OverlayContainer} from '../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 48d76e0e72f7..cace47f1cf53 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';
-import {ComponentType} from '@angular2-material/core';
+} from '../core';
+import {ComponentType} from '../core';
import {MdDialogConfig} from './dialog-config';
import {MdDialogRef} from './dialog-ref';
import {DialogInjector} from './dialog-injector';
diff --git a/src/lib/grid-list/grid-list-errors.ts b/src/lib/grid-list/grid-list-errors.ts
index 559c7fa25cd3..5a48520c5479 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';
+import {MdError} from '../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 49295de0cc92..7b9ba5a8c18d 100644
--- a/src/lib/grid-list/grid-list.ts
+++ b/src/lib/grid-list/grid-list.ts
@@ -21,7 +21,7 @@ import {
FixedTileStyler
} from './tile-styler';
import {MdGridListColsError} from './grid-list-errors';
-import {Dir, MdLineModule} from '@angular2-material/core';
+import {Dir, MdLineModule} from '../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 afb30c287ba6..f6d2a26bffd4 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';
+import { MdLine, MdLineSetter } from '../core';
import {coerceToNumber} from './grid-list-measure';
@Component({
diff --git a/src/lib/grid-list/package.json b/src/lib/grid-list/package.json
deleted file mode 100644
index 222f75a9d323..000000000000
--- a/src/lib/grid-list/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "@angular2-material/grid-list",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material grid list",
- "main": "./grid-list.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "grid-list",
- "list",
- "tiles"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/icon/icon-registry.ts b/src/lib/icon/icon-registry.ts
index 7cdb4ecd4ba7..44e03c31cb2b 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';
+import {MdError} from '../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 ee9a7dcca5f9..53692cd5b648 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';
+import {MdError} from '../core';
import {MdIconRegistry} from './icon-registry';
export {MdIconRegistry} from './icon-registry';
diff --git a/src/lib/icon/package.json b/src/lib/icon/package.json
deleted file mode 100644
index 1a370d1f7722..000000000000
--- a/src/lib/icon/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "@angular2-material/icon",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material icon",
- "main": "./icon.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "icon"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular/http": "^2.0.0",
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/index.ts b/src/lib/index.ts
new file mode 100644
index 000000000000..ead3f4846688
--- /dev/null
+++ b/src/lib/index.ts
@@ -0,0 +1,23 @@
+export * from './core';
+export * from './module';
+
+export * from './button/index';
+export * from './button-toggle/index';
+export * from './card/index';
+export * from './checkbox/index';
+export * from './dialog/index';
+export * from './grid-list/index';
+export * from './icon/index';
+export * from './input/index';
+export * from './list/index';
+export * from './menu/index';
+export * from './progress-bar/index';
+export * from './progress-circle/index';
+export * from './radio/index';
+export * from './select/index';
+export * from './sidenav/index';
+export * from './slider/index';
+export * from './slide-toggle/index';
+export * from './tabs/index';
+export * from './toolbar/index';
+export * from './tooltip/index';
diff --git a/src/lib/input/input.ts b/src/lib/input/input.ts
index e90a76d64d00..66c4fbe4bec4 100644
--- a/src/lib/input/input.ts
+++ b/src/lib/input/input.ts
@@ -24,7 +24,7 @@ import {
FormsModule,
} from '@angular/forms';
import {CommonModule} from '@angular/common';
-import {BooleanFieldValue, MdError} from '@angular2-material/core';
+import {BooleanFieldValue, MdError} from '../core';
import {Observable} from 'rxjs/Observable';
diff --git a/src/lib/input/package.json b/src/lib/input/package.json
deleted file mode 100644
index 2d4f19f40067..000000000000
--- a/src/lib/input/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@angular2-material/input",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material input",
- "main": "./input.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "input",
- "text",
- "textarea"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2",
- "@angular/forms": "^2.0.0"
- }
-}
diff --git a/src/lib/list/list.ts b/src/lib/list/list.ts
index 81e8a85aa7f6..755b40ed0721 100644
--- a/src/lib/list/list.ts
+++ b/src/lib/list/list.ts
@@ -11,7 +11,7 @@ import {
NgModule,
ModuleWithProviders,
} from '@angular/core';
-import {MdLine, MdLineSetter, MdLineModule} from '@angular2-material/core';
+import {MdLine, MdLineSetter, MdLineModule} from '../core';
@Directive({
selector: 'md-divider'
diff --git a/src/lib/list/package.json b/src/lib/list/package.json
deleted file mode 100644
index 7fa20d51a5a8..000000000000
--- a/src/lib/list/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@angular2-material/list",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material list",
- "main": "./list.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "list"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/menu/menu-directive.ts b/src/lib/menu/menu-directive.ts
index 7306d031a652..51c038f83383 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';
+import {UP_ARROW, DOWN_ARROW, TAB} from '../core';
@Component({
moduleId: module.id,
diff --git a/src/lib/menu/menu-errors.ts b/src/lib/menu/menu-errors.ts
index 7e1f1704172d..5d3bb1d56c0b 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';
+import {MdError} from '../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 a4ba1973d1bc..419d8a827d09 100644
--- a/src/lib/menu/menu-trigger.ts
+++ b/src/lib/menu/menu-trigger.ts
@@ -21,7 +21,7 @@ import {
ConnectedPositionStrategy,
HorizontalConnectionPos,
VerticalConnectionPos
-} from '@angular2-material/core';
+} from '../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 0c90a96d4d32..8f54ae91cb95 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';
+import {OverlayModule, OVERLAY_PROVIDERS} from '../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
deleted file mode 100644
index 8f842ba0218c..000000000000
--- a/src/lib/menu/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@angular2-material/menu",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material menu",
- "main": "./menu.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "menu"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/module.d.ts b/src/lib/module.d.ts
deleted file mode 100644
index ce4ae9b66cf0..000000000000
--- a/src/lib/module.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-declare var module: {id: string};
diff --git a/src/lib/all/all.ts b/src/lib/module.ts
similarity index 58%
rename from src/lib/all/all.ts
rename to src/lib/module.ts
index 784156e2d7c5..4a13daae74a9 100644
--- a/src/lib/all/all.ts
+++ b/src/lib/module.ts
@@ -1,31 +1,33 @@
import {NgModule, ModuleWithProviders} from '@angular/core';
-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 {MdSelectModule} from '@angular2-material/select';
-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';
+} from './core/index';
+
+import {MdButtonToggleModule} from './button-toggle/index';
+import {MdButtonModule} from './button/index';
+import {MdCheckboxModule} from './checkbox/index';
+import {MdRadioModule} from './radio/index';
+import {MdSelectModule} from './select/index';
+import {MdSlideToggleModule} from './slide-toggle/index';
+import {MdSliderModule} from './slider/index';
+import {MdSidenavModule} from './sidenav/index';
+import {MdListModule} from './list/index';
+import {MdGridListModule} from './grid-list/index';
+import {MdCardModule} from './card/index';
+import {MdIconModule} from './icon/index';
+import {MdProgressCircleModule} from './progress-circle/index';
+import {MdProgressBarModule} from './progress-bar/index';
+import {MdInputModule} from './input/index';
+import {MdTabsModule} from './tabs/index';
+import {MdToolbarModule} from './toolbar/index';
+import {MdTooltipModule} from './tooltip/index';
+import {MdMenuModule} from './menu/index';
+import {MdDialogModule} from './dialog/index';
const MATERIAL_MODULES = [
diff --git a/src/lib/core/package.json b/src/lib/package.json
similarity index 77%
rename from src/lib/core/package.json
rename to src/lib/package.json
index 4446dc40cc85..59f510fbb852 100644
--- a/src/lib/core/package.json
+++ b/src/lib/package.json
@@ -1,8 +1,8 @@
{
- "name": "@angular2-material/core",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material core",
- "main": "./core.umd.js",
+ "name": "@angular/material",
+ "version": "2.0.0-alpha.9",
+ "description": "Angular 2 Material",
+ "main": "./material.umd.js",
"module": "./index.js",
"typings": "./index.d.ts",
"repository": {
diff --git a/src/lib/progress-bar/package.json b/src/lib/progress-bar/package.json
deleted file mode 100644
index 7e6436fed8b2..000000000000
--- a/src/lib/progress-bar/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "@angular2-material/progress-bar",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material progress-bar",
- "main": "./progress-bar.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "progress",
- "progressbar",
- "loading"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/progress-circle/package.json b/src/lib/progress-circle/package.json
deleted file mode 100644
index 96db01ebbb05..000000000000
--- a/src/lib/progress-circle/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "@angular2-material/progress-circle",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material progress-circle",
- "main": "./progress-circle.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "progress",
- "spinner"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/radio/package.json b/src/lib/radio/package.json
deleted file mode 100644
index 2b8340aa0876..000000000000
--- a/src/lib/radio/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "@angular2-material/radio",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material radio",
- "main": "./radio.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "radio"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2",
- "@angular/forms": "^2.0.0"
- }
-}
diff --git a/src/lib/radio/radio.ts b/src/lib/radio/radio.ts
index 1f9db8306946..125943f9589e 100644
--- a/src/lib/radio/radio.ts
+++ b/src/lib/radio/radio.ts
@@ -19,11 +19,7 @@ import {
NG_VALUE_ACCESSOR,
ControlValueAccessor
} from '@angular/forms';
-import {MdUniqueSelectionDispatcher} from '@angular2-material/core';
-
-
-// Re-exports.
-export {MdUniqueSelectionDispatcher} from '@angular2-material/core';
+import {MdUniqueSelectionDispatcher} from '../core';
diff --git a/src/lib/sidenav/package.json b/src/lib/sidenav/package.json
deleted file mode 100644
index 417412940f90..000000000000
--- a/src/lib/sidenav/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@angular2-material/sidenav",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material sidenav",
- "main": "./sidenav.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "sidenav",
- "sidepane",
- "navigation",
- "drawer"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/sidenav/sidenav.ts b/src/lib/sidenav/sidenav.ts
index 1d566cad0577..de1315043efc 100644
--- a/src/lib/sidenav/sidenav.ts
+++ b/src/lib/sidenav/sidenav.ts
@@ -16,7 +16,7 @@ import {
ViewEncapsulation,
} from '@angular/core';
import {CommonModule} from '@angular/common';
-import {Dir, MdError} from '@angular2-material/core';
+import {Dir, MdError} from '../core';
/** Exception thrown when two MdSidenav are matching the same side. */
export class MdDuplicatedSidenavError extends MdError {
diff --git a/src/lib/slide-toggle/package.json b/src/lib/slide-toggle/package.json
deleted file mode 100644
index fa15f107a54b..000000000000
--- a/src/lib/slide-toggle/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@angular2-material/slide-toggle",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material Slide Toggle",
- "main": "./slide-toggle.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "slide-toggle",
- "switch",
- "toggle"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2",
- "@angular/forms": "^2.0.0"
- }
-}
diff --git a/src/lib/slide-toggle/slide-toggle.ts b/src/lib/slide-toggle/slide-toggle.ts
index 1b5ea011ca33..36ba7635ec8e 100644
--- a/src/lib/slide-toggle/slide-toggle.ts
+++ b/src/lib/slide-toggle/slide-toggle.ts
@@ -17,9 +17,9 @@ import {
ControlValueAccessor,
NG_VALUE_ACCESSOR
} from '@angular/forms';
-import {BooleanFieldValue, applyCssTransform} from '@angular2-material/core';
+import {BooleanFieldValue, applyCssTransform} from '../core';
import {Observable} from 'rxjs/Observable';
-import {MdGestureConfig} from '@angular2-material/core';
+import {MdGestureConfig} from '../core';
export const MD_SLIDE_TOGGLE_VALUE_ACCESSOR: any = {
diff --git a/src/lib/slider/package.json b/src/lib/slider/package.json
deleted file mode 100644
index 4078036d3f9b..000000000000
--- a/src/lib/slider/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@angular2-material/slider",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material Slider",
- "main": "./slider.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "slider"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/slider/slider.ts b/src/lib/slider/slider.ts
index ef3c1e937138..8c80ee4ad7ee 100644
--- a/src/lib/slider/slider.ts
+++ b/src/lib/slider/slider.ts
@@ -15,7 +15,7 @@ import {
FormsModule,
} from '@angular/forms';
import {HAMMER_GESTURE_CONFIG} from '@angular/platform-browser';
-import {BooleanFieldValue, MdGestureConfig, applyCssTransform} from '@angular2-material/core';
+import {BooleanFieldValue, MdGestureConfig, applyCssTransform} from '../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 e7c99e678929..78040bb665f1 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';
+import {MdGestureConfig} from '../core';
/**
* An extension of MdGestureConfig that exposes the underlying HammerManager instances.
diff --git a/src/lib/system-config-spec.ts b/src/lib/system-config-spec.ts
index 0490942f8fd9..acf90f93b5ba 100644
--- a/src/lib/system-config-spec.ts
+++ b/src/lib/system-config-spec.ts
@@ -1,109 +1,44 @@
-/***********************************************************************************************
- * User Configuration.
- **********************************************************************************************/
-
-const components = [
- 'all',
- 'button',
- 'card',
- 'checkbox',
- 'dialog',
- 'grid-list',
- 'icon',
- 'input',
- 'list',
- 'menu',
- 'progress-bar',
- 'progress-circle',
- 'radio',
- 'select',
- 'sidenav',
- 'slider',
- 'slide-toggle',
- 'button-toggle',
- 'tabs',
- 'toolbar',
- 'tooltip',
-];
-
-
-/** User packages configuration. */
-const packages: any = {
- '@angular2-material/core': {
- format: 'cjs',
- 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.
- '.': {
- defaultExtension: 'js'
- }
-};
-components.forEach(name => {
- packages[`@angular2-material/${name}`] = {
- format: 'cjs',
- defaultExtension: 'js',
- main: 'index'
- };
-});
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-/***********************************************************************************************
- * Everything underneath this line is managed by the CLI.
- **********************************************************************************************/
-const angularPackages = {
- // Angular specific barrels.
- '@angular/core': { main: 'bundles/core.umd.js'},
- '@angular/core/testing': { main: '../bundles/core-testing.umd.js'},
- '@angular/common': { main: 'bundles/common.umd.js'},
- '@angular/compiler': { main: 'bundles/compiler.umd.js'},
- '@angular/compiler/testing': { main: '../bundles/compiler-testing.umd.js'},
- '@angular/http': { main: 'bundles/http.umd.js'},
- '@angular/http/testing': { main: '../bundles/http-testing.umd.js'},
- '@angular/forms': { main: 'bundles/forms.umd.js'},
- '@angular/router': { main: 'bundles/router.umd.js'},
- '@angular/platform-browser': { main: 'bundles/platform-browser.umd.js'},
- '@angular/platform-browser/testing': { main: '../bundles/platform-browser-testing.umd.js'},
- '@angular/platform-browser-dynamic': { main: 'bundles/platform-browser-dynamic.umd.js'},
- '@angular/platform-browser-dynamic/testing': {
- main: '../bundles/platform-browser-dynamic-testing.umd.js'
- },
-};
-
-const barrels: string[] = [
- // Thirdparty barrels.
- 'rxjs',
-
- // App specific barrels.
- 'demo-app',
- 'button-toggle',
- 'gestures',
- 'live-announcer',
- 'portal',
- 'overlay',
- ...components
- /** @cli-barrel */
-];
-
-const _cliSystemConfig = angularPackages;
-barrels.forEach((barrelName: string) => {
- ( _cliSystemConfig)[barrelName] = { main: 'index' };
-});
-
/** Type declaration for ambient System. */
declare var System: any;
// Apply the CLI SystemJS configuration.
System.config({
map: {
- '@angular': 'vendor/@angular',
'rxjs': 'vendor/rxjs',
- 'main': 'main.js'
+ 'main': 'main.js',
+
+ // Angular specific mappings.
+ '@angular/core': 'vendor/@angular/core/bundles/core.umd.js',
+ '@angular/core/testing': 'vendor/@angular/core/bundles/core-testing.umd.js',
+ '@angular/common': 'vendor/@angular/common/bundles/common.umd.js',
+ '@angular/common/testing': 'vendor/@angular/common/bundles/common-testing.umd.js',
+ '@angular/compiler': 'vendor/@angular/compiler/bundles/compiler.umd.js',
+ '@angular/compiler/testing': 'vendor/@angular/compiler/bundles/compiler-testing.umd.js',
+ '@angular/http': 'vendor/@angular/http/bundles/http.umd.js',
+ '@angular/http/testing': 'vendor/@angular/http/bundles/http-testing.umd.js',
+ '@angular/forms': 'vendor/@angular/forms/bundles/forms.umd.js',
+ '@angular/forms/testing': 'vendor/@angular/forms/bundles/forms-testing.umd.js',
+ '@angular/router': 'vendor/@angular/router/bundles/router.umd.js',
+ '@angular/router/testing': 'vendor/@angular/router/bundles/router-testing.umd.js',
+ '@angular/platform-browser': 'vendor/@angular/platform-browser/bundles/platform-browser.umd.js',
+ '@angular/platform-browser/testing':
+ 'vendor/@angular/platform-browser/bundles/platform-browser-testing.umd.js',
+ '@angular/platform-browser-dynamic':
+ 'vendor/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
+ '@angular/platform-browser-dynamic/testing':
+ 'vendor/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js',
},
- packages: _cliSystemConfig
+ packages: {
+ // Thirdparty barrels.
+ 'rxjs': { main: 'index' },
+ '@angular/material': {
+ format: 'cjs',
+ main: 'material.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.
+ '.': {
+ defaultExtension: 'js'
+ }
+ }
});
-
-// Apply the user's configuration.
-System.config({ packages });
diff --git a/src/lib/tabs/package.json b/src/lib/tabs/package.json
deleted file mode 100644
index 4078fa2cbc02..000000000000
--- a/src/lib/tabs/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@angular2-material/tabs",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material Tabs",
- "main": "./tabs.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "tabs"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/tabs/tab-content.ts b/src/lib/tabs/tab-content.ts
index fd392daeb058..9ea780e3d3b2 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';
+import {TemplatePortalDirective} from '../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 8096b14ec82a..99603975d587 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';
+import {TemplatePortalDirective} from '../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 7d7bacce2502..ee77040a63d1 100644
--- a/src/lib/tabs/tabs.ts
+++ b/src/lib/tabs/tabs.ts
@@ -13,14 +13,14 @@ import {
ContentChildren
} from '@angular/core';
import {CommonModule} from '@angular/common';
-import {PortalModule} from '@angular2-material/core';
+import {PortalModule} from '../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';
+import {RIGHT_ARROW, LEFT_ARROW, ENTER} from '../core';
/** Used to generate unique ID's for each tab component */
let nextId = 0;
diff --git a/src/lib/toolbar/package.json b/src/lib/toolbar/package.json
deleted file mode 100644
index fa7c54593afd..000000000000
--- a/src/lib/toolbar/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "@angular2-material/toolbar",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material toolbar",
- "main": "./toolbar.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "toolbar",
- "header"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/tooltip/package.json b/src/lib/tooltip/package.json
deleted file mode 100644
index a29d0b6483b5..000000000000
--- a/src/lib/tooltip/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@angular2-material/tooltip",
- "version": "2.0.0-alpha.8-2",
- "description": "Angular 2 Material tooltip",
- "main": "./tooltip.umd.js",
- "module": "./index.js",
- "typings": "./index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/angular/material2.git"
- },
- "keywords": [
- "angular",
- "material",
- "material design",
- "components",
- "tooltip"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "homepage": "https://github.com/angular/material2#readme",
- "peerDependencies": {
- "@angular2-material/core": "2.0.0-alpha.8-2"
- }
-}
diff --git a/src/lib/tooltip/tooltip.spec.ts b/src/lib/tooltip/tooltip.spec.ts
index 821047b28601..74cbc6a15051 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';
-import {OverlayContainer} from '@angular2-material/core';
+import {TooltipPosition, MdTooltip} from './tooltip';
+import {OverlayContainer} from '../core';
import {MdTooltipModule} from './tooltip';
diff --git a/src/lib/tooltip/tooltip.ts b/src/lib/tooltip/tooltip.ts
index 2b7df8b93cea..d48dd81ba200 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';
+} from '../core';
export type TooltipPosition = 'before' | 'after' | 'above' | 'below';
diff --git a/src/lib/tsconfig-spec.json b/src/lib/tsconfig-spec.json
index 3646ff4eb4ee..616568e24c79 100644
--- a/src/lib/tsconfig-spec.json
+++ b/src/lib/tsconfig-spec.json
@@ -9,7 +9,7 @@
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": true,
- "outDir": "../../dist/@angular2-material",
+ "outDir": "../../dist/@angular/material",
"rootDir": ".",
"sourceMap": true,
"target": "es5",
@@ -17,9 +17,6 @@
"stripInternal": true,
"baseUrl": "",
"paths": {
- "@angular2-material/*": [
- "./*"
- ]
},
"typeRoots": [
"../../node_modules/@types"
diff --git a/src/lib/tsconfig.json b/src/lib/tsconfig.json
index 162f98c006cc..126d417299d2 100644
--- a/src/lib/tsconfig.json
+++ b/src/lib/tsconfig.json
@@ -9,18 +9,12 @@
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": true,
- "outDir": "../../dist/@angular2-material",
+ "outDir": "../../dist/@angular/material",
"rootDir": ".",
"sourceMap": true,
"target": "es5",
"inlineSources": true,
"stripInternal": true,
- "baseUrl": "",
- "paths": {
- "@angular2-material/*": [
- "./*"
- ]
- },
"typeRoots": [
"../../node_modules/@types"
],
@@ -29,10 +23,10 @@
},
"exclude": [
"**/*.spec.*",
- "system-config-spec"
+ "system-config-spec.ts"
],
"angularCompilerOptions": {
- "genDir": "../../dist",
+ "genDir": "../../dist/@angular/material",
"skipTemplateCodegen": true,
"debug": true
}
diff --git a/src/lib/typings.d.ts b/src/lib/typings.d.ts
new file mode 100644
index 000000000000..bf6ef74f4b61
--- /dev/null
+++ b/src/lib/typings.d.ts
@@ -0,0 +1 @@
+declare const module: {id: string};
diff --git a/test/karma-test-shim.js b/test/karma-test-shim.js
index 93eb900938cf..d19e7eca1acf 100644
--- a/test/karma-test-shim.js
+++ b/test/karma-test-shim.js
@@ -28,7 +28,7 @@ System.config({
baseURL: distPath
});
-System.import(distPath + '@angular2-material/system-config-spec.js').then(function() {
+System.import(distPath + '@angular/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/constants.ts b/tools/gulp/constants.ts
index 7038bf26594f..408b44fd14c2 100644
--- a/tools/gulp/constants.ts
+++ b/tools/gulp/constants.ts
@@ -4,7 +4,7 @@ export const PROJECT_ROOT = join(__dirname, '../..');
export const SOURCE_ROOT = join(PROJECT_ROOT, 'src');
export const DIST_ROOT = join(PROJECT_ROOT, 'dist');
-export const DIST_COMPONENTS_ROOT = join(DIST_ROOT, '@angular2-material');
+export const DIST_COMPONENTS_ROOT = join(DIST_ROOT, '@angular/material');
export const NPM_VENDOR_FILES = [
diff --git a/tools/gulp/tasks/components.ts b/tools/gulp/tasks/components.ts
index 03a359f2ff92..90e4f0283d39 100644
--- a/tools/gulp/tasks/components.ts
+++ b/tools/gulp/tasks/components.ts
@@ -1,9 +1,10 @@
import {task, watch} from 'gulp';
-import {readdirSync, statSync, writeFileSync} from 'fs';
+import {readdirSync, statSync, readFileSync} from 'fs';
import * as path from 'path';
import {SOURCE_ROOT, DIST_COMPONENTS_ROOT, PROJECT_ROOT} from '../constants';
import {sassBuildTask, tsBuildTask, execNodeTask, copyTask, sequenceTask} from '../task_helpers';
+import {writeFileSync} from 'fs';
// No typings for these.
const inlineResources = require('../../../scripts/release/inline-resources');
@@ -12,13 +13,6 @@ 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']);
@@ -39,10 +33,7 @@ task(':build:components:assets',
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());
-
+task(':build:components:rollup', [':build:components:inline'], () => {
const globals: {[name: string]: string} = {
// Angular dependencies
'@angular/core': 'ng.core',
@@ -65,46 +56,45 @@ task(':build:components:rollup', [':build:components:ts'], () => {
'rxjs/add/operator/catch': 'Rx.Observable.prototype',
'rxjs/Observable': 'Rx'
};
- components.forEach(name => {
- globals[`@angular2-material/${name}`] = `md.${camelCase(name)}`
+
+ // Rollup the @angular/material UMD bundle from all ES5 + imports JavaScript files built.
+ return rollup({
+ entry: path.join(DIST_COMPONENTS_ROOT, 'index.js'),
+ context: 'this',
+ external: Object.keys(globals)
+ }).then((bundle: { generate: any }) => {
+ const result = bundle.generate({
+ moduleName: 'ng.material',
+ format: 'umd',
+ globals,
+ sourceMap: true,
+ dest: path.join(DIST_COMPONENTS_ROOT, 'material.umd.js')
+ });
+
+ // Add source map URL to the code.
+ result.code += '\n\n//# sourceMappingURL=./material.umd.js.map\n';
+ // Format mapping to show properly in the browser. Rollup by default will put the path
+ // as relative to the file, and since that path is in src/lib and the file is in
+ // dist/@angular/material, we need to kill a few `../`.
+ result.map.sources = result.map.sources.map((s: string) => s.replace(/^(\.\.\/)+/, ''));
+
+ writeFileSync(path.join(DIST_COMPONENTS_ROOT, 'material.umd.js'), result.code, 'utf8');
+ writeFileSync(path.join(DIST_COMPONENTS_ROOT, 'material.umd.js.map'), result.map, 'utf8');
});
+});
- // 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:inline', [
+ ':build:components:ts',
+ ':build:components:scss',
+ ':build:components:assets'
+], () => {
+ return inlineResources(DIST_COMPONENTS_ROOT);
});
task('build:components', sequenceTask(
':build:components:rollup',
- ':build:components:assets',
- ':build:components:scss',
- ':inline-resources',
));
task(':build:components:ngc', ['build:components'], execNodeTask(
'@angular/compiler-cli', 'ngc', ['-p', path.relative(PROJECT_ROOT, path.join(componentsDir, 'tsconfig.json'))]
));
-
-task(':inline-resources', () => {
- inlineResources([DIST_COMPONENTS_ROOT]);
-});
diff --git a/tools/gulp/tasks/e2e.ts b/tools/gulp/tasks/e2e.ts
index 3383bdc230f4..064dd4b59912 100644
--- a/tools/gulp/tasks/e2e.ts
+++ b/tools/gulp/tasks/e2e.ts
@@ -41,7 +41,6 @@ let stopE2eServer: () => void = null;
task(':serve:e2eapp', serverTask(false, (stream) => { stopE2eServer = () => stream.emit('kill') }));
task(':serve:e2eapp:stop', () => stopE2eServer());
task('serve:e2eapp', ['build:e2eapp'], sequenceTask([
- ':inline-resources',
':serve:e2eapp',
':watch:components',
]));
diff --git a/tools/gulp/tasks/release.ts b/tools/gulp/tasks/release.ts
index 0b5e152bb806..c8cb3819910f 100644
--- a/tools/gulp/tasks/release.ts
+++ b/tools/gulp/tasks/release.ts
@@ -34,40 +34,41 @@ task(':publish:whoami', execTask('npm', ['whoami'], {
task(':publish:logout', execTask('npm', ['logout']));
-function _execNpmPublish(componentName: string, label: string): Promise {
- const componentPath = path.join(DIST_COMPONENTS_ROOT, componentName);
- const stat = statSync(componentPath);
-
- if (!stat.isDirectory()) {
+function _execNpmPublish(label: string): Promise {
+ const packageDir = DIST_COMPONENTS_ROOT;
+ if (!statSync(packageDir).isDirectory()) {
return;
}
- if (!existsSync(path.join(componentPath, 'package.json'))) {
- console.log(`Skipping ${componentPath} as it does not have a package.json.`);
- return;
+ if (!existsSync(path.join(packageDir, 'package.json'))) {
+ throw new Error(`"${packageDir}" does not have a package.json.`);
}
- process.chdir(componentPath);
- console.log(`Publishing ${componentName}...`);
+ process.chdir(packageDir);
+ console.log(`Publishing material...`);
const command = 'npm';
const args = ['publish', '--access', 'public', label ? `--tag` : undefined, label || undefined];
return new Promise((resolve, reject) => {
- console.log(`Executing "${command} ${args.join(' ')}"...`);
+ console.log(` Executing "${command} ${args.join(' ')}"...`);
+ if (argv['dry']) {
+ resolve();
+ return;
+ }
const childProcess = spawn(command, args);
childProcess.stdout.on('data', (data: Buffer) => {
- console.log(`stdout: ${data.toString().split(/[\n\r]/g).join('\n ')}`);
+ console.log(` stdout: ${data.toString().split(/[\n\r]/g).join('\n ')}`);
});
childProcess.stderr.on('data', (data: Buffer) => {
- console.error(`stderr: ${data.toString().split(/[\n\r]/g).join('\n ')}`);
+ console.error(` stderr: ${data.toString().split(/[\n\r]/g).join('\n ')}`);
});
childProcess.on('close', (code: number) => {
if (code == 0) {
resolve();
} else {
- reject(new Error(`Component ${componentName} did not publish, status: ${code}.`));
+ reject(new Error(`Material did not publish, status: ${code}.`));
}
});
});
@@ -85,9 +86,8 @@ task(':publish', function(done: (err?: any) => void) {
}
console.log('\n\n');
- // Build a promise chain that publish each component.
- readdirSync(DIST_COMPONENTS_ROOT)
- .reduce((prev, dirName) => prev.then(() => _execNpmPublish(dirName, label)), Promise.resolve())
+ // Publish only the material package.
+ return _execNpmPublish(label)
.then(() => done())
.catch((err: Error) => done(err))
.then(() => process.chdir(currentDir));
diff --git a/tools/gulp/tasks/unit-test.ts b/tools/gulp/tasks/unit-test.ts
index a1bec5947bbb..32b5792dbec0 100644
--- a/tools/gulp/tasks/unit-test.ts
+++ b/tools/gulp/tasks/unit-test.ts
@@ -26,8 +26,8 @@ gulp.task(':test:deps', sequenceTask(
[
':build:test:vendor',
':build:components:assets',
- ':build:components:scss',
':build:components:spec',
+ ':build:components:inline',
':watch:components:spec',
]
));
@@ -39,12 +39,8 @@ gulp.task('test', [':test:deps'], (done: () => void) => {
});
gulp.task('test:single-run', [':test:deps'], (done: () => void) => {
- runSequence(
- ':inline-resources',
- () => {
- new karma.Server({
- configFile: path.join(PROJECT_ROOT, 'test/karma.conf.js'),
- singleRun: true
- }, done).start();
- });
+ new karma.Server({
+ configFile: path.join(PROJECT_ROOT, 'test/karma.conf.js'),
+ singleRun: true
+ }, done).start();
});