@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.
- package/README.md +2 -2
- package/_overlay.scss +4 -4
- package/bundles/cdk-a11y.umd.js +227 -79
- package/bundles/cdk-a11y.umd.js.map +1 -1
- package/bundles/cdk-a11y.umd.min.js +1 -1
- package/bundles/cdk-a11y.umd.min.js.map +1 -1
- package/bundles/cdk-accordion.umd.js +20 -8
- package/bundles/cdk-accordion.umd.js.map +1 -1
- package/bundles/cdk-accordion.umd.min.js.map +1 -1
- package/bundles/cdk-bidi.umd.js +5 -5
- package/bundles/cdk-bidi.umd.min.js +1 -1
- package/bundles/cdk-bidi.umd.min.js.map +1 -1
- package/bundles/cdk-coercion.umd.js +5 -5
- package/bundles/cdk-collections.umd.js +38 -15
- package/bundles/cdk-collections.umd.js.map +1 -1
- package/bundles/cdk-collections.umd.min.js +1 -1
- package/bundles/cdk-collections.umd.min.js.map +1 -1
- package/bundles/cdk-drag-drop.umd.js +571 -180
- package/bundles/cdk-drag-drop.umd.js.map +1 -1
- package/bundles/cdk-drag-drop.umd.min.js +2 -2
- package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
- package/bundles/cdk-keycodes.umd.js +7 -3
- package/bundles/cdk-keycodes.umd.js.map +1 -1
- package/bundles/cdk-keycodes.umd.min.js.map +1 -1
- package/bundles/cdk-layout.umd.js +83 -30
- package/bundles/cdk-layout.umd.js.map +1 -1
- package/bundles/cdk-layout.umd.min.js +1 -1
- package/bundles/cdk-layout.umd.min.js.map +1 -1
- package/bundles/cdk-observers.umd.js +30 -11
- package/bundles/cdk-observers.umd.js.map +1 -1
- package/bundles/cdk-observers.umd.min.js +1 -1
- package/bundles/cdk-observers.umd.min.js.map +1 -1
- package/bundles/cdk-overlay.umd.js +229 -108
- package/bundles/cdk-overlay.umd.js.map +1 -1
- package/bundles/cdk-overlay.umd.min.js +2 -2
- package/bundles/cdk-overlay.umd.min.js.map +1 -1
- package/bundles/cdk-platform.umd.js +17 -10
- package/bundles/cdk-platform.umd.js.map +1 -1
- package/bundles/cdk-platform.umd.min.js +1 -1
- package/bundles/cdk-platform.umd.min.js.map +1 -1
- package/bundles/cdk-portal.umd.js +32 -13
- package/bundles/cdk-portal.umd.js.map +1 -1
- package/bundles/cdk-portal.umd.min.js.map +1 -1
- package/bundles/cdk-scrolling.umd.js +184 -62
- package/bundles/cdk-scrolling.umd.js.map +1 -1
- package/bundles/cdk-scrolling.umd.min.js +1 -1
- package/bundles/cdk-scrolling.umd.min.js.map +1 -1
- package/bundles/cdk-stepper.umd.js +30 -12
- package/bundles/cdk-stepper.umd.js.map +1 -1
- package/bundles/cdk-stepper.umd.min.js.map +1 -1
- package/bundles/cdk-table.umd.js +384 -74
- package/bundles/cdk-table.umd.js.map +1 -1
- package/bundles/cdk-table.umd.min.js +1 -1
- package/bundles/cdk-table.umd.min.js.map +1 -1
- package/bundles/cdk-text-field.umd.js +61 -21
- package/bundles/cdk-text-field.umd.js.map +1 -1
- package/bundles/cdk-text-field.umd.min.js +1 -1
- package/bundles/cdk-text-field.umd.min.js.map +1 -1
- package/bundles/cdk-tree.umd.js +85 -29
- package/bundles/cdk-tree.umd.js.map +1 -1
- package/bundles/cdk-tree.umd.min.js.map +1 -1
- package/bundles/cdk.umd.js +2 -2
- package/bundles/cdk.umd.js.map +1 -1
- package/bundles/cdk.umd.min.js +1 -1
- package/bundles/cdk.umd.min.js.map +1 -1
- package/drag-drop/typings/directives/drag.d.ts +11 -2
- package/drag-drop/typings/drag-events.d.ts +17 -0
- package/drag-drop/typings/drag-ref.d.ts +9 -5
- package/drag-drop/typings/drop-list-ref.d.ts +9 -3
- package/drag-drop/typings/index.metadata.json +1 -1
- package/esm2015/a11y.js +229 -81
- package/esm2015/a11y.js.map +1 -1
- package/esm2015/accordion.js +22 -10
- package/esm2015/accordion.js.map +1 -1
- package/esm2015/bidi.js +8 -8
- package/esm2015/cdk.js +4 -4
- package/esm2015/cdk.js.map +1 -1
- package/esm2015/coercion.js +7 -7
- package/esm2015/collections.js +41 -18
- package/esm2015/collections.js.map +1 -1
- package/esm2015/drag-drop.js +540 -181
- package/esm2015/drag-drop.js.map +1 -1
- package/esm2015/keycodes.js +9 -5
- package/esm2015/keycodes.js.map +1 -1
- package/esm2015/layout.js +89 -36
- package/esm2015/layout.js.map +1 -1
- package/esm2015/observers.js +33 -14
- package/esm2015/observers.js.map +1 -1
- package/esm2015/overlay.js +232 -110
- package/esm2015/overlay.js.map +1 -1
- package/esm2015/platform.js +20 -13
- package/esm2015/platform.js.map +1 -1
- package/esm2015/portal.js +34 -15
- package/esm2015/portal.js.map +1 -1
- package/esm2015/scrolling.js +180 -58
- package/esm2015/scrolling.js.map +1 -1
- package/esm2015/stepper.js +32 -14
- package/esm2015/stepper.js.map +1 -1
- package/esm2015/table.js +369 -69
- package/esm2015/table.js.map +1 -1
- package/esm2015/text-field.js +64 -24
- package/esm2015/text-field.js.map +1 -1
- package/esm2015/tree.js +86 -30
- package/esm2015/tree.js.map +1 -1
- package/esm5/a11y.es5.js +230 -82
- package/esm5/a11y.es5.js.map +1 -1
- package/esm5/accordion.es5.js +22 -10
- package/esm5/accordion.es5.js.map +1 -1
- package/esm5/bidi.es5.js +8 -8
- package/esm5/cdk.es5.js +4 -4
- package/esm5/cdk.es5.js.map +1 -1
- package/esm5/coercion.es5.js +7 -7
- package/esm5/collections.es5.js +42 -19
- package/esm5/collections.es5.js.map +1 -1
- package/esm5/drag-drop.es5.js +574 -183
- package/esm5/drag-drop.es5.js.map +1 -1
- package/esm5/keycodes.es5.js +9 -5
- package/esm5/keycodes.es5.js.map +1 -1
- package/esm5/layout.es5.js +86 -33
- package/esm5/layout.es5.js.map +1 -1
- package/esm5/observers.es5.js +33 -14
- package/esm5/observers.es5.js.map +1 -1
- package/esm5/overlay.es5.js +232 -111
- package/esm5/overlay.es5.js.map +1 -1
- package/esm5/platform.es5.js +20 -13
- package/esm5/platform.es5.js.map +1 -1
- package/esm5/portal.es5.js +34 -15
- package/esm5/portal.es5.js.map +1 -1
- package/esm5/scrolling.es5.js +187 -65
- package/esm5/scrolling.es5.js.map +1 -1
- package/esm5/stepper.es5.js +32 -14
- package/esm5/stepper.es5.js.map +1 -1
- package/esm5/table.es5.js +386 -72
- package/esm5/table.es5.js.map +1 -1
- package/esm5/text-field.es5.js +64 -24
- package/esm5/text-field.es5.js.map +1 -1
- package/esm5/tree.es5.js +87 -31
- package/esm5/tree.es5.js.map +1 -1
- package/layout/typings/breakpoints-observer.d.ts +3 -3
- package/layout/typings/index.metadata.json +1 -1
- package/layout/typings/media-matcher.d.ts +2 -2
- package/overlay/typings/index.metadata.json +1 -1
- package/overlay/typings/position/flexible-connected-position-strategy.d.ts +1 -3
- package/package.json +8 -8
- package/portal/typings/portal.d.ts +2 -2
- package/schematics/ng-update/data/attribute-selectors.js +1 -1
- package/schematics/ng-update/data/attribute-selectors.js.map +1 -1
- package/schematics/ng-update/data/class-names.js +3 -3
- package/schematics/ng-update/data/class-names.js.map +1 -1
- package/schematics/ng-update/data/constructor-checks.js +1 -1
- package/schematics/ng-update/data/constructor-checks.js.map +1 -1
- package/schematics/ng-update/data/input-names.js +1 -1
- package/schematics/ng-update/data/input-names.js.map +1 -1
- package/schematics/ng-update/data/method-call-checks.js +1 -1
- package/schematics/ng-update/data/method-call-checks.js.map +1 -1
- package/schematics/ng-update/data/property-names.js +4 -4
- package/schematics/ng-update/data/property-names.js.map +1 -1
- package/schematics/ng-update/upgrade-rules/signature-check/constructorSignatureCheckRule.js +1 -1
- package/schematics/ng-update/upgrade-rules/signature-check/constructorSignatureCheckRule.js.map +1 -1
- package/schematics/tsconfig.tsbuildinfo +5811 -0
- package/schematics/utils/ast.d.ts +1 -1
- package/schematics/utils/build-component.js +1 -1
- package/schematics/utils/build-component.js.map +1 -1
- package/schematics/utils/get-project.d.ts +1 -1
- package/schematics/utils/project-main-file.d.ts +1 -1
- package/schematics/utils/project-style-file.d.ts +1 -1
- package/schematics/utils/project-targets.d.ts +1 -1
- package/schematics/utils/schematic-options.d.ts +1 -1
- package/table/typings/cell.d.ts +3 -2
- package/table/typings/index.metadata.json +1 -1
- package/table/typings/public-api.d.ts +1 -0
- package/table/typings/row.d.ts +5 -4
- package/table/typings/sticky-styler.d.ts +5 -5
- package/table/typings/table-errors.d.ts +10 -0
- package/table/typings/text-column.d.ts +80 -0
- package/typings/drag-drop/directives/drag.d.ts +11 -2
- package/typings/drag-drop/drag-events.d.ts +17 -0
- package/typings/drag-drop/drag-ref.d.ts +9 -5
- package/typings/drag-drop/drop-list-ref.d.ts +9 -3
- package/typings/drag-drop/index.metadata.json +1 -1
- package/typings/esm5/drag-drop/directives/drag.d.ts +11 -2
- package/typings/esm5/drag-drop/drag-events.d.ts +17 -0
- package/typings/esm5/drag-drop/drag-ref.d.ts +9 -5
- package/typings/esm5/drag-drop/drop-list-ref.d.ts +9 -3
- package/typings/esm5/drag-drop/index.metadata.json +1 -1
- package/typings/esm5/index.metadata.json +1 -1
- package/typings/esm5/layout/breakpoints-observer.d.ts +3 -3
- package/typings/esm5/layout/index.metadata.json +1 -1
- package/typings/esm5/layout/media-matcher.d.ts +2 -2
- package/typings/esm5/overlay/index.metadata.json +1 -1
- package/typings/esm5/overlay/position/flexible-connected-position-strategy.d.ts +1 -3
- package/typings/esm5/portal/portal.d.ts +2 -2
- package/typings/esm5/table/cell.d.ts +3 -2
- package/typings/esm5/table/index.metadata.json +1 -1
- package/typings/esm5/table/public-api.d.ts +1 -0
- package/typings/esm5/table/row.d.ts +5 -4
- package/typings/esm5/table/sticky-styler.d.ts +5 -5
- package/typings/esm5/table/table-errors.d.ts +10 -0
- package/typings/esm5/table/text-column.d.ts +80 -0
- package/typings/index.metadata.json +1 -1
- package/typings/layout/breakpoints-observer.d.ts +3 -3
- package/typings/layout/index.metadata.json +1 -1
- package/typings/layout/media-matcher.d.ts +2 -2
- package/typings/overlay/index.metadata.json +1 -1
- package/typings/overlay/position/flexible-connected-position-strategy.d.ts +1 -3
- package/typings/portal/portal.d.ts +2 -2
- package/typings/schematics/utils/ast.d.ts +1 -1
- package/typings/schematics/utils/get-project.d.ts +1 -1
- package/typings/schematics/utils/project-main-file.d.ts +1 -1
- package/typings/schematics/utils/project-style-file.d.ts +1 -1
- package/typings/schematics/utils/project-targets.d.ts +1 -1
- package/typings/schematics/utils/schematic-options.d.ts +1 -1
- package/typings/table/cell.d.ts +3 -2
- package/typings/table/index.metadata.json +1 -1
- package/typings/table/public-api.d.ts +1 -0
- package/typings/table/row.d.ts +5 -4
- package/typings/table/sticky-styler.d.ts +5 -5
- package/typings/table/table-errors.d.ts +10 -0
- package/typings/table/text-column.d.ts +80 -0
package/esm2015/overlay.js
CHANGED
|
@@ -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,
|
|
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((
|
|
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(
|
|
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(
|
|
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((
|
|
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 = (
|
|
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 = (
|
|
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 = (
|
|
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 = (
|
|
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 =
|
|
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(
|
|
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 = (
|
|
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 =
|
|
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 =
|
|
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((
|
|
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((
|
|
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', (
|
|
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
|
-
|
|
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((
|
|
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(
|
|
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.
|
|
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 =
|
|
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)).
|
|
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.
|
|
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.
|
|
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((
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
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((
|
|
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(
|
|
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(
|
|
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(
|
|
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 (
|
|
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((
|
|
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 =
|
|
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 };
|