@angular/cdk 8.0.0-beta.2 → 8.0.0

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 (219) hide show
  1. package/README.md +2 -2
  2. package/_overlay.scss +4 -4
  3. package/bundles/cdk-a11y.umd.js +227 -79
  4. package/bundles/cdk-a11y.umd.js.map +1 -1
  5. package/bundles/cdk-a11y.umd.min.js +1 -1
  6. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  7. package/bundles/cdk-accordion.umd.js +20 -8
  8. package/bundles/cdk-accordion.umd.js.map +1 -1
  9. package/bundles/cdk-accordion.umd.min.js.map +1 -1
  10. package/bundles/cdk-bidi.umd.js +5 -5
  11. package/bundles/cdk-bidi.umd.min.js +1 -1
  12. package/bundles/cdk-bidi.umd.min.js.map +1 -1
  13. package/bundles/cdk-coercion.umd.js +5 -5
  14. package/bundles/cdk-collections.umd.js +38 -15
  15. package/bundles/cdk-collections.umd.js.map +1 -1
  16. package/bundles/cdk-collections.umd.min.js +1 -1
  17. package/bundles/cdk-collections.umd.min.js.map +1 -1
  18. package/bundles/cdk-drag-drop.umd.js +571 -180
  19. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  20. package/bundles/cdk-drag-drop.umd.min.js +2 -2
  21. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  22. package/bundles/cdk-keycodes.umd.js +7 -3
  23. package/bundles/cdk-keycodes.umd.js.map +1 -1
  24. package/bundles/cdk-keycodes.umd.min.js.map +1 -1
  25. package/bundles/cdk-layout.umd.js +83 -30
  26. package/bundles/cdk-layout.umd.js.map +1 -1
  27. package/bundles/cdk-layout.umd.min.js +1 -1
  28. package/bundles/cdk-layout.umd.min.js.map +1 -1
  29. package/bundles/cdk-observers.umd.js +30 -11
  30. package/bundles/cdk-observers.umd.js.map +1 -1
  31. package/bundles/cdk-observers.umd.min.js +1 -1
  32. package/bundles/cdk-observers.umd.min.js.map +1 -1
  33. package/bundles/cdk-overlay.umd.js +229 -108
  34. package/bundles/cdk-overlay.umd.js.map +1 -1
  35. package/bundles/cdk-overlay.umd.min.js +2 -2
  36. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  37. package/bundles/cdk-platform.umd.js +17 -10
  38. package/bundles/cdk-platform.umd.js.map +1 -1
  39. package/bundles/cdk-platform.umd.min.js +1 -1
  40. package/bundles/cdk-platform.umd.min.js.map +1 -1
  41. package/bundles/cdk-portal.umd.js +32 -13
  42. package/bundles/cdk-portal.umd.js.map +1 -1
  43. package/bundles/cdk-portal.umd.min.js.map +1 -1
  44. package/bundles/cdk-scrolling.umd.js +184 -62
  45. package/bundles/cdk-scrolling.umd.js.map +1 -1
  46. package/bundles/cdk-scrolling.umd.min.js +1 -1
  47. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  48. package/bundles/cdk-stepper.umd.js +30 -12
  49. package/bundles/cdk-stepper.umd.js.map +1 -1
  50. package/bundles/cdk-stepper.umd.min.js.map +1 -1
  51. package/bundles/cdk-table.umd.js +384 -74
  52. package/bundles/cdk-table.umd.js.map +1 -1
  53. package/bundles/cdk-table.umd.min.js +1 -1
  54. package/bundles/cdk-table.umd.min.js.map +1 -1
  55. package/bundles/cdk-text-field.umd.js +61 -21
  56. package/bundles/cdk-text-field.umd.js.map +1 -1
  57. package/bundles/cdk-text-field.umd.min.js +1 -1
  58. package/bundles/cdk-text-field.umd.min.js.map +1 -1
  59. package/bundles/cdk-tree.umd.js +85 -29
  60. package/bundles/cdk-tree.umd.js.map +1 -1
  61. package/bundles/cdk-tree.umd.min.js.map +1 -1
  62. package/bundles/cdk.umd.js +2 -2
  63. package/bundles/cdk.umd.js.map +1 -1
  64. package/bundles/cdk.umd.min.js +1 -1
  65. package/bundles/cdk.umd.min.js.map +1 -1
  66. package/drag-drop/typings/directives/drag.d.ts +11 -2
  67. package/drag-drop/typings/drag-events.d.ts +17 -0
  68. package/drag-drop/typings/drag-ref.d.ts +9 -5
  69. package/drag-drop/typings/drop-list-ref.d.ts +9 -3
  70. package/drag-drop/typings/index.metadata.json +1 -1
  71. package/esm2015/a11y.js +229 -81
  72. package/esm2015/a11y.js.map +1 -1
  73. package/esm2015/accordion.js +22 -10
  74. package/esm2015/accordion.js.map +1 -1
  75. package/esm2015/bidi.js +8 -8
  76. package/esm2015/cdk.js +4 -4
  77. package/esm2015/cdk.js.map +1 -1
  78. package/esm2015/coercion.js +7 -7
  79. package/esm2015/collections.js +41 -18
  80. package/esm2015/collections.js.map +1 -1
  81. package/esm2015/drag-drop.js +540 -181
  82. package/esm2015/drag-drop.js.map +1 -1
  83. package/esm2015/keycodes.js +9 -5
  84. package/esm2015/keycodes.js.map +1 -1
  85. package/esm2015/layout.js +89 -36
  86. package/esm2015/layout.js.map +1 -1
  87. package/esm2015/observers.js +33 -14
  88. package/esm2015/observers.js.map +1 -1
  89. package/esm2015/overlay.js +232 -110
  90. package/esm2015/overlay.js.map +1 -1
  91. package/esm2015/platform.js +20 -13
  92. package/esm2015/platform.js.map +1 -1
  93. package/esm2015/portal.js +34 -15
  94. package/esm2015/portal.js.map +1 -1
  95. package/esm2015/scrolling.js +180 -58
  96. package/esm2015/scrolling.js.map +1 -1
  97. package/esm2015/stepper.js +32 -14
  98. package/esm2015/stepper.js.map +1 -1
  99. package/esm2015/table.js +369 -69
  100. package/esm2015/table.js.map +1 -1
  101. package/esm2015/text-field.js +64 -24
  102. package/esm2015/text-field.js.map +1 -1
  103. package/esm2015/tree.js +86 -30
  104. package/esm2015/tree.js.map +1 -1
  105. package/esm5/a11y.es5.js +230 -82
  106. package/esm5/a11y.es5.js.map +1 -1
  107. package/esm5/accordion.es5.js +22 -10
  108. package/esm5/accordion.es5.js.map +1 -1
  109. package/esm5/bidi.es5.js +8 -8
  110. package/esm5/cdk.es5.js +4 -4
  111. package/esm5/cdk.es5.js.map +1 -1
  112. package/esm5/coercion.es5.js +7 -7
  113. package/esm5/collections.es5.js +42 -19
  114. package/esm5/collections.es5.js.map +1 -1
  115. package/esm5/drag-drop.es5.js +574 -183
  116. package/esm5/drag-drop.es5.js.map +1 -1
  117. package/esm5/keycodes.es5.js +9 -5
  118. package/esm5/keycodes.es5.js.map +1 -1
  119. package/esm5/layout.es5.js +86 -33
  120. package/esm5/layout.es5.js.map +1 -1
  121. package/esm5/observers.es5.js +33 -14
  122. package/esm5/observers.es5.js.map +1 -1
  123. package/esm5/overlay.es5.js +232 -111
  124. package/esm5/overlay.es5.js.map +1 -1
  125. package/esm5/platform.es5.js +20 -13
  126. package/esm5/platform.es5.js.map +1 -1
  127. package/esm5/portal.es5.js +34 -15
  128. package/esm5/portal.es5.js.map +1 -1
  129. package/esm5/scrolling.es5.js +187 -65
  130. package/esm5/scrolling.es5.js.map +1 -1
  131. package/esm5/stepper.es5.js +32 -14
  132. package/esm5/stepper.es5.js.map +1 -1
  133. package/esm5/table.es5.js +386 -72
  134. package/esm5/table.es5.js.map +1 -1
  135. package/esm5/text-field.es5.js +64 -24
  136. package/esm5/text-field.es5.js.map +1 -1
  137. package/esm5/tree.es5.js +87 -31
  138. package/esm5/tree.es5.js.map +1 -1
  139. package/layout/typings/breakpoints-observer.d.ts +3 -3
  140. package/layout/typings/index.metadata.json +1 -1
  141. package/layout/typings/media-matcher.d.ts +2 -2
  142. package/overlay/typings/index.metadata.json +1 -1
  143. package/overlay/typings/position/flexible-connected-position-strategy.d.ts +1 -3
  144. package/package.json +8 -8
  145. package/portal/typings/portal.d.ts +2 -2
  146. package/schematics/ng-update/data/attribute-selectors.js +1 -1
  147. package/schematics/ng-update/data/attribute-selectors.js.map +1 -1
  148. package/schematics/ng-update/data/class-names.js +3 -3
  149. package/schematics/ng-update/data/class-names.js.map +1 -1
  150. package/schematics/ng-update/data/constructor-checks.js +1 -1
  151. package/schematics/ng-update/data/constructor-checks.js.map +1 -1
  152. package/schematics/ng-update/data/input-names.js +1 -1
  153. package/schematics/ng-update/data/input-names.js.map +1 -1
  154. package/schematics/ng-update/data/method-call-checks.js +1 -1
  155. package/schematics/ng-update/data/method-call-checks.js.map +1 -1
  156. package/schematics/ng-update/data/property-names.js +4 -4
  157. package/schematics/ng-update/data/property-names.js.map +1 -1
  158. package/schematics/ng-update/upgrade-rules/signature-check/constructorSignatureCheckRule.js +1 -1
  159. package/schematics/ng-update/upgrade-rules/signature-check/constructorSignatureCheckRule.js.map +1 -1
  160. package/schematics/tsconfig.tsbuildinfo +5811 -0
  161. package/schematics/utils/ast.d.ts +1 -1
  162. package/schematics/utils/build-component.js +1 -1
  163. package/schematics/utils/build-component.js.map +1 -1
  164. package/schematics/utils/get-project.d.ts +1 -1
  165. package/schematics/utils/project-main-file.d.ts +1 -1
  166. package/schematics/utils/project-style-file.d.ts +1 -1
  167. package/schematics/utils/project-targets.d.ts +1 -1
  168. package/schematics/utils/schematic-options.d.ts +1 -1
  169. package/table/typings/cell.d.ts +3 -2
  170. package/table/typings/index.metadata.json +1 -1
  171. package/table/typings/public-api.d.ts +1 -0
  172. package/table/typings/row.d.ts +5 -4
  173. package/table/typings/sticky-styler.d.ts +5 -5
  174. package/table/typings/table-errors.d.ts +10 -0
  175. package/table/typings/text-column.d.ts +80 -0
  176. package/typings/drag-drop/directives/drag.d.ts +11 -2
  177. package/typings/drag-drop/drag-events.d.ts +17 -0
  178. package/typings/drag-drop/drag-ref.d.ts +9 -5
  179. package/typings/drag-drop/drop-list-ref.d.ts +9 -3
  180. package/typings/drag-drop/index.metadata.json +1 -1
  181. package/typings/esm5/drag-drop/directives/drag.d.ts +11 -2
  182. package/typings/esm5/drag-drop/drag-events.d.ts +17 -0
  183. package/typings/esm5/drag-drop/drag-ref.d.ts +9 -5
  184. package/typings/esm5/drag-drop/drop-list-ref.d.ts +9 -3
  185. package/typings/esm5/drag-drop/index.metadata.json +1 -1
  186. package/typings/esm5/index.metadata.json +1 -1
  187. package/typings/esm5/layout/breakpoints-observer.d.ts +3 -3
  188. package/typings/esm5/layout/index.metadata.json +1 -1
  189. package/typings/esm5/layout/media-matcher.d.ts +2 -2
  190. package/typings/esm5/overlay/index.metadata.json +1 -1
  191. package/typings/esm5/overlay/position/flexible-connected-position-strategy.d.ts +1 -3
  192. package/typings/esm5/portal/portal.d.ts +2 -2
  193. package/typings/esm5/table/cell.d.ts +3 -2
  194. package/typings/esm5/table/index.metadata.json +1 -1
  195. package/typings/esm5/table/public-api.d.ts +1 -0
  196. package/typings/esm5/table/row.d.ts +5 -4
  197. package/typings/esm5/table/sticky-styler.d.ts +5 -5
  198. package/typings/esm5/table/table-errors.d.ts +10 -0
  199. package/typings/esm5/table/text-column.d.ts +80 -0
  200. package/typings/index.metadata.json +1 -1
  201. package/typings/layout/breakpoints-observer.d.ts +3 -3
  202. package/typings/layout/index.metadata.json +1 -1
  203. package/typings/layout/media-matcher.d.ts +2 -2
  204. package/typings/overlay/index.metadata.json +1 -1
  205. package/typings/overlay/position/flexible-connected-position-strategy.d.ts +1 -3
  206. package/typings/portal/portal.d.ts +2 -2
  207. package/typings/schematics/utils/ast.d.ts +1 -1
  208. package/typings/schematics/utils/get-project.d.ts +1 -1
  209. package/typings/schematics/utils/project-main-file.d.ts +1 -1
  210. package/typings/schematics/utils/project-style-file.d.ts +1 -1
  211. package/typings/schematics/utils/project-targets.d.ts +1 -1
  212. package/typings/schematics/utils/schematic-options.d.ts +1 -1
  213. package/typings/table/cell.d.ts +3 -2
  214. package/typings/table/index.metadata.json +1 -1
  215. package/typings/table/public-api.d.ts +1 -0
  216. package/typings/table/row.d.ts +5 -4
  217. package/typings/table/sticky-styler.d.ts +5 -5
  218. package/typings/table/table-errors.d.ts +10 -0
  219. package/typings/table/text-column.d.ts +80 -0
@@ -9,7 +9,7 @@ import { coerceCssPixelValue, coerceArray, coerceBooleanProperty } from '@angula
9
9
  import { ScrollDispatcher, ViewportRuler, ScrollingModule, VIEWPORT_RULER_PROVIDER } from '@angular/cdk/scrolling';
10
10
  export { ViewportRuler, VIEWPORT_RULER_PROVIDER, CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';
11
11
  import { DOCUMENT, Location } from '@angular/common';
12
- import { Inject, Injectable, NgZone, Optional, NgModule, SkipSelf, ApplicationRef, ComponentFactoryResolver, Injector, ElementRef, Directive, EventEmitter, InjectionToken, Input, Output, TemplateRef, ViewContainerRef, defineInjectable, inject } from '@angular/core';
12
+ import { Inject, Injectable, NgZone, Optional, NgModule, SkipSelf, ApplicationRef, ComponentFactoryResolver, Injector, ElementRef, Directive, EventEmitter, InjectionToken, Input, Output, TemplateRef, ViewContainerRef, ɵɵdefineInjectable, ɵɵinject } from '@angular/core';
13
13
  import { Observable, Subject, merge, Subscription } from 'rxjs';
14
14
  import { take, takeUntil } from 'rxjs/operators';
15
15
  import { Platform } from '@angular/cdk/platform';
@@ -19,7 +19,7 @@ import { ESCAPE } from '@angular/cdk/keycodes';
19
19
 
20
20
  /**
21
21
  * @fileoverview added by tsickle
22
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
22
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
23
23
  */
24
24
  /**
25
25
  * Strategy that will prevent the user from scrolling while the overlay is visible.
@@ -113,7 +113,7 @@ class BlockScrollStrategy {
113
113
 
114
114
  /**
115
115
  * @fileoverview added by tsickle
116
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
116
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
117
117
  */
118
118
  /**
119
119
  * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.
@@ -125,7 +125,7 @@ function getMatScrollStrategyAlreadyAttachedError() {
125
125
 
126
126
  /**
127
127
  * @fileoverview added by tsickle
128
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
128
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
129
129
  */
130
130
  /**
131
131
  * Strategy that will close the overlay as soon as the user starts scrolling.
@@ -146,12 +146,18 @@ class CloseScrollStrategy {
146
146
  /**
147
147
  * Detaches the overlay ref and disables the scroll strategy.
148
148
  */
149
- this._detach = () => {
149
+ this._detach = (/**
150
+ * @return {?}
151
+ */
152
+ () => {
150
153
  this.disable();
151
154
  if (this._overlayRef.hasAttached()) {
152
- this._ngZone.run(() => this._overlayRef.detach());
155
+ this._ngZone.run((/**
156
+ * @return {?}
157
+ */
158
+ () => this._overlayRef.detach()));
153
159
  }
154
- };
160
+ });
155
161
  }
156
162
  /**
157
163
  * Attaches this scroll strategy to an overlay.
@@ -176,7 +182,10 @@ class CloseScrollStrategy {
176
182
  const stream = this._scrollDispatcher.scrolled(0);
177
183
  if (this._config && this._config.threshold && this._config.threshold > 1) {
178
184
  this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;
179
- this._scrollSubscription = stream.subscribe(() => {
185
+ this._scrollSubscription = stream.subscribe((/**
186
+ * @return {?}
187
+ */
188
+ () => {
180
189
  /** @type {?} */
181
190
  const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;
182
191
  if (Math.abs(scrollPosition - this._initialScrollPosition) > (/** @type {?} */ ((/** @type {?} */ (this._config)).threshold))) {
@@ -185,7 +194,7 @@ class CloseScrollStrategy {
185
194
  else {
186
195
  this._overlayRef.updatePosition();
187
196
  }
188
- });
197
+ }));
189
198
  }
190
199
  else {
191
200
  this._scrollSubscription = stream.subscribe(this._detach);
@@ -212,7 +221,7 @@ class CloseScrollStrategy {
212
221
 
213
222
  /**
214
223
  * @fileoverview added by tsickle
215
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
224
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
216
225
  */
217
226
 
218
227
  /**
@@ -238,7 +247,7 @@ class NoopScrollStrategy {
238
247
 
239
248
  /**
240
249
  * @fileoverview added by tsickle
241
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
250
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
242
251
  */
243
252
 
244
253
  // TODO(jelbourn): move this to live with the rest of the scrolling code
@@ -251,7 +260,11 @@ class NoopScrollStrategy {
251
260
  * @return {?} Whether the element is scrolled out of view
252
261
  */
253
262
  function isElementScrolledOutsideView(element, scrollContainers) {
254
- return scrollContainers.some(containerBounds => {
263
+ return scrollContainers.some((/**
264
+ * @param {?} containerBounds
265
+ * @return {?}
266
+ */
267
+ containerBounds => {
255
268
  /** @type {?} */
256
269
  const outsideAbove = element.bottom < containerBounds.top;
257
270
  /** @type {?} */
@@ -261,7 +274,7 @@ function isElementScrolledOutsideView(element, scrollContainers) {
261
274
  /** @type {?} */
262
275
  const outsideRight = element.left > containerBounds.right;
263
276
  return outsideAbove || outsideBelow || outsideLeft || outsideRight;
264
- });
277
+ }));
265
278
  }
266
279
  /**
267
280
  * Gets whether an element is clipped by any of its scrolling containers.
@@ -271,7 +284,11 @@ function isElementScrolledOutsideView(element, scrollContainers) {
271
284
  * @return {?} Whether the element is clipped
272
285
  */
273
286
  function isElementClippedByScrolling(element, scrollContainers) {
274
- return scrollContainers.some(scrollContainerRect => {
287
+ return scrollContainers.some((/**
288
+ * @param {?} scrollContainerRect
289
+ * @return {?}
290
+ */
291
+ scrollContainerRect => {
275
292
  /** @type {?} */
276
293
  const clippedAbove = element.top < scrollContainerRect.top;
277
294
  /** @type {?} */
@@ -281,12 +298,12 @@ function isElementClippedByScrolling(element, scrollContainers) {
281
298
  /** @type {?} */
282
299
  const clippedRight = element.right > scrollContainerRect.right;
283
300
  return clippedAbove || clippedBelow || clippedLeft || clippedRight;
284
- });
301
+ }));
285
302
  }
286
303
 
287
304
  /**
288
305
  * @fileoverview added by tsickle
289
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
306
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
290
307
  */
291
308
  /**
292
309
  * Strategy that will update the element position as the user is scrolling.
@@ -324,7 +341,10 @@ class RepositionScrollStrategy {
324
341
  if (!this._scrollSubscription) {
325
342
  /** @type {?} */
326
343
  const throttle = this._config ? this._config.scrollThrottle : 0;
327
- this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {
344
+ this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe((/**
345
+ * @return {?}
346
+ */
347
+ () => {
328
348
  this._overlayRef.updatePosition();
329
349
  // TODO(crisbeto): make `close` on by default once all components can handle it.
330
350
  if (this._config && this._config.autoClose) {
@@ -337,10 +357,13 @@ class RepositionScrollStrategy {
337
357
  const parentRects = [{ width, height, bottom: height, right: width, top: 0, left: 0 }];
338
358
  if (isElementScrolledOutsideView(overlayRect, parentRects)) {
339
359
  this.disable();
340
- this._ngZone.run(() => this._overlayRef.detach());
360
+ this._ngZone.run((/**
361
+ * @return {?}
362
+ */
363
+ () => this._overlayRef.detach()));
341
364
  }
342
365
  }
343
- });
366
+ }));
344
367
  }
345
368
  }
346
369
  /**
@@ -364,7 +387,7 @@ class RepositionScrollStrategy {
364
387
 
365
388
  /**
366
389
  * @fileoverview added by tsickle
367
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
390
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
368
391
  */
369
392
  /**
370
393
  * Options for how an overlay will handle scrolling.
@@ -386,22 +409,36 @@ class ScrollStrategyOptions {
386
409
  /**
387
410
  * Do nothing on scroll.
388
411
  */
389
- this.noop = () => new NoopScrollStrategy();
412
+ this.noop = (/**
413
+ * @return {?}
414
+ */
415
+ () => new NoopScrollStrategy());
390
416
  /**
391
417
  * Close the overlay as soon as the user scrolls.
392
418
  * @param config Configuration to be used inside the scroll strategy.
393
419
  */
394
- this.close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);
420
+ this.close = (/**
421
+ * @param {?=} config
422
+ * @return {?}
423
+ */
424
+ (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config));
395
425
  /**
396
426
  * Block scrolling.
397
427
  */
398
- this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);
428
+ this.block = (/**
429
+ * @return {?}
430
+ */
431
+ () => new BlockScrollStrategy(this._viewportRuler, this._document));
399
432
  /**
400
433
  * Update the overlay's position on scroll.
401
434
  * @param config Configuration to be used inside the scroll strategy.
402
435
  * Allows debouncing the reposition calls.
403
436
  */
404
- this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);
437
+ this.reposition = (/**
438
+ * @param {?=} config
439
+ * @return {?}
440
+ */
441
+ (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config));
405
442
  this._document = document;
406
443
  }
407
444
  }
@@ -415,16 +452,16 @@ ScrollStrategyOptions.ctorParameters = () => [
415
452
  { type: NgZone },
416
453
  { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
417
454
  ];
418
- /** @nocollapse */ ScrollStrategyOptions.ngInjectableDef = defineInjectable({ factory: function ScrollStrategyOptions_Factory() { return new ScrollStrategyOptions(inject(ScrollDispatcher), inject(ViewportRuler), inject(NgZone), inject(DOCUMENT)); }, token: ScrollStrategyOptions, providedIn: "root" });
455
+ /** @nocollapse */ ScrollStrategyOptions.ngInjectableDef = ɵɵdefineInjectable({ factory: function ScrollStrategyOptions_Factory() { return new ScrollStrategyOptions(ɵɵinject(ScrollDispatcher), ɵɵinject(ViewportRuler), ɵɵinject(NgZone), ɵɵinject(DOCUMENT)); }, token: ScrollStrategyOptions, providedIn: "root" });
419
456
 
420
457
  /**
421
458
  * @fileoverview added by tsickle
422
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
459
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
423
460
  */
424
461
 
425
462
  /**
426
463
  * @fileoverview added by tsickle
427
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
464
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
428
465
  */
429
466
  /**
430
467
  * Initial configuration used when creating an overlay.
@@ -457,20 +494,24 @@ class OverlayConfig {
457
494
  */
458
495
  this.disposeOnNavigation = false;
459
496
  if (config) {
460
- Object.keys(config).forEach(k => {
497
+ Object.keys(config).forEach((/**
498
+ * @param {?} k
499
+ * @return {?}
500
+ */
501
+ k => {
461
502
  /** @type {?} */
462
503
  const key = (/** @type {?} */ (k));
463
504
  if (typeof config[key] !== 'undefined') {
464
505
  this[key] = config[key];
465
506
  }
466
- });
507
+ }));
467
508
  }
468
509
  }
469
510
  }
470
511
 
471
512
  /**
472
513
  * @fileoverview added by tsickle
473
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
514
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
474
515
  */
475
516
  /**
476
517
  * The points of the origin element and the overlay element to connect.
@@ -567,7 +608,7 @@ function validateHorizontalPosition(property, value) {
567
608
 
568
609
  /**
569
610
  * @fileoverview added by tsickle
570
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
611
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
571
612
  */
572
613
  /**
573
614
  * Service for dispatching keyboard events that land on the body to appropriate overlay ref,
@@ -586,7 +627,11 @@ class OverlayKeyboardDispatcher {
586
627
  /**
587
628
  * Keyboard event listener that will be attached to the body.
588
629
  */
589
- this._keydownListener = (event) => {
630
+ this._keydownListener = (/**
631
+ * @param {?} event
632
+ * @return {?}
633
+ */
634
+ (event) => {
590
635
  /** @type {?} */
591
636
  const overlays = this._attachedOverlays;
592
637
  for (let i = overlays.length - 1; i > -1; i--) {
@@ -601,7 +646,7 @@ class OverlayKeyboardDispatcher {
601
646
  break;
602
647
  }
603
648
  }
604
- };
649
+ });
605
650
  this._document = document;
606
651
  }
607
652
  /**
@@ -660,7 +705,7 @@ OverlayKeyboardDispatcher.decorators = [
660
705
  OverlayKeyboardDispatcher.ctorParameters = () => [
661
706
  { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
662
707
  ];
663
- /** @nocollapse */ OverlayKeyboardDispatcher.ngInjectableDef = defineInjectable({ factory: function OverlayKeyboardDispatcher_Factory() { return new OverlayKeyboardDispatcher(inject(DOCUMENT)); }, token: OverlayKeyboardDispatcher, providedIn: "root" });
708
+ /** @nocollapse */ OverlayKeyboardDispatcher.ngInjectableDef = ɵɵdefineInjectable({ factory: function OverlayKeyboardDispatcher_Factory() { return new OverlayKeyboardDispatcher(ɵɵinject(DOCUMENT)); }, token: OverlayKeyboardDispatcher, providedIn: "root" });
664
709
  /**
665
710
  * \@docs-private \@deprecated \@breaking-change 8.0.0
666
711
  * @param {?} dispatcher
@@ -690,7 +735,7 @@ const OVERLAY_KEYBOARD_DISPATCHER_PROVIDER = {
690
735
 
691
736
  /**
692
737
  * @fileoverview added by tsickle
693
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
738
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
694
739
  */
695
740
  /**
696
741
  * Container inside which all overlays will render.
@@ -743,7 +788,7 @@ OverlayContainer.decorators = [
743
788
  OverlayContainer.ctorParameters = () => [
744
789
  { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
745
790
  ];
746
- /** @nocollapse */ OverlayContainer.ngInjectableDef = defineInjectable({ factory: function OverlayContainer_Factory() { return new OverlayContainer(inject(DOCUMENT)); }, token: OverlayContainer, providedIn: "root" });
791
+ /** @nocollapse */ OverlayContainer.ngInjectableDef = ɵɵdefineInjectable({ factory: function OverlayContainer_Factory() { return new OverlayContainer(ɵɵinject(DOCUMENT)); }, token: OverlayContainer, providedIn: "root" });
747
792
  /**
748
793
  * \@docs-private \@deprecated \@breaking-change 8.0.0
749
794
  * @param {?} parentContainer
@@ -769,7 +814,7 @@ const OVERLAY_CONTAINER_PROVIDER = {
769
814
 
770
815
  /**
771
816
  * @fileoverview added by tsickle
772
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
817
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
773
818
  */
774
819
  /**
775
820
  * Reference to an overlay that has been created with the Overlay service.
@@ -800,15 +845,22 @@ class OverlayRef {
800
845
  this._attachments = new Subject();
801
846
  this._detachments = new Subject();
802
847
  this._locationChanges = Subscription.EMPTY;
803
- this._keydownEventsObservable = new Observable((observer) => {
848
+ this._keydownEventsObservable = new Observable((/**
849
+ * @param {?} observer
850
+ * @return {?}
851
+ */
852
+ (observer) => {
804
853
  /** @type {?} */
805
854
  const subscription = this._keydownEvents.subscribe(observer);
806
855
  this._keydownEventSubscriptions++;
807
- return () => {
856
+ return (/**
857
+ * @return {?}
858
+ */
859
+ () => {
808
860
  subscription.unsubscribe();
809
861
  this._keydownEventSubscriptions--;
810
- };
811
- });
862
+ });
863
+ }));
812
864
  /**
813
865
  * Stream of keydown events dispatched to this overlay.
814
866
  */
@@ -875,12 +927,15 @@ class OverlayRef {
875
927
  this._ngZone.onStable
876
928
  .asObservable()
877
929
  .pipe(take(1))
878
- .subscribe(() => {
930
+ .subscribe((/**
931
+ * @return {?}
932
+ */
933
+ () => {
879
934
  // The overlay could've been detached before the zone has stabilized.
880
935
  if (this.hasAttached()) {
881
936
  this.updatePosition();
882
937
  }
883
- });
938
+ }));
884
939
  // Enable pointer events for the overlay pane element.
885
940
  this._togglePointerEvents(true);
886
941
  if (this._config.hasBackdrop) {
@@ -896,7 +951,10 @@ class OverlayRef {
896
951
  // @breaking-change 8.0.0 remove the null check for `_location`
897
952
  // once the constructor parameter is made required.
898
953
  if (this._config.disposeOnNavigation && this._location) {
899
- this._locationChanges = this._location.subscribe(() => this.dispose());
954
+ this._locationChanges = this._location.subscribe((/**
955
+ * @return {?}
956
+ */
957
+ () => this.dispose()));
900
958
  }
901
959
  return attachResult;
902
960
  }
@@ -1145,16 +1203,26 @@ class OverlayRef {
1145
1203
  (/** @type {?} */ (this._host.parentElement)).insertBefore(this._backdropElement, this._host);
1146
1204
  // Forward backdrop clicks such that the consumer of the overlay can perform whatever
1147
1205
  // action desired when such a click occurs (usually closing the overlay).
1148
- this._backdropElement.addEventListener('click', (event) => this._backdropClick.next(event));
1206
+ this._backdropElement.addEventListener('click', (/**
1207
+ * @param {?} event
1208
+ * @return {?}
1209
+ */
1210
+ (event) => this._backdropClick.next(event)));
1149
1211
  // Add class to fade-in the backdrop after one frame.
1150
1212
  if (typeof requestAnimationFrame !== 'undefined') {
1151
- this._ngZone.runOutsideAngular(() => {
1152
- requestAnimationFrame(() => {
1213
+ this._ngZone.runOutsideAngular((/**
1214
+ * @return {?}
1215
+ */
1216
+ () => {
1217
+ requestAnimationFrame((/**
1218
+ * @return {?}
1219
+ */
1220
+ () => {
1153
1221
  if (this._backdropElement) {
1154
1222
  this._backdropElement.classList.add(showingClass);
1155
1223
  }
1156
- });
1157
- });
1224
+ }));
1225
+ }));
1158
1226
  }
1159
1227
  else {
1160
1228
  this._backdropElement.classList.add(showingClass);
@@ -1187,7 +1255,10 @@ class OverlayRef {
1187
1255
  /** @type {?} */
1188
1256
  let timeoutId;
1189
1257
  /** @type {?} */
1190
- let finishDetach = () => {
1258
+ let finishDetach = (/**
1259
+ * @return {?}
1260
+ */
1261
+ () => {
1191
1262
  // It may not be attached to anything in certain cases (e.g. unit tests).
1192
1263
  if (backdropToDetach && backdropToDetach.parentNode) {
1193
1264
  backdropToDetach.parentNode.removeChild(backdropToDetach);
@@ -1202,18 +1273,24 @@ class OverlayRef {
1202
1273
  this._toggleClasses((/** @type {?} */ (backdropToDetach)), this._config.backdropClass, false);
1203
1274
  }
1204
1275
  clearTimeout(timeoutId);
1205
- };
1276
+ });
1206
1277
  backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');
1207
- this._ngZone.runOutsideAngular(() => {
1278
+ this._ngZone.runOutsideAngular((/**
1279
+ * @return {?}
1280
+ */
1281
+ () => {
1208
1282
  (/** @type {?} */ (backdropToDetach)).addEventListener('transitionend', finishDetach);
1209
- });
1283
+ }));
1210
1284
  // If the backdrop doesn't have a transition, the `transitionend` event won't fire.
1211
1285
  // In this case we make it unclickable and we try to remove it after a delay.
1212
1286
  backdropToDetach.style.pointerEvents = 'none';
1213
1287
  // Run this outside the Angular zone because there's nothing that Angular cares about.
1214
1288
  // If it were to run inside the Angular zone, every test that used Overlay would have to be
1215
1289
  // either async or fakeAsync.
1216
- timeoutId = this._ngZone.runOutsideAngular(() => setTimeout(finishDetach, 500));
1290
+ timeoutId = this._ngZone.runOutsideAngular((/**
1291
+ * @return {?}
1292
+ */
1293
+ () => setTimeout(finishDetach, 500)));
1217
1294
  }
1218
1295
  /**
1219
1296
  * Toggles a single CSS class or an array of classes on an element.
@@ -1226,10 +1303,14 @@ class OverlayRef {
1226
1303
  _toggleClasses(element, cssClasses, isAdd) {
1227
1304
  /** @type {?} */
1228
1305
  const classList = element.classList;
1229
- coerceArray(cssClasses).forEach(cssClass => {
1306
+ coerceArray(cssClasses).forEach((/**
1307
+ * @param {?} cssClass
1308
+ * @return {?}
1309
+ */
1310
+ cssClass => {
1230
1311
  // We can't do a spread here, because IE doesn't support setting multiple classes.
1231
1312
  isAdd ? classList.add(cssClass) : classList.remove(cssClass);
1232
- });
1313
+ }));
1233
1314
  }
1234
1315
  /**
1235
1316
  * Detaches the overlay content next time the zone stabilizes.
@@ -1240,7 +1321,10 @@ class OverlayRef {
1240
1321
  // Normally we wouldn't have to explicitly run this outside the `NgZone`, however
1241
1322
  // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will
1242
1323
  // be patched to run inside the zone, which will throw us into an infinite loop.
1243
- this._ngZone.runOutsideAngular(() => {
1324
+ this._ngZone.runOutsideAngular((/**
1325
+ * @return {?}
1326
+ */
1327
+ () => {
1244
1328
  // We can't remove the host here immediately, because the overlay pane's content
1245
1329
  // might still be animating. This stream helps us avoid interrupting the animation
1246
1330
  // by waiting for the pane to become empty.
@@ -1248,7 +1332,10 @@ class OverlayRef {
1248
1332
  const subscription = this._ngZone.onStable
1249
1333
  .asObservable()
1250
1334
  .pipe(takeUntil(merge(this._attachments, this._detachments)))
1251
- .subscribe(() => {
1335
+ .subscribe((/**
1336
+ * @return {?}
1337
+ */
1338
+ () => {
1252
1339
  // Needs a couple of checks for the pane and host, because
1253
1340
  // they may have been removed by the time the zone stabilizes.
1254
1341
  if (!this._pane || !this._host || this._pane.children.length === 0) {
@@ -1261,8 +1348,8 @@ class OverlayRef {
1261
1348
  }
1262
1349
  subscription.unsubscribe();
1263
1350
  }
1264
- });
1265
- });
1351
+ }));
1352
+ }));
1266
1353
  }
1267
1354
  /**
1268
1355
  * Disposes of a scroll strategy.
@@ -1283,7 +1370,7 @@ class OverlayRef {
1283
1370
 
1284
1371
  /**
1285
1372
  * @fileoverview added by tsickle
1286
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1373
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
1287
1374
  */
1288
1375
  // TODO: refactor clipping detection into a separate thing (part of scrolling module)
1289
1376
  // TODO: doesn't handle both flexible width and height when it has to scroll along both axis.
@@ -1343,7 +1430,7 @@ class FlexibleConnectedPositionStrategy {
1343
1430
  /**
1344
1431
  * The Scrollable containers used to check scrollable view properties on position change.
1345
1432
  */
1346
- this.scrollables = [];
1433
+ this._scrollables = [];
1347
1434
  /**
1348
1435
  * Ordered list of preferred positions, from most to least desirable.
1349
1436
  */
@@ -1364,10 +1451,6 @@ class FlexibleConnectedPositionStrategy {
1364
1451
  * Default offset for the overlay along the y axis.
1365
1452
  */
1366
1453
  this._offsetY = 0;
1367
- /**
1368
- * Amount of subscribers to the `positionChanges` stream.
1369
- */
1370
- this._positionChangeSubscriptions = 0;
1371
1454
  /**
1372
1455
  * Keeps track of the CSS classes that the position strategy has applied on the overlay panel.
1373
1456
  */
@@ -1375,15 +1458,7 @@ class FlexibleConnectedPositionStrategy {
1375
1458
  /**
1376
1459
  * Observable sequence of position changes.
1377
1460
  */
1378
- this.positionChanges = new Observable((observer) => {
1379
- /** @type {?} */
1380
- const subscription = this._positionChanges.subscribe(observer);
1381
- this._positionChangeSubscriptions++;
1382
- return () => {
1383
- subscription.unsubscribe();
1384
- this._positionChangeSubscriptions--;
1385
- };
1386
- });
1461
+ this.positionChanges = this._positionChanges.asObservable();
1387
1462
  this.setOrigin(connectedTo);
1388
1463
  }
1389
1464
  /**
@@ -1411,13 +1486,16 @@ class FlexibleConnectedPositionStrategy {
1411
1486
  this._isInitialRender = true;
1412
1487
  this._lastPosition = null;
1413
1488
  this._resizeSubscription.unsubscribe();
1414
- this._resizeSubscription = this._viewportRuler.change().subscribe(() => {
1489
+ this._resizeSubscription = this._viewportRuler.change().subscribe((/**
1490
+ * @return {?}
1491
+ */
1492
+ () => {
1415
1493
  // When the window is resized, we want to trigger the next reposition as if it
1416
1494
  // was an initial render, in order for the strategy to pick a new optimal position,
1417
1495
  // otherwise position locking will cause it to stay at the old one.
1418
1496
  this._isInitialRender = true;
1419
1497
  this.apply();
1420
- });
1498
+ }));
1421
1499
  }
1422
1500
  /**
1423
1501
  * Updates the position of the overlay element, using whichever preferred position relative
@@ -1608,7 +1686,7 @@ class FlexibleConnectedPositionStrategy {
1608
1686
  * @return {THIS}
1609
1687
  */
1610
1688
  withScrollableContainers(scrollables) {
1611
- (/** @type {?} */ (this)).scrollables = scrollables;
1689
+ (/** @type {?} */ (this))._scrollables = scrollables;
1612
1690
  return (/** @type {?} */ (this));
1613
1691
  }
1614
1692
  /**
@@ -1956,7 +2034,7 @@ class FlexibleConnectedPositionStrategy {
1956
2034
  // Notify that the position has been changed along with its change properties.
1957
2035
  // We only emit if we've got any subscriptions, because the scroll visibility
1958
2036
  // calculcations can be somewhat expensive.
1959
- if (this._positionChangeSubscriptions > 0) {
2037
+ if (this._positionChanges.observers.length) {
1960
2038
  /** @type {?} */
1961
2039
  const scrollableViewProperties = this._getScrollVisibility();
1962
2040
  /** @type {?} */
@@ -2317,9 +2395,13 @@ class FlexibleConnectedPositionStrategy {
2317
2395
  // every time, we should be able to use the scrollTop of the containers if the size of those
2318
2396
  // containers hasn't changed.
2319
2397
  /** @type {?} */
2320
- const scrollContainerBounds = this.scrollables.map(scrollable => {
2398
+ const scrollContainerBounds = this._scrollables.map((/**
2399
+ * @param {?} scrollable
2400
+ * @return {?}
2401
+ */
2402
+ scrollable => {
2321
2403
  return scrollable.getElementRef().nativeElement.getBoundingClientRect();
2322
- });
2404
+ }));
2323
2405
  return {
2324
2406
  isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),
2325
2407
  isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),
@@ -2335,9 +2417,14 @@ class FlexibleConnectedPositionStrategy {
2335
2417
  * @return {?}
2336
2418
  */
2337
2419
  _subtractOverflows(length, ...overflows) {
2338
- return overflows.reduce((currentValue, currentOverflow) => {
2420
+ return overflows.reduce((/**
2421
+ * @param {?} currentValue
2422
+ * @param {?} currentOverflow
2423
+ * @return {?}
2424
+ */
2425
+ (currentValue, currentOverflow) => {
2339
2426
  return currentValue - Math.max(currentOverflow, 0);
2340
- }, length);
2427
+ }), length);
2341
2428
  }
2342
2429
  /**
2343
2430
  * Narrows the given viewport rect by the current _viewportMargin.
@@ -2407,12 +2494,16 @@ class FlexibleConnectedPositionStrategy {
2407
2494
  }
2408
2495
  // TODO(crisbeto): remove these once Angular's template type
2409
2496
  // checking is advanced enough to catch these cases.
2410
- this._preferredPositions.forEach(pair => {
2497
+ this._preferredPositions.forEach((/**
2498
+ * @param {?} pair
2499
+ * @return {?}
2500
+ */
2501
+ pair => {
2411
2502
  validateHorizontalPosition('originX', pair.originX);
2412
2503
  validateVerticalPosition('originY', pair.originY);
2413
2504
  validateHorizontalPosition('overlayX', pair.overlayX);
2414
2505
  validateVerticalPosition('overlayY', pair.overlayY);
2415
- });
2506
+ }));
2416
2507
  }
2417
2508
  /**
2418
2509
  * Adds a single CSS class or an array of classes on the overlay panel.
@@ -2422,12 +2513,16 @@ class FlexibleConnectedPositionStrategy {
2422
2513
  */
2423
2514
  _addPanelClasses(cssClasses) {
2424
2515
  if (this._pane) {
2425
- coerceArray(cssClasses).forEach(cssClass => {
2516
+ coerceArray(cssClasses).forEach((/**
2517
+ * @param {?} cssClass
2518
+ * @return {?}
2519
+ */
2520
+ cssClass => {
2426
2521
  if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {
2427
2522
  this._appliedPanelClasses.push(cssClass);
2428
2523
  this._pane.classList.add(cssClass);
2429
2524
  }
2430
- });
2525
+ }));
2431
2526
  }
2432
2527
  }
2433
2528
  /**
@@ -2437,9 +2532,13 @@ class FlexibleConnectedPositionStrategy {
2437
2532
  */
2438
2533
  _clearPanelClasses() {
2439
2534
  if (this._pane) {
2440
- this._appliedPanelClasses.forEach(cssClass => {
2535
+ this._appliedPanelClasses.forEach((/**
2536
+ * @param {?} cssClass
2537
+ * @return {?}
2538
+ */
2539
+ cssClass => {
2441
2540
  this._pane.classList.remove(cssClass);
2442
- });
2541
+ }));
2443
2542
  this._appliedPanelClasses = [];
2444
2543
  }
2445
2544
  }
@@ -2485,7 +2584,7 @@ function extendStyles(dest, source) {
2485
2584
 
2486
2585
  /**
2487
2586
  * @fileoverview added by tsickle
2488
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2587
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2489
2588
  */
2490
2589
  /**
2491
2590
  * A strategy for positioning overlays. Using this strategy, an overlay is given an
@@ -2695,7 +2794,7 @@ class ConnectedPositionStrategy {
2695
2794
 
2696
2795
  /**
2697
2796
  * @fileoverview added by tsickle
2698
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2797
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2699
2798
  */
2700
2799
 
2701
2800
  /**
@@ -2925,7 +3024,7 @@ class GlobalPositionStrategy {
2925
3024
 
2926
3025
  /**
2927
3026
  * @fileoverview added by tsickle
2928
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3027
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2929
3028
  */
2930
3029
  /**
2931
3030
  * Builder for overlay position strategy.
@@ -2981,11 +3080,11 @@ OverlayPositionBuilder.ctorParameters = () => [
2981
3080
  { type: Platform },
2982
3081
  { type: OverlayContainer }
2983
3082
  ];
2984
- /** @nocollapse */ OverlayPositionBuilder.ngInjectableDef = defineInjectable({ factory: function OverlayPositionBuilder_Factory() { return new OverlayPositionBuilder(inject(ViewportRuler), inject(DOCUMENT), inject(Platform), inject(OverlayContainer)); }, token: OverlayPositionBuilder, providedIn: "root" });
3083
+ /** @nocollapse */ OverlayPositionBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function OverlayPositionBuilder_Factory() { return new OverlayPositionBuilder(ɵɵinject(ViewportRuler), ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(OverlayContainer)); }, token: OverlayPositionBuilder, providedIn: "root" });
2985
3084
 
2986
3085
  /**
2987
3086
  * @fileoverview added by tsickle
2988
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3087
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2989
3088
  */
2990
3089
  /**
2991
3090
  * Next overlay unique ID.
@@ -3112,7 +3211,7 @@ Overlay.ctorParameters = () => [
3112
3211
 
3113
3212
  /**
3114
3213
  * @fileoverview added by tsickle
3115
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3214
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3116
3215
  */
3117
3216
  /**
3118
3217
  * Default set of positions for the overlay. Follows the behavior of a dropdown.
@@ -3361,12 +3460,16 @@ class CdkConnectedOverlay {
3361
3460
  this.positions = defaultPositionList;
3362
3461
  }
3363
3462
  this._overlayRef = this._overlay.create(this._buildConfig());
3364
- this._overlayRef.keydownEvents().subscribe((event) => {
3463
+ this._overlayRef.keydownEvents().subscribe((/**
3464
+ * @param {?} event
3465
+ * @return {?}
3466
+ */
3467
+ (event) => {
3365
3468
  this.overlayKeydown.next(event);
3366
3469
  if (event.keyCode === ESCAPE) {
3367
3470
  this._detachOverlay();
3368
3471
  }
3369
- });
3472
+ }));
3370
3473
  }
3371
3474
  /**
3372
3475
  * Builds the overlay config based on the directive's inputs
@@ -3411,14 +3514,19 @@ class CdkConnectedOverlay {
3411
3514
  */
3412
3515
  _updatePositionStrategy(positionStrategy) {
3413
3516
  /** @type {?} */
3414
- const positions = this.positions.map(currentPosition => ({
3517
+ const positions = this.positions.map((/**
3518
+ * @param {?} currentPosition
3519
+ * @return {?}
3520
+ */
3521
+ currentPosition => ({
3415
3522
  originX: currentPosition.originX,
3416
3523
  originY: currentPosition.originY,
3417
3524
  overlayX: currentPosition.overlayX,
3418
3525
  overlayY: currentPosition.overlayY,
3419
3526
  offsetX: currentPosition.offsetX || this.offsetX,
3420
- offsetY: currentPosition.offsetY || this.offsetY
3421
- }));
3527
+ offsetY: currentPosition.offsetY || this.offsetY,
3528
+ panelClass: currentPosition.panelClass || undefined,
3529
+ })));
3422
3530
  return positionStrategy
3423
3531
  .setOrigin(this.origin.elementRef)
3424
3532
  .withPositions(positions)
@@ -3437,7 +3545,11 @@ class CdkConnectedOverlay {
3437
3545
  /** @type {?} */
3438
3546
  const strategy = this._overlay.position().flexibleConnectedTo(this.origin.elementRef);
3439
3547
  this._updatePositionStrategy(strategy);
3440
- strategy.positionChanges.subscribe(p => this.positionChange.emit(p));
3548
+ strategy.positionChanges.subscribe((/**
3549
+ * @param {?} p
3550
+ * @return {?}
3551
+ */
3552
+ p => this.positionChange.emit(p)));
3441
3553
  return strategy;
3442
3554
  }
3443
3555
  /**
@@ -3458,9 +3570,13 @@ class CdkConnectedOverlay {
3458
3570
  this.attach.emit();
3459
3571
  }
3460
3572
  if (this.hasBackdrop) {
3461
- this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {
3573
+ this._backdropSubscription = this._overlayRef.backdropClick().subscribe((/**
3574
+ * @param {?} event
3575
+ * @return {?}
3576
+ */
3577
+ event => {
3462
3578
  this.backdropClick.emit(event);
3463
- });
3579
+ }));
3464
3580
  }
3465
3581
  else {
3466
3582
  this._backdropSubscription.unsubscribe();
@@ -3524,7 +3640,10 @@ CdkConnectedOverlay.propDecorators = {
3524
3640
  * @return {?}
3525
3641
  */
3526
3642
  function CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {
3527
- return () => overlay.scrollStrategies.reposition();
3643
+ return (/**
3644
+ * @return {?}
3645
+ */
3646
+ () => overlay.scrollStrategies.reposition());
3528
3647
  }
3529
3648
  /**
3530
3649
  * \@docs-private
@@ -3538,7 +3657,7 @@ const CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {
3538
3657
 
3539
3658
  /**
3540
3659
  * @fileoverview added by tsickle
3541
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3660
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3542
3661
  */
3543
3662
  class OverlayModule {
3544
3663
  }
@@ -3570,7 +3689,7 @@ const OVERLAY_PROVIDERS = [
3570
3689
 
3571
3690
  /**
3572
3691
  * @fileoverview added by tsickle
3573
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3692
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3574
3693
  */
3575
3694
  /**
3576
3695
  * Alternative to OverlayContainer that supports correct displaying of overlay elements in
@@ -3602,7 +3721,10 @@ class FullscreenOverlayContainer extends OverlayContainer {
3602
3721
  _createContainer() {
3603
3722
  super._createContainer();
3604
3723
  this._adjustParentForFullscreenChange();
3605
- this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());
3724
+ this._addFullscreenChangeListener((/**
3725
+ * @return {?}
3726
+ */
3727
+ () => this._adjustParentForFullscreenChange()));
3606
3728
  }
3607
3729
  /**
3608
3730
  * @private
@@ -3675,16 +3797,16 @@ FullscreenOverlayContainer.decorators = [
3675
3797
  FullscreenOverlayContainer.ctorParameters = () => [
3676
3798
  { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
3677
3799
  ];
3678
- /** @nocollapse */ FullscreenOverlayContainer.ngInjectableDef = defineInjectable({ factory: function FullscreenOverlayContainer_Factory() { return new FullscreenOverlayContainer(inject(DOCUMENT)); }, token: FullscreenOverlayContainer, providedIn: "root" });
3800
+ /** @nocollapse */ FullscreenOverlayContainer.ngInjectableDef = ɵɵdefineInjectable({ factory: function FullscreenOverlayContainer_Factory() { return new FullscreenOverlayContainer(ɵɵinject(DOCUMENT)); }, token: FullscreenOverlayContainer, providedIn: "root" });
3679
3801
 
3680
3802
  /**
3681
3803
  * @fileoverview added by tsickle
3682
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3804
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3683
3805
  */
3684
3806
 
3685
3807
  /**
3686
3808
  * @fileoverview added by tsickle
3687
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3809
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
3688
3810
  */
3689
3811
 
3690
3812
  export { Overlay, OverlayContainer, CdkOverlayOrigin, CdkConnectedOverlay, FullscreenOverlayContainer, OverlayRef, OverlayKeyboardDispatcher, OverlayPositionBuilder, GlobalPositionStrategy, ConnectedPositionStrategy, FlexibleConnectedPositionStrategy, OverlayConfig, validateVerticalPosition, validateHorizontalPosition, ConnectionPositionPair, ScrollingVisibility, ConnectedOverlayPositionChange, ScrollStrategyOptions, RepositionScrollStrategy, CloseScrollStrategy, NoopScrollStrategy, BlockScrollStrategy, OverlayModule, OVERLAY_PROVIDERS, OVERLAY_KEYBOARD_DISPATCHER_PROVIDER as ɵg, OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY as ɵf, OVERLAY_CONTAINER_PROVIDER as ɵb, OVERLAY_CONTAINER_PROVIDER_FACTORY as ɵa, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵc, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵe, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵd };