@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.
Files changed (306) hide show
  1. package/_a11y.scss +23 -0
  2. package/_overlay.scss +93 -0
  3. package/a11y/index.metadata.json +2 -1
  4. package/a11y/typings/a11y-module.d.ts +2 -0
  5. package/a11y/typings/focus-monitor.d.ts +1 -1
  6. package/a11y/typings/index.d.ts +1 -1
  7. package/a11y/typings/index.metadata.json +1 -1
  8. package/a11y/typings/{public_api.d.ts → public-api.d.ts} +8 -2
  9. package/a11y-prebuilt.css +1 -0
  10. package/a11y.metadata.json +2 -1
  11. package/bidi/index.metadata.json +2 -1
  12. package/bidi/typings/bidi-module.d.ts +2 -0
  13. package/bidi/typings/index.d.ts +1 -1
  14. package/bidi/typings/index.metadata.json +1 -1
  15. package/bidi/typings/public-api.d.ts +10 -0
  16. package/bidi.metadata.json +2 -1
  17. package/bundles/cdk-a11y.umd.js +1368 -1357
  18. package/bundles/cdk-a11y.umd.js.map +1 -1
  19. package/bundles/cdk-a11y.umd.min.js +2 -2
  20. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  21. package/bundles/cdk-bidi.umd.js +42 -40
  22. package/bundles/cdk-bidi.umd.js.map +1 -1
  23. package/bundles/cdk-bidi.umd.min.js +2 -2
  24. package/bundles/cdk-bidi.umd.min.js.map +1 -1
  25. package/bundles/cdk-coercion.umd.js +12 -0
  26. package/bundles/cdk-coercion.umd.js.map +1 -1
  27. package/bundles/cdk-coercion.umd.min.js +2 -2
  28. package/bundles/cdk-coercion.umd.min.js.map +1 -1
  29. package/bundles/cdk-collections.umd.js +113 -11
  30. package/bundles/cdk-collections.umd.js.map +1 -1
  31. package/bundles/cdk-collections.umd.min.js +2 -2
  32. package/bundles/cdk-collections.umd.min.js.map +1 -1
  33. package/bundles/cdk-keycodes.umd.js.map +1 -1
  34. package/bundles/cdk-keycodes.umd.min.js +1 -1
  35. package/bundles/cdk-keycodes.umd.min.js.map +1 -1
  36. package/bundles/cdk-layout.umd.js +235 -0
  37. package/bundles/cdk-layout.umd.js.map +1 -0
  38. package/bundles/cdk-layout.umd.min.js +9 -0
  39. package/bundles/cdk-layout.umd.min.js.map +1 -0
  40. package/bundles/cdk-observers.umd.js +41 -40
  41. package/bundles/cdk-observers.umd.js.map +1 -1
  42. package/bundles/cdk-observers.umd.min.js +2 -2
  43. package/bundles/cdk-observers.umd.min.js.map +1 -1
  44. package/bundles/cdk-overlay.umd.js +306 -265
  45. package/bundles/cdk-overlay.umd.js.map +1 -1
  46. package/bundles/cdk-overlay.umd.min.js +2 -2
  47. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  48. package/bundles/cdk-platform.umd.js +19 -17
  49. package/bundles/cdk-platform.umd.js.map +1 -1
  50. package/bundles/cdk-platform.umd.min.js +2 -2
  51. package/bundles/cdk-platform.umd.min.js.map +1 -1
  52. package/bundles/cdk-portal.umd.js +71 -37
  53. package/bundles/cdk-portal.umd.js.map +1 -1
  54. package/bundles/cdk-portal.umd.min.js +2 -2
  55. package/bundles/cdk-portal.umd.min.js.map +1 -1
  56. package/bundles/cdk-rxjs.umd.js +13 -4
  57. package/bundles/cdk-rxjs.umd.js.map +1 -1
  58. package/bundles/cdk-rxjs.umd.min.js +2 -2
  59. package/bundles/cdk-rxjs.umd.min.js.map +1 -1
  60. package/bundles/cdk-scrolling.umd.js +89 -54
  61. package/bundles/cdk-scrolling.umd.js.map +1 -1
  62. package/bundles/cdk-scrolling.umd.min.js +2 -2
  63. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  64. package/bundles/cdk-stepper.umd.js +115 -90
  65. package/bundles/cdk-stepper.umd.js.map +1 -1
  66. package/bundles/cdk-stepper.umd.min.js +2 -2
  67. package/bundles/cdk-stepper.umd.min.js.map +1 -1
  68. package/bundles/cdk-table.umd.js +261 -218
  69. package/bundles/cdk-table.umd.js.map +1 -1
  70. package/bundles/cdk-table.umd.min.js +2 -2
  71. package/bundles/cdk-table.umd.min.js.map +1 -1
  72. package/bundles/cdk.umd.js +1 -1
  73. package/bundles/cdk.umd.js.map +1 -1
  74. package/bundles/cdk.umd.min.js +2 -2
  75. package/bundles/cdk.umd.min.js.map +1 -1
  76. package/cdk.metadata.json +2 -1
  77. package/coercion/index.metadata.json +2 -1
  78. package/coercion/typings/array.d.ts +9 -0
  79. package/coercion/typings/index.d.ts +1 -1
  80. package/coercion/typings/index.metadata.json +1 -1
  81. package/{typings/coercion/public_api.d.ts → coercion/typings/public-api.d.ts} +1 -0
  82. package/coercion.metadata.json +2 -1
  83. package/collections/index.metadata.json +2 -1
  84. package/collections/typings/index.d.ts +2 -1
  85. package/collections/typings/index.metadata.json +1 -1
  86. package/{typings/collections/public_api.d.ts → collections/typings/public-api.d.ts} +1 -0
  87. package/collections/typings/selection.d.ts +13 -3
  88. package/collections/typings/unique-selection-dispatcher.d.ts +40 -0
  89. package/collections.metadata.json +2 -1
  90. package/esm2015/a11y.js +1252 -1250
  91. package/esm2015/a11y.js.map +1 -1
  92. package/esm2015/bidi.js +1 -1
  93. package/esm2015/bidi.js.map +1 -1
  94. package/esm2015/cdk.js +1 -1
  95. package/esm2015/cdk.js.map +1 -1
  96. package/esm2015/coercion.js +11 -1
  97. package/esm2015/coercion.js.map +1 -1
  98. package/esm2015/collections.js +93 -8
  99. package/esm2015/collections.js.map +1 -1
  100. package/esm2015/keycodes.js.map +1 -1
  101. package/esm2015/layout.js +226 -0
  102. package/esm2015/layout.js.map +1 -0
  103. package/esm2015/observers.js +8 -7
  104. package/esm2015/observers.js.map +1 -1
  105. package/esm2015/overlay.js +157 -136
  106. package/esm2015/overlay.js.map +1 -1
  107. package/esm2015/platform.js +1 -1
  108. package/esm2015/platform.js.map +1 -1
  109. package/esm2015/portal.js +30 -1
  110. package/esm2015/portal.js.map +1 -1
  111. package/esm2015/rxjs.js +5 -1
  112. package/esm2015/rxjs.js.map +1 -1
  113. package/esm2015/scrolling.js +39 -8
  114. package/esm2015/scrolling.js.map +1 -1
  115. package/esm2015/stepper.js +27 -5
  116. package/esm2015/stepper.js.map +1 -1
  117. package/esm2015/table.js +68 -29
  118. package/esm2015/table.js.map +1 -1
  119. package/esm5/a11y.es5.js +1372 -1357
  120. package/esm5/a11y.es5.js.map +1 -1
  121. package/esm5/bidi.es5.js +45 -40
  122. package/esm5/bidi.es5.js.map +1 -1
  123. package/esm5/cdk.es5.js +4 -1
  124. package/esm5/cdk.es5.js.map +1 -1
  125. package/esm5/coercion.es5.js +14 -1
  126. package/esm5/coercion.es5.js.map +1 -1
  127. package/esm5/collections.es5.js +110 -8
  128. package/esm5/collections.es5.js.map +1 -1
  129. package/esm5/keycodes.es5.js +2 -0
  130. package/esm5/keycodes.es5.js.map +1 -1
  131. package/esm5/layout.es5.js +234 -0
  132. package/esm5/layout.es5.js.map +1 -0
  133. package/esm5/observers.es5.js +44 -40
  134. package/esm5/observers.es5.js.map +1 -1
  135. package/esm5/overlay.es5.js +304 -259
  136. package/esm5/overlay.es5.js.map +1 -1
  137. package/esm5/platform.es5.js +22 -17
  138. package/esm5/platform.es5.js.map +1 -1
  139. package/esm5/portal.es5.js +81 -44
  140. package/esm5/portal.es5.js.map +1 -1
  141. package/esm5/rxjs.es5.js +12 -1
  142. package/esm5/rxjs.es5.js.map +1 -1
  143. package/esm5/scrolling.es5.js +89 -51
  144. package/esm5/scrolling.es5.js.map +1 -1
  145. package/esm5/stepper.es5.js +119 -91
  146. package/esm5/stepper.es5.js.map +1 -1
  147. package/esm5/table.es5.js +265 -218
  148. package/esm5/table.es5.js.map +1 -1
  149. package/keycodes/index.metadata.json +2 -1
  150. package/keycodes/typings/index.d.ts +1 -1
  151. package/keycodes/typings/{public_api.d.ts → public-api.d.ts} +0 -0
  152. package/keycodes.metadata.json +2 -1
  153. package/layout/index.d.ts +8 -0
  154. package/layout/index.metadata.json +12 -0
  155. package/layout/package.json +7 -0
  156. package/layout/typings/breakpoints-observer.d.ts +37 -0
  157. package/layout/typings/breakpoints.d.ts +18 -0
  158. package/layout/typings/index.d.ts +4 -0
  159. package/layout/typings/index.metadata.json +1 -0
  160. package/layout/typings/media-matcher.d.ts +15 -0
  161. package/layout/typings/public-api.d.ts +5 -0
  162. package/layout.d.ts +8 -0
  163. package/layout.metadata.json +12 -0
  164. package/observers/index.metadata.json +2 -1
  165. package/observers/typings/index.d.ts +1 -1
  166. package/observers/typings/index.metadata.json +1 -1
  167. package/observers/typings/observe-content.d.ts +3 -3
  168. package/observers/typings/{public_api.d.ts → public-api.d.ts} +0 -0
  169. package/observers.metadata.json +2 -1
  170. package/overlay/index.metadata.json +2 -1
  171. package/overlay/typings/index.d.ts +2 -2
  172. package/overlay/typings/index.metadata.json +1 -1
  173. package/overlay/typings/overlay-config.d.ts +1 -1
  174. package/overlay/typings/overlay-directives.d.ts +3 -3
  175. package/overlay/typings/overlay-module.d.ts +11 -0
  176. package/overlay/typings/overlay-ref.d.ts +6 -6
  177. package/overlay/typings/overlay.d.ts +2 -2
  178. package/overlay/typings/position/connected-position-strategy.d.ts +5 -0
  179. package/overlay/typings/position/position-strategy.d.ts +2 -0
  180. package/overlay/typings/{public_api.d.ts → public-api.d.ts} +1 -4
  181. package/overlay/typings/scroll/scroll-strategy.d.ts +1 -1
  182. package/overlay-prebuilt.css +1 -0
  183. package/overlay.metadata.json +2 -1
  184. package/package.json +3 -3
  185. package/platform/index.metadata.json +2 -1
  186. package/platform/typings/index.d.ts +1 -1
  187. package/platform/typings/index.metadata.json +1 -1
  188. package/platform/typings/platform-module.d.ts +2 -0
  189. package/platform/typings/public-api.d.ts +10 -0
  190. package/platform.metadata.json +2 -1
  191. package/portal/index.metadata.json +2 -1
  192. package/portal/typings/index.d.ts +1 -1
  193. package/portal/typings/index.metadata.json +1 -1
  194. package/portal/typings/{public_api.d.ts → public-api.d.ts} +1 -0
  195. package/portal.metadata.json +2 -1
  196. package/rxjs/index.metadata.json +2 -1
  197. package/rxjs/typings/index.d.ts +1 -1
  198. package/rxjs/typings/index.metadata.json +1 -1
  199. package/rxjs/typings/{public_api.d.ts → public-api.d.ts} +0 -0
  200. package/rxjs/typings/rx-operators.d.ts +7 -0
  201. package/rxjs.metadata.json +2 -1
  202. package/scrolling/index.metadata.json +2 -1
  203. package/scrolling/typings/index.d.ts +1 -1
  204. package/scrolling/typings/index.metadata.json +1 -1
  205. package/scrolling/typings/public-api.d.ts +11 -0
  206. package/scrolling/typings/scrolling-module.d.ts +2 -0
  207. package/scrolling/typings/viewport-ruler.d.ts +20 -6
  208. package/scrolling.metadata.json +2 -1
  209. package/stepper/index.metadata.json +2 -1
  210. package/stepper/typings/index.d.ts +1 -1
  211. package/stepper/typings/index.metadata.json +1 -1
  212. package/stepper/typings/public-api.d.ts +11 -0
  213. package/stepper/typings/stepper-module.d.ts +2 -0
  214. package/stepper/typings/stepper.d.ts +8 -4
  215. package/stepper.metadata.json +2 -1
  216. package/table/index.metadata.json +2 -1
  217. package/table/typings/index.d.ts +1 -1
  218. package/table/typings/index.metadata.json +1 -1
  219. package/table/typings/public-api.d.ts +13 -0
  220. package/table/typings/row.d.ts +11 -3
  221. package/table/typings/table-errors.d.ts +10 -0
  222. package/table/typings/table-module.d.ts +2 -0
  223. package/table/typings/table.d.ts +17 -8
  224. package/table.metadata.json +2 -1
  225. package/typings/a11y/a11y-module.d.ts +2 -0
  226. package/typings/a11y/focus-monitor.d.ts +1 -1
  227. package/typings/a11y/index.d.ts +1 -1
  228. package/typings/a11y/index.metadata.json +1 -1
  229. package/typings/a11y/{public_api.d.ts → public-api.d.ts} +8 -2
  230. package/typings/bidi/bidi-module.d.ts +2 -0
  231. package/typings/bidi/index.d.ts +1 -1
  232. package/typings/bidi/index.metadata.json +1 -1
  233. package/typings/bidi/public-api.d.ts +10 -0
  234. package/typings/coercion/array.d.ts +9 -0
  235. package/typings/coercion/index.d.ts +1 -1
  236. package/typings/coercion/index.metadata.json +1 -1
  237. package/{coercion/typings/public_api.d.ts → typings/coercion/public-api.d.ts} +1 -0
  238. package/typings/collections/index.d.ts +2 -1
  239. package/typings/collections/index.metadata.json +1 -1
  240. package/{collections/typings/public_api.d.ts → typings/collections/public-api.d.ts} +1 -0
  241. package/typings/collections/selection.d.ts +13 -3
  242. package/typings/collections/unique-selection-dispatcher.d.ts +40 -0
  243. package/typings/index.d.ts +1 -1
  244. package/typings/index.metadata.json +1 -1
  245. package/typings/keycodes/index.d.ts +1 -1
  246. package/typings/keycodes/{public_api.d.ts → public-api.d.ts} +0 -0
  247. package/typings/layout/breakpoints-observer.d.ts +37 -0
  248. package/typings/layout/breakpoints.d.ts +18 -0
  249. package/typings/layout/index.d.ts +4 -0
  250. package/typings/layout/index.metadata.json +1 -0
  251. package/typings/layout/media-matcher.d.ts +15 -0
  252. package/typings/layout/public-api.d.ts +5 -0
  253. package/typings/observers/index.d.ts +1 -1
  254. package/typings/observers/index.metadata.json +1 -1
  255. package/typings/observers/observe-content.d.ts +3 -3
  256. package/typings/observers/{public_api.d.ts → public-api.d.ts} +0 -0
  257. package/typings/overlay/index.d.ts +2 -2
  258. package/typings/overlay/index.metadata.json +1 -1
  259. package/typings/overlay/overlay-config.d.ts +1 -1
  260. package/typings/overlay/overlay-directives.d.ts +3 -3
  261. package/typings/overlay/overlay-module.d.ts +11 -0
  262. package/typings/overlay/overlay-ref.d.ts +6 -6
  263. package/typings/overlay/overlay.d.ts +2 -2
  264. package/typings/overlay/position/connected-position-strategy.d.ts +5 -0
  265. package/typings/overlay/position/position-strategy.d.ts +2 -0
  266. package/typings/overlay/{public_api.d.ts → public-api.d.ts} +1 -4
  267. package/typings/overlay/scroll/scroll-strategy.d.ts +1 -1
  268. package/typings/platform/index.d.ts +1 -1
  269. package/typings/platform/index.metadata.json +1 -1
  270. package/typings/platform/platform-module.d.ts +2 -0
  271. package/typings/platform/public-api.d.ts +10 -0
  272. package/typings/portal/index.d.ts +1 -1
  273. package/typings/portal/index.metadata.json +1 -1
  274. package/typings/portal/{public_api.d.ts → public-api.d.ts} +1 -0
  275. package/typings/{public_api.d.ts → public-api.d.ts} +0 -0
  276. package/typings/rxjs/index.d.ts +1 -1
  277. package/typings/rxjs/index.metadata.json +1 -1
  278. package/typings/rxjs/{public_api.d.ts → public-api.d.ts} +0 -0
  279. package/typings/rxjs/rx-operators.d.ts +7 -0
  280. package/typings/scrolling/index.d.ts +1 -1
  281. package/typings/scrolling/index.metadata.json +1 -1
  282. package/typings/scrolling/public-api.d.ts +11 -0
  283. package/typings/scrolling/scrolling-module.d.ts +2 -0
  284. package/typings/scrolling/viewport-ruler.d.ts +20 -6
  285. package/typings/stepper/index.d.ts +1 -1
  286. package/typings/stepper/index.metadata.json +1 -1
  287. package/typings/stepper/public-api.d.ts +11 -0
  288. package/typings/stepper/stepper-module.d.ts +2 -0
  289. package/typings/stepper/stepper.d.ts +8 -4
  290. package/typings/table/index.d.ts +1 -1
  291. package/typings/table/index.metadata.json +1 -1
  292. package/typings/table/public-api.d.ts +13 -0
  293. package/typings/table/row.d.ts +11 -3
  294. package/typings/table/table-errors.d.ts +10 -0
  295. package/typings/table/table-module.d.ts +2 -0
  296. package/typings/table/table.d.ts +17 -8
  297. package/bidi/typings/public_api.d.ts +0 -4
  298. package/platform/typings/public_api.d.ts +0 -4
  299. package/scrolling/typings/public_api.d.ts +0 -5
  300. package/stepper/typings/public_api.d.ts +0 -5
  301. package/table/typings/public_api.d.ts +0 -7
  302. package/typings/bidi/public_api.d.ts +0 -4
  303. package/typings/platform/public_api.d.ts +0 -4
  304. package/typings/scrolling/public_api.d.ts +0 -5
  305. package/typings/stepper/public_api.d.ts +0 -5
  306. 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('2.0.0-beta.11');
13
+ const VERSION = new Version('0.0.0-PLACEHOLDER');
14
14
 
15
15
  /**
16
16
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.js","sources":["../../src/cdk/index.ts","../../src/cdk/version.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {VERSION} 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 {Version} from '@angular/core';\n/**\n * Current version of the Angular Component Development Kit.\n */\nexport const VERSION = new Version('2.0.0-beta.11');\n"],"names":[],"mappings":";;;;;;;;;ACUA;;;AAGA,AAFC,MAAA,OAAA,GAAA,IAAA,OAAA,CAAA,mBAAA,CAAA,CAAA;;ADXD;;GAEG,AAEH,AAAqC;;"}
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;;"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"coercion.js","sources":["../../../src/cdk/coercion/index.ts","../../../src/cdk/coercion/number-property.ts","../../../src/cdk/coercion/boolean-property.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {coerceBooleanProperty,coerceNumberProperty} from './public_api';\n","\n/**\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: any, 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 as any)))) || isNaN(Number(value)) ? fallbackValue : Number(value);\n}\n","\n/**\n * Coerces a data-bound value (typically a string) to a boolean.\n * @param {?} value\n * @return {?}\n */\nexport function coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n}\n"],"names":[],"mappings":";;;;;;;AECA;;;;;AAKA,AAAA,SAAA,qBAAA,CAGC,KAAA,EAHD;IACE,OAGO,KAAA,IAAS,IAAA,IAAQ,CAH1B,EAG0B,KAAI,CAH9B,CAGmC,KAAM,OAAA,CAAQ;CAFhD;;ADPD;;;;;;AAMA,AAAA,SAAA,oBAAA,CAEC,KAAA,EAAA,aAAA,GAAA,CAAA,EAFD;;;;IAIE,OAEO,KAAA,CAAM,UAAC,mBAAU,KAAS,EAAI,CAAC,IAAI,KAAA,CAAM,MAAC,CAAM,KAAC,CAAK,CAAC,GAAG,aAAA,GAAgB,MAAA,CAAO,KAAC,CAAK,CAAC;CADhG;;ADZD;;GAEG,AAEH,AAAwE;;"}
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;;"}
@@ -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 {?} value
88
+ * @param {...?} values
88
89
  * @return {?}
89
90
  */
90
- select(value) {
91
- this._markSelected(value);
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 {?} value
98
+ * @param {...?} values
97
99
  * @return {?}
98
100
  */
99
- deselect(value) {
100
- this._unmarkSelected(value);
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 MdSelectionModel has changed.
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"keycodes.js","sources":["../../../src/cdk/keycodes/index.ts","../../../src/cdk/keycodes/keycodes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\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","\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 */\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"],"names":[],"mappings":";;;;;;;ACQC,MAAA,QAAA,GAAA,EAAA,CAAA;AACD,AAAO,MAAM,UAAA,GAAa,EAAA,CAAG;AAC7B,AAAO,MAAM,WAAA,GAAc,EAAA,CAAG;AAC9B,AAAO,MAAM,UAAA,GAAa,EAAA,CAAG;AAC7B,AAAO,MAAM,OAAA,GAAU,EAAA,CAAG;AAC1B,AAAO,MAAM,SAAA,GAAY,EAAA,CAAG;AAC5B,AAAO,MAAM,IAAA,GAAO,EAAA,CAAG;AACvB,AAAO,MAAM,GAAA,GAAM,EAAA,CAAG;AACtB,AAAO,MAAM,KAAA,GAAQ,EAAA,CAAG;AACxB,AAAO,MAAM,KAAA,GAAQ,EAAA,CAAG;AACxB,AAAO,MAAM,GAAA,GAAM,CAAA,CAAE;AACrB,AAAO,MAAM,MAAA,GAAS,EAAA,CAAG;AACzB,AAAO,MAAM,SAAA,GAAY,CAAA,CAAE;AAC3B,AAAO,MAAM,MAAA,GAAS,EAAA,CAAG;AACzB,AAAO,MAAM,CAAA,GAAI,EAAA,CAAG;AACpB,AAAO,MAAM,CAAA,GAAI,EAAA,CAAG;AACpB,AAAO,MAAM,IAAA,GAAO,EAAA,CAAG;AACvB,AAAO,MAAM,IAAA,GAAO,EAAA,CAAG;;ADzBvB;;GAEG,AAEH,AAAyJ;;"}
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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"}
@@ -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 MdMutationObserverFactory {
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
- MdMutationObserverFactory.decorators = [
25
+ MatMutationObserverFactory.decorators = [
26
26
  { type: Injectable },
27
27
  ];
28
28
  /**
29
29
  * @nocollapse
30
30
  */
31
- MdMutationObserverFactory.ctorParameters = () => [];
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: MdMutationObserverFactory, },
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: [MdMutationObserverFactory]
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 { MdMutationObserverFactory, ObserveContent, ObserversModule };
128
+ export { MatMutationObserverFactory, ObserveContent, ObserversModule };
128
129
  //# sourceMappingURL=observers.js.map