Socket
Socket
Sign inDemoInstall

@angular/cdk-experimental

Package Overview
Dependencies
Maintainers
1
Versions
489
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular/cdk-experimental - npm Package Compare versions

Comparing version 6.4.1 to 6.4.2

drag-drop/typings/drag-drop-registry.d.ts

421

bundles/cdk-experimental-drag-drop.umd.js

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

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@angular/cdk/bidi'), require('@angular/cdk/platform'), require('@angular/cdk/overlay')) :
typeof define === 'function' && define.amd ? define('@angular/cdk-experimental/dragDrop', ['exports', '@angular/core', '@angular/platform-browser', '@angular/cdk/bidi', '@angular/cdk/platform', '@angular/cdk/overlay'], factory) :
(factory((global.ng = global.ng || {}, global.ng['cdk-experimental'] = global.ng['cdk-experimental'] || {}, global.ng['cdk-experimental'].dragDrop = {}),global.ng.core,global.ng.platformBrowser,global.ng.cdk.bidi,global.ng.cdk.platform,global.ng.cdk.overlay));
}(this, (function (exports,core,platformBrowser,bidi,platform,overlay) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/cdk/platform'), require('rxjs'), require('@angular/cdk/bidi'), require('@angular/cdk/overlay'), require('rxjs/operators')) :
typeof define === 'function' && define.amd ? define('@angular/cdk-experimental/dragDrop', ['exports', '@angular/core', '@angular/common', '@angular/cdk/platform', 'rxjs', '@angular/cdk/bidi', '@angular/cdk/overlay', 'rxjs/operators'], factory) :
(factory((global.ng = global.ng || {}, global.ng['cdk-experimental'] = global.ng['cdk-experimental'] || {}, global.ng['cdk-experimental'].dragDrop = {}),global.ng.core,global.ng.common,global.ng.cdk.platform,global.rxjs,global.ng.cdk.bidi,global.ng.cdk.overlay,global.rxjs.operators));
}(this, (function (exports,core,common,platform,rxjs,bidi,overlay,operators) { 'use strict';

@@ -116,7 +116,235 @@ /**

/**
* Service that keeps track of all the `CdkDrag` and `CdkDrop` instances, and
* manages global event listeners on the `document`.
* \@docs-private
*/
var CdkDragDropRegistry = /** @class */ (function () {
function CdkDragDropRegistry(_ngZone, _document) {
var _this = this;
this._ngZone = _ngZone;
/**
* Registered `CdkDrop` instances.
*/
this._dropInstances = new Set();
/**
* Registered `CdkDrag` instances.
*/
this._dragInstances = new Set();
/**
* `CdkDrag` instances that are currently being dragged.
*/
this._activeDragInstances = new Set();
/**
* Keeps track of the event listeners that we've bound to the `document`.
*/
this._globalListeners = new Map();
/**
* Emits the `touchmove` or `mousemove` events that are dispatched
* while the user is dragging a `CdkDrag` instance.
*/
this.pointerMove = new rxjs.Subject();
/**
* Emits the `touchend` or `mouseup` events that are dispatched
* while the user is dragging a `CdkDrag` instance.
*/
this.pointerUp = new rxjs.Subject();
/**
* Listener used to prevent `touchmove` events while the element is being dragged.
* This gets bound once, ahead of time, because WebKit won't preventDefault on a
* dynamically-added `touchmove` listener. See https://bugs.webkit.org/show_bug.cgi?id=184250.
*/
this._preventScrollListener = function (event) {
if (_this._activeDragInstances.size) {
event.preventDefault();
}
};
this._document = _document;
}
/**
* @param {?} instance
* @return {?}
*/
CdkDragDropRegistry.prototype.register = /**
* @param {?} instance
* @return {?}
*/
function (instance) {
var _this = this;
if (instance instanceof CdkDrop) {
if (!this._dropInstances.has(instance)) {
if (this.getDropContainer(instance.id)) {
throw Error("Drop instance with id \"" + instance.id + "\" has already been registered.");
}
this._dropInstances.add(instance);
}
}
else {
this._dragInstances.add(instance);
if (this._dragInstances.size === 1) {
this._ngZone.runOutsideAngular(function () {
// The event handler has to be explicitly active, because
// newer browsers make it passive by default.
// The event handler has to be explicitly active, because
// newer browsers make it passive by default.
_this._document.addEventListener('touchmove', _this._preventScrollListener, activeEventOptions);
});
}
}
};
/**
* @param {?} instance
* @return {?}
*/
CdkDragDropRegistry.prototype.remove = /**
* @param {?} instance
* @return {?}
*/
function (instance) {
if (instance instanceof CdkDrop) {
this._dropInstances.delete(instance);
}
else {
this._dragInstances.delete(instance);
this.stopDragging(instance);
if (this._dragInstances.size === 0) {
this._document.removeEventListener('touchmove', this._preventScrollListener, /** @type {?} */ (activeEventOptions));
}
}
};
/**
* Starts the dragging sequence for a drag instance.
* @param drag Drag instance which is being dragged.
* @param event Event that initiated the dragging.
*/
/**
* Starts the dragging sequence for a drag instance.
* @param {?} drag Drag instance which is being dragged.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
CdkDragDropRegistry.prototype.startDragging = /**
* Starts the dragging sequence for a drag instance.
* @param {?} drag Drag instance which is being dragged.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
function (drag, event) {
var _this = this;
this._activeDragInstances.add(drag);
if (this._activeDragInstances.size === 1) {
var /** @type {?} */ isTouchEvent = event.type.startsWith('touch');
var /** @type {?} */ moveEvent = isTouchEvent ? 'touchmove' : 'mousemove';
var /** @type {?} */ upEvent = isTouchEvent ? 'touchend' : 'mouseup';
// We explicitly bind __active__ listeners here, because newer browsers will default to
// passive ones for `mousemove` and `touchmove`. The events need to be active, because we
// use `preventDefault` to prevent the page from scrolling while the user is dragging.
this._globalListeners
.set(moveEvent, { handler: function (e) { return _this.pointerMove.next(e); }, options: activeEventOptions })
.set(upEvent, { handler: function (e) { return _this.pointerUp.next(e); } })
.forEach(function (config, name) {
_this._ngZone.runOutsideAngular(function () {
_this._document.addEventListener(name, config.handler, config.options);
});
});
}
};
/** Stops dragging a `CdkDrag` instance. */
/**
* Stops dragging a `CdkDrag` instance.
* @param {?} drag
* @return {?}
*/
CdkDragDropRegistry.prototype.stopDragging = /**
* Stops dragging a `CdkDrag` instance.
* @param {?} drag
* @return {?}
*/
function (drag) {
this._activeDragInstances.delete(drag);
if (this._activeDragInstances.size === 0) {
this._clearGlobalListeners();
}
};
/** Gets whether a `CdkDrag` instance is currently being dragged. */
/**
* Gets whether a `CdkDrag` instance is currently being dragged.
* @param {?} drag
* @return {?}
*/
CdkDragDropRegistry.prototype.isDragging = /**
* Gets whether a `CdkDrag` instance is currently being dragged.
* @param {?} drag
* @return {?}
*/
function (drag) {
return this._activeDragInstances.has(drag);
};
/** Gets a `CdkDrop` instance by its id. */
/**
* Gets a `CdkDrop` instance by its id.
* @template T
* @param {?} id
* @return {?}
*/
CdkDragDropRegistry.prototype.getDropContainer = /**
* Gets a `CdkDrop` instance by its id.
* @template T
* @param {?} id
* @return {?}
*/
function (id) {
return Array.from(this._dropInstances).find(function (instance) { return instance.id === id; });
};
/**
* @return {?}
*/
CdkDragDropRegistry.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
var _this = this;
this._dragInstances.forEach(function (instance) { return _this.remove(instance); });
this._dropInstances.forEach(function (instance) { return _this.remove(instance); });
this._clearGlobalListeners();
this.pointerMove.complete();
this.pointerUp.complete();
};
/**
* Clears out the global event listeners from the `document`.
* @return {?}
*/
CdkDragDropRegistry.prototype._clearGlobalListeners = /**
* Clears out the global event listeners from the `document`.
* @return {?}
*/
function () {
var _this = this;
this._globalListeners.forEach(function (config, name) {
_this._document.removeEventListener(name, config.handler, config.options);
});
this._globalListeners.clear();
};
CdkDragDropRegistry.decorators = [
{ type: core.Injectable, args: [{ providedIn: 'root' },] },
];
/** @nocollapse */
CdkDragDropRegistry.ctorParameters = function () { return [
{ type: core.NgZone, },
{ type: undefined, decorators: [{ type: core.Inject, args: [common.DOCUMENT,] },] },
]; };
/** @nocollapse */ CdkDragDropRegistry.ngInjectableDef = core.defineInjectable({ factory: function CdkDragDropRegistry_Factory() { return new CdkDragDropRegistry(core.inject(core.NgZone), core.inject(common.DOCUMENT)); }, token: CdkDragDropRegistry, providedIn: "root" });
return CdkDragDropRegistry;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Element that can be moved inside a CdkDrop container.
* @template T
*/
var CdkDrag = /** @class */ (function () {
function CdkDrag(element, /** Droppable container that the draggable is a part of. */
dropContainer, document, _ngZone, _viewContainerRef, _viewportRuler, _dir) {
dropContainer, document, _ngZone, _viewContainerRef, _viewportRuler, _dragDropRegistry, _dir) {
var _this = this;

@@ -128,3 +356,5 @@ this.element = element;

this._viewportRuler = _viewportRuler;
this._dragDropRegistry = _dragDropRegistry;
this._dir = _dir;
this._destroyed = new rxjs.Subject();
/**

@@ -142,6 +372,2 @@ * CSS `transform` applied to the element when it isn't being dragged. We need a

/**
* Whether the element is being dragged.
*/
this._isDragging = false;
/**
* Whether the element has moved since the user started dragging it.

@@ -174,6 +400,13 @@ */

this._pointerDown = function (referenceElement, event) {
if (_this._isDragging) {
if (_this._dragDropRegistry.isDragging(_this)) {
return;
}
_this._isDragging = true;
var /** @type {?} */ endedOrDestroyed = rxjs.merge(_this.ended, _this._destroyed);
_this._dragDropRegistry.pointerMove
.pipe(operators.takeUntil(endedOrDestroyed))
.subscribe(_this._pointerMove);
_this._dragDropRegistry.pointerUp
.pipe(operators.takeUntil(endedOrDestroyed))
.subscribe(_this._pointerUp);
_this._dragDropRegistry.startDragging(_this, event);
_this._initialContainer = _this.dropContainer;

@@ -188,3 +421,2 @@ _this._scrollPosition = _this._viewportRuler.getViewportScrollPosition();

_this._pickupPositionOnPage = _this._getPointerPositionOnPage(event);
_this._registerMoveListeners(event);
// Emit the event on the item before the one on the container.

@@ -201,2 +433,3 @@ // Emit the event on the item before the one on the container.

element.style.display = 'none';
_this._nextSibling = element.nextSibling;
_this._document.body.appendChild(/** @type {?} */ ((element.parentNode)).replaceChild(placeholder, element));

@@ -211,3 +444,5 @@ _this._document.body.appendChild(preview);

this._pointerMove = function (event) {
if (!_this._isDragging) {
// TODO: this should start dragging after a certain threshold,
// otherwise we risk interfering with clicks on the element.
if (!_this._dragDropRegistry.isDragging(_this)) {
return;

@@ -232,7 +467,6 @@ }

this._pointerUp = function () {
if (!_this._isDragging) {
if (!_this._dragDropRegistry.isDragging(_this)) {
return;
}
_this._removeDocumentEvents();
_this._isDragging = false;
_this._dragDropRegistry.stopDragging(_this);
if (!_this.dropContainer) {

@@ -252,11 +486,4 @@ // Convert the active transform into a passive one. This means that next time

};
/**
* Listener used to prevent `touchmove` events while the element is being dragged.
*/
this._preventScrollListener = function (event) {
if (_this._isDragging) {
event.preventDefault();
}
};
this._document = document;
_dragDropRegistry.register(this);
}

@@ -283,17 +510,2 @@ /**

*/
CdkDrag.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
// WebKit won't preventDefault on a dynamically-added `touchmove` listener, which means that
// we need to add one ahead of time. See https://bugs.webkit.org/show_bug.cgi?id=184250.
// TODO: move into a central registry.
this._ngZone.runOutsideAngular(function () {
_this._document.addEventListener('touchmove', _this._preventScrollListener, activeEventOptions);
});
};
/**
* @return {?}
*/
CdkDrag.prototype.ngOnDestroy = /**

@@ -303,7 +515,7 @@ * @return {?}

function () {
this._removeDocumentEvents();
this._destroyPreview();
this._destroyPlaceholder();
this._document.removeEventListener('touchmove', this._preventScrollListener, /** @type {?} */ (activeEventOptions));
if (this._isDragging) {
// Do this check before removing from the registry since it'll
// stop being considered as dragged once it is removed.
if (this._dragDropRegistry.isDragging(this)) {
// Since we move out the element to the end of the body while it's being

@@ -313,2 +525,6 @@ // dragged, we have to make sure that it's removed if it gets destroyed.

}
this._nextSibling = null;
this._dragDropRegistry.remove(this);
this._destroyed.next();
this._destroyed.complete();
};

@@ -352,9 +568,18 @@ /** Starts the dragging sequence. */

var _this = this;
this._destroyPreview(); /** @type {?} */
((this._placeholder.parentNode)).insertBefore(this.element.nativeElement, this._placeholder);
var /** @type {?} */ currentIndex = this._getElementIndexInDom(this._placeholder);
// Restore the element's visibility and insert it at its old position in the DOM.
// It's important that we maintain the position, because moving the element around in the DOM
// can throw off `NgFor` which does smart diffing and re-creates elements only when necessary,
// while moving the existing elements in all other cases.
this.element.nativeElement.style.display = '';
if (this._nextSibling) {
/** @type {?} */ ((this._nextSibling.parentNode)).insertBefore(this.element.nativeElement, this._nextSibling);
}
else {
/** @type {?} */ ((this._placeholder.parentNode)).appendChild(this.element.nativeElement);
}
this._destroyPreview();
this._destroyPlaceholder();
this.element.nativeElement.style.display = '';
// Re-enter the NgZone since we bound `document` events on the outside.
this._ngZone.run(function () {
var /** @type {?} */ currentIndex = _this._getElementIndexInDom();
_this.ended.emit({ source: _this });

@@ -455,10 +680,12 @@ _this.dropped.emit({

/**
* Gets the index of the dragable element, based on its index in the DOM.
* Gets the index of an element, based on its index in the DOM.
* @param {?} element
* @return {?}
*/
CdkDrag.prototype._getElementIndexInDom = /**
* Gets the index of the dragable element, based on its index in the DOM.
* Gets the index of an element, based on its index in the DOM.
* @param {?} element
* @return {?}
*/
function () {
function (element) {
var _this = this;

@@ -469,3 +696,2 @@ // Note: we may be able to figure this in memory while sorting, but doing so won't be very

// isn't using an `ngFor` to render the list.
var /** @type {?} */ element = this.element.nativeElement;
if (!element.parentElement) {

@@ -597,16 +823,2 @@ return -1;

/**
* Removes the global event listeners that were bound by this draggable.
* @return {?}
*/
CdkDrag.prototype._removeDocumentEvents = /**
* Removes the global event listeners that were bound by this draggable.
* @return {?}
*/
function () {
this._document.removeEventListener('mousemove', this._pointerMove, /** @type {?} */ (activeEventOptions));
this._document.removeEventListener('touchmove', this._pointerMove, /** @type {?} */ (activeEventOptions));
this._document.removeEventListener('mouseup', this._pointerUp);
this._document.removeEventListener('touchend', this._pointerUp);
};
/**
* Determines the point of the page that was touched by the user.

@@ -676,28 +888,2 @@ * @param {?} event

/**
* Registers global event listeners that are used for moving the element.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
CdkDrag.prototype._registerMoveListeners = /**
* Registers global event listeners that are used for moving the element.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
function (event) {
var _this = this;
this._ngZone.runOutsideAngular(function () {
var /** @type {?} */ isTouchEvent = _this._isTouchEvent(event);
// We explicitly bind __active__ listeners here, because newer browsers
// will default to passive ones for `mousemove` and `touchmove`.
// TODO: this should be bound in `mousemove` and after a certain threshold,
// otherwise it'll interfere with clicks on the element.
// We explicitly bind __active__ listeners here, because newer browsers
// will default to passive ones for `mousemove` and `touchmove`.
// TODO: this should be bound in `mousemove` and after a certain threshold,
// otherwise it'll interfere with clicks on the element.
_this._document.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', _this._pointerMove, activeEventOptions);
_this._document.addEventListener(isTouchEvent ? 'touchend' : 'mouseup', _this._pointerUp);
});
};
/**
* Gets the `transition-duration` of an element in milliseconds.

@@ -733,6 +919,7 @@ * @param {?} element

{ type: undefined, decorators: [{ type: core.Inject, args: [CDK_DROP_CONTAINER,] }, { type: core.Optional }, { type: core.SkipSelf },] },
{ type: undefined, decorators: [{ type: core.Inject, args: [platformBrowser.DOCUMENT,] },] },
{ type: undefined, decorators: [{ type: core.Inject, args: [common.DOCUMENT,] },] },
{ type: core.NgZone, },
{ type: core.ViewContainerRef, },
{ type: overlay.ViewportRuler, },
{ type: CdkDragDropRegistry, },
{ type: bidi.Directionality, decorators: [{ type: core.Optional },] },

@@ -744,2 +931,3 @@ ]; };

"_placeholderTemplate": [{ type: core.ContentChild, args: [CdkDragPlaceholder,] },],
"data": [{ type: core.Input },],
"started": [{ type: core.Output, args: ['cdkDragStarted',] },],

@@ -759,2 +947,6 @@ "ended": [{ type: core.Output, args: ['cdkDragEnded',] },],

/**
* Counter used to generate unique ids for drop zones.
*/
var /** @type {?} */ _uniqueIdCounter = 0;
/**
* Container that wraps a set of draggable items.

@@ -764,7 +956,9 @@ * @template T

var CdkDrop = /** @class */ (function () {
function CdkDrop(element) {
function CdkDrop(element, _dragDropRegistry) {
this.element = element;
this._dragDropRegistry = _dragDropRegistry;
/**
* Other draggable containers that this container is connected
* to and into which the container's items can be transferred.
* Other draggable containers that this container is connected to and into which the
* container's items can be transferred. Can either be references to other drop containers,
* or their unique IDs.
*/

@@ -777,2 +971,7 @@ this.connectedTo = [];

/**
* Unique ID for the drop zone. Can be used as a reference
* in the `connectedTo` of another `CdkDrop`.
*/
this.id = "cdk-drop-" + _uniqueIdCounter++;
/**
* Emits when the user drops an item inside the container.

@@ -802,2 +1001,20 @@ */

}
/**
* @return {?}
*/
CdkDrop.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this._dragDropRegistry.register(this);
};
/**
* @return {?}
*/
CdkDrop.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this._dragDropRegistry.remove(this);
};
/** Starts dragging an item. */

@@ -926,3 +1143,5 @@ /**

if (drag === item) {
return false;
// If there's only one left item in the container, it must be
// the dragged item itself so we use it as a reference.
return siblings.length < 2;
}

@@ -936,3 +1155,6 @@ return _this.orientation === 'horizontal' ?

}
var /** @type {?} */ element = newPosition ? newPosition.drag.element.nativeElement : null;
// Don't take the element of a dragged item as a reference,
// because it has been moved down to the end of the body.
var /** @type {?} */ element = (newPosition && !this._dragDropRegistry.isDragging(newPosition.drag)) ?
newPosition.drag.element.nativeElement : null;
var /** @type {?} */ next = element ? /** @type {?} */ ((element)).nextSibling : null;

@@ -986,2 +1208,3 @@ var /** @type {?} */ parent = element ? /** @type {?} */ ((element.parentElement)) : this.element.nativeElement;

function () {
var _this = this;
this._positionCache.items = this._draggables

@@ -992,2 +1215,4 @@ .map(function (drag) { return ({ drag: drag, clientRect: drag.element.nativeElement.getBoundingClientRect() }); })

this._positionCache.siblings = this.connectedTo
.map(function (drop) { return typeof drop === 'string' ? /** @type {?} */ ((_this._dragDropRegistry.getDropContainer(drop))) : drop; })
.filter(Boolean)
.map(function (drop) { return ({ drop: drop, clientRect: drop.element.nativeElement.getBoundingClientRect() }); });

@@ -1020,2 +1245,3 @@ };

'class': 'cdk-drop',
'[id]': 'id',
'[class.cdk-drop-dragging]': '_dragging'

@@ -1028,2 +1254,3 @@ }

{ type: core.ElementRef, },
{ type: CdkDragDropRegistry, },
]; };

@@ -1035,2 +1262,3 @@ CdkDrop.propDecorators = {

"orientation": [{ type: core.Input },],
"id": [{ type: core.Input },],
"dropped": [{ type: core.Output },],

@@ -1132,2 +1360,3 @@ "entered": [{ type: core.Output },],

exports.DragDropModule = DragDropModule;
exports.CdkDragDropRegistry = CdkDragDropRegistry;

@@ -1134,0 +1363,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

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

*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/platform-browser"),require("@angular/cdk/bidi"),require("@angular/cdk/platform"),require("@angular/cdk/overlay")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental/dragDrop",["exports","@angular/core","@angular/platform-browser","@angular/cdk/bidi","@angular/cdk/platform","@angular/cdk/overlay"],t):t((e.ng=e.ng||{},e.ng["cdk-experimental"]=e.ng["cdk-experimental"]||{},e.ng["cdk-experimental"].dragDrop={}),e.ng.core,e.ng.platformBrowser,e.ng.cdk.bidi,e.ng.cdk.platform,e.ng.cdk.overlay)}(this,function(e,t,n,r,i,o){"use strict";function s(e,t,n){var r=p(t,e.length-1),i=p(n,e.length-1);if(r!==i){for(var o=e[r],s=i<r?-1:1,a=r;a!==i;a+=s)e[a]=e[a+s];e[i]=o}}function a(e,t,n,r){var i=p(n,e.length-1),o=p(r,t.length);e.length&&t.splice(o,0,e.splice(i,1)[0])}function p(e,t){return Math.max(0,Math.min(t,e))}var l=function(){function e(e){this.element=e}return e.decorators=[{type:t.Directive,args:[{selector:"[cdkDragHandle]",host:{class:"cdk-drag-handle"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e}(),c=new t.InjectionToken("CDK_DROP_CONTAINER"),d=function(){function e(e){this.templateRef=e}return e.decorators=[{type:t.Directive,args:[{selector:"ng-template[cdkDragPreview]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e.propDecorators={data:[{type:t.Input}]},e}(),u=function(){function e(e){this.templateRef=e}return e.decorators=[{type:t.Directive,args:[{selector:"ng-template[cdkDragPlaceholder]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e.propDecorators={data:[{type:t.Input}]},e}(),h=!!i.supportsPassiveEventListeners()&&{passive:!1},g=function(){function e(e,n,r,i,o,s,a){var p=this;this.element=e,this.dropContainer=n,this._ngZone=i,this._viewContainerRef=o,this._viewportRuler=s,this._dir=a,this._passiveTransform={x:0,y:0},this._activeTransform={x:0,y:0},this._isDragging=!1,this._hasMoved=!1,this.started=new t.EventEmitter,this.ended=new t.EventEmitter,this.entered=new t.EventEmitter,this.exited=new t.EventEmitter,this.dropped=new t.EventEmitter,this._pointerDown=function(e,t){if(!p._isDragging&&(p._isDragging=!0,p._initialContainer=p.dropContainer,p._scrollPosition=p._viewportRuler.getViewportScrollPosition(),p._pickupPositionInElement=p._previewTemplate?{x:0,y:0}:p._getPointerPositionInElement(e,t),p._pickupPositionOnPage=p._getPointerPositionOnPage(t),p._registerMoveListeners(t),p.started.emit({source:p}),p.dropContainer)){var n=p.element.nativeElement,r=p._preview=p._createPreviewElement(),i=p._placeholder=p._createPlaceholderElement();n.style.display="none",p._document.body.appendChild(n.parentNode.replaceChild(i,n)),p._document.body.appendChild(r),p.dropContainer.start()}},this._pointerMove=function(e){if(p._isDragging)if(p._hasMoved=!0,e.preventDefault(),p.dropContainer)p._updateActiveDropContainer(e);else{var t=p._activeTransform,n=p._getPointerPositionOnPage(e),r=n.x,i=n.y;t.x=r-p._pickupPositionOnPage.x+p._passiveTransform.x,t.y=i-p._pickupPositionOnPage.y+p._passiveTransform.y,p._setTransform(p.element.nativeElement,t.x,t.y)}},this._pointerUp=function(){if(p._isDragging){if(p._removeDocumentEvents(),p._isDragging=!1,!p.dropContainer)return p._passiveTransform.x=p._activeTransform.x,p._passiveTransform.y=p._activeTransform.y,void p._ngZone.run(function(){return p.ended.emit({source:p})});p._animatePreviewToPlaceholder().then(function(){return p._cleanupDragArtifacts()})}},this._preventScrollListener=function(e){p._isDragging&&e.preventDefault()},this._document=r}return e.prototype.getPlaceholderElement=function(){return this._placeholder},e.prototype.ngAfterContentInit=function(){var e=this;this._ngZone.runOutsideAngular(function(){e._document.addEventListener("touchmove",e._preventScrollListener,h)})},e.prototype.ngOnDestroy=function(){this._removeDocumentEvents(),this._destroyPreview(),this._destroyPlaceholder(),this._document.removeEventListener("touchmove",this._preventScrollListener,h),this._isDragging&&this._removeElement(this.element.nativeElement)},e.prototype._startDragging=function(e){if(this._handles.length){var t=this._handles.find(function(t){var n=t.element.nativeElement,r=e.target;return!!r&&(r===n||n.contains(r))});t&&this._pointerDown(t.element,e)}else this._pointerDown(this.element,e)},e.prototype._cleanupDragArtifacts=function(){var e=this;this._destroyPreview(),this._placeholder.parentNode.insertBefore(this.element.nativeElement,this._placeholder),this._destroyPlaceholder(),this.element.nativeElement.style.display="",this._ngZone.run(function(){var t=e._getElementIndexInDom();e.ended.emit({source:e}),e.dropped.emit({item:e,currentIndex:t,previousIndex:e._initialContainer.getItemIndex(e),container:e.dropContainer,previousContainer:e._initialContainer}),e.dropContainer.drop(e,t,e._initialContainer)})},e.prototype._updateActiveDropContainer=function(e){var t=this,n=this._getPointerPositionOnPage(e),r=n.x,i=n.y,o=this.dropContainer._getSiblingContainerFromPosition(r,i);o&&this._ngZone.run(function(){t.exited.emit({item:t,container:t.dropContainer}),t.dropContainer.exit(t),t.entered.emit({item:t,container:o}),t.dropContainer=o,t.dropContainer.enter(t)}),this.dropContainer._sortItem(this,r,i),this._setTransform(this._preview,r-this._pickupPositionInElement.x,i-this._pickupPositionInElement.y)},e.prototype._createPreviewElement=function(){var e;if(this._previewTemplate){var t=this._viewContainerRef.createEmbeddedView(this._previewTemplate.templateRef,this._previewTemplate.data);e=t.rootNodes[0],this._previewRef=t,this._setTransform(e,this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else{var n=this.element.nativeElement,r=n.getBoundingClientRect();e=n.cloneNode(!0),e.style.width=r.width+"px",e.style.height=r.height+"px",this._setTransform(e,r.left,r.top)}return e.classList.add("cdk-drag-preview"),e.setAttribute("dir",this._dir?this._dir.value:"ltr"),e},e.prototype._createPlaceholderElement=function(){var e;return this._placeholderTemplate?(this._placeholderRef=this._viewContainerRef.createEmbeddedView(this._placeholderTemplate.templateRef,this._placeholderTemplate.data),e=this._placeholderRef.rootNodes[0]):e=this.element.nativeElement.cloneNode(!0),e.classList.add("cdk-drag-placeholder"),e},e.prototype._getElementIndexInDom=function(){var e=this,t=this.element.nativeElement;if(!t.parentElement)return-1;for(var n=0,r=t.parentElement.children,i=r.length,o=this.dropContainer._draggables.filter(function(t){return t!==e}).map(function(e){return e.element.nativeElement}),s=0;s<i;s++){if(r[s]===t)return n;o.indexOf(r[s])>-1&&n++}return-1},e.prototype._getPointerPositionInElement=function(e,t){var n=this.element.nativeElement.getBoundingClientRect(),r=e===this.element?null:e.nativeElement,i=r?r.getBoundingClientRect():n,o=this._isTouchEvent(t)?t.targetTouches[0].pageX-i.left-this._scrollPosition.left:t.offsetX,s=this._isTouchEvent(t)?t.targetTouches[0].pageY-i.top-this._scrollPosition.top:t.offsetY;return{x:i.left-n.left+o,y:i.top-n.top+s}},e.prototype._animatePreviewToPlaceholder=function(){var e=this;if(!this._hasMoved)return Promise.resolve();var t=this._placeholder.getBoundingClientRect();this._preview.classList.add("cdk-drag-animating"),this._setTransform(this._preview,t.left,t.top);var n=this._getTransitionDurationInMs(this._preview);return 0===n?Promise.resolve():this._ngZone.runOutsideAngular(function(){return new Promise(function(t){var r=function(n){n&&n.target!==e._preview||(e._preview.removeEventListener("transitionend",r),t(),clearTimeout(i))},i=setTimeout(r,1.5*n);e._preview.addEventListener("transitionend",r)})})},e.prototype._setTransform=function(e,t,n){e.style.transform="translate3d("+t+"px, "+n+"px, 0)"},e.prototype._removeElement=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},e.prototype._removeDocumentEvents=function(){this._document.removeEventListener("mousemove",this._pointerMove,h),this._document.removeEventListener("touchmove",this._pointerMove,h),this._document.removeEventListener("mouseup",this._pointerUp),this._document.removeEventListener("touchend",this._pointerUp)},e.prototype._getPointerPositionOnPage=function(e){var t=this._isTouchEvent(e)?e.touches[0]:e;return{x:t.pageX-this._scrollPosition.left,y:t.pageY-this._scrollPosition.top}},e.prototype._isTouchEvent=function(e){return e.type.startsWith("touch")},e.prototype._destroyPreview=function(){this._preview&&this._removeElement(this._preview),this._previewRef&&this._previewRef.destroy(),this._preview=this._previewRef=null},e.prototype._destroyPlaceholder=function(){this._placeholder&&this._removeElement(this._placeholder),this._placeholderRef&&this._placeholderRef.destroy(),this._placeholder=this._placeholderRef=null},e.prototype._registerMoveListeners=function(e){var t=this;this._ngZone.runOutsideAngular(function(){var n=t._isTouchEvent(e);t._document.addEventListener(n?"touchmove":"mousemove",t._pointerMove,h),t._document.addEventListener(n?"touchend":"mouseup",t._pointerUp)})},e.prototype._getTransitionDurationInMs=function(e){var t=getComputedStyle(e).getPropertyValue("transition-duration"),n=t.toLowerCase().indexOf("ms")>-1?1:1e3;return parseFloat(t)*n},e.decorators=[{type:t.Directive,args:[{selector:"[cdkDrag]",exportAs:"cdkDrag",host:{class:"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:void 0,decorators:[{type:t.Inject,args:[c]},{type:t.Optional},{type:t.SkipSelf}]},{type:void 0,decorators:[{type:t.Inject,args:[n.DOCUMENT]}]},{type:t.NgZone},{type:t.ViewContainerRef},{type:o.ViewportRuler},{type:r.Directionality,decorators:[{type:t.Optional}]}]},e.propDecorators={_handles:[{type:t.ContentChildren,args:[l]}],_previewTemplate:[{type:t.ContentChild,args:[d]}],_placeholderTemplate:[{type:t.ContentChild,args:[u]}],started:[{type:t.Output,args:["cdkDragStarted"]}],ended:[{type:t.Output,args:["cdkDragEnded"]}],entered:[{type:t.Output,args:["cdkDragEntered"]}],exited:[{type:t.Output,args:["cdkDragExited"]}],dropped:[{type:t.Output,args:["cdkDragDropped"]}]},e}(),m=function(){function e(e){this.element=e,this.connectedTo=[],this.orientation="vertical",this.dropped=new t.EventEmitter,this.entered=new t.EventEmitter,this.exited=new t.EventEmitter,this._dragging=!1,this._positionCache={items:[],siblings:[]}}return e.prototype.start=function(){this._dragging=!0,this._refreshPositions()},e.prototype.drop=function(e,t,n){this.dropped.emit({item:e,currentIndex:t,previousIndex:n.getItemIndex(e),container:this,previousContainer:n}),this._reset()},e.prototype.enter=function(e){this.entered.emit({item:e,container:this}),this.start()},e.prototype.exit=function(e){this._reset(),this.exited.emit({item:e,container:this})},e.prototype.getItemIndex=function(e){return this._draggables.toArray().indexOf(e)},e.prototype._sortItem=function(e,t,n){var r=this,i=this._positionCache.items,o=i.find(function(i){var o=i.drag,s=i.clientRect;return o!==e&&("horizontal"===r.orientation?t>s.left&&t<s.right:n>s.top&&n<s.bottom)});if(o||!(i.length>0)){var s=o?o.drag.element.nativeElement:null,a=s?s.nextSibling:null,p=s?s.parentElement:this.element.nativeElement,l=e.getPlaceholderElement();a?p.insertBefore(l,a===l?s:a):p.appendChild(l),this._refreshPositions()}},e.prototype._getSiblingContainerFromPosition=function(e,t){var n=this._positionCache.siblings.find(function(n){var r=n.clientRect,i=r.top,o=r.bottom,s=r.left,a=r.right;return t>=i&&t<=o&&e>=s&&e<=a});return n?n.drop:null},e.prototype._refreshPositions=function(){this._positionCache.items=this._draggables.map(function(e){return{drag:e,clientRect:e.element.nativeElement.getBoundingClientRect()}}).sort(function(e,t){return e.clientRect.top-t.clientRect.top}),this._positionCache.siblings=this.connectedTo.map(function(e){return{drop:e,clientRect:e.element.nativeElement.getBoundingClientRect()}})},e.prototype._reset=function(){this._dragging=!1,this._positionCache.items=[],this._positionCache.siblings=[]},e.decorators=[{type:t.Component,args:[{selector:"cdk-drop",exportAs:"cdkDrop",template:"<ng-content></ng-content>",encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"],providers:[{provide:c,useExisting:e}],host:{class:"cdk-drop","[class.cdk-drop-dragging]":"_dragging"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e.propDecorators={_draggables:[{type:t.ContentChildren,args:[t.forwardRef(function(){return g})]}],connectedTo:[{type:t.Input}],data:[{type:t.Input}],orientation:[{type:t.Input}],dropped:[{type:t.Output}],entered:[{type:t.Output}],exited:[{type:t.Output}]},e}(),_=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[m,g,l,d,u],exports:[m,g,l,d,u]}]}],e}();e.CdkDrop=m,e.CDK_DROP_CONTAINER=c,e.CdkDrag=g,e.CdkDragHandle=l,e.moveItemInArray=s,e.transferArrayItem=a,e.CdkDragPreview=d,e.CdkDragPlaceholder=u,e.DragDropModule=_,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/cdk/platform"),require("rxjs"),require("@angular/cdk/bidi"),require("@angular/cdk/overlay"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental/dragDrop",["exports","@angular/core","@angular/common","@angular/cdk/platform","rxjs","@angular/cdk/bidi","@angular/cdk/overlay","rxjs/operators"],t):t((e.ng=e.ng||{},e.ng["cdk-experimental"]=e.ng["cdk-experimental"]||{},e.ng["cdk-experimental"].dragDrop={}),e.ng.core,e.ng.common,e.ng.cdk.platform,e.rxjs,e.ng.cdk.bidi,e.ng.cdk.overlay,e.rxjs.operators)}(this,function(e,t,n,r,i,o,s,a){"use strict";function p(e,t,n){var r=d(t,e.length-1),i=d(n,e.length-1);if(r!==i){for(var o=e[r],s=i<r?-1:1,a=r;a!==i;a+=s)e[a]=e[a+s];e[i]=o}}function c(e,t,n,r){var i=d(n,e.length-1),o=d(r,t.length);e.length&&t.splice(o,0,e.splice(i,1)[0])}function d(e,t){return Math.max(0,Math.min(t,e))}var l=function(){function e(e){this.element=e}return e.decorators=[{type:t.Directive,args:[{selector:"[cdkDragHandle]",host:{class:"cdk-drag-handle"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e}(),h=new t.InjectionToken("CDK_DROP_CONTAINER"),g=function(){function e(e){this.templateRef=e}return e.decorators=[{type:t.Directive,args:[{selector:"ng-template[cdkDragPreview]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e.propDecorators={data:[{type:t.Input}]},e}(),u=function(){function e(e){this.templateRef=e}return e.decorators=[{type:t.Directive,args:[{selector:"ng-template[cdkDragPlaceholder]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e.propDecorators={data:[{type:t.Input}]},e}(),_=!!r.supportsPassiveEventListeners()&&{passive:!1},m=function(){function e(e,t){var n=this;this._ngZone=e,this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=new Set,this._globalListeners=new Map,this.pointerMove=new i.Subject,this.pointerUp=new i.Subject,this._preventScrollListener=function(e){n._activeDragInstances.size&&e.preventDefault()},this._document=t}return e.prototype.register=function(e){var t=this;if(e instanceof y){if(!this._dropInstances.has(e)){if(this.getDropContainer(e.id))throw Error('Drop instance with id "'+e.id+'" has already been registered.');this._dropInstances.add(e)}}else this._dragInstances.add(e),1===this._dragInstances.size&&this._ngZone.runOutsideAngular(function(){t._document.addEventListener("touchmove",t._preventScrollListener,_)})},e.prototype.remove=function(e){e instanceof y?this._dropInstances.delete(e):(this._dragInstances.delete(e),this.stopDragging(e),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._preventScrollListener,_))},e.prototype.startDragging=function(e,t){var n=this;if(this._activeDragInstances.add(e),1===this._activeDragInstances.size){var r=t.type.startsWith("touch"),i=r?"touchmove":"mousemove",o=r?"touchend":"mouseup";this._globalListeners.set(i,{handler:function(e){return n.pointerMove.next(e)},options:_}).set(o,{handler:function(e){return n.pointerUp.next(e)}}).forEach(function(e,t){n._ngZone.runOutsideAngular(function(){n._document.addEventListener(t,e.handler,e.options)})})}},e.prototype.stopDragging=function(e){this._activeDragInstances.delete(e),0===this._activeDragInstances.size&&this._clearGlobalListeners()},e.prototype.isDragging=function(e){return this._activeDragInstances.has(e)},e.prototype.getDropContainer=function(e){return Array.from(this._dropInstances).find(function(t){return t.id===e})},e.prototype.ngOnDestroy=function(){var e=this;this._dragInstances.forEach(function(t){return e.remove(t)}),this._dropInstances.forEach(function(t){return e.remove(t)}),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()},e.prototype._clearGlobalListeners=function(){var e=this;this._globalListeners.forEach(function(t,n){e._document.removeEventListener(n,t.handler,t.options)}),this._globalListeners.clear()},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.NgZone},{type:void 0,decorators:[{type:t.Inject,args:[n.DOCUMENT]}]}]},e.ngInjectableDef=t.defineInjectable({factory:function(){return new e(t.inject(t.NgZone),t.inject(n.DOCUMENT))},token:e,providedIn:"root"}),e}(),f=function(){function e(e,n,r,o,s,p,c,d){var l=this;this.element=e,this.dropContainer=n,this._ngZone=o,this._viewContainerRef=s,this._viewportRuler=p,this._dragDropRegistry=c,this._dir=d,this._destroyed=new i.Subject,this._passiveTransform={x:0,y:0},this._activeTransform={x:0,y:0},this._hasMoved=!1,this.started=new t.EventEmitter,this.ended=new t.EventEmitter,this.entered=new t.EventEmitter,this.exited=new t.EventEmitter,this.dropped=new t.EventEmitter,this._pointerDown=function(e,t){if(!l._dragDropRegistry.isDragging(l)){var n=i.merge(l.ended,l._destroyed);if(l._dragDropRegistry.pointerMove.pipe(a.takeUntil(n)).subscribe(l._pointerMove),l._dragDropRegistry.pointerUp.pipe(a.takeUntil(n)).subscribe(l._pointerUp),l._dragDropRegistry.startDragging(l,t),l._initialContainer=l.dropContainer,l._scrollPosition=l._viewportRuler.getViewportScrollPosition(),l._pickupPositionInElement=l._previewTemplate?{x:0,y:0}:l._getPointerPositionInElement(e,t),l._pickupPositionOnPage=l._getPointerPositionOnPage(t),l.started.emit({source:l}),l.dropContainer){var r=l.element.nativeElement,o=l._preview=l._createPreviewElement(),s=l._placeholder=l._createPlaceholderElement();r.style.display="none",l._nextSibling=r.nextSibling,l._document.body.appendChild(r.parentNode.replaceChild(s,r)),l._document.body.appendChild(o),l.dropContainer.start()}}},this._pointerMove=function(e){if(l._dragDropRegistry.isDragging(l))if(l._hasMoved=!0,e.preventDefault(),l.dropContainer)l._updateActiveDropContainer(e);else{var t=l._activeTransform,n=l._getPointerPositionOnPage(e),r=n.x,i=n.y;t.x=r-l._pickupPositionOnPage.x+l._passiveTransform.x,t.y=i-l._pickupPositionOnPage.y+l._passiveTransform.y,l._setTransform(l.element.nativeElement,t.x,t.y)}},this._pointerUp=function(){if(l._dragDropRegistry.isDragging(l)){if(l._dragDropRegistry.stopDragging(l),!l.dropContainer)return l._passiveTransform.x=l._activeTransform.x,l._passiveTransform.y=l._activeTransform.y,void l._ngZone.run(function(){return l.ended.emit({source:l})});l._animatePreviewToPlaceholder().then(function(){return l._cleanupDragArtifacts()})}},this._document=r,c.register(this)}return e.prototype.getPlaceholderElement=function(){return this._placeholder},e.prototype.ngOnDestroy=function(){this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.isDragging(this)&&this._removeElement(this.element.nativeElement),this._nextSibling=null,this._dragDropRegistry.remove(this),this._destroyed.next(),this._destroyed.complete()},e.prototype._startDragging=function(e){if(this._handles.length){var t=this._handles.find(function(t){var n=t.element.nativeElement,r=e.target;return!!r&&(r===n||n.contains(r))});t&&this._pointerDown(t.element,e)}else this._pointerDown(this.element,e)},e.prototype._cleanupDragArtifacts=function(){var e=this,t=this._getElementIndexInDom(this._placeholder);this.element.nativeElement.style.display="",this._nextSibling?this._nextSibling.parentNode.insertBefore(this.element.nativeElement,this._nextSibling):this._placeholder.parentNode.appendChild(this.element.nativeElement),this._destroyPreview(),this._destroyPlaceholder(),this._ngZone.run(function(){e.ended.emit({source:e}),e.dropped.emit({item:e,currentIndex:t,previousIndex:e._initialContainer.getItemIndex(e),container:e.dropContainer,previousContainer:e._initialContainer}),e.dropContainer.drop(e,t,e._initialContainer)})},e.prototype._updateActiveDropContainer=function(e){var t=this,n=this._getPointerPositionOnPage(e),r=n.x,i=n.y,o=this.dropContainer._getSiblingContainerFromPosition(r,i);o&&this._ngZone.run(function(){t.exited.emit({item:t,container:t.dropContainer}),t.dropContainer.exit(t),t.entered.emit({item:t,container:o}),t.dropContainer=o,t.dropContainer.enter(t)}),this.dropContainer._sortItem(this,r,i),this._setTransform(this._preview,r-this._pickupPositionInElement.x,i-this._pickupPositionInElement.y)},e.prototype._createPreviewElement=function(){var e;if(this._previewTemplate){var t=this._viewContainerRef.createEmbeddedView(this._previewTemplate.templateRef,this._previewTemplate.data);e=t.rootNodes[0],this._previewRef=t,this._setTransform(e,this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else{var n=this.element.nativeElement,r=n.getBoundingClientRect();e=n.cloneNode(!0),e.style.width=r.width+"px",e.style.height=r.height+"px",this._setTransform(e,r.left,r.top)}return e.classList.add("cdk-drag-preview"),e.setAttribute("dir",this._dir?this._dir.value:"ltr"),e},e.prototype._createPlaceholderElement=function(){var e;return this._placeholderTemplate?(this._placeholderRef=this._viewContainerRef.createEmbeddedView(this._placeholderTemplate.templateRef,this._placeholderTemplate.data),e=this._placeholderRef.rootNodes[0]):e=this.element.nativeElement.cloneNode(!0),e.classList.add("cdk-drag-placeholder"),e},e.prototype._getElementIndexInDom=function(e){var t=this;if(!e.parentElement)return-1;for(var n=0,r=e.parentElement.children,i=r.length,o=this.dropContainer._draggables.filter(function(e){return e!==t}).map(function(e){return e.element.nativeElement}),s=0;s<i;s++){if(r[s]===e)return n;o.indexOf(r[s])>-1&&n++}return-1},e.prototype._getPointerPositionInElement=function(e,t){var n=this.element.nativeElement.getBoundingClientRect(),r=e===this.element?null:e.nativeElement,i=r?r.getBoundingClientRect():n,o=this._isTouchEvent(t)?t.targetTouches[0].pageX-i.left-this._scrollPosition.left:t.offsetX,s=this._isTouchEvent(t)?t.targetTouches[0].pageY-i.top-this._scrollPosition.top:t.offsetY;return{x:i.left-n.left+o,y:i.top-n.top+s}},e.prototype._animatePreviewToPlaceholder=function(){var e=this;if(!this._hasMoved)return Promise.resolve();var t=this._placeholder.getBoundingClientRect();this._preview.classList.add("cdk-drag-animating"),this._setTransform(this._preview,t.left,t.top);var n=this._getTransitionDurationInMs(this._preview);return 0===n?Promise.resolve():this._ngZone.runOutsideAngular(function(){return new Promise(function(t){var r=function(n){n&&n.target!==e._preview||(e._preview.removeEventListener("transitionend",r),t(),clearTimeout(i))},i=setTimeout(r,1.5*n);e._preview.addEventListener("transitionend",r)})})},e.prototype._setTransform=function(e,t,n){e.style.transform="translate3d("+t+"px, "+n+"px, 0)"},e.prototype._removeElement=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},e.prototype._getPointerPositionOnPage=function(e){var t=this._isTouchEvent(e)?e.touches[0]:e;return{x:t.pageX-this._scrollPosition.left,y:t.pageY-this._scrollPosition.top}},e.prototype._isTouchEvent=function(e){return e.type.startsWith("touch")},e.prototype._destroyPreview=function(){this._preview&&this._removeElement(this._preview),this._previewRef&&this._previewRef.destroy(),this._preview=this._previewRef=null},e.prototype._destroyPlaceholder=function(){this._placeholder&&this._removeElement(this._placeholder),this._placeholderRef&&this._placeholderRef.destroy(),this._placeholder=this._placeholderRef=null},e.prototype._getTransitionDurationInMs=function(e){var t=getComputedStyle(e).getPropertyValue("transition-duration"),n=t.toLowerCase().indexOf("ms")>-1?1:1e3;return parseFloat(t)*n},e.decorators=[{type:t.Directive,args:[{selector:"[cdkDrag]",exportAs:"cdkDrag",host:{class:"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:void 0,decorators:[{type:t.Inject,args:[h]},{type:t.Optional},{type:t.SkipSelf}]},{type:void 0,decorators:[{type:t.Inject,args:[n.DOCUMENT]}]},{type:t.NgZone},{type:t.ViewContainerRef},{type:s.ViewportRuler},{type:m},{type:o.Directionality,decorators:[{type:t.Optional}]}]},e.propDecorators={_handles:[{type:t.ContentChildren,args:[l]}],_previewTemplate:[{type:t.ContentChild,args:[g]}],_placeholderTemplate:[{type:t.ContentChild,args:[u]}],data:[{type:t.Input}],started:[{type:t.Output,args:["cdkDragStarted"]}],ended:[{type:t.Output,args:["cdkDragEnded"]}],entered:[{type:t.Output,args:["cdkDragEntered"]}],exited:[{type:t.Output,args:["cdkDragExited"]}],dropped:[{type:t.Output,args:["cdkDragDropped"]}]},e}(),v=0,y=function(){function e(e,n){this.element=e,this._dragDropRegistry=n,this.connectedTo=[],this.orientation="vertical",this.id="cdk-drop-"+v++,this.dropped=new t.EventEmitter,this.entered=new t.EventEmitter,this.exited=new t.EventEmitter,this._dragging=!1,this._positionCache={items:[],siblings:[]}}return e.prototype.ngOnInit=function(){this._dragDropRegistry.register(this)},e.prototype.ngOnDestroy=function(){this._dragDropRegistry.remove(this)},e.prototype.start=function(){this._dragging=!0,this._refreshPositions()},e.prototype.drop=function(e,t,n){this.dropped.emit({item:e,currentIndex:t,previousIndex:n.getItemIndex(e),container:this,previousContainer:n}),this._reset()},e.prototype.enter=function(e){this.entered.emit({item:e,container:this}),this.start()},e.prototype.exit=function(e){this._reset(),this.exited.emit({item:e,container:this})},e.prototype.getItemIndex=function(e){return this._draggables.toArray().indexOf(e)},e.prototype._sortItem=function(e,t,n){var r=this,i=this._positionCache.items,o=i.find(function(o){var s=o.drag,a=o.clientRect;return s===e?i.length<2:"horizontal"===r.orientation?t>a.left&&t<a.right:n>a.top&&n<a.bottom});if(o||!(i.length>0)){var s=o&&!this._dragDropRegistry.isDragging(o.drag)?o.drag.element.nativeElement:null,a=s?s.nextSibling:null,p=s?s.parentElement:this.element.nativeElement,c=e.getPlaceholderElement();a?p.insertBefore(c,a===c?s:a):p.appendChild(c),this._refreshPositions()}},e.prototype._getSiblingContainerFromPosition=function(e,t){var n=this._positionCache.siblings.find(function(n){var r=n.clientRect,i=r.top,o=r.bottom,s=r.left,a=r.right;return t>=i&&t<=o&&e>=s&&e<=a});return n?n.drop:null},e.prototype._refreshPositions=function(){var e=this;this._positionCache.items=this._draggables.map(function(e){return{drag:e,clientRect:e.element.nativeElement.getBoundingClientRect()}}).sort(function(e,t){return e.clientRect.top-t.clientRect.top}),this._positionCache.siblings=this.connectedTo.map(function(t){return"string"==typeof t?e._dragDropRegistry.getDropContainer(t):t}).filter(Boolean).map(function(e){return{drop:e,clientRect:e.element.nativeElement.getBoundingClientRect()}})},e.prototype._reset=function(){this._dragging=!1,this._positionCache.items=[],this._positionCache.siblings=[]},e.decorators=[{type:t.Component,args:[{selector:"cdk-drop",exportAs:"cdkDrop",template:"<ng-content></ng-content>",encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"],providers:[{provide:h,useExisting:e}],host:{class:"cdk-drop","[id]":"id","[class.cdk-drop-dragging]":"_dragging"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:m}]},e.propDecorators={_draggables:[{type:t.ContentChildren,args:[t.forwardRef(function(){return f})]}],connectedTo:[{type:t.Input}],data:[{type:t.Input}],orientation:[{type:t.Input}],id:[{type:t.Input}],dropped:[{type:t.Output}],entered:[{type:t.Output}],exited:[{type:t.Output}]},e}(),D=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[y,f,l,g,u],exports:[y,f,l,g,u]}]}],e}();e.CdkDrop=y,e.CDK_DROP_CONTAINER=h,e.CdkDrag=f,e.CdkDragHandle=l,e.moveItemInArray=p,e.transferArrayItem=c,e.CdkDragPreview=g,e.CdkDragPlaceholder=u,e.DragDropModule=D,e.CdkDragDropRegistry=m,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=cdk-experimental-drag-drop.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/collections")):"function"==typeof define&&define.amd?define("@angular/cdk-experimental/scrolling",["exports","@angular/core","@angular/cdk/coercion","rxjs","rxjs/operators","@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.collections)}(this,function(e,t,r,n,i,o){"use strict";function a(e){return e._scrollStrategy}function s(e){return e._scrollStrategy}function d(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 l=function(){return l=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},l.apply(this,arguments)},h=new t.InjectionToken("VIRTUAL_SCROLL_STRATEGY"),u=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}(),f=function(){function e(e,t,r){void 0===r&&(r=new u),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.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,c=this._lastRenderedContentOffset+this._lastRenderedContentSize-(this._lastScrollOffset+e.getViewportSize()),l=n+this._minBufferPx-(r<0?d:c);if(l>0)if(n>=e.getViewportSize())this._setScrollOffset();else{var h=Math.max(0,Math.ceil((l-this._minBufferPx+this._addBufferPx)/this._averager.getAverageItemSize())),u=(r<0?c: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}(),p=function(){function e(){this._minBufferPx=100,this._addBufferPx=200,this._scrollStrategy=new f(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:h,useFactory:a,deps:[t.forwardRef(function(){return e})]}]}]}],e.propDecorators={minBufferPx:[{type:t.Input}],addBufferPx:[{type:t.Input}]},e}(),_=function(){function e(e,t){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._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._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)}},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)}:l({},e)},e}(),g=function(){function e(){this._itemSize=20,this._bufferSize=5,this._scrollStrategy=new _(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:h,useFactory:s,deps:[t.forwardRef(function(){return e})]}]}]}],e.propDecorators={itemSize:[{type:t.Input}],bufferSize:[{type:t.Input}]},e}(),v=function(){function e(e,t,r,i){this.elementRef=e,this._changeDetectorRef=t,this._ngZone=r,this._scrollStrategy=i,this._detachedSubject=new n.Subject,this._renderedRangeSubject=new n.Subject,this.orientation="vertical",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._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;d(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.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._ngZone.isStable?t._doChangeDetection():t._ngZone.onStable.pipe(i.take(1)).subscribe(function(){return t._doChangeDetection()})})}))},e.prototype._doChangeDetection=function(){var e=this;this._isChangeDetectionPending=!1,this._ngZone.run(function(){return e._changeDetectorRef.detectChanges()}),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);for(var t=0,r=this._runAfterChangeDetection;t<r.length;t++){(0,r[t])()}this._runAfterChangeDetection=[]},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:[h]}]}]},e.propDecorators={orientation:[{type:t.Input}],_contentWrapper:[{type:t.ViewChild,args:["contentWrapper"]}]},e}(),m=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 o.DataSource?e:new o.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:v,decorators:[{type:t.SkipSelf}]}]},e.propDecorators={cdkVirtualForOf:[{type:t.Input}],cdkVirtualForTrackBy:[{type:t.Input}],cdkVirtualForTemplate:[{type:t.Input}],cdkVirtualForTemplateCacheSize:[{type:t.Input}]},e}(),S=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{exports:[p,g,m,v],declarations:[p,g,m,v]}]}],e}();e.ItemSizeAverager=u,e.AutoSizeVirtualScrollStrategy=f,e._autoSizeVirtualScrollStrategyFactory=a,e.CdkAutoSizeVirtualScroll=p,e.FixedSizeVirtualScrollStrategy=_,e._fixedSizeVirtualScrollStrategyFactory=s,e.CdkFixedSizeVirtualScroll=g,e.ScrollingModule=S,e.CdkVirtualForOf=m,e.VIRTUAL_SCROLL_STRATEGY=h,e.CdkVirtualScrollViewport=v,Object.defineProperty(e,"__esModule",{value:!0})});
!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})});
//# sourceMappingURL=cdk-experimental-scrolling.umd.min.js.map

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

*/
var /** @type {?} */ VERSION = new core.Version('6.4.1');
var /** @type {?} */ VERSION = new core.Version('6.4.2');

@@ -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.1");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("6.4.2");e.VERSION=r,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=cdk-experimental.umd.min.js.map

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

*/
import { ElementRef, AfterContentInit, NgZone, OnDestroy, EventEmitter, ViewContainerRef, QueryList } from '@angular/core';
import { ElementRef, EventEmitter, NgZone, OnDestroy, QueryList, ViewContainerRef } from '@angular/core';
import { Directionality } from '@angular/cdk/bidi';

@@ -17,4 +17,5 @@ import { CdkDragHandle } from './drag-handle';

import { ViewportRuler } from '@angular/cdk/overlay';
import { CdkDragDropRegistry } from './drag-drop-registry';
/** Element that can be moved inside a CdkDrop container. */
export declare class CdkDrag implements AfterContentInit, OnDestroy {
export declare class CdkDrag<T = any> implements OnDestroy {
/** Element that the draggable is attached to. */

@@ -27,4 +28,6 @@ element: ElementRef<HTMLElement>;

private _viewportRuler;
private _dragDropRegistry;
private _dir;
private _document;
private _destroyed;
/** Element displayed next to the user's pointer while the element is dragged. */

@@ -43,2 +46,7 @@ private _preview;

/**
* Reference to the element that comes after the draggable in the DOM, at the time
* it was picked up. Used for restoring its initial position when it's dropped.
*/
private _nextSibling;
/**
* CSS `transform` applied to the element when it isn't being dragged. We need a

@@ -52,4 +60,2 @@ * passive transform in order for the dragged element to retain its new position

private _activeTransform;
/** Whether the element is being dragged. */
private _isDragging;
/** Whether the element has moved since the user started dragging it. */

@@ -69,2 +75,4 @@ private _hasMoved;

_placeholderTemplate: CdkDragPlaceholder;
/** Arbitrary data to attach to this drag instance. */
data: T;
/** Emits when the user starts dragging the item. */

@@ -79,3 +87,3 @@ started: EventEmitter<CdkDragStart>;

/** Emits when the user drops the item inside a container. */
dropped: EventEmitter<CdkDragDrop<any, any>>;
dropped: EventEmitter<CdkDragDrop<any>>;
constructor(

@@ -85,3 +93,3 @@ /** Element that the draggable is attached to. */

/** Droppable container that the draggable is a part of. */
dropContainer: CdkDropContainer, document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dir: Directionality);
dropContainer: CdkDropContainer, document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dragDropRegistry: CdkDragDropRegistry, _dir: Directionality);
/**

@@ -92,3 +100,2 @@ * Returns the element that is being used as a placeholder

getPlaceholderElement(): HTMLElement;
ngAfterContentInit(): void;
ngOnDestroy(): void;

@@ -117,4 +124,4 @@ /** Starts the dragging sequence. */

private _createPlaceholderElement();
/** Gets the index of the dragable element, based on its index in the DOM. */
private _getElementIndexInDom();
/** Gets the index of an element, based on its index in the DOM. */
private _getElementIndexInDom(element);
/**

@@ -143,8 +150,4 @@ * Figures out the coordinates at which an element was picked up.

private _removeElement(element);
/** Removes the global event listeners that were bound by this draggable. */
private _removeDocumentEvents();
/** Determines the point of the page that was touched by the user. */
private _getPointerPositionOnPage(event);
/** Listener used to prevent `touchmove` events while the element is being dragged. */
private _preventScrollListener;
/** Determines whether an event is a touch event. */

@@ -156,9 +159,4 @@ private _isTouchEvent(event);

private _destroyPlaceholder();
/**
* Registers global event listeners that are used for moving the element.
* @param event Event that initiated the dragging.
*/
private _registerMoveListeners(event);
/** Gets the `transition-duration` of an element in milliseconds. */
private _getTransitionDurationInMs(element);
}

@@ -8,19 +8,27 @@ /**

*/
import { EventEmitter, ElementRef, QueryList } from '@angular/core';
import { ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { CdkDrag } from './drag';
import { CdkDragExit, CdkDragEnter, CdkDragDrop } from './drag-events';
import { CdkDragDropRegistry } from './drag-drop-registry';
/** Container that wraps a set of draggable items. */
export declare class CdkDrop<T = any> {
export declare class CdkDrop<T = any> implements OnInit, OnDestroy {
element: ElementRef<HTMLElement>;
private _dragDropRegistry;
/** Draggable items in the container. */
_draggables: QueryList<CdkDrag>;
/**
* Other draggable containers that this container is connected
* to and into which the container's items can be transferred.
* Other draggable containers that this container is connected to and into which the
* container's items can be transferred. Can either be references to other drop containers,
* or their unique IDs.
*/
connectedTo: CdkDrop[];
/** Arbitrary data to attach to all events emitted by this container. */
connectedTo: (CdkDrop | string)[];
/** Arbitrary data to attach to this container. */
data: T;
/** Direction in which the list is oriented. */
orientation: 'horizontal' | 'vertical';
/**
* Unique ID for the drop zone. Can be used as a reference
* in the `connectedTo` of another `CdkDrop`.
*/
id: string;
/** Emits when the user drops an item inside the container. */

@@ -37,3 +45,5 @@ dropped: EventEmitter<CdkDragDrop<T, any>>;

exited: EventEmitter<CdkDragExit<T>>;
constructor(element: ElementRef<HTMLElement>);
constructor(element: ElementRef<HTMLElement>, _dragDropRegistry: CdkDragDropRegistry);
ngOnInit(): void;
ngOnDestroy(): void;
/** Whether an item in the container is being dragged. */

@@ -40,0 +50,0 @@ _dragging: boolean;

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

{"__symbolic":"module","version":4,"metadata":{"CdkDrop":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-drop","exportAs":"cdkDrop","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":30,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":31,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"},"useExisting":{"__symbolic":"reference","name":"CdkDrop"}}],"host":{"class":"cdk-drop","[class.cdk-drop-dragging]":"_dragging","$quoted$":["class","[class.cdk-drop-dragging]"]},"styles":[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]}]}],"members":{"_draggables":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":43,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDrag"}]}]}],"connectedTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":3}}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":63,"character":3}}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":71,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drop"}]}]}],"start":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"enter":[{"__symbolic":"method"}],"exit":[{"__symbolic":"method"}],"getItemIndex":[{"__symbolic":"method"}],"_sortItem":[{"__symbolic":"method"}],"_getSiblingContainerFromPosition":[{"__symbolic":"method"}],"_refreshPositions":[{"__symbolic":"method"}],"_reset":[{"__symbolic":"method"}]}},"CdkDropContainer":{"__symbolic":"interface"},"CDK_DROP_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":55,"character":38},"arguments":["CDK_DROP_CONTAINER"]},"CdkDrag":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":42,"character":1},"arguments":[{"selector":"[cdkDrag]","exportAs":"cdkDrag","host":{"class":"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)","$quoted$":["class","(mousedown)","(touchstart)"]}}]}],"members":{"_handles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":96,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragHandle"}]}]}],"_previewTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":99,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPreview"}]}]}],"_placeholderTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":104,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"started":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":107,"character":3},"arguments":["cdkDragStarted"]}]}],"ended":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":110,"character":3},"arguments":["cdkDragEnded"]}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":113,"character":3},"arguments":["cdkDragEntered"]}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":116,"character":3},"arguments":["cdkDragExited"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":119,"character":3},"arguments":["cdkDragDropped"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":125,"character":5},"arguments":[{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":125,"character":33}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":125,"character":45}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":126,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DOCUMENT","line":126,"character":12}]}],null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":130,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drag"}]},{"__symbolic":"reference","name":"CdkDropContainer"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":127,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":128,"character":31},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"ViewportRuler","line":129,"character":28},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":130,"character":30}]}],"getPlaceholderElement":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_startDragging":[{"__symbolic":"method"}],"_cleanupDragArtifacts":[{"__symbolic":"method"}],"_updateActiveDropContainer":[{"__symbolic":"method"}],"_createPreviewElement":[{"__symbolic":"method"}],"_createPlaceholderElement":[{"__symbolic":"method"}],"_getElementIndexInDom":[{"__symbolic":"method"}],"_getPointerPositionInElement":[{"__symbolic":"method"}],"_animatePreviewToPlaceholder":[{"__symbolic":"method"}],"_setTransform":[{"__symbolic":"method"}],"_removeElement":[{"__symbolic":"method"}],"_removeDocumentEvents":[{"__symbolic":"method"}],"_getPointerPositionOnPage":[{"__symbolic":"method"}],"_isTouchEvent":[{"__symbolic":"method"}],"_destroyPreview":[{"__symbolic":"method"}],"_destroyPlaceholder":[{"__symbolic":"method"}],"_registerMoveListeners":[{"__symbolic":"method"}],"_getTransitionDurationInMs":[{"__symbolic":"method"}]}},"CdkDragHandle":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[cdkDragHandle]","host":{"class":"cdk-drag-handle","$quoted$":["class"]}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drag-handle"}]}]}]}},"CdkDragStart":{"__symbolic":"interface"},"CdkDragEnd":{"__symbolic":"interface"},"CdkDragEnter":{"__symbolic":"interface"},"CdkDragExit":{"__symbolic":"interface"},"CdkDragDrop":{"__symbolic":"interface"},"moveItemInArray":{"__symbolic":"function"},"transferArrayItem":{"__symbolic":"function"},"CdkDragPreview":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPreview]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-preview"}]}]}]}},"CdkDragPlaceholder":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPlaceholder]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-placeholder"}]}]}]}},"DragDropModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}],"exports":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"members":{}}},"origins":{"CdkDrop":"./drop","CdkDropContainer":"./drop-container","CDK_DROP_CONTAINER":"./drop-container","CdkDrag":"./drag","CdkDragHandle":"./drag-handle","CdkDragStart":"./drag-events","CdkDragEnd":"./drag-events","CdkDragEnter":"./drag-events","CdkDragExit":"./drag-events","CdkDragDrop":"./drag-events","moveItemInArray":"./drag-utils","transferArrayItem":"./drag-utils","CdkDragPreview":"./drag-preview","CdkDragPlaceholder":"./drag-placeholder","DragDropModule":"./drag-drop-module"},"importAs":"@angular/cdk-experimental/drag-drop"}
{"__symbolic":"module","version":4,"metadata":{"CdkDrop":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-drop","exportAs":"cdkDrop","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":36,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"},"useExisting":{"__symbolic":"reference","name":"CdkDrop"}}],"host":{"class":"cdk-drop","[id]":"id","[class.cdk-drop-dragging]":"_dragging","$quoted$":["class","[id]","[class.cdk-drop-dragging]"]},"styles":[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]}]}],"members":{"_draggables":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":50,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDrag"}]}]}],"connectedTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":77,"character":3}}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":83,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":86,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drop"}]},{"__symbolic":"reference","name":"CdkDragDropRegistry"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"start":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"enter":[{"__symbolic":"method"}],"exit":[{"__symbolic":"method"}],"getItemIndex":[{"__symbolic":"method"}],"_sortItem":[{"__symbolic":"method"}],"_getSiblingContainerFromPosition":[{"__symbolic":"method"}],"_refreshPositions":[{"__symbolic":"method"}],"_reset":[{"__symbolic":"method"}]}},"CdkDropContainer":{"__symbolic":"interface"},"CDK_DROP_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":55,"character":38},"arguments":["CDK_DROP_CONTAINER"]},"CdkDrag":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":42,"character":1},"arguments":[{"selector":"[cdkDrag]","exportAs":"cdkDrag","host":{"class":"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)","$quoted$":["class","(mousedown)","(touchstart)"]}}]}],"members":{"_handles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":100,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragHandle"}]}]}],"_previewTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":103,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPreview"}]}]}],"_placeholderTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":108,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3}}]}],"started":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":114,"character":3},"arguments":["cdkDragStarted"]}]}],"ended":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":117,"character":3},"arguments":["cdkDragEnded"]}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":120,"character":3},"arguments":["cdkDragEntered"]}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":124,"character":3},"arguments":["cdkDragExited"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":128,"character":3},"arguments":["cdkDragDropped"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":135,"character":5},"arguments":[{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":135,"character":33}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":135,"character":45}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":136,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":136,"character":12}]}],null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":141,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":133,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drag"}]},{"__symbolic":"reference","name":"CdkDropContainer"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":137,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":138,"character":31},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"ViewportRuler","line":139,"character":28},{"__symbolic":"reference","name":"CdkDragDropRegistry"},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":141,"character":30}]}],"getPlaceholderElement":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_startDragging":[{"__symbolic":"method"}],"_cleanupDragArtifacts":[{"__symbolic":"method"}],"_updateActiveDropContainer":[{"__symbolic":"method"}],"_createPreviewElement":[{"__symbolic":"method"}],"_createPlaceholderElement":[{"__symbolic":"method"}],"_getElementIndexInDom":[{"__symbolic":"method"}],"_getPointerPositionInElement":[{"__symbolic":"method"}],"_animatePreviewToPlaceholder":[{"__symbolic":"method"}],"_setTransform":[{"__symbolic":"method"}],"_removeElement":[{"__symbolic":"method"}],"_getPointerPositionOnPage":[{"__symbolic":"method"}],"_isTouchEvent":[{"__symbolic":"method"}],"_destroyPreview":[{"__symbolic":"method"}],"_destroyPlaceholder":[{"__symbolic":"method"}],"_getTransitionDurationInMs":[{"__symbolic":"method"}]}},"CdkDragHandle":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[cdkDragHandle]","host":{"class":"cdk-drag-handle","$quoted$":["class"]}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drag-handle"}]}]}]}},"CdkDragStart":{"__symbolic":"interface"},"CdkDragEnd":{"__symbolic":"interface"},"CdkDragEnter":{"__symbolic":"interface"},"CdkDragExit":{"__symbolic":"interface"},"CdkDragDrop":{"__symbolic":"interface"},"moveItemInArray":{"__symbolic":"function"},"transferArrayItem":{"__symbolic":"function"},"CdkDragPreview":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPreview]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-preview"}]}]}]}},"CdkDragPlaceholder":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPlaceholder]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-placeholder"}]}]}]}},"DragDropModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}],"exports":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"members":{}},"CdkDragDropRegistry":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":56,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":55,"character":21},{"__symbolic":"reference","name":"any"}]}],"register":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"remove":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"startDragging":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"isDragging":[{"__symbolic":"method"}],"getDropContainer":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_clearGlobalListeners":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"CdkDrop":"./drop","CdkDropContainer":"./drop-container","CDK_DROP_CONTAINER":"./drop-container","CdkDrag":"./drag","CdkDragHandle":"./drag-handle","CdkDragStart":"./drag-events","CdkDragEnd":"./drag-events","CdkDragEnter":"./drag-events","CdkDragExit":"./drag-events","CdkDragDrop":"./drag-events","moveItemInArray":"./drag-utils","transferArrayItem":"./drag-utils","CdkDragPreview":"./drag-preview","CdkDragPlaceholder":"./drag-placeholder","DragDropModule":"./drag-drop-module","CdkDragDropRegistry":"./drag-drop-registry"},"importAs":"@angular/cdk-experimental/drag-drop"}

@@ -17,1 +17,2 @@ /**

export * from './drag-drop-module';
export * from './drag-drop-registry';

@@ -17,3 +17,3 @@ /**

*/
const /** @type {?} */ VERSION = new Version('6.4.1');
const /** @type {?} */ VERSION = new Version('6.4.2');

@@ -20,0 +20,0 @@ /**

@@ -8,7 +8,9 @@ /**

*/
import { Directive, ElementRef, InjectionToken, TemplateRef, Input, ContentChild, Inject, Optional, NgZone, SkipSelf, Output, EventEmitter, ViewContainerRef, ContentChildren, Component, forwardRef, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
import { Directive, ElementRef, InjectionToken, TemplateRef, Input, Injectable, NgZone, Inject, ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Output, ViewEncapsulation, ContentChild, Optional, SkipSelf, ViewContainerRef, NgModule, defineInjectable, inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { supportsPassiveEventListeners } from '@angular/cdk/platform';
import { Subject, merge } from 'rxjs';
import { Directionality } from '@angular/cdk/bidi';
import { supportsPassiveEventListeners } from '@angular/cdk/platform';
import { ViewportRuler } from '@angular/cdk/overlay';
import { takeUntil } from 'rxjs/operators';

@@ -122,3 +124,182 @@ /**

/**
* Service that keeps track of all the `CdkDrag` and `CdkDrop` instances, and
* manages global event listeners on the `document`.
* \@docs-private
*/
class CdkDragDropRegistry {
/**
* @param {?} _ngZone
* @param {?} _document
*/
constructor(_ngZone, _document) {
this._ngZone = _ngZone;
/**
* Registered `CdkDrop` instances.
*/
this._dropInstances = new Set();
/**
* Registered `CdkDrag` instances.
*/
this._dragInstances = new Set();
/**
* `CdkDrag` instances that are currently being dragged.
*/
this._activeDragInstances = new Set();
/**
* Keeps track of the event listeners that we've bound to the `document`.
*/
this._globalListeners = new Map();
/**
* Emits the `touchmove` or `mousemove` events that are dispatched
* while the user is dragging a `CdkDrag` instance.
*/
this.pointerMove = new Subject();
/**
* Emits the `touchend` or `mouseup` events that are dispatched
* while the user is dragging a `CdkDrag` instance.
*/
this.pointerUp = new Subject();
/**
* Listener used to prevent `touchmove` events while the element is being dragged.
* This gets bound once, ahead of time, because WebKit won't preventDefault on a
* dynamically-added `touchmove` listener. See https://bugs.webkit.org/show_bug.cgi?id=184250.
*/
this._preventScrollListener = (event) => {
if (this._activeDragInstances.size) {
event.preventDefault();
}
};
this._document = _document;
}
/**
* @param {?} instance
* @return {?}
*/
register(instance) {
if (instance instanceof CdkDrop) {
if (!this._dropInstances.has(instance)) {
if (this.getDropContainer(instance.id)) {
throw Error(`Drop instance with id "${instance.id}" has already been registered.`);
}
this._dropInstances.add(instance);
}
}
else {
this._dragInstances.add(instance);
if (this._dragInstances.size === 1) {
this._ngZone.runOutsideAngular(() => {
// The event handler has to be explicitly active, because
// newer browsers make it passive by default.
this._document.addEventListener('touchmove', this._preventScrollListener, activeEventOptions);
});
}
}
}
/**
* @param {?} instance
* @return {?}
*/
remove(instance) {
if (instance instanceof CdkDrop) {
this._dropInstances.delete(instance);
}
else {
this._dragInstances.delete(instance);
this.stopDragging(instance);
if (this._dragInstances.size === 0) {
this._document.removeEventListener('touchmove', this._preventScrollListener, /** @type {?} */ (activeEventOptions));
}
}
}
/**
* Starts the dragging sequence for a drag instance.
* @param {?} drag Drag instance which is being dragged.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
startDragging(drag, event) {
this._activeDragInstances.add(drag);
if (this._activeDragInstances.size === 1) {
const /** @type {?} */ isTouchEvent = event.type.startsWith('touch');
const /** @type {?} */ moveEvent = isTouchEvent ? 'touchmove' : 'mousemove';
const /** @type {?} */ upEvent = isTouchEvent ? 'touchend' : 'mouseup';
// We explicitly bind __active__ listeners here, because newer browsers will default to
// passive ones for `mousemove` and `touchmove`. The events need to be active, because we
// use `preventDefault` to prevent the page from scrolling while the user is dragging.
this._globalListeners
.set(moveEvent, { handler: e => this.pointerMove.next(e), options: activeEventOptions })
.set(upEvent, { handler: e => this.pointerUp.next(e) })
.forEach((config, name) => {
this._ngZone.runOutsideAngular(() => {
this._document.addEventListener(name, config.handler, config.options);
});
});
}
}
/**
* Stops dragging a `CdkDrag` instance.
* @param {?} drag
* @return {?}
*/
stopDragging(drag) {
this._activeDragInstances.delete(drag);
if (this._activeDragInstances.size === 0) {
this._clearGlobalListeners();
}
}
/**
* Gets whether a `CdkDrag` instance is currently being dragged.
* @param {?} drag
* @return {?}
*/
isDragging(drag) {
return this._activeDragInstances.has(drag);
}
/**
* Gets a `CdkDrop` instance by its id.
* @template T
* @param {?} id
* @return {?}
*/
getDropContainer(id) {
return Array.from(this._dropInstances).find(instance => instance.id === id);
}
/**
* @return {?}
*/
ngOnDestroy() {
this._dragInstances.forEach(instance => this.remove(instance));
this._dropInstances.forEach(instance => this.remove(instance));
this._clearGlobalListeners();
this.pointerMove.complete();
this.pointerUp.complete();
}
/**
* Clears out the global event listeners from the `document`.
* @return {?}
*/
_clearGlobalListeners() {
this._globalListeners.forEach((config, name) => {
this._document.removeEventListener(name, config.handler, config.options);
});
this._globalListeners.clear();
}
}
CdkDragDropRegistry.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] },
];
/** @nocollapse */
CdkDragDropRegistry.ctorParameters = () => [
{ type: NgZone, },
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] },] },
];
/** @nocollapse */ CdkDragDropRegistry.ngInjectableDef = defineInjectable({ factory: function CdkDragDropRegistry_Factory() { return new CdkDragDropRegistry(inject(NgZone), inject(DOCUMENT)); }, token: CdkDragDropRegistry, providedIn: "root" });
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Element that can be moved inside a CdkDrop container.
* @template T
*/

@@ -133,6 +314,7 @@ class CdkDrag {

* @param {?} _viewportRuler
* @param {?} _dragDropRegistry
* @param {?} _dir
*/
constructor(element, /** Droppable container that the draggable is a part of. */
dropContainer, document, _ngZone, _viewContainerRef, _viewportRuler, _dir) {
dropContainer, document, _ngZone, _viewContainerRef, _viewportRuler, _dragDropRegistry, _dir) {
this.element = element;

@@ -143,3 +325,5 @@ this.dropContainer = dropContainer;

this._viewportRuler = _viewportRuler;
this._dragDropRegistry = _dragDropRegistry;
this._dir = _dir;
this._destroyed = new Subject();
/**

@@ -157,6 +341,2 @@ * CSS `transform` applied to the element when it isn't being dragged. We need a

/**
* Whether the element is being dragged.
*/
this._isDragging = false;
/**
* Whether the element has moved since the user started dragging it.

@@ -189,6 +369,13 @@ */

this._pointerDown = (referenceElement, event) => {
if (this._isDragging) {
if (this._dragDropRegistry.isDragging(this)) {
return;
}
this._isDragging = true;
const /** @type {?} */ endedOrDestroyed = merge(this.ended, this._destroyed);
this._dragDropRegistry.pointerMove
.pipe(takeUntil(endedOrDestroyed))
.subscribe(this._pointerMove);
this._dragDropRegistry.pointerUp
.pipe(takeUntil(endedOrDestroyed))
.subscribe(this._pointerUp);
this._dragDropRegistry.startDragging(this, event);
this._initialContainer = this.dropContainer;

@@ -201,3 +388,2 @@ this._scrollPosition = this._viewportRuler.getViewportScrollPosition();

this._pickupPositionOnPage = this._getPointerPositionOnPage(event);
this._registerMoveListeners(event);
// Emit the event on the item before the one on the container.

@@ -213,2 +399,3 @@ this.started.emit({ source: this });

element.style.display = 'none';
this._nextSibling = element.nextSibling;
this._document.body.appendChild(/** @type {?} */ ((element.parentNode)).replaceChild(placeholder, element));

@@ -223,3 +410,5 @@ this._document.body.appendChild(preview);

this._pointerMove = (event) => {
if (!this._isDragging) {
// TODO: this should start dragging after a certain threshold,
// otherwise we risk interfering with clicks on the element.
if (!this._dragDropRegistry.isDragging(this)) {
return;

@@ -244,7 +433,6 @@ }

this._pointerUp = () => {
if (!this._isDragging) {
if (!this._dragDropRegistry.isDragging(this)) {
return;
}
this._removeDocumentEvents();
this._isDragging = false;
this._dragDropRegistry.stopDragging(this);
if (!this.dropContainer) {

@@ -261,11 +449,4 @@ // Convert the active transform into a passive one. This means that next time

};
/**
* Listener used to prevent `touchmove` events while the element is being dragged.
*/
this._preventScrollListener = (event) => {
if (this._isDragging) {
event.preventDefault();
}
};
this._document = document;
_dragDropRegistry.register(this);
}

@@ -283,19 +464,8 @@ /**

*/
ngAfterContentInit() {
// WebKit won't preventDefault on a dynamically-added `touchmove` listener, which means that
// we need to add one ahead of time. See https://bugs.webkit.org/show_bug.cgi?id=184250.
// TODO: move into a central registry.
this._ngZone.runOutsideAngular(() => {
this._document.addEventListener('touchmove', this._preventScrollListener, activeEventOptions);
});
}
/**
* @return {?}
*/
ngOnDestroy() {
this._removeDocumentEvents();
this._destroyPreview();
this._destroyPlaceholder();
this._document.removeEventListener('touchmove', this._preventScrollListener, /** @type {?} */ (activeEventOptions));
if (this._isDragging) {
// Do this check before removing from the registry since it'll
// stop being considered as dragged once it is removed.
if (this._dragDropRegistry.isDragging(this)) {
// Since we move out the element to the end of the body while it's being

@@ -305,2 +475,6 @@ // dragged, we have to make sure that it's removed if it gets destroyed.

}
this._nextSibling = null;
this._dragDropRegistry.remove(this);
this._destroyed.next();
this._destroyed.complete();
}

@@ -333,9 +507,18 @@ /**

_cleanupDragArtifacts() {
this._destroyPreview(); /** @type {?} */
((this._placeholder.parentNode)).insertBefore(this.element.nativeElement, this._placeholder);
const /** @type {?} */ currentIndex = this._getElementIndexInDom(this._placeholder);
// Restore the element's visibility and insert it at its old position in the DOM.
// It's important that we maintain the position, because moving the element around in the DOM
// can throw off `NgFor` which does smart diffing and re-creates elements only when necessary,
// while moving the existing elements in all other cases.
this.element.nativeElement.style.display = '';
if (this._nextSibling) {
/** @type {?} */ ((this._nextSibling.parentNode)).insertBefore(this.element.nativeElement, this._nextSibling);
}
else {
/** @type {?} */ ((this._placeholder.parentNode)).appendChild(this.element.nativeElement);
}
this._destroyPreview();
this._destroyPlaceholder();
this.element.nativeElement.style.display = '';
// Re-enter the NgZone since we bound `document` events on the outside.
this._ngZone.run(() => {
const /** @type {?} */ currentIndex = this._getElementIndexInDom();
this.ended.emit({ source: this });

@@ -418,6 +601,7 @@ this.dropped.emit({

/**
* Gets the index of the dragable element, based on its index in the DOM.
* Gets the index of an element, based on its index in the DOM.
* @param {?} element
* @return {?}
*/
_getElementIndexInDom() {
_getElementIndexInDom(element) {
// Note: we may be able to figure this in memory while sorting, but doing so won't be very

@@ -427,3 +611,2 @@ // reliable when transferring between containers, because the new container doesn't have

// isn't using an `ngFor` to render the list.
const /** @type {?} */ element = this.element.nativeElement;
if (!element.parentElement) {

@@ -532,12 +715,2 @@ return -1;

/**
* Removes the global event listeners that were bound by this draggable.
* @return {?}
*/
_removeDocumentEvents() {
this._document.removeEventListener('mousemove', this._pointerMove, /** @type {?} */ (activeEventOptions));
this._document.removeEventListener('touchmove', this._pointerMove, /** @type {?} */ (activeEventOptions));
this._document.removeEventListener('mouseup', this._pointerUp);
this._document.removeEventListener('touchend', this._pointerUp);
}
/**
* Determines the point of the page that was touched by the user.

@@ -589,18 +762,2 @@ * @param {?} event

/**
* Registers global event listeners that are used for moving the element.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
_registerMoveListeners(event) {
this._ngZone.runOutsideAngular(() => {
const /** @type {?} */ isTouchEvent = this._isTouchEvent(event);
// We explicitly bind __active__ listeners here, because newer browsers
// will default to passive ones for `mousemove` and `touchmove`.
// TODO: this should be bound in `mousemove` and after a certain threshold,
// otherwise it'll interfere with clicks on the element.
this._document.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this._pointerMove, activeEventOptions);
this._document.addEventListener(isTouchEvent ? 'touchend' : 'mouseup', this._pointerUp);
});
}
/**
* Gets the `transition-duration` of an element in milliseconds.

@@ -636,2 +793,3 @@ * @param {?} element

{ type: ViewportRuler, },
{ type: CdkDragDropRegistry, },
{ type: Directionality, decorators: [{ type: Optional },] },

@@ -643,2 +801,3 @@ ];

"_placeholderTemplate": [{ type: ContentChild, args: [CdkDragPlaceholder,] },],
"data": [{ type: Input },],
"started": [{ type: Output, args: ['cdkDragStarted',] },],

@@ -656,2 +815,6 @@ "ended": [{ type: Output, args: ['cdkDragEnded',] },],

/**
* Counter used to generate unique ids for drop zones.
*/
let /** @type {?} */ _uniqueIdCounter = 0;
/**
* Container that wraps a set of draggable items.

@@ -663,8 +826,11 @@ * @template T

* @param {?} element
* @param {?} _dragDropRegistry
*/
constructor(element) {
constructor(element, _dragDropRegistry) {
this.element = element;
this._dragDropRegistry = _dragDropRegistry;
/**
* Other draggable containers that this container is connected
* to and into which the container's items can be transferred.
* Other draggable containers that this container is connected to and into which the
* container's items can be transferred. Can either be references to other drop containers,
* or their unique IDs.
*/

@@ -677,2 +843,7 @@ this.connectedTo = [];

/**
* Unique ID for the drop zone. Can be used as a reference
* in the `connectedTo` of another `CdkDrop`.
*/
this.id = `cdk-drop-${_uniqueIdCounter++}`;
/**
* Emits when the user drops an item inside the container.

@@ -703,2 +874,14 @@ */

/**
* @return {?}
*/
ngOnInit() {
this._dragDropRegistry.register(this);
}
/**
* @return {?}
*/
ngOnDestroy() {
this._dragDropRegistry.remove(this);
}
/**
* Starts dragging an item.

@@ -766,3 +949,5 @@ * @return {?}

if (drag === item) {
return false;
// If there's only one left item in the container, it must be
// the dragged item itself so we use it as a reference.
return siblings.length < 2;
}

@@ -776,3 +961,6 @@ return this.orientation === 'horizontal' ?

}
const /** @type {?} */ element = newPosition ? newPosition.drag.element.nativeElement : null;
// Don't take the element of a dragged item as a reference,
// because it has been moved down to the end of the body.
const /** @type {?} */ element = (newPosition && !this._dragDropRegistry.isDragging(newPosition.drag)) ?
newPosition.drag.element.nativeElement : null;
const /** @type {?} */ next = element ? /** @type {?} */ ((element)).nextSibling : null;

@@ -813,2 +1001,4 @@ const /** @type {?} */ parent = element ? /** @type {?} */ ((element.parentElement)) : this.element.nativeElement;

this._positionCache.siblings = this.connectedTo
.map(drop => typeof drop === 'string' ? /** @type {?} */ ((this._dragDropRegistry.getDropContainer(drop))) : drop)
.filter(Boolean)
.map(drop => ({ drop, clientRect: drop.element.nativeElement.getBoundingClientRect() }));

@@ -838,2 +1028,3 @@ }

'class': 'cdk-drop',
'[id]': 'id',
'[class.cdk-drop-dragging]': '_dragging'

@@ -846,2 +1037,3 @@ }

{ type: ElementRef, },
{ type: CdkDragDropRegistry, },
];

@@ -853,2 +1045,3 @@ CdkDrop.propDecorators = {

"orientation": [{ type: Input },],
"id": [{ type: Input },],
"dropped": [{ type: Output },],

@@ -946,3 +1139,3 @@ "entered": [{ type: Output },],

export { CdkDrop, CDK_DROP_CONTAINER, CdkDrag, CdkDragHandle, moveItemInArray, transferArrayItem, CdkDragPreview, CdkDragPlaceholder, DragDropModule };
export { CdkDrop, CDK_DROP_CONTAINER, CdkDrag, CdkDragHandle, moveItemInArray, transferArrayItem, CdkDragPreview, CdkDragPlaceholder, DragDropModule, CdkDragDropRegistry };
//# sourceMappingURL=drag-drop.js.map

@@ -8,6 +8,7 @@ /**

*/
import { InjectionToken, Directive, forwardRef, Input, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, NgZone, ViewChild, ViewEncapsulation, IterableDiffers, SkipSelf, TemplateRef, ViewContainerRef, NgModule } from '@angular/core';
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 { animationFrameScheduler, fromEvent, Subject, Observable } from 'rxjs';
import { sampleTime, take, takeUntil, pairwise, shareReplay, startWith, switchMap } from 'rxjs/operators';
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';

@@ -90,2 +91,10 @@

/**
* \@docs-private Implemented as part of VirtualScrollStrategy.
*/
this.scrolledIndexChange = Observable.create(() => {
// TODO(mmalerba): Implement.
throw Error('cdk-virtual-scroll: scrolledIndexChange is currently not supported for the' +
' autosize scroll strategy');
});
/**
* The attached viewport.

@@ -159,2 +168,11 @@ */

/**
* Scroll to the offset for the given index.
* @return {?}
*/
scrollToIndex() {
// TODO(mmalerba): Implement.
throw Error('cdk-virtual-scroll: scrollToIndex is currently not supported for the autosize'
+ ' scroll strategy');
}
/**
* Update the buffer parameters.

@@ -484,3 +502,8 @@ * @param {?} minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).

constructor(itemSize, bufferSize) {
this._scrolledIndexChange = new Subject();
/**
* \@docs-private Implemented as part of VirtualScrollStrategy.
*/
this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());
/**
* The attached viewport.

@@ -507,2 +530,3 @@ */

detach() {
this._scrolledIndexChange.complete();
this._viewport = null;

@@ -552,2 +576,13 @@ }

/**
* 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.

@@ -577,2 +612,3 @@ * @return {?}

this._viewport.setRenderedContentOffset(this._itemSize * range.start);
this._scrolledIndexChange.next(firstVisibleIndex);
}

@@ -698,2 +734,6 @@ /**

/**
* Emits when a change detection cycle completes.
*/
this._changeDetectionComplete = new Subject();
/**
* The direction the viewport scrolls.

@@ -703,2 +743,8 @@ */

/**
* 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.

@@ -772,2 +818,3 @@ */

this._detachedSubject.complete();
this._changeDetectionComplete.complete();
this._destroyed.complete();

@@ -892,3 +939,33 @@ }

/**
* Sets the scroll offset on the viewport.
* 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

@@ -963,8 +1040,3 @@ * @return {?}

this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
if (this._ngZone.isStable) {
this._doChangeDetection();
}
else {
this._ngZone.onStable.pipe(take(1)).subscribe(() => this._doChangeDetection());
}
this._doChangeDetection();
}));

@@ -979,4 +1051,6 @@ }

this._isChangeDetectionPending = false;
// Apply changes to Angular bindings.
this._ngZone.run(() => this._changeDetectorRef.detectChanges());
// 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

@@ -996,6 +1070,8 @@ // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of

}
for (const /** @type {?} */ fn of this._runAfterChangeDetection) {
const /** @type {?} */ runAfterChangeDetection = this._runAfterChangeDetection;
this._runAfterChangeDetection = [];
for (const /** @type {?} */ fn of runAfterChangeDetection) {
fn();
}
this._runAfterChangeDetection = [];
this._ngZone.run(() => this._changeDetectionComplete.next());
}

@@ -1025,2 +1101,3 @@ }

"orientation": [{ type: Input },],
"scrolledIndexChange": [{ type: Output },],
"_contentWrapper": [{ type: ViewChild, args: ['contentWrapper',] },],

@@ -1027,0 +1104,0 @@ };

@@ -17,3 +17,3 @@ /**

*/
var /** @type {?} */ VERSION = new Version('6.4.1');
var /** @type {?} */ VERSION = new Version('6.4.2');

@@ -20,0 +20,0 @@ /**

@@ -8,7 +8,9 @@ /**

*/
import { Directive, ElementRef, InjectionToken, TemplateRef, Input, ContentChild, Inject, Optional, NgZone, SkipSelf, Output, EventEmitter, ViewContainerRef, ContentChildren, Component, forwardRef, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
import { Directive, ElementRef, InjectionToken, TemplateRef, Input, Injectable, NgZone, Inject, ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Output, ViewEncapsulation, ContentChild, Optional, SkipSelf, ViewContainerRef, NgModule, defineInjectable, inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { supportsPassiveEventListeners } from '@angular/cdk/platform';
import { Subject, merge } from 'rxjs';
import { Directionality } from '@angular/cdk/bidi';
import { supportsPassiveEventListeners } from '@angular/cdk/platform';
import { ViewportRuler } from '@angular/cdk/overlay';
import { takeUntil } from 'rxjs/operators';

@@ -116,7 +118,235 @@ /**

/**
* Service that keeps track of all the `CdkDrag` and `CdkDrop` instances, and
* manages global event listeners on the `document`.
* \@docs-private
*/
var CdkDragDropRegistry = /** @class */ (function () {
function CdkDragDropRegistry(_ngZone, _document) {
var _this = this;
this._ngZone = _ngZone;
/**
* Registered `CdkDrop` instances.
*/
this._dropInstances = new Set();
/**
* Registered `CdkDrag` instances.
*/
this._dragInstances = new Set();
/**
* `CdkDrag` instances that are currently being dragged.
*/
this._activeDragInstances = new Set();
/**
* Keeps track of the event listeners that we've bound to the `document`.
*/
this._globalListeners = new Map();
/**
* Emits the `touchmove` or `mousemove` events that are dispatched
* while the user is dragging a `CdkDrag` instance.
*/
this.pointerMove = new Subject();
/**
* Emits the `touchend` or `mouseup` events that are dispatched
* while the user is dragging a `CdkDrag` instance.
*/
this.pointerUp = new Subject();
/**
* Listener used to prevent `touchmove` events while the element is being dragged.
* This gets bound once, ahead of time, because WebKit won't preventDefault on a
* dynamically-added `touchmove` listener. See https://bugs.webkit.org/show_bug.cgi?id=184250.
*/
this._preventScrollListener = function (event) {
if (_this._activeDragInstances.size) {
event.preventDefault();
}
};
this._document = _document;
}
/**
* @param {?} instance
* @return {?}
*/
CdkDragDropRegistry.prototype.register = /**
* @param {?} instance
* @return {?}
*/
function (instance) {
var _this = this;
if (instance instanceof CdkDrop) {
if (!this._dropInstances.has(instance)) {
if (this.getDropContainer(instance.id)) {
throw Error("Drop instance with id \"" + instance.id + "\" has already been registered.");
}
this._dropInstances.add(instance);
}
}
else {
this._dragInstances.add(instance);
if (this._dragInstances.size === 1) {
this._ngZone.runOutsideAngular(function () {
// The event handler has to be explicitly active, because
// newer browsers make it passive by default.
// The event handler has to be explicitly active, because
// newer browsers make it passive by default.
_this._document.addEventListener('touchmove', _this._preventScrollListener, activeEventOptions);
});
}
}
};
/**
* @param {?} instance
* @return {?}
*/
CdkDragDropRegistry.prototype.remove = /**
* @param {?} instance
* @return {?}
*/
function (instance) {
if (instance instanceof CdkDrop) {
this._dropInstances.delete(instance);
}
else {
this._dragInstances.delete(instance);
this.stopDragging(instance);
if (this._dragInstances.size === 0) {
this._document.removeEventListener('touchmove', this._preventScrollListener, /** @type {?} */ (activeEventOptions));
}
}
};
/**
* Starts the dragging sequence for a drag instance.
* @param drag Drag instance which is being dragged.
* @param event Event that initiated the dragging.
*/
/**
* Starts the dragging sequence for a drag instance.
* @param {?} drag Drag instance which is being dragged.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
CdkDragDropRegistry.prototype.startDragging = /**
* Starts the dragging sequence for a drag instance.
* @param {?} drag Drag instance which is being dragged.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
function (drag, event) {
var _this = this;
this._activeDragInstances.add(drag);
if (this._activeDragInstances.size === 1) {
var /** @type {?} */ isTouchEvent = event.type.startsWith('touch');
var /** @type {?} */ moveEvent = isTouchEvent ? 'touchmove' : 'mousemove';
var /** @type {?} */ upEvent = isTouchEvent ? 'touchend' : 'mouseup';
// We explicitly bind __active__ listeners here, because newer browsers will default to
// passive ones for `mousemove` and `touchmove`. The events need to be active, because we
// use `preventDefault` to prevent the page from scrolling while the user is dragging.
this._globalListeners
.set(moveEvent, { handler: function (e) { return _this.pointerMove.next(e); }, options: activeEventOptions })
.set(upEvent, { handler: function (e) { return _this.pointerUp.next(e); } })
.forEach(function (config, name) {
_this._ngZone.runOutsideAngular(function () {
_this._document.addEventListener(name, config.handler, config.options);
});
});
}
};
/** Stops dragging a `CdkDrag` instance. */
/**
* Stops dragging a `CdkDrag` instance.
* @param {?} drag
* @return {?}
*/
CdkDragDropRegistry.prototype.stopDragging = /**
* Stops dragging a `CdkDrag` instance.
* @param {?} drag
* @return {?}
*/
function (drag) {
this._activeDragInstances.delete(drag);
if (this._activeDragInstances.size === 0) {
this._clearGlobalListeners();
}
};
/** Gets whether a `CdkDrag` instance is currently being dragged. */
/**
* Gets whether a `CdkDrag` instance is currently being dragged.
* @param {?} drag
* @return {?}
*/
CdkDragDropRegistry.prototype.isDragging = /**
* Gets whether a `CdkDrag` instance is currently being dragged.
* @param {?} drag
* @return {?}
*/
function (drag) {
return this._activeDragInstances.has(drag);
};
/** Gets a `CdkDrop` instance by its id. */
/**
* Gets a `CdkDrop` instance by its id.
* @template T
* @param {?} id
* @return {?}
*/
CdkDragDropRegistry.prototype.getDropContainer = /**
* Gets a `CdkDrop` instance by its id.
* @template T
* @param {?} id
* @return {?}
*/
function (id) {
return Array.from(this._dropInstances).find(function (instance) { return instance.id === id; });
};
/**
* @return {?}
*/
CdkDragDropRegistry.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
var _this = this;
this._dragInstances.forEach(function (instance) { return _this.remove(instance); });
this._dropInstances.forEach(function (instance) { return _this.remove(instance); });
this._clearGlobalListeners();
this.pointerMove.complete();
this.pointerUp.complete();
};
/**
* Clears out the global event listeners from the `document`.
* @return {?}
*/
CdkDragDropRegistry.prototype._clearGlobalListeners = /**
* Clears out the global event listeners from the `document`.
* @return {?}
*/
function () {
var _this = this;
this._globalListeners.forEach(function (config, name) {
_this._document.removeEventListener(name, config.handler, config.options);
});
this._globalListeners.clear();
};
CdkDragDropRegistry.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] },
];
/** @nocollapse */
CdkDragDropRegistry.ctorParameters = function () { return [
{ type: NgZone, },
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] },] },
]; };
/** @nocollapse */ CdkDragDropRegistry.ngInjectableDef = defineInjectable({ factory: function CdkDragDropRegistry_Factory() { return new CdkDragDropRegistry(inject(NgZone), inject(DOCUMENT)); }, token: CdkDragDropRegistry, providedIn: "root" });
return CdkDragDropRegistry;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Element that can be moved inside a CdkDrop container.
* @template T
*/
var CdkDrag = /** @class */ (function () {
function CdkDrag(element, /** Droppable container that the draggable is a part of. */
dropContainer, document, _ngZone, _viewContainerRef, _viewportRuler, _dir) {
dropContainer, document, _ngZone, _viewContainerRef, _viewportRuler, _dragDropRegistry, _dir) {
var _this = this;

@@ -128,3 +358,5 @@ this.element = element;

this._viewportRuler = _viewportRuler;
this._dragDropRegistry = _dragDropRegistry;
this._dir = _dir;
this._destroyed = new Subject();
/**

@@ -142,6 +374,2 @@ * CSS `transform` applied to the element when it isn't being dragged. We need a

/**
* Whether the element is being dragged.
*/
this._isDragging = false;
/**
* Whether the element has moved since the user started dragging it.

@@ -174,6 +402,13 @@ */

this._pointerDown = function (referenceElement, event) {
if (_this._isDragging) {
if (_this._dragDropRegistry.isDragging(_this)) {
return;
}
_this._isDragging = true;
var /** @type {?} */ endedOrDestroyed = merge(_this.ended, _this._destroyed);
_this._dragDropRegistry.pointerMove
.pipe(takeUntil(endedOrDestroyed))
.subscribe(_this._pointerMove);
_this._dragDropRegistry.pointerUp
.pipe(takeUntil(endedOrDestroyed))
.subscribe(_this._pointerUp);
_this._dragDropRegistry.startDragging(_this, event);
_this._initialContainer = _this.dropContainer;

@@ -188,3 +423,2 @@ _this._scrollPosition = _this._viewportRuler.getViewportScrollPosition();

_this._pickupPositionOnPage = _this._getPointerPositionOnPage(event);
_this._registerMoveListeners(event);
// Emit the event on the item before the one on the container.

@@ -201,2 +435,3 @@ // Emit the event on the item before the one on the container.

element.style.display = 'none';
_this._nextSibling = element.nextSibling;
_this._document.body.appendChild(/** @type {?} */ ((element.parentNode)).replaceChild(placeholder, element));

@@ -211,3 +446,5 @@ _this._document.body.appendChild(preview);

this._pointerMove = function (event) {
if (!_this._isDragging) {
// TODO: this should start dragging after a certain threshold,
// otherwise we risk interfering with clicks on the element.
if (!_this._dragDropRegistry.isDragging(_this)) {
return;

@@ -232,7 +469,6 @@ }

this._pointerUp = function () {
if (!_this._isDragging) {
if (!_this._dragDropRegistry.isDragging(_this)) {
return;
}
_this._removeDocumentEvents();
_this._isDragging = false;
_this._dragDropRegistry.stopDragging(_this);
if (!_this.dropContainer) {

@@ -252,11 +488,4 @@ // Convert the active transform into a passive one. This means that next time

};
/**
* Listener used to prevent `touchmove` events while the element is being dragged.
*/
this._preventScrollListener = function (event) {
if (_this._isDragging) {
event.preventDefault();
}
};
this._document = document;
_dragDropRegistry.register(this);
}

@@ -283,17 +512,2 @@ /**

*/
CdkDrag.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
// WebKit won't preventDefault on a dynamically-added `touchmove` listener, which means that
// we need to add one ahead of time. See https://bugs.webkit.org/show_bug.cgi?id=184250.
// TODO: move into a central registry.
this._ngZone.runOutsideAngular(function () {
_this._document.addEventListener('touchmove', _this._preventScrollListener, activeEventOptions);
});
};
/**
* @return {?}
*/
CdkDrag.prototype.ngOnDestroy = /**

@@ -303,7 +517,7 @@ * @return {?}

function () {
this._removeDocumentEvents();
this._destroyPreview();
this._destroyPlaceholder();
this._document.removeEventListener('touchmove', this._preventScrollListener, /** @type {?} */ (activeEventOptions));
if (this._isDragging) {
// Do this check before removing from the registry since it'll
// stop being considered as dragged once it is removed.
if (this._dragDropRegistry.isDragging(this)) {
// Since we move out the element to the end of the body while it's being

@@ -313,2 +527,6 @@ // dragged, we have to make sure that it's removed if it gets destroyed.

}
this._nextSibling = null;
this._dragDropRegistry.remove(this);
this._destroyed.next();
this._destroyed.complete();
};

@@ -352,9 +570,18 @@ /** Starts the dragging sequence. */

var _this = this;
this._destroyPreview(); /** @type {?} */
((this._placeholder.parentNode)).insertBefore(this.element.nativeElement, this._placeholder);
var /** @type {?} */ currentIndex = this._getElementIndexInDom(this._placeholder);
// Restore the element's visibility and insert it at its old position in the DOM.
// It's important that we maintain the position, because moving the element around in the DOM
// can throw off `NgFor` which does smart diffing and re-creates elements only when necessary,
// while moving the existing elements in all other cases.
this.element.nativeElement.style.display = '';
if (this._nextSibling) {
/** @type {?} */ ((this._nextSibling.parentNode)).insertBefore(this.element.nativeElement, this._nextSibling);
}
else {
/** @type {?} */ ((this._placeholder.parentNode)).appendChild(this.element.nativeElement);
}
this._destroyPreview();
this._destroyPlaceholder();
this.element.nativeElement.style.display = '';
// Re-enter the NgZone since we bound `document` events on the outside.
this._ngZone.run(function () {
var /** @type {?} */ currentIndex = _this._getElementIndexInDom();
_this.ended.emit({ source: _this });

@@ -455,10 +682,12 @@ _this.dropped.emit({

/**
* Gets the index of the dragable element, based on its index in the DOM.
* Gets the index of an element, based on its index in the DOM.
* @param {?} element
* @return {?}
*/
CdkDrag.prototype._getElementIndexInDom = /**
* Gets the index of the dragable element, based on its index in the DOM.
* Gets the index of an element, based on its index in the DOM.
* @param {?} element
* @return {?}
*/
function () {
function (element) {
var _this = this;

@@ -469,3 +698,2 @@ // Note: we may be able to figure this in memory while sorting, but doing so won't be very

// isn't using an `ngFor` to render the list.
var /** @type {?} */ element = this.element.nativeElement;
if (!element.parentElement) {

@@ -597,16 +825,2 @@ return -1;

/**
* Removes the global event listeners that were bound by this draggable.
* @return {?}
*/
CdkDrag.prototype._removeDocumentEvents = /**
* Removes the global event listeners that were bound by this draggable.
* @return {?}
*/
function () {
this._document.removeEventListener('mousemove', this._pointerMove, /** @type {?} */ (activeEventOptions));
this._document.removeEventListener('touchmove', this._pointerMove, /** @type {?} */ (activeEventOptions));
this._document.removeEventListener('mouseup', this._pointerUp);
this._document.removeEventListener('touchend', this._pointerUp);
};
/**
* Determines the point of the page that was touched by the user.

@@ -676,28 +890,2 @@ * @param {?} event

/**
* Registers global event listeners that are used for moving the element.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
CdkDrag.prototype._registerMoveListeners = /**
* Registers global event listeners that are used for moving the element.
* @param {?} event Event that initiated the dragging.
* @return {?}
*/
function (event) {
var _this = this;
this._ngZone.runOutsideAngular(function () {
var /** @type {?} */ isTouchEvent = _this._isTouchEvent(event);
// We explicitly bind __active__ listeners here, because newer browsers
// will default to passive ones for `mousemove` and `touchmove`.
// TODO: this should be bound in `mousemove` and after a certain threshold,
// otherwise it'll interfere with clicks on the element.
// We explicitly bind __active__ listeners here, because newer browsers
// will default to passive ones for `mousemove` and `touchmove`.
// TODO: this should be bound in `mousemove` and after a certain threshold,
// otherwise it'll interfere with clicks on the element.
_this._document.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', _this._pointerMove, activeEventOptions);
_this._document.addEventListener(isTouchEvent ? 'touchend' : 'mouseup', _this._pointerUp);
});
};
/**
* Gets the `transition-duration` of an element in milliseconds.

@@ -737,2 +925,3 @@ * @param {?} element

{ type: ViewportRuler, },
{ type: CdkDragDropRegistry, },
{ type: Directionality, decorators: [{ type: Optional },] },

@@ -744,2 +933,3 @@ ]; };

"_placeholderTemplate": [{ type: ContentChild, args: [CdkDragPlaceholder,] },],
"data": [{ type: Input },],
"started": [{ type: Output, args: ['cdkDragStarted',] },],

@@ -759,2 +949,6 @@ "ended": [{ type: Output, args: ['cdkDragEnded',] },],

/**
* Counter used to generate unique ids for drop zones.
*/
var /** @type {?} */ _uniqueIdCounter = 0;
/**
* Container that wraps a set of draggable items.

@@ -764,7 +958,9 @@ * @template T

var CdkDrop = /** @class */ (function () {
function CdkDrop(element) {
function CdkDrop(element, _dragDropRegistry) {
this.element = element;
this._dragDropRegistry = _dragDropRegistry;
/**
* Other draggable containers that this container is connected
* to and into which the container's items can be transferred.
* Other draggable containers that this container is connected to and into which the
* container's items can be transferred. Can either be references to other drop containers,
* or their unique IDs.
*/

@@ -777,2 +973,7 @@ this.connectedTo = [];

/**
* Unique ID for the drop zone. Can be used as a reference
* in the `connectedTo` of another `CdkDrop`.
*/
this.id = "cdk-drop-" + _uniqueIdCounter++;
/**
* Emits when the user drops an item inside the container.

@@ -802,2 +1003,20 @@ */

}
/**
* @return {?}
*/
CdkDrop.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this._dragDropRegistry.register(this);
};
/**
* @return {?}
*/
CdkDrop.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this._dragDropRegistry.remove(this);
};
/** Starts dragging an item. */

@@ -926,3 +1145,5 @@ /**

if (drag === item) {
return false;
// If there's only one left item in the container, it must be
// the dragged item itself so we use it as a reference.
return siblings.length < 2;
}

@@ -936,3 +1157,6 @@ return _this.orientation === 'horizontal' ?

}
var /** @type {?} */ element = newPosition ? newPosition.drag.element.nativeElement : null;
// Don't take the element of a dragged item as a reference,
// because it has been moved down to the end of the body.
var /** @type {?} */ element = (newPosition && !this._dragDropRegistry.isDragging(newPosition.drag)) ?
newPosition.drag.element.nativeElement : null;
var /** @type {?} */ next = element ? /** @type {?} */ ((element)).nextSibling : null;

@@ -986,2 +1210,3 @@ var /** @type {?} */ parent = element ? /** @type {?} */ ((element.parentElement)) : this.element.nativeElement;

function () {
var _this = this;
this._positionCache.items = this._draggables

@@ -992,2 +1217,4 @@ .map(function (drag) { return ({ drag: drag, clientRect: drag.element.nativeElement.getBoundingClientRect() }); })

this._positionCache.siblings = this.connectedTo
.map(function (drop) { return typeof drop === 'string' ? /** @type {?} */ ((_this._dragDropRegistry.getDropContainer(drop))) : drop; })
.filter(Boolean)
.map(function (drop) { return ({ drop: drop, clientRect: drop.element.nativeElement.getBoundingClientRect() }); });

@@ -1020,2 +1247,3 @@ };

'class': 'cdk-drop',
'[id]': 'id',
'[class.cdk-drop-dragging]': '_dragging'

@@ -1028,2 +1256,3 @@ }

{ type: ElementRef, },
{ type: CdkDragDropRegistry, },
]; };

@@ -1035,2 +1264,3 @@ CdkDrop.propDecorators = {

"orientation": [{ type: Input },],
"id": [{ type: Input },],
"dropped": [{ type: Output },],

@@ -1133,3 +1363,3 @@ "entered": [{ type: Output },],

export { CdkDrop, CDK_DROP_CONTAINER, CdkDrag, CdkDragHandle, moveItemInArray, transferArrayItem, CdkDragPreview, CdkDragPlaceholder, DragDropModule };
export { CdkDrop, CDK_DROP_CONTAINER, CdkDrag, CdkDragHandle, moveItemInArray, transferArrayItem, CdkDragPreview, CdkDragPlaceholder, DragDropModule, CdkDragDropRegistry };
//# sourceMappingURL=drag-drop.es5.js.map
{
"name": "@angular/cdk-experimental",
"version": "6.4.1",
"version": "6.4.2",
"description": "Experimental components for Angular CDK",

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

"peerDependencies": {
"@angular/cdk": "6.4.1",
"@angular/cdk": "6.4.2",
"@angular/core": ">=6.0.0-beta.0 <7.0.0"

@@ -22,0 +22,0 @@ },

@@ -31,2 +31,4 @@ import { ListRange } from '@angular/cdk/collections';

export declare class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {
/** @docs-private Implemented as part of VirtualScrollStrategy. */
scrolledIndexChange: any;
/** The attached viewport. */

@@ -76,2 +78,4 @@ private _viewport;

onRenderedOffsetChanged(): void;
/** Scroll to the offset for the given index. */
scrollToIndex(): void;
/**

@@ -78,0 +82,0 @@ * Update the buffer parameters.

import { OnChanges } from '@angular/core';
import { Observable } from 'rxjs';
import { VirtualScrollStrategy } from './virtual-scroll-strategy';

@@ -6,2 +7,5 @@ import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';

export declare class FixedSizeVirtualScrollStrategy implements VirtualScrollStrategy {
private _scrolledIndexChange;
/** @docs-private Implemented as part of VirtualScrollStrategy. */
scrolledIndexChange: Observable<number>;
/** The attached viewport. */

@@ -39,2 +43,8 @@ private _viewport;

onRenderedOffsetChanged(): void;
/**
* 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.
*/
scrollToIndex(index: number, behavior: ScrollBehavior): void;
/** Update the viewport's total content size. */

@@ -41,0 +51,0 @@ private _updateTotalContentSize();

@@ -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"}],"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":415,"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":428,"character":3}}]}],"addBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":439,"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"}],"_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":137,"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":147,"character":3}}]}],"bufferSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"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":14,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"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":45,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":46,"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":56,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":59,"character":3},"arguments":["contentWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":111,"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":108,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":109,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":110,"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"}],"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"}],"_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"}

@@ -8,4 +8,5 @@ /**

*/
import { InjectionToken } from '@angular/core';
import { Observable } from 'rxjs';
import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
import { InjectionToken } from '@angular/core';
/** The injection token used to specify the virtual scrolling strategy. */

@@ -15,2 +16,4 @@ export declare const VIRTUAL_SCROLL_STRATEGY: InjectionToken<VirtualScrollStrategy>;

export interface VirtualScrollStrategy {
/** Emits when the index of the first element visible in the viewport changes. */
scrolledIndexChange: Observable<number>;
/**

@@ -31,2 +34,8 @@ * Attaches this scroll strategy to a viewport.

onRenderedOffsetChanged(): any;
/**
* 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.
*/
scrollToIndex(index: number, behavior: ScrollBehavior): void;
}

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

private _renderedRangeSubject;
/** Emits when a change detection cycle completes. */
private _changeDetectionComplete;
/** The direction the viewport scrolls. */
orientation: 'horizontal' | 'vertical';
/** Emits when the index of the first element visible in the viewport changes. */
scrolledIndexChange: Observable<number>;
/** The element that wraps the rendered content. */

@@ -91,3 +95,15 @@ _contentWrapper: ElementRef<HTMLElement>;

setRenderedContentOffset(offset: number, to?: 'to-start' | 'to-end'): void;
/** Sets the scroll offset on the viewport. */
/**
* 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`.
*/
scrollToOffset(offset: number, behavior?: ScrollBehavior): void;
/**
* 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`.
*/
scrollToIndex(index: number, behavior?: ScrollBehavior): void;
/** @docs-private Internal method to set the scroll offset on the viewport. */
setScrollOffset(offset: number): void;

@@ -94,0 +110,0 @@ /** Gets the current scroll offset of the viewport (in pixels). */

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

*/
import { ElementRef, AfterContentInit, NgZone, OnDestroy, EventEmitter, ViewContainerRef, QueryList } from '@angular/core';
import { ElementRef, EventEmitter, NgZone, OnDestroy, QueryList, ViewContainerRef } from '@angular/core';
import { Directionality } from '@angular/cdk/bidi';

@@ -17,4 +17,5 @@ import { CdkDragHandle } from './drag-handle';

import { ViewportRuler } from '@angular/cdk/overlay';
import { CdkDragDropRegistry } from './drag-drop-registry';
/** Element that can be moved inside a CdkDrop container. */
export declare class CdkDrag implements AfterContentInit, OnDestroy {
export declare class CdkDrag<T = any> implements OnDestroy {
/** Element that the draggable is attached to. */

@@ -27,4 +28,6 @@ element: ElementRef<HTMLElement>;

private _viewportRuler;
private _dragDropRegistry;
private _dir;
private _document;
private _destroyed;
/** Element displayed next to the user's pointer while the element is dragged. */

@@ -43,2 +46,7 @@ private _preview;

/**
* Reference to the element that comes after the draggable in the DOM, at the time
* it was picked up. Used for restoring its initial position when it's dropped.
*/
private _nextSibling;
/**
* CSS `transform` applied to the element when it isn't being dragged. We need a

@@ -52,4 +60,2 @@ * passive transform in order for the dragged element to retain its new position

private _activeTransform;
/** Whether the element is being dragged. */
private _isDragging;
/** Whether the element has moved since the user started dragging it. */

@@ -69,2 +75,4 @@ private _hasMoved;

_placeholderTemplate: CdkDragPlaceholder;
/** Arbitrary data to attach to this drag instance. */
data: T;
/** Emits when the user starts dragging the item. */

@@ -79,3 +87,3 @@ started: EventEmitter<CdkDragStart>;

/** Emits when the user drops the item inside a container. */
dropped: EventEmitter<CdkDragDrop<any, any>>;
dropped: EventEmitter<CdkDragDrop<any>>;
constructor(

@@ -85,3 +93,3 @@ /** Element that the draggable is attached to. */

/** Droppable container that the draggable is a part of. */
dropContainer: CdkDropContainer, document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dir: Directionality);
dropContainer: CdkDropContainer, document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dragDropRegistry: CdkDragDropRegistry, _dir: Directionality);
/**

@@ -92,3 +100,2 @@ * Returns the element that is being used as a placeholder

getPlaceholderElement(): HTMLElement;
ngAfterContentInit(): void;
ngOnDestroy(): void;

@@ -117,4 +124,4 @@ /** Starts the dragging sequence. */

private _createPlaceholderElement();
/** Gets the index of the dragable element, based on its index in the DOM. */
private _getElementIndexInDom();
/** Gets the index of an element, based on its index in the DOM. */
private _getElementIndexInDom(element);
/**

@@ -143,8 +150,4 @@ * Figures out the coordinates at which an element was picked up.

private _removeElement(element);
/** Removes the global event listeners that were bound by this draggable. */
private _removeDocumentEvents();
/** Determines the point of the page that was touched by the user. */
private _getPointerPositionOnPage(event);
/** Listener used to prevent `touchmove` events while the element is being dragged. */
private _preventScrollListener;
/** Determines whether an event is a touch event. */

@@ -156,9 +159,4 @@ private _isTouchEvent(event);

private _destroyPlaceholder();
/**
* Registers global event listeners that are used for moving the element.
* @param event Event that initiated the dragging.
*/
private _registerMoveListeners(event);
/** Gets the `transition-duration` of an element in milliseconds. */
private _getTransitionDurationInMs(element);
}

@@ -8,19 +8,27 @@ /**

*/
import { EventEmitter, ElementRef, QueryList } from '@angular/core';
import { ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { CdkDrag } from './drag';
import { CdkDragExit, CdkDragEnter, CdkDragDrop } from './drag-events';
import { CdkDragDropRegistry } from './drag-drop-registry';
/** Container that wraps a set of draggable items. */
export declare class CdkDrop<T = any> {
export declare class CdkDrop<T = any> implements OnInit, OnDestroy {
element: ElementRef<HTMLElement>;
private _dragDropRegistry;
/** Draggable items in the container. */
_draggables: QueryList<CdkDrag>;
/**
* Other draggable containers that this container is connected
* to and into which the container's items can be transferred.
* Other draggable containers that this container is connected to and into which the
* container's items can be transferred. Can either be references to other drop containers,
* or their unique IDs.
*/
connectedTo: CdkDrop[];
/** Arbitrary data to attach to all events emitted by this container. */
connectedTo: (CdkDrop | string)[];
/** Arbitrary data to attach to this container. */
data: T;
/** Direction in which the list is oriented. */
orientation: 'horizontal' | 'vertical';
/**
* Unique ID for the drop zone. Can be used as a reference
* in the `connectedTo` of another `CdkDrop`.
*/
id: string;
/** Emits when the user drops an item inside the container. */

@@ -37,3 +45,5 @@ dropped: EventEmitter<CdkDragDrop<T, any>>;

exited: EventEmitter<CdkDragExit<T>>;
constructor(element: ElementRef<HTMLElement>);
constructor(element: ElementRef<HTMLElement>, _dragDropRegistry: CdkDragDropRegistry);
ngOnInit(): void;
ngOnDestroy(): void;
/** Whether an item in the container is being dragged. */

@@ -40,0 +50,0 @@ _dragging: boolean;

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

{"__symbolic":"module","version":4,"metadata":{"CdkDrop":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-drop","exportAs":"cdkDrop","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":30,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":31,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"},"useExisting":{"__symbolic":"reference","name":"CdkDrop"}}],"host":{"class":"cdk-drop","[class.cdk-drop-dragging]":"_dragging","$quoted$":["class","[class.cdk-drop-dragging]"]},"styles":[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]}]}],"members":{"_draggables":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":43,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDrag"}]}]}],"connectedTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":3}}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":63,"character":3}}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":71,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drop"}]}]}],"start":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"enter":[{"__symbolic":"method"}],"exit":[{"__symbolic":"method"}],"getItemIndex":[{"__symbolic":"method"}],"_sortItem":[{"__symbolic":"method"}],"_getSiblingContainerFromPosition":[{"__symbolic":"method"}],"_refreshPositions":[{"__symbolic":"method"}],"_reset":[{"__symbolic":"method"}]}},"CdkDropContainer":{"__symbolic":"interface"},"CDK_DROP_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":55,"character":38},"arguments":["CDK_DROP_CONTAINER"]},"CdkDrag":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":42,"character":1},"arguments":[{"selector":"[cdkDrag]","exportAs":"cdkDrag","host":{"class":"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)","$quoted$":["class","(mousedown)","(touchstart)"]}}]}],"members":{"_handles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":96,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragHandle"}]}]}],"_previewTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":99,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPreview"}]}]}],"_placeholderTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":104,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"started":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":107,"character":3},"arguments":["cdkDragStarted"]}]}],"ended":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":110,"character":3},"arguments":["cdkDragEnded"]}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":113,"character":3},"arguments":["cdkDragEntered"]}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":116,"character":3},"arguments":["cdkDragExited"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":119,"character":3},"arguments":["cdkDragDropped"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":125,"character":5},"arguments":[{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":125,"character":33}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":125,"character":45}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":126,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DOCUMENT","line":126,"character":12}]}],null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":130,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drag"}]},{"__symbolic":"reference","name":"CdkDropContainer"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":127,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":128,"character":31},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"ViewportRuler","line":129,"character":28},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":130,"character":30}]}],"getPlaceholderElement":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_startDragging":[{"__symbolic":"method"}],"_cleanupDragArtifacts":[{"__symbolic":"method"}],"_updateActiveDropContainer":[{"__symbolic":"method"}],"_createPreviewElement":[{"__symbolic":"method"}],"_createPlaceholderElement":[{"__symbolic":"method"}],"_getElementIndexInDom":[{"__symbolic":"method"}],"_getPointerPositionInElement":[{"__symbolic":"method"}],"_animatePreviewToPlaceholder":[{"__symbolic":"method"}],"_setTransform":[{"__symbolic":"method"}],"_removeElement":[{"__symbolic":"method"}],"_removeDocumentEvents":[{"__symbolic":"method"}],"_getPointerPositionOnPage":[{"__symbolic":"method"}],"_isTouchEvent":[{"__symbolic":"method"}],"_destroyPreview":[{"__symbolic":"method"}],"_destroyPlaceholder":[{"__symbolic":"method"}],"_registerMoveListeners":[{"__symbolic":"method"}],"_getTransitionDurationInMs":[{"__symbolic":"method"}]}},"CdkDragHandle":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[cdkDragHandle]","host":{"class":"cdk-drag-handle","$quoted$":["class"]}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drag-handle"}]}]}]}},"CdkDragStart":{"__symbolic":"interface"},"CdkDragEnd":{"__symbolic":"interface"},"CdkDragEnter":{"__symbolic":"interface"},"CdkDragExit":{"__symbolic":"interface"},"CdkDragDrop":{"__symbolic":"interface"},"moveItemInArray":{"__symbolic":"function"},"transferArrayItem":{"__symbolic":"function"},"CdkDragPreview":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPreview]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-preview"}]}]}]}},"CdkDragPlaceholder":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPlaceholder]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-placeholder"}]}]}]}},"DragDropModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}],"exports":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"members":{}}},"origins":{"CdkDrop":"./drop","CdkDropContainer":"./drop-container","CDK_DROP_CONTAINER":"./drop-container","CdkDrag":"./drag","CdkDragHandle":"./drag-handle","CdkDragStart":"./drag-events","CdkDragEnd":"./drag-events","CdkDragEnter":"./drag-events","CdkDragExit":"./drag-events","CdkDragDrop":"./drag-events","moveItemInArray":"./drag-utils","transferArrayItem":"./drag-utils","CdkDragPreview":"./drag-preview","CdkDragPlaceholder":"./drag-placeholder","DragDropModule":"./drag-drop-module"},"importAs":"@angular/cdk-experimental/drag-drop"}
{"__symbolic":"module","version":4,"metadata":{"CdkDrop":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-drop","exportAs":"cdkDrop","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":36,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"},"useExisting":{"__symbolic":"reference","name":"CdkDrop"}}],"host":{"class":"cdk-drop","[id]":"id","[class.cdk-drop-dragging]":"_dragging","$quoted$":["class","[id]","[class.cdk-drop-dragging]"]},"styles":[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]}]}],"members":{"_draggables":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":50,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDrag"}]}]}],"connectedTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":77,"character":3}}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":83,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":86,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drop"}]},{"__symbolic":"reference","name":"CdkDragDropRegistry"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"start":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"enter":[{"__symbolic":"method"}],"exit":[{"__symbolic":"method"}],"getItemIndex":[{"__symbolic":"method"}],"_sortItem":[{"__symbolic":"method"}],"_getSiblingContainerFromPosition":[{"__symbolic":"method"}],"_refreshPositions":[{"__symbolic":"method"}],"_reset":[{"__symbolic":"method"}]}},"CdkDropContainer":{"__symbolic":"interface"},"CDK_DROP_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":55,"character":38},"arguments":["CDK_DROP_CONTAINER"]},"CdkDrag":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":42,"character":1},"arguments":[{"selector":"[cdkDrag]","exportAs":"cdkDrag","host":{"class":"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)","$quoted$":["class","(mousedown)","(touchstart)"]}}]}],"members":{"_handles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":100,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragHandle"}]}]}],"_previewTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":103,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPreview"}]}]}],"_placeholderTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":108,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3}}]}],"started":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":114,"character":3},"arguments":["cdkDragStarted"]}]}],"ended":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":117,"character":3},"arguments":["cdkDragEnded"]}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":120,"character":3},"arguments":["cdkDragEntered"]}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":124,"character":3},"arguments":["cdkDragExited"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":128,"character":3},"arguments":["cdkDragDropped"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":135,"character":5},"arguments":[{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":135,"character":33}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":135,"character":45}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":136,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":136,"character":12}]}],null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":141,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":133,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drag"}]},{"__symbolic":"reference","name":"CdkDropContainer"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":137,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":138,"character":31},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"ViewportRuler","line":139,"character":28},{"__symbolic":"reference","name":"CdkDragDropRegistry"},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":141,"character":30}]}],"getPlaceholderElement":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_startDragging":[{"__symbolic":"method"}],"_cleanupDragArtifacts":[{"__symbolic":"method"}],"_updateActiveDropContainer":[{"__symbolic":"method"}],"_createPreviewElement":[{"__symbolic":"method"}],"_createPlaceholderElement":[{"__symbolic":"method"}],"_getElementIndexInDom":[{"__symbolic":"method"}],"_getPointerPositionInElement":[{"__symbolic":"method"}],"_animatePreviewToPlaceholder":[{"__symbolic":"method"}],"_setTransform":[{"__symbolic":"method"}],"_removeElement":[{"__symbolic":"method"}],"_getPointerPositionOnPage":[{"__symbolic":"method"}],"_isTouchEvent":[{"__symbolic":"method"}],"_destroyPreview":[{"__symbolic":"method"}],"_destroyPlaceholder":[{"__symbolic":"method"}],"_getTransitionDurationInMs":[{"__symbolic":"method"}]}},"CdkDragHandle":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[cdkDragHandle]","host":{"class":"cdk-drag-handle","$quoted$":["class"]}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drag-handle"}]}]}]}},"CdkDragStart":{"__symbolic":"interface"},"CdkDragEnd":{"__symbolic":"interface"},"CdkDragEnter":{"__symbolic":"interface"},"CdkDragExit":{"__symbolic":"interface"},"CdkDragDrop":{"__symbolic":"interface"},"moveItemInArray":{"__symbolic":"function"},"transferArrayItem":{"__symbolic":"function"},"CdkDragPreview":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPreview]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-preview"}]}]}]}},"CdkDragPlaceholder":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPlaceholder]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-placeholder"}]}]}]}},"DragDropModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}],"exports":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"members":{}},"CdkDragDropRegistry":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":56,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":55,"character":21},{"__symbolic":"reference","name":"any"}]}],"register":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"remove":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"startDragging":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"isDragging":[{"__symbolic":"method"}],"getDropContainer":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_clearGlobalListeners":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"CdkDrop":"./drop","CdkDropContainer":"./drop-container","CDK_DROP_CONTAINER":"./drop-container","CdkDrag":"./drag","CdkDragHandle":"./drag-handle","CdkDragStart":"./drag-events","CdkDragEnd":"./drag-events","CdkDragEnter":"./drag-events","CdkDragExit":"./drag-events","CdkDragDrop":"./drag-events","moveItemInArray":"./drag-utils","transferArrayItem":"./drag-utils","CdkDragPreview":"./drag-preview","CdkDragPlaceholder":"./drag-placeholder","DragDropModule":"./drag-drop-module","CdkDragDropRegistry":"./drag-drop-registry"},"importAs":"@angular/cdk-experimental/drag-drop"}

@@ -17,1 +17,2 @@ /**

export * from './drag-drop-module';
export * from './drag-drop-registry';

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

*/
import { ElementRef, AfterContentInit, NgZone, OnDestroy, EventEmitter, ViewContainerRef, QueryList } from '@angular/core';
import { ElementRef, EventEmitter, NgZone, OnDestroy, QueryList, ViewContainerRef } from '@angular/core';
import { Directionality } from '@angular/cdk/bidi';

@@ -17,4 +17,5 @@ import { CdkDragHandle } from './drag-handle';

import { ViewportRuler } from '@angular/cdk/overlay';
import { CdkDragDropRegistry } from './drag-drop-registry';
/** Element that can be moved inside a CdkDrop container. */
export declare class CdkDrag implements AfterContentInit, OnDestroy {
export declare class CdkDrag<T = any> implements OnDestroy {
/** Element that the draggable is attached to. */

@@ -27,4 +28,6 @@ element: ElementRef<HTMLElement>;

private _viewportRuler;
private _dragDropRegistry;
private _dir;
private _document;
private _destroyed;
/** Element displayed next to the user's pointer while the element is dragged. */

@@ -43,2 +46,7 @@ private _preview;

/**
* Reference to the element that comes after the draggable in the DOM, at the time
* it was picked up. Used for restoring its initial position when it's dropped.
*/
private _nextSibling;
/**
* CSS `transform` applied to the element when it isn't being dragged. We need a

@@ -52,4 +60,2 @@ * passive transform in order for the dragged element to retain its new position

private _activeTransform;
/** Whether the element is being dragged. */
private _isDragging;
/** Whether the element has moved since the user started dragging it. */

@@ -69,2 +75,4 @@ private _hasMoved;

_placeholderTemplate: CdkDragPlaceholder;
/** Arbitrary data to attach to this drag instance. */
data: T;
/** Emits when the user starts dragging the item. */

@@ -79,3 +87,3 @@ started: EventEmitter<CdkDragStart>;

/** Emits when the user drops the item inside a container. */
dropped: EventEmitter<CdkDragDrop<any, any>>;
dropped: EventEmitter<CdkDragDrop<any>>;
constructor(

@@ -85,3 +93,3 @@ /** Element that the draggable is attached to. */

/** Droppable container that the draggable is a part of. */
dropContainer: CdkDropContainer, document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dir: Directionality);
dropContainer: CdkDropContainer, document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dragDropRegistry: CdkDragDropRegistry, _dir: Directionality);
/**

@@ -92,3 +100,2 @@ * Returns the element that is being used as a placeholder

getPlaceholderElement(): HTMLElement;
ngAfterContentInit(): void;
ngOnDestroy(): void;

@@ -117,4 +124,4 @@ /** Starts the dragging sequence. */

private _createPlaceholderElement();
/** Gets the index of the dragable element, based on its index in the DOM. */
private _getElementIndexInDom();
/** Gets the index of an element, based on its index in the DOM. */
private _getElementIndexInDom(element);
/**

@@ -143,8 +150,4 @@ * Figures out the coordinates at which an element was picked up.

private _removeElement(element);
/** Removes the global event listeners that were bound by this draggable. */
private _removeDocumentEvents();
/** Determines the point of the page that was touched by the user. */
private _getPointerPositionOnPage(event);
/** Listener used to prevent `touchmove` events while the element is being dragged. */
private _preventScrollListener;
/** Determines whether an event is a touch event. */

@@ -156,9 +159,4 @@ private _isTouchEvent(event);

private _destroyPlaceholder();
/**
* Registers global event listeners that are used for moving the element.
* @param event Event that initiated the dragging.
*/
private _registerMoveListeners(event);
/** Gets the `transition-duration` of an element in milliseconds. */
private _getTransitionDurationInMs(element);
}

@@ -8,19 +8,27 @@ /**

*/
import { EventEmitter, ElementRef, QueryList } from '@angular/core';
import { ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { CdkDrag } from './drag';
import { CdkDragExit, CdkDragEnter, CdkDragDrop } from './drag-events';
import { CdkDragDropRegistry } from './drag-drop-registry';
/** Container that wraps a set of draggable items. */
export declare class CdkDrop<T = any> {
export declare class CdkDrop<T = any> implements OnInit, OnDestroy {
element: ElementRef<HTMLElement>;
private _dragDropRegistry;
/** Draggable items in the container. */
_draggables: QueryList<CdkDrag>;
/**
* Other draggable containers that this container is connected
* to and into which the container's items can be transferred.
* Other draggable containers that this container is connected to and into which the
* container's items can be transferred. Can either be references to other drop containers,
* or their unique IDs.
*/
connectedTo: CdkDrop[];
/** Arbitrary data to attach to all events emitted by this container. */
connectedTo: (CdkDrop | string)[];
/** Arbitrary data to attach to this container. */
data: T;
/** Direction in which the list is oriented. */
orientation: 'horizontal' | 'vertical';
/**
* Unique ID for the drop zone. Can be used as a reference
* in the `connectedTo` of another `CdkDrop`.
*/
id: string;
/** Emits when the user drops an item inside the container. */

@@ -37,3 +45,5 @@ dropped: EventEmitter<CdkDragDrop<T, any>>;

exited: EventEmitter<CdkDragExit<T>>;
constructor(element: ElementRef<HTMLElement>);
constructor(element: ElementRef<HTMLElement>, _dragDropRegistry: CdkDragDropRegistry);
ngOnInit(): void;
ngOnDestroy(): void;
/** Whether an item in the container is being dragged. */

@@ -40,0 +50,0 @@ _dragging: boolean;

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

{"__symbolic":"module","version":4,"metadata":{"CdkDrop":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-drop","exportAs":"cdkDrop","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":30,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":31,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"},"useExisting":{"__symbolic":"reference","name":"CdkDrop"}}],"host":{"class":"cdk-drop","[class.cdk-drop-dragging]":"_dragging","$quoted$":["class","[class.cdk-drop-dragging]"]},"styles":[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]}]}],"members":{"_draggables":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":43,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDrag"}]}]}],"connectedTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":3}}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":63,"character":3}}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":71,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drop"}]}]}],"start":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"enter":[{"__symbolic":"method"}],"exit":[{"__symbolic":"method"}],"getItemIndex":[{"__symbolic":"method"}],"_sortItem":[{"__symbolic":"method"}],"_getSiblingContainerFromPosition":[{"__symbolic":"method"}],"_refreshPositions":[{"__symbolic":"method"}],"_reset":[{"__symbolic":"method"}]}},"CdkDropContainer":{"__symbolic":"interface"},"CDK_DROP_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":55,"character":38},"arguments":["CDK_DROP_CONTAINER"]},"CdkDrag":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":42,"character":1},"arguments":[{"selector":"[cdkDrag]","exportAs":"cdkDrag","host":{"class":"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)","$quoted$":["class","(mousedown)","(touchstart)"]}}]}],"members":{"_handles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":96,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragHandle"}]}]}],"_previewTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":99,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPreview"}]}]}],"_placeholderTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":104,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"started":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":107,"character":3},"arguments":["cdkDragStarted"]}]}],"ended":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":110,"character":3},"arguments":["cdkDragEnded"]}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":113,"character":3},"arguments":["cdkDragEntered"]}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":116,"character":3},"arguments":["cdkDragExited"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":119,"character":3},"arguments":["cdkDragDropped"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":125,"character":5},"arguments":[{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":125,"character":33}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":125,"character":45}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":126,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DOCUMENT","line":126,"character":12}]}],null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":130,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":123,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drag"}]},{"__symbolic":"reference","name":"CdkDropContainer"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":127,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":128,"character":31},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"ViewportRuler","line":129,"character":28},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":130,"character":30}]}],"getPlaceholderElement":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_startDragging":[{"__symbolic":"method"}],"_cleanupDragArtifacts":[{"__symbolic":"method"}],"_updateActiveDropContainer":[{"__symbolic":"method"}],"_createPreviewElement":[{"__symbolic":"method"}],"_createPlaceholderElement":[{"__symbolic":"method"}],"_getElementIndexInDom":[{"__symbolic":"method"}],"_getPointerPositionInElement":[{"__symbolic":"method"}],"_animatePreviewToPlaceholder":[{"__symbolic":"method"}],"_setTransform":[{"__symbolic":"method"}],"_removeElement":[{"__symbolic":"method"}],"_removeDocumentEvents":[{"__symbolic":"method"}],"_getPointerPositionOnPage":[{"__symbolic":"method"}],"_isTouchEvent":[{"__symbolic":"method"}],"_destroyPreview":[{"__symbolic":"method"}],"_destroyPlaceholder":[{"__symbolic":"method"}],"_registerMoveListeners":[{"__symbolic":"method"}],"_getTransitionDurationInMs":[{"__symbolic":"method"}]}},"CdkDragHandle":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[cdkDragHandle]","host":{"class":"cdk-drag-handle","$quoted$":["class"]}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drag-handle"}]}]}]}},"CdkDragStart":{"__symbolic":"interface"},"CdkDragEnd":{"__symbolic":"interface"},"CdkDragEnter":{"__symbolic":"interface"},"CdkDragExit":{"__symbolic":"interface"},"CdkDragDrop":{"__symbolic":"interface"},"moveItemInArray":{"__symbolic":"function"},"transferArrayItem":{"__symbolic":"function"},"CdkDragPreview":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPreview]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-preview"}]}]}]}},"CdkDragPlaceholder":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPlaceholder]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-placeholder"}]}]}]}},"DragDropModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}],"exports":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"members":{}}},"origins":{"CdkDrop":"./drop","CdkDropContainer":"./drop-container","CDK_DROP_CONTAINER":"./drop-container","CdkDrag":"./drag","CdkDragHandle":"./drag-handle","CdkDragStart":"./drag-events","CdkDragEnd":"./drag-events","CdkDragEnter":"./drag-events","CdkDragExit":"./drag-events","CdkDragDrop":"./drag-events","moveItemInArray":"./drag-utils","transferArrayItem":"./drag-utils","CdkDragPreview":"./drag-preview","CdkDragPlaceholder":"./drag-placeholder","DragDropModule":"./drag-drop-module"},"importAs":"@angular/cdk-experimental/drag-drop"}
{"__symbolic":"module","version":4,"metadata":{"CdkDrop":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"moduleId":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"module"},"member":"id"},"selector":"cdk-drop","exportAs":"cdkDrop","template":"<ng-content></ng-content>","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":36,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"},"useExisting":{"__symbolic":"reference","name":"CdkDrop"}}],"host":{"class":"cdk-drop","[id]":"id","[class.cdk-drop-dragging]":"_dragging","$quoted$":["class","[id]","[class.cdk-drop-dragging]"]},"styles":[".cdk-drag-preview{position:fixed;top:0;left:0;z-index:1000}.cdk-drag,.cdk-drag-handle{touch-action:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]}]}],"members":{"_draggables":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":50,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDrag"}]}]}],"connectedTo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":77,"character":3}}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":83,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":86,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drop"}]},{"__symbolic":"reference","name":"CdkDragDropRegistry"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"start":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"enter":[{"__symbolic":"method"}],"exit":[{"__symbolic":"method"}],"getItemIndex":[{"__symbolic":"method"}],"_sortItem":[{"__symbolic":"method"}],"_getSiblingContainerFromPosition":[{"__symbolic":"method"}],"_refreshPositions":[{"__symbolic":"method"}],"_reset":[{"__symbolic":"method"}]}},"CdkDropContainer":{"__symbolic":"interface"},"CDK_DROP_CONTAINER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":55,"character":38},"arguments":["CDK_DROP_CONTAINER"]},"CdkDrag":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":42,"character":1},"arguments":[{"selector":"[cdkDrag]","exportAs":"cdkDrag","host":{"class":"cdk-drag","(mousedown)":"_startDragging($event)","(touchstart)":"_startDragging($event)","$quoted$":["class","(mousedown)","(touchstart)"]}}]}],"members":{"_handles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":100,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragHandle"}]}]}],"_previewTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":103,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPreview"}]}]}],"_placeholderTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":108,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3}}]}],"started":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":114,"character":3},"arguments":["cdkDragStarted"]}]}],"ended":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":117,"character":3},"arguments":["cdkDragEnded"]}]}],"entered":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":120,"character":3},"arguments":["cdkDragEntered"]}]}],"exited":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":124,"character":3},"arguments":["cdkDragExited"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":128,"character":3},"arguments":["cdkDragDropped"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":135,"character":5},"arguments":[{"__symbolic":"reference","name":"CDK_DROP_CONTAINER"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":135,"character":33}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":135,"character":45}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":136,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":136,"character":12}]}],null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":141,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":133,"character":31,"context":{"typeName":"HTMLElement"},"module":"./drag"}]},{"__symbolic":"reference","name":"CdkDropContainer"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":137,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":138,"character":31},{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"ViewportRuler","line":139,"character":28},{"__symbolic":"reference","name":"CdkDragDropRegistry"},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":141,"character":30}]}],"getPlaceholderElement":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_startDragging":[{"__symbolic":"method"}],"_cleanupDragArtifacts":[{"__symbolic":"method"}],"_updateActiveDropContainer":[{"__symbolic":"method"}],"_createPreviewElement":[{"__symbolic":"method"}],"_createPlaceholderElement":[{"__symbolic":"method"}],"_getElementIndexInDom":[{"__symbolic":"method"}],"_getPointerPositionInElement":[{"__symbolic":"method"}],"_animatePreviewToPlaceholder":[{"__symbolic":"method"}],"_setTransform":[{"__symbolic":"method"}],"_removeElement":[{"__symbolic":"method"}],"_getPointerPositionOnPage":[{"__symbolic":"method"}],"_isTouchEvent":[{"__symbolic":"method"}],"_destroyPreview":[{"__symbolic":"method"}],"_destroyPlaceholder":[{"__symbolic":"method"}],"_getTransitionDurationInMs":[{"__symbolic":"method"}]}},"CdkDragHandle":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[cdkDragHandle]","host":{"class":"cdk-drag-handle","$quoted$":["class"]}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":41,"context":{"typeName":"HTMLElement"},"module":"./drag-handle"}]}]}]}},"CdkDragStart":{"__symbolic":"interface"},"CdkDragEnd":{"__symbolic":"interface"},"CdkDragEnter":{"__symbolic":"interface"},"CdkDragExit":{"__symbolic":"interface"},"CdkDragDrop":{"__symbolic":"interface"},"moveItemInArray":{"__symbolic":"function"},"transferArrayItem":{"__symbolic":"function"},"CdkDragPreview":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPreview]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-preview"}]}]}]}},"CdkDragPlaceholder":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"ng-template[cdkDragPlaceholder]"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":46,"context":{"typeName":"T"},"module":"./drag-placeholder"}]}]}]}},"DragDropModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}],"exports":[{"__symbolic":"reference","name":"CdkDrop"},{"__symbolic":"reference","name":"CdkDrag"},{"__symbolic":"reference","name":"CdkDragHandle"},{"__symbolic":"reference","name":"CdkDragPreview"},{"__symbolic":"reference","name":"CdkDragPlaceholder"}]}]}],"members":{}},"CdkDragDropRegistry":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":56,"character":12}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":55,"character":21},{"__symbolic":"reference","name":"any"}]}],"register":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"remove":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"startDragging":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"isDragging":[{"__symbolic":"method"}],"getDropContainer":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_clearGlobalListeners":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"CdkDrop":"./drop","CdkDropContainer":"./drop-container","CDK_DROP_CONTAINER":"./drop-container","CdkDrag":"./drag","CdkDragHandle":"./drag-handle","CdkDragStart":"./drag-events","CdkDragEnd":"./drag-events","CdkDragEnter":"./drag-events","CdkDragExit":"./drag-events","CdkDragDrop":"./drag-events","moveItemInArray":"./drag-utils","transferArrayItem":"./drag-utils","CdkDragPreview":"./drag-preview","CdkDragPlaceholder":"./drag-placeholder","DragDropModule":"./drag-drop-module","CdkDragDropRegistry":"./drag-drop-registry"},"importAs":"@angular/cdk-experimental/drag-drop"}

@@ -17,1 +17,2 @@ /**

export * from './drag-drop-module';
export * from './drag-drop-registry';

@@ -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.1"]}},"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":["6.4.2"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk-experimental"}

@@ -31,2 +31,4 @@ import { ListRange } from '@angular/cdk/collections';

export declare class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {
/** @docs-private Implemented as part of VirtualScrollStrategy. */
scrolledIndexChange: any;
/** The attached viewport. */

@@ -76,2 +78,4 @@ private _viewport;

onRenderedOffsetChanged(): void;
/** Scroll to the offset for the given index. */
scrollToIndex(): void;
/**

@@ -78,0 +82,0 @@ * Update the buffer parameters.

import { OnChanges } from '@angular/core';
import { Observable } from 'rxjs';
import { VirtualScrollStrategy } from './virtual-scroll-strategy';

@@ -6,2 +7,5 @@ import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';

export declare class FixedSizeVirtualScrollStrategy implements VirtualScrollStrategy {
private _scrolledIndexChange;
/** @docs-private Implemented as part of VirtualScrollStrategy. */
scrolledIndexChange: Observable<number>;
/** The attached viewport. */

@@ -39,2 +43,8 @@ private _viewport;

onRenderedOffsetChanged(): void;
/**
* 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.
*/
scrollToIndex(index: number, behavior: ScrollBehavior): void;
/** Update the viewport's total content size. */

@@ -41,0 +51,0 @@ private _updateTotalContentSize();

@@ -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"}],"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":415,"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":428,"character":3}}]}],"addBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":439,"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"}],"_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":137,"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":147,"character":3}}]}],"bufferSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"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":14,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"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":45,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":46,"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":56,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":59,"character":3},"arguments":["contentWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":111,"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":108,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":109,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":110,"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"}],"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"}],"_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"}

@@ -8,4 +8,5 @@ /**

*/
import { InjectionToken } from '@angular/core';
import { Observable } from 'rxjs';
import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
import { InjectionToken } from '@angular/core';
/** The injection token used to specify the virtual scrolling strategy. */

@@ -15,2 +16,4 @@ export declare const VIRTUAL_SCROLL_STRATEGY: InjectionToken<VirtualScrollStrategy>;

export interface VirtualScrollStrategy {
/** Emits when the index of the first element visible in the viewport changes. */
scrolledIndexChange: Observable<number>;
/**

@@ -31,2 +34,8 @@ * Attaches this scroll strategy to a viewport.

onRenderedOffsetChanged(): any;
/**
* 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.
*/
scrollToIndex(index: number, behavior: ScrollBehavior): void;
}

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

private _renderedRangeSubject;
/** Emits when a change detection cycle completes. */
private _changeDetectionComplete;
/** The direction the viewport scrolls. */
orientation: 'horizontal' | 'vertical';
/** Emits when the index of the first element visible in the viewport changes. */
scrolledIndexChange: Observable<number>;
/** The element that wraps the rendered content. */

@@ -91,3 +95,15 @@ _contentWrapper: ElementRef<HTMLElement>;

setRenderedContentOffset(offset: number, to?: 'to-start' | 'to-end'): void;
/** Sets the scroll offset on the viewport. */
/**
* 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`.
*/
scrollToOffset(offset: number, behavior?: ScrollBehavior): void;
/**
* 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`.
*/
scrollToIndex(index: number, behavior?: ScrollBehavior): void;
/** @docs-private Internal method to set the scroll offset on the viewport. */
setScrollOffset(offset: number): void;

@@ -94,0 +110,0 @@ /** Gets the current scroll offset of the viewport (in pixels). */

@@ -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.1"]}},"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":["6.4.2"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk-experimental"}

@@ -31,2 +31,4 @@ import { ListRange } from '@angular/cdk/collections';

export declare class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {
/** @docs-private Implemented as part of VirtualScrollStrategy. */
scrolledIndexChange: any;
/** The attached viewport. */

@@ -76,2 +78,4 @@ private _viewport;

onRenderedOffsetChanged(): void;
/** Scroll to the offset for the given index. */
scrollToIndex(): void;
/**

@@ -78,0 +82,0 @@ * Update the buffer parameters.

import { OnChanges } from '@angular/core';
import { Observable } from 'rxjs';
import { VirtualScrollStrategy } from './virtual-scroll-strategy';

@@ -6,2 +7,5 @@ import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';

export declare class FixedSizeVirtualScrollStrategy implements VirtualScrollStrategy {
private _scrolledIndexChange;
/** @docs-private Implemented as part of VirtualScrollStrategy. */
scrolledIndexChange: Observable<number>;
/** The attached viewport. */

@@ -39,2 +43,8 @@ private _viewport;

onRenderedOffsetChanged(): void;
/**
* 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.
*/
scrollToIndex(index: number, behavior: ScrollBehavior): void;
/** Update the viewport's total content size. */

@@ -41,0 +51,0 @@ private _updateTotalContentSize();

@@ -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"}],"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":415,"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":428,"character":3}}]}],"addBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":439,"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"}],"_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":137,"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":147,"character":3}}]}],"bufferSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"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":14,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"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":45,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":46,"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":56,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":59,"character":3},"arguments":["contentWrapper"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":111,"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":108,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":109,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":110,"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"}],"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"}],"_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"}

@@ -8,4 +8,5 @@ /**

*/
import { InjectionToken } from '@angular/core';
import { Observable } from 'rxjs';
import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
import { InjectionToken } from '@angular/core';
/** The injection token used to specify the virtual scrolling strategy. */

@@ -15,2 +16,4 @@ export declare const VIRTUAL_SCROLL_STRATEGY: InjectionToken<VirtualScrollStrategy>;

export interface VirtualScrollStrategy {
/** Emits when the index of the first element visible in the viewport changes. */
scrolledIndexChange: Observable<number>;
/**

@@ -31,2 +34,8 @@ * Attaches this scroll strategy to a viewport.

onRenderedOffsetChanged(): any;
/**
* 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.
*/
scrollToIndex(index: number, behavior: ScrollBehavior): void;
}

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

private _renderedRangeSubject;
/** Emits when a change detection cycle completes. */
private _changeDetectionComplete;
/** The direction the viewport scrolls. */
orientation: 'horizontal' | 'vertical';
/** Emits when the index of the first element visible in the viewport changes. */
scrolledIndexChange: Observable<number>;
/** The element that wraps the rendered content. */

@@ -91,3 +95,15 @@ _contentWrapper: ElementRef<HTMLElement>;

setRenderedContentOffset(offset: number, to?: 'to-start' | 'to-end'): void;
/** Sets the scroll offset on the viewport. */
/**
* 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`.
*/
scrollToOffset(offset: number, behavior?: ScrollBehavior): void;
/**
* 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`.
*/
scrollToIndex(index: number, behavior?: ScrollBehavior): void;
/** @docs-private Internal method to set the scroll offset on the viewport. */
setScrollOffset(offset: number): void;

@@ -94,0 +110,0 @@ /** Gets the current scroll offset of the viewport (in pixels). */

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc