Socket
Socket
Sign inDemoInstall

@angular/cdk-experimental

Package Overview
Dependencies
1
Maintainers
1
Versions
464
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 6.4.7 to 7.0.0-beta.0

194

bundles/cdk-experimental-dialog.umd.js

@@ -56,3 +56,3 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -133,3 +133,3 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -186,2 +186,6 @@ /**

Object.defineProperty(CdkDialogContainer.prototype, "_ariaLabel", {
// @HostBinding is used in the class as it is expected to be extended. Since @Component decorator
// metadata is not inherited by child classes, instead the host binding data is defined in a way
// that can be inherited.
// tslint:disable:no-host-decorator-in-concrete
get: /**

@@ -383,3 +387,4 @@ * @return {?}

function () {
var /** @type {?} */ toFocus = this._elementFocusedBeforeDialogWasOpened;
/** @type {?} */
var toFocus = this._elementFocusedBeforeDialogWasOpened;
// We need the extra check, because IE can set the `activeElement` to null in some cases.

@@ -414,14 +419,14 @@ if (toFocus && typeof toFocus.focus === 'function') {

CdkDialogContainer.ctorParameters = function () { return [
{ type: core.ElementRef, },
{ type: a11y.FocusTrapFactory, },
{ type: core.ChangeDetectorRef, },
{ type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] },] },
{ type: DialogConfig, },
{ type: core.ElementRef },
{ type: a11y.FocusTrapFactory },
{ type: core.ChangeDetectorRef },
{ type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [common.DOCUMENT,] }] },
{ type: DialogConfig }
]; };
CdkDialogContainer.propDecorators = {
"_ariaLabel": [{ type: core.HostBinding, args: ['attr.aria-label',] },],
"_ariaDescribedBy": [{ type: core.HostBinding, args: ['attr.aria-describedby',] },],
"_role": [{ type: core.HostBinding, args: ['attr.role',] },],
"_tabindex": [{ type: core.HostBinding, args: ['attr.tabindex',] },],
"_portalHost": [{ type: core.ViewChild, args: [portal.PortalHostDirective,] },],
_ariaLabel: [{ type: core.HostBinding, args: ['attr.aria-label',] }],
_ariaDescribedBy: [{ type: core.HostBinding, args: ['attr.aria-describedby',] }],
_role: [{ type: core.HostBinding, args: ['attr.role',] }],
_tabindex: [{ type: core.HostBinding, args: ['attr.tabindex',] }],
_portalHost: [{ type: core.ViewChild, args: [portal.PortalHostDirective,] }]
};

@@ -433,8 +438,8 @@ return CdkDialogContainer;

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Unique id for the created dialog.
*/
var /** @type {?} */ uniqueId = 0;
@type {?} */
var uniqueId = 0;
/**

@@ -463,3 +468,3 @@ * Reference to a dialog opened via the Dialog service.

}
this.beforeClose().subscribe(function () {
this.beforeClosed().subscribe(function () {
_this._overlayRef.detachBackdrop();

@@ -522,3 +527,4 @@ });

function (position) {
var /** @type {?} */ strategy = this._getPositionStrategy();
/** @type {?} */
var strategy = this._getPositionStrategy();
if (position && (position.left || position.right)) {

@@ -594,3 +600,3 @@ position.left ? strategy.left(position.left) : strategy.right(position.right);

*/
DialogRef.prototype.beforeOpen = /**
DialogRef.prototype.beforeOpened = /**
* Gets an observable that emits when dialog begins opening.

@@ -607,3 +613,3 @@ * @return {?}

*/
DialogRef.prototype.afterOpen = /**
DialogRef.prototype.afterOpened = /**
* Gets an observable that emits when dialog is finished opening.

@@ -620,3 +626,3 @@ * @return {?}

*/
DialogRef.prototype.beforeClose = /**
DialogRef.prototype.beforeClosed = /**
* Gets an observable that emits when dialog begins closing.

@@ -647,24 +653,24 @@ * @return {?}

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Injection token for the Dialog's ScrollStrategy.
*/
var /** @type {?} */ DIALOG_SCROLL_STRATEGY = new core.InjectionToken('DialogScrollStrategy');
/**
@type {?} */
var DIALOG_SCROLL_STRATEGY = new core.InjectionToken('DialogScrollStrategy');
/** *
* Injection token for the Dialog's Data.
*/
var /** @type {?} */ DIALOG_DATA = new core.InjectionToken('DialogData');
/**
@type {?} */
var DIALOG_DATA = new core.InjectionToken('DialogData');
/** *
* Injection token for the DialogRef constructor.
*/
var /** @type {?} */ DIALOG_REF = new core.InjectionToken('DialogRef');
/**
@type {?} */
var DIALOG_REF = new core.InjectionToken('DialogRef');
/** *
* Injection token for the DialogConfig.
*/
var /** @type {?} */ DIALOG_CONFIG = new core.InjectionToken('DialogConfig');
/**
@type {?} */
var DIALOG_CONFIG = new core.InjectionToken('DialogConfig');
/** *
* Injection token for the Dialog's DialogContainer component.
*/
var /** @type {?} */ DIALOG_CONTAINER = new core.InjectionToken('DialogContainer');
@type {?} */
var DIALOG_CONTAINER = new core.InjectionToken('DialogContainer');
/**

@@ -678,6 +684,6 @@ * \@docs-private

}
/**
/** *
* \@docs-private
*/
var /** @type {?} */ MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {
@type {?} */
var MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {
provide: DIALOG_SCROLL_STRATEGY,

@@ -690,3 +696,3 @@ deps: [overlay.Overlay],

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -705,7 +711,5 @@ /**

this._afterAllClosedBase = new rxjs.Subject();
this.afterAllClosed = rxjs.defer(function () {
return _this.openDialogs.length ?
_this._afterAllClosed : _this._afterAllClosed.pipe(operators.startWith(undefined));
});
this._afterOpen = new rxjs.Subject();
this.afterAllClosed = rxjs.defer(function () { return _this.openDialogs.length ?
_this._afterAllClosed : _this._afterAllClosed.pipe(operators.startWith(undefined)); });
this._afterOpened = new rxjs.Subject();
this._openDialogs = [];

@@ -731,3 +735,3 @@ // Close all of the dialogs when the user goes forwards/backwards in history or when the

});
Object.defineProperty(Dialog.prototype, "afterOpen", {
Object.defineProperty(Dialog.prototype, "afterOpened", {
/** Stream that emits when a dialog is opened. */

@@ -739,3 +743,3 @@ get: /**

function () {
return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpen;
return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;
},

@@ -803,5 +807,8 @@ enumerable: true,

}
var /** @type {?} */ overlayRef = this._createOverlay(config);
var /** @type {?} */ dialogContainer = this._attachDialogContainer(overlayRef, config);
var /** @type {?} */ dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef, config);
/** @type {?} */
var overlayRef = this._createOverlay(config);
/** @type {?} */
var dialogContainer = this._attachDialogContainer(overlayRef, config);
/** @type {?} */
var dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef, config);
this.registerDialogRef(dialogRef);

@@ -830,5 +837,8 @@ return dialogRef;

}
var /** @type {?} */ overlayRef = this._createOverlay(config);
var /** @type {?} */ dialogContainer = this._attachDialogContainer(overlayRef, config);
var /** @type {?} */ dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef, config);
/** @type {?} */
var overlayRef = this._createOverlay(config);
/** @type {?} */
var dialogContainer = this._attachDialogContainer(overlayRef, config);
/** @type {?} */
var dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef, config);
this.registerDialogRef(dialogRef);

@@ -850,10 +860,13 @@ return dialogRef;

this.openDialogs.push(dialogRef);
var /** @type {?} */ dialogOpenSub = dialogRef.afterOpen().subscribe(function () {
_this.afterOpen.next(dialogRef);
/** @type {?} */
var dialogOpenSub = dialogRef.afterOpened().subscribe(function () {
_this.afterOpened.next(dialogRef);
dialogOpenSub.unsubscribe();
});
var /** @type {?} */ dialogCloseSub = dialogRef.afterClosed().subscribe(function () {
var /** @type {?} */ dialogIdx = _this._openDialogs.indexOf(dialogRef);
if (dialogIdx !== -1) {
_this._openDialogs.splice(dialogIdx, 1);
/** @type {?} */
var dialogCloseSub = dialogRef.afterClosed().subscribe(function () {
/** @type {?} */
var dialogIndex = _this._openDialogs.indexOf(dialogRef);
if (dialogIndex > -1) {
_this._openDialogs.splice(dialogIndex, 1);
}

@@ -882,3 +895,4 @@ if (!_this._openDialogs.length) {

function (config) {
var /** @type {?} */ overlayConfig = new overlay.OverlayConfig({
/** @type {?} */
var overlayConfig = new overlay.OverlayConfig({
positionStrategy: this.overlay.position().global(),

@@ -918,9 +932,14 @@ scrollStrategy: this._scrollStrategy(),

function (overlay$$1, config) {
var /** @type {?} */ container = config.containerComponent || this.injector.get(DIALOG_CONTAINER);
var /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
var /** @type {?} */ injector = new portal.PortalInjector(userInjector || this.injector, new WeakMap([
/** @type {?} */
var container = config.containerComponent || this.injector.get(DIALOG_CONTAINER);
/** @type {?} */
var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
/** @type {?} */
var injector = new portal.PortalInjector(userInjector || this.injector, new WeakMap([
[DialogConfig, config]
]));
var /** @type {?} */ containerPortal = new portal.ComponentPortal(container, config.viewContainerRef, injector);
var /** @type {?} */ containerRef = overlay$$1.attach(containerPortal);
/** @type {?} */
var containerPortal = new portal.ComponentPortal(container, config.viewContainerRef, injector);
/** @type {?} */
var containerRef = overlay$$1.attach(containerPortal);
containerRef.instance._config = config;

@@ -959,7 +978,8 @@ return containerRef.instance;

function (componentOrTemplateRef, dialogContainer, overlayRef, config) {
// Create a reference to the dialog we're creating in order to give the user a handle
// to modify and close it.
var /** @type {?} */ dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
var /** @type {?} */ injector = this._createInjector(config, dialogRef, dialogContainer);
var /** @type {?} */ contentRef = dialogContainer.attachComponentPortal(new portal.ComponentPortal(componentOrTemplateRef, undefined, injector));
/** @type {?} */
var dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
/** @type {?} */
var injector = this._createInjector(config, dialogRef, dialogContainer);
/** @type {?} */
var contentRef = dialogContainer.attachComponentPortal(new portal.ComponentPortal(componentOrTemplateRef, undefined, injector));
dialogRef.componentInstance = contentRef.instance;

@@ -1000,5 +1020,4 @@ dialogRef.updateSize({ width: config.width, height: config.height })

function (componentOrTemplateRef, dialogContainer, overlayRef, config) {
// Create a reference to the dialog we're creating in order to give the user a handle
// to modify and close it.
var /** @type {?} */ dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
/** @type {?} */
var dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
dialogContainer.attachTemplatePortal(new portal.TemplatePortal(componentOrTemplateRef, /** @type {?} */ ((null)), /** @type {?} */ ({ $implicit: config.data, dialogRef: dialogRef })));

@@ -1028,4 +1047,6 @@ dialogRef.updateSize({ width: config.width, height: config.height })

function (config, dialogRef, dialogContainer) {
var /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
var /** @type {?} */ injectionTokens = new WeakMap([
/** @type {?} */
var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
/** @type {?} */
var injectionTokens = new WeakMap([
[this.injector.get(DIALOG_REF), dialogRef],

@@ -1057,3 +1078,4 @@ [this.injector.get(DIALOG_CONTAINER), dialogContainer],

function (config) {
var /** @type {?} */ dialogConfig = /** @type {?} */ (this.injector.get(DIALOG_CONFIG));
/** @type {?} */
var dialogConfig = /** @type {?} */ (this.injector.get(DIALOG_CONFIG));
return __assign({}, new dialogConfig(), config);

@@ -1066,8 +1088,8 @@ };

Dialog.ctorParameters = function () { return [
{ type: overlay.Overlay, },
{ type: core.Injector, },
{ type: undefined, decorators: [{ type: core.Inject, args: [DIALOG_REF,] },] },
{ type: undefined, decorators: [{ type: core.Inject, args: [DIALOG_SCROLL_STRATEGY,] },] },
{ type: Dialog, decorators: [{ type: core.Optional }, { type: core.SkipSelf },] },
{ type: common.Location, decorators: [{ type: core.Optional },] },
{ type: overlay.Overlay },
{ type: core.Injector },
{ type: undefined, decorators: [{ type: core.Inject, args: [DIALOG_REF,] }] },
{ type: undefined, decorators: [{ type: core.Inject, args: [DIALOG_SCROLL_STRATEGY,] }] },
{ type: Dialog, decorators: [{ type: core.Optional }, { type: core.SkipSelf }] },
{ type: common.Location, decorators: [{ type: core.Optional }] }
]; };

@@ -1079,3 +1101,3 @@ return Dialog;

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -1119,2 +1141,3 @@ var ɵ0 = DialogRef, ɵ1 = CdkDialogContainer, ɵ2 = DialogConfig;

exports.DialogModule = DialogModule;
exports.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY = MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY;
exports.DIALOG_SCROLL_STRATEGY = DIALOG_SCROLL_STRATEGY;

@@ -1125,3 +1148,2 @@ exports.DIALOG_DATA = DIALOG_DATA;

exports.DIALOG_CONTAINER = DIALOG_CONTAINER;
exports.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY = MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY;
exports.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = MAT_DIALOG_SCROLL_STRATEGY_PROVIDER;

@@ -1128,0 +1150,0 @@

@@ -8,3 +8,3 @@ /**

*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/animations"),require("@angular/cdk/a11y"),require("@angular/cdk/portal"),require("@angular/common"),require("@angular/core"),require("rxjs"),require("@angular/cdk/keycodes"),require("rxjs/operators"),require("@angular/cdk/overlay"),require("@angular/cdk/bidi")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental/dialog",["exports","@angular/animations","@angular/cdk/a11y","@angular/cdk/portal","@angular/common","@angular/core","rxjs","@angular/cdk/keycodes","rxjs/operators","@angular/cdk/overlay","@angular/cdk/bidi"],e):e((t.ng=t.ng||{},t.ng["cdk-experimental"]=t.ng["cdk-experimental"]||{},t.ng["cdk-experimental"].dialog={}),t.ng.animations,t.ng.cdk.a11y,t.ng.cdk.portal,t.ng.common,t.ng.core,t.rxjs,t.ng.cdk.keycodes,t.rxjs.operators,t.ng.cdk.overlay,t.ng.cdk.bidi)}(this,function(t,e,o,n,r,i,a,s,l,c,p){"use strict";function u(t,e){function o(){this.constructor=t}h(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}function f(){throw Error("Attempting to attach dialog content after content is already attached")}function d(t){return function(){return t.scrollStrategies.block()}}var h=function(t,e){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)},g=function(){return g=Object.assign||function(t){for(var e,o=1,n=arguments.length;o<n;o++){e=arguments[o];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},g.apply(this,arguments)},y=function(){function t(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.minWidth="",this.minHeight="",this.maxWidth="80vw",this.maxHeight="",this.data=null,this.ariaDescribedBy=null,this.ariaLabel=null,this.autoFocus=!0}return t}(),_=function(t){function s(e,o,n,r,i){var s=t.call(this)||this;return s._elementRef=e,s._focusTrapFactory=o,s._changeDetectorRef=n,s._document=r,s._config=i,s._state="enter",s._elementFocusedBeforeDialogWasOpened=null,s._focusTrap=s._focusTrapFactory.create(s._elementRef.nativeElement,!1),s._beforeEnter=new a.Subject,s._afterEnter=new a.Subject,s._beforeExit=new a.Subject,s._afterExit=new a.Subject,s}return u(s,t),Object.defineProperty(s.prototype,"_ariaLabel",{get:function(){return this._config.ariaLabel||null},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"_ariaDescribedBy",{get:function(){return this._config.ariaDescribedBy},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"_role",{get:function(){return this._config.role},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"_tabindex",{get:function(){return-1},enumerable:!0,configurable:!0}),s.prototype.ngOnDestroy=function(){this._focusTrap.destroy()},s.prototype.attachComponentPortal=function(t){return this._portalHost.hasAttached()&&f(),this._savePreviouslyFocusedElement(),this._portalHost.attachComponentPortal(t)},s.prototype.attachTemplatePortal=function(t){return this._portalHost.hasAttached()&&f(),this._savePreviouslyFocusedElement(),this._portalHost.attachTemplatePortal(t)},s.prototype._onAnimationStart=function(t){"enter"===t.toState&&this._beforeEnter.next(),"enter"!==t.fromState||"void"!==t.toState&&"exit"!==t.toState||this._beforeExit.next()},s.prototype._onAnimationDone=function(t){"enter"===t.toState&&(this._autoFocusFirstTabbableElement(),this._afterEnter.next()),"enter"!==t.fromState||"void"!==t.toState&&"exit"!==t.toState||(this._returnFocusAfterDialog(),this._afterExit.next())},s.prototype._startExiting=function(){this._state="exit",this._changeDetectorRef.markForCheck()},s.prototype._savePreviouslyFocusedElement=function(){var t=this;this._document&&(this._elementFocusedBeforeDialogWasOpened=this._document.activeElement,Promise.resolve().then(function(){return t._elementRef.nativeElement.focus()}))},s.prototype._autoFocusFirstTabbableElement=function(){var t=this;this._config.autoFocus&&this._focusTrap.focusInitialElementWhenReady().then(function(e){e||t._elementRef.nativeElement.focus()})},s.prototype._returnFocusAfterDialog=function(){var t=this._elementFocusedBeforeDialogWasOpened;t&&"function"==typeof t.focus&&t.focus()},s.decorators=[{type:i.Component,args:[{selector:"cdk-dialog-container",template:"<ng-template cdkPortalOutlet></ng-template>",styles:["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"],encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.Default,animations:[e.trigger("dialog",[e.state("enter",e.style({opacity:1})),e.state("exit, void",e.style({opacity:0})),e.transition("* => *",e.animate(225))])],host:{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)"}}]}],s.ctorParameters=function(){return[{type:i.ElementRef},{type:o.FocusTrapFactory},{type:i.ChangeDetectorRef},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[r.DOCUMENT]}]},{type:y}]},s.propDecorators={_ariaLabel:[{type:i.HostBinding,args:["attr.aria-label"]}],_ariaDescribedBy:[{type:i.HostBinding,args:["attr.aria-describedby"]}],_role:[{type:i.HostBinding,args:["attr.role"]}],_tabindex:[{type:i.HostBinding,args:["attr.tabindex"]}],_portalHost:[{type:i.ViewChild,args:[n.PortalHostDirective]}]},s}(n.BasePortalOutlet),b=0,m=function(){function t(t,e,o){void 0===o&&(o="dialog-"+b++);var n=this;this._overlayRef=t,this._containerInstance=e,this.id=o,e._config.hasBackdrop&&t.backdropClick().subscribe(function(){n.disableClose||n.close()}),this.beforeClose().subscribe(function(){n._overlayRef.detachBackdrop()}),this.afterClosed().subscribe(function(){n._overlayRef.detach(),n._overlayRef.dispose(),n.componentInstance=null}),t.keydownEvents().pipe(l.filter(function(t){return t.keyCode===s.ESCAPE&&!n.disableClose})).subscribe(function(){return n.close()})}return t.prototype.backdropClick=function(){return this._overlayRef.backdropClick()},t.prototype.close=function(t){this._result=t,this._containerInstance._startExiting()},t.prototype.updatePosition=function(t){var e=this._getPositionStrategy();return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._overlayRef.updatePosition(),this},t.prototype.keydownEvents=function(){return this._overlayRef.keydownEvents()},t.prototype.updateSize=function(t){return t.width&&this._getPositionStrategy().width(t.width.toString()),t.height&&this._getPositionStrategy().height(t.height.toString()),this._overlayRef.updateSize(t),this._overlayRef.updatePosition(),this},t.prototype._getPositionStrategy=function(){return this._overlayRef.getConfig().positionStrategy},t.prototype.beforeOpen=function(){return this._containerInstance._beforeEnter.asObservable()},t.prototype.afterOpen=function(){return this._containerInstance._afterEnter.asObservable()},t.prototype.beforeClose=function(){var t=this;return this._containerInstance._beforeExit.pipe(l.map(function(){return t._result}))},t.prototype.afterClosed=function(){var t=this;return this._containerInstance._afterExit.pipe(l.map(function(){return t._result}))},t}(),v=new i.InjectionToken("DialogScrollStrategy"),D=new i.InjectionToken("DialogData"),C=new i.InjectionToken("DialogRef"),k=new i.InjectionToken("DialogConfig"),O=new i.InjectionToken("DialogContainer"),w={provide:v,deps:[c.Overlay],useFactory:d},j=function(){function t(t,e,o,n,r,i){var s=this;this.overlay=t,this.injector=e,this.dialogRefConstructor=o,this._scrollStrategy=n,this._parentDialog=r,this._afterAllClosedBase=new a.Subject,this.afterAllClosed=a.defer(function(){return s.openDialogs.length?s._afterAllClosed:s._afterAllClosed.pipe(l.startWith(void 0))}),this._afterOpen=new a.Subject,this._openDialogs=[],!r&&i&&i.subscribe(function(){return s.closeAll()})}return Object.defineProperty(t.prototype,"_afterAllClosed",{get:function(){return this._parentDialog?this._parentDialog.afterAllClosed:this._afterAllClosedBase},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"afterOpen",{get:function(){return this._parentDialog?this._parentDialog.afterOpen:this._afterOpen},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"openDialogs",{get:function(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogs},enumerable:!0,configurable:!0}),t.prototype.getById=function(t){return this._openDialogs.find(function(e){return e.id===t})},t.prototype.closeAll=function(){this.openDialogs.forEach(function(t){return t.close()})},t.prototype.openFromComponent=function(t,e){if(e=this._applyConfigDefaults(e),e.id&&this.getById(e.id))throw Error('Dialog with id "'+e.id+'" exists already. The dialog id must be unique.');var o=this._createOverlay(e),n=this._attachDialogContainer(o,e),r=this._attachDialogContentForComponent(t,n,o,e);return this.registerDialogRef(r),r},t.prototype.openFromTemplate=function(t,e){if(e=this._applyConfigDefaults(e),e.id&&this.getById(e.id))throw Error('Dialog with id "'+e.id+'" exists already. The dialog id must be unique.');var o=this._createOverlay(e),n=this._attachDialogContainer(o,e),r=this._attachDialogContentForTemplate(t,n,o,e);return this.registerDialogRef(r),r},t.prototype.registerDialogRef=function(t){var e=this;this.openDialogs.push(t);var o=t.afterOpen().subscribe(function(){e.afterOpen.next(t),o.unsubscribe()}),n=t.afterClosed().subscribe(function(){var o=e._openDialogs.indexOf(t);-1!==o&&e._openDialogs.splice(o,1),e._openDialogs.length||(e._afterAllClosedBase.next(),n.unsubscribe())})},t.prototype._createOverlay=function(t){var e=new c.OverlayConfig({positionStrategy:this.overlay.position().global(),scrollStrategy:this._scrollStrategy(),panelClass:t.panelClass,hasBackdrop:t.hasBackdrop,direction:t.direction,minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight});return t.backdropClass&&(e.backdropClass=t.backdropClass),this.overlay.create(e)},t.prototype._attachDialogContainer=function(t,e){var o=e.containerComponent||this.injector.get(O),r=e&&e.viewContainerRef&&e.viewContainerRef.injector,i=new n.PortalInjector(r||this.injector,new WeakMap([[y,e]])),a=new n.ComponentPortal(o,e.viewContainerRef,i),s=t.attach(a);return s.instance._config=e,s.instance},t.prototype._attachDialogContentForComponent=function(t,e,o,r){var i=new this.dialogRefConstructor(o,e,r.id),a=this._createInjector(r,i,e),s=e.attachComponentPortal(new n.ComponentPortal(t,void 0,a));return i.componentInstance=s.instance,i.updateSize({width:r.width,height:r.height}).updatePosition(r.position),i},t.prototype._attachDialogContentForTemplate=function(t,e,o,r){var i=new this.dialogRefConstructor(o,e,r.id);return e.attachTemplatePortal(new n.TemplatePortal(t,null,{$implicit:r.data,dialogRef:i})),i.updateSize({width:r.width,height:r.height}).updatePosition(r.position),i},t.prototype._createInjector=function(t,e,o){var r=t&&t.viewContainerRef&&t.viewContainerRef.injector,i=new WeakMap([[this.injector.get(C),e],[this.injector.get(O),o],[D,t.data]]);return!t.direction||r&&r.get(p.Directionality,null)||i.set(p.Directionality,{value:t.direction,change:a.of()}),new n.PortalInjector(r||this.injector,i)},t.prototype._applyConfigDefaults=function(t){var e=this.injector.get(k);return g({},new e,t)},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[{type:c.Overlay},{type:i.Injector},{type:void 0,decorators:[{type:i.Inject,args:[C]}]},{type:void 0,decorators:[{type:i.Inject,args:[v]}]},{type:t,decorators:[{type:i.Optional},{type:i.SkipSelf}]},{type:r.Location,decorators:[{type:i.Optional}]}]},t}(),x=m,R=_,E=y,P=function(){function t(){}return t.decorators=[{type:i.NgModule,args:[{imports:[r.CommonModule,c.OverlayModule,n.PortalModule,o.A11yModule],exports:[_],declarations:[_],providers:[j,w,{provide:C,useValue:x},{provide:O,useValue:R},{provide:k,useValue:E}],entryComponents:[_]}]}],t}();t.throwDialogContentAlreadyAttachedError=f,t.CdkDialogContainer=_,t.DialogConfig=y,t.DialogRef=m,t.Dialog=j,t.DialogModule=P,t.DIALOG_SCROLL_STRATEGY=v,t.DIALOG_DATA=D,t.DIALOG_REF=C,t.DIALOG_CONFIG=k,t.DIALOG_CONTAINER=O,t.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY=d,t.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER=w,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/animations"),require("@angular/cdk/a11y"),require("@angular/cdk/portal"),require("@angular/common"),require("@angular/core"),require("rxjs"),require("@angular/cdk/keycodes"),require("rxjs/operators"),require("@angular/cdk/overlay"),require("@angular/cdk/bidi")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental/dialog",["exports","@angular/animations","@angular/cdk/a11y","@angular/cdk/portal","@angular/common","@angular/core","rxjs","@angular/cdk/keycodes","rxjs/operators","@angular/cdk/overlay","@angular/cdk/bidi"],e):e((t.ng=t.ng||{},t.ng["cdk-experimental"]=t.ng["cdk-experimental"]||{},t.ng["cdk-experimental"].dialog={}),t.ng.animations,t.ng.cdk.a11y,t.ng.cdk.portal,t.ng.common,t.ng.core,t.rxjs,t.ng.cdk.keycodes,t.rxjs.operators,t.ng.cdk.overlay,t.ng.cdk.bidi)}(this,function(t,e,o,n,r,i,a,s,l,c,p){"use strict";function u(t,e){function o(){this.constructor=t}h(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}function d(){throw Error("Attempting to attach dialog content after content is already attached")}function f(t){return function(){return t.scrollStrategies.block()}}var h=function(t,e){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)},g=function(){return g=Object.assign||function(t){for(var e,o=1,n=arguments.length;o<n;o++){e=arguments[o];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},g.apply(this,arguments)},y=function(){function t(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.minWidth="",this.minHeight="",this.maxWidth="80vw",this.maxHeight="",this.data=null,this.ariaDescribedBy=null,this.ariaLabel=null,this.autoFocus=!0}return t}(),_=function(t){function s(e,o,n,r,i){var s=t.call(this)||this;return s._elementRef=e,s._focusTrapFactory=o,s._changeDetectorRef=n,s._document=r,s._config=i,s._state="enter",s._elementFocusedBeforeDialogWasOpened=null,s._focusTrap=s._focusTrapFactory.create(s._elementRef.nativeElement,!1),s._beforeEnter=new a.Subject,s._afterEnter=new a.Subject,s._beforeExit=new a.Subject,s._afterExit=new a.Subject,s}return u(s,t),Object.defineProperty(s.prototype,"_ariaLabel",{get:function(){return this._config.ariaLabel||null},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"_ariaDescribedBy",{get:function(){return this._config.ariaDescribedBy},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"_role",{get:function(){return this._config.role},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"_tabindex",{get:function(){return-1},enumerable:!0,configurable:!0}),s.prototype.ngOnDestroy=function(){this._focusTrap.destroy()},s.prototype.attachComponentPortal=function(t){return this._portalHost.hasAttached()&&d(),this._savePreviouslyFocusedElement(),this._portalHost.attachComponentPortal(t)},s.prototype.attachTemplatePortal=function(t){return this._portalHost.hasAttached()&&d(),this._savePreviouslyFocusedElement(),this._portalHost.attachTemplatePortal(t)},s.prototype._onAnimationStart=function(t){"enter"===t.toState&&this._beforeEnter.next(),"enter"!==t.fromState||"void"!==t.toState&&"exit"!==t.toState||this._beforeExit.next()},s.prototype._onAnimationDone=function(t){"enter"===t.toState&&(this._autoFocusFirstTabbableElement(),this._afterEnter.next()),"enter"!==t.fromState||"void"!==t.toState&&"exit"!==t.toState||(this._returnFocusAfterDialog(),this._afterExit.next())},s.prototype._startExiting=function(){this._state="exit",this._changeDetectorRef.markForCheck()},s.prototype._savePreviouslyFocusedElement=function(){var t=this;this._document&&(this._elementFocusedBeforeDialogWasOpened=this._document.activeElement,Promise.resolve().then(function(){return t._elementRef.nativeElement.focus()}))},s.prototype._autoFocusFirstTabbableElement=function(){var t=this;this._config.autoFocus&&this._focusTrap.focusInitialElementWhenReady().then(function(e){e||t._elementRef.nativeElement.focus()})},s.prototype._returnFocusAfterDialog=function(){var t=this._elementFocusedBeforeDialogWasOpened;t&&"function"==typeof t.focus&&t.focus()},s.decorators=[{type:i.Component,args:[{selector:"cdk-dialog-container",template:"<ng-template cdkPortalOutlet></ng-template>",styles:["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"],encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.Default,animations:[e.trigger("dialog",[e.state("enter",e.style({opacity:1})),e.state("exit, void",e.style({opacity:0})),e.transition("* => *",e.animate(225))])],host:{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)"}}]}],s.ctorParameters=function(){return[{type:i.ElementRef},{type:o.FocusTrapFactory},{type:i.ChangeDetectorRef},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[r.DOCUMENT]}]},{type:y}]},s.propDecorators={_ariaLabel:[{type:i.HostBinding,args:["attr.aria-label"]}],_ariaDescribedBy:[{type:i.HostBinding,args:["attr.aria-describedby"]}],_role:[{type:i.HostBinding,args:["attr.role"]}],_tabindex:[{type:i.HostBinding,args:["attr.tabindex"]}],_portalHost:[{type:i.ViewChild,args:[n.PortalHostDirective]}]},s}(n.BasePortalOutlet),b=0,m=function(){function t(t,e,o){void 0===o&&(o="dialog-"+b++);var n=this;this._overlayRef=t,this._containerInstance=e,this.id=o,e._config.hasBackdrop&&t.backdropClick().subscribe(function(){n.disableClose||n.close()}),this.beforeClosed().subscribe(function(){n._overlayRef.detachBackdrop()}),this.afterClosed().subscribe(function(){n._overlayRef.detach(),n._overlayRef.dispose(),n.componentInstance=null}),t.keydownEvents().pipe(l.filter(function(t){return t.keyCode===s.ESCAPE&&!n.disableClose})).subscribe(function(){return n.close()})}return t.prototype.backdropClick=function(){return this._overlayRef.backdropClick()},t.prototype.close=function(t){this._result=t,this._containerInstance._startExiting()},t.prototype.updatePosition=function(t){var e=this._getPositionStrategy();return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._overlayRef.updatePosition(),this},t.prototype.keydownEvents=function(){return this._overlayRef.keydownEvents()},t.prototype.updateSize=function(t){return t.width&&this._getPositionStrategy().width(t.width.toString()),t.height&&this._getPositionStrategy().height(t.height.toString()),this._overlayRef.updateSize(t),this._overlayRef.updatePosition(),this},t.prototype._getPositionStrategy=function(){return this._overlayRef.getConfig().positionStrategy},t.prototype.beforeOpened=function(){return this._containerInstance._beforeEnter.asObservable()},t.prototype.afterOpened=function(){return this._containerInstance._afterEnter.asObservable()},t.prototype.beforeClosed=function(){var t=this;return this._containerInstance._beforeExit.pipe(l.map(function(){return t._result}))},t.prototype.afterClosed=function(){var t=this;return this._containerInstance._afterExit.pipe(l.map(function(){return t._result}))},t}(),v=new i.InjectionToken("DialogScrollStrategy"),D=new i.InjectionToken("DialogData"),C=new i.InjectionToken("DialogRef"),k=new i.InjectionToken("DialogConfig"),O=new i.InjectionToken("DialogContainer"),w={provide:v,deps:[c.Overlay],useFactory:f},j=function(){function t(t,e,o,n,r,i){var s=this;this.overlay=t,this.injector=e,this.dialogRefConstructor=o,this._scrollStrategy=n,this._parentDialog=r,this._afterAllClosedBase=new a.Subject,this.afterAllClosed=a.defer(function(){return s.openDialogs.length?s._afterAllClosed:s._afterAllClosed.pipe(l.startWith(void 0))}),this._afterOpened=new a.Subject,this._openDialogs=[],!r&&i&&i.subscribe(function(){return s.closeAll()})}return Object.defineProperty(t.prototype,"_afterAllClosed",{get:function(){return this._parentDialog?this._parentDialog.afterAllClosed:this._afterAllClosedBase},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"afterOpened",{get:function(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpened},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"openDialogs",{get:function(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogs},enumerable:!0,configurable:!0}),t.prototype.getById=function(t){return this._openDialogs.find(function(e){return e.id===t})},t.prototype.closeAll=function(){this.openDialogs.forEach(function(t){return t.close()})},t.prototype.openFromComponent=function(t,e){if(e=this._applyConfigDefaults(e),e.id&&this.getById(e.id))throw Error('Dialog with id "'+e.id+'" exists already. The dialog id must be unique.');var o=this._createOverlay(e),n=this._attachDialogContainer(o,e),r=this._attachDialogContentForComponent(t,n,o,e);return this.registerDialogRef(r),r},t.prototype.openFromTemplate=function(t,e){if(e=this._applyConfigDefaults(e),e.id&&this.getById(e.id))throw Error('Dialog with id "'+e.id+'" exists already. The dialog id must be unique.');var o=this._createOverlay(e),n=this._attachDialogContainer(o,e),r=this._attachDialogContentForTemplate(t,n,o,e);return this.registerDialogRef(r),r},t.prototype.registerDialogRef=function(t){var e=this;this.openDialogs.push(t);var o=t.afterOpened().subscribe(function(){e.afterOpened.next(t),o.unsubscribe()}),n=t.afterClosed().subscribe(function(){var o=e._openDialogs.indexOf(t);o>-1&&e._openDialogs.splice(o,1),e._openDialogs.length||(e._afterAllClosedBase.next(),n.unsubscribe())})},t.prototype._createOverlay=function(t){var e=new c.OverlayConfig({positionStrategy:this.overlay.position().global(),scrollStrategy:this._scrollStrategy(),panelClass:t.panelClass,hasBackdrop:t.hasBackdrop,direction:t.direction,minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight});return t.backdropClass&&(e.backdropClass=t.backdropClass),this.overlay.create(e)},t.prototype._attachDialogContainer=function(t,e){var o=e.containerComponent||this.injector.get(O),r=e&&e.viewContainerRef&&e.viewContainerRef.injector,i=new n.PortalInjector(r||this.injector,new WeakMap([[y,e]])),a=new n.ComponentPortal(o,e.viewContainerRef,i),s=t.attach(a);return s.instance._config=e,s.instance},t.prototype._attachDialogContentForComponent=function(t,e,o,r){var i=new this.dialogRefConstructor(o,e,r.id),a=this._createInjector(r,i,e),s=e.attachComponentPortal(new n.ComponentPortal(t,void 0,a));return i.componentInstance=s.instance,i.updateSize({width:r.width,height:r.height}).updatePosition(r.position),i},t.prototype._attachDialogContentForTemplate=function(t,e,o,r){var i=new this.dialogRefConstructor(o,e,r.id);return e.attachTemplatePortal(new n.TemplatePortal(t,null,{$implicit:r.data,dialogRef:i})),i.updateSize({width:r.width,height:r.height}).updatePosition(r.position),i},t.prototype._createInjector=function(t,e,o){var r=t&&t.viewContainerRef&&t.viewContainerRef.injector,i=new WeakMap([[this.injector.get(C),e],[this.injector.get(O),o],[D,t.data]]);return!t.direction||r&&r.get(p.Directionality,null)||i.set(p.Directionality,{value:t.direction,change:a.of()}),new n.PortalInjector(r||this.injector,i)},t.prototype._applyConfigDefaults=function(t){var e=this.injector.get(k);return g({},new e,t)},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[{type:c.Overlay},{type:i.Injector},{type:void 0,decorators:[{type:i.Inject,args:[C]}]},{type:void 0,decorators:[{type:i.Inject,args:[v]}]},{type:t,decorators:[{type:i.Optional},{type:i.SkipSelf}]},{type:r.Location,decorators:[{type:i.Optional}]}]},t}(),x=m,R=_,E=y,P=function(){function t(){}return t.decorators=[{type:i.NgModule,args:[{imports:[r.CommonModule,c.OverlayModule,n.PortalModule,o.A11yModule],exports:[_],declarations:[_],providers:[j,w,{provide:C,useValue:x},{provide:O,useValue:R},{provide:k,useValue:E}],entryComponents:[_]}]}],t}();t.throwDialogContentAlreadyAttachedError=d,t.CdkDialogContainer=_,t.DialogConfig=y,t.DialogRef=m,t.Dialog=j,t.DialogModule=P,t.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY=f,t.DIALOG_SCROLL_STRATEGY=v,t.DIALOG_DATA=D,t.DIALOG_REF=C,t.DIALOG_CONFIG=k,t.DIALOG_CONTAINER=O,t.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER=w,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=cdk-experimental-dialog.umd.min.js.map

@@ -8,3 +8,3 @@ /**

*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/cdk/coercion"),require("rxjs"),require("rxjs/operators"),require("@angular/cdk/platform"),require("@angular/cdk/collections")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental/scrolling",["exports","@angular/core","@angular/cdk/coercion","rxjs","rxjs/operators","@angular/cdk/platform","@angular/cdk/collections"],t):t((e.ng=e.ng||{},e.ng["cdk-experimental"]=e.ng["cdk-experimental"]||{},e.ng["cdk-experimental"].scrolling={}),e.ng.core,e.ng.cdk.coercion,e.rxjs,e.rxjs.operators,e.ng.cdk.platform,e.ng.cdk.collections)}(this,function(e,t,r,n,i,o,a){"use strict";function s(e){return e._scrollStrategy}function d(e){return e._scrollStrategy}function l(e,t){return e.start==t.start&&e.end==t.end}function c(e,t){var r=t;if(!r.getBoundingClientRect)return 0;var n=r.getBoundingClientRect();return"horizontal"==e?n.width:n.height}var h=function(){return h=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},h.apply(this,arguments)},u=new t.InjectionToken("VIRTUAL_SCROLL_STRATEGY"),f=function(){function e(e){void 0===e&&(e=50),this._totalWeight=0,this._defaultItemSize=e,this._averageItemSize=e}return e.prototype.getAverageItemSize=function(){return this._averageItemSize},e.prototype.addSample=function(e,t){var r=this._totalWeight+e.end-e.start;if(r){var n=(t+this._averageItemSize*this._totalWeight)/r;n&&(this._averageItemSize=n,this._totalWeight=r)}},e.prototype.reset=function(){this._averageItemSize=this._defaultItemSize,this._totalWeight=0},e}(),p=function(){function e(e,t,r){void 0===r&&(r=new f),this.scrolledIndexChange=n.Observable.create(function(){throw Error("cdk-virtual-scroll: scrolledIndexChange is currently not supported for the autosize scroll strategy")}),this._viewport=null,this._removalFailures=0,this._minBufferPx=e,this._addBufferPx=t,this._averager=r}return e.prototype.attach=function(e){this._averager.reset(),this._viewport=e,this._setScrollOffset()},e.prototype.detach=function(){this._viewport=null},e.prototype.onContentScrolled=function(){this._viewport&&this._updateRenderedContentAfterScroll()},e.prototype.onDataLengthChanged=function(){this._viewport&&(this._setScrollOffset(),this._checkRenderedContentSize())},e.prototype.onContentRendered=function(){this._viewport&&this._checkRenderedContentSize()},e.prototype.onRenderedOffsetChanged=function(){this._viewport&&this._checkRenderedContentOffset()},e.prototype.scrollToIndex=function(){throw Error("cdk-virtual-scroll: scrollToIndex is currently not supported for the autosize scroll strategy")},e.prototype.updateBufferSize=function(e,t){this._minBufferPx=e,this._addBufferPx=t},e.prototype._updateRenderedContentAfterScroll=function(){var e=this._viewport,t=e.measureScrollOffset(),r=t-this._lastScrollOffset,n=Math.abs(r),i=e.getRenderedRange(),o=0;if(r<0){var a=i.start*this._averager.getAverageItemSize(),s=a-this._lastRenderedContentOffset;o=Math.round(s*Math.max(0,Math.min(1,n/(t+n)))),r-=o,n=Math.abs(r)}var d=this._lastScrollOffset-this._lastRenderedContentOffset,l=this._lastRenderedContentOffset+this._lastRenderedContentSize-(this._lastScrollOffset+e.getViewportSize()),c=n+this._minBufferPx-(r<0?d:l);if(c>0)if(n>=e.getViewportSize())this._setScrollOffset();else{var h=Math.max(0,Math.ceil((c-this._minBufferPx+this._addBufferPx)/this._averager.getAverageItemSize())),u=(r<0?l:d)-this._minBufferPx+n,f=Math.floor(u/this._averager.getAverageItemSize()/(this._removalFailures+1)),p=Math.min(i.end-i.start,Math.max(0,f)),_=this._expandRange(i,r<0?h:0,r>0?h:0);r<0?_.end=Math.max(_.start+1,_.end-p):_.start=Math.min(_.end-1,_.start+p);var g=void 0,v=void 0;if(r<0){var m=e.measureRangeSize({start:_.end,end:i.end});m<=u?(g=this._lastRenderedContentOffset+this._lastRenderedContentSize-m,this._removalFailures=0):(_.end=i.end,g=this._lastRenderedContentOffset+this._lastRenderedContentSize,this._removalFailures++),v="to-end"}else{var m=e.measureRangeSize({start:i.start,end:_.start});m<=u?(g=this._lastRenderedContentOffset+m,this._removalFailures=0):(_.start=i.start,g=this._lastRenderedContentOffset,this._removalFailures++),v="to-start"}e.setRenderedRange(_),e.setRenderedContentOffset(g+o,v)}else o&&e.setRenderedContentOffset(this._lastRenderedContentOffset+o);this._lastScrollOffset=t},e.prototype._checkRenderedContentSize=function(){var e=this._viewport;this._lastRenderedContentSize=e.measureRenderedContentSize(),this._averager.addSample(e.getRenderedRange(),this._lastRenderedContentSize),this._updateTotalContentSize(this._lastRenderedContentSize)},e.prototype._checkRenderedContentOffset=function(){var e=this._viewport;this._lastRenderedContentOffset=e.getOffsetToRenderedContentStart()},e.prototype._setScrollOffset=function(e){var t=this._viewport;null==e?e=t.measureScrollOffset():t.setScrollOffset(e),this._lastScrollOffset=e,this._removalFailures=0;var r=this._averager.getAverageItemSize(),n=Math.min(t.getDataLength()-1,Math.floor(e/r)),i=Math.ceil(this._addBufferPx/r),o=this._expandRange(this._getVisibleRangeForIndex(n),i,i);t.setRenderedRange(o),t.setRenderedContentOffset(r*o.start)},e.prototype._getVisibleRangeForIndex=function(e){var t=this._viewport,r={start:e,end:e+Math.ceil(t.getViewportSize()/this._averager.getAverageItemSize())},n=r.end-t.getDataLength();return n>0&&(r.start=Math.max(0,r.start-n)),r},e.prototype._expandRange=function(e,t,r){var n=this._viewport;return{start:Math.max(0,e.start-t),end:Math.min(n.getDataLength(),e.end+r)}},e.prototype._updateTotalContentSize=function(e){var t=this._viewport,r=t.getRenderedRange(),n=e+(t.getDataLength()-(r.end-r.start))*this._averager.getAverageItemSize();t.setTotalContentSize(n)},e}(),_=function(){function e(){this._minBufferPx=100,this._addBufferPx=200,this._scrollStrategy=new p(this.minBufferPx,this.addBufferPx)}return Object.defineProperty(e.prototype,"minBufferPx",{get:function(){return this._minBufferPx},set:function(e){this._minBufferPx=r.coerceNumberProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"addBufferPx",{get:function(){return this._addBufferPx},set:function(e){this._addBufferPx=r.coerceNumberProperty(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this._scrollStrategy.updateBufferSize(this.minBufferPx,this.addBufferPx)},e.decorators=[{type:t.Directive,args:[{selector:"cdk-virtual-scroll-viewport[autosize]",providers:[{provide:u,useFactory:s,deps:[t.forwardRef(function(){return e})]}]}]}],e.propDecorators={minBufferPx:[{type:t.Input}],addBufferPx:[{type:t.Input}]},e}(),g=function(){function e(e,t){this._scrolledIndexChange=new n.Subject,this.scrolledIndexChange=this._scrolledIndexChange.pipe(i.distinctUntilChanged()),this._viewport=null,this._itemSize=e,this._bufferSize=t}return e.prototype.attach=function(e){this._viewport=e,this._updateTotalContentSize(),this._updateRenderedRange()},e.prototype.detach=function(){this._scrolledIndexChange.complete(),this._viewport=null},e.prototype.updateItemAndBufferSize=function(e,t){this._itemSize=e,this._bufferSize=t,this._updateTotalContentSize(),this._updateRenderedRange()},e.prototype.onContentScrolled=function(){this._updateRenderedRange()},e.prototype.onDataLengthChanged=function(){this._updateTotalContentSize(),this._updateRenderedRange()},e.prototype.onContentRendered=function(){},e.prototype.onRenderedOffsetChanged=function(){},e.prototype.scrollToIndex=function(e,t){this._viewport&&this._viewport.scrollToOffset(e*this._itemSize,t)},e.prototype._updateTotalContentSize=function(){this._viewport&&this._viewport.setTotalContentSize(this._viewport.getDataLength()*this._itemSize)},e.prototype._updateRenderedRange=function(){if(this._viewport){var e=this._viewport.measureScrollOffset(),t=Math.floor(e/this._itemSize),r=e%this._itemSize,n=this._expandRange({start:t,end:t},this._bufferSize,Math.ceil((this._viewport.getViewportSize()+r)/this._itemSize)+this._bufferSize);this._viewport.setRenderedRange(n),this._viewport.setRenderedContentOffset(this._itemSize*n.start),this._scrolledIndexChange.next(t)}},e.prototype._expandRange=function(e,t,r){return this._viewport?{start:Math.max(0,e.start-t),end:Math.min(this._viewport.getDataLength(),e.end+r)}:h({},e)},e}(),v=function(){function e(){this._itemSize=20,this._bufferSize=5,this._scrollStrategy=new g(this.itemSize,this.bufferSize)}return Object.defineProperty(e.prototype,"itemSize",{get:function(){return this._itemSize},set:function(e){this._itemSize=r.coerceNumberProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bufferSize",{get:function(){return this._bufferSize},set:function(e){this._bufferSize=r.coerceNumberProperty(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.bufferSize)},e.decorators=[{type:t.Directive,args:[{selector:"cdk-virtual-scroll-viewport[itemSize]",providers:[{provide:u,useFactory:d,deps:[t.forwardRef(function(){return e})]}]}]}],e.propDecorators={itemSize:[{type:t.Input}],bufferSize:[{type:t.Input}]},e}(),m=function(){function e(e,t,r,o){var a=this;this.elementRef=e,this._changeDetectorRef=t,this._ngZone=r,this._scrollStrategy=o,this._detachedSubject=new n.Subject,this._renderedRangeSubject=new n.Subject,this._changeDetectionComplete=new n.Subject,this.orientation="vertical",this.scrolledIndexChange=n.Observable.create(function(e){return a._scrollStrategy.scrolledIndexChange.pipe(i.sample(a._changeDetectionComplete)).subscribe(e)}),this.renderedRangeStream=this._renderedRangeSubject.asObservable(),this._totalContentSize=0,this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._destroyed=new n.Subject,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[]}return e.prototype.ngOnInit=function(){var e=this;this._ngZone.runOutsideAngular(function(){return Promise.resolve().then(function(){e._measureViewportSize(),e._scrollStrategy.attach(e),n.fromEvent(e.elementRef.nativeElement,"scroll").pipe(i.sampleTime(0,n.animationFrameScheduler),i.takeUntil(e._destroyed)).subscribe(function(){return e._scrollStrategy.onContentScrolled()}),e._markChangeDetectionNeeded()})})},e.prototype.ngOnDestroy=function(){this.detach(),this._scrollStrategy.detach(),this._destroyed.next(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._changeDetectionComplete.complete(),this._destroyed.complete()},e.prototype.attach=function(e){var t=this;if(this._forOf)throw Error("CdkVirtualScrollViewport is already attached.");this._ngZone.runOutsideAngular(function(){t._forOf=e,t._forOf.dataStream.pipe(i.takeUntil(t._detachedSubject)).subscribe(function(e){var r=e.length;r!==t._dataLength&&(t._dataLength=r,t._scrollStrategy.onDataLengthChanged())})})},e.prototype.detach=function(){this._forOf=null,this._detachedSubject.next()},e.prototype.getDataLength=function(){return this._dataLength},e.prototype.getViewportSize=function(){return this._viewportSize},e.prototype.getRenderedRange=function(){return this._renderedRange},e.prototype.setTotalContentSize=function(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._markChangeDetectionNeeded())},e.prototype.setRenderedRange=function(e){var t=this;l(this._renderedRange,e)||(this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded(function(){return t._scrollStrategy.onContentRendered()}))},e.prototype.getOffsetToRenderedContentStart=function(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset},e.prototype.setRenderedContentOffset=function(e,t){var r=this;void 0===t&&(t="to-start");var n="horizontal"===this.orientation?"X":"Y",i="translate"+n+"("+Number(e)+"px)";this._renderedContentOffset=e,"to-end"===t&&(i+=" translate"+n+"(-100%)",this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=i&&(this._renderedContentTransform=i,this._markChangeDetectionNeeded(function(){r._renderedContentOffsetNeedsRewrite?(r._renderedContentOffset-=r.measureRenderedContentSize(),r._renderedContentOffsetNeedsRewrite=!1,r.setRenderedContentOffset(r._renderedContentOffset)):r._scrollStrategy.onRenderedOffsetChanged()}))},e.prototype.scrollToOffset=function(e,t){void 0===t&&(t="auto");var r=this.elementRef.nativeElement;if(o.supportsScrollBehavior()){var n="horizontal"===this.orientation?"left":"top";r.scrollTo((i={},i[n]=e,i.behavior=t,i))}else"horizontal"===this.orientation?r.scrollLeft=e:r.scrollTop=e;var i},e.prototype.scrollToIndex=function(e,t){void 0===t&&(t="auto"),this._scrollStrategy.scrollToIndex(e,t)},e.prototype.setScrollOffset=function(e){this._pendingScrollOffset=e,this._markChangeDetectionNeeded()},e.prototype.measureScrollOffset=function(){return"horizontal"===this.orientation?this.elementRef.nativeElement.scrollLeft:this.elementRef.nativeElement.scrollTop},e.prototype.measureRenderedContentSize=function(){var e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight},e.prototype.measureRangeSize=function(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0},e.prototype.checkViewportSize=function(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()},e.prototype._measureViewportSize=function(){var e=this.elementRef.nativeElement;this._viewportSize="horizontal"===this.orientation?e.clientWidth:e.clientHeight},e.prototype._markChangeDetectionNeeded=function(e){var t=this;e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this._ngZone.runOutsideAngular(function(){return Promise.resolve().then(function(){t._doChangeDetection()})}))},e.prototype._doChangeDetection=function(){var e=this;this._isChangeDetectionPending=!1,this._ngZone.run(function(){return e._changeDetectorRef.markForCheck()}),this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,null!=this._pendingScrollOffset&&("horizontal"===this.orientation?this.elementRef.nativeElement.scrollLeft=this._pendingScrollOffset:this.elementRef.nativeElement.scrollTop=this._pendingScrollOffset);var t=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(var r=0,n=t;r<n.length;r++){(0,n[r])()}this._ngZone.run(function(){return e._changeDetectionComplete.next()})},e.decorators=[{type:t.Component,args:[{selector:"cdk-virtual-scroll-viewport",template:'<div #contentWrapper class="cdk-virtual-scroll-content-wrapper"><ng-content></ng-content></div><div class="cdk-virtual-scroll-spacer" [style.height.px]="orientation === \'horizontal\' ? 1 : _totalContentSize" [style.width.px]="orientation === \'horizontal\' ? _totalContentSize : 1"></div>',styles:["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;will-change:contents,transform}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{bottom:0}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{right:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:0}.cdk-virtual-scroll-spacer{will-change:height,width}"],host:{class:"cdk-virtual-scroll-viewport","[class.cdk-virtual-scroll-orientation-horizontal]":'orientation === "horizontal"',"[class.cdk-virtual-scroll-orientation-vertical]":'orientation === "vertical"'},encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef},{type:t.NgZone},{type:void 0,decorators:[{type:t.Inject,args:[u]}]}]},e.propDecorators={orientation:[{type:t.Input}],scrolledIndexChange:[{type:t.Output}],_contentWrapper:[{type:t.ViewChild,args:["contentWrapper"]}]},e}(),S=function(){function e(e,t,r,o){var a=this;this._viewContainerRef=e,this._template=t,this._differs=r,this._viewport=o,this.viewChange=new n.Subject,this._dataSourceChanges=new n.Subject,this.cdkVirtualForTemplateCacheSize=20,this.dataStream=this._dataSourceChanges.pipe(i.startWith(null),i.pairwise(),i.switchMap(function(e){var t=e[0],r=e[1];return a._changeDataSource(t,r)}),i.shareReplay(1)),this._differ=null,this._templateCache=[],this._needsUpdate=!1,this._destroyed=new n.Subject,this.dataStream.subscribe(function(e){a._data=e,a._onRenderedDataChange()}),this._viewport.renderedRangeStream.pipe(i.takeUntil(this._destroyed)).subscribe(function(e){a._renderedRange=e,a.viewChange.next(a._renderedRange),a._onRenderedDataChange()}),this._viewport.attach(this)}return Object.defineProperty(e.prototype,"cdkVirtualForOf",{get:function(){return this._cdkVirtualForOf},set:function(e){this._cdkVirtualForOf=e;var t=e instanceof a.DataSource?e:new a.ArrayDataSource(e instanceof n.Observable?e:Array.prototype.slice.call(e||[]));this._dataSourceChanges.next(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cdkVirtualForTrackBy",{get:function(){return this._cdkVirtualForTrackBy},set:function(e){var t=this;this._needsUpdate=!0,this._cdkVirtualForTrackBy=e?function(r,n){return e(r+(t._renderedRange?t._renderedRange.start:0),n)}:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cdkVirtualForTemplate",{set:function(e){e&&(this._needsUpdate=!0,this._template=e)},enumerable:!0,configurable:!0}),e.prototype.measureRangeSize=function(e,t){if(e.start>=e.end)return 0;if(e.start<this._renderedRange.start||e.end>this._renderedRange.end)throw Error("Error: attempted to measure an item that isn't rendered.");for(var r=e.start-this._renderedRange.start,n=e.end-e.start,i=0,o=n;o--;)for(var a=this._viewContainerRef.get(o+r),s=a?a.rootNodes.length:0;s--;)i+=c(t,a.rootNodes[s]);return i},e.prototype.ngDoCheck=function(){if(this._differ&&this._needsUpdate){var e=this._differ.diff(this._renderedItems);e?this._applyChanges(e):this._updateContext(),this._needsUpdate=!1}},e.prototype.ngOnDestroy=function(){this._viewport.detach(),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete();for(var e=0,t=this._templateCache;e<t.length;e++){t[e].destroy()}},e.prototype._onRenderedDataChange=function(){this._renderedRange&&(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create(this.cdkVirtualForTrackBy)),this._needsUpdate=!0)},e.prototype._changeDataSource=function(e,t){return e&&e.disconnect(this),this._needsUpdate=!0,t.connect(this)},e.prototype._updateContext=function(){for(var e=this._data.length,t=this._viewContainerRef.length;t--;){var r=this._viewContainerRef.get(t);r.context.index=this._renderedRange.start+t,r.context.count=e,this._updateComputedContextProperties(r.context),r.detectChanges()}},e.prototype._applyChanges=function(e){var t=this;e.forEachOperation(function(e,r,n){if(null==e.previousIndex){var i=t._getViewForNewItem();t._viewContainerRef.insert(i,n),i.context.$implicit=e.item}else if(null==n)t._cacheView(t._viewContainerRef.detach(r));else{var i=t._viewContainerRef.get(r);t._viewContainerRef.move(i,n),i.context.$implicit=e.item}}),e.forEachIdentityChange(function(e){t._viewContainerRef.get(e.currentIndex).context.$implicit=e.item});for(var r=this._data.length,n=this._viewContainerRef.length;n--;){var i=this._viewContainerRef.get(n);i.context.index=this._renderedRange.start+n,i.context.count=r,this._updateComputedContextProperties(i.context)}},e.prototype._cacheView=function(e){this._templateCache.length<this.cdkVirtualForTemplateCacheSize?this._templateCache.push(e):e.destroy()},e.prototype._getViewForNewItem=function(){return this._templateCache.pop()||this._viewContainerRef.createEmbeddedView(this._template,{$implicit:null,cdkVirtualForOf:this._cdkVirtualForOf,index:-1,count:-1,first:!1,last:!1,odd:!1,even:!1})},e.prototype._updateComputedContextProperties=function(e){e.first=0===e.index,e.last=e.index===e.count-1,e.even=e.index%2==0,e.odd=!e.even},e.decorators=[{type:t.Directive,args:[{selector:"[cdkVirtualFor][cdkVirtualForOf]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.IterableDiffers},{type:m,decorators:[{type:t.SkipSelf}]}]},e.propDecorators={cdkVirtualForOf:[{type:t.Input}],cdkVirtualForTrackBy:[{type:t.Input}],cdkVirtualForTemplate:[{type:t.Input}],cdkVirtualForTemplateCacheSize:[{type:t.Input}]},e}(),y=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{exports:[_,v,S,m],declarations:[_,v,S,m]}]}],e}();e.ItemSizeAverager=f,e.AutoSizeVirtualScrollStrategy=p,e._autoSizeVirtualScrollStrategyFactory=s,e.CdkAutoSizeVirtualScroll=_,e.FixedSizeVirtualScrollStrategy=g,e._fixedSizeVirtualScrollStrategyFactory=d,e.CdkFixedSizeVirtualScroll=v,e.ScrollingModule=y,e.CdkVirtualForOf=S,e.VIRTUAL_SCROLL_STRATEGY=u,e.CdkVirtualScrollViewport=m,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/cdk/coercion"),require("@angular/cdk/scrolling"),require("@angular/core"),require("rxjs")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental/scrolling",["exports","@angular/cdk/coercion","@angular/cdk/scrolling","@angular/core","rxjs"],t):t((e.ng=e.ng||{},e.ng["cdk-experimental"]=e.ng["cdk-experimental"]||{},e.ng["cdk-experimental"].scrolling={}),e.ng.cdk.coercion,e.ng.cdk.scrolling,e.ng.core,e.rxjs)}(this,function(e,t,r,n,i){"use strict";function o(e){return e._scrollStrategy}var a=function(){function e(e){void 0===e&&(e=50),this._totalWeight=0,this._defaultItemSize=e,this._averageItemSize=e}return e.prototype.getAverageItemSize=function(){return this._averageItemSize},e.prototype.addSample=function(e,t){var r=this._totalWeight+e.end-e.start;if(r){var n=(t+this._averageItemSize*this._totalWeight)/r;n&&(this._averageItemSize=n,this._totalWeight=r)}},e.prototype.reset=function(){this._averageItemSize=this._defaultItemSize,this._totalWeight=0},e}(),s=function(){function e(e,t,r){void 0===r&&(r=new a),this.scrolledIndexChange=i.Observable.create(function(){throw Error("cdk-virtual-scroll: scrolledIndexChange is currently not supported for the autosize scroll strategy")}),this._viewport=null,this._removalFailures=0,this._minBufferPx=e,this._maxBufferPx=t,this._averager=r}return e.prototype.attach=function(e){this._averager.reset(),this._viewport=e,this._renderContentForCurrentOffset()},e.prototype.detach=function(){this._viewport=null},e.prototype.onContentScrolled=function(){this._viewport&&this._updateRenderedContentAfterScroll()},e.prototype.onDataLengthChanged=function(){this._viewport&&(this._renderContentForCurrentOffset(),this._checkRenderedContentSize())},e.prototype.onContentRendered=function(){this._viewport&&this._checkRenderedContentSize()},e.prototype.onRenderedOffsetChanged=function(){this._viewport&&this._checkRenderedContentOffset()},e.prototype.scrollToIndex=function(){throw Error("cdk-virtual-scroll: scrollToIndex is currently not supported for the autosize scroll strategy")},e.prototype.updateBufferSize=function(e,t){if(t<e)throw"CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx";this._minBufferPx=e,this._maxBufferPx=t},e.prototype._updateRenderedContentAfterScroll=function(){var e=this._viewport,t=e.measureScrollOffset(),r=t-this._lastScrollOffset,n=Math.abs(r),i=e.getRenderedRange(),o=0;if(r<0){var a=i.start*this._averager.getAverageItemSize(),s=a-this._lastRenderedContentOffset;o=Math.round(s*Math.max(0,Math.min(1,n/(t+n)))),r-=o,n=Math.abs(r)}var f=this._lastScrollOffset-this._lastRenderedContentOffset,d=this._lastRenderedContentOffset+this._lastRenderedContentSize-(this._lastScrollOffset+e.getViewportSize()),l=n+this._minBufferPx-(r<0?f:d);if(l>0)if(n>=e.getViewportSize())this._renderContentForCurrentOffset();else{var u=Math.max(0,Math.ceil((l-this._minBufferPx+this._maxBufferPx)/this._averager.getAverageItemSize())),h=(r<0?d:f)-this._minBufferPx+n,c=Math.floor(h/this._averager.getAverageItemSize()/(this._removalFailures+1)),g=Math.min(i.end-i.start,Math.max(0,c)),_=this._expandRange(i,r<0?u:0,r>0?u:0);r<0?_.end=Math.max(_.start+1,_.end-g):_.start=Math.min(_.end-1,_.start+g);var p=void 0,m=void 0;if(r<0){var v=e.measureRangeSize({start:_.end,end:i.end});v<=h?(p=this._lastRenderedContentOffset+this._lastRenderedContentSize-v,this._removalFailures=0):(_.end=i.end,p=this._lastRenderedContentOffset+this._lastRenderedContentSize,this._removalFailures++),m="to-end"}else{var v=e.measureRangeSize({start:i.start,end:_.start});v<=h?(p=this._lastRenderedContentOffset+v,this._removalFailures=0):(_.start=i.start,p=this._lastRenderedContentOffset,this._removalFailures++),m="to-start"}e.setRenderedRange(_),e.setRenderedContentOffset(p+o,m)}else o&&e.setRenderedContentOffset(this._lastRenderedContentOffset+o);this._lastScrollOffset=t},e.prototype._checkRenderedContentSize=function(){var e=this._viewport;this._lastRenderedContentSize=e.measureRenderedContentSize(),this._averager.addSample(e.getRenderedRange(),this._lastRenderedContentSize),this._updateTotalContentSize(this._lastRenderedContentSize)},e.prototype._checkRenderedContentOffset=function(){var e=this._viewport;this._lastRenderedContentOffset=e.getOffsetToRenderedContentStart()},e.prototype._renderContentForCurrentOffset=function(){var e=this._viewport,t=e.measureScrollOffset();this._lastScrollOffset=t,this._removalFailures=0;var r=this._averager.getAverageItemSize(),n=Math.min(e.getDataLength()-1,Math.floor(t/r)),i=Math.ceil(this._maxBufferPx/r),o=this._expandRange(this._getVisibleRangeForIndex(n),i,i);e.setRenderedRange(o),e.setRenderedContentOffset(r*o.start)},e.prototype._getVisibleRangeForIndex=function(e){var t=this._viewport,r={start:e,end:e+Math.ceil(t.getViewportSize()/this._averager.getAverageItemSize())},n=r.end-t.getDataLength();return n>0&&(r.start=Math.max(0,r.start-n)),r},e.prototype._expandRange=function(e,t,r){var n=this._viewport;return{start:Math.max(0,e.start-t),end:Math.min(n.getDataLength(),e.end+r)}},e.prototype._updateTotalContentSize=function(e){var t=this._viewport,r=t.getRenderedRange(),n=e+(t.getDataLength()-(r.end-r.start))*this._averager.getAverageItemSize();t.setTotalContentSize(n)},e}(),f=function(){function e(){this._minBufferPx=100,this._maxBufferPx=200,this._scrollStrategy=new s(this.minBufferPx,this.maxBufferPx)}return Object.defineProperty(e.prototype,"minBufferPx",{get:function(){return this._minBufferPx},set:function(e){this._minBufferPx=t.coerceNumberProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxBufferPx",{get:function(){return this._maxBufferPx},set:function(e){this._maxBufferPx=t.coerceNumberProperty(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this._scrollStrategy.updateBufferSize(this.minBufferPx,this.maxBufferPx)},e.decorators=[{type:n.Directive,args:[{selector:"cdk-virtual-scroll-viewport[autosize]",providers:[{provide:r.VIRTUAL_SCROLL_STRATEGY,useFactory:o,deps:[n.forwardRef(function(){return e})]}]}]}],e.propDecorators={minBufferPx:[{type:n.Input}],maxBufferPx:[{type:n.Input}]},e}(),d=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{exports:[f],declarations:[f]}]}],e}();e._autoSizeVirtualScrollStrategyFactory=o,e.ItemSizeAverager=a,e.AutoSizeVirtualScrollStrategy=s,e.CdkAutoSizeVirtualScroll=f,e.ScrollingModule=d,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=cdk-experimental-scrolling.umd.min.js.map

@@ -16,8 +16,8 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Current version of the CDK Experimental package.
*/
var /** @type {?} */ VERSION = new core.Version('6.4.7');
@type {?} */
var VERSION = new core.Version('7.0.0-beta.0');

@@ -24,0 +24,0 @@ exports.VERSION = VERSION;

@@ -8,3 +8,3 @@ /**

*/
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental",["exports","@angular/core"],n):n((e.ng=e.ng||{},e.ng["cdk-experimental"]={}),e.ng.core)}(this,function(e,n){"use strict";var r=new n.Version("6.4.7");e.VERSION=r,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental",["exports","@angular/core"],n):n((e.ng=e.ng||{},e.ng["cdk-experimental"]={}),e.ng.core)}(this,function(e,n){"use strict";var r=new n.Version("7.0.0-beta.0");e.VERSION=r,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=cdk-experimental.umd.min.js.map

@@ -47,4 +47,4 @@ /**

constructor(_elementRef: ElementRef<HTMLElement>, _focusTrapFactory: FocusTrapFactory, _changeDetectorRef: ChangeDetectorRef, _document: any,
/** The dialog configuration. */
_config: DialogConfig);
/** The dialog configuration. */
_config: DialogConfig);
/** Destroy focus trap to place focus back to the element focused before the dialog opened. */

@@ -69,3 +69,3 @@ ngOnDestroy(): void;

/** Saves a reference to the element that was focused before the dialog was opened. */
private _savePreviouslyFocusedElement();
private _savePreviouslyFocusedElement;
/**

@@ -75,5 +75,5 @@ * Autofocus the first tabbable element inside of the dialog, if there is not a tabbable element,

*/
private _autoFocusFirstTabbableElement();
private _autoFocusFirstTabbableElement;
/** Returns the focus to the element focused before the dialog was open. */
private _returnFocusAfterDialog();
private _returnFocusAfterDialog;
}

@@ -0,2 +1,9 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export declare class DialogModule {
}

@@ -48,11 +48,11 @@ /**

/** Fetches the position strategy object from the overlay ref. */
private _getPositionStrategy();
private _getPositionStrategy;
/** Gets an observable that emits when dialog begins opening. */
beforeOpen(): Observable<void>;
beforeOpened(): Observable<void>;
/** Gets an observable that emits when dialog is finished opening. */
afterOpen(): Observable<void>;
afterOpened(): Observable<void>;
/** Gets an observable that emits when dialog begins closing. */
beforeClose(): Observable<R | undefined>;
beforeClosed(): Observable<R | undefined>;
/** Gets an observable that emits when dialog is finished closing. */
afterClosed(): Observable<R | undefined>;
}

@@ -29,4 +29,4 @@ /**

/** Stream that emits when a dialog is opened. */
readonly afterOpen: Subject<DialogRef<any>>;
_afterOpen: Subject<DialogRef<any>>;
readonly afterOpened: Subject<DialogRef<any>>;
_afterOpened: Subject<DialogRef<any>>;
/** Stream that emits when a dialog is opened. */

@@ -47,3 +47,3 @@ readonly openDialogs: DialogRef<any>[];

*/
private registerDialogRef(dialogRef);
private registerDialogRef;
/**

@@ -90,3 +90,3 @@ * Creates an overlay config from a dialog config.

*/
private _createInjector<T>(config, dialogRef, dialogContainer);
private _createInjector;
/**

@@ -96,3 +96,3 @@ * Expands the provided configuration object to include the default values for properties which

*/
private _applyConfigDefaults(config?);
private _applyConfigDefaults;
}

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"throwDialogContentAlreadyAttachedError":{"__symbolic":"function"},"CdkDialogContainer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/portal","name":"BasePortalOutlet","line":66,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":44,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-dialog-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":49,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":19},"member":"Default"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":54,"character":4},"arguments":["dialog",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":55,"character":6},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":55,"character":21},"arguments":[{"opacity":1}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":56,"character":6},"arguments":["exit, void",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":56,"character":26},"arguments":[{"opacity":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":57,"character":6},"arguments":["* => *",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":27},"arguments":[225]}]}]]}],"host":{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)","$quoted$":["[@dialog]","(@dialog.start)","(@dialog.done)"]},"template":"<ng-template cdkPortalOutlet></ng-template>","styles":["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"]}]}],"members":{"_ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":80,"character":3},"arguments":["attr.aria-label"]}]}],"_ariaDescribedBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":82,"character":3},"arguments":["attr.aria-describedby"]}]}],"_role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":85,"character":3},"arguments":["attr.role"]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":87,"character":3},"arguments":["attr.tabindex"]}]}],"_portalHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":91,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalHostDirective","line":91,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":109,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":109,"character":24}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":106,"character":36,"context":{"typeName":"HTMLElement"},"module":"./dialog-container"}]},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusTrapFactory","line":107,"character":31},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":108,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"DialogConfig"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"attachComponentPortal":[{"__symbolic":"method"}],"attachTemplatePortal":[{"__symbolic":"method"}],"_onAnimationStart":[{"__symbolic":"method"}],"_onAnimationDone":[{"__symbolic":"method"}],"_startExiting":[{"__symbolic":"method"}],"_savePreviouslyFocusedElement":[{"__symbolic":"method"}],"_autoFocusFirstTabbableElement":[{"__symbolic":"method"}],"_returnFocusAfterDialog":[{"__symbolic":"method"}]}},"DialogRole":{"__symbolic":"interface"},"DialogPosition":{"__symbolic":"interface"},"DialogConfig":{"__symbolic":"class","arity":1,"members":{}},"DialogRef":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayRef","line":33,"character":24},{"__symbolic":"reference","name":"CdkDialogContainer"},{"__symbolic":"reference","name":"string"}]}],"backdropClick":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"updatePosition":[{"__symbolic":"method"}],"keydownEvents":[{"__symbolic":"method"}],"updateSize":[{"__symbolic":"method"}],"_getPositionStrategy":[{"__symbolic":"method"}],"beforeOpen":[{"__symbolic":"method"}],"afterOpen":[{"__symbolic":"method"}],"beforeClose":[{"__symbolic":"method"}],"afterClosed":[{"__symbolic":"method"}]}},"Dialog":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":69,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_REF"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":70,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":71,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":71,"character":19}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":72,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":67,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":68,"character":24},null,null,{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":72,"character":28}]}],"getById":[{"__symbolic":"method"}],"closeAll":[{"__symbolic":"method"}],"openFromComponent":[{"__symbolic":"method"}],"openFromTemplate":[{"__symbolic":"method"}],"registerDialogRef":[{"__symbolic":"method"}],"_createOverlay":[{"__symbolic":"method"}],"_attachDialogContainer":[{"__symbolic":"method"}],"_attachDialogContentForComponent":[{"__symbolic":"method"}],"_attachDialogContentForTemplate":[{"__symbolic":"method"}],"_createInjector":[{"__symbolic":"method"}],"_applyConfigDefaults":[{"__symbolic":"method"}]}},"DialogModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":30,"character":4}],"exports":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"declarations":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"providers":[{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER"},{"provide":{"__symbolic":"reference","name":"DIALOG_REF"},"useValue":{"__symbolic":"reference","name":"DialogRef"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONTAINER"},"useValue":{"__symbolic":"reference","name":"CdkDialogContainer"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONFIG"},"useValue":{"__symbolic":"reference","name":"DialogConfig"}}],"entryComponents":[{"__symbolic":"reference","name":"CdkDialogContainer"}]}]}],"members":{}},"DIALOG_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":8},"arguments":["DialogScrollStrategy"]},"DIALOG_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":19,"character":31},"arguments":["DialogData"]},"DIALOG_REF":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":22,"character":30},"arguments":["DialogRef"]},"DIALOG_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":25,"character":33},"arguments":["DialogConfig"]},"DIALOG_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":29,"character":8},"arguments":["DialogContainer"]},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["overlay"],"value":{"__symbolic":"error","message":"Lambda not supported","line":34,"character":9,"module":"./dialog-injectors"}},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":{"provide":{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"},"deps":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":9}],"useFactory":{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY"}}},"origins":{"throwDialogContentAlreadyAttachedError":"./dialog-container","CdkDialogContainer":"./dialog-container","DialogRole":"./dialog-config","DialogPosition":"./dialog-config","DialogConfig":"./dialog-config","DialogRef":"./dialog-ref","Dialog":"./dialog","DialogModule":"./dialog-module","DIALOG_SCROLL_STRATEGY":"./dialog-injectors","DIALOG_DATA":"./dialog-injectors","DIALOG_REF":"./dialog-injectors","DIALOG_CONFIG":"./dialog-injectors","DIALOG_CONTAINER":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":"./dialog-injectors"},"importAs":"@angular/cdk-experimental/dialog"}
{"__symbolic":"module","version":4,"metadata":{"throwDialogContentAlreadyAttachedError":{"__symbolic":"function"},"CdkDialogContainer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/portal","name":"BasePortalOutlet","line":66,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":44,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-dialog-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":49,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":19},"member":"Default"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":54,"character":4},"arguments":["dialog",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":55,"character":6},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":55,"character":21},"arguments":[{"opacity":1}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":56,"character":6},"arguments":["exit, void",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":56,"character":26},"arguments":[{"opacity":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":57,"character":6},"arguments":["* => *",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":27},"arguments":[225]}]}]]}],"host":{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)","$quoted$":["[@dialog]","(@dialog.start)","(@dialog.done)"]},"template":"<ng-template cdkPortalOutlet></ng-template>","styles":["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"]}]}],"members":{"_ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":80,"character":3},"arguments":["attr.aria-label"]}]}],"_ariaDescribedBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":82,"character":3},"arguments":["attr.aria-describedby"]}]}],"_role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":85,"character":3},"arguments":["attr.role"]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":87,"character":3},"arguments":["attr.tabindex"]}]}],"_portalHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":91,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalHostDirective","line":91,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":109,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":109,"character":24}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":106,"character":36,"context":{"typeName":"HTMLElement"},"module":"./dialog-container"}]},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusTrapFactory","line":107,"character":31},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":108,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"DialogConfig"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"attachComponentPortal":[{"__symbolic":"method"}],"attachTemplatePortal":[{"__symbolic":"method"}],"_onAnimationStart":[{"__symbolic":"method"}],"_onAnimationDone":[{"__symbolic":"method"}],"_startExiting":[{"__symbolic":"method"}],"_savePreviouslyFocusedElement":[{"__symbolic":"method"}],"_autoFocusFirstTabbableElement":[{"__symbolic":"method"}],"_returnFocusAfterDialog":[{"__symbolic":"method"}]}},"DialogRole":{"__symbolic":"interface"},"DialogPosition":{"__symbolic":"interface"},"DialogConfig":{"__symbolic":"class","arity":1,"members":{}},"DialogRef":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayRef","line":33,"character":24},{"__symbolic":"reference","name":"CdkDialogContainer"},{"__symbolic":"reference","name":"string"}]}],"backdropClick":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"updatePosition":[{"__symbolic":"method"}],"keydownEvents":[{"__symbolic":"method"}],"updateSize":[{"__symbolic":"method"}],"_getPositionStrategy":[{"__symbolic":"method"}],"beforeOpened":[{"__symbolic":"method"}],"afterOpened":[{"__symbolic":"method"}],"beforeClosed":[{"__symbolic":"method"}],"afterClosed":[{"__symbolic":"method"}]}},"Dialog":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":69,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_REF"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":70,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":71,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":71,"character":19}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":72,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":67,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":68,"character":24},null,null,{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":72,"character":28}]}],"getById":[{"__symbolic":"method"}],"closeAll":[{"__symbolic":"method"}],"openFromComponent":[{"__symbolic":"method"}],"openFromTemplate":[{"__symbolic":"method"}],"registerDialogRef":[{"__symbolic":"method"}],"_createOverlay":[{"__symbolic":"method"}],"_attachDialogContainer":[{"__symbolic":"method"}],"_attachDialogContentForComponent":[{"__symbolic":"method"}],"_attachDialogContentForTemplate":[{"__symbolic":"method"}],"_createInjector":[{"__symbolic":"method"}],"_applyConfigDefaults":[{"__symbolic":"method"}]}},"DialogModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":30,"character":4}],"exports":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"declarations":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"providers":[{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER"},{"provide":{"__symbolic":"reference","name":"DIALOG_REF"},"useValue":{"__symbolic":"reference","name":"DialogRef"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONTAINER"},"useValue":{"__symbolic":"reference","name":"CdkDialogContainer"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONFIG"},"useValue":{"__symbolic":"reference","name":"DialogConfig"}}],"entryComponents":[{"__symbolic":"reference","name":"CdkDialogContainer"}]}]}],"members":{}},"DIALOG_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":8},"arguments":["DialogScrollStrategy"]},"DIALOG_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":19,"character":31},"arguments":["DialogData"]},"DIALOG_REF":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":22,"character":30},"arguments":["DialogRef"]},"DIALOG_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":25,"character":33},"arguments":["DialogConfig"]},"DIALOG_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":29,"character":8},"arguments":["DialogContainer"]},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["overlay"],"value":{"__symbolic":"error","message":"Lambda not supported","line":34,"character":9,"module":"./dialog-injectors"}},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":{"provide":{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"},"deps":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":9}],"useFactory":{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY"}}},"origins":{"throwDialogContentAlreadyAttachedError":"./dialog-container","CdkDialogContainer":"./dialog-container","DialogRole":"./dialog-config","DialogPosition":"./dialog-config","DialogConfig":"./dialog-config","DialogRef":"./dialog-ref","Dialog":"./dialog","DialogModule":"./dialog-module","DIALOG_SCROLL_STRATEGY":"./dialog-injectors","DIALOG_DATA":"./dialog-injectors","DIALOG_REF":"./dialog-injectors","DIALOG_CONFIG":"./dialog-injectors","DIALOG_CONTAINER":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":"./dialog-injectors"},"importAs":"@angular/cdk-experimental/dialog"}

@@ -12,12 +12,12 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Current version of the CDK Experimental package.
*/
const /** @type {?} */ VERSION = new Version('6.4.7');
@type {?} */
const VERSION = new Version('7.0.0-beta.0');
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -27,3 +27,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -30,0 +30,0 @@

@@ -21,3 +21,3 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -94,3 +94,3 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -275,3 +275,4 @@ /**

_returnFocusAfterDialog() {
const /** @type {?} */ toFocus = this._elementFocusedBeforeDialogWasOpened;
/** @type {?} */
const toFocus = this._elementFocusedBeforeDialogWasOpened;
// We need the extra check, because IE can set the `activeElement` to null in some cases.

@@ -307,14 +308,14 @@ if (toFocus && typeof toFocus.focus === 'function') {

CdkDialogContainer.ctorParameters = () => [
{ type: ElementRef, },
{ type: FocusTrapFactory, },
{ type: ChangeDetectorRef, },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] },] },
{ type: DialogConfig, },
{ type: ElementRef },
{ type: FocusTrapFactory },
{ type: ChangeDetectorRef },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] },
{ type: DialogConfig }
];
CdkDialogContainer.propDecorators = {
"_ariaLabel": [{ type: HostBinding, args: ['attr.aria-label',] },],
"_ariaDescribedBy": [{ type: HostBinding, args: ['attr.aria-describedby',] },],
"_role": [{ type: HostBinding, args: ['attr.role',] },],
"_tabindex": [{ type: HostBinding, args: ['attr.tabindex',] },],
"_portalHost": [{ type: ViewChild, args: [PortalHostDirective,] },],
_ariaLabel: [{ type: HostBinding, args: ['attr.aria-label',] }],
_ariaDescribedBy: [{ type: HostBinding, args: ['attr.aria-describedby',] }],
_role: [{ type: HostBinding, args: ['attr.role',] }],
_tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],
_portalHost: [{ type: ViewChild, args: [PortalHostDirective,] }]
};

@@ -324,8 +325,8 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Unique id for the created dialog.
*/
let /** @type {?} */ uniqueId = 0;
@type {?} */
let uniqueId = 0;
/**

@@ -353,3 +354,3 @@ * Reference to a dialog opened via the Dialog service.

}
this.beforeClose().subscribe(() => {
this.beforeClosed().subscribe(() => {
this._overlayRef.detachBackdrop();

@@ -389,3 +390,4 @@ });

updatePosition(position) {
let /** @type {?} */ strategy = this._getPositionStrategy();
/** @type {?} */
let strategy = this._getPositionStrategy();
if (position && (position.left || position.right)) {

@@ -440,3 +442,3 @@ position.left ? strategy.left(position.left) : strategy.right(position.right);

*/
beforeOpen() {
beforeOpened() {
return this._containerInstance._beforeEnter.asObservable();

@@ -448,3 +450,3 @@ }

*/
afterOpen() {
afterOpened() {
return this._containerInstance._afterEnter.asObservable();

@@ -456,3 +458,3 @@ }

*/
beforeClose() {
beforeClosed() {
return this._containerInstance._beforeExit.pipe(map(() => this._result));

@@ -471,24 +473,24 @@ }

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Injection token for the Dialog's ScrollStrategy.
*/
const /** @type {?} */ DIALOG_SCROLL_STRATEGY = new InjectionToken('DialogScrollStrategy');
/**
@type {?} */
const DIALOG_SCROLL_STRATEGY = new InjectionToken('DialogScrollStrategy');
/** *
* Injection token for the Dialog's Data.
*/
const /** @type {?} */ DIALOG_DATA = new InjectionToken('DialogData');
/**
@type {?} */
const DIALOG_DATA = new InjectionToken('DialogData');
/** *
* Injection token for the DialogRef constructor.
*/
const /** @type {?} */ DIALOG_REF = new InjectionToken('DialogRef');
/**
@type {?} */
const DIALOG_REF = new InjectionToken('DialogRef');
/** *
* Injection token for the DialogConfig.
*/
const /** @type {?} */ DIALOG_CONFIG = new InjectionToken('DialogConfig');
/**
@type {?} */
const DIALOG_CONFIG = new InjectionToken('DialogConfig');
/** *
* Injection token for the Dialog's DialogContainer component.
*/
const /** @type {?} */ DIALOG_CONTAINER = new InjectionToken('DialogContainer');
@type {?} */
const DIALOG_CONTAINER = new InjectionToken('DialogContainer');
/**

@@ -502,6 +504,6 @@ * \@docs-private

}
/**
/** *
* \@docs-private
*/
const /** @type {?} */ MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {
@type {?} */
const MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {
provide: DIALOG_SCROLL_STRATEGY,

@@ -514,3 +516,3 @@ deps: [Overlay],

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -538,3 +540,3 @@ /**

this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)));
this._afterOpen = new Subject();
this._afterOpened = new Subject();
this._openDialogs = [];

@@ -559,4 +561,4 @@ // Close all of the dialogs when the user goes forwards/backwards in history or when the

*/
get afterOpen() {
return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpen;
get afterOpened() {
return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;
}

@@ -597,5 +599,8 @@ /**

}
const /** @type {?} */ overlayRef = this._createOverlay(config);
const /** @type {?} */ dialogContainer = this._attachDialogContainer(overlayRef, config);
const /** @type {?} */ dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef, config);
/** @type {?} */
const overlayRef = this._createOverlay(config);
/** @type {?} */
const dialogContainer = this._attachDialogContainer(overlayRef, config);
/** @type {?} */
const dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef, config);
this.registerDialogRef(dialogRef);

@@ -616,5 +621,8 @@ return dialogRef;

}
const /** @type {?} */ overlayRef = this._createOverlay(config);
const /** @type {?} */ dialogContainer = this._attachDialogContainer(overlayRef, config);
const /** @type {?} */ dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef, config);
/** @type {?} */
const overlayRef = this._createOverlay(config);
/** @type {?} */
const dialogContainer = this._attachDialogContainer(overlayRef, config);
/** @type {?} */
const dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef, config);
this.registerDialogRef(dialogRef);

@@ -630,10 +638,13 @@ return dialogRef;

this.openDialogs.push(dialogRef);
let /** @type {?} */ dialogOpenSub = dialogRef.afterOpen().subscribe(() => {
this.afterOpen.next(dialogRef);
/** @type {?} */
const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {
this.afterOpened.next(dialogRef);
dialogOpenSub.unsubscribe();
});
let /** @type {?} */ dialogCloseSub = dialogRef.afterClosed().subscribe(() => {
let /** @type {?} */ dialogIdx = this._openDialogs.indexOf(dialogRef);
if (dialogIdx !== -1) {
this._openDialogs.splice(dialogIdx, 1);
/** @type {?} */
const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {
/** @type {?} */
let dialogIndex = this._openDialogs.indexOf(dialogRef);
if (dialogIndex > -1) {
this._openDialogs.splice(dialogIndex, 1);
}

@@ -652,3 +663,4 @@ if (!this._openDialogs.length) {

_createOverlay(config) {
const /** @type {?} */ overlayConfig = new OverlayConfig({
/** @type {?} */
const overlayConfig = new OverlayConfig({
positionStrategy: this.overlay.position().global(),

@@ -676,9 +688,14 @@ scrollStrategy: this._scrollStrategy(),

_attachDialogContainer(overlay, config) {
const /** @type {?} */ container = config.containerComponent || this.injector.get(DIALOG_CONTAINER);
const /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
const /** @type {?} */ injector = new PortalInjector(userInjector || this.injector, new WeakMap([
/** @type {?} */
const container = config.containerComponent || this.injector.get(DIALOG_CONTAINER);
/** @type {?} */
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
/** @type {?} */
const injector = new PortalInjector(userInjector || this.injector, new WeakMap([
[DialogConfig, config]
]));
const /** @type {?} */ containerPortal = new ComponentPortal(container, config.viewContainerRef, injector);
const /** @type {?} */ containerRef = overlay.attach(containerPortal);
/** @type {?} */
const containerPortal = new ComponentPortal(container, config.viewContainerRef, injector);
/** @type {?} */
const containerRef = overlay.attach(containerPortal);
containerRef.instance._config = config;

@@ -698,7 +715,8 @@ return containerRef.instance;

_attachDialogContentForComponent(componentOrTemplateRef, dialogContainer, overlayRef, config) {
// Create a reference to the dialog we're creating in order to give the user a handle
// to modify and close it.
const /** @type {?} */ dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
const /** @type {?} */ injector = this._createInjector(config, dialogRef, dialogContainer);
const /** @type {?} */ contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, undefined, injector));
/** @type {?} */
const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
/** @type {?} */
const injector = this._createInjector(config, dialogRef, dialogContainer);
/** @type {?} */
const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, undefined, injector));
dialogRef.componentInstance = contentRef.instance;

@@ -720,5 +738,4 @@ dialogRef.updateSize({ width: config.width, height: config.height })

_attachDialogContentForTemplate(componentOrTemplateRef, dialogContainer, overlayRef, config) {
// Create a reference to the dialog we're creating in order to give the user a handle
// to modify and close it.
const /** @type {?} */ dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
/** @type {?} */
const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, /** @type {?} */ ((null)), /** @type {?} */ ({ $implicit: config.data, dialogRef })));

@@ -739,4 +756,6 @@ dialogRef.updateSize({ width: config.width, height: config.height })

_createInjector(config, dialogRef, dialogContainer) {
const /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
const /** @type {?} */ injectionTokens = new WeakMap([
/** @type {?} */
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
/** @type {?} */
const injectionTokens = new WeakMap([
[this.injector.get(DIALOG_REF), dialogRef],

@@ -762,3 +781,4 @@ [this.injector.get(DIALOG_CONTAINER), dialogContainer],

_applyConfigDefaults(config) {
const /** @type {?} */ dialogConfig = /** @type {?} */ (this.injector.get(DIALOG_CONFIG));
/** @type {?} */
const dialogConfig = /** @type {?} */ (this.injector.get(DIALOG_CONFIG));
return Object.assign({}, new dialogConfig(), config);

@@ -772,8 +792,8 @@ }

Dialog.ctorParameters = () => [
{ type: Overlay, },
{ type: Injector, },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_REF,] },] },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_SCROLL_STRATEGY,] },] },
{ type: Dialog, decorators: [{ type: Optional }, { type: SkipSelf },] },
{ type: Location, decorators: [{ type: Optional },] },
{ type: Overlay },
{ type: Injector },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_REF,] }] },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_SCROLL_STRATEGY,] }] },
{ type: Dialog, decorators: [{ type: Optional }, { type: SkipSelf }] },
{ type: Location, decorators: [{ type: Optional }] }
];

@@ -783,3 +803,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -816,3 +836,3 @@ const ɵ0 = DialogRef, ɵ1 = CdkDialogContainer, ɵ2 = DialogConfig;

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -822,6 +842,6 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
export { throwDialogContentAlreadyAttachedError, CdkDialogContainer, DialogConfig, DialogRef, Dialog, DialogModule, DIALOG_SCROLL_STRATEGY, DIALOG_DATA, DIALOG_REF, DIALOG_CONFIG, DIALOG_CONTAINER, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER };
export { throwDialogContentAlreadyAttachedError, CdkDialogContainer, DialogConfig, DialogRef, Dialog, DialogModule, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DIALOG_SCROLL_STRATEGY, DIALOG_DATA, DIALOG_REF, DIALOG_CONFIG, DIALOG_CONTAINER, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER };
//# sourceMappingURL=dialog.js.map

@@ -8,23 +8,12 @@ /**

*/
import { InjectionToken, Directive, forwardRef, Input, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, NgZone, Output, ViewChild, ViewEncapsulation, IterableDiffers, SkipSelf, TemplateRef, ViewContainerRef, NgModule } from '@angular/core';
import { coerceNumberProperty } from '@angular/cdk/coercion';
import { Observable, Subject, animationFrameScheduler, fromEvent } from 'rxjs';
import { distinctUntilChanged, sample, sampleTime, takeUntil, pairwise, shareReplay, startWith, switchMap } from 'rxjs/operators';
import { supportsScrollBehavior } from '@angular/cdk/platform';
import { ArrayDataSource, DataSource } from '@angular/cdk/collections';
import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';
import { Directive, forwardRef, Input, NgModule } from '@angular/core';
import { Observable } from 'rxjs';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
* The injection token used to specify the virtual scrolling strategy.
*/
const /** @type {?} */ VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* A class that tracks the size of items that have been seen and uses it to estimate the average

@@ -59,5 +48,7 @@ * item size.

addSample(range, size) {
const /** @type {?} */ newTotalWeight = this._totalWeight + range.end - range.start;
/** @type {?} */
const newTotalWeight = this._totalWeight + range.end - range.start;
if (newTotalWeight) {
const /** @type {?} */ newAverageItemSize = (size + this._averageItemSize * this._totalWeight) / newTotalWeight;
/** @type {?} */
const newAverageItemSize = (size + this._averageItemSize * this._totalWeight) / newTotalWeight;
if (newAverageItemSize) {

@@ -85,3 +76,3 @@ this._averageItemSize = newAverageItemSize;

* If the amount of buffer dips below this number, more items will be rendered.
* @param {?} addBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* @param {?} maxBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* If the actual amount turns out to be less it will not necessarily trigger an additional

@@ -91,3 +82,3 @@ * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).

*/
constructor(minBufferPx, addBufferPx, averager = new ItemSizeAverager()) {
constructor(minBufferPx, maxBufferPx, averager = new ItemSizeAverager()) {
/**

@@ -112,3 +103,3 @@ * \@docs-private Implemented as part of VirtualScrollStrategy.

this._minBufferPx = minBufferPx;
this._addBufferPx = addBufferPx;
this._maxBufferPx = maxBufferPx;
this._averager = averager;

@@ -124,3 +115,3 @@ }

this._viewport = viewport;
this._setScrollOffset();
this._renderContentForCurrentOffset();
}

@@ -149,3 +140,3 @@ /**

if (this._viewport) {
this._setScrollOffset();
this._renderContentForCurrentOffset();
this._checkRenderedContentSize();

@@ -184,9 +175,12 @@ }

* @param {?} minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).
* @param {?} addBufferPx The number of buffer items to render beyond the edge of the viewport (in
* @param {?} maxBufferPx The number of buffer items to render beyond the edge of the viewport (in
* pixels).
* @return {?}
*/
updateBufferSize(minBufferPx, addBufferPx) {
updateBufferSize(minBufferPx, maxBufferPx) {
if (maxBufferPx < minBufferPx) {
throw ('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');
}
this._minBufferPx = minBufferPx;
this._addBufferPx = addBufferPx;
this._maxBufferPx = maxBufferPx;
}

@@ -198,25 +192,19 @@ /**

_updateRenderedContentAfterScroll() {
const /** @type {?} */ viewport = /** @type {?} */ ((this._viewport));
// The current scroll offset.
const /** @type {?} */ scrollOffset = viewport.measureScrollOffset();
// The delta between the current scroll offset and the previously recorded scroll offset.
let /** @type {?} */ scrollDelta = scrollOffset - this._lastScrollOffset;
// The magnitude of the scroll delta.
let /** @type {?} */ scrollMagnitude = Math.abs(scrollDelta);
// The currently rendered range.
const /** @type {?} */ renderedRange = viewport.getRenderedRange();
// If we're scrolling toward the top, we need to account for the fact that the predicted amount
// of content and the actual amount of scrollable space may differ. We address this by slowly
// correcting the difference on each scroll event.
let /** @type {?} */ offsetCorrection = 0;
/** @type {?} */
const viewport = /** @type {?} */ ((this._viewport));
/** @type {?} */
const scrollOffset = viewport.measureScrollOffset();
/** @type {?} */
let scrollDelta = scrollOffset - this._lastScrollOffset;
/** @type {?} */
let scrollMagnitude = Math.abs(scrollDelta);
/** @type {?} */
const renderedRange = viewport.getRenderedRange();
/** @type {?} */
let offsetCorrection = 0;
if (scrollDelta < 0) {
// The content offset we would expect based on the average item size.
const /** @type {?} */ predictedOffset = renderedRange.start * this._averager.getAverageItemSize();
// The difference between the predicted size of the unrendered content at the beginning and
// the actual available space to scroll over. We need to reduce this to zero by the time the
// user scrolls to the top.
// - 0 indicates that the predicted size and available space are the same.
// - A negative number that the predicted size is smaller than the available space.
// - A positive number indicates the predicted size is larger than the available space
const /** @type {?} */ offsetDifference = predictedOffset - this._lastRenderedContentOffset;
/** @type {?} */
const predictedOffset = renderedRange.start * this._averager.getAverageItemSize();
/** @type {?} */
const offsetDifference = predictedOffset - this._lastRenderedContentOffset;
// The amount of difference to correct during this scroll event. We calculate this as a

@@ -232,10 +220,9 @@ // percentage of the total difference based on the percentage of the distance toward the top

}
// The current amount of buffer past the start of the viewport.
const /** @type {?} */ startBuffer = this._lastScrollOffset - this._lastRenderedContentOffset;
// The current amount of buffer past the end of the viewport.
const /** @type {?} */ endBuffer = (this._lastRenderedContentOffset + this._lastRenderedContentSize) -
/** @type {?} */
const startBuffer = this._lastScrollOffset - this._lastRenderedContentOffset;
/** @type {?} */
const endBuffer = (this._lastRenderedContentOffset + this._lastRenderedContentSize) -
(this._lastScrollOffset + viewport.getViewportSize());
// The amount of unfilled space that should be filled on the side the user is scrolling toward
// in order to safely absorb the scroll delta.
const /** @type {?} */ underscan = scrollMagnitude + this._minBufferPx -
/** @type {?} */
const underscan = scrollMagnitude + this._minBufferPx -
(scrollDelta < 0 ? startBuffer : endBuffer);

@@ -250,23 +237,17 @@ // Check if there's unfilled space that we need to render new elements to fill.

if (scrollMagnitude >= viewport.getViewportSize()) {
this._setScrollOffset();
this._renderContentForCurrentOffset();
}
else {
// The number of new items to render on the side the user is scrolling towards. Rather than
// just filling the underscan space, we actually fill enough to have a buffer size of
// `addBufferPx`. This gives us a little wiggle room in case our item size estimate is off.
const /** @type {?} */ addItems = Math.max(0, Math.ceil((underscan - this._minBufferPx + this._addBufferPx) /
/** @type {?} */
const addItems = Math.max(0, Math.ceil((underscan - this._minBufferPx + this._maxBufferPx) /
this._averager.getAverageItemSize()));
// The amount of filled space beyond what is necessary on the side the user is scrolling
// away from.
const /** @type {?} */ overscan = (scrollDelta < 0 ? endBuffer : startBuffer) - this._minBufferPx +
/** @type {?} */
const overscan = (scrollDelta < 0 ? endBuffer : startBuffer) - this._minBufferPx +
scrollMagnitude;
// The number of currently rendered items to remove on the side the user is scrolling away
// from. If removal has failed in recent cycles we are less aggressive in how much we try to
// remove.
const /** @type {?} */ unboundedRemoveItems = Math.floor(overscan / this._averager.getAverageItemSize() / (this._removalFailures + 1));
const /** @type {?} */ removeItems = Math.min(renderedRange.end - renderedRange.start, Math.max(0, unboundedRemoveItems));
// The new range we will tell the viewport to render. We first expand it to include the new
// items we want rendered, we then contract the opposite side to remove items we no longer
// want rendered.
const /** @type {?} */ range = this._expandRange(renderedRange, scrollDelta < 0 ? addItems : 0, scrollDelta > 0 ? addItems : 0);
/** @type {?} */
const unboundedRemoveItems = Math.floor(overscan / this._averager.getAverageItemSize() / (this._removalFailures + 1));
/** @type {?} */
const removeItems = Math.min(renderedRange.end - renderedRange.start, Math.max(0, unboundedRemoveItems));
/** @type {?} */
const range = this._expandRange(renderedRange, scrollDelta < 0 ? addItems : 0, scrollDelta > 0 ? addItems : 0);
if (scrollDelta < 0) {

@@ -278,10 +259,9 @@ range.end = Math.max(range.start + 1, range.end - removeItems);

}
// The new offset we want to set on the rendered content. To determine this we measure the
// number of pixels we removed and then adjust the offset to the start of the rendered
// content or to the end of the rendered content accordingly (whichever one doesn't require
// that the newly added items to be rendered to calculate.)
let /** @type {?} */ contentOffset;
let /** @type {?} */ contentOffsetTo;
/** @type {?} */
let contentOffset;
/** @type {?} */
let contentOffsetTo;
if (scrollDelta < 0) {
let /** @type {?} */ removedSize = viewport.measureRangeSize({
/** @type {?} */
let removedSize = viewport.measureRangeSize({
start: range.end,

@@ -306,3 +286,4 @@ end: renderedRange.end,

else {
const /** @type {?} */ removedSize = viewport.measureRangeSize({
/** @type {?} */
const removedSize = viewport.measureRangeSize({
start: renderedRange.start,

@@ -344,3 +325,4 @@ end: range.start,

_checkRenderedContentSize() {
const /** @type {?} */ viewport = /** @type {?} */ ((this._viewport));
/** @type {?} */
const viewport = /** @type {?} */ ((this._viewport));
this._lastRenderedContentSize = viewport.measureRenderedContentSize();

@@ -355,26 +337,26 @@ this._averager.addSample(viewport.getRenderedRange(), this._lastRenderedContentSize);

_checkRenderedContentOffset() {
const /** @type {?} */ viewport = /** @type {?} */ ((this._viewport));
/** @type {?} */
const viewport = /** @type {?} */ ((this._viewport));
this._lastRenderedContentOffset = /** @type {?} */ ((viewport.getOffsetToRenderedContentStart()));
}
/**
* Sets the scroll offset and renders the content we estimate should be shown at that point.
* @param {?=} scrollOffset The offset to jump to. If not specified the scroll offset will not be
* changed, but the rendered content will be recalculated based on our estimate of what should
* be shown at the current scroll offset.
* Recalculates the rendered content based on our estimate of what should be shown at the current
* scroll offset.
* @return {?}
*/
_setScrollOffset(scrollOffset) {
const /** @type {?} */ viewport = /** @type {?} */ ((this._viewport));
if (scrollOffset == null) {
scrollOffset = viewport.measureScrollOffset();
}
else {
viewport.setScrollOffset(scrollOffset);
}
_renderContentForCurrentOffset() {
/** @type {?} */
const viewport = /** @type {?} */ ((this._viewport));
/** @type {?} */
const scrollOffset = viewport.measureScrollOffset();
this._lastScrollOffset = scrollOffset;
this._removalFailures = 0;
const /** @type {?} */ itemSize = this._averager.getAverageItemSize();
const /** @type {?} */ firstVisibleIndex = Math.min(viewport.getDataLength() - 1, Math.floor(scrollOffset / itemSize));
const /** @type {?} */ bufferSize = Math.ceil(this._addBufferPx / itemSize);
const /** @type {?} */ range = this._expandRange(this._getVisibleRangeForIndex(firstVisibleIndex), bufferSize, bufferSize);
/** @type {?} */
const itemSize = this._averager.getAverageItemSize();
/** @type {?} */
const firstVisibleIndex = Math.min(viewport.getDataLength() - 1, Math.floor(scrollOffset / itemSize));
/** @type {?} */
const bufferSize = Math.ceil(this._maxBufferPx / itemSize);
/** @type {?} */
const range = this._expandRange(this._getVisibleRangeForIndex(firstVisibleIndex), bufferSize, bufferSize);
viewport.setRenderedRange(range);

@@ -392,4 +374,6 @@ viewport.setRenderedContentOffset(itemSize * range.start);

_getVisibleRangeForIndex(startIndex) {
const /** @type {?} */ viewport = /** @type {?} */ ((this._viewport));
const /** @type {?} */ range = {
/** @type {?} */
const viewport = /** @type {?} */ ((this._viewport));
/** @type {?} */
const range = {
start: startIndex,

@@ -399,3 +383,4 @@ end: startIndex +

};
const /** @type {?} */ extra = range.end - viewport.getDataLength();
/** @type {?} */
const extra = range.end - viewport.getDataLength();
if (extra > 0) {

@@ -415,5 +400,8 @@ range.start = Math.max(0, range.start - extra);

_expandRange(range, expandStart, expandEnd) {
const /** @type {?} */ viewport = /** @type {?} */ ((this._viewport));
const /** @type {?} */ start = Math.max(0, range.start - expandStart);
const /** @type {?} */ end = Math.min(viewport.getDataLength(), range.end + expandEnd);
/** @type {?} */
const viewport = /** @type {?} */ ((this._viewport));
/** @type {?} */
const start = Math.max(0, range.start - expandStart);
/** @type {?} */
const end = Math.min(viewport.getDataLength(), range.end + expandEnd);
return { start, end };

@@ -427,5 +415,8 @@ }

_updateTotalContentSize(renderedContentSize) {
const /** @type {?} */ viewport = /** @type {?} */ ((this._viewport));
const /** @type {?} */ renderedRange = viewport.getRenderedRange();
const /** @type {?} */ totalSize = renderedContentSize +
/** @type {?} */
const viewport = /** @type {?} */ ((this._viewport));
/** @type {?} */
const renderedRange = viewport.getRenderedRange();
/** @type {?} */
const totalSize = renderedContentSize +
(viewport.getDataLength() - (renderedRange.end - renderedRange.start)) *

@@ -452,7 +443,7 @@ this._averager.getAverageItemSize();

this._minBufferPx = 100;
this._addBufferPx = 200;
this._maxBufferPx = 200;
/**
* The scroll strategy used by this directive.
*/
this._scrollStrategy = new AutoSizeVirtualScrollStrategy(this.minBufferPx, this.addBufferPx);
this._scrollStrategy = new AutoSizeVirtualScrollStrategy(this.minBufferPx, this.maxBufferPx);
}

@@ -477,3 +468,3 @@ /**

*/
get addBufferPx() { return this._addBufferPx; }
get maxBufferPx() { return this._maxBufferPx; }
/**

@@ -483,3 +474,3 @@ * @param {?} value

*/
set addBufferPx(value) { this._addBufferPx = coerceNumberProperty(value); }
set maxBufferPx(value) { this._maxBufferPx = coerceNumberProperty(value); }
/**

@@ -489,3 +480,3 @@ * @return {?}

ngOnChanges() {
this._scrollStrategy.updateBufferSize(this.minBufferPx, this.addBufferPx);
this._scrollStrategy.updateBufferSize(this.minBufferPx, this.maxBufferPx);
}

@@ -503,6 +494,5 @@ }

];
/** @nocollapse */
CdkAutoSizeVirtualScroll.propDecorators = {
"minBufferPx": [{ type: Input },],
"addBufferPx": [{ type: Input },],
minBufferPx: [{ type: Input }],
maxBufferPx: [{ type: Input }]
};

@@ -512,950 +502,4 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
* Virtual scrolling strategy for lists with items of known fixed size.
*/
class FixedSizeVirtualScrollStrategy {
/**
* @param {?} itemSize The size of the items in the virtually scrolling list.
* @param {?} bufferSize The number of buffer items to render beyond the edge of the viewport.
*/
constructor(itemSize, bufferSize) {
this._scrolledIndexChange = new Subject();
/**
* \@docs-private Implemented as part of VirtualScrollStrategy.
*/
this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());
/**
* The attached viewport.
*/
this._viewport = null;
this._itemSize = itemSize;
this._bufferSize = bufferSize;
}
/**
* Attaches this scroll strategy to a viewport.
* @param {?} viewport The viewport to attach this strategy to.
* @return {?}
*/
attach(viewport) {
this._viewport = viewport;
this._updateTotalContentSize();
this._updateRenderedRange();
}
/**
* Detaches this scroll strategy from the currently attached viewport.
* @return {?}
*/
detach() {
this._scrolledIndexChange.complete();
this._viewport = null;
}
/**
* Update the item size and buffer size.
* @param {?} itemSize The size of the items in the virtually scrolling list.
* @param {?} bufferSize he number of buffer items to render beyond the edge of the viewport.
* @return {?}
*/
updateItemAndBufferSize(itemSize, bufferSize) {
this._itemSize = itemSize;
this._bufferSize = bufferSize;
this._updateTotalContentSize();
this._updateRenderedRange();
}
/**
* \@docs-private Implemented as part of VirtualScrollStrategy.
* @return {?}
*/
onContentScrolled() {
this._updateRenderedRange();
}
/**
* \@docs-private Implemented as part of VirtualScrollStrategy.
* @return {?}
*/
onDataLengthChanged() {
this._updateTotalContentSize();
this._updateRenderedRange();
}
/**
* \@docs-private Implemented as part of VirtualScrollStrategy.
* @return {?}
*/
onContentRendered() {
/* no-op */
}
/**
* \@docs-private Implemented as part of VirtualScrollStrategy.
* @return {?}
*/
onRenderedOffsetChanged() {
/* no-op */
}
/**
* Scroll to the offset for the given index.
* @param {?} index The index of the element to scroll to.
* @param {?} behavior The ScrollBehavior to use when scrolling.
* @return {?}
*/
scrollToIndex(index, behavior) {
if (this._viewport) {
this._viewport.scrollToOffset(index * this._itemSize, behavior);
}
}
/**
* Update the viewport's total content size.
* @return {?}
*/
_updateTotalContentSize() {
if (!this._viewport) {
return;
}
this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);
}
/**
* Update the viewport's rendered range.
* @return {?}
*/
_updateRenderedRange() {
if (!this._viewport) {
return;
}
const /** @type {?} */ scrollOffset = this._viewport.measureScrollOffset();
const /** @type {?} */ firstVisibleIndex = Math.floor(scrollOffset / this._itemSize);
const /** @type {?} */ firstItemRemainder = scrollOffset % this._itemSize;
const /** @type {?} */ range = this._expandRange({ start: firstVisibleIndex, end: firstVisibleIndex }, this._bufferSize, Math.ceil((this._viewport.getViewportSize() + firstItemRemainder) / this._itemSize) +
this._bufferSize);
this._viewport.setRenderedRange(range);
this._viewport.setRenderedContentOffset(this._itemSize * range.start);
this._scrolledIndexChange.next(firstVisibleIndex);
}
/**
* Expand the given range by the given amount in either direction.
* @param {?} range The range to expand
* @param {?} expandStart The number of items to expand the start of the range by.
* @param {?} expandEnd The number of items to expand the end of the range by.
* @return {?} The expanded range.
*/
_expandRange(range, expandStart, expandEnd) {
if (!this._viewport) {
return Object.assign({}, range);
}
const /** @type {?} */ start = Math.max(0, range.start - expandStart);
const /** @type {?} */ end = Math.min(this._viewport.getDataLength(), range.end + expandEnd);
return { start, end };
}
}
/**
* Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created
* `FixedSizeVirtualScrollStrategy` from the given directive.
* @param {?} fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the
* `FixedSizeVirtualScrollStrategy` from.
* @return {?}
*/
function _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {
return fixedSizeDir._scrollStrategy;
}
/**
* A virtual scroll strategy that supports fixed-size items.
*/
class CdkFixedSizeVirtualScroll {
constructor() {
this._itemSize = 20;
this._bufferSize = 5;
/**
* The scroll strategy used by this directive.
*/
this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.bufferSize);
}
/**
* The size of the items in the list (in pixels).
* @return {?}
*/
get itemSize() { return this._itemSize; }
/**
* @param {?} value
* @return {?}
*/
set itemSize(value) { this._itemSize = coerceNumberProperty(value); }
/**
* The number of extra elements to render on either side of the scrolling viewport.
* Defaults to 5 elements.
* @return {?}
*/
get bufferSize() { return this._bufferSize; }
/**
* @param {?} value
* @return {?}
*/
set bufferSize(value) { this._bufferSize = coerceNumberProperty(value); }
/**
* @return {?}
*/
ngOnChanges() {
this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.bufferSize);
}
}
CdkFixedSizeVirtualScroll.decorators = [
{ type: Directive, args: [{
selector: 'cdk-virtual-scroll-viewport[itemSize]',
providers: [{
provide: VIRTUAL_SCROLL_STRATEGY,
useFactory: _fixedSizeVirtualScrollStrategyFactory,
deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],
}],
},] },
];
/** @nocollapse */
CdkFixedSizeVirtualScroll.propDecorators = {
"itemSize": [{ type: Input },],
"bufferSize": [{ type: Input },],
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Checks if the given ranges are equal.
* @param {?} r1
* @param {?} r2
* @return {?}
*/
function rangesEqual(r1, r2) {
return r1.start == r2.start && r1.end == r2.end;
}
/**
* A viewport that virtualizes it's scrolling with the help of `CdkVirtualForOf`.
*/
class CdkVirtualScrollViewport {
/**
* @param {?} elementRef
* @param {?} _changeDetectorRef
* @param {?} _ngZone
* @param {?} _scrollStrategy
*/
constructor(elementRef, _changeDetectorRef, _ngZone, _scrollStrategy) {
this.elementRef = elementRef;
this._changeDetectorRef = _changeDetectorRef;
this._ngZone = _ngZone;
this._scrollStrategy = _scrollStrategy;
/**
* Emits when the viewport is detached from a CdkVirtualForOf.
*/
this._detachedSubject = new Subject();
/**
* Emits when the rendered range changes.
*/
this._renderedRangeSubject = new Subject();
/**
* Emits when a change detection cycle completes.
*/
this._changeDetectionComplete = new Subject();
/**
* The direction the viewport scrolls.
*/
this.orientation = 'vertical';
/**
* Emits when the index of the first element visible in the viewport changes.
*/
this.scrolledIndexChange = Observable.create(observer => this._scrollStrategy.scrolledIndexChange
.pipe(sample(this._changeDetectionComplete))
.subscribe(observer));
/**
* A stream that emits whenever the rendered range changes.
*/
this.renderedRangeStream = this._renderedRangeSubject.asObservable();
/**
* The total size of all content (in pixels), including content that is not currently rendered.
*/
this._totalContentSize = 0;
/**
* The currently rendered range of indices.
*/
this._renderedRange = { start: 0, end: 0 };
/**
* The length of the data bound to this viewport (in number of items).
*/
this._dataLength = 0;
/**
* The size of the viewport (in pixels).
*/
this._viewportSize = 0;
/**
* The last rendered content offset that was set.
*/
this._renderedContentOffset = 0;
/**
* Whether the last rendered content offset was to the end of the content (and therefore needs to
* be rewritten as an offset to the start of the content).
*/
this._renderedContentOffsetNeedsRewrite = false;
/**
* Observable that emits when the viewport is destroyed.
*/
this._destroyed = new Subject();
/**
* Whether there is a pending change detection cycle.
*/
this._isChangeDetectionPending = false;
/**
* A list of functions to run after the next change detection cycle.
*/
this._runAfterChangeDetection = [];
}
/**
* @return {?}
*/
ngOnInit() {
// It's still too early to measure the viewport at this point. Deferring with a promise allows
// the Viewport to be rendered with the correct size before we measure. We run this outside the
// zone to avoid causing more change detection cycles. We handle the change detection loop
// ourselves instead.
this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
this._measureViewportSize();
this._scrollStrategy.attach(this);
fromEvent(this.elementRef.nativeElement, 'scroll')
.pipe(sampleTime(0, animationFrameScheduler), takeUntil(this._destroyed))
.subscribe(() => this._scrollStrategy.onContentScrolled());
this._markChangeDetectionNeeded();
}));
}
/**
* @return {?}
*/
ngOnDestroy() {
this.detach();
this._scrollStrategy.detach();
this._destroyed.next();
// Complete all subjects
this._renderedRangeSubject.complete();
this._detachedSubject.complete();
this._changeDetectionComplete.complete();
this._destroyed.complete();
}
/**
* Attaches a `CdkVirtualForOf` to this viewport.
* @param {?} forOf
* @return {?}
*/
attach(forOf) {
if (this._forOf) {
throw Error('CdkVirtualScrollViewport is already attached.');
}
// Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length
// changes. Run outside the zone to avoid triggering change detection, since we're managing the
// change detection loop ourselves.
this._ngZone.runOutsideAngular(() => {
this._forOf = forOf;
this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {
const /** @type {?} */ newLength = data.length;
if (newLength !== this._dataLength) {
this._dataLength = newLength;
this._scrollStrategy.onDataLengthChanged();
}
});
});
}
/**
* Detaches the current `CdkVirtualForOf`.
* @return {?}
*/
detach() {
this._forOf = null;
this._detachedSubject.next();
}
/**
* Gets the length of the data bound to this viewport (in number of items).
* @return {?}
*/
getDataLength() {
return this._dataLength;
}
/**
* Gets the size of the viewport (in pixels).
* @return {?}
*/
getViewportSize() {
return this._viewportSize;
}
/**
* Get the current rendered range of items.
* @return {?}
*/
getRenderedRange() {
return this._renderedRange;
}
/**
* Sets the total size of all content (in pixels), including content that is not currently
* rendered.
* @param {?} size
* @return {?}
*/
setTotalContentSize(size) {
if (this._totalContentSize !== size) {
this._totalContentSize = size;
this._markChangeDetectionNeeded();
}
}
/**
* Sets the currently rendered range of indices.
* @param {?} range
* @return {?}
*/
setRenderedRange(range) {
if (!rangesEqual(this._renderedRange, range)) {
this._renderedRangeSubject.next(this._renderedRange = range);
this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());
}
}
/**
* Gets the offset from the start of the viewport to the start of the rendered data (in pixels).
* @return {?}
*/
getOffsetToRenderedContentStart() {
return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;
}
/**
* Sets the offset from the start of the viewport to either the start or end of the rendered data
* (in pixels).
* @param {?} offset
* @param {?=} to
* @return {?}
*/
setRenderedContentOffset(offset, to = 'to-start') {
const /** @type {?} */ axis = this.orientation === 'horizontal' ? 'X' : 'Y';
let /** @type {?} */ transform = `translate${axis}(${Number(offset)}px)`;
this._renderedContentOffset = offset;
if (to === 'to-end') {
transform += ` translate${axis}(-100%)`;
// The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise
// elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would
// expand upward).
this._renderedContentOffsetNeedsRewrite = true;
}
if (this._renderedContentTransform != transform) {
// We know this value is safe because we parse `offset` with `Number()` before passing it
// into the string.
this._renderedContentTransform = transform;
this._markChangeDetectionNeeded(() => {
if (this._renderedContentOffsetNeedsRewrite) {
this._renderedContentOffset -= this.measureRenderedContentSize();
this._renderedContentOffsetNeedsRewrite = false;
this.setRenderedContentOffset(this._renderedContentOffset);
}
else {
this._scrollStrategy.onRenderedOffsetChanged();
}
});
}
}
/**
* Scrolls to the offset on the viewport.
* @param {?} offset The offset to scroll to.
* @param {?=} behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.
* @return {?}
*/
scrollToOffset(offset, behavior = 'auto') {
const /** @type {?} */ viewportElement = this.elementRef.nativeElement;
if (supportsScrollBehavior()) {
const /** @type {?} */ offsetDirection = this.orientation === 'horizontal' ? 'left' : 'top';
viewportElement.scrollTo({ [offsetDirection]: offset, behavior });
}
else {
if (this.orientation === 'horizontal') {
viewportElement.scrollLeft = offset;
}
else {
viewportElement.scrollTop = offset;
}
}
}
/**
* Scrolls to the offset for the given index.
* @param {?} index The index of the element to scroll to.
* @param {?=} behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.
* @return {?}
*/
scrollToIndex(index, behavior = 'auto') {
this._scrollStrategy.scrollToIndex(index, behavior);
}
/**
* \@docs-private Internal method to set the scroll offset on the viewport.
* @param {?} offset
* @return {?}
*/
setScrollOffset(offset) {
// Rather than setting the offset immediately, we batch it up to be applied along with other DOM
// writes during the next change detection cycle.
this._pendingScrollOffset = offset;
this._markChangeDetectionNeeded();
}
/**
* Gets the current scroll offset of the viewport (in pixels).
* @return {?}
*/
measureScrollOffset() {
return this.orientation === 'horizontal' ?
this.elementRef.nativeElement.scrollLeft : this.elementRef.nativeElement.scrollTop;
}
/**
* Measure the combined size of all of the rendered items.
* @return {?}
*/
measureRenderedContentSize() {
const /** @type {?} */ contentEl = this._contentWrapper.nativeElement;
return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;
}
/**
* Measure the total combined size of the given range. Throws if the range includes items that are
* not rendered.
* @param {?} range
* @return {?}
*/
measureRangeSize(range) {
if (!this._forOf) {
return 0;
}
return this._forOf.measureRangeSize(range, this.orientation);
}
/**
* Update the viewport dimensions and re-render.
* @return {?}
*/
checkViewportSize() {
// TODO: Cleanup later when add logic for handling content resize
this._measureViewportSize();
this._scrollStrategy.onDataLengthChanged();
}
/**
* Measure the viewport size.
* @return {?}
*/
_measureViewportSize() {
const /** @type {?} */ viewportEl = this.elementRef.nativeElement;
this._viewportSize = this.orientation === 'horizontal' ?
viewportEl.clientWidth : viewportEl.clientHeight;
}
/**
* Queue up change detection to run.
* @param {?=} runAfter
* @return {?}
*/
_markChangeDetectionNeeded(runAfter) {
if (runAfter) {
this._runAfterChangeDetection.push(runAfter);
}
// Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of
// properties sequentially we only have to run `_doChangeDetection` once at the end.
if (!this._isChangeDetectionPending) {
this._isChangeDetectionPending = true;
this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
this._doChangeDetection();
}));
}
}
/**
* Run change detection.
* @return {?}
*/
_doChangeDetection() {
this._isChangeDetectionPending = false;
// Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection
// from the root, since the repeated items are content projected in. Calling `detectChanges`
// instead does not properly check the projected content.
this._ngZone.run(() => this._changeDetectorRef.markForCheck());
// Apply the content transform. The transform can't be set via an Angular binding because
// bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of
// string literals, a variable that can only be 'X' or 'Y', and user input that is run through
// the `Number` function first to coerce it to a numeric value.
this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;
// Apply the pending scroll offset separately, since it can't be set up as an Angular binding.
if (this._pendingScrollOffset != null) {
if (this.orientation === 'horizontal') {
this.elementRef.nativeElement.scrollLeft = this._pendingScrollOffset;
}
else {
this.elementRef.nativeElement.scrollTop = this._pendingScrollOffset;
}
}
const /** @type {?} */ runAfterChangeDetection = this._runAfterChangeDetection;
this._runAfterChangeDetection = [];
for (const /** @type {?} */ fn of runAfterChangeDetection) {
fn();
}
this._ngZone.run(() => this._changeDetectionComplete.next());
}
}
CdkVirtualScrollViewport.decorators = [
{ type: Component, args: [{selector: 'cdk-virtual-scroll-viewport',
template: "<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\"><ng-content></ng-content></div><div class=\"cdk-virtual-scroll-spacer\" [style.height.px]=\"orientation === 'horizontal' ? 1 : _totalContentSize\" [style.width.px]=\"orientation === 'horizontal' ? _totalContentSize : 1\"></div>",
styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;will-change:contents,transform}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{bottom:0}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{right:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:0}.cdk-virtual-scroll-spacer{will-change:height,width}"],
host: {
'class': 'cdk-virtual-scroll-viewport',
'[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === "horizontal"',
'[class.cdk-virtual-scroll-orientation-vertical]': 'orientation === "vertical"',
},
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
},] },
];
/** @nocollapse */
CdkVirtualScrollViewport.ctorParameters = () => [
{ type: ElementRef, },
{ type: ChangeDetectorRef, },
{ type: NgZone, },
{ type: undefined, decorators: [{ type: Inject, args: [VIRTUAL_SCROLL_STRATEGY,] },] },
];
CdkVirtualScrollViewport.propDecorators = {
"orientation": [{ type: Input },],
"scrolledIndexChange": [{ type: Output },],
"_contentWrapper": [{ type: ViewChild, args: ['contentWrapper',] },],
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Helper to extract size from a DOM Node.
* @param {?} orientation
* @param {?} node
* @return {?}
*/
function getSize(orientation, node) {
const /** @type {?} */ el = /** @type {?} */ (node);
if (!el.getBoundingClientRect) {
return 0;
}
const /** @type {?} */ rect = el.getBoundingClientRect();
return orientation == 'horizontal' ? rect.width : rect.height;
}
/**
* A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling
* container.
* @template T
*/
class CdkVirtualForOf {
/**
* @param {?} _viewContainerRef
* @param {?} _template
* @param {?} _differs
* @param {?} _viewport
*/
constructor(_viewContainerRef, _template, _differs, /** The virtual scrolling viewport that these items are being rendered in. */
_viewport) {
this._viewContainerRef = _viewContainerRef;
this._template = _template;
this._differs = _differs;
this._viewport = _viewport;
/**
* Emits when the rendered view of the data changes.
*/
this.viewChange = new Subject();
/**
* Subject that emits when a new DataSource instance is given.
*/
this._dataSourceChanges = new Subject();
/**
* The size of the cache used to store templates that are not being used for re-use later.
* Setting the cache size to `0` will disable caching. Defaults to 20 templates.
*/
this.cdkVirtualForTemplateCacheSize = 20;
/**
* Emits whenever the data in the current DataSource changes.
*/
this.dataStream = this._dataSourceChanges
.pipe(
// Start off with null `DataSource`.
startWith(/** @type {?} */ ((null))),
// Bundle up the previous and current data sources so we can work with both.
pairwise(),
// Use `_changeDataSource` to disconnect from the previous data source and connect to the
// new one, passing back a stream of data changes which we run through `switchMap` to give
// us a data stream that emits the latest data from whatever the current `DataSource` is.
switchMap(([prev, cur]) => this._changeDataSource(prev, cur)),
// Replay the last emitted data when someone subscribes.
shareReplay(1));
/**
* The differ used to calculate changes to the data.
*/
this._differ = null;
/**
* The template cache used to hold on ot template instancess that have been stamped out, but don't
* currently need to be rendered. These instances will be reused in the future rather than
* stamping out brand new ones.
*/
this._templateCache = [];
/**
* Whether the rendered data should be updated during the next ngDoCheck cycle.
*/
this._needsUpdate = false;
this._destroyed = new Subject();
this.dataStream.subscribe(data => {
this._data = data;
this._onRenderedDataChange();
});
this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {
this._renderedRange = range;
this.viewChange.next(this._renderedRange);
this._onRenderedDataChange();
});
this._viewport.attach(this);
}
/**
* The DataSource to display.
* @return {?}
*/
get cdkVirtualForOf() {
return this._cdkVirtualForOf;
}
/**
* @param {?} value
* @return {?}
*/
set cdkVirtualForOf(value) {
this._cdkVirtualForOf = value;
const /** @type {?} */ ds = value instanceof DataSource ? value :
// Slice the value if its an NgIterable to ensure we're working with an array.
new ArrayDataSource(value instanceof Observable ? value : Array.prototype.slice.call(value || []));
this._dataSourceChanges.next(ds);
}
/**
* The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and
* the item and produces a value to be used as the item's identity when tracking changes.
* @return {?}
*/
get cdkVirtualForTrackBy() {
return this._cdkVirtualForTrackBy;
}
/**
* @param {?} fn
* @return {?}
*/
set cdkVirtualForTrackBy(fn) {
this._needsUpdate = true;
this._cdkVirtualForTrackBy = fn ?
(index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item) :
undefined;
}
/**
* The template used to stamp out new elements.
* @param {?} value
* @return {?}
*/
set cdkVirtualForTemplate(value) {
if (value) {
this._needsUpdate = true;
this._template = value;
}
}
/**
* Measures the combined size (width for horizontal orientation, height for vertical) of all items
* in the specified range. Throws an error if the range includes items that are not currently
* rendered.
* @param {?} range
* @param {?} orientation
* @return {?}
*/
measureRangeSize(range, orientation) {
if (range.start >= range.end) {
return 0;
}
if (range.start < this._renderedRange.start || range.end > this._renderedRange.end) {
throw Error(`Error: attempted to measure an item that isn't rendered.`);
}
// The index into the list of rendered views for the first item in the range.
const /** @type {?} */ renderedStartIndex = range.start - this._renderedRange.start;
// The length of the range we're measuring.
const /** @type {?} */ rangeLen = range.end - range.start;
// Loop over all root nodes for all items in the range and sum up their size.
let /** @type {?} */ totalSize = 0;
let /** @type {?} */ i = rangeLen;
while (i--) {
const /** @type {?} */ view = /** @type {?} */ (this._viewContainerRef.get(i + renderedStartIndex));
let /** @type {?} */ j = view ? view.rootNodes.length : 0;
while (j--) {
totalSize += getSize(orientation, /** @type {?} */ ((view)).rootNodes[j]);
}
}
return totalSize;
}
/**
* @return {?}
*/
ngDoCheck() {
if (this._differ && this._needsUpdate) {
// TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of
// this list being rendered (can use simpler algorithm) vs needs update due to data actually
// changing (need to do this diff).
const /** @type {?} */ changes = this._differ.diff(this._renderedItems);
if (!changes) {
this._updateContext();
}
else {
this._applyChanges(changes);
}
this._needsUpdate = false;
}
}
/**
* @return {?}
*/
ngOnDestroy() {
this._viewport.detach();
this._dataSourceChanges.complete();
this.viewChange.complete();
this._destroyed.next();
this._destroyed.complete();
for (let /** @type {?} */ view of this._templateCache) {
view.destroy();
}
}
/**
* React to scroll state changes in the viewport.
* @return {?}
*/
_onRenderedDataChange() {
if (!this._renderedRange) {
return;
}
this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);
if (!this._differ) {
this._differ = this._differs.find(this._renderedItems).create(this.cdkVirtualForTrackBy);
}
this._needsUpdate = true;
}
/**
* Swap out one `DataSource` for another.
* @param {?} oldDs
* @param {?} newDs
* @return {?}
*/
_changeDataSource(oldDs, newDs) {
if (oldDs) {
oldDs.disconnect(this);
}
this._needsUpdate = true;
return newDs.connect(this);
}
/**
* Update the `CdkVirtualForOfContext` for all views.
* @return {?}
*/
_updateContext() {
const /** @type {?} */ count = this._data.length;
let /** @type {?} */ i = this._viewContainerRef.length;
while (i--) {
let /** @type {?} */ view = /** @type {?} */ (this._viewContainerRef.get(i));
view.context.index = this._renderedRange.start + i;
view.context.count = count;
this._updateComputedContextProperties(view.context);
view.detectChanges();
}
}
/**
* Apply changes to the DOM.
* @param {?} changes
* @return {?}
*/
_applyChanges(changes) {
// Rearrange the views to put them in the right location.
changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {
if (record.previousIndex == null) {
// Item added.
const /** @type {?} */ view = this._getViewForNewItem();
this._viewContainerRef.insert(view, currentIndex);
view.context.$implicit = record.item;
}
else if (currentIndex == null) {
// Item removed.
this._cacheView(/** @type {?} */ (this._viewContainerRef.detach(adjustedPreviousIndex)));
}
else {
// Item moved.
const /** @type {?} */ view = /** @type {?} */ (this._viewContainerRef.get(adjustedPreviousIndex));
this._viewContainerRef.move(view, currentIndex);
view.context.$implicit = record.item;
}
});
// Update $implicit for any items that had an identity change.
changes.forEachIdentityChange((record) => {
const /** @type {?} */ view = /** @type {?} */ (this._viewContainerRef.get(/** @type {?} */ ((record.currentIndex))));
view.context.$implicit = record.item;
});
// Update the context variables on all items.
const /** @type {?} */ count = this._data.length;
let /** @type {?} */ i = this._viewContainerRef.length;
while (i--) {
const /** @type {?} */ view = /** @type {?} */ (this._viewContainerRef.get(i));
view.context.index = this._renderedRange.start + i;
view.context.count = count;
this._updateComputedContextProperties(view.context);
}
}
/**
* Cache the given detached view.
* @param {?} view
* @return {?}
*/
_cacheView(view) {
if (this._templateCache.length < this.cdkVirtualForTemplateCacheSize) {
this._templateCache.push(view);
}
else {
view.destroy();
}
}
/**
* Get a view for a new item, either from the cache or by creating a new one.
* @return {?}
*/
_getViewForNewItem() {
return this._templateCache.pop() || this._viewContainerRef.createEmbeddedView(this._template, {
$implicit: /** @type {?} */ ((null)),
cdkVirtualForOf: this._cdkVirtualForOf,
index: -1,
count: -1,
first: false,
last: false,
odd: false,
even: false
});
}
/**
* Update the computed properties on the `CdkVirtualForOfContext`.
* @param {?} context
* @return {?}
*/
_updateComputedContextProperties(context) {
context.first = context.index === 0;
context.last = context.index === context.count - 1;
context.even = context.index % 2 === 0;
context.odd = !context.even;
}
}
CdkVirtualForOf.decorators = [
{ type: Directive, args: [{
selector: '[cdkVirtualFor][cdkVirtualForOf]',
},] },
];
/** @nocollapse */
CdkVirtualForOf.ctorParameters = () => [
{ type: ViewContainerRef, },
{ type: TemplateRef, },
{ type: IterableDiffers, },
{ type: CdkVirtualScrollViewport, decorators: [{ type: SkipSelf },] },
];
CdkVirtualForOf.propDecorators = {
"cdkVirtualForOf": [{ type: Input },],
"cdkVirtualForTrackBy": [{ type: Input },],
"cdkVirtualForTemplate": [{ type: Input },],
"cdkVirtualForTemplateCacheSize": [{ type: Input },],
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class ScrollingModule {

@@ -1465,14 +509,4 @@ }

{ type: NgModule, args: [{
exports: [
CdkAutoSizeVirtualScroll,
CdkFixedSizeVirtualScroll,
CdkVirtualForOf,
CdkVirtualScrollViewport,
],
declarations: [
CdkAutoSizeVirtualScroll,
CdkFixedSizeVirtualScroll,
CdkVirtualForOf,
CdkVirtualScrollViewport,
],
exports: [CdkAutoSizeVirtualScroll],
declarations: [CdkAutoSizeVirtualScroll],
},] },

@@ -1483,3 +517,3 @@ ];

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -1489,6 +523,6 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
export { ItemSizeAverager, AutoSizeVirtualScrollStrategy, _autoSizeVirtualScrollStrategyFactory, CdkAutoSizeVirtualScroll, FixedSizeVirtualScrollStrategy, _fixedSizeVirtualScrollStrategyFactory, CdkFixedSizeVirtualScroll, ScrollingModule, CdkVirtualForOf, VIRTUAL_SCROLL_STRATEGY, CdkVirtualScrollViewport };
export { _autoSizeVirtualScrollStrategyFactory, ItemSizeAverager, AutoSizeVirtualScrollStrategy, CdkAutoSizeVirtualScroll, ScrollingModule };
//# sourceMappingURL=scrolling.js.map

@@ -12,12 +12,12 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Current version of the CDK Experimental package.
*/
var /** @type {?} */ VERSION = new Version('6.4.7');
@type {?} */
var VERSION = new Version('7.0.0-beta.0');
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -27,3 +27,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -30,0 +30,0 @@

@@ -22,3 +22,3 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -99,3 +99,3 @@ /**

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -152,2 +152,6 @@ /**

Object.defineProperty(CdkDialogContainer.prototype, "_ariaLabel", {
// @HostBinding is used in the class as it is expected to be extended. Since @Component decorator
// metadata is not inherited by child classes, instead the host binding data is defined in a way
// that can be inherited.
// tslint:disable:no-host-decorator-in-concrete
get: /**

@@ -349,3 +353,4 @@ * @return {?}

function () {
var /** @type {?} */ toFocus = this._elementFocusedBeforeDialogWasOpened;
/** @type {?} */
var toFocus = this._elementFocusedBeforeDialogWasOpened;
// We need the extra check, because IE can set the `activeElement` to null in some cases.

@@ -380,14 +385,14 @@ if (toFocus && typeof toFocus.focus === 'function') {

CdkDialogContainer.ctorParameters = function () { return [
{ type: ElementRef, },
{ type: FocusTrapFactory, },
{ type: ChangeDetectorRef, },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] },] },
{ type: DialogConfig, },
{ type: ElementRef },
{ type: FocusTrapFactory },
{ type: ChangeDetectorRef },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] },
{ type: DialogConfig }
]; };
CdkDialogContainer.propDecorators = {
"_ariaLabel": [{ type: HostBinding, args: ['attr.aria-label',] },],
"_ariaDescribedBy": [{ type: HostBinding, args: ['attr.aria-describedby',] },],
"_role": [{ type: HostBinding, args: ['attr.role',] },],
"_tabindex": [{ type: HostBinding, args: ['attr.tabindex',] },],
"_portalHost": [{ type: ViewChild, args: [PortalHostDirective,] },],
_ariaLabel: [{ type: HostBinding, args: ['attr.aria-label',] }],
_ariaDescribedBy: [{ type: HostBinding, args: ['attr.aria-describedby',] }],
_role: [{ type: HostBinding, args: ['attr.role',] }],
_tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],
_portalHost: [{ type: ViewChild, args: [PortalHostDirective,] }]
};

@@ -399,8 +404,8 @@ return CdkDialogContainer;

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Unique id for the created dialog.
*/
var /** @type {?} */ uniqueId = 0;
@type {?} */
var uniqueId = 0;
/**

@@ -429,3 +434,3 @@ * Reference to a dialog opened via the Dialog service.

}
this.beforeClose().subscribe(function () {
this.beforeClosed().subscribe(function () {
_this._overlayRef.detachBackdrop();

@@ -488,3 +493,4 @@ });

function (position) {
var /** @type {?} */ strategy = this._getPositionStrategy();
/** @type {?} */
var strategy = this._getPositionStrategy();
if (position && (position.left || position.right)) {

@@ -560,3 +566,3 @@ position.left ? strategy.left(position.left) : strategy.right(position.right);

*/
DialogRef.prototype.beforeOpen = /**
DialogRef.prototype.beforeOpened = /**
* Gets an observable that emits when dialog begins opening.

@@ -573,3 +579,3 @@ * @return {?}

*/
DialogRef.prototype.afterOpen = /**
DialogRef.prototype.afterOpened = /**
* Gets an observable that emits when dialog is finished opening.

@@ -586,3 +592,3 @@ * @return {?}

*/
DialogRef.prototype.beforeClose = /**
DialogRef.prototype.beforeClosed = /**
* Gets an observable that emits when dialog begins closing.

@@ -613,24 +619,24 @@ * @return {?}

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
/** *
* Injection token for the Dialog's ScrollStrategy.
*/
var /** @type {?} */ DIALOG_SCROLL_STRATEGY = new InjectionToken('DialogScrollStrategy');
/**
@type {?} */
var DIALOG_SCROLL_STRATEGY = new InjectionToken('DialogScrollStrategy');
/** *
* Injection token for the Dialog's Data.
*/
var /** @type {?} */ DIALOG_DATA = new InjectionToken('DialogData');
/**
@type {?} */
var DIALOG_DATA = new InjectionToken('DialogData');
/** *
* Injection token for the DialogRef constructor.
*/
var /** @type {?} */ DIALOG_REF = new InjectionToken('DialogRef');
/**
@type {?} */
var DIALOG_REF = new InjectionToken('DialogRef');
/** *
* Injection token for the DialogConfig.
*/
var /** @type {?} */ DIALOG_CONFIG = new InjectionToken('DialogConfig');
/**
@type {?} */
var DIALOG_CONFIG = new InjectionToken('DialogConfig');
/** *
* Injection token for the Dialog's DialogContainer component.
*/
var /** @type {?} */ DIALOG_CONTAINER = new InjectionToken('DialogContainer');
@type {?} */
var DIALOG_CONTAINER = new InjectionToken('DialogContainer');
/**

@@ -644,6 +650,6 @@ * \@docs-private

}
/**
/** *
* \@docs-private
*/
var /** @type {?} */ MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {
@type {?} */
var MAT_DIALOG_SCROLL_STRATEGY_PROVIDER = {
provide: DIALOG_SCROLL_STRATEGY,

@@ -656,3 +662,3 @@ deps: [Overlay],

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -671,7 +677,5 @@ /**

this._afterAllClosedBase = new Subject();
this.afterAllClosed = defer(function () {
return _this.openDialogs.length ?
_this._afterAllClosed : _this._afterAllClosed.pipe(startWith(undefined));
});
this._afterOpen = new Subject();
this.afterAllClosed = defer(function () { return _this.openDialogs.length ?
_this._afterAllClosed : _this._afterAllClosed.pipe(startWith(undefined)); });
this._afterOpened = new Subject();
this._openDialogs = [];

@@ -697,3 +701,3 @@ // Close all of the dialogs when the user goes forwards/backwards in history or when the

});
Object.defineProperty(Dialog.prototype, "afterOpen", {
Object.defineProperty(Dialog.prototype, "afterOpened", {
/** Stream that emits when a dialog is opened. */

@@ -705,3 +709,3 @@ get: /**

function () {
return this._parentDialog ? this._parentDialog.afterOpen : this._afterOpen;
return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;
},

@@ -769,5 +773,8 @@ enumerable: true,

}
var /** @type {?} */ overlayRef = this._createOverlay(config);
var /** @type {?} */ dialogContainer = this._attachDialogContainer(overlayRef, config);
var /** @type {?} */ dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef, config);
/** @type {?} */
var overlayRef = this._createOverlay(config);
/** @type {?} */
var dialogContainer = this._attachDialogContainer(overlayRef, config);
/** @type {?} */
var dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef, config);
this.registerDialogRef(dialogRef);

@@ -796,5 +803,8 @@ return dialogRef;

}
var /** @type {?} */ overlayRef = this._createOverlay(config);
var /** @type {?} */ dialogContainer = this._attachDialogContainer(overlayRef, config);
var /** @type {?} */ dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef, config);
/** @type {?} */
var overlayRef = this._createOverlay(config);
/** @type {?} */
var dialogContainer = this._attachDialogContainer(overlayRef, config);
/** @type {?} */
var dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef, config);
this.registerDialogRef(dialogRef);

@@ -816,10 +826,13 @@ return dialogRef;

this.openDialogs.push(dialogRef);
var /** @type {?} */ dialogOpenSub = dialogRef.afterOpen().subscribe(function () {
_this.afterOpen.next(dialogRef);
/** @type {?} */
var dialogOpenSub = dialogRef.afterOpened().subscribe(function () {
_this.afterOpened.next(dialogRef);
dialogOpenSub.unsubscribe();
});
var /** @type {?} */ dialogCloseSub = dialogRef.afterClosed().subscribe(function () {
var /** @type {?} */ dialogIdx = _this._openDialogs.indexOf(dialogRef);
if (dialogIdx !== -1) {
_this._openDialogs.splice(dialogIdx, 1);
/** @type {?} */
var dialogCloseSub = dialogRef.afterClosed().subscribe(function () {
/** @type {?} */
var dialogIndex = _this._openDialogs.indexOf(dialogRef);
if (dialogIndex > -1) {
_this._openDialogs.splice(dialogIndex, 1);
}

@@ -848,3 +861,4 @@ if (!_this._openDialogs.length) {

function (config) {
var /** @type {?} */ overlayConfig = new OverlayConfig({
/** @type {?} */
var overlayConfig = new OverlayConfig({
positionStrategy: this.overlay.position().global(),

@@ -884,9 +898,14 @@ scrollStrategy: this._scrollStrategy(),

function (overlay, config) {
var /** @type {?} */ container = config.containerComponent || this.injector.get(DIALOG_CONTAINER);
var /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
var /** @type {?} */ injector = new PortalInjector(userInjector || this.injector, new WeakMap([
/** @type {?} */
var container = config.containerComponent || this.injector.get(DIALOG_CONTAINER);
/** @type {?} */
var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
/** @type {?} */
var injector = new PortalInjector(userInjector || this.injector, new WeakMap([
[DialogConfig, config]
]));
var /** @type {?} */ containerPortal = new ComponentPortal(container, config.viewContainerRef, injector);
var /** @type {?} */ containerRef = overlay.attach(containerPortal);
/** @type {?} */
var containerPortal = new ComponentPortal(container, config.viewContainerRef, injector);
/** @type {?} */
var containerRef = overlay.attach(containerPortal);
containerRef.instance._config = config;

@@ -925,7 +944,8 @@ return containerRef.instance;

function (componentOrTemplateRef, dialogContainer, overlayRef, config) {
// Create a reference to the dialog we're creating in order to give the user a handle
// to modify and close it.
var /** @type {?} */ dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
var /** @type {?} */ injector = this._createInjector(config, dialogRef, dialogContainer);
var /** @type {?} */ contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, undefined, injector));
/** @type {?} */
var dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
/** @type {?} */
var injector = this._createInjector(config, dialogRef, dialogContainer);
/** @type {?} */
var contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, undefined, injector));
dialogRef.componentInstance = contentRef.instance;

@@ -966,5 +986,4 @@ dialogRef.updateSize({ width: config.width, height: config.height })

function (componentOrTemplateRef, dialogContainer, overlayRef, config) {
// Create a reference to the dialog we're creating in order to give the user a handle
// to modify and close it.
var /** @type {?} */ dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
/** @type {?} */
var dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, /** @type {?} */ ((null)), /** @type {?} */ ({ $implicit: config.data, dialogRef: dialogRef })));

@@ -994,4 +1013,6 @@ dialogRef.updateSize({ width: config.width, height: config.height })

function (config, dialogRef, dialogContainer) {
var /** @type {?} */ userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
var /** @type {?} */ injectionTokens = new WeakMap([
/** @type {?} */
var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
/** @type {?} */
var injectionTokens = new WeakMap([
[this.injector.get(DIALOG_REF), dialogRef],

@@ -1023,3 +1044,4 @@ [this.injector.get(DIALOG_CONTAINER), dialogContainer],

function (config) {
var /** @type {?} */ dialogConfig = /** @type {?} */ (this.injector.get(DIALOG_CONFIG));
/** @type {?} */
var dialogConfig = /** @type {?} */ (this.injector.get(DIALOG_CONFIG));
return __assign({}, new dialogConfig(), config);

@@ -1032,8 +1054,8 @@ };

Dialog.ctorParameters = function () { return [
{ type: Overlay, },
{ type: Injector, },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_REF,] },] },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_SCROLL_STRATEGY,] },] },
{ type: Dialog, decorators: [{ type: Optional }, { type: SkipSelf },] },
{ type: Location, decorators: [{ type: Optional },] },
{ type: Overlay },
{ type: Injector },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_REF,] }] },
{ type: undefined, decorators: [{ type: Inject, args: [DIALOG_SCROLL_STRATEGY,] }] },
{ type: Dialog, decorators: [{ type: Optional }, { type: SkipSelf }] },
{ type: Location, decorators: [{ type: Optional }] }
]; };

@@ -1045,3 +1067,3 @@ return Dialog;

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -1081,3 +1103,3 @@ var ɵ0 = DialogRef, ɵ1 = CdkDialogContainer, ɵ2 = DialogConfig;

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/

@@ -1087,6 +1109,6 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
export { throwDialogContentAlreadyAttachedError, CdkDialogContainer, DialogConfig, DialogRef, Dialog, DialogModule, DIALOG_SCROLL_STRATEGY, DIALOG_DATA, DIALOG_REF, DIALOG_CONFIG, DIALOG_CONTAINER, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER };
export { throwDialogContentAlreadyAttachedError, CdkDialogContainer, DialogConfig, DialogRef, Dialog, DialogModule, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DIALOG_SCROLL_STRATEGY, DIALOG_DATA, DIALOG_REF, DIALOG_CONFIG, DIALOG_CONTAINER, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER };
//# sourceMappingURL=dialog.es5.js.map
{
"name": "@angular/cdk-experimental",
"version": "6.4.7",
"version": "7.0.0-beta.0",
"description": "Experimental components for Angular CDK",

@@ -19,4 +19,4 @@ "main": "./bundles/cdk-experimental.umd.js",

"peerDependencies": {
"@angular/cdk": "6.4.7",
"@angular/core": ">=6.0.0-beta.0 <7.0.0"
"@angular/cdk": "7.0.0-beta.0",
"@angular/core": ">=7.0.0-beta.4"
},

@@ -26,5 +26,5 @@ "dependencies": {

},
"releaseGitCommitSha": "f7dd0ebb7334799ca488c457a31d11111957b16e",
"releaseGitBranch": "6.4.x",
"releaseGitCommitSha": "2433b8206783203a25293a4d14a711555fa42ee0",
"releaseGitBranch": "master",
"releaseGitUser": "Jeremy Elbourn <jelbourn@google.com>"
}

@@ -0,5 +1,11 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { ListRange } from '@angular/cdk/collections';
import { CdkVirtualScrollViewport, VirtualScrollStrategy } from '@angular/cdk/scrolling';
import { OnChanges } from '@angular/core';
import { VirtualScrollStrategy } from './virtual-scroll-strategy';
import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
/**

@@ -38,3 +44,3 @@ * A class that tracks the size of items that have been seen and uses it to estimate the average

/** The number of buffer items to render beyond the edge of the viewport (in pixels). */
private _addBufferPx;
private _maxBufferPx;
/** The estimator used to estimate the size of unseen items. */

@@ -57,3 +63,3 @@ private _averager;

* If the amount of buffer dips below this number, more items will be rendered.
* @param addBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* @param maxBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* If the actual amount turns out to be less it will not necessarily trigger an additional

@@ -63,3 +69,3 @@ * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).

*/
constructor(minBufferPx: number, addBufferPx: number, averager?: ItemSizeAverager);
constructor(minBufferPx: number, maxBufferPx: number, averager?: ItemSizeAverager);
/**

@@ -85,8 +91,8 @@ * Attaches this scroll strategy to a viewport.

* @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).
* @param addBufferPx The number of buffer items to render beyond the edge of the viewport (in
* @param maxBufferPx The number of buffer items to render beyond the edge of the viewport (in
* pixels).
*/
updateBufferSize(minBufferPx: number, addBufferPx: number): void;
updateBufferSize(minBufferPx: number, maxBufferPx: number): void;
/** Update the rendered content after the user scrolls. */
private _updateRenderedContentAfterScroll();
private _updateRenderedContentAfterScroll;
/**

@@ -96,12 +102,10 @@ * Checks the size of the currently rendered content and uses it to update the estimated item size

*/
private _checkRenderedContentSize();
private _checkRenderedContentSize;
/** Checks the currently rendered content offset and saves the value for later use. */
private _checkRenderedContentOffset();
private _checkRenderedContentOffset;
/**
* Sets the scroll offset and renders the content we estimate should be shown at that point.
* @param scrollOffset The offset to jump to. If not specified the scroll offset will not be
* changed, but the rendered content will be recalculated based on our estimate of what should
* be shown at the current scroll offset.
* Recalculates the rendered content based on our estimate of what should be shown at the current
* scroll offset.
*/
private _setScrollOffset(scrollOffset?);
private _renderContentForCurrentOffset;
/**

@@ -115,3 +119,3 @@ * Gets the visible range of data for the given start index. If the start index is too close to

*/
private _getVisibleRangeForIndex(startIndex);
private _getVisibleRangeForIndex;
/**

@@ -125,5 +129,5 @@ * Expand the given range by the given amount in either direction.

*/
private _expandRange(range, expandStart, expandEnd);
private _expandRange;
/** Update the viewport's total content size. */
private _updateTotalContentSize(renderedContentSize);
private _updateTotalContentSize;
}

@@ -151,4 +155,4 @@ /**

*/
addBufferPx: number;
_addBufferPx: number;
maxBufferPx: number;
_maxBufferPx: number;
/** The scroll strategy used by this directive. */

@@ -155,0 +159,0 @@ _scrollStrategy: AutoSizeVirtualScrollStrategy;

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"ItemSizeAverager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null]}],"getAverageItemSize":[{"__symbolic":"method"}],"addSample":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"AutoSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},null]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"updateBufferSize":[{"__symbolic":"method"}],"_updateRenderedContentAfterScroll":[{"__symbolic":"method"}],"_checkRenderedContentSize":[{"__symbolic":"method"}],"_checkRenderedContentOffset":[{"__symbolic":"method"}],"_setScrollOffset":[{"__symbolic":"method"}],"_getVisibleRangeForIndex":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}]}},"_autoSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["autoSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"autoSizeDir"},"member":"_scrollStrategy"}},"CdkAutoSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":430,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[autosize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_autoSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}]}],"members":{"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":443,"character":3}}]}],"addBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":454,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"FixedSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"}]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"updateItemAndBufferSize":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}],"_updateRenderedRange":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}]}},"_fixedSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["fixedSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"fixedSizeDir"},"member":"_scrollStrategy"}},"CdkFixedSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":158,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[itemSize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_fixedSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"}]}]}]}],"members":{"itemSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":168,"character":3}}]}],"bufferSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":177,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}],"declarations":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}]}],"members":{}},"CdkVirtualForOfContext":{"__symbolic":"interface"},"CdkVirtualForOf":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":66,"character":1},"arguments":[{"selector":"[cdkVirtualFor][cdkVirtualForOf]"}]}],"members":{"cdkVirtualForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"cdkVirtualForTrackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":3}}]}],"cdkVirtualForTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"cdkVirtualForTemplateCacheSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":168,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":162,"character":33},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":164,"character":37,"context":{"typeName":"CdkVirtualForOfContext"},"module":"./virtual-for-of"}]},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":166,"character":24},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}],"measureRangeSize":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_onRenderedDataChange":[{"__symbolic":"method"}],"_changeDataSource":[{"__symbolic":"method"}],"_updateContext":[{"__symbolic":"method"}],"_applyChanges":[{"__symbolic":"method"}],"_cacheView":[{"__symbolic":"method"}],"_getViewForNewItem":[{"__symbolic":"method"}],"_updateComputedContextProperties":[{"__symbolic":"method"}]}},"VIRTUAL_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":37,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-virtual-scroll-viewport","host":{"class":"cdk-virtual-scroll-viewport","[class.cdk-virtual-scroll-orientation-horizontal]":"orientation === \"horizontal\"","[class.cdk-virtual-scroll-orientation-vertical]":"orientation === \"vertical\"","$quoted$":["class","[class.cdk-virtual-scroll-orientation-horizontal]","[class.cdk-virtual-scroll-orientation-vertical]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":47,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":48,"character":19},"member":"OnPush"},"template":"<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\"><ng-content></ng-content></div><div class=\"cdk-virtual-scroll-spacer\" [style.height.px]=\"orientation === 'horizontal' ? 1 : _totalContentSize\" [style.width.px]=\"orientation === 'horizontal' ? _totalContentSize : 1\"></div>","styles":["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;will-change:contents,transform}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{bottom:0}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{right:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:0}.cdk-virtual-scroll-spacer{will-change:height,width}"]}]}],"members":{"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"scrolledIndexChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":74,"character":3},"arguments":["contentWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":126,"character":15},"arguments":[{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":124,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":125,"character":31},{"__symbolic":"reference","name":"VirtualScrollStrategy"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"getDataLength":[{"__symbolic":"method"}],"getViewportSize":[{"__symbolic":"method"}],"getRenderedRange":[{"__symbolic":"method"}],"setTotalContentSize":[{"__symbolic":"method"}],"setRenderedRange":[{"__symbolic":"method"}],"getOffsetToRenderedContentStart":[{"__symbolic":"method"}],"setRenderedContentOffset":[{"__symbolic":"method"}],"scrollToOffset":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"setScrollOffset":[{"__symbolic":"method"}],"measureScrollOffset":[{"__symbolic":"method"}],"measureRenderedContentSize":[{"__symbolic":"method"}],"measureRangeSize":[{"__symbolic":"method"}],"checkViewportSize":[{"__symbolic":"method"}],"_measureViewportSize":[{"__symbolic":"method"}],"_markChangeDetectionNeeded":[{"__symbolic":"method"}],"_doChangeDetection":[{"__symbolic":"method"}]}}},"origins":{"ItemSizeAverager":"./auto-size-virtual-scroll","AutoSizeVirtualScrollStrategy":"./auto-size-virtual-scroll","_autoSizeVirtualScrollStrategyFactory":"./auto-size-virtual-scroll","CdkAutoSizeVirtualScroll":"./auto-size-virtual-scroll","FixedSizeVirtualScrollStrategy":"./fixed-size-virtual-scroll","_fixedSizeVirtualScrollStrategyFactory":"./fixed-size-virtual-scroll","CdkFixedSizeVirtualScroll":"./fixed-size-virtual-scroll","ScrollingModule":"./scrolling-module","CdkVirtualForOfContext":"./virtual-for-of","CdkVirtualForOf":"./virtual-for-of","VIRTUAL_SCROLL_STRATEGY":"./virtual-scroll-strategy","VirtualScrollStrategy":"./virtual-scroll-strategy","CdkVirtualScrollViewport":"./virtual-scroll-viewport"},"importAs":"@angular/cdk-experimental/scrolling"}
{"__symbolic":"module","version":4,"metadata":{"ItemSizeAverager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null]}],"getAverageItemSize":[{"__symbolic":"method"}],"addSample":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"AutoSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},null]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"updateBufferSize":[{"__symbolic":"method"}],"_updateRenderedContentAfterScroll":[{"__symbolic":"method"}],"_checkRenderedContentSize":[{"__symbolic":"method"}],"_checkRenderedContentOffset":[{"__symbolic":"method"}],"_renderContentForCurrentOffset":[{"__symbolic":"method"}],"_getVisibleRangeForIndex":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}]}},"_autoSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["autoSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"autoSizeDir"},"member":"_scrollStrategy"}},"CdkAutoSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":430,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[autosize]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/scrolling","name":"VIRTUAL_SCROLL_STRATEGY","line":433,"character":13},"useFactory":{"__symbolic":"reference","name":"_autoSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}]}],"members":{"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":443,"character":3}}]}],"maxBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":454,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}],"declarations":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}],"members":{}}},"origins":{"ItemSizeAverager":"./auto-size-virtual-scroll","AutoSizeVirtualScrollStrategy":"./auto-size-virtual-scroll","_autoSizeVirtualScrollStrategyFactory":"./auto-size-virtual-scroll","CdkAutoSizeVirtualScroll":"./auto-size-virtual-scroll","ScrollingModule":"./scrolling-module"},"importAs":"@angular/cdk-experimental/scrolling"}

@@ -9,6 +9,2 @@ /**

export * from './auto-size-virtual-scroll';
export * from './fixed-size-virtual-scroll';
export * from './scrolling-module';
export * from './virtual-for-of';
export * from './virtual-scroll-strategy';
export * from './virtual-scroll-viewport';

@@ -0,2 +1,9 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export declare class ScrollingModule {
}

@@ -47,4 +47,4 @@ /**

constructor(_elementRef: ElementRef<HTMLElement>, _focusTrapFactory: FocusTrapFactory, _changeDetectorRef: ChangeDetectorRef, _document: any,
/** The dialog configuration. */
_config: DialogConfig);
/** The dialog configuration. */
_config: DialogConfig);
/** Destroy focus trap to place focus back to the element focused before the dialog opened. */

@@ -69,3 +69,3 @@ ngOnDestroy(): void;

/** Saves a reference to the element that was focused before the dialog was opened. */
private _savePreviouslyFocusedElement();
private _savePreviouslyFocusedElement;
/**

@@ -75,5 +75,5 @@ * Autofocus the first tabbable element inside of the dialog, if there is not a tabbable element,

*/
private _autoFocusFirstTabbableElement();
private _autoFocusFirstTabbableElement;
/** Returns the focus to the element focused before the dialog was open. */
private _returnFocusAfterDialog();
private _returnFocusAfterDialog;
}

@@ -0,2 +1,9 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export declare class DialogModule {
}

@@ -48,11 +48,11 @@ /**

/** Fetches the position strategy object from the overlay ref. */
private _getPositionStrategy();
private _getPositionStrategy;
/** Gets an observable that emits when dialog begins opening. */
beforeOpen(): Observable<void>;
beforeOpened(): Observable<void>;
/** Gets an observable that emits when dialog is finished opening. */
afterOpen(): Observable<void>;
afterOpened(): Observable<void>;
/** Gets an observable that emits when dialog begins closing. */
beforeClose(): Observable<R | undefined>;
beforeClosed(): Observable<R | undefined>;
/** Gets an observable that emits when dialog is finished closing. */
afterClosed(): Observable<R | undefined>;
}

@@ -29,4 +29,4 @@ /**

/** Stream that emits when a dialog is opened. */
readonly afterOpen: Subject<DialogRef<any>>;
_afterOpen: Subject<DialogRef<any>>;
readonly afterOpened: Subject<DialogRef<any>>;
_afterOpened: Subject<DialogRef<any>>;
/** Stream that emits when a dialog is opened. */

@@ -47,3 +47,3 @@ readonly openDialogs: DialogRef<any>[];

*/
private registerDialogRef(dialogRef);
private registerDialogRef;
/**

@@ -90,3 +90,3 @@ * Creates an overlay config from a dialog config.

*/
private _createInjector<T>(config, dialogRef, dialogContainer);
private _createInjector;
/**

@@ -96,3 +96,3 @@ * Expands the provided configuration object to include the default values for properties which

*/
private _applyConfigDefaults(config?);
private _applyConfigDefaults;
}

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"throwDialogContentAlreadyAttachedError":{"__symbolic":"function"},"CdkDialogContainer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/portal","name":"BasePortalOutlet","line":66,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":44,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-dialog-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":49,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":19},"member":"Default"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":54,"character":4},"arguments":["dialog",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":55,"character":6},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":55,"character":21},"arguments":[{"opacity":1}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":56,"character":6},"arguments":["exit, void",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":56,"character":26},"arguments":[{"opacity":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":57,"character":6},"arguments":["* => *",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":27},"arguments":[225]}]}]]}],"host":{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)","$quoted$":["[@dialog]","(@dialog.start)","(@dialog.done)"]},"template":"<ng-template cdkPortalOutlet></ng-template>","styles":["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"]}]}],"members":{"_ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":80,"character":3},"arguments":["attr.aria-label"]}]}],"_ariaDescribedBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":82,"character":3},"arguments":["attr.aria-describedby"]}]}],"_role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":85,"character":3},"arguments":["attr.role"]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":87,"character":3},"arguments":["attr.tabindex"]}]}],"_portalHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":91,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalHostDirective","line":91,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":109,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":109,"character":24}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":106,"character":36,"context":{"typeName":"HTMLElement"},"module":"./dialog-container"}]},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusTrapFactory","line":107,"character":31},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":108,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"DialogConfig"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"attachComponentPortal":[{"__symbolic":"method"}],"attachTemplatePortal":[{"__symbolic":"method"}],"_onAnimationStart":[{"__symbolic":"method"}],"_onAnimationDone":[{"__symbolic":"method"}],"_startExiting":[{"__symbolic":"method"}],"_savePreviouslyFocusedElement":[{"__symbolic":"method"}],"_autoFocusFirstTabbableElement":[{"__symbolic":"method"}],"_returnFocusAfterDialog":[{"__symbolic":"method"}]}},"DialogRole":{"__symbolic":"interface"},"DialogPosition":{"__symbolic":"interface"},"DialogConfig":{"__symbolic":"class","arity":1,"members":{}},"DialogRef":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayRef","line":33,"character":24},{"__symbolic":"reference","name":"CdkDialogContainer"},{"__symbolic":"reference","name":"string"}]}],"backdropClick":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"updatePosition":[{"__symbolic":"method"}],"keydownEvents":[{"__symbolic":"method"}],"updateSize":[{"__symbolic":"method"}],"_getPositionStrategy":[{"__symbolic":"method"}],"beforeOpen":[{"__symbolic":"method"}],"afterOpen":[{"__symbolic":"method"}],"beforeClose":[{"__symbolic":"method"}],"afterClosed":[{"__symbolic":"method"}]}},"Dialog":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":69,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_REF"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":70,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":71,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":71,"character":19}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":72,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":67,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":68,"character":24},null,null,{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":72,"character":28}]}],"getById":[{"__symbolic":"method"}],"closeAll":[{"__symbolic":"method"}],"openFromComponent":[{"__symbolic":"method"}],"openFromTemplate":[{"__symbolic":"method"}],"registerDialogRef":[{"__symbolic":"method"}],"_createOverlay":[{"__symbolic":"method"}],"_attachDialogContainer":[{"__symbolic":"method"}],"_attachDialogContentForComponent":[{"__symbolic":"method"}],"_attachDialogContentForTemplate":[{"__symbolic":"method"}],"_createInjector":[{"__symbolic":"method"}],"_applyConfigDefaults":[{"__symbolic":"method"}]}},"DialogModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":30,"character":4}],"exports":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"declarations":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"providers":[{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER"},{"provide":{"__symbolic":"reference","name":"DIALOG_REF"},"useValue":{"__symbolic":"reference","name":"DialogRef"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONTAINER"},"useValue":{"__symbolic":"reference","name":"CdkDialogContainer"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONFIG"},"useValue":{"__symbolic":"reference","name":"DialogConfig"}}],"entryComponents":[{"__symbolic":"reference","name":"CdkDialogContainer"}]}]}],"members":{}},"DIALOG_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":8},"arguments":["DialogScrollStrategy"]},"DIALOG_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":19,"character":31},"arguments":["DialogData"]},"DIALOG_REF":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":22,"character":30},"arguments":["DialogRef"]},"DIALOG_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":25,"character":33},"arguments":["DialogConfig"]},"DIALOG_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":29,"character":8},"arguments":["DialogContainer"]},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["overlay"],"value":{"__symbolic":"error","message":"Lambda not supported","line":34,"character":9,"module":"./dialog-injectors"}},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":{"provide":{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"},"deps":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":9}],"useFactory":{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY"}}},"origins":{"throwDialogContentAlreadyAttachedError":"./dialog-container","CdkDialogContainer":"./dialog-container","DialogRole":"./dialog-config","DialogPosition":"./dialog-config","DialogConfig":"./dialog-config","DialogRef":"./dialog-ref","Dialog":"./dialog","DialogModule":"./dialog-module","DIALOG_SCROLL_STRATEGY":"./dialog-injectors","DIALOG_DATA":"./dialog-injectors","DIALOG_REF":"./dialog-injectors","DIALOG_CONFIG":"./dialog-injectors","DIALOG_CONTAINER":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":"./dialog-injectors"},"importAs":"@angular/cdk-experimental/dialog"}
{"__symbolic":"module","version":4,"metadata":{"throwDialogContentAlreadyAttachedError":{"__symbolic":"function"},"CdkDialogContainer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/portal","name":"BasePortalOutlet","line":66,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":44,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-dialog-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":49,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":19},"member":"Default"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":54,"character":4},"arguments":["dialog",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":55,"character":6},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":55,"character":21},"arguments":[{"opacity":1}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":56,"character":6},"arguments":["exit, void",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":56,"character":26},"arguments":[{"opacity":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":57,"character":6},"arguments":["* => *",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":27},"arguments":[225]}]}]]}],"host":{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)","$quoted$":["[@dialog]","(@dialog.start)","(@dialog.done)"]},"template":"<ng-template cdkPortalOutlet></ng-template>","styles":["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"]}]}],"members":{"_ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":80,"character":3},"arguments":["attr.aria-label"]}]}],"_ariaDescribedBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":82,"character":3},"arguments":["attr.aria-describedby"]}]}],"_role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":85,"character":3},"arguments":["attr.role"]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":87,"character":3},"arguments":["attr.tabindex"]}]}],"_portalHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":91,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalHostDirective","line":91,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":109,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":109,"character":24}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":106,"character":36,"context":{"typeName":"HTMLElement"},"module":"./dialog-container"}]},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusTrapFactory","line":107,"character":31},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":108,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"DialogConfig"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"attachComponentPortal":[{"__symbolic":"method"}],"attachTemplatePortal":[{"__symbolic":"method"}],"_onAnimationStart":[{"__symbolic":"method"}],"_onAnimationDone":[{"__symbolic":"method"}],"_startExiting":[{"__symbolic":"method"}],"_savePreviouslyFocusedElement":[{"__symbolic":"method"}],"_autoFocusFirstTabbableElement":[{"__symbolic":"method"}],"_returnFocusAfterDialog":[{"__symbolic":"method"}]}},"DialogRole":{"__symbolic":"interface"},"DialogPosition":{"__symbolic":"interface"},"DialogConfig":{"__symbolic":"class","arity":1,"members":{}},"DialogRef":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayRef","line":33,"character":24},{"__symbolic":"reference","name":"CdkDialogContainer"},{"__symbolic":"reference","name":"string"}]}],"backdropClick":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"updatePosition":[{"__symbolic":"method"}],"keydownEvents":[{"__symbolic":"method"}],"updateSize":[{"__symbolic":"method"}],"_getPositionStrategy":[{"__symbolic":"method"}],"beforeOpened":[{"__symbolic":"method"}],"afterOpened":[{"__symbolic":"method"}],"beforeClosed":[{"__symbolic":"method"}],"afterClosed":[{"__symbolic":"method"}]}},"Dialog":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":69,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_REF"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":70,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":71,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":71,"character":19}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":72,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":67,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":68,"character":24},null,null,{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":72,"character":28}]}],"getById":[{"__symbolic":"method"}],"closeAll":[{"__symbolic":"method"}],"openFromComponent":[{"__symbolic":"method"}],"openFromTemplate":[{"__symbolic":"method"}],"registerDialogRef":[{"__symbolic":"method"}],"_createOverlay":[{"__symbolic":"method"}],"_attachDialogContainer":[{"__symbolic":"method"}],"_attachDialogContentForComponent":[{"__symbolic":"method"}],"_attachDialogContentForTemplate":[{"__symbolic":"method"}],"_createInjector":[{"__symbolic":"method"}],"_applyConfigDefaults":[{"__symbolic":"method"}]}},"DialogModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":30,"character":4}],"exports":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"declarations":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"providers":[{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER"},{"provide":{"__symbolic":"reference","name":"DIALOG_REF"},"useValue":{"__symbolic":"reference","name":"DialogRef"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONTAINER"},"useValue":{"__symbolic":"reference","name":"CdkDialogContainer"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONFIG"},"useValue":{"__symbolic":"reference","name":"DialogConfig"}}],"entryComponents":[{"__symbolic":"reference","name":"CdkDialogContainer"}]}]}],"members":{}},"DIALOG_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":8},"arguments":["DialogScrollStrategy"]},"DIALOG_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":19,"character":31},"arguments":["DialogData"]},"DIALOG_REF":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":22,"character":30},"arguments":["DialogRef"]},"DIALOG_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":25,"character":33},"arguments":["DialogConfig"]},"DIALOG_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":29,"character":8},"arguments":["DialogContainer"]},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["overlay"],"value":{"__symbolic":"error","message":"Lambda not supported","line":34,"character":9,"module":"./dialog-injectors"}},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":{"provide":{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"},"deps":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":9}],"useFactory":{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY"}}},"origins":{"throwDialogContentAlreadyAttachedError":"./dialog-container","CdkDialogContainer":"./dialog-container","DialogRole":"./dialog-config","DialogPosition":"./dialog-config","DialogConfig":"./dialog-config","DialogRef":"./dialog-ref","Dialog":"./dialog","DialogModule":"./dialog-module","DIALOG_SCROLL_STRATEGY":"./dialog-injectors","DIALOG_DATA":"./dialog-injectors","DIALOG_REF":"./dialog-injectors","DIALOG_CONFIG":"./dialog-injectors","DIALOG_CONTAINER":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":"./dialog-injectors"},"importAs":"@angular/cdk-experimental/dialog"}

@@ -47,4 +47,4 @@ /**

constructor(_elementRef: ElementRef<HTMLElement>, _focusTrapFactory: FocusTrapFactory, _changeDetectorRef: ChangeDetectorRef, _document: any,
/** The dialog configuration. */
_config: DialogConfig);
/** The dialog configuration. */
_config: DialogConfig);
/** Destroy focus trap to place focus back to the element focused before the dialog opened. */

@@ -69,3 +69,3 @@ ngOnDestroy(): void;

/** Saves a reference to the element that was focused before the dialog was opened. */
private _savePreviouslyFocusedElement();
private _savePreviouslyFocusedElement;
/**

@@ -75,5 +75,5 @@ * Autofocus the first tabbable element inside of the dialog, if there is not a tabbable element,

*/
private _autoFocusFirstTabbableElement();
private _autoFocusFirstTabbableElement;
/** Returns the focus to the element focused before the dialog was open. */
private _returnFocusAfterDialog();
private _returnFocusAfterDialog;
}

@@ -0,2 +1,9 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export declare class DialogModule {
}

@@ -48,11 +48,11 @@ /**

/** Fetches the position strategy object from the overlay ref. */
private _getPositionStrategy();
private _getPositionStrategy;
/** Gets an observable that emits when dialog begins opening. */
beforeOpen(): Observable<void>;
beforeOpened(): Observable<void>;
/** Gets an observable that emits when dialog is finished opening. */
afterOpen(): Observable<void>;
afterOpened(): Observable<void>;
/** Gets an observable that emits when dialog begins closing. */
beforeClose(): Observable<R | undefined>;
beforeClosed(): Observable<R | undefined>;
/** Gets an observable that emits when dialog is finished closing. */
afterClosed(): Observable<R | undefined>;
}

@@ -29,4 +29,4 @@ /**

/** Stream that emits when a dialog is opened. */
readonly afterOpen: Subject<DialogRef<any>>;
_afterOpen: Subject<DialogRef<any>>;
readonly afterOpened: Subject<DialogRef<any>>;
_afterOpened: Subject<DialogRef<any>>;
/** Stream that emits when a dialog is opened. */

@@ -47,3 +47,3 @@ readonly openDialogs: DialogRef<any>[];

*/
private registerDialogRef(dialogRef);
private registerDialogRef;
/**

@@ -90,3 +90,3 @@ * Creates an overlay config from a dialog config.

*/
private _createInjector<T>(config, dialogRef, dialogContainer);
private _createInjector;
/**

@@ -96,3 +96,3 @@ * Expands the provided configuration object to include the default values for properties which

*/
private _applyConfigDefaults(config?);
private _applyConfigDefaults;
}

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"throwDialogContentAlreadyAttachedError":{"__symbolic":"function"},"CdkDialogContainer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/portal","name":"BasePortalOutlet","line":66,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":44,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-dialog-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":49,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":19},"member":"Default"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":54,"character":4},"arguments":["dialog",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":55,"character":6},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":55,"character":21},"arguments":[{"opacity":1}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":56,"character":6},"arguments":["exit, void",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":56,"character":26},"arguments":[{"opacity":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":57,"character":6},"arguments":["* => *",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":27},"arguments":[225]}]}]]}],"host":{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)","$quoted$":["[@dialog]","(@dialog.start)","(@dialog.done)"]},"template":"<ng-template cdkPortalOutlet></ng-template>","styles":["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"]}]}],"members":{"_ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":80,"character":3},"arguments":["attr.aria-label"]}]}],"_ariaDescribedBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":82,"character":3},"arguments":["attr.aria-describedby"]}]}],"_role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":85,"character":3},"arguments":["attr.role"]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":87,"character":3},"arguments":["attr.tabindex"]}]}],"_portalHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":91,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalHostDirective","line":91,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":109,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":109,"character":24}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":106,"character":36,"context":{"typeName":"HTMLElement"},"module":"./dialog-container"}]},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusTrapFactory","line":107,"character":31},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":108,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"DialogConfig"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"attachComponentPortal":[{"__symbolic":"method"}],"attachTemplatePortal":[{"__symbolic":"method"}],"_onAnimationStart":[{"__symbolic":"method"}],"_onAnimationDone":[{"__symbolic":"method"}],"_startExiting":[{"__symbolic":"method"}],"_savePreviouslyFocusedElement":[{"__symbolic":"method"}],"_autoFocusFirstTabbableElement":[{"__symbolic":"method"}],"_returnFocusAfterDialog":[{"__symbolic":"method"}]}},"DialogRole":{"__symbolic":"interface"},"DialogPosition":{"__symbolic":"interface"},"DialogConfig":{"__symbolic":"class","arity":1,"members":{}},"DialogRef":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayRef","line":33,"character":24},{"__symbolic":"reference","name":"CdkDialogContainer"},{"__symbolic":"reference","name":"string"}]}],"backdropClick":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"updatePosition":[{"__symbolic":"method"}],"keydownEvents":[{"__symbolic":"method"}],"updateSize":[{"__symbolic":"method"}],"_getPositionStrategy":[{"__symbolic":"method"}],"beforeOpen":[{"__symbolic":"method"}],"afterOpen":[{"__symbolic":"method"}],"beforeClose":[{"__symbolic":"method"}],"afterClosed":[{"__symbolic":"method"}]}},"Dialog":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":69,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_REF"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":70,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":71,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":71,"character":19}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":72,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":67,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":68,"character":24},null,null,{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":72,"character":28}]}],"getById":[{"__symbolic":"method"}],"closeAll":[{"__symbolic":"method"}],"openFromComponent":[{"__symbolic":"method"}],"openFromTemplate":[{"__symbolic":"method"}],"registerDialogRef":[{"__symbolic":"method"}],"_createOverlay":[{"__symbolic":"method"}],"_attachDialogContainer":[{"__symbolic":"method"}],"_attachDialogContentForComponent":[{"__symbolic":"method"}],"_attachDialogContentForTemplate":[{"__symbolic":"method"}],"_createInjector":[{"__symbolic":"method"}],"_applyConfigDefaults":[{"__symbolic":"method"}]}},"DialogModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":30,"character":4}],"exports":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"declarations":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"providers":[{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER"},{"provide":{"__symbolic":"reference","name":"DIALOG_REF"},"useValue":{"__symbolic":"reference","name":"DialogRef"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONTAINER"},"useValue":{"__symbolic":"reference","name":"CdkDialogContainer"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONFIG"},"useValue":{"__symbolic":"reference","name":"DialogConfig"}}],"entryComponents":[{"__symbolic":"reference","name":"CdkDialogContainer"}]}]}],"members":{}},"DIALOG_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":8},"arguments":["DialogScrollStrategy"]},"DIALOG_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":19,"character":31},"arguments":["DialogData"]},"DIALOG_REF":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":22,"character":30},"arguments":["DialogRef"]},"DIALOG_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":25,"character":33},"arguments":["DialogConfig"]},"DIALOG_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":29,"character":8},"arguments":["DialogContainer"]},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["overlay"],"value":{"__symbolic":"error","message":"Lambda not supported","line":34,"character":9,"module":"./dialog-injectors"}},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":{"provide":{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"},"deps":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":9}],"useFactory":{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY"}}},"origins":{"throwDialogContentAlreadyAttachedError":"./dialog-container","CdkDialogContainer":"./dialog-container","DialogRole":"./dialog-config","DialogPosition":"./dialog-config","DialogConfig":"./dialog-config","DialogRef":"./dialog-ref","Dialog":"./dialog","DialogModule":"./dialog-module","DIALOG_SCROLL_STRATEGY":"./dialog-injectors","DIALOG_DATA":"./dialog-injectors","DIALOG_REF":"./dialog-injectors","DIALOG_CONFIG":"./dialog-injectors","DIALOG_CONTAINER":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":"./dialog-injectors"},"importAs":"@angular/cdk-experimental/dialog"}
{"__symbolic":"module","version":4,"metadata":{"throwDialogContentAlreadyAttachedError":{"__symbolic":"function"},"CdkDialogContainer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/portal","name":"BasePortalOutlet","line":66,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":44,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-dialog-container","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":49,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":52,"character":19},"member":"Default"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":54,"character":4},"arguments":["dialog",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":55,"character":6},"arguments":["enter",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":55,"character":21},"arguments":[{"opacity":1}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":56,"character":6},"arguments":["exit, void",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":56,"character":26},"arguments":[{"opacity":0}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":57,"character":6},"arguments":["* => *",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":57,"character":27},"arguments":[225]}]}]]}],"host":{"[@dialog]":"_state","(@dialog.start)":"_onAnimationStart($event)","(@dialog.done)":"_onAnimationDone($event)","$quoted$":["[@dialog]","(@dialog.start)","(@dialog.done)"]},"template":"<ng-template cdkPortalOutlet></ng-template>","styles":["cdk-dialog-container{background:#fff;border-radius:5px;display:block;padding:10px}"]}]}],"members":{"_ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":80,"character":3},"arguments":["attr.aria-label"]}]}],"_ariaDescribedBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":82,"character":3},"arguments":["attr.aria-describedby"]}]}],"_role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":85,"character":3},"arguments":["attr.role"]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":87,"character":3},"arguments":["attr.tabindex"]}]}],"_portalHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":91,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalHostDirective","line":91,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":109,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":109,"character":24}]}],null],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":106,"character":36,"context":{"typeName":"HTMLElement"},"module":"./dialog-container"}]},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusTrapFactory","line":107,"character":31},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":108,"character":32},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"DialogConfig"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"attachComponentPortal":[{"__symbolic":"method"}],"attachTemplatePortal":[{"__symbolic":"method"}],"_onAnimationStart":[{"__symbolic":"method"}],"_onAnimationDone":[{"__symbolic":"method"}],"_startExiting":[{"__symbolic":"method"}],"_savePreviouslyFocusedElement":[{"__symbolic":"method"}],"_autoFocusFirstTabbableElement":[{"__symbolic":"method"}],"_returnFocusAfterDialog":[{"__symbolic":"method"}]}},"DialogRole":{"__symbolic":"interface"},"DialogPosition":{"__symbolic":"interface"},"DialogConfig":{"__symbolic":"class","arity":1,"members":{}},"DialogRef":{"__symbolic":"class","arity":2,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayRef","line":33,"character":24},{"__symbolic":"reference","name":"CdkDialogContainer"},{"__symbolic":"reference","name":"string"}]}],"backdropClick":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"updatePosition":[{"__symbolic":"method"}],"keydownEvents":[{"__symbolic":"method"}],"updateSize":[{"__symbolic":"method"}],"_getPositionStrategy":[{"__symbolic":"method"}],"beforeOpened":[{"__symbolic":"method"}],"afterOpened":[{"__symbolic":"method"}],"beforeClosed":[{"__symbolic":"method"}],"afterClosed":[{"__symbolic":"method"}]}},"Dialog":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":69,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_REF"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":70,"character":7},"arguments":[{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":71,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":71,"character":19}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":72,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":67,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":68,"character":24},null,null,{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":72,"character":28}]}],"getById":[{"__symbolic":"method"}],"closeAll":[{"__symbolic":"method"}],"openFromComponent":[{"__symbolic":"method"}],"openFromTemplate":[{"__symbolic":"method"}],"registerDialogRef":[{"__symbolic":"method"}],"_createOverlay":[{"__symbolic":"method"}],"_attachDialogContainer":[{"__symbolic":"method"}],"_attachDialogContentForComponent":[{"__symbolic":"method"}],"_attachDialogContentForTemplate":[{"__symbolic":"method"}],"_createInjector":[{"__symbolic":"method"}],"_applyConfigDefaults":[{"__symbolic":"method"}]}},"DialogModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/cdk/portal","name":"PortalModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":30,"character":4}],"exports":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"declarations":[{"__symbolic":"reference","name":"CdkDialogContainer"}],"providers":[{"__symbolic":"reference","name":"Dialog"},{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER"},{"provide":{"__symbolic":"reference","name":"DIALOG_REF"},"useValue":{"__symbolic":"reference","name":"DialogRef"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONTAINER"},"useValue":{"__symbolic":"reference","name":"CdkDialogContainer"}},{"provide":{"__symbolic":"reference","name":"DIALOG_CONFIG"},"useValue":{"__symbolic":"reference","name":"DialogConfig"}}],"entryComponents":[{"__symbolic":"reference","name":"CdkDialogContainer"}]}]}],"members":{}},"DIALOG_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":8},"arguments":["DialogScrollStrategy"]},"DIALOG_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":19,"character":31},"arguments":["DialogData"]},"DIALOG_REF":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":22,"character":30},"arguments":["DialogRef"]},"DIALOG_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":25,"character":33},"arguments":["DialogConfig"]},"DIALOG_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":29,"character":8},"arguments":["DialogContainer"]},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["overlay"],"value":{"__symbolic":"error","message":"Lambda not supported","line":34,"character":9,"module":"./dialog-injectors"}},"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":{"provide":{"__symbolic":"reference","name":"DIALOG_SCROLL_STRATEGY"},"deps":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":40,"character":9}],"useFactory":{"__symbolic":"reference","name":"MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY"}}},"origins":{"throwDialogContentAlreadyAttachedError":"./dialog-container","CdkDialogContainer":"./dialog-container","DialogRole":"./dialog-config","DialogPosition":"./dialog-config","DialogConfig":"./dialog-config","DialogRef":"./dialog-ref","Dialog":"./dialog","DialogModule":"./dialog-module","DIALOG_SCROLL_STRATEGY":"./dialog-injectors","DIALOG_DATA":"./dialog-injectors","DIALOG_REF":"./dialog-injectors","DIALOG_CONFIG":"./dialog-injectors","DIALOG_CONTAINER":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY":"./dialog-injectors","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER":"./dialog-injectors"},"importAs":"@angular/cdk-experimental/dialog"}

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["6.4.7"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk-experimental"}
{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["7.0.0-beta.0"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk-experimental"}

@@ -0,5 +1,11 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { ListRange } from '@angular/cdk/collections';
import { CdkVirtualScrollViewport, VirtualScrollStrategy } from '@angular/cdk/scrolling';
import { OnChanges } from '@angular/core';
import { VirtualScrollStrategy } from './virtual-scroll-strategy';
import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
/**

@@ -38,3 +44,3 @@ * A class that tracks the size of items that have been seen and uses it to estimate the average

/** The number of buffer items to render beyond the edge of the viewport (in pixels). */
private _addBufferPx;
private _maxBufferPx;
/** The estimator used to estimate the size of unseen items. */

@@ -57,3 +63,3 @@ private _averager;

* If the amount of buffer dips below this number, more items will be rendered.
* @param addBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* @param maxBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* If the actual amount turns out to be less it will not necessarily trigger an additional

@@ -63,3 +69,3 @@ * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).

*/
constructor(minBufferPx: number, addBufferPx: number, averager?: ItemSizeAverager);
constructor(minBufferPx: number, maxBufferPx: number, averager?: ItemSizeAverager);
/**

@@ -85,8 +91,8 @@ * Attaches this scroll strategy to a viewport.

* @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).
* @param addBufferPx The number of buffer items to render beyond the edge of the viewport (in
* @param maxBufferPx The number of buffer items to render beyond the edge of the viewport (in
* pixels).
*/
updateBufferSize(minBufferPx: number, addBufferPx: number): void;
updateBufferSize(minBufferPx: number, maxBufferPx: number): void;
/** Update the rendered content after the user scrolls. */
private _updateRenderedContentAfterScroll();
private _updateRenderedContentAfterScroll;
/**

@@ -96,12 +102,10 @@ * Checks the size of the currently rendered content and uses it to update the estimated item size

*/
private _checkRenderedContentSize();
private _checkRenderedContentSize;
/** Checks the currently rendered content offset and saves the value for later use. */
private _checkRenderedContentOffset();
private _checkRenderedContentOffset;
/**
* Sets the scroll offset and renders the content we estimate should be shown at that point.
* @param scrollOffset The offset to jump to. If not specified the scroll offset will not be
* changed, but the rendered content will be recalculated based on our estimate of what should
* be shown at the current scroll offset.
* Recalculates the rendered content based on our estimate of what should be shown at the current
* scroll offset.
*/
private _setScrollOffset(scrollOffset?);
private _renderContentForCurrentOffset;
/**

@@ -115,3 +119,3 @@ * Gets the visible range of data for the given start index. If the start index is too close to

*/
private _getVisibleRangeForIndex(startIndex);
private _getVisibleRangeForIndex;
/**

@@ -125,5 +129,5 @@ * Expand the given range by the given amount in either direction.

*/
private _expandRange(range, expandStart, expandEnd);
private _expandRange;
/** Update the viewport's total content size. */
private _updateTotalContentSize(renderedContentSize);
private _updateTotalContentSize;
}

@@ -151,4 +155,4 @@ /**

*/
addBufferPx: number;
_addBufferPx: number;
maxBufferPx: number;
_maxBufferPx: number;
/** The scroll strategy used by this directive. */

@@ -155,0 +159,0 @@ _scrollStrategy: AutoSizeVirtualScrollStrategy;

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"ItemSizeAverager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null]}],"getAverageItemSize":[{"__symbolic":"method"}],"addSample":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"AutoSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},null]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"updateBufferSize":[{"__symbolic":"method"}],"_updateRenderedContentAfterScroll":[{"__symbolic":"method"}],"_checkRenderedContentSize":[{"__symbolic":"method"}],"_checkRenderedContentOffset":[{"__symbolic":"method"}],"_setScrollOffset":[{"__symbolic":"method"}],"_getVisibleRangeForIndex":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}]}},"_autoSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["autoSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"autoSizeDir"},"member":"_scrollStrategy"}},"CdkAutoSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":430,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[autosize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_autoSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}]}],"members":{"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":443,"character":3}}]}],"addBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":454,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"FixedSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"}]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"updateItemAndBufferSize":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}],"_updateRenderedRange":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}]}},"_fixedSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["fixedSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"fixedSizeDir"},"member":"_scrollStrategy"}},"CdkFixedSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":158,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[itemSize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_fixedSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"}]}]}]}],"members":{"itemSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":168,"character":3}}]}],"bufferSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":177,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}],"declarations":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}]}],"members":{}},"CdkVirtualForOfContext":{"__symbolic":"interface"},"CdkVirtualForOf":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":66,"character":1},"arguments":[{"selector":"[cdkVirtualFor][cdkVirtualForOf]"}]}],"members":{"cdkVirtualForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"cdkVirtualForTrackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":3}}]}],"cdkVirtualForTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"cdkVirtualForTemplateCacheSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":168,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":162,"character":33},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":164,"character":37,"context":{"typeName":"CdkVirtualForOfContext"},"module":"./virtual-for-of"}]},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":166,"character":24},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}],"measureRangeSize":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_onRenderedDataChange":[{"__symbolic":"method"}],"_changeDataSource":[{"__symbolic":"method"}],"_updateContext":[{"__symbolic":"method"}],"_applyChanges":[{"__symbolic":"method"}],"_cacheView":[{"__symbolic":"method"}],"_getViewForNewItem":[{"__symbolic":"method"}],"_updateComputedContextProperties":[{"__symbolic":"method"}]}},"VIRTUAL_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":37,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-virtual-scroll-viewport","host":{"class":"cdk-virtual-scroll-viewport","[class.cdk-virtual-scroll-orientation-horizontal]":"orientation === \"horizontal\"","[class.cdk-virtual-scroll-orientation-vertical]":"orientation === \"vertical\"","$quoted$":["class","[class.cdk-virtual-scroll-orientation-horizontal]","[class.cdk-virtual-scroll-orientation-vertical]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":47,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":48,"character":19},"member":"OnPush"},"template":"<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\"><ng-content></ng-content></div><div class=\"cdk-virtual-scroll-spacer\" [style.height.px]=\"orientation === 'horizontal' ? 1 : _totalContentSize\" [style.width.px]=\"orientation === 'horizontal' ? _totalContentSize : 1\"></div>","styles":["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;will-change:contents,transform}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{bottom:0}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{right:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:0}.cdk-virtual-scroll-spacer{will-change:height,width}"]}]}],"members":{"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"scrolledIndexChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":74,"character":3},"arguments":["contentWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":126,"character":15},"arguments":[{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":124,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":125,"character":31},{"__symbolic":"reference","name":"VirtualScrollStrategy"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"getDataLength":[{"__symbolic":"method"}],"getViewportSize":[{"__symbolic":"method"}],"getRenderedRange":[{"__symbolic":"method"}],"setTotalContentSize":[{"__symbolic":"method"}],"setRenderedRange":[{"__symbolic":"method"}],"getOffsetToRenderedContentStart":[{"__symbolic":"method"}],"setRenderedContentOffset":[{"__symbolic":"method"}],"scrollToOffset":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"setScrollOffset":[{"__symbolic":"method"}],"measureScrollOffset":[{"__symbolic":"method"}],"measureRenderedContentSize":[{"__symbolic":"method"}],"measureRangeSize":[{"__symbolic":"method"}],"checkViewportSize":[{"__symbolic":"method"}],"_measureViewportSize":[{"__symbolic":"method"}],"_markChangeDetectionNeeded":[{"__symbolic":"method"}],"_doChangeDetection":[{"__symbolic":"method"}]}}},"origins":{"ItemSizeAverager":"./auto-size-virtual-scroll","AutoSizeVirtualScrollStrategy":"./auto-size-virtual-scroll","_autoSizeVirtualScrollStrategyFactory":"./auto-size-virtual-scroll","CdkAutoSizeVirtualScroll":"./auto-size-virtual-scroll","FixedSizeVirtualScrollStrategy":"./fixed-size-virtual-scroll","_fixedSizeVirtualScrollStrategyFactory":"./fixed-size-virtual-scroll","CdkFixedSizeVirtualScroll":"./fixed-size-virtual-scroll","ScrollingModule":"./scrolling-module","CdkVirtualForOfContext":"./virtual-for-of","CdkVirtualForOf":"./virtual-for-of","VIRTUAL_SCROLL_STRATEGY":"./virtual-scroll-strategy","VirtualScrollStrategy":"./virtual-scroll-strategy","CdkVirtualScrollViewport":"./virtual-scroll-viewport"},"importAs":"@angular/cdk-experimental/scrolling"}
{"__symbolic":"module","version":4,"metadata":{"ItemSizeAverager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null]}],"getAverageItemSize":[{"__symbolic":"method"}],"addSample":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"AutoSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},null]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"updateBufferSize":[{"__symbolic":"method"}],"_updateRenderedContentAfterScroll":[{"__symbolic":"method"}],"_checkRenderedContentSize":[{"__symbolic":"method"}],"_checkRenderedContentOffset":[{"__symbolic":"method"}],"_renderContentForCurrentOffset":[{"__symbolic":"method"}],"_getVisibleRangeForIndex":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}]}},"_autoSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["autoSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"autoSizeDir"},"member":"_scrollStrategy"}},"CdkAutoSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":430,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[autosize]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/scrolling","name":"VIRTUAL_SCROLL_STRATEGY","line":433,"character":13},"useFactory":{"__symbolic":"reference","name":"_autoSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}]}],"members":{"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":443,"character":3}}]}],"maxBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":454,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}],"declarations":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}],"members":{}}},"origins":{"ItemSizeAverager":"./auto-size-virtual-scroll","AutoSizeVirtualScrollStrategy":"./auto-size-virtual-scroll","_autoSizeVirtualScrollStrategyFactory":"./auto-size-virtual-scroll","CdkAutoSizeVirtualScroll":"./auto-size-virtual-scroll","ScrollingModule":"./scrolling-module"},"importAs":"@angular/cdk-experimental/scrolling"}

@@ -9,6 +9,2 @@ /**

export * from './auto-size-virtual-scroll';
export * from './fixed-size-virtual-scroll';
export * from './scrolling-module';
export * from './virtual-for-of';
export * from './virtual-scroll-strategy';
export * from './virtual-scroll-viewport';

@@ -0,2 +1,9 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export declare class ScrollingModule {
}

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["6.4.7"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk-experimental"}
{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["7.0.0-beta.0"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk-experimental"}

@@ -0,5 +1,11 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { ListRange } from '@angular/cdk/collections';
import { CdkVirtualScrollViewport, VirtualScrollStrategy } from '@angular/cdk/scrolling';
import { OnChanges } from '@angular/core';
import { VirtualScrollStrategy } from './virtual-scroll-strategy';
import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
/**

@@ -38,3 +44,3 @@ * A class that tracks the size of items that have been seen and uses it to estimate the average

/** The number of buffer items to render beyond the edge of the viewport (in pixels). */
private _addBufferPx;
private _maxBufferPx;
/** The estimator used to estimate the size of unseen items. */

@@ -57,3 +63,3 @@ private _averager;

* If the amount of buffer dips below this number, more items will be rendered.
* @param addBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* @param maxBufferPx The number of pixels worth of buffer to shoot for when rendering new items.
* If the actual amount turns out to be less it will not necessarily trigger an additional

@@ -63,3 +69,3 @@ * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).

*/
constructor(minBufferPx: number, addBufferPx: number, averager?: ItemSizeAverager);
constructor(minBufferPx: number, maxBufferPx: number, averager?: ItemSizeAverager);
/**

@@ -85,8 +91,8 @@ * Attaches this scroll strategy to a viewport.

* @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).
* @param addBufferPx The number of buffer items to render beyond the edge of the viewport (in
* @param maxBufferPx The number of buffer items to render beyond the edge of the viewport (in
* pixels).
*/
updateBufferSize(minBufferPx: number, addBufferPx: number): void;
updateBufferSize(minBufferPx: number, maxBufferPx: number): void;
/** Update the rendered content after the user scrolls. */
private _updateRenderedContentAfterScroll();
private _updateRenderedContentAfterScroll;
/**

@@ -96,12 +102,10 @@ * Checks the size of the currently rendered content and uses it to update the estimated item size

*/
private _checkRenderedContentSize();
private _checkRenderedContentSize;
/** Checks the currently rendered content offset and saves the value for later use. */
private _checkRenderedContentOffset();
private _checkRenderedContentOffset;
/**
* Sets the scroll offset and renders the content we estimate should be shown at that point.
* @param scrollOffset The offset to jump to. If not specified the scroll offset will not be
* changed, but the rendered content will be recalculated based on our estimate of what should
* be shown at the current scroll offset.
* Recalculates the rendered content based on our estimate of what should be shown at the current
* scroll offset.
*/
private _setScrollOffset(scrollOffset?);
private _renderContentForCurrentOffset;
/**

@@ -115,3 +119,3 @@ * Gets the visible range of data for the given start index. If the start index is too close to

*/
private _getVisibleRangeForIndex(startIndex);
private _getVisibleRangeForIndex;
/**

@@ -125,5 +129,5 @@ * Expand the given range by the given amount in either direction.

*/
private _expandRange(range, expandStart, expandEnd);
private _expandRange;
/** Update the viewport's total content size. */
private _updateTotalContentSize(renderedContentSize);
private _updateTotalContentSize;
}

@@ -151,4 +155,4 @@ /**

*/
addBufferPx: number;
_addBufferPx: number;
maxBufferPx: number;
_maxBufferPx: number;
/** The scroll strategy used by this directive. */

@@ -155,0 +159,0 @@ _scrollStrategy: AutoSizeVirtualScrollStrategy;

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"ItemSizeAverager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null]}],"getAverageItemSize":[{"__symbolic":"method"}],"addSample":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"AutoSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},null]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"updateBufferSize":[{"__symbolic":"method"}],"_updateRenderedContentAfterScroll":[{"__symbolic":"method"}],"_checkRenderedContentSize":[{"__symbolic":"method"}],"_checkRenderedContentOffset":[{"__symbolic":"method"}],"_setScrollOffset":[{"__symbolic":"method"}],"_getVisibleRangeForIndex":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}]}},"_autoSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["autoSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"autoSizeDir"},"member":"_scrollStrategy"}},"CdkAutoSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":430,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[autosize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_autoSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}]}],"members":{"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":443,"character":3}}]}],"addBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":454,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"FixedSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"}]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"updateItemAndBufferSize":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}],"_updateRenderedRange":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}]}},"_fixedSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["fixedSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"fixedSizeDir"},"member":"_scrollStrategy"}},"CdkFixedSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":158,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[itemSize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_fixedSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"}]}]}]}],"members":{"itemSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":168,"character":3}}]}],"bufferSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":177,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}],"declarations":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}]}],"members":{}},"CdkVirtualForOfContext":{"__symbolic":"interface"},"CdkVirtualForOf":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":66,"character":1},"arguments":[{"selector":"[cdkVirtualFor][cdkVirtualForOf]"}]}],"members":{"cdkVirtualForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":3}}]}],"cdkVirtualForTrackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":3}}]}],"cdkVirtualForTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"cdkVirtualForTemplateCacheSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":168,"character":7}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":162,"character":33},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":164,"character":37,"context":{"typeName":"CdkVirtualForOfContext"},"module":"./virtual-for-of"}]},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":166,"character":24},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}],"measureRangeSize":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_onRenderedDataChange":[{"__symbolic":"method"}],"_changeDataSource":[{"__symbolic":"method"}],"_updateContext":[{"__symbolic":"method"}],"_applyChanges":[{"__symbolic":"method"}],"_cacheView":[{"__symbolic":"method"}],"_getViewForNewItem":[{"__symbolic":"method"}],"_updateComputedContextProperties":[{"__symbolic":"method"}]}},"VIRTUAL_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":37,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-virtual-scroll-viewport","host":{"class":"cdk-virtual-scroll-viewport","[class.cdk-virtual-scroll-orientation-horizontal]":"orientation === \"horizontal\"","[class.cdk-virtual-scroll-orientation-vertical]":"orientation === \"vertical\"","$quoted$":["class","[class.cdk-virtual-scroll-orientation-horizontal]","[class.cdk-virtual-scroll-orientation-vertical]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":47,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":48,"character":19},"member":"OnPush"},"template":"<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\"><ng-content></ng-content></div><div class=\"cdk-virtual-scroll-spacer\" [style.height.px]=\"orientation === 'horizontal' ? 1 : _totalContentSize\" [style.width.px]=\"orientation === 'horizontal' ? _totalContentSize : 1\"></div>","styles":["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;will-change:contents,transform}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{bottom:0}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{right:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:0}.cdk-virtual-scroll-spacer{will-change:height,width}"]}]}],"members":{"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"scrolledIndexChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":74,"character":3},"arguments":["contentWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":126,"character":15},"arguments":[{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":124,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":125,"character":31},{"__symbolic":"reference","name":"VirtualScrollStrategy"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"getDataLength":[{"__symbolic":"method"}],"getViewportSize":[{"__symbolic":"method"}],"getRenderedRange":[{"__symbolic":"method"}],"setTotalContentSize":[{"__symbolic":"method"}],"setRenderedRange":[{"__symbolic":"method"}],"getOffsetToRenderedContentStart":[{"__symbolic":"method"}],"setRenderedContentOffset":[{"__symbolic":"method"}],"scrollToOffset":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"setScrollOffset":[{"__symbolic":"method"}],"measureScrollOffset":[{"__symbolic":"method"}],"measureRenderedContentSize":[{"__symbolic":"method"}],"measureRangeSize":[{"__symbolic":"method"}],"checkViewportSize":[{"__symbolic":"method"}],"_measureViewportSize":[{"__symbolic":"method"}],"_markChangeDetectionNeeded":[{"__symbolic":"method"}],"_doChangeDetection":[{"__symbolic":"method"}]}}},"origins":{"ItemSizeAverager":"./auto-size-virtual-scroll","AutoSizeVirtualScrollStrategy":"./auto-size-virtual-scroll","_autoSizeVirtualScrollStrategyFactory":"./auto-size-virtual-scroll","CdkAutoSizeVirtualScroll":"./auto-size-virtual-scroll","FixedSizeVirtualScrollStrategy":"./fixed-size-virtual-scroll","_fixedSizeVirtualScrollStrategyFactory":"./fixed-size-virtual-scroll","CdkFixedSizeVirtualScroll":"./fixed-size-virtual-scroll","ScrollingModule":"./scrolling-module","CdkVirtualForOfContext":"./virtual-for-of","CdkVirtualForOf":"./virtual-for-of","VIRTUAL_SCROLL_STRATEGY":"./virtual-scroll-strategy","VirtualScrollStrategy":"./virtual-scroll-strategy","CdkVirtualScrollViewport":"./virtual-scroll-viewport"},"importAs":"@angular/cdk-experimental/scrolling"}
{"__symbolic":"module","version":4,"metadata":{"ItemSizeAverager":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null]}],"getAverageItemSize":[{"__symbolic":"method"}],"addSample":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"AutoSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},null]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"updateBufferSize":[{"__symbolic":"method"}],"_updateRenderedContentAfterScroll":[{"__symbolic":"method"}],"_checkRenderedContentSize":[{"__symbolic":"method"}],"_checkRenderedContentOffset":[{"__symbolic":"method"}],"_renderContentForCurrentOffset":[{"__symbolic":"method"}],"_getVisibleRangeForIndex":[{"__symbolic":"method"}],"_expandRange":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}]}},"_autoSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["autoSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"autoSizeDir"},"member":"_scrollStrategy"}},"CdkAutoSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":430,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[autosize]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/scrolling","name":"VIRTUAL_SCROLL_STRATEGY","line":433,"character":13},"useFactory":{"__symbolic":"reference","name":"_autoSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}]}],"members":{"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":443,"character":3}}]}],"maxBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":454,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}],"declarations":[{"__symbolic":"reference","name":"CdkAutoSizeVirtualScroll"}]}]}],"members":{}}},"origins":{"ItemSizeAverager":"./auto-size-virtual-scroll","AutoSizeVirtualScrollStrategy":"./auto-size-virtual-scroll","_autoSizeVirtualScrollStrategyFactory":"./auto-size-virtual-scroll","CdkAutoSizeVirtualScroll":"./auto-size-virtual-scroll","ScrollingModule":"./scrolling-module"},"importAs":"@angular/cdk-experimental/scrolling"}

@@ -9,6 +9,2 @@ /**

export * from './auto-size-virtual-scroll';
export * from './fixed-size-virtual-scroll';
export * from './scrolling-module';
export * from './virtual-for-of';
export * from './virtual-scroll-strategy';
export * from './virtual-scroll-viewport';

@@ -0,2 +1,9 @@

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export declare class ScrollingModule {
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc