@angular/cdk 2.0.0-beta.11 → 2.0.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_a11y.scss +23 -0
- package/_overlay.scss +93 -0
- package/a11y/index.metadata.json +2 -1
- package/a11y/typings/a11y-module.d.ts +2 -0
- package/a11y/typings/focus-monitor.d.ts +1 -1
- package/a11y/typings/index.d.ts +1 -1
- package/a11y/typings/index.metadata.json +1 -1
- package/a11y/typings/{public_api.d.ts → public-api.d.ts} +8 -2
- package/a11y-prebuilt.css +1 -0
- package/a11y.metadata.json +2 -1
- package/bidi/index.metadata.json +2 -1
- package/bidi/typings/bidi-module.d.ts +2 -0
- package/bidi/typings/index.d.ts +1 -1
- package/bidi/typings/index.metadata.json +1 -1
- package/bidi/typings/public-api.d.ts +10 -0
- package/bidi.metadata.json +2 -1
- package/bundles/cdk-a11y.umd.js +1368 -1357
- package/bundles/cdk-a11y.umd.js.map +1 -1
- package/bundles/cdk-a11y.umd.min.js +2 -2
- package/bundles/cdk-a11y.umd.min.js.map +1 -1
- package/bundles/cdk-bidi.umd.js +42 -40
- package/bundles/cdk-bidi.umd.js.map +1 -1
- package/bundles/cdk-bidi.umd.min.js +2 -2
- package/bundles/cdk-bidi.umd.min.js.map +1 -1
- package/bundles/cdk-coercion.umd.js +12 -0
- package/bundles/cdk-coercion.umd.js.map +1 -1
- package/bundles/cdk-coercion.umd.min.js +2 -2
- package/bundles/cdk-coercion.umd.min.js.map +1 -1
- package/bundles/cdk-collections.umd.js +113 -11
- package/bundles/cdk-collections.umd.js.map +1 -1
- package/bundles/cdk-collections.umd.min.js +2 -2
- package/bundles/cdk-collections.umd.min.js.map +1 -1
- package/bundles/cdk-keycodes.umd.js.map +1 -1
- package/bundles/cdk-keycodes.umd.min.js +1 -1
- package/bundles/cdk-keycodes.umd.min.js.map +1 -1
- package/bundles/cdk-layout.umd.js +235 -0
- package/bundles/cdk-layout.umd.js.map +1 -0
- package/bundles/cdk-layout.umd.min.js +9 -0
- package/bundles/cdk-layout.umd.min.js.map +1 -0
- package/bundles/cdk-observers.umd.js +41 -40
- package/bundles/cdk-observers.umd.js.map +1 -1
- package/bundles/cdk-observers.umd.min.js +2 -2
- package/bundles/cdk-observers.umd.min.js.map +1 -1
- package/bundles/cdk-overlay.umd.js +306 -265
- package/bundles/cdk-overlay.umd.js.map +1 -1
- package/bundles/cdk-overlay.umd.min.js +2 -2
- package/bundles/cdk-overlay.umd.min.js.map +1 -1
- package/bundles/cdk-platform.umd.js +19 -17
- package/bundles/cdk-platform.umd.js.map +1 -1
- package/bundles/cdk-platform.umd.min.js +2 -2
- package/bundles/cdk-platform.umd.min.js.map +1 -1
- package/bundles/cdk-portal.umd.js +71 -37
- package/bundles/cdk-portal.umd.js.map +1 -1
- package/bundles/cdk-portal.umd.min.js +2 -2
- package/bundles/cdk-portal.umd.min.js.map +1 -1
- package/bundles/cdk-rxjs.umd.js +13 -4
- package/bundles/cdk-rxjs.umd.js.map +1 -1
- package/bundles/cdk-rxjs.umd.min.js +2 -2
- package/bundles/cdk-rxjs.umd.min.js.map +1 -1
- package/bundles/cdk-scrolling.umd.js +89 -54
- package/bundles/cdk-scrolling.umd.js.map +1 -1
- package/bundles/cdk-scrolling.umd.min.js +2 -2
- package/bundles/cdk-scrolling.umd.min.js.map +1 -1
- package/bundles/cdk-stepper.umd.js +115 -90
- package/bundles/cdk-stepper.umd.js.map +1 -1
- package/bundles/cdk-stepper.umd.min.js +2 -2
- package/bundles/cdk-stepper.umd.min.js.map +1 -1
- package/bundles/cdk-table.umd.js +261 -218
- package/bundles/cdk-table.umd.js.map +1 -1
- package/bundles/cdk-table.umd.min.js +2 -2
- package/bundles/cdk-table.umd.min.js.map +1 -1
- package/bundles/cdk.umd.js +1 -1
- package/bundles/cdk.umd.js.map +1 -1
- package/bundles/cdk.umd.min.js +2 -2
- package/bundles/cdk.umd.min.js.map +1 -1
- package/cdk.metadata.json +2 -1
- package/coercion/index.metadata.json +2 -1
- package/coercion/typings/array.d.ts +9 -0
- package/coercion/typings/index.d.ts +1 -1
- package/coercion/typings/index.metadata.json +1 -1
- package/{typings/coercion/public_api.d.ts → coercion/typings/public-api.d.ts} +1 -0
- package/coercion.metadata.json +2 -1
- package/collections/index.metadata.json +2 -1
- package/collections/typings/index.d.ts +2 -1
- package/collections/typings/index.metadata.json +1 -1
- package/{typings/collections/public_api.d.ts → collections/typings/public-api.d.ts} +1 -0
- package/collections/typings/selection.d.ts +13 -3
- package/collections/typings/unique-selection-dispatcher.d.ts +40 -0
- package/collections.metadata.json +2 -1
- package/esm2015/a11y.js +1252 -1250
- package/esm2015/a11y.js.map +1 -1
- package/esm2015/bidi.js +1 -1
- package/esm2015/bidi.js.map +1 -1
- package/esm2015/cdk.js +1 -1
- package/esm2015/cdk.js.map +1 -1
- package/esm2015/coercion.js +11 -1
- package/esm2015/coercion.js.map +1 -1
- package/esm2015/collections.js +93 -8
- package/esm2015/collections.js.map +1 -1
- package/esm2015/keycodes.js.map +1 -1
- package/esm2015/layout.js +226 -0
- package/esm2015/layout.js.map +1 -0
- package/esm2015/observers.js +8 -7
- package/esm2015/observers.js.map +1 -1
- package/esm2015/overlay.js +157 -136
- package/esm2015/overlay.js.map +1 -1
- package/esm2015/platform.js +1 -1
- package/esm2015/platform.js.map +1 -1
- package/esm2015/portal.js +30 -1
- package/esm2015/portal.js.map +1 -1
- package/esm2015/rxjs.js +5 -1
- package/esm2015/rxjs.js.map +1 -1
- package/esm2015/scrolling.js +39 -8
- package/esm2015/scrolling.js.map +1 -1
- package/esm2015/stepper.js +27 -5
- package/esm2015/stepper.js.map +1 -1
- package/esm2015/table.js +68 -29
- package/esm2015/table.js.map +1 -1
- package/esm5/a11y.es5.js +1372 -1357
- package/esm5/a11y.es5.js.map +1 -1
- package/esm5/bidi.es5.js +45 -40
- package/esm5/bidi.es5.js.map +1 -1
- package/esm5/cdk.es5.js +4 -1
- package/esm5/cdk.es5.js.map +1 -1
- package/esm5/coercion.es5.js +14 -1
- package/esm5/coercion.es5.js.map +1 -1
- package/esm5/collections.es5.js +110 -8
- package/esm5/collections.es5.js.map +1 -1
- package/esm5/keycodes.es5.js +2 -0
- package/esm5/keycodes.es5.js.map +1 -1
- package/esm5/layout.es5.js +234 -0
- package/esm5/layout.es5.js.map +1 -0
- package/esm5/observers.es5.js +44 -40
- package/esm5/observers.es5.js.map +1 -1
- package/esm5/overlay.es5.js +304 -259
- package/esm5/overlay.es5.js.map +1 -1
- package/esm5/platform.es5.js +22 -17
- package/esm5/platform.es5.js.map +1 -1
- package/esm5/portal.es5.js +81 -44
- package/esm5/portal.es5.js.map +1 -1
- package/esm5/rxjs.es5.js +12 -1
- package/esm5/rxjs.es5.js.map +1 -1
- package/esm5/scrolling.es5.js +89 -51
- package/esm5/scrolling.es5.js.map +1 -1
- package/esm5/stepper.es5.js +119 -91
- package/esm5/stepper.es5.js.map +1 -1
- package/esm5/table.es5.js +265 -218
- package/esm5/table.es5.js.map +1 -1
- package/keycodes/index.metadata.json +2 -1
- package/keycodes/typings/index.d.ts +1 -1
- package/keycodes/typings/{public_api.d.ts → public-api.d.ts} +0 -0
- package/keycodes.metadata.json +2 -1
- package/layout/index.d.ts +8 -0
- package/layout/index.metadata.json +12 -0
- package/layout/package.json +7 -0
- package/layout/typings/breakpoints-observer.d.ts +37 -0
- package/layout/typings/breakpoints.d.ts +18 -0
- package/layout/typings/index.d.ts +4 -0
- package/layout/typings/index.metadata.json +1 -0
- package/layout/typings/media-matcher.d.ts +15 -0
- package/layout/typings/public-api.d.ts +5 -0
- package/layout.d.ts +8 -0
- package/layout.metadata.json +12 -0
- package/observers/index.metadata.json +2 -1
- package/observers/typings/index.d.ts +1 -1
- package/observers/typings/index.metadata.json +1 -1
- package/observers/typings/observe-content.d.ts +3 -3
- package/observers/typings/{public_api.d.ts → public-api.d.ts} +0 -0
- package/observers.metadata.json +2 -1
- package/overlay/index.metadata.json +2 -1
- package/overlay/typings/index.d.ts +2 -2
- package/overlay/typings/index.metadata.json +1 -1
- package/overlay/typings/overlay-config.d.ts +1 -1
- package/overlay/typings/overlay-directives.d.ts +3 -3
- package/overlay/typings/overlay-module.d.ts +11 -0
- package/overlay/typings/overlay-ref.d.ts +6 -6
- package/overlay/typings/overlay.d.ts +2 -2
- package/overlay/typings/position/connected-position-strategy.d.ts +5 -0
- package/overlay/typings/position/position-strategy.d.ts +2 -0
- package/overlay/typings/{public_api.d.ts → public-api.d.ts} +1 -4
- package/overlay/typings/scroll/scroll-strategy.d.ts +1 -1
- package/overlay-prebuilt.css +1 -0
- package/overlay.metadata.json +2 -1
- package/package.json +3 -3
- package/platform/index.metadata.json +2 -1
- package/platform/typings/index.d.ts +1 -1
- package/platform/typings/index.metadata.json +1 -1
- package/platform/typings/platform-module.d.ts +2 -0
- package/platform/typings/public-api.d.ts +10 -0
- package/platform.metadata.json +2 -1
- package/portal/index.metadata.json +2 -1
- package/portal/typings/index.d.ts +1 -1
- package/portal/typings/index.metadata.json +1 -1
- package/portal/typings/{public_api.d.ts → public-api.d.ts} +1 -0
- package/portal.metadata.json +2 -1
- package/rxjs/index.metadata.json +2 -1
- package/rxjs/typings/index.d.ts +1 -1
- package/rxjs/typings/index.metadata.json +1 -1
- package/rxjs/typings/{public_api.d.ts → public-api.d.ts} +0 -0
- package/rxjs/typings/rx-operators.d.ts +7 -0
- package/rxjs.metadata.json +2 -1
- package/scrolling/index.metadata.json +2 -1
- package/scrolling/typings/index.d.ts +1 -1
- package/scrolling/typings/index.metadata.json +1 -1
- package/scrolling/typings/public-api.d.ts +11 -0
- package/scrolling/typings/scrolling-module.d.ts +2 -0
- package/scrolling/typings/viewport-ruler.d.ts +20 -6
- package/scrolling.metadata.json +2 -1
- package/stepper/index.metadata.json +2 -1
- package/stepper/typings/index.d.ts +1 -1
- package/stepper/typings/index.metadata.json +1 -1
- package/stepper/typings/public-api.d.ts +11 -0
- package/stepper/typings/stepper-module.d.ts +2 -0
- package/stepper/typings/stepper.d.ts +8 -4
- package/stepper.metadata.json +2 -1
- package/table/index.metadata.json +2 -1
- package/table/typings/index.d.ts +1 -1
- package/table/typings/index.metadata.json +1 -1
- package/table/typings/public-api.d.ts +13 -0
- package/table/typings/row.d.ts +11 -3
- package/table/typings/table-errors.d.ts +10 -0
- package/table/typings/table-module.d.ts +2 -0
- package/table/typings/table.d.ts +17 -8
- package/table.metadata.json +2 -1
- package/typings/a11y/a11y-module.d.ts +2 -0
- package/typings/a11y/focus-monitor.d.ts +1 -1
- package/typings/a11y/index.d.ts +1 -1
- package/typings/a11y/index.metadata.json +1 -1
- package/typings/a11y/{public_api.d.ts → public-api.d.ts} +8 -2
- package/typings/bidi/bidi-module.d.ts +2 -0
- package/typings/bidi/index.d.ts +1 -1
- package/typings/bidi/index.metadata.json +1 -1
- package/typings/bidi/public-api.d.ts +10 -0
- package/typings/coercion/array.d.ts +9 -0
- package/typings/coercion/index.d.ts +1 -1
- package/typings/coercion/index.metadata.json +1 -1
- package/{coercion/typings/public_api.d.ts → typings/coercion/public-api.d.ts} +1 -0
- package/typings/collections/index.d.ts +2 -1
- package/typings/collections/index.metadata.json +1 -1
- package/{collections/typings/public_api.d.ts → typings/collections/public-api.d.ts} +1 -0
- package/typings/collections/selection.d.ts +13 -3
- package/typings/collections/unique-selection-dispatcher.d.ts +40 -0
- package/typings/index.d.ts +1 -1
- package/typings/index.metadata.json +1 -1
- package/typings/keycodes/index.d.ts +1 -1
- package/typings/keycodes/{public_api.d.ts → public-api.d.ts} +0 -0
- package/typings/layout/breakpoints-observer.d.ts +37 -0
- package/typings/layout/breakpoints.d.ts +18 -0
- package/typings/layout/index.d.ts +4 -0
- package/typings/layout/index.metadata.json +1 -0
- package/typings/layout/media-matcher.d.ts +15 -0
- package/typings/layout/public-api.d.ts +5 -0
- package/typings/observers/index.d.ts +1 -1
- package/typings/observers/index.metadata.json +1 -1
- package/typings/observers/observe-content.d.ts +3 -3
- package/typings/observers/{public_api.d.ts → public-api.d.ts} +0 -0
- package/typings/overlay/index.d.ts +2 -2
- package/typings/overlay/index.metadata.json +1 -1
- package/typings/overlay/overlay-config.d.ts +1 -1
- package/typings/overlay/overlay-directives.d.ts +3 -3
- package/typings/overlay/overlay-module.d.ts +11 -0
- package/typings/overlay/overlay-ref.d.ts +6 -6
- package/typings/overlay/overlay.d.ts +2 -2
- package/typings/overlay/position/connected-position-strategy.d.ts +5 -0
- package/typings/overlay/position/position-strategy.d.ts +2 -0
- package/typings/overlay/{public_api.d.ts → public-api.d.ts} +1 -4
- package/typings/overlay/scroll/scroll-strategy.d.ts +1 -1
- package/typings/platform/index.d.ts +1 -1
- package/typings/platform/index.metadata.json +1 -1
- package/typings/platform/platform-module.d.ts +2 -0
- package/typings/platform/public-api.d.ts +10 -0
- package/typings/portal/index.d.ts +1 -1
- package/typings/portal/index.metadata.json +1 -1
- package/typings/portal/{public_api.d.ts → public-api.d.ts} +1 -0
- package/typings/{public_api.d.ts → public-api.d.ts} +0 -0
- package/typings/rxjs/index.d.ts +1 -1
- package/typings/rxjs/index.metadata.json +1 -1
- package/typings/rxjs/{public_api.d.ts → public-api.d.ts} +0 -0
- package/typings/rxjs/rx-operators.d.ts +7 -0
- package/typings/scrolling/index.d.ts +1 -1
- package/typings/scrolling/index.metadata.json +1 -1
- package/typings/scrolling/public-api.d.ts +11 -0
- package/typings/scrolling/scrolling-module.d.ts +2 -0
- package/typings/scrolling/viewport-ruler.d.ts +20 -6
- package/typings/stepper/index.d.ts +1 -1
- package/typings/stepper/index.metadata.json +1 -1
- package/typings/stepper/public-api.d.ts +11 -0
- package/typings/stepper/stepper-module.d.ts +2 -0
- package/typings/stepper/stepper.d.ts +8 -4
- package/typings/table/index.d.ts +1 -1
- package/typings/table/index.metadata.json +1 -1
- package/typings/table/public-api.d.ts +13 -0
- package/typings/table/row.d.ts +11 -3
- package/typings/table/table-errors.d.ts +10 -0
- package/typings/table/table-module.d.ts +2 -0
- package/typings/table/table.d.ts +17 -8
- package/bidi/typings/public_api.d.ts +0 -4
- package/platform/typings/public_api.d.ts +0 -4
- package/scrolling/typings/public_api.d.ts +0 -5
- package/stepper/typings/public_api.d.ts +0 -5
- package/table/typings/public_api.d.ts +0 -7
- package/typings/bidi/public_api.d.ts +0 -4
- package/typings/platform/public_api.d.ts +0 -4
- package/typings/scrolling/public_api.d.ts +0 -5
- package/typings/stepper/public_api.d.ts +0 -5
- package/typings/table/public_api.d.ts +0 -7
package/esm2015/cdk.js
CHANGED
|
@@ -10,7 +10,7 @@ import { Version } from '@angular/core';
|
|
|
10
10
|
/**
|
|
11
11
|
* Current version of the Angular Component Development Kit.
|
|
12
12
|
*/
|
|
13
|
-
const VERSION = new Version('
|
|
13
|
+
const VERSION = new Version('0.0.0-PLACEHOLDER');
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Generated bundle index. Do not edit.
|
package/esm2015/cdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdk.js","sources":["
|
|
1
|
+
{"version":3,"file":"cdk.js","sources":["../packages/cdk/version.js","../packages/cdk/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Version } from '@angular/core';\n/**\n * Current version of the Angular Component Development Kit.\n */\nexport const VERSION = new Version('0.0.0-PLACEHOLDER');\n//# sourceMappingURL=version.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { VERSION } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;;;AAQA;;;AAGA,AAAO,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,AACxD;;ACZA;;GAEG,AACH,AAAuC,AACvC;;"}
|
package/esm2015/coercion.js
CHANGED
|
@@ -27,9 +27,19 @@ function coerceNumberProperty(value, fallbackValue = 0) {
|
|
|
27
27
|
return isNaN(parseFloat(/** @type {?} */ (value))) || isNaN(Number(value)) ? fallbackValue : Number(value);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Wraps the provided value in an array, unless the provided value is an array.
|
|
32
|
+
* @template T
|
|
33
|
+
* @param {?} value
|
|
34
|
+
* @return {?}
|
|
35
|
+
*/
|
|
36
|
+
function coerceArray(value) {
|
|
37
|
+
return Array.isArray(value) ? value : [value];
|
|
38
|
+
}
|
|
39
|
+
|
|
30
40
|
/**
|
|
31
41
|
* Generated bundle index. Do not edit.
|
|
32
42
|
*/
|
|
33
43
|
|
|
34
|
-
export { coerceBooleanProperty, coerceNumberProperty };
|
|
44
|
+
export { coerceBooleanProperty, coerceNumberProperty, coerceArray };
|
|
35
45
|
//# sourceMappingURL=coercion.js.map
|
package/esm2015/coercion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coercion.js","sources":["
|
|
1
|
+
{"version":3,"file":"coercion.js","sources":["../../packages/cdk/coercion/boolean-property.js","../../packages/cdk/coercion/number-property.js","../../packages/cdk/coercion/array.js","../../packages/cdk/coercion/index.js"],"sourcesContent":["/**\n * Coerces a data-bound value (typically a string) to a boolean.\n * @param {?} value\n * @return {?}\n */\nexport function coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n//# sourceMappingURL=boolean-property.js.map","/**\n * Coerces a data-bound value (typically a string) to a number.\n * @param {?} value\n * @param {?=} fallbackValue\n * @return {?}\n */\nexport function coerceNumberProperty(value, fallbackValue = 0) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return isNaN(parseFloat(/** @type {?} */ (value))) || isNaN(Number(value)) ? fallbackValue : Number(value);\n}\n//# sourceMappingURL=number-property.js.map","/**\n * Wraps the provided value in an array, unless the provided value is an array.\n * @template T\n * @param {?} value\n * @return {?}\n */\nexport function coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n//# sourceMappingURL=array.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { coerceBooleanProperty, coerceNumberProperty, coerceArray } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;AAAA;;;;;AAKA,AAAO,SAAS,qBAAqB,CAAC,KAAK,EAAE;IACzC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC;CAClD,AACD;;ACRA;;;;;;AAMA,AAAO,SAAS,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,CAAC,EAAE;;;;IAI3D,OAAO,KAAK,CAAC,UAAU,mBAAmB,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;CAC9G,AACD;;ACZA;;;;;;AAMA,AAAO,SAAS,WAAW,CAAC,KAAK,EAAE;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;CACjD,AACD;;ACTA;;GAEG,AACH,AAAwF,AACxF;;"}
|
package/esm2015/collections.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { Subject } from 'rxjs/Subject';
|
|
9
|
+
import { Injectable, Optional, SkipSelf } from '@angular/core';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* @abstract
|
|
@@ -84,20 +85,22 @@ class SelectionModel {
|
|
|
84
85
|
}
|
|
85
86
|
/**
|
|
86
87
|
* Selects a value or an array of values.
|
|
87
|
-
* @param {
|
|
88
|
+
* @param {...?} values
|
|
88
89
|
* @return {?}
|
|
89
90
|
*/
|
|
90
|
-
select(
|
|
91
|
-
this.
|
|
91
|
+
select(...values) {
|
|
92
|
+
this._verifyValueAssignment(values);
|
|
93
|
+
values.forEach(value => this._markSelected(value));
|
|
92
94
|
this._emitChangeEvent();
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
95
97
|
* Deselects a value or an array of values.
|
|
96
|
-
* @param {
|
|
98
|
+
* @param {...?} values
|
|
97
99
|
* @return {?}
|
|
98
100
|
*/
|
|
99
|
-
deselect(
|
|
100
|
-
this.
|
|
101
|
+
deselect(...values) {
|
|
102
|
+
this._verifyValueAssignment(values);
|
|
103
|
+
values.forEach(value => this._unmarkSelected(value));
|
|
101
104
|
this._emitChangeEvent();
|
|
102
105
|
}
|
|
103
106
|
/**
|
|
@@ -201,9 +204,20 @@ class SelectionModel {
|
|
|
201
204
|
this._selection.forEach(value => this._unmarkSelected(value));
|
|
202
205
|
}
|
|
203
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Verifies the value assignment and throws an error if the specified value array is
|
|
209
|
+
* including multiple values while the selection model is not supporting multiple values.
|
|
210
|
+
* @param {?} values
|
|
211
|
+
* @return {?}
|
|
212
|
+
*/
|
|
213
|
+
_verifyValueAssignment(values) {
|
|
214
|
+
if (values.length > 1 && !this._isMulti) {
|
|
215
|
+
throw getMultipleValuesInSingleSelectionError();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
204
218
|
}
|
|
205
219
|
/**
|
|
206
|
-
* Describes an event emitted when the value of a
|
|
220
|
+
* Describes an event emitted when the value of a MatSelectionModel has changed.
|
|
207
221
|
* \@docs-private
|
|
208
222
|
*/
|
|
209
223
|
class SelectionChange {
|
|
@@ -216,10 +230,81 @@ class SelectionChange {
|
|
|
216
230
|
this.removed = removed;
|
|
217
231
|
}
|
|
218
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Returns an error that reports that multiple values are passed into a selection model
|
|
235
|
+
* with a single value.
|
|
236
|
+
* @return {?}
|
|
237
|
+
*/
|
|
238
|
+
function getMultipleValuesInSingleSelectionError() {
|
|
239
|
+
return Error('Cannot pass multiple values into SelectionModel with single-value mode.');
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Class to coordinate unique selection based on name.
|
|
244
|
+
* Intended to be consumed as an Angular service.
|
|
245
|
+
* This service is needed because native radio change events are only fired on the item currently
|
|
246
|
+
* being selected, and we still need to uncheck the previous selection.
|
|
247
|
+
*
|
|
248
|
+
* This service does not *store* any IDs and names because they may change at any time, so it is
|
|
249
|
+
* less error-prone if they are simply passed through when the events occur.
|
|
250
|
+
*/
|
|
251
|
+
class UniqueSelectionDispatcher {
|
|
252
|
+
constructor() {
|
|
253
|
+
this._listeners = [];
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Notify other items that selection for the given name has been set.
|
|
257
|
+
* @param {?} id ID of the item.
|
|
258
|
+
* @param {?} name Name of the item.
|
|
259
|
+
* @return {?}
|
|
260
|
+
*/
|
|
261
|
+
notify(id, name) {
|
|
262
|
+
for (let /** @type {?} */ listener of this._listeners) {
|
|
263
|
+
listener(id, name);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Listen for future changes to item selection.
|
|
268
|
+
* @param {?} listener
|
|
269
|
+
* @return {?} Function used to deregister listener
|
|
270
|
+
*/
|
|
271
|
+
listen(listener) {
|
|
272
|
+
this._listeners.push(listener);
|
|
273
|
+
return () => {
|
|
274
|
+
this._listeners = this._listeners.filter((registered) => {
|
|
275
|
+
return listener !== registered;
|
|
276
|
+
});
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
UniqueSelectionDispatcher.decorators = [
|
|
281
|
+
{ type: Injectable },
|
|
282
|
+
];
|
|
283
|
+
/**
|
|
284
|
+
* @nocollapse
|
|
285
|
+
*/
|
|
286
|
+
UniqueSelectionDispatcher.ctorParameters = () => [];
|
|
287
|
+
/**
|
|
288
|
+
* \@docs-private
|
|
289
|
+
* @param {?} parentDispatcher
|
|
290
|
+
* @return {?}
|
|
291
|
+
*/
|
|
292
|
+
function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
|
|
293
|
+
return parentDispatcher || new UniqueSelectionDispatcher();
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* \@docs-private
|
|
297
|
+
*/
|
|
298
|
+
const UNIQUE_SELECTION_DISPATCHER_PROVIDER = {
|
|
299
|
+
// If there is already a dispatcher available, use that. Otherwise, provide a new one.
|
|
300
|
+
provide: UniqueSelectionDispatcher,
|
|
301
|
+
deps: [[new Optional(), new SkipSelf(), UniqueSelectionDispatcher]],
|
|
302
|
+
useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY
|
|
303
|
+
};
|
|
219
304
|
|
|
220
305
|
/**
|
|
221
306
|
* Generated bundle index. Do not edit.
|
|
222
307
|
*/
|
|
223
308
|
|
|
224
|
-
export { DataSource, SelectionModel, SelectionChange };
|
|
309
|
+
export { UniqueSelectionDispatcher, UNIQUE_SELECTION_DISPATCHER_PROVIDER, DataSource, SelectionModel, SelectionChange, getMultipleValuesInSingleSelectionError, UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa };
|
|
225
310
|
//# sourceMappingURL=collections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sources":["../../../src/cdk/collections/index.ts","../../../src/cdk/collections/selection.ts","../../../src/cdk/collections/data-source.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {CollectionViewer,DataSource,SelectionModel,SelectionChange} from './public_api';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Subject} from 'rxjs/Subject';\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nexport class SelectionModel<T> {\n/**\n * Currently-selected values.\n */\nprivate _selection: Set<T> = new Set();\n/**\n * Keeps track of the deselected options that haven't been emitted by the change event.\n */\nprivate _deselectedToEmit: T[] = [];\n/**\n * Keeps track of the selected option that haven't been emitted by the change event.\n */\nprivate _selectedToEmit: T[] = [];\n/**\n * Cache for the array value of the selected items.\n */\nprivate _selected: T[] | null;\n/**\n * Selected value(s).\n * @return {?}\n */\nget selected(): T[] {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n\n return this._selected;\n }\n/**\n * Event emitted when the value has changed.\n */\nonChange: Subject<SelectionChange<T>> | null = this._emitChanges ? new Subject() : null;\n/**\n * @param {?=} _isMulti\n * @param {?=} initiallySelectedValues\n * @param {?=} _emitChanges\n */\nconstructor(\nprivate _isMulti = false,\n initiallySelectedValues?: T[],\nprivate _emitChanges = true) {\n\n if (initiallySelectedValues) {\n if (_isMulti) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n } else {\n this._markSelected(initiallySelectedValues[0]);\n }\n\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n/**\n * Selects a value or an array of values.\n * @param {?} value\n * @return {?}\n */\nselect(value: T): void {\n this._markSelected(value);\n this._emitChangeEvent();\n }\n/**\n * Deselects a value or an array of values.\n * @param {?} value\n * @return {?}\n */\ndeselect(value: T): void {\n this._unmarkSelected(value);\n this._emitChangeEvent();\n }\n/**\n * Toggles a value between selected and deselected.\n * @param {?} value\n * @return {?}\n */\ntoggle(value: T): void {\n this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n/**\n * Clears all of the selected values.\n * @return {?}\n */\nclear(): void {\n this._unmarkAll();\n this._emitChangeEvent();\n }\n/**\n * Determines whether a value is selected.\n * @param {?} value\n * @return {?}\n */\nisSelected(value: T): boolean {\n return this._selection.has(value);\n }\n/**\n * Determines whether the model does not have a value.\n * @return {?}\n */\nisEmpty(): boolean {\n return this._selection.size === 0;\n }\n/**\n * Determines whether the model has a value.\n * @return {?}\n */\nhasValue(): boolean {\n return !this.isEmpty();\n }\n/**\n * Sorts the selected values based on a predicate function.\n * @param {?=} predicate\n * @return {?}\n */\nsort(predicate?: (a: T, b: T) => number): void {\n if (this._isMulti && this._selected) {\n this._selected.sort(predicate);\n }\n }\n/**\n * Emits a change event and clears the records of selected and deselected values.\n * @return {?}\n */\nprivate _emitChangeEvent() {\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n let /** @type {?} */ eventData = new SelectionChange(this._selectedToEmit, this._deselectedToEmit);\n\n if (this.onChange) {\n this.onChange.next(eventData);\n }\n\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n\n this._selected = null;\n }\n/**\n * Selects a value.\n * @param {?} value\n * @return {?}\n */\nprivate _markSelected(value: T) {\n if (!this.isSelected(value)) {\n if (!this._isMulti) {\n this._unmarkAll();\n }\n\n this._selection.add(value);\n\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n/**\n * Deselects a value.\n * @param {?} value\n * @return {?}\n */\nprivate _unmarkSelected(value: T) {\n if (this.isSelected(value)) {\n this._selection.delete(value);\n\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n/**\n * Clears out the selected values.\n * @return {?}\n */\nprivate _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n}\n\nfunction SelectionModel_tsickle_Closure_declarations() {\n/**\n * Currently-selected values.\n * @type {?}\n */\nSelectionModel.prototype._selection;\n/**\n * Keeps track of the deselected options that haven't been emitted by the change event.\n * @type {?}\n */\nSelectionModel.prototype._deselectedToEmit;\n/**\n * Keeps track of the selected option that haven't been emitted by the change event.\n * @type {?}\n */\nSelectionModel.prototype._selectedToEmit;\n/**\n * Cache for the array value of the selected items.\n * @type {?}\n */\nSelectionModel.prototype._selected;\n/**\n * Event emitted when the value has changed.\n * @type {?}\n */\nSelectionModel.prototype.onChange;\n/** @type {?} */\nSelectionModel.prototype._isMulti;\n/** @type {?} */\nSelectionModel.prototype._emitChanges;\n}\n\n/**\n * Describes an event emitted when the value of a MdSelectionModel has changed.\n * \\@docs-private\n */\nexport class SelectionChange<T> {\n/**\n * @param {?=} added\n * @param {?=} removed\n */\nconstructor(public added?: T[],\npublic removed?: T[]) { }\n}\n\nfunction SelectionChange_tsickle_Closure_declarations() {\n/** @type {?} */\nSelectionChange.prototype.added;\n/** @type {?} */\nSelectionChange.prototype.removed;\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n\nimport {Observable} from 'rxjs/Observable';\nimport {CollectionViewer} from './collection-viewer';\n/**\n * @abstract\n */\nexport abstract class DataSource<T> {\n/**\n * Connects a collection viewer (such as a data-table) to this data source. Note that\n * the stream provided will be accessed during change detection and should not directly change\n * values that are bound in template views.\n * @abstract\n * @param {?} collectionViewer The component that exposes a view over the data provided by this\n * data source.\n * @return {?} Observable that emits a new value when the data changes.\n */\nconnect(collectionViewer: CollectionViewer) {}\n/**\n * Disconnects a collection viewer (such as a data-table) from this data source. Can be used\n * to perform any clean-up or tear-down operations when a view is being destroyed.\n * \n * @abstract\n * @param {?} collectionViewer The component that exposes a view over the data provided by this\n * data source.\n * @return {?}\n */\ndisconnect(collectionViewer: CollectionViewer) {}\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collections.js","sources":["../../packages/cdk/collections/data-source.js","../../packages/cdk/collections/selection.js","../../packages/cdk/collections/unique-selection-dispatcher.js","../../packages/cdk/collections/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @abstract\n */\nexport class DataSource {\n /**\n * Connects a collection viewer (such as a data-table) to this data source. Note that\n * the stream provided will be accessed during change detection and should not directly change\n * values that are bound in template views.\n * @abstract\n * @param {?} collectionViewer The component that exposes a view over the data provided by this\n * data source.\n * @return {?} Observable that emits a new value when the data changes.\n */\n connect(collectionViewer) { }\n /**\n * Disconnects a collection viewer (such as a data-table) from this data source. Can be used\n * to perform any clean-up or tear-down operations when a view is being destroyed.\n *\n * @abstract\n * @param {?} collectionViewer The component that exposes a view over the data provided by this\n * data source.\n * @return {?}\n */\n disconnect(collectionViewer) { }\n}\n//# sourceMappingURL=data-source.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Subject } from 'rxjs/Subject';\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nexport class SelectionModel {\n /**\n * @param {?=} _isMulti\n * @param {?=} initiallySelectedValues\n * @param {?=} _emitChanges\n */\n constructor(_isMulti = false, initiallySelectedValues, _emitChanges = true) {\n this._isMulti = _isMulti;\n this._emitChanges = _emitChanges;\n /**\n * Currently-selected values.\n */\n this._selection = new Set();\n /**\n * Keeps track of the deselected options that haven't been emitted by the change event.\n */\n this._deselectedToEmit = [];\n /**\n * Keeps track of the selected option that haven't been emitted by the change event.\n */\n this._selectedToEmit = [];\n /**\n * Event emitted when the value has changed.\n */\n this.onChange = this._emitChanges ? new Subject() : null;\n if (initiallySelectedValues) {\n if (_isMulti) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n }\n else {\n this._markSelected(initiallySelectedValues[0]);\n }\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n /**\n * Selected value(s).\n * @return {?}\n */\n get selected() {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n return this._selected;\n }\n /**\n * Selects a value or an array of values.\n * @param {...?} values\n * @return {?}\n */\n select(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n this._emitChangeEvent();\n }\n /**\n * Deselects a value or an array of values.\n * @param {...?} values\n * @return {?}\n */\n deselect(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n this._emitChangeEvent();\n }\n /**\n * Toggles a value between selected and deselected.\n * @param {?} value\n * @return {?}\n */\n toggle(value) {\n this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n /**\n * Clears all of the selected values.\n * @return {?}\n */\n clear() {\n this._unmarkAll();\n this._emitChangeEvent();\n }\n /**\n * Determines whether a value is selected.\n * @param {?} value\n * @return {?}\n */\n isSelected(value) {\n return this._selection.has(value);\n }\n /**\n * Determines whether the model does not have a value.\n * @return {?}\n */\n isEmpty() {\n return this._selection.size === 0;\n }\n /**\n * Determines whether the model has a value.\n * @return {?}\n */\n hasValue() {\n return !this.isEmpty();\n }\n /**\n * Sorts the selected values based on a predicate function.\n * @param {?=} predicate\n * @return {?}\n */\n sort(predicate) {\n if (this._isMulti && this._selected) {\n this._selected.sort(predicate);\n }\n }\n /**\n * Emits a change event and clears the records of selected and deselected values.\n * @return {?}\n */\n _emitChangeEvent() {\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n let /** @type {?} */ eventData = new SelectionChange(this._selectedToEmit, this._deselectedToEmit);\n if (this.onChange) {\n this.onChange.next(eventData);\n }\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n this._selected = null;\n }\n /**\n * Selects a value.\n * @param {?} value\n * @return {?}\n */\n _markSelected(value) {\n if (!this.isSelected(value)) {\n if (!this._isMulti) {\n this._unmarkAll();\n }\n this._selection.add(value);\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n /**\n * Deselects a value.\n * @param {?} value\n * @return {?}\n */\n _unmarkSelected(value) {\n if (this.isSelected(value)) {\n this._selection.delete(value);\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n /**\n * Clears out the selected values.\n * @return {?}\n */\n _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n * @param {?} values\n * @return {?}\n */\n _verifyValueAssignment(values) {\n if (values.length > 1 && !this._isMulti) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n}\nfunction SelectionModel_tsickle_Closure_declarations() {\n /**\n * Currently-selected values.\n * @type {?}\n */\n SelectionModel.prototype._selection;\n /**\n * Keeps track of the deselected options that haven't been emitted by the change event.\n * @type {?}\n */\n SelectionModel.prototype._deselectedToEmit;\n /**\n * Keeps track of the selected option that haven't been emitted by the change event.\n * @type {?}\n */\n SelectionModel.prototype._selectedToEmit;\n /**\n * Cache for the array value of the selected items.\n * @type {?}\n */\n SelectionModel.prototype._selected;\n /**\n * Event emitted when the value has changed.\n * @type {?}\n */\n SelectionModel.prototype.onChange;\n /** @type {?} */\n SelectionModel.prototype._isMulti;\n /** @type {?} */\n SelectionModel.prototype._emitChanges;\n}\n/**\n * Describes an event emitted when the value of a MatSelectionModel has changed.\n * \\@docs-private\n */\nexport class SelectionChange {\n /**\n * @param {?=} added\n * @param {?=} removed\n */\n constructor(added, removed) {\n this.added = added;\n this.removed = removed;\n }\n}\nfunction SelectionChange_tsickle_Closure_declarations() {\n /** @type {?} */\n SelectionChange.prototype.added;\n /** @type {?} */\n SelectionChange.prototype.removed;\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @return {?}\n */\nexport function getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n//# sourceMappingURL=selection.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable, Optional, SkipSelf } from '@angular/core';\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nexport class UniqueSelectionDispatcher {\n constructor() {\n this._listeners = [];\n }\n /**\n * Notify other items that selection for the given name has been set.\n * @param {?} id ID of the item.\n * @param {?} name Name of the item.\n * @return {?}\n */\n notify(id, name) {\n for (let /** @type {?} */ listener of this._listeners) {\n listener(id, name);\n }\n }\n /**\n * Listen for future changes to item selection.\n * @param {?} listener\n * @return {?} Function used to deregister listener\n */\n listen(listener) {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered) => {\n return listener !== registered;\n });\n };\n }\n}\nUniqueSelectionDispatcher.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nUniqueSelectionDispatcher.ctorParameters = () => [];\nfunction UniqueSelectionDispatcher_tsickle_Closure_declarations() {\n /** @type {?} */\n UniqueSelectionDispatcher.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n UniqueSelectionDispatcher.ctorParameters;\n /** @type {?} */\n UniqueSelectionDispatcher.prototype._listeners;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @return {?}\n */\nexport function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {\n return parentDispatcher || new UniqueSelectionDispatcher();\n}\n/**\n * \\@docs-private\n */\nexport const UNIQUE_SELECTION_DISPATCHER_PROVIDER = {\n // If there is already a dispatcher available, use that. Otherwise, provide a new one.\n provide: UniqueSelectionDispatcher,\n deps: [[new Optional(), new SkipSelf(), UniqueSelectionDispatcher]],\n useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=unique-selection-dispatcher.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { UniqueSelectionDispatcher, UNIQUE_SELECTION_DISPATCHER_PROVIDER, DataSource, SelectionModel, SelectionChange, getMultipleValuesInSingleSelectionError } from './public-api';\nexport { UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa } from './unique-selection-dispatcher';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}
|
package/esm2015/keycodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycodes.js","sources":["
|
|
1
|
+
{"version":3,"file":"keycodes.js","sources":["../../packages/cdk/keycodes/keycodes.js","../../packages/cdk/keycodes/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport const UP_ARROW = 38;\nexport const /** @type {?} */ DOWN_ARROW = 40;\nexport const /** @type {?} */ RIGHT_ARROW = 39;\nexport const /** @type {?} */ LEFT_ARROW = 37;\nexport const /** @type {?} */ PAGE_UP = 33;\nexport const /** @type {?} */ PAGE_DOWN = 34;\nexport const /** @type {?} */ HOME = 36;\nexport const /** @type {?} */ END = 35;\nexport const /** @type {?} */ ENTER = 13;\nexport const /** @type {?} */ SPACE = 32;\nexport const /** @type {?} */ TAB = 9;\nexport const /** @type {?} */ ESCAPE = 27;\nexport const /** @type {?} */ BACKSPACE = 8;\nexport const /** @type {?} */ DELETE = 46;\nexport const /** @type {?} */ A = 65;\nexport const /** @type {?} */ Z = 90;\nexport const /** @type {?} */ ZERO = 48;\nexport const /** @type {?} */ NINE = 91;\n//# sourceMappingURL=keycodes.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, PAGE_UP, PAGE_DOWN, HOME, END, ENTER, SPACE, TAB, ESCAPE, BACKSPACE, DELETE, A, Z, ZERO, NINE } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;AAOO,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,AAAO,MAAuB,UAAU,GAAG,EAAE,CAAC;AAC9C,AAAO,MAAuB,WAAW,GAAG,EAAE,CAAC;AAC/C,AAAO,MAAuB,UAAU,GAAG,EAAE,CAAC;AAC9C,AAAO,MAAuB,OAAO,GAAG,EAAE,CAAC;AAC3C,AAAO,MAAuB,SAAS,GAAG,EAAE,CAAC;AAC7C,AAAO,MAAuB,IAAI,GAAG,EAAE,CAAC;AACxC,AAAO,MAAuB,GAAG,GAAG,EAAE,CAAC;AACvC,AAAO,MAAuB,KAAK,GAAG,EAAE,CAAC;AACzC,AAAO,MAAuB,KAAK,GAAG,EAAE,CAAC;AACzC,AAAO,MAAuB,GAAG,GAAG,CAAC,CAAC;AACtC,AAAO,MAAuB,MAAM,GAAG,EAAE,CAAC;AAC1C,AAAO,MAAuB,SAAS,GAAG,CAAC,CAAC;AAC5C,AAAO,MAAuB,MAAM,GAAG,EAAE,CAAC;AAC1C,AAAO,MAAuB,CAAC,GAAG,EAAE,CAAC;AACrC,AAAO,MAAuB,CAAC,GAAG,EAAE,CAAC;AACrC,AAAO,MAAuB,IAAI,GAAG,EAAE,CAAC;AACxC,AAAO,MAAuB,IAAI,GAAG,EAAE,CAAC,AACxC;;ACzBA;;GAEG,AACH,AAA4K,AAC5K;;"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { Injectable, NgModule, NgZone } from '@angular/core';
|
|
9
|
+
import { Platform, PlatformModule } from '@angular/cdk/platform';
|
|
10
|
+
import { Subject } from 'rxjs/Subject';
|
|
11
|
+
import { RxChain, map, startWith, takeUntil } from '@angular/cdk/rxjs';
|
|
12
|
+
import { coerceArray } from '@angular/cdk/coercion';
|
|
13
|
+
import { combineLatest } from 'rxjs/observable/combineLatest';
|
|
14
|
+
import { fromEventPattern } from 'rxjs/observable/fromEventPattern';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Global registry for all dynamically-created, injected style tags.
|
|
18
|
+
*/
|
|
19
|
+
const styleElementForWebkitCompatibility = new Map();
|
|
20
|
+
/**
|
|
21
|
+
* A utility for calling matchMedia queries.
|
|
22
|
+
*/
|
|
23
|
+
class MediaMatcher {
|
|
24
|
+
/**
|
|
25
|
+
* @param {?} platform
|
|
26
|
+
*/
|
|
27
|
+
constructor(platform) {
|
|
28
|
+
this.platform = platform;
|
|
29
|
+
this._matchMedia = this.platform.isBrowser ?
|
|
30
|
+
// matchMedia is bound to the window scope intentionally as it is an illegal invocation to
|
|
31
|
+
// call it from a different scope.
|
|
32
|
+
window.matchMedia.bind(window) :
|
|
33
|
+
noopMatchMedia;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Confirms the layout engine will trigger for the selector query provided and returns the
|
|
37
|
+
* MediaQueryList for the query provided.
|
|
38
|
+
* @param {?} query
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
matchMedia(query) {
|
|
42
|
+
if (this.platform.WEBKIT) {
|
|
43
|
+
createEmptyStyleRule(query);
|
|
44
|
+
}
|
|
45
|
+
return this._matchMedia(query);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
MediaMatcher.decorators = [
|
|
49
|
+
{ type: Injectable },
|
|
50
|
+
];
|
|
51
|
+
/**
|
|
52
|
+
* @nocollapse
|
|
53
|
+
*/
|
|
54
|
+
MediaMatcher.ctorParameters = () => [
|
|
55
|
+
{ type: Platform, },
|
|
56
|
+
];
|
|
57
|
+
/**
|
|
58
|
+
* For Webkit engines that only trigger the MediaQueryListListener when there is at least one CSS
|
|
59
|
+
* selector for the respective media query.
|
|
60
|
+
* @param {?} query
|
|
61
|
+
* @return {?}
|
|
62
|
+
*/
|
|
63
|
+
function createEmptyStyleRule(query) {
|
|
64
|
+
if (!styleElementForWebkitCompatibility.has(query)) {
|
|
65
|
+
try {
|
|
66
|
+
const /** @type {?} */ style = document.createElement('style');
|
|
67
|
+
style.setAttribute('type', 'text/css');
|
|
68
|
+
if (!style.sheet) {
|
|
69
|
+
const /** @type {?} */ cssText = `@media ${query} {.fx-query-test{ }}`;
|
|
70
|
+
style.appendChild(document.createTextNode(cssText));
|
|
71
|
+
}
|
|
72
|
+
document.getElementsByTagName('head')[0].appendChild(style);
|
|
73
|
+
// Store in private global registry
|
|
74
|
+
styleElementForWebkitCompatibility.set(query, style);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
console.error(e);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* No-op matchMedia replacement for non-browser platforms.
|
|
83
|
+
* @param {?} query
|
|
84
|
+
* @return {?}
|
|
85
|
+
*/
|
|
86
|
+
function noopMatchMedia(query) {
|
|
87
|
+
return {
|
|
88
|
+
matches: query === 'all' || query === '',
|
|
89
|
+
media: query,
|
|
90
|
+
addListener: () => { },
|
|
91
|
+
removeListener: () => { }
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Utility for checking the matching state of \@media queries.
|
|
97
|
+
*/
|
|
98
|
+
class BreakpointObserver {
|
|
99
|
+
/**
|
|
100
|
+
* @param {?} mediaMatcher
|
|
101
|
+
* @param {?} zone
|
|
102
|
+
*/
|
|
103
|
+
constructor(mediaMatcher, zone) {
|
|
104
|
+
this.mediaMatcher = mediaMatcher;
|
|
105
|
+
this.zone = zone;
|
|
106
|
+
/**
|
|
107
|
+
* A map of all media queries currently being listened for.
|
|
108
|
+
*/
|
|
109
|
+
this._queries = new Map();
|
|
110
|
+
/**
|
|
111
|
+
* A subject for all other observables to takeUntil based on.
|
|
112
|
+
*/
|
|
113
|
+
this._destroySubject = new Subject();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Completes the active subject, signalling to all other observables to complete.
|
|
117
|
+
* @return {?}
|
|
118
|
+
*/
|
|
119
|
+
ngOnDestroy() {
|
|
120
|
+
this._destroySubject.next();
|
|
121
|
+
this._destroySubject.complete();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Whether the query currently is matched.
|
|
125
|
+
* @param {?} value
|
|
126
|
+
* @return {?}
|
|
127
|
+
*/
|
|
128
|
+
isMatched(value) {
|
|
129
|
+
let /** @type {?} */ queries = coerceArray(value);
|
|
130
|
+
return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Gets an observable of results for the given queries that will emit new results for any changes
|
|
134
|
+
* in matching of the given queries.
|
|
135
|
+
* @param {?} value
|
|
136
|
+
* @return {?}
|
|
137
|
+
*/
|
|
138
|
+
observe(value) {
|
|
139
|
+
let /** @type {?} */ queries = coerceArray(value);
|
|
140
|
+
let /** @type {?} */ observables = queries.map(query => this._registerQuery(query).observable);
|
|
141
|
+
return combineLatest(observables, (a, b) => {
|
|
142
|
+
return {
|
|
143
|
+
matches: !!((a && a.matches) || (b && b.matches)),
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Registers a specific query to be listened for.
|
|
149
|
+
* @param {?} query
|
|
150
|
+
* @return {?}
|
|
151
|
+
*/
|
|
152
|
+
_registerQuery(query) {
|
|
153
|
+
// Only set up a new MediaQueryList if it is not already being listened for.
|
|
154
|
+
if (this._queries.has(query)) {
|
|
155
|
+
return ((this._queries.get(query)));
|
|
156
|
+
}
|
|
157
|
+
let /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);
|
|
158
|
+
// Create callback for match changes and add it is as a listener.
|
|
159
|
+
let /** @type {?} */ queryObservable = RxChain.from(fromEventPattern(
|
|
160
|
+
// Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed
|
|
161
|
+
// back into the zone because matchMedia is only included in Zone.js by loading the
|
|
162
|
+
// webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not
|
|
163
|
+
// have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js
|
|
164
|
+
// patches it.
|
|
165
|
+
(listener) => {
|
|
166
|
+
mql.addListener((e) => this.zone.run(() => listener(e)));
|
|
167
|
+
}, (listener) => {
|
|
168
|
+
mql.removeListener((e) => this.zone.run(() => listener(e)));
|
|
169
|
+
}))
|
|
170
|
+
.call(takeUntil, this._destroySubject)
|
|
171
|
+
.call(startWith, mql)
|
|
172
|
+
.call(map, (nextMql) => ({ matches: nextMql.matches }))
|
|
173
|
+
.result();
|
|
174
|
+
// Add the MediaQueryList to the set of queries.
|
|
175
|
+
let /** @type {?} */ output = { observable: queryObservable, mql: mql };
|
|
176
|
+
this._queries.set(query, output);
|
|
177
|
+
return output;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
BreakpointObserver.decorators = [
|
|
181
|
+
{ type: Injectable },
|
|
182
|
+
];
|
|
183
|
+
/**
|
|
184
|
+
* @nocollapse
|
|
185
|
+
*/
|
|
186
|
+
BreakpointObserver.ctorParameters = () => [
|
|
187
|
+
{ type: MediaMatcher, },
|
|
188
|
+
{ type: NgZone, },
|
|
189
|
+
];
|
|
190
|
+
|
|
191
|
+
// PascalCase is being used as Breakpoints is used like an enum.
|
|
192
|
+
// tslint:disable-next-line:variable-name
|
|
193
|
+
const Breakpoints = {
|
|
194
|
+
Handset: '(max-width: 599px) and (orientation: portrait), ' +
|
|
195
|
+
'(max-width: 959px) and (orientation: landscape)',
|
|
196
|
+
Tablet: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait), ' +
|
|
197
|
+
'(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',
|
|
198
|
+
Web: '(min-width: 840px) and (orientation: portrait), ' +
|
|
199
|
+
'(min-width: 1280px) and (orientation: landscape)',
|
|
200
|
+
HandsetPortrait: '(max-width: 599px) and (orientation: portrait)',
|
|
201
|
+
TabletPortrait: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait)',
|
|
202
|
+
WebPortrait: '(min-width: 840px) and (orientation: portrait)',
|
|
203
|
+
HandsetLandscape: '(max-width: 959px) and (orientation: landscape)',
|
|
204
|
+
TabletLandscape: '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',
|
|
205
|
+
WebLandscape: '(min-width: 1280px) and (orientation: landscape)',
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
class LayoutModule {
|
|
209
|
+
}
|
|
210
|
+
LayoutModule.decorators = [
|
|
211
|
+
{ type: NgModule, args: [{
|
|
212
|
+
providers: [BreakpointObserver, MediaMatcher],
|
|
213
|
+
imports: [PlatformModule],
|
|
214
|
+
},] },
|
|
215
|
+
];
|
|
216
|
+
/**
|
|
217
|
+
* @nocollapse
|
|
218
|
+
*/
|
|
219
|
+
LayoutModule.ctorParameters = () => [];
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Generated bundle index. Do not edit.
|
|
223
|
+
*/
|
|
224
|
+
|
|
225
|
+
export { LayoutModule, BreakpointObserver, Breakpoints, MediaMatcher };
|
|
226
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../packages/cdk/layout/media-matcher.js","../../packages/cdk/layout/breakpoints-observer.js","../../packages/cdk/layout/breakpoints.js","../../packages/cdk/layout/public-api.js","../../packages/cdk/layout/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\n/**\n * Global registry for all dynamically-created, injected style tags.\n */\nconst styleElementForWebkitCompatibility = new Map();\n/**\n * A utility for calling matchMedia queries.\n */\nexport class MediaMatcher {\n /**\n * @param {?} platform\n */\n constructor(platform) {\n this.platform = platform;\n this._matchMedia = this.platform.isBrowser ?\n // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window) :\n noopMatchMedia;\n }\n /**\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n * @param {?} query\n * @return {?}\n */\n matchMedia(query) {\n if (this.platform.WEBKIT) {\n createEmptyStyleRule(query);\n }\n return this._matchMedia(query);\n }\n}\nMediaMatcher.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nMediaMatcher.ctorParameters = () => [\n { type: Platform, },\n];\nfunction MediaMatcher_tsickle_Closure_declarations() {\n /** @type {?} */\n MediaMatcher.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MediaMatcher.ctorParameters;\n /**\n * The internal matchMedia method to return back a MediaQueryList like object.\n * @type {?}\n */\n MediaMatcher.prototype._matchMedia;\n /** @type {?} */\n MediaMatcher.prototype.platform;\n}\n/**\n * For Webkit engines that only trigger the MediaQueryListListener when there is at least one CSS\n * selector for the respective media query.\n * @param {?} query\n * @return {?}\n */\nfunction createEmptyStyleRule(query) {\n if (!styleElementForWebkitCompatibility.has(query)) {\n try {\n const /** @type {?} */ style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n if (!style.sheet) {\n const /** @type {?} */ cssText = `@media ${query} {.fx-query-test{ }}`;\n style.appendChild(document.createTextNode(cssText));\n }\n document.getElementsByTagName('head')[0].appendChild(style);\n // Store in private global registry\n styleElementForWebkitCompatibility.set(query, style);\n }\n catch (e) {\n console.error(e);\n }\n }\n}\n/**\n * No-op matchMedia replacement for non-browser platforms.\n * @param {?} query\n * @return {?}\n */\nfunction noopMatchMedia(query) {\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => { },\n removeListener: () => { }\n };\n}\n//# sourceMappingURL=media-matcher.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable, NgZone } from '@angular/core';\nimport { MediaMatcher } from './media-matcher';\nimport { Subject } from 'rxjs/Subject';\nimport { RxChain, map, startWith, takeUntil } from '@angular/cdk/rxjs';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { combineLatest } from 'rxjs/observable/combineLatest';\nimport { fromEventPattern } from 'rxjs/observable/fromEventPattern';\n/**\n * Utility for checking the matching state of \\@media queries.\n */\nexport class BreakpointObserver {\n /**\n * @param {?} mediaMatcher\n * @param {?} zone\n */\n constructor(mediaMatcher, zone) {\n this.mediaMatcher = mediaMatcher;\n this.zone = zone;\n /**\n * A map of all media queries currently being listened for.\n */\n this._queries = new Map();\n /**\n * A subject for all other observables to takeUntil based on.\n */\n this._destroySubject = new Subject();\n }\n /**\n * Completes the active subject, signalling to all other observables to complete.\n * @return {?}\n */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n /**\n * Whether the query currently is matched.\n * @param {?} value\n * @return {?}\n */\n isMatched(value) {\n let /** @type {?} */ queries = coerceArray(value);\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param {?} value\n * @return {?}\n */\n observe(value) {\n let /** @type {?} */ queries = coerceArray(value);\n let /** @type {?} */ observables = queries.map(query => this._registerQuery(query).observable);\n return combineLatest(observables, (a, b) => {\n return {\n matches: !!((a && a.matches) || (b && b.matches)),\n };\n });\n }\n /**\n * Registers a specific query to be listened for.\n * @param {?} query\n * @return {?}\n */\n _registerQuery(query) {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return ((this._queries.get(query)));\n }\n let /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n let /** @type {?} */ queryObservable = RxChain.from(fromEventPattern(\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n (listener) => {\n mql.addListener((e) => this.zone.run(() => listener(e)));\n }, (listener) => {\n mql.removeListener((e) => this.zone.run(() => listener(e)));\n }))\n .call(takeUntil, this._destroySubject)\n .call(startWith, mql)\n .call(map, (nextMql) => ({ matches: nextMql.matches }))\n .result();\n // Add the MediaQueryList to the set of queries.\n let /** @type {?} */ output = { observable: queryObservable, mql: mql };\n this._queries.set(query, output);\n return output;\n }\n}\nBreakpointObserver.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nBreakpointObserver.ctorParameters = () => [\n { type: MediaMatcher, },\n { type: NgZone, },\n];\nfunction BreakpointObserver_tsickle_Closure_declarations() {\n /** @type {?} */\n BreakpointObserver.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n BreakpointObserver.ctorParameters;\n /**\n * A map of all media queries currently being listened for.\n * @type {?}\n */\n BreakpointObserver.prototype._queries;\n /**\n * A subject for all other observables to takeUntil based on.\n * @type {?}\n */\n BreakpointObserver.prototype._destroySubject;\n /** @type {?} */\n BreakpointObserver.prototype.mediaMatcher;\n /** @type {?} */\n BreakpointObserver.prototype.zone;\n}\n//# sourceMappingURL=breakpoints-observer.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nexport const /** @type {?} */ Breakpoints = {\n Handset: '(max-width: 599px) and (orientation: portrait), ' +\n '(max-width: 959px) and (orientation: landscape)',\n Tablet: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait), ' +\n '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',\n Web: '(min-width: 840px) and (orientation: portrait), ' +\n '(min-width: 1280px) and (orientation: landscape)',\n HandsetPortrait: '(max-width: 599px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n HandsetLandscape: '(max-width: 959px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)',\n};\n//# sourceMappingURL=breakpoints.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { BreakpointObserver } from './breakpoints-observer';\nimport { MediaMatcher } from './media-matcher';\nexport class LayoutModule {\n}\nLayoutModule.decorators = [\n { type: NgModule, args: [{\n providers: [BreakpointObserver, MediaMatcher],\n imports: [PlatformModule],\n },] },\n];\n/**\n * @nocollapse\n */\nLayoutModule.ctorParameters = () => [];\nfunction LayoutModule_tsickle_Closure_declarations() {\n /** @type {?} */\n LayoutModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n LayoutModule.ctorParameters;\n}\nexport { BreakpointObserver } from './breakpoints-observer';\nexport { Breakpoints } from './breakpoints';\nexport { MediaMatcher } from './media-matcher';\n//# sourceMappingURL=public-api.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { LayoutModule, BreakpointObserver, Breakpoints, MediaMatcher } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}
|
package/esm2015/observers.js
CHANGED
|
@@ -13,7 +13,7 @@ import { RxChain, debounceTime } from '@angular/cdk/rxjs';
|
|
|
13
13
|
* Factory that creates a new MutationObserver and allows us to stub it out in unit tests.
|
|
14
14
|
* \@docs-private
|
|
15
15
|
*/
|
|
16
|
-
class
|
|
16
|
+
class MatMutationObserverFactory {
|
|
17
17
|
/**
|
|
18
18
|
* @param {?} callback
|
|
19
19
|
* @return {?}
|
|
@@ -22,13 +22,13 @@ class MdMutationObserverFactory {
|
|
|
22
22
|
return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
MatMutationObserverFactory.decorators = [
|
|
26
26
|
{ type: Injectable },
|
|
27
27
|
];
|
|
28
28
|
/**
|
|
29
29
|
* @nocollapse
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
MatMutationObserverFactory.ctorParameters = () => [];
|
|
32
32
|
/**
|
|
33
33
|
* Directive that triggers a callback whenever the content of
|
|
34
34
|
* its associated element has changed.
|
|
@@ -91,14 +91,15 @@ class ObserveContent {
|
|
|
91
91
|
}
|
|
92
92
|
ObserveContent.decorators = [
|
|
93
93
|
{ type: Directive, args: [{
|
|
94
|
-
selector: '[cdkObserveContent]'
|
|
94
|
+
selector: '[cdkObserveContent]',
|
|
95
|
+
exportAs: 'cdkObserveContent',
|
|
95
96
|
},] },
|
|
96
97
|
];
|
|
97
98
|
/**
|
|
98
99
|
* @nocollapse
|
|
99
100
|
*/
|
|
100
101
|
ObserveContent.ctorParameters = () => [
|
|
101
|
-
{ type:
|
|
102
|
+
{ type: MatMutationObserverFactory, },
|
|
102
103
|
{ type: ElementRef, },
|
|
103
104
|
{ type: NgZone, },
|
|
104
105
|
];
|
|
@@ -112,7 +113,7 @@ ObserversModule.decorators = [
|
|
|
112
113
|
{ type: NgModule, args: [{
|
|
113
114
|
exports: [ObserveContent],
|
|
114
115
|
declarations: [ObserveContent],
|
|
115
|
-
providers: [
|
|
116
|
+
providers: [MatMutationObserverFactory]
|
|
116
117
|
},] },
|
|
117
118
|
];
|
|
118
119
|
/**
|
|
@@ -124,5 +125,5 @@ ObserversModule.ctorParameters = () => [];
|
|
|
124
125
|
* Generated bundle index. Do not edit.
|
|
125
126
|
*/
|
|
126
127
|
|
|
127
|
-
export {
|
|
128
|
+
export { MatMutationObserverFactory, ObserveContent, ObserversModule };
|
|
128
129
|
//# sourceMappingURL=observers.js.map
|