diff --git a/WORKSPACE b/WORKSPACE
index ca67ed9c19c..dfe16a16202 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,15 +1,18 @@
workspace(name = "angular_material")
# Add nodejs rules
-git_repository(
+http_archive(
name = "build_bazel_rules_nodejs",
- remote = "https://github.com/bazelbuild/rules_nodejs.git",
- commit = "0.5.1",
+ url = "https://github.com/bazelbuild/rules_nodejs/archive/0.5.3.zip",
+ strip_prefix = "rules_nodejs-0.5.3",
+ sha256 = "17a5515f59777b00cb25dbc710017a14273f825029b2ec60e0969d28914870be",
)
# NOTE: this rule installs nodejs, npm, and yarn, but does NOT install
# your npm dependencies. You must still run the package manager.
-load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories")
+load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories")
+
+check_bazel_version("0.9.0")
node_repositories(package_json = ["//:package.json"])
# Add sass rules
@@ -23,10 +26,11 @@ load("@io_bazel_rules_sass//sass:sass.bzl", "sass_repositories")
sass_repositories()
# Add TypeScript rules
-git_repository(
+http_archive(
name = "build_bazel_rules_typescript",
- remote = "https://github.com/bazelbuild/rules_typescript.git",
- tag = "0.11.1",
+ url = "https://github.com/bazelbuild/rules_typescript/archive/0.11.1.zip",
+ strip_prefix = "rules_typescript-0.11.1",
+ sha256 = "7406bea7954e1c906f075115dfa176551a881119f6820b126ea1eacb09f34a1a",
)
# Setup TypeScript Bazel workspace
diff --git a/package-lock.json b/package-lock.json
index a7bf587e303..376bdd94d74 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,9 +35,9 @@
}
},
"@angular/bazel": {
- "version": "6.0.0-beta.8",
- "resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-beta.8.tgz",
- "integrity": "sha512-uC84HaX8/Fuazqv//pn3ZKMHPgPIT2vv+cEEJ7Jli0/H00Tt5LV06lv5qMB1fEBL4Dmn+pHEodjEZoRkJmagrw==",
+ "version": "6.0.0-rc.0",
+ "resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-rc.0.tgz",
+ "integrity": "sha512-4K98Zx8TYE0QqY5wLtNS+aBje3pnu/HGkyaYWM6GNZckTfiDz3Z2e6dZcgxaGVI1CqJZAx+sUYcGZrkI0wjIhQ==",
"dev": true,
"requires": {
"@bazel/typescript": "0.11.1",
@@ -72,9 +72,9 @@
}
},
"@angular/compiler-cli": {
- "version": "6.0.0-beta.8",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-beta.8.tgz",
- "integrity": "sha512-oDftaCQHSGJLJjVvRplI+pU3aazM287+Mr+m1xAKRrOAU6zY4kBcTB9EYECFv9t9T84/1fJy3gng1QcN14kMaA==",
+ "version": "6.0.0-rc.0",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-rc.0.tgz",
+ "integrity": "sha512-BTCZEAc/XSywiesuVS1mxRxryvngdG6hjNV396qas61+h/D9JItOTZ5nb0oHs81IPMUZg5Gv53uUG4GdrTuu0g==",
"dev": true,
"requires": {
"chokidar": "1.7.0",
diff --git a/package.json b/package.json
index 802206651d0..45605cc4a29 100644
--- a/package.json
+++ b/package.json
@@ -42,8 +42,8 @@
"devDependencies": {
"@angular-devkit/core": "^0.4.5",
"@angular-devkit/schematics": "^0.4.5",
- "@angular/bazel": "6.0.0-beta.8",
- "@angular/compiler-cli": "6.0.0-beta.8",
+ "@angular/bazel": "6.0.0-rc.0",
+ "@angular/compiler-cli": "6.0.0-rc.0",
"@angular/http": "6.0.0-beta.8",
"@angular/platform-browser-dynamic": "6.0.0-beta.8",
"@angular/platform-server": "6.0.0-beta.8",
diff --git a/components.bzl b/packages.bzl
similarity index 71%
rename from components.bzl
rename to packages.bzl
index 53a3486c34f..c8e7504a47f 100644
--- a/components.bzl
+++ b/packages.bzl
@@ -1,4 +1,22 @@
# List of all @angular/material components / subpackages.
+CDK_PACKAGES = [
+ "coercion",
+ "keycodes",
+ "scrolling",
+ "accordion",
+ "observers",
+ "a11y",
+ "overlay",
+ "platform",
+ "bidi",
+ "table",
+ "tree",
+ "portal",
+ "layout",
+ "stepper",
+ "collections",
+]
+
MATERIAL_PACKAGES = [
"autocomplete",
"badge",
diff --git a/src/cdk/BUILD.bazel b/src/cdk/BUILD.bazel
index fef81c85a1b..50c5f56e8cc 100644
--- a/src/cdk/BUILD.bazel
+++ b/src/cdk/BUILD.bazel
@@ -1,8 +1,14 @@
package(default_visibility=["//visibility:public"])
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library", "ts_config")
+load("@angular//:index.bzl", "ng_package")
+load("//:packages.bzl", "CDK_PACKAGES")
+load("//src/cdk:rollup_globals.bzl", "CDK_ROLLUP_GLOBALS")
+
+# Export the CDK tsconfig so that subpackages can reference it directly.
exports_files(["tsconfig-build.json"])
+# Root "@angular/cdk" entry-point that does not re-export individual entry-points.
ts_library(
name = "cdk",
srcs = glob(["*.ts"], exclude=["**/*.spec.ts"]),
@@ -11,8 +17,11 @@ ts_library(
tsconfig = ":tsconfig-build.json",
)
-ts_config(
- name ="tsconfig_tests",
- src = "tsconfig-tests.json",
- deps = ["tsconfig-build.json"],
+# Creates the @angular/cdk package published to npm.
+ng_package(
+ name = "npm_package",
+ srcs = ["package.json"],
+ entry_point = "src/cdk/public_api.js",
+ globals = CDK_ROLLUP_GLOBALS,
+ deps = [":cdk"] + ["//src/cdk/%s" % p for p in CDK_PACKAGES]
)
diff --git a/src/cdk/a11y/BUILD.bazel b/src/cdk/a11y/BUILD.bazel
index 36ef8cc40be..c673d613245 100644
--- a/src/cdk/a11y/BUILD.bazel
+++ b/src/cdk/a11y/BUILD.bazel
@@ -14,7 +14,7 @@ ng_module(
"//src/cdk/platform",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
# TODO(jelbourn): remove this when sass_library acts like a filegroup
@@ -39,7 +39,7 @@ ts_library(
"//src/cdk/testing",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/accordion/BUILD.bazel b/src/cdk/accordion/BUILD.bazel
index 51c7e95311e..5b6b6001e4d 100644
--- a/src/cdk/accordion/BUILD.bazel
+++ b/src/cdk/accordion/BUILD.bazel
@@ -11,7 +11,7 @@ ng_module(
"//src/cdk/coercion",
"//src/cdk/collections",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -22,7 +22,7 @@ ts_library(
":accordion",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/bidi/BUILD.bazel b/src/cdk/bidi/BUILD.bazel
index 89253157936..0439ace36d0 100644
--- a/src/cdk/bidi/BUILD.bazel
+++ b/src/cdk/bidi/BUILD.bazel
@@ -8,7 +8,7 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/bidi",
deps = ["@rxjs"],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +19,7 @@ ts_library(
":bidi",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/coercion/BUILD.bazel b/src/cdk/coercion/BUILD.bazel
index 0119bf57a6f..a78f31f94ef 100644
--- a/src/cdk/coercion/BUILD.bazel
+++ b/src/cdk/coercion/BUILD.bazel
@@ -1,14 +1,15 @@
package(default_visibility=["//visibility:public"])
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library")
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library", "ts_web_test")
+load("@angular//:index.bzl", "ng_module")
-# Note: this will need to ng_module if any Angular-specific stuff is added to coercion.
-ts_library(
+
+ng_module(
name = "coercion",
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/coercion",
- deps = [],
- tsconfig = ":tsconfig-build.json",
+ deps = ["@rxjs"],
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
diff --git a/src/cdk/collections/BUILD.bazel b/src/cdk/collections/BUILD.bazel
index 6683c2529d4..7f68d9892a0 100644
--- a/src/cdk/collections/BUILD.bazel
+++ b/src/cdk/collections/BUILD.bazel
@@ -8,7 +8,7 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/collections",
deps = ["@rxjs"],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +19,7 @@ ts_library(
":collections",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/keycodes/BUILD.bazel b/src/cdk/keycodes/BUILD.bazel
index f4857161e95..dc89a13e67e 100644
--- a/src/cdk/keycodes/BUILD.bazel
+++ b/src/cdk/keycodes/BUILD.bazel
@@ -1,11 +1,12 @@
package(default_visibility=["//visibility:public"])
load("@build_bazel_rules_typescript//:defs.bzl", "ts_library")
+load("@angular//:index.bzl", "ng_module")
-# Note: this will need to ng_module if any Angular-specific stuff is added to coercion.
-ts_library(
+
+ng_module(
name = "keycodes",
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/keycodes",
- deps = [],
- tsconfig = ":tsconfig-build.json",
+ deps = ["@rxjs"],
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
diff --git a/src/cdk/layout/BUILD.bazel b/src/cdk/layout/BUILD.bazel
index 0bf9388a33f..24f2fde341c 100644
--- a/src/cdk/layout/BUILD.bazel
+++ b/src/cdk/layout/BUILD.bazel
@@ -12,7 +12,7 @@ ng_module(
"//src/cdk/platform",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -24,7 +24,7 @@ ts_library(
"//src/cdk/platform",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/observers/BUILD.bazel b/src/cdk/observers/BUILD.bazel
index 1920c4c13fb..6864585d07b 100644
--- a/src/cdk/observers/BUILD.bazel
+++ b/src/cdk/observers/BUILD.bazel
@@ -7,8 +7,11 @@ ng_module(
name = "observers",
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/observers",
- deps = ["@rxjs", "//src/cdk/coercion"],
- tsconfig = ":tsconfig-build.json",
+ deps = [
+ "@rxjs",
+ "//src/cdk/coercion",
+ ],
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +22,7 @@ ts_library(
":observers",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/overlay/BUILD.bazel b/src/cdk/overlay/BUILD.bazel
index 1be5f2b7de8..463bf45133a 100644
--- a/src/cdk/overlay/BUILD.bazel
+++ b/src/cdk/overlay/BUILD.bazel
@@ -15,7 +15,7 @@ ng_module(
"//src/cdk/scrolling",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup
@@ -38,7 +38,7 @@ ts_library(
"//src/cdk/testing",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/platform/BUILD.bazel b/src/cdk/platform/BUILD.bazel
index 87965dddb62..095c02204dc 100644
--- a/src/cdk/platform/BUILD.bazel
+++ b/src/cdk/platform/BUILD.bazel
@@ -6,5 +6,5 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/platform",
deps = ["@rxjs"],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
diff --git a/src/cdk/portal/BUILD.bazel b/src/cdk/portal/BUILD.bazel
index c1fdd7ee3f9..1bb6f2bd7ea 100644
--- a/src/cdk/portal/BUILD.bazel
+++ b/src/cdk/portal/BUILD.bazel
@@ -8,7 +8,7 @@ ng_module(
srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
module_name = "@angular/cdk/portal",
deps = ["@rxjs"],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -19,7 +19,7 @@ ts_library(
":portal",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/rollup_globals.bzl b/src/cdk/rollup_globals.bzl
new file mode 100644
index 00000000000..e12e02f484c
--- /dev/null
+++ b/src/cdk/rollup_globals.bzl
@@ -0,0 +1,12 @@
+load("//:packages.bzl", "CDK_PACKAGES")
+
+# Base rollup globals for dependencies and the root entry-point.
+CDK_ROLLUP_GLOBALS = {
+ 'tslib': 'tslib',
+ '@angular/cdk': 'ng.cdk',
+}
+
+# Rollup globals for subpackages in the form of, e.g., {"@angular/cdk/table": "ng.cdk.table"}
+CDK_ROLLUP_GLOBALS.update({
+ "@angular/cdk/%s" % p: "ng.cdk.%s" % p for p in CDK_PACKAGES
+})
diff --git a/src/cdk/scrolling/BUILD.bazel b/src/cdk/scrolling/BUILD.bazel
index 9fd2db96de2..45bbde4868e 100644
--- a/src/cdk/scrolling/BUILD.bazel
+++ b/src/cdk/scrolling/BUILD.bazel
@@ -11,7 +11,7 @@ ng_module(
"//src/cdk/platform",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -23,7 +23,7 @@ ts_library(
"//src/cdk/testing",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/stepper/BUILD.bazel b/src/cdk/stepper/BUILD.bazel
index e44edabdbfb..1a0bfa530c4 100644
--- a/src/cdk/stepper/BUILD.bazel
+++ b/src/cdk/stepper/BUILD.bazel
@@ -12,5 +12,5 @@ ng_module(
"//src/cdk/keycodes",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
diff --git a/src/cdk/stepper/step.html b/src/cdk/stepper/step.html
deleted file mode 100644
index cd48c06b991..00000000000
--- a/src/cdk/stepper/step.html
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/cdk/stepper/stepper.ts b/src/cdk/stepper/stepper.ts
index b0eb99f9c12..46aa0b7c41d 100644
--- a/src/cdk/stepper/stepper.ts
+++ b/src/cdk/stepper/stepper.ts
@@ -67,7 +67,7 @@ export class StepperSelectionEvent {
moduleId: module.id,
selector: 'cdk-step',
exportAs: 'cdkStep',
- templateUrl: 'step.html',
+ template: '',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
})
diff --git a/src/cdk/table/BUILD.bazel b/src/cdk/table/BUILD.bazel
index 1e714a6718d..f2e1a3dc540 100644
--- a/src/cdk/table/BUILD.bazel
+++ b/src/cdk/table/BUILD.bazel
@@ -11,7 +11,7 @@ ng_module(
"//src/cdk/collections",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_library(
@@ -23,7 +23,7 @@ ts_library(
"//src/cdk/collections",
"@rxjs",
],
- tsconfig = ":tsconfig-build.json",
+ tsconfig = "//src/cdk:tsconfig-build.json",
)
ts_web_test(
diff --git a/src/cdk/tree/BUILD.bazel b/src/cdk/tree/BUILD.bazel
new file mode 100644
index 00000000000..630e5e34a7e
--- /dev/null
+++ b/src/cdk/tree/BUILD.bazel
@@ -0,0 +1,45 @@
+package(default_visibility=["//visibility:public"])
+load("@angular//:index.bzl", "ng_module")
+load("@build_bazel_rules_typescript//:defs.bzl", "ts_library", "ts_web_test")
+
+
+ng_module(
+ name = "tree",
+ srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]),
+ module_name = "@angular/cdk/tree",
+ deps = [
+ "//src/cdk/a11y",
+ "//src/cdk/bidi",
+ "//src/cdk/coercion",
+ "//src/cdk/collections",
+ "@rxjs",
+ ],
+ tsconfig = "//src/cdk:tsconfig-build.json",
+)
+
+ts_library(
+ name = "tree_test_sources",
+ testonly = 1,
+ srcs = glob(["**/*.spec.ts"]),
+ deps = [
+ ":tree",
+ "//src/cdk/collections",
+ "@rxjs",
+ ],
+ tsconfig = "//src/cdk:tsconfig-build.json",
+)
+
+ts_web_test(
+ name = "unit_tests",
+ bootstrap = ["//:web_test_bootstrap_scripts"],
+ # TODO(tinagao): get these tests passing
+ tags = ["manual"],
+ # Do not sort
+ deps = [
+ "//:tslib_bundle",
+ "//:angular_bundles",
+ "//:angular_test_bundles",
+ "//test:angular_test_init",
+ ":tree_test_sources",
+ ],
+)
diff --git a/src/cdk/tree/typings.d.ts b/src/cdk/tree/typings.d.ts
new file mode 100644
index 00000000000..ce4ae9b66cf
--- /dev/null
+++ b/src/cdk/tree/typings.d.ts
@@ -0,0 +1 @@
+declare var module: {id: string};
diff --git a/src/lib/BUILD.bazel b/src/lib/BUILD.bazel
index 729d7ec57f0..170f713dfab 100644
--- a/src/lib/BUILD.bazel
+++ b/src/lib/BUILD.bazel
@@ -1,5 +1,6 @@
load("//tools:sass_bundle.bzl", "sass_bundle")
-load("//:components.bzl", "MATERIAL_PACKAGES")
+load("//:packages.bzl", "MATERIAL_PACKAGES")
+load("@angular//:index.bzl", "ng_package")
sass_bundle(
diff --git a/tools/package-tools/rollup-globals.ts b/tools/package-tools/rollup-globals.ts
index 0707dfac8d4..9faa0e8b9cc 100644
--- a/tools/package-tools/rollup-globals.ts
+++ b/tools/package-tools/rollup-globals.ts
@@ -55,21 +55,21 @@ export const rollupGlobals = {
'rxjs/BehaviorSubject': 'Rx',
'rxjs/Observable': 'Rx',
- 'rxjs/Subject': 'Rx',
- 'rxjs/Subscription': 'Rx',
'rxjs/Observer': 'Rx',
- 'rxjs/Subscriber': 'Rx',
'rxjs/Scheduler': 'Rx',
+ 'rxjs/Subject': 'Rx',
+ 'rxjs/Subscriber': 'Rx',
+ 'rxjs/Subscription': 'Rx',
'rxjs/observable/combineLatest': 'Rx.Observable',
+ 'rxjs/observable/defer': 'Rx.Observable',
+ 'rxjs/observable/empty': 'Rx.Observable',
'rxjs/observable/forkJoin': 'Rx.Observable',
'rxjs/observable/fromEvent': 'Rx.Observable',
+ 'rxjs/observable/fromEventPattern': 'Rx.Observable',
'rxjs/observable/merge': 'Rx.Observable',
'rxjs/observable/of': 'Rx.Observable',
'rxjs/observable/throw': 'Rx.Observable',
- 'rxjs/observable/defer': 'Rx.Observable',
- 'rxjs/observable/fromEventPattern': 'Rx.Observable',
- 'rxjs/observable/empty': 'Rx.Observable',
'rxjs/operators/debounceTime': 'Rx.operators',
'rxjs/operators/takeUntil': 'Rx.operators',