@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
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.es5.js","sources":["../../../src/cdk/overlay/index.ts","../../../src/cdk/overlay/public_api.ts","../../../src/cdk/overlay/fullscreen-overlay-container.ts","../../../src/cdk/overlay/overlay-directives.ts","../../../src/cdk/overlay/overlay.ts","../../../src/cdk/overlay/scroll/scroll-strategy-options.ts","../../../src/cdk/overlay/scroll/reposition-scroll-strategy.ts","../../../src/cdk/overlay/scroll/block-scroll-strategy.ts","../../../src/cdk/overlay/scroll/close-scroll-strategy.ts","../../../src/cdk/overlay/scroll/scroll-strategy.ts","../../../src/cdk/overlay/overlay-container.ts","../../../src/cdk/overlay/position/overlay-position-builder.ts","../../../src/cdk/overlay/position/global-position-strategy.ts","../../../src/cdk/overlay/position/connected-position-strategy.ts","../../../src/cdk/overlay/position/scroll-clip.ts","../../../src/cdk/overlay/position/connected-position.ts","../../../src/cdk/overlay/overlay-ref.ts","../../../src/cdk/overlay/overlay-config.ts","../../../src/cdk/overlay/scroll/noop-scroll-strategy.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {OVERLAY_PROVIDERS,OverlayModule,Overlay,OverlayContainer,FullscreenOverlayContainer,OverlayRef,ConnectedOverlayDirective,OverlayOrigin,ViewportRuler,ComponentType,PositionStrategy,GlobalPositionStrategy,ConnectedPositionStrategy,VIEWPORT_RULER_PROVIDER,OverlayConfig,HorizontalConnectionPos,VerticalConnectionPos,OriginConnectionPosition,OverlayConnectionPosition,ConnectionPositionPair,ScrollingVisibility,ConnectedOverlayPositionChange,Scrollable,ScrollDispatcher,ScrollStrategy,ScrollStrategyOptions,RepositionScrollStrategy,CloseScrollStrategy,NoopScrollStrategy,BlockScrollStrategy} from './public_api';\n\nexport {OVERLAY_CONTAINER_PROVIDER as ɵb,OVERLAY_CONTAINER_PROVIDER_FACTORY as ɵa} from './overlay-container';\nexport {MD_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵc,MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵe,MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵd} from './overlay-directives';\nexport {OverlayPositionBuilder as ɵf} from './position/overlay-position-builder';","/**\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\nimport {NgModule, Provider} from '@angular/core';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {Overlay} from './overlay';\nimport {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';\nimport {\n ConnectedOverlayDirective,\n MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,\n OverlayOrigin,\n} from './overlay-directives';\nimport {OverlayPositionBuilder} from './position/overlay-position-builder';\nimport {OVERLAY_CONTAINER_PROVIDER} from './overlay-container';\nimport {ScrollStrategyOptions} from './scroll/scroll-strategy-options';\n\n\nexport const /** @type {?} */ OVERLAY_PROVIDERS: Provider[] = [\n Overlay,\n OverlayPositionBuilder,\n VIEWPORT_RULER_PROVIDER,\n OVERLAY_CONTAINER_PROVIDER,\n MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,\n];\nexport class OverlayModule {static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [PortalModule, ScrollDispatchModule],\n exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],\n declarations: [ConnectedOverlayDirective, OverlayOrigin],\n providers: [OVERLAY_PROVIDERS, ScrollStrategyOptions],\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OverlayModule_tsickle_Closure_declarations() {\n/** @type {?} */\nOverlayModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOverlayModule.ctorParameters;\n}\n\n\n\nexport {OverlayConfig} from './overlay-config';\nexport {Overlay} from './overlay';\nexport {OverlayContainer} from './overlay-container';\nexport {FullscreenOverlayContainer} from './fullscreen-overlay-container';\nexport {OverlayRef} from './overlay-ref';\nexport {ConnectedOverlayDirective, OverlayOrigin} from './overlay-directives';\nexport {ViewportRuler} from '@angular/cdk/scrolling';\nexport {ComponentType} from '@angular/cdk/portal';\n\nexport {HorizontalConnectionPos,VerticalConnectionPos,OriginConnectionPosition,OverlayConnectionPosition,ConnectionPositionPair,ScrollingVisibility,ConnectedOverlayPositionChange} from './position/connected-position';\nexport {Scrollable,ScrollDispatcher,ScrollStrategy,ScrollStrategyOptions,RepositionScrollStrategy,CloseScrollStrategy,NoopScrollStrategy,BlockScrollStrategy} from './scroll/index';\n\n// Export pre-defined position strategies and interface to build custom ones.\nexport {PositionStrategy} from './position/position-strategy';\nexport {GlobalPositionStrategy} from './position/global-position-strategy';\nexport {ConnectedPositionStrategy} from './position/connected-position-strategy';\nexport {VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {Injectable} from '@angular/core';\nimport {OverlayContainer} from './overlay-container';\n/**\n * The FullscreenOverlayContainer is the alternative to OverlayContainer\n * that supports correct displaying of overlay elements in Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n * It should be provided in the root component that way:\n * providers: [\n * {provide: OverlayContainer, useClass: FullscreenOverlayContainer}\n * ],\n */\nexport class FullscreenOverlayContainer extends OverlayContainer {\n/**\n * @return {?}\n */\nprotected _createContainer(): void {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n/**\n * @return {?}\n */\nprivate _adjustParentForFullscreenChange(): void {\n if (!this._containerElement) {\n return;\n }\n let /** @type {?} */ fullscreenElement = this.getFullscreenElement();\n let /** @type {?} */ parent = fullscreenElement || document.body;\n parent.appendChild(this._containerElement);\n }\n/**\n * @param {?} fn\n * @return {?}\n */\nprivate _addFullscreenChangeListener(fn: () => void) {\n if (document.fullscreenEnabled) {\n document.addEventListener('fullscreenchange', fn);\n } else if (document.webkitFullscreenEnabled) {\n document.addEventListener('webkitfullscreenchange', fn);\n } else if (( /** @type {?} */((document as any))).mozFullScreenEnabled) {\n document.addEventListener('mozfullscreenchange', fn);\n } else if (( /** @type {?} */((document as any))).msFullscreenEnabled) {\n document.addEventListener('MSFullscreenChange', fn);\n }\n }\n/**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n * @return {?}\n */\ngetFullscreenElement(): Element {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n ( /** @type {?} */((document as any))).mozFullScreenElement ||\n ( /** @type {?} */((document as any))).msFullscreenElement ||\n null;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FullscreenOverlayContainer_tsickle_Closure_declarations() {\n/** @type {?} */\nFullscreenOverlayContainer.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFullscreenOverlayContainer.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {Overlay} from './overlay';\nimport {OverlayRef} from './overlay-ref';\nimport {OverlayConfig} from './overlay-config';\nimport {\n // This import is only used to define a generic type. The current TypeScript version incorrectly\n // considers such imports as unused (https://github.com/Microsoft/TypeScript/issues/14953)\n // tslint:disable-next-line:no-unused-variable\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n} from './position/connected-position';\nimport {ConnectedPositionStrategy} from './position/connected-position-strategy';\nimport {RepositionScrollStrategy, ScrollStrategy} from './scroll/index';\nimport {Subscription} from 'rxjs/Subscription';\n/**\n * Default set of positions for the overlay. Follows the behavior of a dropdown.\n */\nconst defaultPositionList = [\n new ConnectionPositionPair(\n {originX: 'start', originY: 'bottom'},\n {overlayX: 'start', overlayY: 'top'}),\n new ConnectionPositionPair(\n {originX: 'start', originY: 'top'},\n {overlayX: 'start', overlayY: 'bottom'}),\n];\n/**\n * Injection token that determines the scroll handling while the connected overlay is open.\n */\nexport const MD_CONNECTED_OVERLAY_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('md-connected-overlay-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nexport function MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => RepositionScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n/**\n * \\@docs-private\n */\nexport const MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: MD_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nexport class OverlayOrigin {\n/**\n * @param {?} elementRef\n */\nconstructor(public elementRef: ElementRef) { }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ElementRef, },\n];\n}\n\nfunction OverlayOrigin_tsickle_Closure_declarations() {\n/** @type {?} */\nOverlayOrigin.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOverlayOrigin.ctorParameters;\n/** @type {?} */\nOverlayOrigin.prototype.elementRef;\n}\n\n/**\n * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.\n */\nexport class ConnectedOverlayDirective implements OnDestroy, OnChanges {\nprivate _overlayRef: OverlayRef;\nprivate _templatePortal: TemplatePortal<any>;\nprivate _hasBackdrop = false;\nprivate _backdropSubscription = Subscription.EMPTY;\nprivate _positionSubscription = Subscription.EMPTY;\nprivate _offsetX: number = 0;\nprivate _offsetY: number = 0;\nprivate _position: ConnectedPositionStrategy;\nprivate _escapeListener = () => {};\n/**\n * Origin for the connected overlay.\n */\norigin: OverlayOrigin;\n/**\n * Registered connected position pairs.\n */\npositions: ConnectionPositionPair[];\n/**\n * The offset in pixels for the overlay connection point on the x-axis\n * @return {?}\n */\nget offsetX(): number { return this._offsetX; }\n/**\n * @param {?} offsetX\n * @return {?}\n */\nset offsetX(offsetX: number) {\n this._offsetX = offsetX;\n if (this._position) {\n this._position.withOffsetX(offsetX);\n }\n }\n/**\n * The offset in pixels for the overlay connection point on the y-axis\n * @return {?}\n */\nget offsetY() { return this._offsetY; }\n/**\n * @param {?} offsetY\n * @return {?}\n */\nset offsetY(offsetY: number) {\n this._offsetY = offsetY;\n if (this._position) {\n this._position.withOffsetY(offsetY);\n }\n }\n/**\n * The width of the overlay panel.\n */\nwidth: number | string;\n/**\n * The height of the overlay panel.\n */\nheight: number | string;\n/**\n * The min width of the overlay panel.\n */\nminWidth: number | string;\n/**\n * The min height of the overlay panel.\n */\nminHeight: number | string;\n/**\n * The custom class to be set on the backdrop element.\n */\nbackdropClass: string;\n/**\n * Strategy to be used when handling scroll events while the overlay is open.\n */\nscrollStrategy: ScrollStrategy =\n this._scrollStrategy();\n/**\n * Whether the overlay is open.\n */\nopen: boolean = false;\n/**\n * Whether or not the overlay should attach a backdrop.\n * @return {?}\n */\nget hasBackdrop() { return this._hasBackdrop; }\n/**\n * @param {?} value\n * @return {?}\n */\nset hasBackdrop(value: any) { this._hasBackdrop = coerceBooleanProperty(value); }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedOrigin(): OverlayOrigin { return this.origin; }\n/**\n * @param {?} _origin\n * @return {?}\n */\nset _deprecatedOrigin(_origin: OverlayOrigin) { this.origin = _origin; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedPositions(): ConnectionPositionPair[] { return this.positions; }\n/**\n * @param {?} _positions\n * @return {?}\n */\nset _deprecatedPositions(_positions: ConnectionPositionPair[]) { this.positions = _positions; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedOffsetX(): number { return this.offsetX; }\n/**\n * @param {?} _offsetX\n * @return {?}\n */\nset _deprecatedOffsetX(_offsetX: number) { this.offsetX = _offsetX; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedOffsetY(): number { return this.offsetY; }\n/**\n * @param {?} _offsetY\n * @return {?}\n */\nset _deprecatedOffsetY(_offsetY: number) { this.offsetY = _offsetY; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedWidth(): number | string { return this.width; }\n/**\n * @param {?} _width\n * @return {?}\n */\nset _deprecatedWidth(_width: number | string) { this.width = _width; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedHeight(): number | string { return this.height; }\n/**\n * @param {?} _height\n * @return {?}\n */\nset _deprecatedHeight(_height: number | string) { this.height = _height; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedMinWidth(): number | string { return this.minWidth; }\n/**\n * @param {?} _minWidth\n * @return {?}\n */\nset _deprecatedMinWidth(_minWidth: number | string) { this.minWidth = _minWidth; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedMinHeight(): number | string { return this.minHeight; }\n/**\n * @param {?} _minHeight\n * @return {?}\n */\nset _deprecatedMinHeight(_minHeight: number | string) { this.minHeight = _minHeight; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedBackdropClass(): string { return this.backdropClass; }\n/**\n * @param {?} _backdropClass\n * @return {?}\n */\nset _deprecatedBackdropClass(_backdropClass: string) { this.backdropClass = _backdropClass; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedScrollStrategy(): ScrollStrategy { return this.scrollStrategy; }\n/**\n * @param {?} _scrollStrategy\n * @return {?}\n */\nset _deprecatedScrollStrategy(_scrollStrategy: ScrollStrategy) {\n this.scrollStrategy = _scrollStrategy;\n }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedOpen(): boolean { return this.open; }\n/**\n * @param {?} _open\n * @return {?}\n */\nset _deprecatedOpen(_open: boolean) { this.open = _open; }\n/**\n * @deprecated\n * @return {?}\n */\nget _deprecatedHasBackdrop() { return this.hasBackdrop; }\n/**\n * @param {?} _hasBackdrop\n * @return {?}\n */\nset _deprecatedHasBackdrop(_hasBackdrop: any) { this.hasBackdrop = _hasBackdrop; }\n/**\n * Event emitted when the backdrop is clicked.\n */\nbackdropClick = new EventEmitter<void>();\n/**\n * Event emitted when the position has changed.\n */\npositionChange = new EventEmitter<ConnectedOverlayPositionChange>();\n/**\n * Event emitted when the overlay has been attached.\n */\nattach = new EventEmitter<void>();\n/**\n * Event emitted when the overlay has been detached.\n */\ndetach = new EventEmitter<void>();\n/**\n * @param {?} _overlay\n * @param {?} _renderer\n * @param {?} templateRef\n * @param {?} viewContainerRef\n * @param {?} _scrollStrategy\n * @param {?} _dir\n */\nconstructor(\nprivate _overlay: Overlay,\nprivate _renderer: Renderer2,\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\nprivate _scrollStrategy,\nprivate _dir: Directionality) {\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n }\n/**\n * The associated overlay reference.\n * @return {?}\n */\nget overlayRef(): OverlayRef {\n return this._overlayRef;\n }\n/**\n * The element's layout direction.\n * @return {?}\n */\nget dir(): Direction {\n return this._dir ? this._dir.value : 'ltr';\n }\n/**\n * @return {?}\n */\nngOnDestroy() {\n this._destroyOverlay();\n }\n/**\n * @param {?} changes\n * @return {?}\n */\nngOnChanges(changes: SimpleChanges) {\n if (changes['open'] || changes['_deprecatedOpen']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n/**\n * Creates an overlay\n * @return {?}\n */\nprivate _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n\n this._overlayRef = this._overlay.create(this._buildConfig());\n }\n/**\n * Builds the overlay config based on the directive's inputs\n * @return {?}\n */\nprivate _buildConfig(): OverlayConfig {\n const /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();\n const /** @type {?} */ overlayConfig = new OverlayConfig({\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop\n });\n\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n\n return overlayConfig;\n }\n/**\n * Returns the position strategy of the overlay to be set on the overlay config\n * @return {?}\n */\nprivate _createPositionStrategy(): ConnectedPositionStrategy {\n const /** @type {?} */ pos = this.positions[0];\n const /** @type {?} */ originPoint = {originX: pos.originX, originY: pos.originY};\n const /** @type {?} */ overlayPoint = {overlayX: pos.overlayX, overlayY: pos.overlayY};\n\n const /** @type {?} */ strategy = this._overlay.position()\n .connectedTo(this.origin.elementRef, originPoint, overlayPoint)\n .withOffsetX(this.offsetX)\n .withOffsetY(this.offsetY);\n\n this._handlePositionChanges(strategy);\n\n return strategy;\n }\n/**\n * @param {?} strategy\n * @return {?}\n */\nprivate _handlePositionChanges(strategy: ConnectedPositionStrategy): void {\n for (let /** @type {?} */ i = 1; i < this.positions.length; i++) {\n strategy.withFallbackPosition(\n {originX: this.positions[i].originX, originY: this.positions[i].originY},\n {overlayX: this.positions[i].overlayX, overlayY: this.positions[i].overlayY}\n );\n }\n\n this._positionSubscription =\n strategy.onPositionChange.subscribe(pos => this.positionChange.emit(pos));\n }\n/**\n * Attaches the overlay and subscribes to backdrop clicks if backdrop exists\n * @return {?}\n */\nprivate _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n }\n\n this._position.withDirection(this.dir);\n this._overlayRef.getState().direction = this.dir;\n this._initEscapeListener();\n\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n this.attach.emit();\n }\n\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(() => {\n this.backdropClick.emit();\n });\n }\n }\n/**\n * Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists\n * @return {?}\n */\nprivate _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this.detach.emit();\n }\n\n this._backdropSubscription.unsubscribe();\n this._escapeListener();\n }\n/**\n * Destroys the overlay created by this directive.\n * @return {?}\n */\nprivate _destroyOverlay() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n this._escapeListener();\n }\n/**\n * Sets the event listener that closes the overlay when pressing Escape.\n * @return {?}\n */\nprivate _initEscapeListener() {\n this._escapeListener = this._renderer.listen('document', 'keydown', (event: KeyboardEvent) => {\n if (event.keyCode === ESCAPE) {\n this._detachOverlay();\n }\n });\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay'\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Overlay, },\n{type: Renderer2, },\n{type: TemplateRef, },\n{type: ViewContainerRef, },\n{type: undefined, decorators: [{ type: Inject, args: [MD_CONNECTED_OVERLAY_SCROLL_STRATEGY, ] }, ]},\n{type: Directionality, decorators: [{ type: Optional }, ]},\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'origin': [{ type: Input, args: ['cdkConnectedOverlayOrigin', ] },],\n'positions': [{ type: Input, args: ['cdkConnectedOverlayPositions', ] },],\n'offsetX': [{ type: Input, args: ['cdkConnectedOverlayOffsetX', ] },],\n'offsetY': [{ type: Input, args: ['cdkConnectedOverlayOffsetY', ] },],\n'width': [{ type: Input, args: ['cdkConnectedOverlayWidth', ] },],\n'height': [{ type: Input, args: ['cdkConnectedOverlayHeight', ] },],\n'minWidth': [{ type: Input, args: ['cdkConnectedOverlayMinWidth', ] },],\n'minHeight': [{ type: Input, args: ['cdkConnectedOverlayMinHeight', ] },],\n'backdropClass': [{ type: Input, args: ['cdkConnectedOverlayBackdropClass', ] },],\n'scrollStrategy': [{ type: Input, args: ['cdkConnectedOverlayScrollStrategy', ] },],\n'open': [{ type: Input, args: ['cdkConnectedOverlayOpen', ] },],\n'hasBackdrop': [{ type: Input, args: ['cdkConnectedOverlayHasBackdrop', ] },],\n'_deprecatedOrigin': [{ type: Input, args: ['origin', ] },],\n'_deprecatedPositions': [{ type: Input, args: ['positions', ] },],\n'_deprecatedOffsetX': [{ type: Input, args: ['offsetX', ] },],\n'_deprecatedOffsetY': [{ type: Input, args: ['offsetY', ] },],\n'_deprecatedWidth': [{ type: Input, args: ['width', ] },],\n'_deprecatedHeight': [{ type: Input, args: ['height', ] },],\n'_deprecatedMinWidth': [{ type: Input, args: ['minWidth', ] },],\n'_deprecatedMinHeight': [{ type: Input, args: ['minHeight', ] },],\n'_deprecatedBackdropClass': [{ type: Input, args: ['backdropClass', ] },],\n'_deprecatedScrollStrategy': [{ type: Input, args: ['scrollStrategy', ] },],\n'_deprecatedOpen': [{ type: Input, args: ['open', ] },],\n'_deprecatedHasBackdrop': [{ type: Input, args: ['hasBackdrop', ] },],\n'backdropClick': [{ type: Output },],\n'positionChange': [{ type: Output },],\n'attach': [{ type: Output },],\n'detach': [{ type: Output },],\n};\n}\n\nfunction ConnectedOverlayDirective_tsickle_Closure_declarations() {\n/** @type {?} */\nConnectedOverlayDirective.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nConnectedOverlayDirective.ctorParameters;\n/** @type {?} */\nConnectedOverlayDirective.propDecorators;\n/** @type {?} */\nConnectedOverlayDirective.prototype._overlayRef;\n/** @type {?} */\nConnectedOverlayDirective.prototype._templatePortal;\n/** @type {?} */\nConnectedOverlayDirective.prototype._hasBackdrop;\n/** @type {?} */\nConnectedOverlayDirective.prototype._backdropSubscription;\n/** @type {?} */\nConnectedOverlayDirective.prototype._positionSubscription;\n/** @type {?} */\nConnectedOverlayDirective.prototype._offsetX;\n/** @type {?} */\nConnectedOverlayDirective.prototype._offsetY;\n/** @type {?} */\nConnectedOverlayDirective.prototype._position;\n/** @type {?} */\nConnectedOverlayDirective.prototype._escapeListener;\n/**\n * Origin for the connected overlay.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.origin;\n/**\n * Registered connected position pairs.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.positions;\n/**\n * The width of the overlay panel.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.width;\n/**\n * The height of the overlay panel.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.height;\n/**\n * The min width of the overlay panel.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.minWidth;\n/**\n * The min height of the overlay panel.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.minHeight;\n/**\n * The custom class to be set on the backdrop element.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.backdropClass;\n/**\n * Strategy to be used when handling scroll events while the overlay is open.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.scrollStrategy;\n/**\n * Whether the overlay is open.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.open;\n/**\n * Event emitted when the backdrop is clicked.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.backdropClick;\n/**\n * Event emitted when the position has changed.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.positionChange;\n/**\n * Event emitted when the overlay has been attached.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.attach;\n/**\n * Event emitted when the overlay has been detached.\n * @type {?}\n */\nConnectedOverlayDirective.prototype.detach;\n/** @type {?} */\nConnectedOverlayDirective.prototype._overlay;\n/** @type {?} */\nConnectedOverlayDirective.prototype._renderer;\n/** @type {?} */\nConnectedOverlayDirective.prototype._scrollStrategy;\n/** @type {?} */\nConnectedOverlayDirective.prototype._dir;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {\n ComponentFactoryResolver,\n Injectable,\n ApplicationRef,\n Injector,\n NgZone,\n} from '@angular/core';\nimport {DomPortalHost} from '@angular/cdk/portal';\nimport {OverlayConfig} from './overlay-config';\nimport {OverlayRef} from './overlay-ref';\nimport {OverlayPositionBuilder} from './position/overlay-position-builder';\nimport {OverlayContainer} from './overlay-container';\nimport {ScrollStrategyOptions} from './scroll/index';\n/**\n * Next overlay unique ID.\n */\nlet nextUniqueId = 0;\n/**\n * The default state for newly created overlays.\n */\nlet defaultState = new OverlayConfig();\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n * \n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nexport class Overlay {\n/**\n * @param {?} scrollStrategies\n * @param {?} _overlayContainer\n * @param {?} _componentFactoryResolver\n * @param {?} _positionBuilder\n * @param {?} _appRef\n * @param {?} _injector\n * @param {?} _ngZone\n */\nconstructor(public scrollStrategies: ScrollStrategyOptions,\nprivate _overlayContainer: OverlayContainer,\nprivate _componentFactoryResolver: ComponentFactoryResolver,\nprivate _positionBuilder: OverlayPositionBuilder,\nprivate _appRef: ApplicationRef,\nprivate _injector: Injector,\nprivate _ngZone: NgZone) { }\n/**\n * Creates an overlay.\n * @param {?=} state State to apply to the overlay.\n * @return {?} Reference to the created overlay.\n */\ncreate(state: OverlayConfig = defaultState): OverlayRef {\n const /** @type {?} */ pane = this._createPaneElement();\n const /** @type {?} */ portalHost = this._createPortalHost(pane);\n return new OverlayRef(portalHost, pane, state, this._ngZone);\n }\n/**\n * Returns a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @return {?}\n */\nposition(): OverlayPositionBuilder {\n return this._positionBuilder;\n }\n/**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @return {?} Newly-created pane element\n */\nprivate _createPaneElement(): HTMLElement {\n let /** @type {?} */ pane = document.createElement('div');\n\n pane.id = `cdk-overlay-${nextUniqueId++}`;\n pane.classList.add('cdk-overlay-pane');\n this._overlayContainer.getContainerElement().appendChild(pane);\n\n return pane;\n }\n/**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param {?} pane The DOM element to turn into a portal host.\n * @return {?} A portal host for the given DOM element.\n */\nprivate _createPortalHost(pane: HTMLElement): DomPortalHost {\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ScrollStrategyOptions, },\n{type: OverlayContainer, },\n{type: ComponentFactoryResolver, },\n{type: OverlayPositionBuilder, },\n{type: ApplicationRef, },\n{type: Injector, },\n{type: NgZone, },\n];\n}\n\nfunction Overlay_tsickle_Closure_declarations() {\n/** @type {?} */\nOverlay.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOverlay.ctorParameters;\n/** @type {?} */\nOverlay.prototype.scrollStrategies;\n/** @type {?} */\nOverlay.prototype._overlayContainer;\n/** @type {?} */\nOverlay.prototype._componentFactoryResolver;\n/** @type {?} */\nOverlay.prototype._positionBuilder;\n/** @type {?} */\nOverlay.prototype._appRef;\n/** @type {?} */\nOverlay.prototype._injector;\n/** @type {?} */\nOverlay.prototype._ngZone;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {Injectable} from '@angular/core';\nimport {CloseScrollStrategy} from './close-scroll-strategy';\nimport {NoopScrollStrategy} from './noop-scroll-strategy';\nimport {BlockScrollStrategy} from './block-scroll-strategy';\nimport {ScrollDispatcher} from '@angular/cdk/scrolling';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {\n RepositionScrollStrategy,\n RepositionScrollStrategyConfig,\n} from './reposition-scroll-strategy';\n/**\n * Options for how an overlay will handle scrolling.\n * \n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nexport class ScrollStrategyOptions {\n/**\n * @param {?} _scrollDispatcher\n * @param {?} _viewportRuler\n */\nconstructor(\nprivate _scrollDispatcher: ScrollDispatcher,\nprivate _viewportRuler: ViewportRuler) { }\n/**\n * Do nothing on scroll.\n */\nnoop = () => new NoopScrollStrategy();\n/**\n * Close the overlay as soon as the user scrolls.\n */\nclose = () => new CloseScrollStrategy(this._scrollDispatcher);\n/**\n * Block scrolling.\n */\nblock = () => new BlockScrollStrategy(this._viewportRuler);\n/**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\nreposition = (config?: RepositionScrollStrategyConfig) =>\n new RepositionScrollStrategy(this._scrollDispatcher, config)\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ScrollDispatcher, },\n{type: ViewportRuler, },\n];\n}\n\nfunction ScrollStrategyOptions_tsickle_Closure_declarations() {\n/** @type {?} */\nScrollStrategyOptions.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nScrollStrategyOptions.ctorParameters;\n/**\n * Do nothing on scroll.\n * @type {?}\n */\nScrollStrategyOptions.prototype.noop;\n/**\n * Close the overlay as soon as the user scrolls.\n * @type {?}\n */\nScrollStrategyOptions.prototype.close;\n/**\n * Block scrolling.\n * @type {?}\n */\nScrollStrategyOptions.prototype.block;\n/**\n * Update the overlay's position on scroll.\n * \\@param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n * @type {?}\n */\nScrollStrategyOptions.prototype.reposition;\n/** @type {?} */\nScrollStrategyOptions.prototype._scrollDispatcher;\n/** @type {?} */\nScrollStrategyOptions.prototype._viewportRuler;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {Subscription} from 'rxjs/Subscription';\nimport {ScrollStrategy, getMdScrollStrategyAlreadyAttachedError} from './scroll-strategy';\nimport {OverlayRef} from '../overlay-ref';\nimport {ScrollDispatcher} from '@angular/cdk/scrolling';\n\n/**\n * Config options for the RepositionScrollStrategy.\n */\nexport interface RepositionScrollStrategyConfig {\n scrollThrottle?: number;\n}\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nexport class RepositionScrollStrategy implements ScrollStrategy {\nprivate _scrollSubscription: Subscription|null = null;\nprivate _overlayRef: OverlayRef;\n/**\n * @param {?} _scrollDispatcher\n * @param {?=} _config\n */\nconstructor(\nprivate _scrollDispatcher: ScrollDispatcher,\nprivate _config?: RepositionScrollStrategyConfig) { }\n/**\n * @param {?} overlayRef\n * @return {?}\n */\nattach(overlayRef: OverlayRef) {\n if (this._overlayRef) {\n throw getMdScrollStrategyAlreadyAttachedError();\n }\n\n this._overlayRef = overlayRef;\n }\n/**\n * @return {?}\n */\nenable() {\n if (!this._scrollSubscription) {\n let /** @type {?} */ throttle = this._config ? this._config.scrollThrottle : 0;\n\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, () => {\n this._overlayRef.updatePosition();\n });\n }\n }\n/**\n * @return {?}\n */\ndisable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n}\n\nfunction RepositionScrollStrategy_tsickle_Closure_declarations() {\n/** @type {?} */\nRepositionScrollStrategy.prototype._scrollSubscription;\n/** @type {?} */\nRepositionScrollStrategy.prototype._overlayRef;\n/** @type {?} */\nRepositionScrollStrategy.prototype._scrollDispatcher;\n/** @type {?} */\nRepositionScrollStrategy.prototype._config;\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 {ScrollStrategy} from './scroll-strategy';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nexport class BlockScrollStrategy implements ScrollStrategy {\nprivate _previousHTMLStyles = { top: '', left: '' };\nprivate _previousScrollPosition: { top: number, left: number };\nprivate _isEnabled = false;\n/**\n * @param {?} _viewportRuler\n */\nconstructor(private _viewportRuler: ViewportRuler) { }\n/**\n * @return {?}\n */\nattach() { }\n/**\n * @return {?}\n */\nenable() {\n if (this._canBeEnabled()) {\n const /** @type {?} */ root = document.documentElement;\n\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = `${-this._previousScrollPosition.left}px`;\n root.style.top = `${-this._previousScrollPosition.top}px`;\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n/**\n * @return {?}\n */\ndisable() {\n if (this._isEnabled) {\n this._isEnabled = false;\n document.documentElement.style.left = this._previousHTMLStyles.left;\n document.documentElement.style.top = this._previousHTMLStyles.top;\n document.documentElement.classList.remove('cdk-global-scrollblock');\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n }\n }\n/**\n * @return {?}\n */\nprivate _canBeEnabled(): boolean {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n\n const /** @type {?} */ body = document.body;\n const /** @type {?} */ viewport = this._viewportRuler.getViewportRect();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n }\n}\n\nfunction BlockScrollStrategy_tsickle_Closure_declarations() {\n/** @type {?} */\nBlockScrollStrategy.prototype._previousHTMLStyles;\n/** @type {?} */\nBlockScrollStrategy.prototype._previousScrollPosition;\n/** @type {?} */\nBlockScrollStrategy.prototype._isEnabled;\n/** @type {?} */\nBlockScrollStrategy.prototype._viewportRuler;\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 {ScrollStrategy, getMdScrollStrategyAlreadyAttachedError} from './scroll-strategy';\nimport {OverlayRef} from '../overlay-ref';\nimport {Subscription} from 'rxjs/Subscription';\nimport {ScrollDispatcher} from '@angular/cdk/scrolling';\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nexport class CloseScrollStrategy implements ScrollStrategy {\nprivate _scrollSubscription: Subscription|null = null;\nprivate _overlayRef: OverlayRef;\n/**\n * @param {?} _scrollDispatcher\n */\nconstructor(private _scrollDispatcher: ScrollDispatcher) { }\n/**\n * @param {?} overlayRef\n * @return {?}\n */\nattach(overlayRef: OverlayRef) {\n if (this._overlayRef) {\n throw getMdScrollStrategyAlreadyAttachedError();\n }\n\n this._overlayRef = overlayRef;\n }\n/**\n * @return {?}\n */\nenable() {\n if (!this._scrollSubscription) {\n this._scrollSubscription = this._scrollDispatcher.scrolled(0, () => {\n if (this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n\n this.disable();\n });\n }\n }\n/**\n * @return {?}\n */\ndisable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n}\n\nfunction CloseScrollStrategy_tsickle_Closure_declarations() {\n/** @type {?} */\nCloseScrollStrategy.prototype._scrollSubscription;\n/** @type {?} */\nCloseScrollStrategy.prototype._overlayRef;\n/** @type {?} */\nCloseScrollStrategy.prototype._scrollDispatcher;\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 {OverlayRef} from '../overlay-ref';\n\n/**\n * Describes a strategy that will be used by an overlay\n * to handle scroll events while it is open.\n */\nexport interface ScrollStrategy {\n enable: () => void;\n disable: () => void;\n attach: (overlayRef: OverlayRef) => void;\n}\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n * @return {?}\n */\nexport function getMdScrollStrategyAlreadyAttachedError(): Error {\n return Error(`Scroll strategy has already been attached.`);\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 {Injectable, Optional, SkipSelf, OnDestroy} from '@angular/core';\n/**\n * The OverlayContainer is the container in which all overlays will load.\n * It should be provided in the root component to ensure it is properly shared.\n */\nexport class OverlayContainer implements OnDestroy {\n protected _containerElement: HTMLElement;\n/**\n * @return {?}\n */\nngOnDestroy() {\n if (this._containerElement && this._containerElement.parentNode) {\n this._containerElement.parentNode.removeChild(this._containerElement);\n }\n }\n/**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @return {?} the container element\n */\ngetContainerElement(): HTMLElement {\n if (!this._containerElement) { this._createContainer(); }\n return this._containerElement;\n }\n/**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n * @return {?}\n */\nprotected _createContainer(): void {\n let /** @type {?} */ container = document.createElement('div');\n container.classList.add('cdk-overlay-container');\n\n document.body.appendChild(container);\n this._containerElement = container;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OverlayContainer_tsickle_Closure_declarations() {\n/** @type {?} */\nOverlayContainer.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOverlayContainer.ctorParameters;\n/** @type {?} */\nOverlayContainer.prototype._containerElement;\n}\n\n/**\n * \\@docs-private\n * @param {?} parentContainer\n * @return {?}\n */\nexport function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer: OverlayContainer) {\n return parentContainer || new OverlayContainer();\n}\n/**\n * \\@docs-private\n */\nexport const OVERLAY_CONTAINER_PROVIDER = {\n // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.\n provide: OverlayContainer,\n deps: [[new Optional(), new SkipSelf(), OverlayContainer]],\n useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY\n};\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {ElementRef, Injectable} from '@angular/core';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {ConnectedPositionStrategy} from './connected-position-strategy';\nimport {GlobalPositionStrategy} from './global-position-strategy';\nimport {OverlayConnectionPosition, OriginConnectionPosition} from './connected-position';\n/**\n * Builder for overlay position strategy.\n */\nexport class OverlayPositionBuilder {\n/**\n * @param {?} _viewportRuler\n */\nconstructor(private _viewportRuler: ViewportRuler) { }\n/**\n * Creates a global position strategy.\n * @return {?}\n */\nglobal(): GlobalPositionStrategy {\n return new GlobalPositionStrategy();\n }\n/**\n * Creates a relative position strategy.\n * @param {?} elementRef\n * @param {?} originPos\n * @param {?} overlayPos\n * @return {?}\n */\nconnectedTo(\n elementRef: ElementRef,\n originPos: OriginConnectionPosition,\n overlayPos: OverlayConnectionPosition): ConnectedPositionStrategy {\n return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ViewportRuler, },\n];\n}\n\nfunction OverlayPositionBuilder_tsickle_Closure_declarations() {\n/** @type {?} */\nOverlayPositionBuilder.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOverlayPositionBuilder.ctorParameters;\n/** @type {?} */\nOverlayPositionBuilder.prototype._viewportRuler;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {PositionStrategy} from './position-strategy';\nimport {OverlayRef} from '../overlay-ref';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nexport class GlobalPositionStrategy implements PositionStrategy {\n/**\n * The overlay to which this strategy is attached.\n */\nprivate _overlayRef: OverlayRef;\nprivate _cssPosition: string = 'static';\nprivate _topOffset: string = '';\nprivate _bottomOffset: string = '';\nprivate _leftOffset: string = '';\nprivate _rightOffset: string = '';\nprivate _alignItems: string = '';\nprivate _justifyContent: string = '';\nprivate _width: string = '';\nprivate _height: string = '';\nprivate _wrapper: HTMLElement | null = null;\n/**\n * @param {?} overlayRef\n * @return {?}\n */\nattach(overlayRef: OverlayRef): void {\n this._overlayRef = overlayRef;\n }\n/**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param {?=} value New top offset.\n * @return {?}\n */\ntop(value = ''): this {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n/**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param {?=} value New left offset.\n * @return {?}\n */\nleft(value = ''): this {\n this._rightOffset = '';\n this._leftOffset = value;\n this._justifyContent = 'flex-start';\n return this;\n }\n/**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param {?=} value New bottom offset.\n * @return {?}\n */\nbottom(value = ''): this {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n/**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param {?=} value New right offset.\n * @return {?}\n */\nright(value = ''): this {\n this._leftOffset = '';\n this._rightOffset = value;\n this._justifyContent = 'flex-end';\n return this;\n }\n/**\n * Sets the overlay width and clears any previously set width.\n * @param {?=} value New width for the overlay\n * @return {?}\n */\nwidth(value = ''): this {\n this._width = value;\n\n // When the width is 100%, we should reset the `left` and the offset,\n // in order to ensure that the element is flush against the viewport edge.\n if (value === '100%') {\n this.left('0px');\n }\n\n return this;\n }\n/**\n * Sets the overlay height and clears any previously set height.\n * @param {?=} value New height for the overlay\n * @return {?}\n */\nheight(value = ''): this {\n this._height = value;\n\n // When the height is 100%, we should reset the `top` and the offset,\n // in order to ensure that the element is flush against the viewport edge.\n if (value === '100%') {\n this.top('0px');\n }\n\n return this;\n }\n/**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n * \n * @param {?=} offset Overlay offset from the horizontal center.\n * @return {?}\n */\ncenterHorizontally(offset = ''): this {\n this.left(offset);\n this._justifyContent = 'center';\n return this;\n }\n/**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n * \n * @param {?=} offset Overlay offset from the vertical center.\n * @return {?}\n */\ncenterVertically(offset = ''): this {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n/**\n * Apply the position to the element.\n * \\@docs-private \n * \n * @return {?} Resolved when the styles have been applied.\n */\napply(): void {\n const /** @type {?} */ element = this._overlayRef.overlayElement;\n\n if (!this._wrapper && element.parentNode) {\n this._wrapper = document.createElement('div');\n this._wrapper.classList.add('cdk-global-overlay-wrapper');\n element.parentNode.insertBefore(this._wrapper, element);\n this._wrapper.appendChild(element);\n }\n\n let /** @type {?} */ styles = element.style;\n let /** @type {?} */ parentStyles = ( /** @type {?} */((element.parentNode as HTMLElement))).style;\n\n styles.position = this._cssPosition;\n styles.marginTop = this._topOffset;\n styles.marginLeft = this._leftOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = this._rightOffset;\n styles.width = this._width;\n styles.height = this._height;\n\n parentStyles.justifyContent = this._justifyContent;\n parentStyles.alignItems = this._alignItems;\n }\n/**\n * Removes the wrapper element from the DOM.\n * @return {?}\n */\ndispose(): void {\n if (this._wrapper && this._wrapper.parentNode) {\n this._wrapper.parentNode.removeChild(this._wrapper);\n this._wrapper = null;\n }\n }\n}\n\nfunction GlobalPositionStrategy_tsickle_Closure_declarations() {\n/**\n * The overlay to which this strategy is attached.\n * @type {?}\n */\nGlobalPositionStrategy.prototype._overlayRef;\n/** @type {?} */\nGlobalPositionStrategy.prototype._cssPosition;\n/** @type {?} */\nGlobalPositionStrategy.prototype._topOffset;\n/** @type {?} */\nGlobalPositionStrategy.prototype._bottomOffset;\n/** @type {?} */\nGlobalPositionStrategy.prototype._leftOffset;\n/** @type {?} */\nGlobalPositionStrategy.prototype._rightOffset;\n/** @type {?} */\nGlobalPositionStrategy.prototype._alignItems;\n/** @type {?} */\nGlobalPositionStrategy.prototype._justifyContent;\n/** @type {?} */\nGlobalPositionStrategy.prototype._width;\n/** @type {?} */\nGlobalPositionStrategy.prototype._height;\n/** @type {?} */\nGlobalPositionStrategy.prototype._wrapper;\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 {PositionStrategy} from './position-strategy';\nimport {ElementRef} from '@angular/core';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {\n ConnectionPositionPair,\n OriginConnectionPosition,\n OverlayConnectionPosition,\n ConnectedOverlayPositionChange,\n ScrollingVisibility,\n} from './connected-position';\nimport {Subject} from 'rxjs/Subject';\nimport {Observable} from 'rxjs/Observable';\nimport {Scrollable} from '@angular/cdk/scrolling';\nimport {isElementScrolledOutsideView, isElementClippedByScrolling} from './scroll-clip';\nimport {OverlayRef} from '../overlay-ref';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nexport class ConnectedPositionStrategy implements PositionStrategy {\n/**\n * The overlay to which this strategy is attached.\n */\nprivate _overlayRef: OverlayRef;\nprivate _dir = 'ltr';\n/**\n * The offset in pixels for the overlay connection point on the x-axis\n */\nprivate _offsetX: number = 0;\n/**\n * The offset in pixels for the overlay connection point on the y-axis\n */\nprivate _offsetY: number = 0;\n/**\n * The Scrollable containers used to check scrollable view properties on position change.\n */\nprivate scrollables: Scrollable[] = [];\n/**\n * Whether the we're dealing with an RTL context\n * @return {?}\n */\nget _isRtl() {\n return this._dir === 'rtl';\n }\n/**\n * Ordered list of preferred positions, from most to least desirable.\n */\n_preferredPositions: ConnectionPositionPair[] = [];\n/**\n * The origin element against which the overlay will be positioned.\n */\nprivate _origin: HTMLElement;\n/**\n * The overlay pane element.\n */\nprivate _pane: HTMLElement;\n/**\n * The last position to have been calculated as the best fit position.\n */\nprivate _lastConnectedPosition: ConnectionPositionPair;\n\n _onPositionChange:\n Subject<ConnectedOverlayPositionChange> = new Subject<ConnectedOverlayPositionChange>();\n/**\n * Emits an event when the connection point changes.\n * @return {?}\n */\nget onPositionChange(): Observable<ConnectedOverlayPositionChange> {\n return this._onPositionChange.asObservable();\n }\n/**\n * @param {?} originPos\n * @param {?} overlayPos\n * @param {?} _connectedTo\n * @param {?} _viewportRuler\n */\nconstructor(\n originPos: OriginConnectionPosition,\n overlayPos: OverlayConnectionPosition,\nprivate _connectedTo: ElementRef,\nprivate _viewportRuler: ViewportRuler) {\n this._origin = this._connectedTo.nativeElement;\n this.withFallbackPosition(originPos, overlayPos);\n }\n/**\n * Ordered list of preferred positions, from most to least desirable.\n * @return {?}\n */\nget positions() {\n return this._preferredPositions;\n }\n/**\n * @param {?} overlayRef\n * @return {?}\n */\nattach(overlayRef: OverlayRef): void {\n this._overlayRef = overlayRef;\n this._pane = overlayRef.overlayElement;\n }\n/**\n * Performs any cleanup after the element is destroyed.\n * @return {?}\n */\ndispose() { }\n/**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin fits on-screen.\n * \\@docs-private \n * \n * @return {?} Resolves when the styles have been applied.\n */\napply(): void {\n // We need the bounding rects for the origin and the overlay to determine how to position\n // the overlay relative to the origin.\n const /** @type {?} */ element = this._pane;\n const /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n const /** @type {?} */ overlayRect = element.getBoundingClientRect();\n\n // We use the viewport rect to determine whether a position would go off-screen.\n const /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n\n // Fallback point if none of the fallbacks fit into the viewport.\n let /** @type {?} */ fallbackPoint: OverlayPoint | undefined;\n let /** @type {?} */ fallbackPosition: ConnectionPositionPair | undefined;\n\n // We want to place the overlay in the first of the preferred positions such that the\n // overlay fits on-screen.\n for (let /** @type {?} */ pos of this._preferredPositions) {\n // Get the (x, y) point of connection on the origin, and then use that to get the\n // (top, left) coordinate for the overlay at `pos`.\n let /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);\n let /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);\n\n // If the overlay in the calculated position fits on-screen, put it there and we're done.\n if (overlayPoint.fitsInViewport) {\n this._setElementPosition(element, overlayRect, overlayPoint, pos);\n\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastConnectedPosition = pos;\n\n return;\n } else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {\n fallbackPoint = overlayPoint;\n fallbackPosition = pos;\n }\n }\n\n // If none of the preferred positions were in the viewport, take the one\n // with the largest visible area.\n this._setElementPosition(element, overlayRect, /** @type {?} */(( fallbackPoint)), /** @type {?} */(( fallbackPosition)));\n }\n/**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n * @return {?}\n */\nrecalculateLastPosition(): void {\n const /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n const /** @type {?} */ overlayRect = this._pane.getBoundingClientRect();\n const /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n const /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];\n\n let /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);\n let /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);\n this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);\n }\n/**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n * @param {?} scrollables\n * @return {?}\n */\nwithScrollableContainers(scrollables: Scrollable[]) {\n this.scrollables = scrollables;\n }\n/**\n * Adds a new preferred fallback position.\n * @param {?} originPos\n * @param {?} overlayPos\n * @return {?}\n */\nwithFallbackPosition(\n originPos: OriginConnectionPosition,\n overlayPos: OverlayConnectionPosition): this {\n this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));\n return this;\n }\n/**\n * Sets the layout direction so the overlay's position can be adjusted to match.\n * @param {?} dir New layout direction.\n * @return {?}\n */\nwithDirection(dir: 'ltr' | 'rtl'): this {\n this._dir = dir;\n return this;\n }\n/**\n * Sets an offset for the overlay's connection point on the x-axis\n * @param {?} offset New offset in the X axis.\n * @return {?}\n */\nwithOffsetX(offset: number): this {\n this._offsetX = offset;\n return this;\n }\n/**\n * Sets an offset for the overlay's connection point on the y-axis\n * @param {?} offset New offset in the Y axis.\n * @return {?}\n */\nwithOffsetY(offset: number): this {\n this._offsetY = offset;\n return this;\n }\n/**\n * Gets the horizontal (x) \"start\" dimension based on whether the overlay is in an RTL context.\n * @param {?} rect\n * @return {?}\n */\nprivate _getStartX(rect: ClientRect): number {\n return this._isRtl ? rect.right : rect.left;\n }\n/**\n * Gets the horizontal (x) \"end\" dimension based on whether the overlay is in an RTL context.\n * @param {?} rect\n * @return {?}\n */\nprivate _getEndX(rect: ClientRect): number {\n return this._isRtl ? rect.left : rect.right;\n }\n/**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n * @param {?} originRect\n * @param {?} pos\n * @return {?}\n */\nprivate _getOriginConnectionPoint(originRect: ClientRect, pos: ConnectionPositionPair): Point {\n const /** @type {?} */ originStartX = this._getStartX(originRect);\n const /** @type {?} */ originEndX = this._getEndX(originRect);\n\n let /** @type {?} */ x: number;\n if (pos.originX == 'center') {\n x = originStartX + (originRect.width / 2);\n } else {\n x = pos.originX == 'start' ? originStartX : originEndX;\n }\n\n let /** @type {?} */ y: number;\n if (pos.originY == 'center') {\n y = originRect.top + (originRect.height / 2);\n } else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n\n return {x, y};\n }\n/**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected, as well as how much of the element\n * would be inside the viewport at that position.\n * @param {?} originPoint\n * @param {?} overlayRect\n * @param {?} viewportRect\n * @param {?} pos\n * @return {?}\n */\nprivate _getOverlayPoint(\n originPoint: Point,\n overlayRect: ClientRect,\n viewportRect: ClientRect,\n pos: ConnectionPositionPair): OverlayPoint {\n // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position\n // relative to the origin point.\n let /** @type {?} */ overlayStartX: number;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n } else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl ? -overlayRect.width : 0;\n } else {\n overlayStartX = this._isRtl ? 0 : -overlayRect.width;\n }\n\n let /** @type {?} */ overlayStartY: number;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n } else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n\n // The (x, y) coordinates of the overlay.\n let /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;\n let /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;\n\n // How much the overlay would overflow at this position, on each side.\n let /** @type {?} */ leftOverflow = 0 - x;\n let /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;\n let /** @type {?} */ topOverflow = 0 - y;\n let /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;\n\n // Visible parts of the element on each axis.\n let /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);\n let /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);\n\n // The area of the element that's within the viewport.\n let /** @type {?} */ visibleArea = visibleWidth * visibleHeight;\n let /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;\n\n return {x, y, fitsInViewport, visibleArea};\n }\n/**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n * @param {?} overlay\n * @return {?}\n */\nprivate _getScrollVisibility(overlay: HTMLElement): ScrollingVisibility {\n const /** @type {?} */ originBounds = this._origin.getBoundingClientRect();\n const /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();\n const /** @type {?} */ scrollContainerBounds =\n this.scrollables.map(s => s.getElementRef().nativeElement.getBoundingClientRect());\n\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n }\n/**\n * Physically positions the overlay element to the given coordinate.\n * @param {?} element\n * @param {?} overlayRect\n * @param {?} overlayPoint\n * @param {?} pos\n * @return {?}\n */\nprivate _setElementPosition(\n element: HTMLElement,\n overlayRect: ClientRect,\n overlayPoint: Point,\n pos: ConnectionPositionPair) {\n\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear above\n // or below the origin and the direction in which the element will expand.\n let /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';\n\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n let /** @type {?} */ y = verticalStyleProperty === 'top' ?\n overlayPoint.y :\n document.documentElement.clientHeight - (overlayPoint.y + overlayRect.height);\n\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let /** @type {?} */ horizontalStyleProperty: string;\n if (this._dir === 'rtl') {\n horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';\n } else {\n horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';\n }\n\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n let /** @type {?} */ x = horizontalStyleProperty === 'left' ?\n overlayPoint.x :\n document.documentElement.clientWidth - (overlayPoint.x + overlayRect.width);\n\n\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n ['top', 'bottom', 'left', 'right'].forEach(p => element.style[p] = null);\n\n element.style[verticalStyleProperty] = `${y}px`;\n element.style[horizontalStyleProperty] = `${x}px`;\n\n // Notify that the position has been changed along with its change properties.\n const /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);\n const /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);\n this._onPositionChange.next(positionChange);\n }\n/**\n * Subtracts the amount that an element is overflowing on an axis from it's length.\n * @param {?} length\n * @param {...?} overflows\n * @return {?}\n */\nprivate _subtractOverflows(length: number, ...overflows: number[]): number {\n return overflows.reduce((currentValue: number, currentOverflow: number) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n}\n\nfunction ConnectedPositionStrategy_tsickle_Closure_declarations() {\n/**\n * The overlay to which this strategy is attached.\n * @type {?}\n */\nConnectedPositionStrategy.prototype._overlayRef;\n/** @type {?} */\nConnectedPositionStrategy.prototype._dir;\n/**\n * The offset in pixels for the overlay connection point on the x-axis\n * @type {?}\n */\nConnectedPositionStrategy.prototype._offsetX;\n/**\n * The offset in pixels for the overlay connection point on the y-axis\n * @type {?}\n */\nConnectedPositionStrategy.prototype._offsetY;\n/**\n * The Scrollable containers used to check scrollable view properties on position change.\n * @type {?}\n */\nConnectedPositionStrategy.prototype.scrollables;\n/**\n * Ordered list of preferred positions, from most to least desirable.\n * @type {?}\n */\nConnectedPositionStrategy.prototype._preferredPositions;\n/**\n * The origin element against which the overlay will be positioned.\n * @type {?}\n */\nConnectedPositionStrategy.prototype._origin;\n/**\n * The overlay pane element.\n * @type {?}\n */\nConnectedPositionStrategy.prototype._pane;\n/**\n * The last position to have been calculated as the best fit position.\n * @type {?}\n */\nConnectedPositionStrategy.prototype._lastConnectedPosition;\n/** @type {?} */\nConnectedPositionStrategy.prototype._onPositionChange;\n/** @type {?} */\nConnectedPositionStrategy.prototype._connectedTo;\n/** @type {?} */\nConnectedPositionStrategy.prototype._viewportRuler;\n}\n\n\n/** A simple (x, y) coordinate. */\ninterface Point {\n x: number;\n y: number;\n}\n\n/**\n * Expands the simple (x, y) coordinate by adding info about whether the\n * element would fit inside the viewport at that position, as well as\n * how much of the element would be visible.\n */\ninterface OverlayPoint extends Point {\n visibleArea: number;\n fitsInViewport: boolean;\n}\n","\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is scrolled out of view\n */\nexport function isElementScrolledOutsideView(element: ClientRect, scrollContainers: ClientRect[]) {\n return scrollContainers.some(containerBounds => {\n const /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;\n const /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;\n const /** @type {?} */ outsideLeft = element.right < containerBounds.left;\n const /** @type {?} */ outsideRight = element.left > containerBounds.right;\n\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is clipped\n */\nexport function isElementClippedByScrolling(element: ClientRect, scrollContainers: ClientRect[]) {\n return scrollContainers.some(scrollContainerRect => {\n const /** @type {?} */ clippedAbove = element.top < scrollContainerRect.top;\n const /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;\n const /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;\n const /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;\n\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\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/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */\n\nimport {Optional} from '@angular/core';\nexport type HorizontalConnectionPos = 'start' | 'center' | 'end';\n\n/** Vertical dimension of a connection point on the perimeter of the origin or overlay element. */\nexport type VerticalConnectionPos = 'top' | 'center' | 'bottom';\n\n\n/** A connection point on the origin element. */\nexport interface OriginConnectionPosition {\n originX: HorizontalConnectionPos;\n originY: VerticalConnectionPos;\n}\n\n/** A connection point on the overlay element. */\nexport interface OverlayConnectionPosition {\n overlayX: HorizontalConnectionPos;\n overlayY: VerticalConnectionPos;\n}\n/**\n * The points of the origin element and the overlay element to connect.\n */\nexport class ConnectionPositionPair {\n originX: HorizontalConnectionPos;\n originY: VerticalConnectionPos;\n overlayX: HorizontalConnectionPos;\n overlayY: VerticalConnectionPos;\n/**\n * @param {?} origin\n * @param {?} overlay\n */\nconstructor(origin: OriginConnectionPosition, overlay: OverlayConnectionPosition) {\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n\nfunction ConnectionPositionPair_tsickle_Closure_declarations() {\n/** @type {?} */\nConnectionPositionPair.prototype.originX;\n/** @type {?} */\nConnectionPositionPair.prototype.originY;\n/** @type {?} */\nConnectionPositionPair.prototype.overlayX;\n/** @type {?} */\nConnectionPositionPair.prototype.overlayY;\n}\n\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n * \n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n * \n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n * \n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n */\nexport class ScrollingVisibility {\n isOriginClipped: boolean;\n isOriginOutsideView: boolean;\n isOverlayClipped: boolean;\n isOverlayOutsideView: boolean;\n}\n\nfunction ScrollingVisibility_tsickle_Closure_declarations() {\n/** @type {?} */\nScrollingVisibility.prototype.isOriginClipped;\n/** @type {?} */\nScrollingVisibility.prototype.isOriginOutsideView;\n/** @type {?} */\nScrollingVisibility.prototype.isOverlayClipped;\n/** @type {?} */\nScrollingVisibility.prototype.isOverlayOutsideView;\n}\n\n/**\n * The change event emitted by the strategy when a fallback position is used.\n */\nexport class ConnectedOverlayPositionChange {\n/**\n * @param {?} connectionPair\n * @param {?} scrollableViewProperties\n */\nconstructor(public connectionPair: ConnectionPositionPair,\npublic scrollableViewProperties: ScrollingVisibility) {}\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ConnectionPositionPair, },\n{type: ScrollingVisibility, decorators: [{ type: Optional }, ]},\n];\n}\n\nfunction ConnectedOverlayPositionChange_tsickle_Closure_declarations() {\n/**\n * @nocollapse\n * @type {?}\n */\nConnectedOverlayPositionChange.ctorParameters;\n/** @type {?} */\nConnectedOverlayPositionChange.prototype.connectionPair;\n/** @type {?} */\nConnectedOverlayPositionChange.prototype.scrollableViewProperties;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\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 {NgZone} from '@angular/core';\nimport {PortalHost, Portal} from '@angular/cdk/portal';\nimport {OverlayConfig} from './overlay-config';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nexport class OverlayRef implements PortalHost {\nprivate _backdropElement: HTMLElement | null = null;\nprivate _backdropClick: Subject<any> = new Subject();\nprivate _attachments = new Subject<void>();\nprivate _detachments = new Subject<void>();\n/**\n * @param {?} _portalHost\n * @param {?} _pane\n * @param {?} _state\n * @param {?} _ngZone\n */\nconstructor(\nprivate _portalHost: PortalHost,\nprivate _pane: HTMLElement,\nprivate _state: OverlayConfig,\nprivate _ngZone: NgZone) {\n\n if (_state.scrollStrategy) {\n _state.scrollStrategy.attach(this);\n }\n }\n/**\n * The overlay's HTML element\n * @return {?}\n */\nget overlayElement(): HTMLElement {\n return this._pane;\n }\n/**\n * Attaches the overlay to a portal instance and adds the backdrop.\n * @param {?} portal Portal instance to which to attach the overlay.\n * @return {?} The portal attachment result.\n */\nattach(portal: Portal<any>): any {\n let /** @type {?} */ attachResult = this._portalHost.attach(portal);\n\n if (this._state.positionStrategy) {\n this._state.positionStrategy.attach(this);\n }\n\n // Update the pane element with the given state configuration.\n this._updateStackingOrder();\n this.updateSize();\n this.updateDirection();\n this.updatePosition();\n\n if (this._state.scrollStrategy) {\n this._state.scrollStrategy.enable();\n }\n\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n\n if (this._state.hasBackdrop) {\n this._attachBackdrop();\n }\n\n if (this._state.panelClass) {\n // We can't do a spread here, because IE doesn't support setting multiple classes.\n if (Array.isArray(this._state.panelClass)) {\n this._state.panelClass.forEach(cls => this._pane.classList.add(cls));\n } else {\n this._pane.classList.add(this._state.panelClass);\n }\n }\n\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n\n return attachResult;\n }\n/**\n * Detaches an overlay from a portal.\n * @return {?} Resolves when the overlay has been detached.\n */\ndetach(): Promise<any> {\n this.detachBackdrop();\n\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n\n if (this._state.scrollStrategy) {\n this._state.scrollStrategy.disable();\n }\n\n let /** @type {?} */ detachmentResult = this._portalHost.detach();\n\n // Only emit after everything is detached.\n this._detachments.next();\n\n return detachmentResult;\n }\n/**\n * Cleans up the overlay from the DOM.\n * @return {?}\n */\ndispose(): void {\n if (this._state.positionStrategy) {\n this._state.positionStrategy.dispose();\n }\n\n if (this._state.scrollStrategy) {\n this._state.scrollStrategy.disable();\n }\n\n this.detachBackdrop();\n this._portalHost.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._detachments.next();\n this._detachments.complete();\n }\n/**\n * Checks whether the overlay has been attached.\n * @return {?}\n */\nhasAttached(): boolean {\n return this._portalHost.hasAttached();\n }\n/**\n * Returns an observable that emits when the backdrop has been clicked.\n * @return {?}\n */\nbackdropClick(): Observable<void> {\n return this._backdropClick.asObservable();\n }\n/**\n * Returns an observable that emits when the overlay has been attached.\n * @return {?}\n */\nattachments(): Observable<void> {\n return this._attachments.asObservable();\n }\n/**\n * Returns an observable that emits when the overlay has been detached.\n * @return {?}\n */\ndetachments(): Observable<void> {\n return this._detachments.asObservable();\n }\n/**\n * Gets the current state config of the overlay.\n * @return {?}\n */\ngetState(): OverlayConfig {\n return this._state;\n }\n/**\n * Updates the position of the overlay based on the position strategy.\n * @return {?}\n */\nupdatePosition() {\n if (this._state.positionStrategy) {\n this._state.positionStrategy.apply();\n }\n }\n/**\n * Updates the text direction of the overlay panel.\n * @return {?}\n */\nprivate updateDirection() {\n this._pane.setAttribute('dir', /** @type {?} */(( this._state.direction)));\n }\n/**\n * Updates the size of the overlay based on the overlay config.\n * @return {?}\n */\nupdateSize() {\n if (this._state.width || this._state.width === 0) {\n this._pane.style.width = formatCssUnit(this._state.width);\n }\n\n if (this._state.height || this._state.height === 0) {\n this._pane.style.height = formatCssUnit(this._state.height);\n }\n\n if (this._state.minWidth || this._state.minWidth === 0) {\n this._pane.style.minWidth = formatCssUnit(this._state.minWidth);\n }\n\n if (this._state.minHeight || this._state.minHeight === 0) {\n this._pane.style.minHeight = formatCssUnit(this._state.minHeight);\n }\n\n if (this._state.maxWidth || this._state.maxWidth === 0) {\n this._pane.style.maxWidth = formatCssUnit(this._state.maxWidth);\n }\n\n if (this._state.maxHeight || this._state.maxHeight === 0) {\n this._pane.style.maxHeight = formatCssUnit(this._state.maxHeight);\n }\n }\n/**\n * Toggles the pointer events for the overlay pane element.\n * @param {?} enablePointer\n * @return {?}\n */\nprivate _togglePointerEvents(enablePointer: boolean) {\n this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';\n }\n/**\n * Attaches a backdrop for this overlay.\n * @return {?}\n */\nprivate _attachBackdrop() {\n this._backdropElement = document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n\n if (this._state.backdropClass) {\n this._backdropElement.classList.add(this._state.backdropClass);\n } /** @type {?} */((\n\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);\n\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', () => this._backdropClick.next(null));\n\n // Add class to fade-in the backdrop after one frame.\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add('cdk-overlay-backdrop-showing');\n }\n });\n }\n/**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n * @return {?}\n */\nprivate _updateStackingOrder() {\n if (this._pane.nextSibling) { /** @type {?} */((\n this._pane.parentNode)).appendChild(this._pane);\n }\n }\n/**\n * Detaches the backdrop (if any) associated with the overlay.\n * @return {?}\n */\ndetachBackdrop(): void {\n let /** @type {?} */ backdropToDetach = this._backdropElement;\n\n if (backdropToDetach) {\n let /** @type {?} */ finishDetach = () => {\n // It may not be attached to anything in certain cases (e.g. unit tests).\n if (backdropToDetach && backdropToDetach.parentNode) {\n backdropToDetach.parentNode.removeChild(backdropToDetach);\n }\n\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement == backdropToDetach) {\n this._backdropElement = null;\n }\n };\n\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n\n if (this._state.backdropClass) {\n backdropToDetach.classList.remove(this._state.backdropClass);\n }\n\n backdropToDetach.addEventListener('transitionend', finishDetach);\n\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._ngZone.runOutsideAngular(() => {\n setTimeout(finishDetach, 500);\n });\n }\n }\n}\n\nfunction OverlayRef_tsickle_Closure_declarations() {\n/** @type {?} */\nOverlayRef.prototype._backdropElement;\n/** @type {?} */\nOverlayRef.prototype._backdropClick;\n/** @type {?} */\nOverlayRef.prototype._attachments;\n/** @type {?} */\nOverlayRef.prototype._detachments;\n/** @type {?} */\nOverlayRef.prototype._portalHost;\n/** @type {?} */\nOverlayRef.prototype._pane;\n/** @type {?} */\nOverlayRef.prototype._state;\n/** @type {?} */\nOverlayRef.prototype._ngZone;\n}\n\n/**\n * @param {?} value\n * @return {?}\n */\nfunction formatCssUnit(value: number | string) {\n return typeof value === 'string' ? /** @type {?} */(( value as string)) : `${value}px`;\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 {PositionStrategy} from './position/position-strategy';\nimport {Direction} from '@angular/cdk/bidi';\nimport {ScrollStrategy} from './scroll/scroll-strategy';\nimport {NoopScrollStrategy} from './scroll/noop-scroll-strategy';\n/**\n * OverlayConfig captures the initial configuration used when opening an overlay.\n */\nexport class OverlayConfig {\n/**\n * Strategy with which to position the overlay.\n */\npositionStrategy?: PositionStrategy;\n/**\n * Strategy to be used when handling scroll events while the overlay is open.\n */\nscrollStrategy?: ScrollStrategy = new NoopScrollStrategy();\n/**\n * Custom class to add to the overlay pane.\n */\npanelClass?: string | string[] = '';\n/**\n * Whether the overlay has a backdrop.\n */\nhasBackdrop?: boolean = false;\n/**\n * Custom class to add to the backdrop\n */\nbackdropClass?: string = 'cdk-overlay-dark-backdrop';\n/**\n * The width of the overlay panel. If a number is provided, pixel units are assumed.\n */\nwidth?: number | string;\n/**\n * The height of the overlay panel. If a number is provided, pixel units are assumed.\n */\nheight?: number | string;\n/**\n * The min-width of the overlay panel. If a number is provided, pixel units are assumed.\n */\nminWidth?: number | string;\n/**\n * The min-height of the overlay panel. If a number is provided, pixel units are assumed.\n */\nminHeight?: number | string;\n/**\n * The max-width of the overlay panel. If a number is provided, pixel units are assumed.\n */\nmaxWidth?: number | string;\n/**\n * The max-height of the overlay panel. If a number is provided, pixel units are assumed.\n */\nmaxHeight?: number | string;\n/**\n * The direction of the text in the overlay panel.\n */\ndirection?: Direction = 'ltr';\n/**\n * @param {?=} state\n */\nconstructor(state?: OverlayConfig) {\n if (state) {\n Object.keys(state).forEach(key => this[key] = state[key]);\n }\n }\n}\n\nfunction OverlayConfig_tsickle_Closure_declarations() {\n/**\n * Strategy with which to position the overlay.\n * @type {?}\n */\nOverlayConfig.prototype.positionStrategy;\n/**\n * Strategy to be used when handling scroll events while the overlay is open.\n * @type {?}\n */\nOverlayConfig.prototype.scrollStrategy;\n/**\n * Custom class to add to the overlay pane.\n * @type {?}\n */\nOverlayConfig.prototype.panelClass;\n/**\n * Whether the overlay has a backdrop.\n * @type {?}\n */\nOverlayConfig.prototype.hasBackdrop;\n/**\n * Custom class to add to the backdrop\n * @type {?}\n */\nOverlayConfig.prototype.backdropClass;\n/**\n * The width of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\nOverlayConfig.prototype.width;\n/**\n * The height of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\nOverlayConfig.prototype.height;\n/**\n * The min-width of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\nOverlayConfig.prototype.minWidth;\n/**\n * The min-height of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\nOverlayConfig.prototype.minHeight;\n/**\n * The max-width of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\nOverlayConfig.prototype.maxWidth;\n/**\n * The max-height of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\nOverlayConfig.prototype.maxHeight;\n/**\n * The direction of the text in the overlay panel.\n * @type {?}\n */\nOverlayConfig.prototype.direction;\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 {ScrollStrategy} from './scroll-strategy';\n/**\n * Scroll strategy that doesn't do anything.\n */\nexport class NoopScrollStrategy implements ScrollStrategy {\n/**\n * @return {?}\n */\nenable() { }\n/**\n * @return {?}\n */\ndisable() { }\n/**\n * @return {?}\n */\nattach() { }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.es5.js","sources":["../../packages/cdk/esm5/overlay/scroll/noop-scroll-strategy.js","../../packages/cdk/esm5/overlay/overlay-config.js","../../packages/cdk/esm5/overlay/overlay-ref.js","../../packages/cdk/esm5/overlay/position/connected-position.js","../../packages/cdk/esm5/overlay/position/scroll-clip.js","../../packages/cdk/esm5/overlay/position/connected-position-strategy.js","../../packages/cdk/esm5/overlay/position/global-position-strategy.js","../../packages/cdk/esm5/overlay/position/overlay-position-builder.js","../../packages/cdk/esm5/overlay/overlay-container.js","../../packages/cdk/esm5/overlay/scroll/scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/close-scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/block-scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/reposition-scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/scroll-strategy-options.js","../../packages/cdk/esm5/overlay/overlay.js","../../packages/cdk/esm5/overlay/fullscreen-overlay-container.js","../../packages/cdk/esm5/overlay/overlay-directives.js","../../packages/cdk/esm5/overlay/overlay-module.js","../../packages/cdk/esm5/overlay/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 * Scroll strategy that doesn't do anything.\n */\nvar NoopScrollStrategy = (function () {\n function NoopScrollStrategy() {\n }\n /**\n * @return {?}\n */\n NoopScrollStrategy.prototype.enable = function () { };\n /**\n * @return {?}\n */\n NoopScrollStrategy.prototype.disable = function () { };\n /**\n * @return {?}\n */\n NoopScrollStrategy.prototype.attach = function () { };\n return NoopScrollStrategy;\n}());\nexport { NoopScrollStrategy };\n//# sourceMappingURL=noop-scroll-strategy.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 { NoopScrollStrategy } from './scroll/noop-scroll-strategy';\n/**\n * OverlayConfig captures the initial configuration used when opening an overlay.\n */\nvar OverlayConfig = (function () {\n /**\n * @param {?=} config\n */\n function OverlayConfig(config) {\n var _this = this;\n /**\n * Strategy to be used when handling scroll events while the overlay is open.\n */\n this.scrollStrategy = new NoopScrollStrategy();\n /**\n * Custom class to add to the overlay pane.\n */\n this.panelClass = '';\n /**\n * Whether the overlay has a backdrop.\n */\n this.hasBackdrop = false;\n /**\n * Custom class to add to the backdrop\n */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\n /**\n * The direction of the text in the overlay panel.\n */\n this.direction = 'ltr';\n if (config) {\n Object.keys(config).forEach(function (key) { return _this[key] = config[key]; });\n }\n }\n return OverlayConfig;\n}());\nexport { OverlayConfig };\nfunction OverlayConfig_tsickle_Closure_declarations() {\n /**\n * Strategy with which to position the overlay.\n * @type {?}\n */\n OverlayConfig.prototype.positionStrategy;\n /**\n * Strategy to be used when handling scroll events while the overlay is open.\n * @type {?}\n */\n OverlayConfig.prototype.scrollStrategy;\n /**\n * Custom class to add to the overlay pane.\n * @type {?}\n */\n OverlayConfig.prototype.panelClass;\n /**\n * Whether the overlay has a backdrop.\n * @type {?}\n */\n OverlayConfig.prototype.hasBackdrop;\n /**\n * Custom class to add to the backdrop\n * @type {?}\n */\n OverlayConfig.prototype.backdropClass;\n /**\n * The width of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\n OverlayConfig.prototype.width;\n /**\n * The height of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\n OverlayConfig.prototype.height;\n /**\n * The min-width of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\n OverlayConfig.prototype.minWidth;\n /**\n * The min-height of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\n OverlayConfig.prototype.minHeight;\n /**\n * The max-width of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\n OverlayConfig.prototype.maxWidth;\n /**\n * The max-height of the overlay panel. If a number is provided, pixel units are assumed.\n * @type {?}\n */\n OverlayConfig.prototype.maxHeight;\n /**\n * The direction of the text in the overlay panel.\n * @type {?}\n */\n OverlayConfig.prototype.direction;\n}\n//# sourceMappingURL=overlay-config.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 * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nvar OverlayRef = (function () {\n /**\n * @param {?} _portalHost\n * @param {?} _pane\n * @param {?} _config\n * @param {?} _ngZone\n */\n function OverlayRef(_portalHost, _pane, _config, _ngZone) {\n this._portalHost = _portalHost;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n if (_config.scrollStrategy) {\n _config.scrollStrategy.attach(this);\n }\n }\n Object.defineProperty(OverlayRef.prototype, \"overlayElement\", {\n /**\n * The overlay's HTML element\n * @return {?}\n */\n get: function () {\n return this._pane;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Attaches the overlay to a portal instance and adds the backdrop.\n * @param {?} portal Portal instance to which to attach the overlay.\n * @return {?} The portal attachment result.\n */\n OverlayRef.prototype.attach = function (portal) {\n var _this = this;\n var /** @type {?} */ attachResult = this._portalHost.attach(portal);\n if (this._config.positionStrategy) {\n this._config.positionStrategy.attach(this);\n }\n // Update the pane element with the given configuration.\n this._updateStackingOrder();\n this.updateSize();\n this.updateDirection();\n this.updatePosition();\n if (this._config.scrollStrategy) {\n this._config.scrollStrategy.enable();\n }\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n // We can't do a spread here, because IE doesn't support setting multiple classes.\n if (Array.isArray(this._config.panelClass)) {\n this._config.panelClass.forEach(function (cls) { return _this._pane.classList.add(cls); });\n }\n else {\n this._pane.classList.add(this._config.panelClass);\n }\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n return attachResult;\n };\n /**\n * Detaches an overlay from a portal.\n * @return {?} The portal detachment result.\n */\n OverlayRef.prototype.detach = function () {\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._config.positionStrategy && this._config.positionStrategy.detach) {\n this._config.positionStrategy.detach();\n }\n if (this._config.scrollStrategy) {\n this._config.scrollStrategy.disable();\n }\n var /** @type {?} */ detachmentResult = this._portalHost.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n return detachmentResult;\n };\n /**\n * Cleans up the overlay from the DOM.\n * @return {?}\n */\n OverlayRef.prototype.dispose = function () {\n if (this._config.positionStrategy) {\n this._config.positionStrategy.dispose();\n }\n if (this._config.scrollStrategy) {\n this._config.scrollStrategy.disable();\n }\n this.detachBackdrop();\n this._portalHost.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._detachments.next();\n this._detachments.complete();\n };\n /**\n * Checks whether the overlay has been attached.\n * @return {?}\n */\n OverlayRef.prototype.hasAttached = function () {\n return this._portalHost.hasAttached();\n };\n /**\n * Returns an observable that emits when the backdrop has been clicked.\n * @return {?}\n */\n OverlayRef.prototype.backdropClick = function () {\n return this._backdropClick.asObservable();\n };\n /**\n * Returns an observable that emits when the overlay has been attached.\n * @return {?}\n */\n OverlayRef.prototype.attachments = function () {\n return this._attachments.asObservable();\n };\n /**\n * Returns an observable that emits when the overlay has been detached.\n * @return {?}\n */\n OverlayRef.prototype.detachments = function () {\n return this._detachments.asObservable();\n };\n /**\n * Gets the current config of the overlay.\n * @return {?}\n */\n OverlayRef.prototype.getConfig = function () {\n return this._config;\n };\n /**\n * Updates the position of the overlay based on the position strategy.\n * @return {?}\n */\n OverlayRef.prototype.updatePosition = function () {\n if (this._config.positionStrategy) {\n this._config.positionStrategy.apply();\n }\n };\n /**\n * Updates the text direction of the overlay panel.\n * @return {?}\n */\n OverlayRef.prototype.updateDirection = function () {\n this._pane.setAttribute('dir', /** @type {?} */ ((this._config.direction)));\n };\n /**\n * Updates the size of the overlay based on the overlay config.\n * @return {?}\n */\n OverlayRef.prototype.updateSize = function () {\n if (this._config.width || this._config.width === 0) {\n this._pane.style.width = formatCssUnit(this._config.width);\n }\n if (this._config.height || this._config.height === 0) {\n this._pane.style.height = formatCssUnit(this._config.height);\n }\n if (this._config.minWidth || this._config.minWidth === 0) {\n this._pane.style.minWidth = formatCssUnit(this._config.minWidth);\n }\n if (this._config.minHeight || this._config.minHeight === 0) {\n this._pane.style.minHeight = formatCssUnit(this._config.minHeight);\n }\n if (this._config.maxWidth || this._config.maxWidth === 0) {\n this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);\n }\n if (this._config.maxHeight || this._config.maxHeight === 0) {\n this._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);\n }\n };\n /**\n * Toggles the pointer events for the overlay pane element.\n * @param {?} enablePointer\n * @return {?}\n */\n OverlayRef.prototype._togglePointerEvents = function (enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';\n };\n /**\n * Attaches a backdrop for this overlay.\n * @return {?}\n */\n OverlayRef.prototype._attachBackdrop = function () {\n var _this = this;\n this._backdropElement = document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._config.backdropClass) {\n this._backdropElement.classList.add(this._config.backdropClass);\n } /** @type {?} */\n ((\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', function () { return _this._backdropClick.next(null); });\n // Add class to fade-in the backdrop after one frame.\n requestAnimationFrame(function () {\n if (_this._backdropElement) {\n _this._backdropElement.classList.add('cdk-overlay-backdrop-showing');\n }\n });\n };\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n * @return {?}\n */\n OverlayRef.prototype._updateStackingOrder = function () {\n if (this._pane.nextSibling) {\n ((this._pane.parentNode)).appendChild(this._pane);\n }\n };\n /**\n * Detaches the backdrop (if any) associated with the overlay.\n * @return {?}\n */\n OverlayRef.prototype.detachBackdrop = function () {\n var _this = this;\n var /** @type {?} */ backdropToDetach = this._backdropElement;\n if (backdropToDetach) {\n var /** @type {?} */ finishDetach_1 = function () {\n // It may not be attached to anything in certain cases (e.g. unit tests).\n if (backdropToDetach && backdropToDetach.parentNode) {\n backdropToDetach.parentNode.removeChild(backdropToDetach);\n }\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (_this._backdropElement == backdropToDetach) {\n _this._backdropElement = null;\n }\n };\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n if (this._config.backdropClass) {\n backdropToDetach.classList.remove(this._config.backdropClass);\n }\n backdropToDetach.addEventListener('transitionend', finishDetach_1);\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._ngZone.runOutsideAngular(function () {\n setTimeout(finishDetach_1, 500);\n });\n }\n };\n return OverlayRef;\n}());\nexport { OverlayRef };\nfunction OverlayRef_tsickle_Closure_declarations() {\n /** @type {?} */\n OverlayRef.prototype._backdropElement;\n /** @type {?} */\n OverlayRef.prototype._backdropClick;\n /** @type {?} */\n OverlayRef.prototype._attachments;\n /** @type {?} */\n OverlayRef.prototype._detachments;\n /** @type {?} */\n OverlayRef.prototype._portalHost;\n /** @type {?} */\n OverlayRef.prototype._pane;\n /** @type {?} */\n OverlayRef.prototype._config;\n /** @type {?} */\n OverlayRef.prototype._ngZone;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction formatCssUnit(value) {\n return typeof value === 'string' ? (value) : value + \"px\";\n}\n//# sourceMappingURL=overlay-ref.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/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */\nimport { Optional } from '@angular/core';\n/**\n * The points of the origin element and the overlay element to connect.\n */\nvar ConnectionPositionPair = (function () {\n /**\n * @param {?} origin\n * @param {?} overlay\n */\n function ConnectionPositionPair(origin, overlay) {\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n return ConnectionPositionPair;\n}());\nexport { ConnectionPositionPair };\nfunction ConnectionPositionPair_tsickle_Closure_declarations() {\n /** @type {?} */\n ConnectionPositionPair.prototype.originX;\n /** @type {?} */\n ConnectionPositionPair.prototype.originY;\n /** @type {?} */\n ConnectionPositionPair.prototype.overlayX;\n /** @type {?} */\n ConnectionPositionPair.prototype.overlayY;\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n */\nvar ScrollingVisibility = (function () {\n function ScrollingVisibility() {\n }\n return ScrollingVisibility;\n}());\nexport { ScrollingVisibility };\nfunction ScrollingVisibility_tsickle_Closure_declarations() {\n /** @type {?} */\n ScrollingVisibility.prototype.isOriginClipped;\n /** @type {?} */\n ScrollingVisibility.prototype.isOriginOutsideView;\n /** @type {?} */\n ScrollingVisibility.prototype.isOverlayClipped;\n /** @type {?} */\n ScrollingVisibility.prototype.isOverlayOutsideView;\n}\n/**\n * The change event emitted by the strategy when a fallback position is used.\n */\nvar ConnectedOverlayPositionChange = (function () {\n /**\n * @param {?} connectionPair\n * @param {?} scrollableViewProperties\n */\n function ConnectedOverlayPositionChange(connectionPair, scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n /**\n * @nocollapse\n */\n ConnectedOverlayPositionChange.ctorParameters = function () { return [\n { type: ConnectionPositionPair, },\n { type: ScrollingVisibility, decorators: [{ type: Optional },] },\n ]; };\n return ConnectedOverlayPositionChange;\n}());\nexport { ConnectedOverlayPositionChange };\nfunction ConnectedOverlayPositionChange_tsickle_Closure_declarations() {\n /**\n * @nocollapse\n * @type {?}\n */\n ConnectedOverlayPositionChange.ctorParameters;\n /** @type {?} */\n ConnectedOverlayPositionChange.prototype.connectionPair;\n /** @type {?} */\n ConnectedOverlayPositionChange.prototype.scrollableViewProperties;\n}\n//# sourceMappingURL=connected-position.js.map","/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is scrolled out of view\n */\nexport function isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(function (containerBounds) {\n var /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;\n var /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;\n var /** @type {?} */ outsideLeft = element.right < containerBounds.left;\n var /** @type {?} */ outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is clipped\n */\nexport function isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(function (scrollContainerRect) {\n var /** @type {?} */ clippedAbove = element.top < scrollContainerRect.top;\n var /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;\n var /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;\n var /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n });\n}\n//# sourceMappingURL=scroll-clip.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 { ConnectionPositionPair, ConnectedOverlayPositionChange, } from './connected-position';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { isElementScrolledOutsideView, isElementClippedByScrolling } from './scroll-clip';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nvar ConnectedPositionStrategy = (function () {\n /**\n * @param {?} originPos\n * @param {?} overlayPos\n * @param {?} _connectedTo\n * @param {?} _viewportRuler\n */\n function ConnectedPositionStrategy(originPos, overlayPos, _connectedTo, _viewportRuler) {\n this._connectedTo = _connectedTo;\n this._viewportRuler = _viewportRuler;\n /**\n * Layout direction of the position strategy.\n */\n this._dir = 'ltr';\n /**\n * The offset in pixels for the overlay connection point on the x-axis\n */\n this._offsetX = 0;\n /**\n * The offset in pixels for the overlay connection point on the y-axis\n */\n this._offsetY = 0;\n /**\n * The Scrollable containers used to check scrollable view properties on position change.\n */\n this.scrollables = [];\n /**\n * Subscription to viewport resize events.\n */\n this._resizeSubscription = Subscription.EMPTY;\n /**\n * Ordered list of preferred positions, from most to least desirable.\n */\n this._preferredPositions = [];\n this._onPositionChange = new Subject();\n this._origin = this._connectedTo.nativeElement;\n this.withFallbackPosition(originPos, overlayPos);\n }\n Object.defineProperty(ConnectedPositionStrategy.prototype, \"_isRtl\", {\n /**\n * Whether the we're dealing with an RTL context\n * @return {?}\n */\n get: function () {\n return this._dir === 'rtl';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedPositionStrategy.prototype, \"onPositionChange\", {\n /**\n * Emits an event when the connection point changes.\n * @return {?}\n */\n get: function () {\n return this._onPositionChange.asObservable();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedPositionStrategy.prototype, \"positions\", {\n /**\n * Ordered list of preferred positions, from most to least desirable.\n * @return {?}\n */\n get: function () {\n return this._preferredPositions;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} overlayRef\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.attach = function (overlayRef) {\n var _this = this;\n this._overlayRef = overlayRef;\n this._pane = overlayRef.overlayElement;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(function () { return _this.apply(); });\n };\n /**\n * Performs any cleanup after the element is destroyed.\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.dispose = function () {\n this._resizeSubscription.unsubscribe();\n };\n /**\n * \\@docs-private\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.detach = function () {\n this._resizeSubscription.unsubscribe();\n };\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin fits on-screen.\n * \\@docs-private\n *\n * @return {?} Resolves when the styles have been applied.\n */\n ConnectedPositionStrategy.prototype.apply = function () {\n // We need the bounding rects for the origin and the overlay to determine how to position\n // the overlay relative to the origin.\n var /** @type {?} */ element = this._pane;\n var /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n var /** @type {?} */ overlayRect = element.getBoundingClientRect();\n // We use the viewport rect to determine whether a position would go off-screen.\n var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n // Fallback point if none of the fallbacks fit into the viewport.\n var /** @type {?} */ fallbackPoint;\n var /** @type {?} */ fallbackPosition;\n // We want to place the overlay in the first of the preferred positions such that the\n // overlay fits on-screen.\n for (var _i = 0, _a = this._preferredPositions; _i < _a.length; _i++) {\n var pos = _a[_i];\n // Get the (x, y) point of connection on the origin, and then use that to get the\n // (top, left) coordinate for the overlay at `pos`.\n var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);\n var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);\n // If the overlay in the calculated position fits on-screen, put it there and we're done.\n if (overlayPoint.fitsInViewport) {\n this._setElementPosition(element, overlayRect, overlayPoint, pos);\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastConnectedPosition = pos;\n return;\n }\n else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {\n fallbackPoint = overlayPoint;\n fallbackPosition = pos;\n }\n }\n // If none of the preferred positions were in the viewport, take the one\n // with the largest visible area.\n this._setElementPosition(element, overlayRect, /** @type {?} */ ((fallbackPoint)), /** @type {?} */ ((fallbackPosition)));\n };\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.recalculateLastPosition = function () {\n var /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n var /** @type {?} */ overlayRect = this._pane.getBoundingClientRect();\n var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n var /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];\n var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);\n var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);\n this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);\n };\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n * @param {?} scrollables\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.withScrollableContainers = function (scrollables) {\n this.scrollables = scrollables;\n };\n /**\n * Adds a new preferred fallback position.\n * @param {?} originPos\n * @param {?} overlayPos\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.withFallbackPosition = function (originPos, overlayPos) {\n this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));\n return this;\n };\n /**\n * Sets the layout direction so the overlay's position can be adjusted to match.\n * @param {?} dir New layout direction.\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.withDirection = function (dir) {\n this._dir = dir;\n return this;\n };\n /**\n * Sets an offset for the overlay's connection point on the x-axis\n * @param {?} offset New offset in the X axis.\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.withOffsetX = function (offset) {\n this._offsetX = offset;\n return this;\n };\n /**\n * Sets an offset for the overlay's connection point on the y-axis\n * @param {?} offset New offset in the Y axis.\n * @return {?}\n */\n ConnectedPositionStrategy.prototype.withOffsetY = function (offset) {\n this._offsetY = offset;\n return this;\n };\n /**\n * Gets the horizontal (x) \"start\" dimension based on whether the overlay is in an RTL context.\n * @param {?} rect\n * @return {?}\n */\n ConnectedPositionStrategy.prototype._getStartX = function (rect) {\n return this._isRtl ? rect.right : rect.left;\n };\n /**\n * Gets the horizontal (x) \"end\" dimension based on whether the overlay is in an RTL context.\n * @param {?} rect\n * @return {?}\n */\n ConnectedPositionStrategy.prototype._getEndX = function (rect) {\n return this._isRtl ? rect.left : rect.right;\n };\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n * @param {?} originRect\n * @param {?} pos\n * @return {?}\n */\n ConnectedPositionStrategy.prototype._getOriginConnectionPoint = function (originRect, pos) {\n var /** @type {?} */ originStartX = this._getStartX(originRect);\n var /** @type {?} */ originEndX = this._getEndX(originRect);\n var /** @type {?} */ x;\n if (pos.originX == 'center') {\n x = originStartX + (originRect.width / 2);\n }\n else {\n x = pos.originX == 'start' ? originStartX : originEndX;\n }\n var /** @type {?} */ y;\n if (pos.originY == 'center') {\n y = originRect.top + (originRect.height / 2);\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n return { x: x, y: y };\n };\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected, as well as how much of the element\n * would be inside the viewport at that position.\n * @param {?} originPoint\n * @param {?} overlayRect\n * @param {?} viewportRect\n * @param {?} pos\n * @return {?}\n */\n ConnectedPositionStrategy.prototype._getOverlayPoint = function (originPoint, overlayRect, viewportRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position\n // relative to the origin point.\n var /** @type {?} */ overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl ? -overlayRect.width : 0;\n }\n else {\n overlayStartX = this._isRtl ? 0 : -overlayRect.width;\n }\n var /** @type {?} */ overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n var /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;\n var /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;\n // How much the overlay would overflow at this position, on each side.\n var /** @type {?} */ leftOverflow = 0 - x;\n var /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;\n var /** @type {?} */ topOverflow = 0 - y;\n var /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;\n // Visible parts of the element on each axis.\n var /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);\n var /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);\n // The area of the element that's within the viewport.\n var /** @type {?} */ visibleArea = visibleWidth * visibleHeight;\n var /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;\n return { x: x, y: y, fitsInViewport: fitsInViewport, visibleArea: visibleArea };\n };\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n * @param {?} overlay\n * @return {?}\n */\n ConnectedPositionStrategy.prototype._getScrollVisibility = function (overlay) {\n var /** @type {?} */ originBounds = this._origin.getBoundingClientRect();\n var /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();\n var /** @type {?} */ scrollContainerBounds = this.scrollables.map(function (s) { return s.getElementRef().nativeElement.getBoundingClientRect(); });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n };\n /**\n * Physically positions the overlay element to the given coordinate.\n * @param {?} element\n * @param {?} overlayRect\n * @param {?} overlayPoint\n * @param {?} pos\n * @return {?}\n */\n ConnectedPositionStrategy.prototype._setElementPosition = function (element, overlayRect, overlayPoint, pos) {\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear above\n // or below the origin and the direction in which the element will expand.\n var /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n var /** @type {?} */ y = verticalStyleProperty === 'top' ?\n overlayPoint.y :\n document.documentElement.clientHeight - (overlayPoint.y + overlayRect.height);\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n var /** @type {?} */ horizontalStyleProperty;\n if (this._dir === 'rtl') {\n horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';\n }\n else {\n horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n var /** @type {?} */ x = horizontalStyleProperty === 'left' ?\n overlayPoint.x :\n document.documentElement.clientWidth - (overlayPoint.x + overlayRect.width);\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n ['top', 'bottom', 'left', 'right'].forEach(function (p) { return element.style[p] = null; });\n element.style[verticalStyleProperty] = y + \"px\";\n element.style[horizontalStyleProperty] = x + \"px\";\n // Notify that the position has been changed along with its change properties.\n var /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);\n var /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);\n this._onPositionChange.next(positionChange);\n };\n /**\n * Subtracts the amount that an element is overflowing on an axis from it's length.\n * @param {?} length\n * @param {...?} overflows\n * @return {?}\n */\n ConnectedPositionStrategy.prototype._subtractOverflows = function (length) {\n var overflows = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n overflows[_i - 1] = arguments[_i];\n }\n return overflows.reduce(function (currentValue, currentOverflow) {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n };\n return ConnectedPositionStrategy;\n}());\nexport { ConnectedPositionStrategy };\nfunction ConnectedPositionStrategy_tsickle_Closure_declarations() {\n /**\n * The overlay to which this strategy is attached.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._overlayRef;\n /**\n * Layout direction of the position strategy.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._dir;\n /**\n * The offset in pixels for the overlay connection point on the x-axis\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._offsetX;\n /**\n * The offset in pixels for the overlay connection point on the y-axis\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._offsetY;\n /**\n * The Scrollable containers used to check scrollable view properties on position change.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype.scrollables;\n /**\n * Subscription to viewport resize events.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._resizeSubscription;\n /**\n * Ordered list of preferred positions, from most to least desirable.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._preferredPositions;\n /**\n * The origin element against which the overlay will be positioned.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._origin;\n /**\n * The overlay pane element.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._pane;\n /**\n * The last position to have been calculated as the best fit position.\n * @type {?}\n */\n ConnectedPositionStrategy.prototype._lastConnectedPosition;\n /** @type {?} */\n ConnectedPositionStrategy.prototype._onPositionChange;\n /** @type {?} */\n ConnectedPositionStrategy.prototype._connectedTo;\n /** @type {?} */\n ConnectedPositionStrategy.prototype._viewportRuler;\n}\n//# sourceMappingURL=connected-position-strategy.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/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nvar GlobalPositionStrategy = (function () {\n function GlobalPositionStrategy() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._leftOffset = '';\n this._rightOffset = '';\n this._alignItems = '';\n this._justifyContent = '';\n this._width = '';\n this._height = '';\n this._wrapper = null;\n }\n /**\n * @param {?} overlayRef\n * @return {?}\n */\n GlobalPositionStrategy.prototype.attach = function (overlayRef) {\n this._overlayRef = overlayRef;\n };\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param {?=} value New top offset.\n * @return {?}\n */\n GlobalPositionStrategy.prototype.top = function (value) {\n if (value === void 0) { value = ''; }\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n };\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param {?=} value New left offset.\n * @return {?}\n */\n GlobalPositionStrategy.prototype.left = function (value) {\n if (value === void 0) { value = ''; }\n this._rightOffset = '';\n this._leftOffset = value;\n this._justifyContent = 'flex-start';\n return this;\n };\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param {?=} value New bottom offset.\n * @return {?}\n */\n GlobalPositionStrategy.prototype.bottom = function (value) {\n if (value === void 0) { value = ''; }\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n };\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param {?=} value New right offset.\n * @return {?}\n */\n GlobalPositionStrategy.prototype.right = function (value) {\n if (value === void 0) { value = ''; }\n this._leftOffset = '';\n this._rightOffset = value;\n this._justifyContent = 'flex-end';\n return this;\n };\n /**\n * Sets the overlay width and clears any previously set width.\n * @param {?=} value New width for the overlay\n * @return {?}\n */\n GlobalPositionStrategy.prototype.width = function (value) {\n if (value === void 0) { value = ''; }\n this._width = value;\n // When the width is 100%, we should reset the `left` and the offset,\n // in order to ensure that the element is flush against the viewport edge.\n if (value === '100%') {\n this.left('0px');\n }\n return this;\n };\n /**\n * Sets the overlay height and clears any previously set height.\n * @param {?=} value New height for the overlay\n * @return {?}\n */\n GlobalPositionStrategy.prototype.height = function (value) {\n if (value === void 0) { value = ''; }\n this._height = value;\n // When the height is 100%, we should reset the `top` and the offset,\n // in order to ensure that the element is flush against the viewport edge.\n if (value === '100%') {\n this.top('0px');\n }\n return this;\n };\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param {?=} offset Overlay offset from the horizontal center.\n * @return {?}\n */\n GlobalPositionStrategy.prototype.centerHorizontally = function (offset) {\n if (offset === void 0) { offset = ''; }\n this.left(offset);\n this._justifyContent = 'center';\n return this;\n };\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param {?=} offset Overlay offset from the vertical center.\n * @return {?}\n */\n GlobalPositionStrategy.prototype.centerVertically = function (offset) {\n if (offset === void 0) { offset = ''; }\n this.top(offset);\n this._alignItems = 'center';\n return this;\n };\n /**\n * Apply the position to the element.\n * \\@docs-private\n *\n * @return {?} Resolved when the styles have been applied.\n */\n GlobalPositionStrategy.prototype.apply = function () {\n var /** @type {?} */ element = this._overlayRef.overlayElement;\n if (!this._wrapper && element.parentNode) {\n this._wrapper = document.createElement('div');\n this._wrapper.classList.add('cdk-global-overlay-wrapper');\n element.parentNode.insertBefore(this._wrapper, element);\n this._wrapper.appendChild(element);\n }\n var /** @type {?} */ styles = element.style;\n var /** @type {?} */ parentStyles = ((element.parentNode)).style;\n styles.position = this._cssPosition;\n styles.marginTop = this._topOffset;\n styles.marginLeft = this._leftOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = this._rightOffset;\n styles.width = this._width;\n styles.height = this._height;\n parentStyles.justifyContent = this._justifyContent;\n parentStyles.alignItems = this._alignItems;\n };\n /**\n * Removes the wrapper element from the DOM.\n * @return {?}\n */\n GlobalPositionStrategy.prototype.dispose = function () {\n if (this._wrapper && this._wrapper.parentNode) {\n this._wrapper.parentNode.removeChild(this._wrapper);\n this._wrapper = null;\n }\n };\n return GlobalPositionStrategy;\n}());\nexport { GlobalPositionStrategy };\nfunction GlobalPositionStrategy_tsickle_Closure_declarations() {\n /**\n * The overlay to which this strategy is attached.\n * @type {?}\n */\n GlobalPositionStrategy.prototype._overlayRef;\n /** @type {?} */\n GlobalPositionStrategy.prototype._cssPosition;\n /** @type {?} */\n GlobalPositionStrategy.prototype._topOffset;\n /** @type {?} */\n GlobalPositionStrategy.prototype._bottomOffset;\n /** @type {?} */\n GlobalPositionStrategy.prototype._leftOffset;\n /** @type {?} */\n GlobalPositionStrategy.prototype._rightOffset;\n /** @type {?} */\n GlobalPositionStrategy.prototype._alignItems;\n /** @type {?} */\n GlobalPositionStrategy.prototype._justifyContent;\n /** @type {?} */\n GlobalPositionStrategy.prototype._width;\n /** @type {?} */\n GlobalPositionStrategy.prototype._height;\n /** @type {?} */\n GlobalPositionStrategy.prototype._wrapper;\n}\n//# sourceMappingURL=global-position-strategy.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 } from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { ConnectedPositionStrategy } from './connected-position-strategy';\nimport { GlobalPositionStrategy } from './global-position-strategy';\n/**\n * Builder for overlay position strategy.\n */\nvar OverlayPositionBuilder = (function () {\n /**\n * @param {?} _viewportRuler\n */\n function OverlayPositionBuilder(_viewportRuler) {\n this._viewportRuler = _viewportRuler;\n }\n /**\n * Creates a global position strategy.\n * @return {?}\n */\n OverlayPositionBuilder.prototype.global = function () {\n return new GlobalPositionStrategy();\n };\n /**\n * Creates a relative position strategy.\n * @param {?} elementRef\n * @param {?} originPos\n * @param {?} overlayPos\n * @return {?}\n */\n OverlayPositionBuilder.prototype.connectedTo = function (elementRef, originPos, overlayPos) {\n return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);\n };\n OverlayPositionBuilder.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n OverlayPositionBuilder.ctorParameters = function () { return [\n { type: ViewportRuler, },\n ]; };\n return OverlayPositionBuilder;\n}());\nexport { OverlayPositionBuilder };\nfunction OverlayPositionBuilder_tsickle_Closure_declarations() {\n /** @type {?} */\n OverlayPositionBuilder.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n OverlayPositionBuilder.ctorParameters;\n /** @type {?} */\n OverlayPositionBuilder.prototype._viewportRuler;\n}\n//# sourceMappingURL=overlay-position-builder.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 * The OverlayContainer is the container in which all overlays will load.\n * It should be provided in the root component to ensure it is properly shared.\n */\nvar OverlayContainer = (function () {\n function OverlayContainer() {\n }\n /**\n * @return {?}\n */\n OverlayContainer.prototype.ngOnDestroy = function () {\n if (this._containerElement && this._containerElement.parentNode) {\n this._containerElement.parentNode.removeChild(this._containerElement);\n }\n };\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @return {?} the container element\n */\n OverlayContainer.prototype.getContainerElement = function () {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n };\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n * @return {?}\n */\n OverlayContainer.prototype._createContainer = function () {\n var /** @type {?} */ container = document.createElement('div');\n container.classList.add('cdk-overlay-container');\n document.body.appendChild(container);\n this._containerElement = container;\n };\n OverlayContainer.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n OverlayContainer.ctorParameters = function () { return []; };\n return OverlayContainer;\n}());\nexport { OverlayContainer };\nfunction OverlayContainer_tsickle_Closure_declarations() {\n /** @type {?} */\n OverlayContainer.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n OverlayContainer.ctorParameters;\n /** @type {?} */\n OverlayContainer.prototype._containerElement;\n}\n/**\n * \\@docs-private\n * @param {?} parentContainer\n * @return {?}\n */\nexport function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer) {\n return parentContainer || new OverlayContainer();\n}\n/**\n * \\@docs-private\n */\nexport var OVERLAY_CONTAINER_PROVIDER = {\n // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.\n provide: OverlayContainer,\n deps: [[new Optional(), new SkipSelf(), OverlayContainer]],\n useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=overlay-container.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/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n * @return {?}\n */\nexport function getMatScrollStrategyAlreadyAttachedError() {\n return Error(\"Scroll strategy has already been attached.\");\n}\n//# sourceMappingURL=scroll-strategy.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 { getMatScrollStrategyAlreadyAttachedError } from './scroll-strategy';\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nvar CloseScrollStrategy = (function () {\n /**\n * @param {?} _scrollDispatcher\n */\n function CloseScrollStrategy(_scrollDispatcher) {\n this._scrollDispatcher = _scrollDispatcher;\n this._scrollSubscription = null;\n }\n /**\n * @param {?} overlayRef\n * @return {?}\n */\n CloseScrollStrategy.prototype.attach = function (overlayRef) {\n if (this._overlayRef) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n };\n /**\n * @return {?}\n */\n CloseScrollStrategy.prototype.enable = function () {\n var _this = this;\n if (!this._scrollSubscription) {\n this._scrollSubscription = this._scrollDispatcher.scrolled(0, function () {\n if (_this._overlayRef.hasAttached()) {\n _this._overlayRef.detach();\n }\n _this.disable();\n });\n }\n };\n /**\n * @return {?}\n */\n CloseScrollStrategy.prototype.disable = function () {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n };\n return CloseScrollStrategy;\n}());\nexport { CloseScrollStrategy };\nfunction CloseScrollStrategy_tsickle_Closure_declarations() {\n /** @type {?} */\n CloseScrollStrategy.prototype._scrollSubscription;\n /** @type {?} */\n CloseScrollStrategy.prototype._overlayRef;\n /** @type {?} */\n CloseScrollStrategy.prototype._scrollDispatcher;\n}\n//# sourceMappingURL=close-scroll-strategy.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/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nvar BlockScrollStrategy = (function () {\n /**\n * @param {?} _viewportRuler\n */\n function BlockScrollStrategy(_viewportRuler) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = { top: '', left: '' };\n this._isEnabled = false;\n }\n /**\n * @return {?}\n */\n BlockScrollStrategy.prototype.attach = function () { };\n /**\n * @return {?}\n */\n BlockScrollStrategy.prototype.enable = function () {\n if (this._canBeEnabled()) {\n var /** @type {?} */ root = document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = -this._previousScrollPosition.left + \"px\";\n root.style.top = -this._previousScrollPosition.top + \"px\";\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n };\n /**\n * @return {?}\n */\n BlockScrollStrategy.prototype.disable = function () {\n if (this._isEnabled) {\n this._isEnabled = false;\n document.documentElement.style.left = this._previousHTMLStyles.left;\n document.documentElement.style.top = this._previousHTMLStyles.top;\n document.documentElement.classList.remove('cdk-global-scrollblock');\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n }\n };\n /**\n * @return {?}\n */\n BlockScrollStrategy.prototype._canBeEnabled = function () {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n var /** @type {?} */ body = document.body;\n var /** @type {?} */ viewport = this._viewportRuler.getViewportRect();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n };\n return BlockScrollStrategy;\n}());\nexport { BlockScrollStrategy };\nfunction BlockScrollStrategy_tsickle_Closure_declarations() {\n /** @type {?} */\n BlockScrollStrategy.prototype._previousHTMLStyles;\n /** @type {?} */\n BlockScrollStrategy.prototype._previousScrollPosition;\n /** @type {?} */\n BlockScrollStrategy.prototype._isEnabled;\n /** @type {?} */\n BlockScrollStrategy.prototype._viewportRuler;\n}\n//# sourceMappingURL=block-scroll-strategy.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 { getMatScrollStrategyAlreadyAttachedError } from './scroll-strategy';\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nvar RepositionScrollStrategy = (function () {\n /**\n * @param {?} _scrollDispatcher\n * @param {?=} _config\n */\n function RepositionScrollStrategy(_scrollDispatcher, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._config = _config;\n this._scrollSubscription = null;\n }\n /**\n * @param {?} overlayRef\n * @return {?}\n */\n RepositionScrollStrategy.prototype.attach = function (overlayRef) {\n if (this._overlayRef) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n };\n /**\n * @return {?}\n */\n RepositionScrollStrategy.prototype.enable = function () {\n var _this = this;\n if (!this._scrollSubscription) {\n var /** @type {?} */ throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, function () {\n _this._overlayRef.updatePosition();\n });\n }\n };\n /**\n * @return {?}\n */\n RepositionScrollStrategy.prototype.disable = function () {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n };\n return RepositionScrollStrategy;\n}());\nexport { RepositionScrollStrategy };\nfunction RepositionScrollStrategy_tsickle_Closure_declarations() {\n /** @type {?} */\n RepositionScrollStrategy.prototype._scrollSubscription;\n /** @type {?} */\n RepositionScrollStrategy.prototype._overlayRef;\n /** @type {?} */\n RepositionScrollStrategy.prototype._scrollDispatcher;\n /** @type {?} */\n RepositionScrollStrategy.prototype._config;\n}\n//# sourceMappingURL=reposition-scroll-strategy.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 } from '@angular/core';\nimport { CloseScrollStrategy } from './close-scroll-strategy';\nimport { NoopScrollStrategy } from './noop-scroll-strategy';\nimport { BlockScrollStrategy } from './block-scroll-strategy';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { RepositionScrollStrategy, } from './reposition-scroll-strategy';\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nvar ScrollStrategyOptions = (function () {\n /**\n * @param {?} _scrollDispatcher\n * @param {?} _viewportRuler\n */\n function ScrollStrategyOptions(_scrollDispatcher, _viewportRuler) {\n var _this = this;\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n /**\n * Do nothing on scroll.\n */\n this.noop = function () { return new NoopScrollStrategy(); };\n /**\n * Close the overlay as soon as the user scrolls.\n */\n this.close = function () { return new CloseScrollStrategy(_this._scrollDispatcher); };\n /**\n * Block scrolling.\n */\n this.block = function () { return new BlockScrollStrategy(_this._viewportRuler); };\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n this.reposition = function (config) {\n return new RepositionScrollStrategy(_this._scrollDispatcher, config);\n };\n }\n ScrollStrategyOptions.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n ScrollStrategyOptions.ctorParameters = function () { return [\n { type: ScrollDispatcher, },\n { type: ViewportRuler, },\n ]; };\n return ScrollStrategyOptions;\n}());\nexport { ScrollStrategyOptions };\nfunction ScrollStrategyOptions_tsickle_Closure_declarations() {\n /** @type {?} */\n ScrollStrategyOptions.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n ScrollStrategyOptions.ctorParameters;\n /**\n * Do nothing on scroll.\n * @type {?}\n */\n ScrollStrategyOptions.prototype.noop;\n /**\n * Close the overlay as soon as the user scrolls.\n * @type {?}\n */\n ScrollStrategyOptions.prototype.close;\n /**\n * Block scrolling.\n * @type {?}\n */\n ScrollStrategyOptions.prototype.block;\n /**\n * Update the overlay's position on scroll.\n * \\@param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n * @type {?}\n */\n ScrollStrategyOptions.prototype.reposition;\n /** @type {?} */\n ScrollStrategyOptions.prototype._scrollDispatcher;\n /** @type {?} */\n ScrollStrategyOptions.prototype._viewportRuler;\n}\n//# sourceMappingURL=scroll-strategy-options.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 { ComponentFactoryResolver, Injectable, ApplicationRef, Injector, NgZone, } from '@angular/core';\nimport { DomPortalHost } from '@angular/cdk/portal';\nimport { OverlayConfig } from './overlay-config';\nimport { OverlayRef } from './overlay-ref';\nimport { OverlayPositionBuilder } from './position/overlay-position-builder';\nimport { OverlayContainer } from './overlay-container';\nimport { ScrollStrategyOptions } from './scroll/index';\n/**\n * Next overlay unique ID.\n */\nvar nextUniqueId = 0;\n/**\n * The default config for newly created overlays.\n */\nvar defaultConfig = new OverlayConfig();\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nvar Overlay = (function () {\n /**\n * @param {?} scrollStrategies\n * @param {?} _overlayContainer\n * @param {?} _componentFactoryResolver\n * @param {?} _positionBuilder\n * @param {?} _appRef\n * @param {?} _injector\n * @param {?} _ngZone\n */\n function Overlay(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _appRef, _injector, _ngZone) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._appRef = _appRef;\n this._injector = _injector;\n this._ngZone = _ngZone;\n }\n /**\n * Creates an overlay.\n * @param {?=} config Config to apply to the overlay.\n * @return {?} Reference to the created overlay.\n */\n Overlay.prototype.create = function (config) {\n if (config === void 0) { config = defaultConfig; }\n var /** @type {?} */ pane = this._createPaneElement();\n var /** @type {?} */ portalHost = this._createPortalHost(pane);\n return new OverlayRef(portalHost, pane, config, this._ngZone);\n };\n /**\n * Returns a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @return {?}\n */\n Overlay.prototype.position = function () {\n return this._positionBuilder;\n };\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @return {?} Newly-created pane element\n */\n Overlay.prototype._createPaneElement = function () {\n var /** @type {?} */ pane = document.createElement('div');\n pane.id = \"cdk-overlay-\" + nextUniqueId++;\n pane.classList.add('cdk-overlay-pane');\n this._overlayContainer.getContainerElement().appendChild(pane);\n return pane;\n };\n /**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param {?} pane The DOM element to turn into a portal host.\n * @return {?} A portal host for the given DOM element.\n */\n Overlay.prototype._createPortalHost = function (pane) {\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);\n };\n Overlay.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n Overlay.ctorParameters = function () { return [\n { type: ScrollStrategyOptions, },\n { type: OverlayContainer, },\n { type: ComponentFactoryResolver, },\n { type: OverlayPositionBuilder, },\n { type: ApplicationRef, },\n { type: Injector, },\n { type: NgZone, },\n ]; };\n return Overlay;\n}());\nexport { Overlay };\nfunction Overlay_tsickle_Closure_declarations() {\n /** @type {?} */\n Overlay.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n Overlay.ctorParameters;\n /** @type {?} */\n Overlay.prototype.scrollStrategies;\n /** @type {?} */\n Overlay.prototype._overlayContainer;\n /** @type {?} */\n Overlay.prototype._componentFactoryResolver;\n /** @type {?} */\n Overlay.prototype._positionBuilder;\n /** @type {?} */\n Overlay.prototype._appRef;\n /** @type {?} */\n Overlay.prototype._injector;\n /** @type {?} */\n Overlay.prototype._ngZone;\n}\n//# sourceMappingURL=overlay.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 * as tslib_1 from \"tslib\";\nimport { Injectable } from '@angular/core';\nimport { OverlayContainer } from './overlay-container';\n/**\n * The FullscreenOverlayContainer is the alternative to OverlayContainer\n * that supports correct displaying of overlay elements in Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n * It should be provided in the root component that way:\n * providers: [\n * {provide: OverlayContainer, useClass: FullscreenOverlayContainer}\n * ],\n */\nvar FullscreenOverlayContainer = (function (_super) {\n tslib_1.__extends(FullscreenOverlayContainer, _super);\n function FullscreenOverlayContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @return {?}\n */\n FullscreenOverlayContainer.prototype._createContainer = function () {\n var _this = this;\n _super.prototype._createContainer.call(this);\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(function () { return _this._adjustParentForFullscreenChange(); });\n };\n /**\n * @return {?}\n */\n FullscreenOverlayContainer.prototype._adjustParentForFullscreenChange = function () {\n if (!this._containerElement) {\n return;\n }\n var /** @type {?} */ fullscreenElement = this.getFullscreenElement();\n var /** @type {?} */ parent = fullscreenElement || document.body;\n parent.appendChild(this._containerElement);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n FullscreenOverlayContainer.prototype._addFullscreenChangeListener = function (fn) {\n if (document.fullscreenEnabled) {\n document.addEventListener('fullscreenchange', fn);\n }\n else if (document.webkitFullscreenEnabled) {\n document.addEventListener('webkitfullscreenchange', fn);\n }\n else if (((document)).mozFullScreenEnabled) {\n document.addEventListener('mozfullscreenchange', fn);\n }\n else if (((document)).msFullscreenEnabled) {\n document.addEventListener('MSFullscreenChange', fn);\n }\n };\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n * @return {?}\n */\n FullscreenOverlayContainer.prototype.getFullscreenElement = function () {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n ((document)).mozFullScreenElement ||\n ((document)).msFullscreenElement ||\n null;\n };\n FullscreenOverlayContainer.decorators = [\n { type: Injectable },\n ];\n /**\n * @nocollapse\n */\n FullscreenOverlayContainer.ctorParameters = function () { return []; };\n return FullscreenOverlayContainer;\n}(OverlayContainer));\nexport { FullscreenOverlayContainer };\nfunction FullscreenOverlayContainer_tsickle_Closure_declarations() {\n /** @type {?} */\n FullscreenOverlayContainer.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n FullscreenOverlayContainer.ctorParameters;\n}\n//# sourceMappingURL=fullscreen-overlay-container.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 { Directive, ElementRef, EventEmitter, Inject, InjectionToken, Input, Optional, Output, Renderer2, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Overlay } from './overlay';\nimport { OverlayConfig } from './overlay-config';\nimport { ConnectionPositionPair, } from './position/connected-position';\nimport { Subscription } from 'rxjs/Subscription';\n/**\n * Default set of positions for the overlay. Follows the behavior of a dropdown.\n */\nvar defaultPositionList = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),\n];\n/**\n * Injection token that determines the scroll handling while the connected overlay is open.\n */\nexport var MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('mat-connected-overlay-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nexport function MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return function () { return overlay.scrollStrategies.reposition(); };\n}\n/**\n * \\@docs-private\n */\nexport var MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nvar OverlayOrigin = (function () {\n /**\n * @param {?} elementRef\n */\n function OverlayOrigin(elementRef) {\n this.elementRef = elementRef;\n }\n OverlayOrigin.decorators = [\n { type: Directive, args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n },] },\n ];\n /**\n * @nocollapse\n */\n OverlayOrigin.ctorParameters = function () { return [\n { type: ElementRef, },\n ]; };\n return OverlayOrigin;\n}());\nexport { OverlayOrigin };\nfunction OverlayOrigin_tsickle_Closure_declarations() {\n /** @type {?} */\n OverlayOrigin.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n OverlayOrigin.ctorParameters;\n /** @type {?} */\n OverlayOrigin.prototype.elementRef;\n}\n/**\n * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.\n */\nvar ConnectedOverlayDirective = (function () {\n /**\n * @param {?} _overlay\n * @param {?} _renderer\n * @param {?} templateRef\n * @param {?} viewContainerRef\n * @param {?} _scrollStrategy\n * @param {?} _dir\n */\n function ConnectedOverlayDirective(_overlay, _renderer, templateRef, viewContainerRef, _scrollStrategy, _dir) {\n this._overlay = _overlay;\n this._renderer = _renderer;\n this._scrollStrategy = _scrollStrategy;\n this._dir = _dir;\n this._hasBackdrop = false;\n this._backdropSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n this._offsetX = 0;\n this._offsetY = 0;\n this._escapeListener = function () { };\n /**\n * Strategy to be used when handling scroll events while the overlay is open.\n */\n this.scrollStrategy = this._scrollStrategy();\n /**\n * Whether the overlay is open.\n */\n this.open = false;\n /**\n * Event emitted when the backdrop is clicked.\n */\n this.backdropClick = new EventEmitter();\n /**\n * Event emitted when the position has changed.\n */\n this.positionChange = new EventEmitter();\n /**\n * Event emitted when the overlay has been attached.\n */\n this.attach = new EventEmitter();\n /**\n * Event emitted when the overlay has been detached.\n */\n this.detach = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n }\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"offsetX\", {\n /**\n * The offset in pixels for the overlay connection point on the x-axis\n * @return {?}\n */\n get: function () { return this._offsetX; },\n /**\n * @param {?} offsetX\n * @return {?}\n */\n set: function (offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._position.withOffsetX(offsetX);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"offsetY\", {\n /**\n * The offset in pixels for the overlay connection point on the y-axis\n * @return {?}\n */\n get: function () { return this._offsetY; },\n /**\n * @param {?} offsetY\n * @return {?}\n */\n set: function (offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._position.withOffsetY(offsetY);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"hasBackdrop\", {\n /**\n * Whether or not the overlay should attach a backdrop.\n * @return {?}\n */\n get: function () { return this._hasBackdrop; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) { this._hasBackdrop = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOrigin\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.origin; },\n /**\n * @param {?} _origin\n * @return {?}\n */\n set: function (_origin) { this.origin = _origin; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedPositions\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.positions; },\n /**\n * @param {?} _positions\n * @return {?}\n */\n set: function (_positions) { this.positions = _positions; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOffsetX\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.offsetX; },\n /**\n * @param {?} _offsetX\n * @return {?}\n */\n set: function (_offsetX) { this.offsetX = _offsetX; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOffsetY\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.offsetY; },\n /**\n * @param {?} _offsetY\n * @return {?}\n */\n set: function (_offsetY) { this.offsetY = _offsetY; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedWidth\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.width; },\n /**\n * @param {?} _width\n * @return {?}\n */\n set: function (_width) { this.width = _width; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedHeight\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.height; },\n /**\n * @param {?} _height\n * @return {?}\n */\n set: function (_height) { this.height = _height; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedMinWidth\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.minWidth; },\n /**\n * @param {?} _minWidth\n * @return {?}\n */\n set: function (_minWidth) { this.minWidth = _minWidth; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedMinHeight\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.minHeight; },\n /**\n * @param {?} _minHeight\n * @return {?}\n */\n set: function (_minHeight) { this.minHeight = _minHeight; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedBackdropClass\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.backdropClass; },\n /**\n * @param {?} _backdropClass\n * @return {?}\n */\n set: function (_backdropClass) { this.backdropClass = _backdropClass; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedScrollStrategy\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.scrollStrategy; },\n /**\n * @param {?} _scrollStrategy\n * @return {?}\n */\n set: function (_scrollStrategy) {\n this.scrollStrategy = _scrollStrategy;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOpen\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.open; },\n /**\n * @param {?} _open\n * @return {?}\n */\n set: function (_open) { this.open = _open; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedHasBackdrop\", {\n /**\n * @deprecated\n * @return {?}\n */\n get: function () { return this.hasBackdrop; },\n /**\n * @param {?} _hasBackdrop\n * @return {?}\n */\n set: function (_hasBackdrop) { this.hasBackdrop = _hasBackdrop; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"overlayRef\", {\n /**\n * The associated overlay reference.\n * @return {?}\n */\n get: function () {\n return this._overlayRef;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ConnectedOverlayDirective.prototype, \"dir\", {\n /**\n * The element's layout direction.\n * @return {?}\n */\n get: function () {\n return this._dir ? this._dir.value : 'ltr';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n ConnectedOverlayDirective.prototype.ngOnDestroy = function () {\n this._destroyOverlay();\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n ConnectedOverlayDirective.prototype.ngOnChanges = function (changes) {\n if (changes['open'] || changes['_deprecatedOpen']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n };\n /**\n * Creates an overlay\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._createOverlay = function () {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n this._overlayRef = this._overlay.create(this._buildConfig());\n };\n /**\n * Builds the overlay config based on the directive's inputs\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._buildConfig = function () {\n var /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();\n var /** @type {?} */ overlayConfig = new OverlayConfig({\n positionStrategy: positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n return overlayConfig;\n };\n /**\n * Returns the position strategy of the overlay to be set on the overlay config\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._createPositionStrategy = function () {\n var /** @type {?} */ pos = this.positions[0];\n var /** @type {?} */ originPoint = { originX: pos.originX, originY: pos.originY };\n var /** @type {?} */ overlayPoint = { overlayX: pos.overlayX, overlayY: pos.overlayY };\n var /** @type {?} */ strategy = this._overlay.position()\n .connectedTo(this.origin.elementRef, originPoint, overlayPoint)\n .withOffsetX(this.offsetX)\n .withOffsetY(this.offsetY);\n this._handlePositionChanges(strategy);\n return strategy;\n };\n /**\n * @param {?} strategy\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._handlePositionChanges = function (strategy) {\n var _this = this;\n for (var /** @type {?} */ i = 1; i < this.positions.length; i++) {\n strategy.withFallbackPosition({ originX: this.positions[i].originX, originY: this.positions[i].originY }, { overlayX: this.positions[i].overlayX, overlayY: this.positions[i].overlayY });\n }\n this._positionSubscription =\n strategy.onPositionChange.subscribe(function (pos) { return _this.positionChange.emit(pos); });\n };\n /**\n * Attaches the overlay and subscribes to backdrop clicks if backdrop exists\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._attachOverlay = function () {\n var _this = this;\n if (!this._overlayRef) {\n this._createOverlay();\n }\n this._position.withDirection(this.dir);\n this._overlayRef.getConfig().direction = this.dir;\n this._initEscapeListener();\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n this.attach.emit();\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(function () {\n _this.backdropClick.emit();\n });\n }\n };\n /**\n * Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._detachOverlay = function () {\n if (this._overlayRef) {\n this._overlayRef.detach();\n this.detach.emit();\n }\n this._backdropSubscription.unsubscribe();\n this._escapeListener();\n };\n /**\n * Destroys the overlay created by this directive.\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._destroyOverlay = function () {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n this._escapeListener();\n };\n /**\n * Sets the event listener that closes the overlay when pressing Escape.\n * @return {?}\n */\n ConnectedOverlayDirective.prototype._initEscapeListener = function () {\n var _this = this;\n this._escapeListener = this._renderer.listen('document', 'keydown', function (event) {\n if (event.keyCode === ESCAPE) {\n _this._detachOverlay();\n }\n });\n };\n ConnectedOverlayDirective.decorators = [\n { type: Directive, args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay'\n },] },\n ];\n /**\n * @nocollapse\n */\n ConnectedOverlayDirective.ctorParameters = function () { return [\n { type: Overlay, },\n { type: Renderer2, },\n { type: TemplateRef, },\n { type: ViewContainerRef, },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,] },] },\n { type: Directionality, decorators: [{ type: Optional },] },\n ]; };\n ConnectedOverlayDirective.propDecorators = {\n 'origin': [{ type: Input, args: ['cdkConnectedOverlayOrigin',] },],\n 'positions': [{ type: Input, args: ['cdkConnectedOverlayPositions',] },],\n 'offsetX': [{ type: Input, args: ['cdkConnectedOverlayOffsetX',] },],\n 'offsetY': [{ type: Input, args: ['cdkConnectedOverlayOffsetY',] },],\n 'width': [{ type: Input, args: ['cdkConnectedOverlayWidth',] },],\n 'height': [{ type: Input, args: ['cdkConnectedOverlayHeight',] },],\n 'minWidth': [{ type: Input, args: ['cdkConnectedOverlayMinWidth',] },],\n 'minHeight': [{ type: Input, args: ['cdkConnectedOverlayMinHeight',] },],\n 'backdropClass': [{ type: Input, args: ['cdkConnectedOverlayBackdropClass',] },],\n 'scrollStrategy': [{ type: Input, args: ['cdkConnectedOverlayScrollStrategy',] },],\n 'open': [{ type: Input, args: ['cdkConnectedOverlayOpen',] },],\n 'hasBackdrop': [{ type: Input, args: ['cdkConnectedOverlayHasBackdrop',] },],\n '_deprecatedOrigin': [{ type: Input, args: ['origin',] },],\n '_deprecatedPositions': [{ type: Input, args: ['positions',] },],\n '_deprecatedOffsetX': [{ type: Input, args: ['offsetX',] },],\n '_deprecatedOffsetY': [{ type: Input, args: ['offsetY',] },],\n '_deprecatedWidth': [{ type: Input, args: ['width',] },],\n '_deprecatedHeight': [{ type: Input, args: ['height',] },],\n '_deprecatedMinWidth': [{ type: Input, args: ['minWidth',] },],\n '_deprecatedMinHeight': [{ type: Input, args: ['minHeight',] },],\n '_deprecatedBackdropClass': [{ type: Input, args: ['backdropClass',] },],\n '_deprecatedScrollStrategy': [{ type: Input, args: ['scrollStrategy',] },],\n '_deprecatedOpen': [{ type: Input, args: ['open',] },],\n '_deprecatedHasBackdrop': [{ type: Input, args: ['hasBackdrop',] },],\n 'backdropClick': [{ type: Output },],\n 'positionChange': [{ type: Output },],\n 'attach': [{ type: Output },],\n 'detach': [{ type: Output },],\n };\n return ConnectedOverlayDirective;\n}());\nexport { ConnectedOverlayDirective };\nfunction ConnectedOverlayDirective_tsickle_Closure_declarations() {\n /** @type {?} */\n ConnectedOverlayDirective.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n ConnectedOverlayDirective.ctorParameters;\n /** @type {?} */\n ConnectedOverlayDirective.propDecorators;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._overlayRef;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._templatePortal;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._hasBackdrop;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._backdropSubscription;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._positionSubscription;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._offsetX;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._offsetY;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._position;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._escapeListener;\n /**\n * Origin for the connected overlay.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.origin;\n /**\n * Registered connected position pairs.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.positions;\n /**\n * The width of the overlay panel.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.width;\n /**\n * The height of the overlay panel.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.height;\n /**\n * The min width of the overlay panel.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.minWidth;\n /**\n * The min height of the overlay panel.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.minHeight;\n /**\n * The custom class to be set on the backdrop element.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.backdropClass;\n /**\n * Strategy to be used when handling scroll events while the overlay is open.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.scrollStrategy;\n /**\n * Whether the overlay is open.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.open;\n /**\n * Event emitted when the backdrop is clicked.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.backdropClick;\n /**\n * Event emitted when the position has changed.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.positionChange;\n /**\n * Event emitted when the overlay has been attached.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.attach;\n /**\n * Event emitted when the overlay has been detached.\n * @type {?}\n */\n ConnectedOverlayDirective.prototype.detach;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._overlay;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._renderer;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._scrollStrategy;\n /** @type {?} */\n ConnectedOverlayDirective.prototype._dir;\n}\n//# sourceMappingURL=overlay-directives.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 { PortalModule } from '@angular/cdk/portal';\nimport { Overlay } from './overlay';\nimport { ScrollDispatchModule, VIEWPORT_RULER_PROVIDER } from '@angular/cdk/scrolling';\nimport { ConnectedOverlayDirective, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER, OverlayOrigin, } from './overlay-directives';\nimport { OverlayPositionBuilder } from './position/overlay-position-builder';\nimport { OVERLAY_CONTAINER_PROVIDER } from './overlay-container';\nimport { ScrollStrategyOptions } from './scroll/scroll-strategy-options';\nexport var /** @type {?} */ OVERLAY_PROVIDERS = [\n Overlay,\n OverlayPositionBuilder,\n VIEWPORT_RULER_PROVIDER,\n OVERLAY_CONTAINER_PROVIDER,\n MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,\n];\nvar OverlayModule = (function () {\n function OverlayModule() {\n }\n OverlayModule.decorators = [\n { type: NgModule, args: [{\n imports: [PortalModule, ScrollDispatchModule],\n exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],\n declarations: [ConnectedOverlayDirective, OverlayOrigin],\n providers: [OVERLAY_PROVIDERS, ScrollStrategyOptions],\n },] },\n ];\n /**\n * @nocollapse\n */\n OverlayModule.ctorParameters = function () { return []; };\n return OverlayModule;\n}());\nexport { OverlayModule };\nfunction OverlayModule_tsickle_Closure_declarations() {\n /** @type {?} */\n OverlayModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n OverlayModule.ctorParameters;\n}\n//# sourceMappingURL=overlay-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { Overlay, OverlayContainer, FullscreenOverlayContainer, OverlayRef, ConnectedOverlayDirective, OverlayOrigin, ViewportRuler, GlobalPositionStrategy, ConnectedPositionStrategy, VIEWPORT_RULER_PROVIDER, OverlayConfig, ConnectionPositionPair, ScrollingVisibility, ConnectedOverlayPositionChange, Scrollable, ScrollDispatcher, ScrollStrategyOptions, RepositionScrollStrategy, CloseScrollStrategy, NoopScrollStrategy, BlockScrollStrategy, OVERLAY_PROVIDERS, OverlayModule } from './public-api';\nexport { OVERLAY_CONTAINER_PROVIDER as ɵb, OVERLAY_CONTAINER_PROVIDER_FACTORY as ɵa } from './overlay-container';\nexport { MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵc, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵe, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵd } from './overlay-directives';\nexport { OverlayPositionBuilder as ɵf } from './position/overlay-position-builder';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}