@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
@@ -0,0 +1,234 @@
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
+ var styleElementForWebkitCompatibility = new Map();
20
+ /**
21
+ * A utility for calling matchMedia queries.
22
+ */
23
+ var MediaMatcher = (function () {
24
+ /**
25
+ * @param {?} platform
26
+ */
27
+ function MediaMatcher(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
+ MediaMatcher.prototype.matchMedia = function (query) {
42
+ if (this.platform.WEBKIT) {
43
+ createEmptyStyleRule(query);
44
+ }
45
+ return this._matchMedia(query);
46
+ };
47
+ MediaMatcher.decorators = [
48
+ { type: Injectable },
49
+ ];
50
+ /**
51
+ * @nocollapse
52
+ */
53
+ MediaMatcher.ctorParameters = function () { return [
54
+ { type: Platform, },
55
+ ]; };
56
+ return MediaMatcher;
57
+ }());
58
+ /**
59
+ * For Webkit engines that only trigger the MediaQueryListListener when there is at least one CSS
60
+ * selector for the respective media query.
61
+ * @param {?} query
62
+ * @return {?}
63
+ */
64
+ function createEmptyStyleRule(query) {
65
+ if (!styleElementForWebkitCompatibility.has(query)) {
66
+ try {
67
+ var /** @type {?} */ style = document.createElement('style');
68
+ style.setAttribute('type', 'text/css');
69
+ if (!style.sheet) {
70
+ var /** @type {?} */ cssText = "@media " + query + " {.fx-query-test{ }}";
71
+ style.appendChild(document.createTextNode(cssText));
72
+ }
73
+ document.getElementsByTagName('head')[0].appendChild(style);
74
+ // Store in private global registry
75
+ styleElementForWebkitCompatibility.set(query, style);
76
+ }
77
+ catch (e) {
78
+ console.error(e);
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * No-op matchMedia replacement for non-browser platforms.
84
+ * @param {?} query
85
+ * @return {?}
86
+ */
87
+ function noopMatchMedia(query) {
88
+ return {
89
+ matches: query === 'all' || query === '',
90
+ media: query,
91
+ addListener: function () { },
92
+ removeListener: function () { }
93
+ };
94
+ }
95
+
96
+ /**
97
+ * Utility for checking the matching state of \@media queries.
98
+ */
99
+ var BreakpointObserver = (function () {
100
+ /**
101
+ * @param {?} mediaMatcher
102
+ * @param {?} zone
103
+ */
104
+ function BreakpointObserver(mediaMatcher, zone) {
105
+ this.mediaMatcher = mediaMatcher;
106
+ this.zone = zone;
107
+ /**
108
+ * A map of all media queries currently being listened for.
109
+ */
110
+ this._queries = new Map();
111
+ /**
112
+ * A subject for all other observables to takeUntil based on.
113
+ */
114
+ this._destroySubject = new Subject();
115
+ }
116
+ /**
117
+ * Completes the active subject, signalling to all other observables to complete.
118
+ * @return {?}
119
+ */
120
+ BreakpointObserver.prototype.ngOnDestroy = function () {
121
+ this._destroySubject.next();
122
+ this._destroySubject.complete();
123
+ };
124
+ /**
125
+ * Whether the query currently is matched.
126
+ * @param {?} value
127
+ * @return {?}
128
+ */
129
+ BreakpointObserver.prototype.isMatched = function (value) {
130
+ var _this = this;
131
+ var /** @type {?} */ queries = coerceArray(value);
132
+ return queries.some(function (mediaQuery) { return _this._registerQuery(mediaQuery).mql.matches; });
133
+ };
134
+ /**
135
+ * Gets an observable of results for the given queries that will emit new results for any changes
136
+ * in matching of the given queries.
137
+ * @param {?} value
138
+ * @return {?}
139
+ */
140
+ BreakpointObserver.prototype.observe = function (value) {
141
+ var _this = this;
142
+ var /** @type {?} */ queries = coerceArray(value);
143
+ var /** @type {?} */ observables = queries.map(function (query) { return _this._registerQuery(query).observable; });
144
+ return combineLatest(observables, function (a, b) {
145
+ return {
146
+ matches: !!((a && a.matches) || (b && b.matches)),
147
+ };
148
+ });
149
+ };
150
+ /**
151
+ * Registers a specific query to be listened for.
152
+ * @param {?} query
153
+ * @return {?}
154
+ */
155
+ BreakpointObserver.prototype._registerQuery = function (query) {
156
+ var _this = this;
157
+ // Only set up a new MediaQueryList if it is not already being listened for.
158
+ if (this._queries.has(query)) {
159
+ return ((this._queries.get(query)));
160
+ }
161
+ var /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);
162
+ // Create callback for match changes and add it is as a listener.
163
+ var /** @type {?} */ queryObservable = RxChain.from(fromEventPattern(
164
+ // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed
165
+ // back into the zone because matchMedia is only included in Zone.js by loading the
166
+ // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not
167
+ // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js
168
+ // patches it.
169
+ function (listener) {
170
+ mql.addListener(function (e) { return _this.zone.run(function () { return listener(e); }); });
171
+ }, function (listener) {
172
+ mql.removeListener(function (e) { return _this.zone.run(function () { return listener(e); }); });
173
+ }))
174
+ .call(takeUntil, this._destroySubject)
175
+ .call(startWith, mql)
176
+ .call(map, function (nextMql) { return ({ matches: nextMql.matches }); })
177
+ .result();
178
+ // Add the MediaQueryList to the set of queries.
179
+ var /** @type {?} */ output = { observable: queryObservable, mql: mql };
180
+ this._queries.set(query, output);
181
+ return output;
182
+ };
183
+ BreakpointObserver.decorators = [
184
+ { type: Injectable },
185
+ ];
186
+ /**
187
+ * @nocollapse
188
+ */
189
+ BreakpointObserver.ctorParameters = function () { return [
190
+ { type: MediaMatcher, },
191
+ { type: NgZone, },
192
+ ]; };
193
+ return BreakpointObserver;
194
+ }());
195
+
196
+ // PascalCase is being used as Breakpoints is used like an enum.
197
+ // tslint:disable-next-line:variable-name
198
+ var Breakpoints = {
199
+ Handset: '(max-width: 599px) and (orientation: portrait), ' +
200
+ '(max-width: 959px) and (orientation: landscape)',
201
+ Tablet: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait), ' +
202
+ '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',
203
+ Web: '(min-width: 840px) and (orientation: portrait), ' +
204
+ '(min-width: 1280px) and (orientation: landscape)',
205
+ HandsetPortrait: '(max-width: 599px) and (orientation: portrait)',
206
+ TabletPortrait: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait)',
207
+ WebPortrait: '(min-width: 840px) and (orientation: portrait)',
208
+ HandsetLandscape: '(max-width: 959px) and (orientation: landscape)',
209
+ TabletLandscape: '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',
210
+ WebLandscape: '(min-width: 1280px) and (orientation: landscape)',
211
+ };
212
+
213
+ var LayoutModule = (function () {
214
+ function LayoutModule() {
215
+ }
216
+ LayoutModule.decorators = [
217
+ { type: NgModule, args: [{
218
+ providers: [BreakpointObserver, MediaMatcher],
219
+ imports: [PlatformModule],
220
+ },] },
221
+ ];
222
+ /**
223
+ * @nocollapse
224
+ */
225
+ LayoutModule.ctorParameters = function () { return []; };
226
+ return LayoutModule;
227
+ }());
228
+
229
+ /**
230
+ * Generated bundle index. Do not edit.
231
+ */
232
+
233
+ export { LayoutModule, BreakpointObserver, Breakpoints, MediaMatcher };
234
+ //# sourceMappingURL=layout.es5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.es5.js","sources":["../../packages/cdk/esm5/layout/media-matcher.js","../../packages/cdk/esm5/layout/breakpoints-observer.js","../../packages/cdk/esm5/layout/breakpoints.js","../../packages/cdk/esm5/layout/public-api.js","../../packages/cdk/esm5/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 */\nvar styleElementForWebkitCompatibility = new Map();\n/**\n * A utility for calling matchMedia queries.\n */\nvar MediaMatcher = (function () {\n /**\n * @param {?} platform\n */\n function MediaMatcher(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 MediaMatcher.prototype.matchMedia = function (query) {\n if (this.platform.WEBKIT) {\n createEmptyStyleRule(query);\n }\n return this._matchMedia(query);\n };\n MediaMatcher.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n MediaMatcher.ctorParameters = function () { return [\n { type: Platform, },\n ]; };\n return MediaMatcher;\n}());\nexport { MediaMatcher };\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 var /** @type {?} */ style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n if (!style.sheet) {\n var /** @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: function () { },\n removeListener: function () { }\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 */\nvar BreakpointObserver = (function () {\n /**\n * @param {?} mediaMatcher\n * @param {?} zone\n */\n function BreakpointObserver(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 BreakpointObserver.prototype.ngOnDestroy = function () {\n this._destroySubject.next();\n this._destroySubject.complete();\n };\n /**\n * Whether the query currently is matched.\n * @param {?} value\n * @return {?}\n */\n BreakpointObserver.prototype.isMatched = function (value) {\n var _this = this;\n var /** @type {?} */ queries = coerceArray(value);\n return queries.some(function (mediaQuery) { return _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 BreakpointObserver.prototype.observe = function (value) {\n var _this = this;\n var /** @type {?} */ queries = coerceArray(value);\n var /** @type {?} */ observables = queries.map(function (query) { return _this._registerQuery(query).observable; });\n return combineLatest(observables, function (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 BreakpointObserver.prototype._registerQuery = function (query) {\n var _this = this;\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 var /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n var /** @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 function (listener) {\n mql.addListener(function (e) { return _this.zone.run(function () { return listener(e); }); });\n }, function (listener) {\n mql.removeListener(function (e) { return _this.zone.run(function () { return listener(e); }); });\n }))\n .call(takeUntil, this._destroySubject)\n .call(startWith, mql)\n .call(map, function (nextMql) { return ({ matches: nextMql.matches }); })\n .result();\n // Add the MediaQueryList to the set of queries.\n var /** @type {?} */ output = { observable: queryObservable, mql: mql };\n this._queries.set(query, output);\n return output;\n };\n BreakpointObserver.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n BreakpointObserver.ctorParameters = function () { return [\n { type: MediaMatcher, },\n { type: NgZone, },\n ]; };\n return BreakpointObserver;\n}());\nexport { BreakpointObserver };\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 var /** @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';\nvar LayoutModule = (function () {\n function LayoutModule() {\n }\n LayoutModule.decorators = [\n { type: NgModule, args: [{\n providers: [BreakpointObserver, MediaMatcher],\n imports: [PlatformModule],\n },] },\n ];\n /**\n * @nocollapse\n */\n LayoutModule.ctorParameters = function () { return []; };\n return LayoutModule;\n}());\nexport { LayoutModule };\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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"}
@@ -8,29 +8,30 @@
8
8
  import { Directive, ElementRef, EventEmitter, Injectable, Input, NgModule, NgZone, Output } from '@angular/core';
9
9
  import { Subject } from 'rxjs/Subject';
10
10
  import { RxChain, debounceTime } from '@angular/cdk/rxjs';
11
+
11
12
  /**
12
13
  * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.
13
14
  * \@docs-private
14
15
  */
15
- var MdMutationObserverFactory = (function () {
16
- function MdMutationObserverFactory() {
16
+ var MatMutationObserverFactory = (function () {
17
+ function MatMutationObserverFactory() {
17
18
  }
18
19
  /**
19
20
  * @param {?} callback
20
21
  * @return {?}
21
22
  */
22
- MdMutationObserverFactory.prototype.create = function (callback) {
23
+ MatMutationObserverFactory.prototype.create = function (callback) {
23
24
  return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
24
25
  };
25
- return MdMutationObserverFactory;
26
+ MatMutationObserverFactory.decorators = [
27
+ { type: Injectable },
28
+ ];
29
+ /**
30
+ * @nocollapse
31
+ */
32
+ MatMutationObserverFactory.ctorParameters = function () { return []; };
33
+ return MatMutationObserverFactory;
26
34
  }());
27
- MdMutationObserverFactory.decorators = [
28
- { type: Injectable },
29
- ];
30
- /**
31
- * @nocollapse
32
- */
33
- MdMutationObserverFactory.ctorParameters = function () { return []; };
34
35
  /**
35
36
  * Directive that triggers a callback whenever the content of
36
37
  * its associated element has changed.
@@ -91,43 +92,46 @@ var ObserveContent = (function () {
91
92
  }
92
93
  this._debouncer.complete();
93
94
  };
95
+ ObserveContent.decorators = [
96
+ { type: Directive, args: [{
97
+ selector: '[cdkObserveContent]',
98
+ exportAs: 'cdkObserveContent',
99
+ },] },
100
+ ];
101
+ /**
102
+ * @nocollapse
103
+ */
104
+ ObserveContent.ctorParameters = function () { return [
105
+ { type: MatMutationObserverFactory, },
106
+ { type: ElementRef, },
107
+ { type: NgZone, },
108
+ ]; };
109
+ ObserveContent.propDecorators = {
110
+ 'event': [{ type: Output, args: ['cdkObserveContent',] },],
111
+ 'debounce': [{ type: Input },],
112
+ };
94
113
  return ObserveContent;
95
114
  }());
96
- ObserveContent.decorators = [
97
- { type: Directive, args: [{
98
- selector: '[cdkObserveContent]'
99
- },] },
100
- ];
101
- /**
102
- * @nocollapse
103
- */
104
- ObserveContent.ctorParameters = function () { return [
105
- { type: MdMutationObserverFactory, },
106
- { type: ElementRef, },
107
- { type: NgZone, },
108
- ]; };
109
- ObserveContent.propDecorators = {
110
- 'event': [{ type: Output, args: ['cdkObserveContent',] },],
111
- 'debounce': [{ type: Input },],
112
- };
113
115
  var ObserversModule = (function () {
114
116
  function ObserversModule() {
115
117
  }
118
+ ObserversModule.decorators = [
119
+ { type: NgModule, args: [{
120
+ exports: [ObserveContent],
121
+ declarations: [ObserveContent],
122
+ providers: [MatMutationObserverFactory]
123
+ },] },
124
+ ];
125
+ /**
126
+ * @nocollapse
127
+ */
128
+ ObserversModule.ctorParameters = function () { return []; };
116
129
  return ObserversModule;
117
130
  }());
118
- ObserversModule.decorators = [
119
- { type: NgModule, args: [{
120
- exports: [ObserveContent],
121
- declarations: [ObserveContent],
122
- providers: [MdMutationObserverFactory]
123
- },] },
124
- ];
125
- /**
126
- * @nocollapse
127
- */
128
- ObserversModule.ctorParameters = function () { return []; };
131
+
129
132
  /**
130
133
  * Generated bundle index. Do not edit.
131
134
  */
132
- export { MdMutationObserverFactory, ObserveContent, ObserversModule };
135
+
136
+ export { MatMutationObserverFactory, ObserveContent, ObserversModule };
133
137
  //# sourceMappingURL=observers.es5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observers.es5.js","sources":["../../../src/cdk/observers/index.ts","../../../src/cdk/observers/observe-content.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {MdMutationObserverFactory,ObserveContent,ObserversModule} 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 {\n Directive,\n ElementRef,\n NgModule,\n Output,\n Input,\n EventEmitter,\n OnDestroy,\n AfterContentInit,\n Injectable,\n NgZone,\n} from '@angular/core';\nimport {Subject} from 'rxjs/Subject';\nimport {RxChain, debounceTime} from '@angular/cdk/rxjs';\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * \\@docs-private\n */\nexport class MdMutationObserverFactory {\n/**\n * @param {?} callback\n * @return {?}\n */\ncreate(callback): MutationObserver | null {\n return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction MdMutationObserverFactory_tsickle_Closure_declarations() {\n/** @type {?} */\nMdMutationObserverFactory.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nMdMutationObserverFactory.ctorParameters;\n}\n\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nexport class ObserveContent implements AfterContentInit, OnDestroy {\nprivate _observer: MutationObserver | null;\n/**\n * Event emitted for each change in the element's content.\n */\nevent = new EventEmitter<MutationRecord[]>();\n/**\n * Used for debouncing the emitted values to the observeContent event.\n */\nprivate _debouncer = new Subject<MutationRecord[]>();\n/**\n * Debounce interval for emitting the changes.\n */\ndebounce: number;\n/**\n * @param {?} _mutationObserverFactory\n * @param {?} _elementRef\n * @param {?} _ngZone\n */\nconstructor(\nprivate _mutationObserverFactory: MdMutationObserverFactory,\nprivate _elementRef: ElementRef,\nprivate _ngZone: NgZone) { }\n/**\n * @return {?}\n */\nngAfterContentInit() {\n if (this.debounce > 0) {\n this._ngZone.runOutsideAngular(() => {\n RxChain.from(this._debouncer)\n .call(debounceTime, this.debounce)\n .subscribe((mutations: MutationRecord[]) => this.event.emit(mutations));\n });\n } else {\n this._debouncer.subscribe(mutations => this.event.emit(mutations));\n }\n\n this._observer = this._ngZone.runOutsideAngular(() => {\n return this._mutationObserverFactory.create((mutations: MutationRecord[]) => {\n this._debouncer.next(mutations);\n });\n });\n\n if (this._observer) {\n this._observer.observe(this._elementRef.nativeElement, {\n characterData: true,\n childList: true,\n subtree: true\n });\n }\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n if (this._observer) {\n this._observer.disconnect();\n }\n\n this._debouncer.complete();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[cdkObserveContent]'\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: MdMutationObserverFactory, },\n{type: ElementRef, },\n{type: NgZone, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'event': [{ type: Output, args: ['cdkObserveContent', ] },],\n'debounce': [{ type: Input },],\n};\n}\n\nfunction ObserveContent_tsickle_Closure_declarations() {\n/** @type {?} */\nObserveContent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nObserveContent.ctorParameters;\n/** @type {?} */\nObserveContent.propDecorators;\n/** @type {?} */\nObserveContent.prototype._observer;\n/**\n * Event emitted for each change in the element's content.\n * @type {?}\n */\nObserveContent.prototype.event;\n/**\n * Used for debouncing the emitted values to the observeContent event.\n * @type {?}\n */\nObserveContent.prototype._debouncer;\n/**\n * Debounce interval for emitting the changes.\n * @type {?}\n */\nObserveContent.prototype.debounce;\n/** @type {?} */\nObserveContent.prototype._mutationObserverFactory;\n/** @type {?} */\nObserveContent.prototype._elementRef;\n/** @type {?} */\nObserveContent.prototype._ngZone;\n}\n\nexport class ObserversModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n exports: [ObserveContent],\n declarations: [ObserveContent],\n providers: [MdMutationObserverFactory]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction ObserversModule_tsickle_Closure_declarations() {\n/** @type {?} */\nObserversModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nObserversModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observers.es5.js","sources":["../../packages/cdk/esm5/observers/observe-content.js","../../packages/cdk/esm5/observers/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 { Directive, ElementRef, NgModule, Output, Input, EventEmitter, Injectable, NgZone, } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { RxChain, debounceTime } from '@angular/cdk/rxjs';\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * \\@docs-private\n */\nvar MatMutationObserverFactory = (function () {\n function MatMutationObserverFactory() {\n }\n /**\n * @param {?} callback\n * @return {?}\n */\n MatMutationObserverFactory.prototype.create = function (callback) {\n return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n };\n MatMutationObserverFactory.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n MatMutationObserverFactory.ctorParameters = function () { return []; };\n return MatMutationObserverFactory;\n}());\nexport { MatMutationObserverFactory };\nfunction MatMutationObserverFactory_tsickle_Closure_declarations() {\n /** @type {?} */\n MatMutationObserverFactory.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatMutationObserverFactory.ctorParameters;\n}\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nvar ObserveContent = (function () {\n /**\n * @param {?} _mutationObserverFactory\n * @param {?} _elementRef\n * @param {?} _ngZone\n */\n function ObserveContent(_mutationObserverFactory, _elementRef, _ngZone) {\n this._mutationObserverFactory = _mutationObserverFactory;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /**\n * Event emitted for each change in the element's content.\n */\n this.event = new EventEmitter();\n /**\n * Used for debouncing the emitted values to the observeContent event.\n */\n this._debouncer = new Subject();\n }\n /**\n * @return {?}\n */\n ObserveContent.prototype.ngAfterContentInit = function () {\n var _this = this;\n if (this.debounce > 0) {\n this._ngZone.runOutsideAngular(function () {\n RxChain.from(_this._debouncer)\n .call(debounceTime, _this.debounce)\n .subscribe(function (mutations) { return _this.event.emit(mutations); });\n });\n }\n else {\n this._debouncer.subscribe(function (mutations) { return _this.event.emit(mutations); });\n }\n this._observer = this._ngZone.runOutsideAngular(function () {\n return _this._mutationObserverFactory.create(function (mutations) {\n _this._debouncer.next(mutations);\n });\n });\n if (this._observer) {\n this._observer.observe(this._elementRef.nativeElement, {\n characterData: true,\n childList: true,\n subtree: true\n });\n }\n };\n /**\n * @return {?}\n */\n ObserveContent.prototype.ngOnDestroy = function () {\n if (this._observer) {\n this._observer.disconnect();\n }\n this._debouncer.complete();\n };\n ObserveContent.decorators = [\n { type: Directive, args: [{\n selector: '[cdkObserveContent]',\n exportAs: 'cdkObserveContent',\n },] },\n ];\n /**\n * @nocollapse\n */\n ObserveContent.ctorParameters = function () { return [\n { type: MatMutationObserverFactory, },\n { type: ElementRef, },\n { type: NgZone, },\n ]; };\n ObserveContent.propDecorators = {\n 'event': [{ type: Output, args: ['cdkObserveContent',] },],\n 'debounce': [{ type: Input },],\n };\n return ObserveContent;\n}());\nexport { ObserveContent };\nfunction ObserveContent_tsickle_Closure_declarations() {\n /** @type {?} */\n ObserveContent.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n ObserveContent.ctorParameters;\n /** @type {?} */\n ObserveContent.propDecorators;\n /** @type {?} */\n ObserveContent.prototype._observer;\n /**\n * Event emitted for each change in the element's content.\n * @type {?}\n */\n ObserveContent.prototype.event;\n /**\n * Used for debouncing the emitted values to the observeContent event.\n * @type {?}\n */\n ObserveContent.prototype._debouncer;\n /**\n * Debounce interval for emitting the changes.\n * @type {?}\n */\n ObserveContent.prototype.debounce;\n /** @type {?} */\n ObserveContent.prototype._mutationObserverFactory;\n /** @type {?} */\n ObserveContent.prototype._elementRef;\n /** @type {?} */\n ObserveContent.prototype._ngZone;\n}\nvar ObserversModule = (function () {\n function ObserversModule() {\n }\n ObserversModule.decorators = [\n { type: NgModule, args: [{\n exports: [ObserveContent],\n declarations: [ObserveContent],\n providers: [MatMutationObserverFactory]\n },] },\n ];\n /**\n * @nocollapse\n */\n ObserversModule.ctorParameters = function () { return []; };\n return ObserversModule;\n}());\nexport { ObserversModule };\nfunction ObserversModule_tsickle_Closure_declarations() {\n /** @type {?} */\n ObserversModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n ObserversModule.ctorParameters;\n}\n//# sourceMappingURL=observe-content.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatMutationObserverFactory, ObserveContent, ObserversModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}