Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ng-table-virtual-scroll

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ng-table-virtual-scroll - npm Package Compare versions

Comparing version 1.2.0 to 1.2.1

25

bundles/ng-table-virtual-scroll.umd.js

@@ -531,3 +531,4 @@ (function (global, factory) {

var TableItemSizeDirective = /** @class */ (function () {
function TableItemSizeDirective() {
function TableItemSizeDirective(zone) {
this.zone = zone;
this.alive = true;

@@ -597,3 +598,14 @@ // tslint:disable-next-line:no-input-rename

var dataSource_1 = this.table.dataSource;
this.scrollStrategy.renderedRangeStream.subscribe(dataSource_1.renderedRangeStream);
this.scrollStrategy.renderedRangeStream.subscribe((/**
* @param {?} range
* @return {?}
*/
function (range) {
_this.zone.run((/**
* @return {?}
*/
function () {
dataSource_1.renderedRangeStream.next(range);
}));
}));
dataSource_1.connect()

@@ -676,2 +688,6 @@ .pipe(operators.map((/**

];
/** @nocollapse */
TableItemSizeDirective.ctorParameters = function () { return [
{ type: core.NgZone }
]; };
TableItemSizeDirective.propDecorators = {

@@ -701,2 +717,7 @@ rowHeight: [{ type: core.Input, args: ['tvsItemSize',] }],

TableItemSizeDirective.prototype.scrollStrategy;
/**
* @type {?}
* @private
*/
TableItemSizeDirective.prototype.zone;
}

@@ -703,0 +724,0 @@

2

bundles/ng-table-virtual-scroll.umd.min.js

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

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/cdk/scrolling"),require("rxjs/operators"),require("rxjs"),require("@angular/material")):"function"==typeof define&&define.amd?define("ng-table-virtual-scroll",["exports","@angular/core","@angular/cdk/scrolling","rxjs/operators","rxjs","@angular/material"],e):e((t=t||self)["ng-table-virtual-scroll"]={},t.ng.core,t.ng.cdk.scrolling,t.rxjs.operators,t.rxjs,t.ng.material)}(this,function(t,e,r,i,n,a){"use strict";var o=function(t,e){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)};function s(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var i,n,a=r.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(i=a.next()).done;)o.push(i.value)}catch(t){n={error:t}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}return o}var u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return function(t,e){function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}(e,t),e.prototype._updateChangeSubscription=function(){var t=this;this.initRenderedRangeStream();var e=this._sort,r=this._paginator,a=this._internalPageChanges,o=this._filter,u=this._renderData,h=e?n.merge(e.sortChange,e.initialized):n.of(null),l=r?n.merge(r.page,a,r.initialized):n.of(null),c=this._data,p=n.combineLatest([c,o]).pipe(i.map(function(e){var r=s(e,1)[0];return t._filterData(r)})),f=n.combineLatest([p,h]).pipe(i.map(function(e){var r=s(e,1)[0];return t._orderData(r)})),d=n.combineLatest([f,l]).pipe(i.map(function(e){var r=s(e,1)[0];return t._pageData(r)})),g=n.combineLatest([d,this.renderedRangeStream.asObservable()]).pipe(i.map(function(t){var e=s(t,2),r=e[0],i=e[1],n=i.start,a=i.end;return null==n||null==a?r:r.slice(n,a)}));this._renderChangesSubscription.unsubscribe(),this._renderChangesSubscription=g.subscribe(function(t){return u.next(t)})},e.prototype.initRenderedRangeStream=function(){this.renderedRangeStream||(this.renderedRangeStream=new n.Subject)},e}(a.MatTableDataSource);var h=function(){function t(){this.indexChange=new n.Subject,this.stickyChange=new n.Subject,this.renderedRangeStream=new n.Subject,this.scrolledIndexChange=this.indexChange.pipe(i.distinctUntilChanged()),this._dataLength=0}return Object.defineProperty(t.prototype,"dataLength",{get:function(){return this._dataLength},set:function(t){this._dataLength=t,this.onDataLengthChanged()},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){this.viewport=t,this.viewport.renderedRangeStream.subscribe(this.renderedRangeStream),this.onDataLengthChanged(),this.updateContent()},t.prototype.detach=function(){},t.prototype.onContentScrolled=function(){this.updateContent()},t.prototype.onDataLengthChanged=function(){this.viewport&&this.viewport.setTotalContentSize(this.dataLength*this.rowHeight+this.headerHeight)},t.prototype.onContentRendered=function(){},t.prototype.onRenderedOffsetChanged=function(){},t.prototype.scrollToIndex=function(t,e){},t.prototype.setConfig=function(t){var e=t.rowHeight,r=t.headerHeight,i=t.bufferMultiplier;this.rowHeight!==e&&this.headerHeight!==r&&this.bufferMultiplier!==i&&(this.rowHeight=e,this.headerHeight=r,this.bufferMultiplier=i,this.updateContent())},t.prototype.updateContent=function(){if(this.viewport&&this.rowHeight){var t=this.viewport.measureScrollOffset(),e=Math.ceil(this.viewport.getViewportSize()/this.rowHeight),r=Math.max(t-this.headerHeight,0),i=Math.ceil(e*this.bufferMultiplier),n=Math.round(r/this.rowHeight),a=Math.max(0,n),o=Math.max(0,a-i),s=Math.min(this.dataLength,a+e+i),u=o*this.rowHeight;this.viewport.setRenderedContentOffset(u),this.viewport.setRenderedRange({start:o,end:s}),this.indexChange.next(a),this.stickyChange.next(u)}},t.decorators=[{type:e.Injectable}],t}();function l(t){return t.scrollStrategy}var c={rowHeight:48,headerHeight:56,bufferMultiplier:.7},p=function(){function t(){this.alive=!0,this.rowHeight=c.rowHeight,this.headerHeight=c.headerHeight,this.bufferMultiplier=c.bufferMultiplier,this.scrollStrategy=new h}return t.prototype.ngOnDestroy=function(){this.alive=!1},t.prototype.isAlive=function(){var t=this;return function(){return t.alive}},t.prototype.isStickyEnabled=function(){return!!this.scrollStrategy.viewport&&this.table._headerRowDefs.map(function(t){return t.sticky}).reduce(function(t,e){return t&&e},!0)},t.prototype.ngAfterViewInit=function(){var t=this;if(!(this.table.dataSource instanceof u))throw new Error("[tvsItemSize] requires TableVirtualScrollDataSource be set as [dataSource] of [mat-table]");var e=this.table.dataSource;this.scrollStrategy.renderedRangeStream.subscribe(e.renderedRangeStream),e.connect().pipe(i.map(function(){return e.data.length}),i.distinctUntilChanged(),i.takeWhile(this.isAlive())).subscribe(function(e){t.scrollStrategy.dataLength=e}),this.scrollStrategy.stickyChange.pipe(i.filter(function(){return t.isStickyEnabled()}),i.takeWhile(this.isAlive())).subscribe(function(e){t.setSticky(e)})},t.prototype.ngOnChanges=function(){var t={rowHeight:+this.rowHeight||c.rowHeight,headerHeight:+this.headerHeight||c.headerHeight,bufferMultiplier:+this.bufferMultiplier||c.bufferMultiplier};this.scrollStrategy.setConfig(t)},t.prototype.setSticky=function(t){var e="-"+t+"px";this.scrollStrategy.viewport.elementRef.nativeElement.querySelectorAll("th").forEach(function(t){t.style.top=e})},t.decorators=[{type:e.Directive,args:[{selector:"cdk-virtual-scroll-viewport[tvsItemSize]",providers:[{provide:r.VIRTUAL_SCROLL_STRATEGY,useFactory:l,deps:[e.forwardRef(function(){return t})]}]}]}],t.propDecorators={rowHeight:[{type:e.Input,args:["tvsItemSize"]}],headerHeight:[{type:e.Input}],bufferMultiplier:[{type:e.Input}],table:[{type:e.ContentChild,args:[a.MatTable,{static:!0}]}]},t}();var f=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[p],imports:[],exports:[p]}]}],t}();t.FixedSizeTableVirtualScrollStrategy=h,t.TableItemSizeDirective=p,t.TableVirtualScrollDataSource=u,t.TableVirtualScrollModule=f,t._tableVirtualScrollDirectiveStrategyFactory=l,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/cdk/scrolling"),require("rxjs/operators"),require("rxjs"),require("@angular/material")):"function"==typeof define&&define.amd?define("ng-table-virtual-scroll",["exports","@angular/core","@angular/cdk/scrolling","rxjs/operators","rxjs","@angular/material"],e):e((t=t||self)["ng-table-virtual-scroll"]={},t.ng.core,t.ng.cdk.scrolling,t.rxjs.operators,t.rxjs,t.ng.material)}(this,function(t,e,r,i,n,o){"use strict";var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)};function s(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var i,n,o=r.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(i=o.next()).done;)a.push(i.value)}catch(t){n={error:t}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return a}var u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return function(t,e){function r(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}(e,t),e.prototype._updateChangeSubscription=function(){var t=this;this.initRenderedRangeStream();var e=this._sort,r=this._paginator,o=this._internalPageChanges,a=this._filter,u=this._renderData,h=e?n.merge(e.sortChange,e.initialized):n.of(null),l=r?n.merge(r.page,o,r.initialized):n.of(null),c=this._data,p=n.combineLatest([c,a]).pipe(i.map(function(e){var r=s(e,1)[0];return t._filterData(r)})),f=n.combineLatest([p,h]).pipe(i.map(function(e){var r=s(e,1)[0];return t._orderData(r)})),d=n.combineLatest([f,l]).pipe(i.map(function(e){var r=s(e,1)[0];return t._pageData(r)})),g=n.combineLatest([d,this.renderedRangeStream.asObservable()]).pipe(i.map(function(t){var e=s(t,2),r=e[0],i=e[1],n=i.start,o=i.end;return null==n||null==o?r:r.slice(n,o)}));this._renderChangesSubscription.unsubscribe(),this._renderChangesSubscription=g.subscribe(function(t){return u.next(t)})},e.prototype.initRenderedRangeStream=function(){this.renderedRangeStream||(this.renderedRangeStream=new n.Subject)},e}(o.MatTableDataSource);var h=function(){function t(){this.indexChange=new n.Subject,this.stickyChange=new n.Subject,this.renderedRangeStream=new n.Subject,this.scrolledIndexChange=this.indexChange.pipe(i.distinctUntilChanged()),this._dataLength=0}return Object.defineProperty(t.prototype,"dataLength",{get:function(){return this._dataLength},set:function(t){this._dataLength=t,this.onDataLengthChanged()},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){this.viewport=t,this.viewport.renderedRangeStream.subscribe(this.renderedRangeStream),this.onDataLengthChanged(),this.updateContent()},t.prototype.detach=function(){},t.prototype.onContentScrolled=function(){this.updateContent()},t.prototype.onDataLengthChanged=function(){this.viewport&&this.viewport.setTotalContentSize(this.dataLength*this.rowHeight+this.headerHeight)},t.prototype.onContentRendered=function(){},t.prototype.onRenderedOffsetChanged=function(){},t.prototype.scrollToIndex=function(t,e){},t.prototype.setConfig=function(t){var e=t.rowHeight,r=t.headerHeight,i=t.bufferMultiplier;this.rowHeight!==e&&this.headerHeight!==r&&this.bufferMultiplier!==i&&(this.rowHeight=e,this.headerHeight=r,this.bufferMultiplier=i,this.updateContent())},t.prototype.updateContent=function(){if(this.viewport&&this.rowHeight){var t=this.viewport.measureScrollOffset(),e=Math.ceil(this.viewport.getViewportSize()/this.rowHeight),r=Math.max(t-this.headerHeight,0),i=Math.ceil(e*this.bufferMultiplier),n=Math.round(r/this.rowHeight),o=Math.max(0,n),a=Math.max(0,o-i),s=Math.min(this.dataLength,o+e+i),u=a*this.rowHeight;this.viewport.setRenderedContentOffset(u),this.viewport.setRenderedRange({start:a,end:s}),this.indexChange.next(o),this.stickyChange.next(u)}},t.decorators=[{type:e.Injectable}],t}();function l(t){return t.scrollStrategy}var c={rowHeight:48,headerHeight:56,bufferMultiplier:.7},p=function(){function t(t){this.zone=t,this.alive=!0,this.rowHeight=c.rowHeight,this.headerHeight=c.headerHeight,this.bufferMultiplier=c.bufferMultiplier,this.scrollStrategy=new h}return t.prototype.ngOnDestroy=function(){this.alive=!1},t.prototype.isAlive=function(){var t=this;return function(){return t.alive}},t.prototype.isStickyEnabled=function(){return!!this.scrollStrategy.viewport&&this.table._headerRowDefs.map(function(t){return t.sticky}).reduce(function(t,e){return t&&e},!0)},t.prototype.ngAfterViewInit=function(){var t=this;if(!(this.table.dataSource instanceof u))throw new Error("[tvsItemSize] requires TableVirtualScrollDataSource be set as [dataSource] of [mat-table]");var e=this.table.dataSource;this.scrollStrategy.renderedRangeStream.subscribe(function(r){t.zone.run(function(){e.renderedRangeStream.next(r)})}),e.connect().pipe(i.map(function(){return e.data.length}),i.distinctUntilChanged(),i.takeWhile(this.isAlive())).subscribe(function(e){t.scrollStrategy.dataLength=e}),this.scrollStrategy.stickyChange.pipe(i.filter(function(){return t.isStickyEnabled()}),i.takeWhile(this.isAlive())).subscribe(function(e){t.setSticky(e)})},t.prototype.ngOnChanges=function(){var t={rowHeight:+this.rowHeight||c.rowHeight,headerHeight:+this.headerHeight||c.headerHeight,bufferMultiplier:+this.bufferMultiplier||c.bufferMultiplier};this.scrollStrategy.setConfig(t)},t.prototype.setSticky=function(t){var e="-"+t+"px";this.scrollStrategy.viewport.elementRef.nativeElement.querySelectorAll("th").forEach(function(t){t.style.top=e})},t.decorators=[{type:e.Directive,args:[{selector:"cdk-virtual-scroll-viewport[tvsItemSize]",providers:[{provide:r.VIRTUAL_SCROLL_STRATEGY,useFactory:l,deps:[e.forwardRef(function(){return t})]}]}]}],t.ctorParameters=function(){return[{type:e.NgZone}]},t.propDecorators={rowHeight:[{type:e.Input,args:["tvsItemSize"]}],headerHeight:[{type:e.Input}],bufferMultiplier:[{type:e.Input}],table:[{type:e.ContentChild,args:[o.MatTable,{static:!0}]}]},t}();var f=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{declarations:[p],imports:[],exports:[p]}]}],t}();t.FixedSizeTableVirtualScrollStrategy=h,t.TableItemSizeDirective=p,t.TableVirtualScrollDataSource=u,t.TableVirtualScrollModule=f,t._tableVirtualScrollDirectiveStrategyFactory=l,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ng-table-virtual-scroll.umd.min.js.map

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

*/
import { ContentChild, Directive, forwardRef, Input } from '@angular/core';
import { ContentChild, Directive, forwardRef, Input, NgZone } from '@angular/core';
import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';

@@ -26,3 +26,7 @@ import { distinctUntilChanged, filter, map, takeWhile } from 'rxjs/operators';

export class TableItemSizeDirective {
constructor() {
/**
* @param {?} zone
*/
constructor(zone) {
this.zone = zone;
this.alive = true;

@@ -76,3 +80,14 @@ // tslint:disable-next-line:no-input-rename

const dataSource = this.table.dataSource;
this.scrollStrategy.renderedRangeStream.subscribe(dataSource.renderedRangeStream);
this.scrollStrategy.renderedRangeStream.subscribe((/**
* @param {?} range
* @return {?}
*/
range => {
this.zone.run((/**
* @return {?}
*/
() => {
dataSource.renderedRangeStream.next(range);
}));
}));
dataSource.connect()

@@ -149,2 +164,6 @@ .pipe(map((/**

];
/** @nocollapse */
TableItemSizeDirective.ctorParameters = () => [
{ type: NgZone }
];
TableItemSizeDirective.propDecorators = {

@@ -172,3 +191,8 @@ rowHeight: [{ type: Input, args: ['tvsItemSize',] }],

TableItemSizeDirective.prototype.scrollStrategy;
/**
* @type {?}
* @private
*/
TableItemSizeDirective.prototype.zone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaXRlbS1zaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLyIsInNvdXJjZXMiOlsibGliL3RhYmxlLWl0ZW0tc2l6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBR2pHLE1BQU0sVUFBVSwyQ0FBMkMsQ0FBQyxRQUFnQztJQUMxRixPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUM7QUFDakMsQ0FBQzs7TUFFSyxRQUFRLEdBQUc7SUFDZixTQUFTLEVBQUUsRUFBRTtJQUNiLFlBQVksRUFBRSxFQUFFO0lBQ2hCLGdCQUFnQixFQUFFLEdBQUc7Q0FDdEI7QUFVRCxNQUFNLE9BQU8sc0JBQXNCO0lBUm5DO1FBU1UsVUFBSyxHQUFHLElBQUksQ0FBQzs7UUFJckIsY0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFHL0IsaUJBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBR3JDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUs3QyxtQkFBYyxHQUFHLElBQUksbUNBQW1DLEVBQUUsQ0FBQztJQTZEN0QsQ0FBQzs7OztJQTNEQyxXQUFXO1FBQ1QsSUFB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LFVBQVU7Ozs0QkFBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsRUFBQyxDQUFDO3FCQUNqRCxDQUFDO2FBQ0g7Ozt3QkFLRSxLQUFLLFNBQUMsYUFBYTsyQkFHbkIsS0FBSzsrQkFHTCxLQUFLO29CQUdMLFlBQVksU0FBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOzs7Ozs7O0lBWnRDLHVDQUFxQjs7SUFHckIsMkNBQytCOztJQUUvQiw4Q0FDcUM7O0lBRXJDLGtEQUM2Qzs7SUFFN0MsdUNBQ3FCOztJQUVyQixnREFBMkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlIH0gZnJvbSAnLi90YWJsZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBNYXRUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IEZpeGVkU2l6ZVRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi9maXhlZC1zaXplLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLXN0cmF0ZWd5JztcbmltcG9ydCB7IENka0hlYWRlclJvd0RlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBfdGFibGVWaXJ0dWFsU2Nyb2xsRGlyZWN0aXZlU3RyYXRlZ3lGYWN0b3J5KHRhYmxlRGlyOiBUYWJsZUl0ZW1TaXplRGlyZWN0aXZlKSB7XG4gIHJldHVybiB0YWJsZURpci5zY3JvbGxTdHJhdGVneTtcbn1cblxuY29uc3QgZGVmYXVsdHMgPSB7XG4gIHJvd0hlaWdodDogNDgsXG4gIGhlYWRlckhlaWdodDogNTYsXG4gIGJ1ZmZlck11bHRpcGxpZXI6IDAuN1xufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0W3R2c0l0ZW1TaXplXScsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSxcbiAgICB1c2VGYWN0b3J5OiBfdGFibGVWaXJ0dWFsU2Nyb2xsRGlyZWN0aXZlU3RyYXRlZ3lGYWN0b3J5LFxuICAgIGRlcHM6IFtmb3J3YXJkUmVmKCgpID0+IFRhYmxlSXRlbVNpemVEaXJlY3RpdmUpXVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUl0ZW1TaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGFsaXZlID0gdHJ1ZTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndHZzSXRlbVNpemUnKVxuICByb3dIZWlnaHQgPSBkZWZhdWx0cy5yb3dIZWlnaHQ7XG5cbiAgQElucHV0KClcbiAgaGVhZGVySGVpZ2h0ID0gZGVmYXVsdHMuaGVhZGVySGVpZ2h0O1xuXG4gIEBJbnB1dCgpXG4gIGJ1ZmZlck11bHRpcGxpZXIgPSBkZWZhdWx0cy5idWZmZXJNdWx0aXBsaWVyO1xuXG4gIEBDb250ZW50Q2hpbGQoTWF0VGFibGUsIHtzdGF0aWM6IHRydWV9KVxuICB0YWJsZTogTWF0VGFibGU8YW55PjtcblxuICBzY3JvbGxTdHJhdGVneSA9IG5ldyBGaXhlZFNpemVUYWJsZVZpcnR1YWxTY3JvbGxTdHJhdGVneSgpO1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbGl2ZSgpIHtcbiAgICByZXR1cm4gKCkgPT4gdGhpcy5hbGl2ZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTdGlja3lFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc2Nyb2xsU3RyYXRlZ3kudmlld3BvcnQgJiYgKHRoaXMudGFibGVbJ19oZWFkZXJSb3dEZWZzJ10gYXMgQ2RrSGVhZGVyUm93RGVmW10pXG4gICAgICAubWFwKGRlZiA9PiBkZWYuc3RpY2t5KVxuICAgICAgLnJlZHVjZSgocHJldlN0YXRlLCBzdGF0ZSkgPT4gcHJldlN0YXRlICYmIHN0YXRlLCB0cnVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJsZS5kYXRhU291cmNlIGluc3RhbmNlb2YgVGFibGVWaXJ0dWFsU2Nyb2xsRGF0YVNvdXJjZSkge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMudGFibGUuZGF0YVNvdXJjZTtcbiAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kucmVuZGVyZWRSYW5nZVN0cmVhbS5zdWJzY3JpYmUoZGF0YVNvdXJjZS5yZW5kZXJlZFJhbmdlU3RyZWFtKTtcbiAgICAgIGRhdGFTb3VyY2UuY29ubmVjdCgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBkYXRhU291cmNlLmRhdGEubGVuZ3RoKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHRha2VXaGlsZSh0aGlzLmlzQWxpdmUoKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChsZW5ndGgpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LmRhdGFMZW5ndGggPSBsZW5ndGg7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1t0dnNJdGVtU2l6ZV0gcmVxdWlyZXMgVGFibGVWaXJ0dWFsU2Nyb2xsRGF0YVNvdXJjZSBiZSBzZXQgYXMgW2RhdGFTb3VyY2VdIG9mIFttYXQtdGFibGVdJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zdGlja3lDaGFuZ2VcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc1N0aWNreUVuYWJsZWQoKSksXG4gICAgICAgIHRha2VXaGlsZSh0aGlzLmlzQWxpdmUoKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHN0aWNreU9mZnNldCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0aWNreShzdGlja3lPZmZzZXQpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICByb3dIZWlnaHQ6ICt0aGlzLnJvd0hlaWdodCB8fCBkZWZhdWx0cy5yb3dIZWlnaHQsXG4gICAgICBoZWFkZXJIZWlnaHQ6ICt0aGlzLmhlYWRlckhlaWdodCB8fCBkZWZhdWx0cy5oZWFkZXJIZWlnaHQsXG4gICAgICBidWZmZXJNdWx0aXBsaWVyOiArdGhpcy5idWZmZXJNdWx0aXBsaWVyIHx8IGRlZmF1bHRzLmJ1ZmZlck11bHRpcGxpZXJcbiAgICB9O1xuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2V0Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuXG4gIHNldFN0aWNreShvZmZzZXQpIHtcbiAgICBjb25zdCBvZmZzZXRTdHJpbmcgPSBgLSR7b2Zmc2V0fXB4YDtcblxuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kudmlld3BvcnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJylcbiAgICAgIC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgZWwuc3R5bGUudG9wID0gb2Zmc2V0U3RyaW5nO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaXRlbS1zaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLyIsInNvdXJjZXMiOlsibGliL3RhYmxlLWl0ZW0tc2l6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQUdqRyxNQUFNLFVBQVUsMkNBQTJDLENBQUMsUUFBZ0M7SUFDMUYsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDO0FBQ2pDLENBQUM7O01BRUssUUFBUSxHQUFHO0lBQ2YsU0FBUyxFQUFFLEVBQUU7SUFDYixZQUFZLEVBQUUsRUFBRTtJQUNoQixnQkFBZ0IsRUFBRSxHQUFHO0NBQ3RCO0FBVUQsTUFBTSxPQUFPLHNCQUFzQjs7OztJQWtCakMsWUFBb0IsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFqQnhCLFVBQUssR0FBRyxJQUFJLENBQUM7O1FBSXJCLGNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBRy9CLGlCQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUdyQyxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7UUFLN0MsbUJBQWMsR0FBRyxJQUFJ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QUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDOUIsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7WUEzRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQ0FBMEM7Z0JBQ3BELFNBQVMsRUFBRSxDQUFDO3dCQUNWLE9BQU8sRUFBRSx1QkFBdUI7d0JBQ2hDLFVBQVUsRUFBRSwyQ0FBMkM7d0JBQ3ZELElBQUksRUFBRSxDQUFDLFVBQVU7Ozs0QkFBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsRUFBQyxDQUFDO3FCQUNqRCxDQUFDO2FBQ0g7Ozs7WUF6Qm1FLE1BQU07Ozt3QkE4QnZFLEtBQUssU0FBQyxhQUFhOzJCQUduQixLQUFLOytCQUdMLEtBQUs7b0JBR0wsWUFBWSxTQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Ozs7Ozs7SUFadEMsdUNBQXFCOztJQUdyQiwyQ0FDK0I7O0lBRS9CLDhDQUNxQzs7SUFFckMsa0RBQzZDOztJQUU3Qyx1Q0FDcUI7O0lBRXJCLGdEQUEyRDs7Ozs7SUFFL0Msc0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcywgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlIH0gZnJvbSAnLi90YWJsZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBNYXRUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IEZpeGVkU2l6ZVRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi9maXhlZC1zaXplLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLXN0cmF0ZWd5JztcbmltcG9ydCB7IENka0hlYWRlclJvd0RlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBfdGFibGVWaXJ0dWFsU2Nyb2xsRGlyZWN0aXZlU3RyYXRlZ3lGYWN0b3J5KHRhYmxlRGlyOiBUYWJsZUl0ZW1TaXplRGlyZWN0aXZlKSB7XG4gIHJldHVybiB0YWJsZURpci5zY3JvbGxTdHJhdGVneTtcbn1cblxuY29uc3QgZGVmYXVsdHMgPSB7XG4gIHJvd0hlaWdodDogNDgsXG4gIGhlYWRlckhlaWdodDogNTYsXG4gIGJ1ZmZlck11bHRpcGxpZXI6IDAuN1xufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0W3R2c0l0ZW1TaXplXScsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSxcbiAgICB1c2VGYWN0b3J5OiBfdGFibGVWaXJ0dWFsU2Nyb2xsRGlyZWN0aXZlU3RyYXRlZ3lGYWN0b3J5LFxuICAgIGRlcHM6IFtmb3J3YXJkUmVmKCgpID0+IFRhYmxlSXRlbVNpemVEaXJlY3RpdmUpXVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUl0ZW1TaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGFsaXZlID0gdHJ1ZTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndHZzSXRlbVNpemUnKVxuICByb3dIZWlnaHQgPSBkZWZhdWx0cy5yb3dIZWlnaHQ7XG5cbiAgQElucHV0KClcbiAgaGVhZGVySGVpZ2h0ID0gZGVmYXVsdHMuaGVhZGVySGVpZ2h0O1xuXG4gIEBJbnB1dCgpXG4gIGJ1ZmZlck11bHRpcGxpZXIgPSBkZWZhdWx0cy5idWZmZXJNdWx0aXBsaWVyO1xuXG4gIEBDb250ZW50Q2hpbGQoTWF0VGFibGUsIHtzdGF0aWM6IHRydWV9KVxuICB0YWJsZTogTWF0VGFibGU8YW55PjtcblxuICBzY3JvbGxTdHJhdGVneSA9IG5ldyBGaXhlZFNpemVUYWJsZVZpcnR1YWxTY3JvbGxTdHJhdGVneSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzQWxpdmUoKSB7XG4gICAgcmV0dXJuICgpID0+IHRoaXMuYWxpdmU7XG4gIH1cblxuICBwcml2YXRlIGlzU3RpY2t5RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnNjcm9sbFN0cmF0ZWd5LnZpZXdwb3J0ICYmICh0aGlzLnRhYmxlWydfaGVhZGVyUm93RGVmcyddIGFzIENka0hlYWRlclJvd0RlZltdKVxuICAgICAgLm1hcChkZWYgPT4gZGVmLnN0aWNreSlcbiAgICAgIC5yZWR1Y2UoKHByZXZTdGF0ZSwgc3RhdGUpID0+IHByZXZTdGF0ZSAmJiBzdGF0ZSwgdHJ1ZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMudGFibGUuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIFRhYmxlVmlydHVhbFNjcm9sbERhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2U7XG4gICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnJlbmRlcmVkUmFuZ2VTdHJlYW0uc3Vic2NyaWJlKHJhbmdlID0+IHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgZGF0YVNvdXJjZS5yZW5kZXJlZFJhbmdlU3RyZWFtLm5leHQocmFuZ2UpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgZGF0YVNvdXJjZS5jb25uZWN0KClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IGRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgdGFrZVdoaWxlKHRoaXMuaXNBbGl2ZSgpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGxlbmd0aCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuZGF0YUxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW3R2c0l0ZW1TaXplXSByZXF1aXJlcyBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlIGJlIHNldCBhcyBbZGF0YVNvdXJjZV0gb2YgW21hdC10YWJsZV0nKTtcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnN0aWNreUNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzU3RpY2t5RW5hYmxlZCgpKSxcbiAgICAgICAgdGFrZVdoaWxlKHRoaXMuaXNBbGl2ZSgpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RpY2t5T2Zmc2V0KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RpY2t5KHN0aWNreU9mZnNldCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIHJvd0hlaWdodDogK3RoaXMucm93SGVpZ2h0IHx8IGRlZmF1bHRzLnJvd0hlaWdodCxcbiAgICAgIGhlYWRlckhlaWdodDogK3RoaXMuaGVhZGVySGVpZ2h0IHx8IGRlZmF1bHRzLmhlYWRlckhlaWdodCxcbiAgICAgIGJ1ZmZlck11bHRpcGxpZXI6ICt0aGlzLmJ1ZmZlck11bHRpcGxpZXIgfHwgZGVmYXVsdHMuYnVmZmVyTXVsdGlwbGllclxuICAgIH07XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zZXRDb25maWcoY29uZmlnKTtcbiAgfVxuXG5cbiAgc2V0U3RpY2t5KG9mZnNldCkge1xuICAgIGNvbnN0IG9mZnNldFN0cmluZyA9IGAtJHtvZmZzZXR9cHhgO1xuXG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS52aWV3cG9ydC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGgnKVxuICAgICAgLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBlbC5zdHlsZS50b3AgPSBvZmZzZXRTdHJpbmc7XG4gICAgICB9KTtcbiAgfVxufVxuIl19

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

*/
import { ContentChild, Directive, forwardRef, Input } from '@angular/core';
import { ContentChild, Directive, forwardRef, Input, NgZone } from '@angular/core';
import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';

@@ -26,3 +26,4 @@ import { distinctUntilChanged, filter, map, takeWhile } from 'rxjs/operators';

var TableItemSizeDirective = /** @class */ (function () {
function TableItemSizeDirective() {
function TableItemSizeDirective(zone) {
this.zone = zone;
this.alive = true;

@@ -92,3 +93,14 @@ // tslint:disable-next-line:no-input-rename

var dataSource_1 = this.table.dataSource;
this.scrollStrategy.renderedRangeStream.subscribe(dataSource_1.renderedRangeStream);
this.scrollStrategy.renderedRangeStream.subscribe((/**
* @param {?} range
* @return {?}
*/
function (range) {
_this.zone.run((/**
* @return {?}
*/
function () {
dataSource_1.renderedRangeStream.next(range);
}));
}));
dataSource_1.connect()

@@ -171,2 +183,6 @@ .pipe(map((/**

];
/** @nocollapse */
TableItemSizeDirective.ctorParameters = function () { return [
{ type: NgZone }
]; };
TableItemSizeDirective.propDecorators = {

@@ -197,3 +213,8 @@ rowHeight: [{ type: Input, args: ['tvsItemSize',] }],

TableItemSizeDirective.prototype.scrollStrategy;
/**
* @type {?}
* @private
*/
TableItemSizeDirective.prototype.zone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaXRlbS1zaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLyIsInNvdXJjZXMiOlsibGliL3RhYmxlLWl0ZW0tc2l6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBR2pHLE1BQU0sVUFBVSwyQ0FBMkMsQ0FBQyxRQUFnQztJQUMxRixPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUM7QUFDakMsQ0FBQzs7SUFFSyxRQUFRLEdBQUc7SUFDZixTQUFTLEVBQUUsRUFBRTtJQUNiLFlBQVksRUFBRSxFQUFFO0lBQ2hCLGdCQUFnQixFQUFFLEdBQUc7Q0FDdEI7QUFFRDtJQUFBO1FBU1UsVUFBSyxHQUFHLElBQUksQ0FBQzs7UUFJckIsY0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFHL0IsaUJBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBR3JDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUs3QyxtQkFBYyxHQUFHLElBQUksbUNBQW1DLEVBQUUsQ0FBQztJQTZEN0QsQ0FBQzs7OztJQTNEQyw0Q0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsS0FB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NEJBQ1YsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsVUFBVSxFQUFFLDJDQUEyQzs0QkFDdkQsSUFBSSxFQUFFLENBQUMsVUFBVTs7O2dDQUFDLGNBQU0sT0FBQSxzQkFBc0IsRUFBdEIsQ0FBc0IsRUFBQyxDQUFDO3lCQUNqRCxDQUFDO2lCQUNIOzs7NEJBS0UsS0FBSyxTQUFDLGFBQWE7K0JBR25CLEtBQUs7bUNBR0wsS0FBSzt3QkFHTCxZQUFZLFNBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzs7SUFnRXhDLDZCQUFDO0NBQUEsQUFyRkQsSUFxRkM7U0E3RVksc0JBQXNCOzs7Ozs7SUFDakMsdUNBQXFCOztJQUdyQiwyQ0FDK0I7O0lBRS9CLDhDQUNxQzs7SUFFckMsa0RBQzZDOztJQUU3Qyx1Q0FDcUI7O0lBRXJCLGdEQUEyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZJUlRVQUxfU0NST0xMX1NUUkFURUdZIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYmxlVmlydHVhbFNjcm9sbERhdGFTb3VyY2UgfSBmcm9tICcuL3RhYmxlLWRhdGEtc291cmNlJztcbmltcG9ydCB7IE1hdFRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRml4ZWRTaXplVGFibGVWaXJ0dWFsU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICcuL2ZpeGVkLXNpemUtdGFibGUtdmlydHVhbC1zY3JvbGwtc3RyYXRlZ3knO1xuaW1wb3J0IHsgQ2RrSGVhZGVyUm93RGVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcblxuZXhwb3J0IGZ1bmN0aW9uIF90YWJsZVZpcnR1YWxTY3JvbGxEaXJlY3RpdmVTdHJhdGVneUZhY3RvcnkodGFibGVEaXI6IFRhYmxlSXRlbVNpemVEaXJlY3RpdmUpIHtcbiAgcmV0dXJuIHRhYmxlRGlyLnNjcm9sbFN0cmF0ZWd5O1xufVxuXG5jb25zdCBkZWZhdWx0cyA9IHtcbiAgcm93SGVpZ2h0OiA0OCxcbiAgaGVhZGVySGVpZ2h0OiA1NixcbiAgYnVmZmVyTXVsdGlwbGllcjogMC43XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRbdHZzSXRlbVNpemVdJyxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IFZJUlRVQUxfU0NST0xMX1NUUkFURUdZLFxuICAgIHVzZUZhY3Rvcnk6IF90YWJsZVZpcnR1YWxTY3JvbGxEaXJlY3RpdmVTdHJhdGVneUZhY3RvcnksXG4gICAgZGVwczogW2ZvcndhcmRSZWYoKCkgPT4gVGFibGVJdGVtU2l6ZURpcmVjdGl2ZSldXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlSXRlbVNpemVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgYWxpdmUgPSB0cnVlO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCd0dnNJdGVtU2l6ZScpXG4gIHJvd0hlaWdodCA9IGRlZmF1bHRzLnJvd0hlaWdodDtcblxuICBASW5wdXQoKVxuICBoZWFkZXJIZWlnaHQgPSBkZWZhdWx0cy5oZWFkZXJIZWlnaHQ7XG5cbiAgQElucHV0KClcbiAgYnVmZmVyTXVsdGlwbGllciA9IGRlZmF1bHRzLmJ1ZmZlck11bHRpcGxpZXI7XG5cbiAgQENvbnRlbnRDaGlsZChNYXRUYWJsZSwge3N0YXRpYzogdHJ1ZX0pXG4gIHRhYmxlOiBNYXRUYWJsZTxhbnk+O1xuXG4gIHNjcm9sbFN0cmF0ZWd5ID0gbmV3IEZpeGVkU2l6ZVRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5KCk7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FsaXZlKCkge1xuICAgIHJldHVybiAoKSA9PiB0aGlzLmFsaXZlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1N0aWNreUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zY3JvbGxTdHJhdGVneS52aWV3cG9ydCAmJiAodGhpcy50YWJsZVsnX2hlYWRlclJvd0RlZnMnXSBhcyBDZGtIZWFkZXJSb3dEZWZbXSlcbiAgICAgIC5tYXAoZGVmID0+IGRlZi5zdGlja3kpXG4gICAgICAucmVkdWNlKChwcmV2U3RhdGUsIHN0YXRlKSA9PiBwcmV2U3RhdGUgJiYgc3RhdGUsIHRydWUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnRhYmxlLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlKSB7XG4gICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy50YWJsZS5kYXRhU291cmNlO1xuICAgICAgdGhpcy5zY3JvbGxTdHJhdGVneS5yZW5kZXJlZFJhbmdlU3RyZWFtLnN1YnNjcmliZShkYXRhU291cmNlLnJlbmRlcmVkUmFuZ2VTdHJlYW0pO1xuICAgICAgZGF0YVNvdXJjZS5jb25uZWN0KClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IGRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgdGFrZVdoaWxlKHRoaXMuaXNBbGl2ZSgpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGxlbmd0aCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuZGF0YUxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW3R2c0l0ZW1TaXplXSByZXF1aXJlcyBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlIGJlIHNldCBhcyBbZGF0YVNvdXJjZV0gb2YgW21hdC10YWJsZV0nKTtcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnN0aWNreUNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzU3RpY2t5RW5hYmxlZCgpKSxcbiAgICAgICAgdGFrZVdoaWxlKHRoaXMuaXNBbGl2ZSgpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RpY2t5T2Zmc2V0KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RpY2t5KHN0aWNreU9mZnNldCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIHJvd0hlaWdodDogK3RoaXMucm93SGVpZ2h0IHx8IGRlZmF1bHRzLnJvd0hlaWdodCxcbiAgICAgIGhlYWRlckhlaWdodDogK3RoaXMuaGVhZGVySGVpZ2h0IHx8IGRlZmF1bHRzLmhlYWRlckhlaWdodCxcbiAgICAgIGJ1ZmZlck11bHRpcGxpZXI6ICt0aGlzLmJ1ZmZlck11bHRpcGxpZXIgfHwgZGVmYXVsdHMuYnVmZmVyTXVsdGlwbGllclxuICAgIH07XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zZXRDb25maWcoY29uZmlnKTtcbiAgfVxuXG5cbiAgc2V0U3RpY2t5KG9mZnNldCkge1xuICAgIGNvbnN0IG9mZnNldFN0cmluZyA9IGAtJHtvZmZzZXR9cHhgO1xuXG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS52aWV3cG9ydC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGgnKVxuICAgICAgLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBlbC5zdHlsZS50b3AgPSBvZmZzZXRTdHJpbmc7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaXRlbS1zaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLyIsInNvdXJjZXMiOlsibGliL3RhYmxlLWl0ZW0tc2l6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQUdqRyxNQUFNLFVBQVUsMkNBQTJDLENBQUMsUUFBZ0M7SUFDMUYsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDO0FBQ2pDLENBQUM7O0lBRUssUUFBUSxHQUFHO0lBQ2YsU0FBUyxFQUFFLEVBQUU7SUFDYixZQUFZLEVBQUUsRUFBRTtJQUNoQixnQkFBZ0IsRUFBRSxHQUFHO0NBQ3RCO0FBRUQ7SUEwQkUsZ0NBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBakJ4QixVQUFLLEdBQUcsSUFBSSxDQUFDOztRQUlyQixjQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUcvQixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFHckMscUJBQWdCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1FBSzdDLG1CQUFjLEdBQUcsSUFBSSxtQ0FBbUMsRUFBRSxDQUFDO0lB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YUFDekUsT0FBTzs7OztRQUFDLFVBQUEsRUFBRTtZQUNULEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7O2dCQTNGRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsU0FBUyxFQUFFLENBQUM7NEJBQ1YsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsVUFBVSxFQUFFLDJDQUEyQzs0QkFDdkQsSUFBSSxFQUFFLENBQUMsVUFBVTs7O2dDQUFDLGNBQU0sT0FBQSxzQkFBc0IsRUFBdEIsQ0FBc0IsRUFBQyxDQUFDO3lCQUNqRCxDQUFDO2lCQUNIOzs7O2dCQXpCbUUsTUFBTTs7OzRCQThCdkUsS0FBSyxTQUFDLGFBQWE7K0JBR25CLEtBQUs7bUNBR0wsS0FBSzt3QkFHTCxZQUFZLFNBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzs7SUF1RXhDLDZCQUFDO0NBQUEsQUE1RkQsSUE0RkM7U0FwRlksc0JBQXNCOzs7Ozs7SUFDakMsdUNBQXFCOztJQUdyQiwyQ0FDK0I7O0lBRS9CLDhDQUNxQzs7SUFFckMsa0RBQzZDOztJQUU3Qyx1Q0FDcUI7O0lBRXJCLGdEQUEyRDs7Ozs7SUFFL0Msc0NBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcywgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlIH0gZnJvbSAnLi90YWJsZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBNYXRUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IEZpeGVkU2l6ZVRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi9maXhlZC1zaXplLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLXN0cmF0ZWd5JztcbmltcG9ydCB7IENka0hlYWRlclJvd0RlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBfdGFibGVWaXJ0dWFsU2Nyb2xsRGlyZWN0aXZlU3RyYXRlZ3lGYWN0b3J5KHRhYmxlRGlyOiBUYWJsZUl0ZW1TaXplRGlyZWN0aXZlKSB7XG4gIHJldHVybiB0YWJsZURpci5zY3JvbGxTdHJhdGVneTtcbn1cblxuY29uc3QgZGVmYXVsdHMgPSB7XG4gIHJvd0hlaWdodDogNDgsXG4gIGhlYWRlckhlaWdodDogNTYsXG4gIGJ1ZmZlck11bHRpcGxpZXI6IDAuN1xufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0W3R2c0l0ZW1TaXplXScsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSxcbiAgICB1c2VGYWN0b3J5OiBfdGFibGVWaXJ0dWFsU2Nyb2xsRGlyZWN0aXZlU3RyYXRlZ3lGYWN0b3J5LFxuICAgIGRlcHM6IFtmb3J3YXJkUmVmKCgpID0+IFRhYmxlSXRlbVNpemVEaXJlY3RpdmUpXVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUl0ZW1TaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGFsaXZlID0gdHJ1ZTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndHZzSXRlbVNpemUnKVxuICByb3dIZWlnaHQgPSBkZWZhdWx0cy5yb3dIZWlnaHQ7XG5cbiAgQElucHV0KClcbiAgaGVhZGVySGVpZ2h0ID0gZGVmYXVsdHMuaGVhZGVySGVpZ2h0O1xuXG4gIEBJbnB1dCgpXG4gIGJ1ZmZlck11bHRpcGxpZXIgPSBkZWZhdWx0cy5idWZmZXJNdWx0aXBsaWVyO1xuXG4gIEBDb250ZW50Q2hpbGQoTWF0VGFibGUsIHtzdGF0aWM6IHRydWV9KVxuICB0YWJsZTogTWF0VGFibGU8YW55PjtcblxuICBzY3JvbGxTdHJhdGVneSA9IG5ldyBGaXhlZFNpemVUYWJsZVZpcnR1YWxTY3JvbGxTdHJhdGVneSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzQWxpdmUoKSB7XG4gICAgcmV0dXJuICgpID0+IHRoaXMuYWxpdmU7XG4gIH1cblxuICBwcml2YXRlIGlzU3RpY2t5RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnNjcm9sbFN0cmF0ZWd5LnZpZXdwb3J0ICYmICh0aGlzLnRhYmxlWydfaGVhZGVyUm93RGVmcyddIGFzIENka0hlYWRlclJvd0RlZltdKVxuICAgICAgLm1hcChkZWYgPT4gZGVmLnN0aWNreSlcbiAgICAgIC5yZWR1Y2UoKHByZXZTdGF0ZSwgc3RhdGUpID0+IHByZXZTdGF0ZSAmJiBzdGF0ZSwgdHJ1ZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMudGFibGUuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIFRhYmxlVmlydHVhbFNjcm9sbERhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2U7XG4gICAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnJlbmRlcmVkUmFuZ2VTdHJlYW0uc3Vic2NyaWJlKHJhbmdlID0+IHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgZGF0YVNvdXJjZS5yZW5kZXJlZFJhbmdlU3RyZWFtLm5leHQocmFuZ2UpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgZGF0YVNvdXJjZS5jb25uZWN0KClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IGRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgdGFrZVdoaWxlKHRoaXMuaXNBbGl2ZSgpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGxlbmd0aCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuZGF0YUxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW3R2c0l0ZW1TaXplXSByZXF1aXJlcyBUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlIGJlIHNldCBhcyBbZGF0YVNvdXJjZV0gb2YgW21hdC10YWJsZV0nKTtcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnN0aWNreUNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzU3RpY2t5RW5hYmxlZCgpKSxcbiAgICAgICAgdGFrZVdoaWxlKHRoaXMuaXNBbGl2ZSgpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RpY2t5T2Zmc2V0KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RpY2t5KHN0aWNreU9mZnNldCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIHJvd0hlaWdodDogK3RoaXMucm93SGVpZ2h0IHx8IGRlZmF1bHRzLnJvd0hlaWdodCxcbiAgICAgIGhlYWRlckhlaWdodDogK3RoaXMuaGVhZGVySGVpZ2h0IHx8IGRlZmF1bHRzLmhlYWRlckhlaWdodCxcbiAgICAgIGJ1ZmZlck11bHRpcGxpZXI6ICt0aGlzLmJ1ZmZlck11bHRpcGxpZXIgfHwgZGVmYXVsdHMuYnVmZmVyTXVsdGlwbGllclxuICAgIH07XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zZXRDb25maWcoY29uZmlnKTtcbiAgfVxuXG5cbiAgc2V0U3RpY2t5KG9mZnNldCkge1xuICAgIGNvbnN0IG9mZnNldFN0cmluZyA9IGAtJHtvZmZzZXR9cHhgO1xuXG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS52aWV3cG9ydC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGgnKVxuICAgICAgLmZvckVhY2goZWwgPT4ge1xuICAgICAgICBlbC5zdHlsZS50b3AgPSBvZmZzZXRTdHJpbmc7XG4gICAgICB9KTtcbiAgfVxufVxuIl19

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

import { Injectable, Directive, forwardRef, Input, ContentChild, NgModule } from '@angular/core';
import { Injectable, Directive, forwardRef, NgZone, Input, ContentChild, NgModule } from '@angular/core';
import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';

@@ -268,3 +268,7 @@ import { map, distinctUntilChanged, takeWhile, filter } from 'rxjs/operators';

class TableItemSizeDirective {
constructor() {
/**
* @param {?} zone
*/
constructor(zone) {
this.zone = zone;
this.alive = true;

@@ -318,3 +322,14 @@ // tslint:disable-next-line:no-input-rename

const dataSource = this.table.dataSource;
this.scrollStrategy.renderedRangeStream.subscribe(dataSource.renderedRangeStream);
this.scrollStrategy.renderedRangeStream.subscribe((/**
* @param {?} range
* @return {?}
*/
range => {
this.zone.run((/**
* @return {?}
*/
() => {
dataSource.renderedRangeStream.next(range);
}));
}));
dataSource.connect()

@@ -391,2 +406,6 @@ .pipe(map((/**

];
/** @nocollapse */
TableItemSizeDirective.ctorParameters = () => [
{ type: NgZone }
];
TableItemSizeDirective.propDecorators = {

@@ -414,2 +433,7 @@ rowHeight: [{ type: Input, args: ['tvsItemSize',] }],

TableItemSizeDirective.prototype.scrollStrategy;
/**
* @type {?}
* @private
*/
TableItemSizeDirective.prototype.zone;
}

@@ -416,0 +440,0 @@

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

import { Injectable, Directive, forwardRef, Input, ContentChild, NgModule } from '@angular/core';
import { Injectable, Directive, forwardRef, NgZone, Input, ContentChild, NgModule } from '@angular/core';
import { VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';

@@ -335,3 +335,4 @@ import { map, distinctUntilChanged, takeWhile, filter } from 'rxjs/operators';

var TableItemSizeDirective = /** @class */ (function () {
function TableItemSizeDirective() {
function TableItemSizeDirective(zone) {
this.zone = zone;
this.alive = true;

@@ -401,3 +402,14 @@ // tslint:disable-next-line:no-input-rename

var dataSource_1 = this.table.dataSource;
this.scrollStrategy.renderedRangeStream.subscribe(dataSource_1.renderedRangeStream);
this.scrollStrategy.renderedRangeStream.subscribe((/**
* @param {?} range
* @return {?}
*/
function (range) {
_this.zone.run((/**
* @return {?}
*/
function () {
dataSource_1.renderedRangeStream.next(range);
}));
}));
dataSource_1.connect()

@@ -480,2 +492,6 @@ .pipe(map((/**

];
/** @nocollapse */
TableItemSizeDirective.ctorParameters = function () { return [
{ type: NgZone }
]; };
TableItemSizeDirective.propDecorators = {

@@ -505,2 +521,7 @@ rowHeight: [{ type: Input, args: ['tvsItemSize',] }],

TableItemSizeDirective.prototype.scrollStrategy;
/**
* @type {?}
* @private
*/
TableItemSizeDirective.prototype.zone;
}

@@ -507,0 +528,0 @@

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

import { AfterViewInit, OnChanges, OnDestroy } from '@angular/core';
import { AfterViewInit, NgZone, OnChanges, OnDestroy } from '@angular/core';
import { MatTable } from '@angular/material';

@@ -6,2 +6,3 @@ import { FixedSizeTableVirtualScrollStrategy } from './fixed-size-table-virtual-scroll-strategy';

export declare class TableItemSizeDirective implements OnChanges, AfterViewInit, OnDestroy {
private zone;
private alive;

@@ -13,2 +14,3 @@ rowHeight: number;

scrollStrategy: FixedSizeTableVirtualScrollStrategy;
constructor(zone: NgZone);
ngOnDestroy(): void;

@@ -15,0 +17,0 @@ private isAlive;

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

{"__symbolic":"module","version":4,"metadata":{"TableVirtualScrollModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TableItemSizeDirective"}],"imports":[],"exports":[{"__symbolic":"reference","name":"TableItemSizeDirective"}]}]}],"members":{}},"_tableVirtualScrollDirectiveStrategyFactory":{"__symbolic":"function","parameters":["tableDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"tableDir"},"member":"scrollStrategy"}},"TableItemSizeDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[tvsItemSize]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/scrolling","name":"VIRTUAL_SCROLL_STRATEGY","line":21,"character":13},"useFactory":{"__symbolic":"reference","name":"_tableVirtualScrollDirectiveStrategyFactory"},"deps":[{"__symbolic":"reference","name":"TableItemSizeDirective"}]}]}]}],"members":{"rowHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3},"arguments":["tvsItemSize"]}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"bufferMultiplier":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"table":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatTable","line":39,"character":16},{"static":true}]}]}],"ngOnDestroy":[{"__symbolic":"method"}],"isAlive":[{"__symbolic":"method"}],"isStickyEnabled":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"setSticky":[{"__symbolic":"method"}]}},"FixedSizeTableVirtualScrollStrategy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"setConfig":[{"__symbolic":"method"}],"updateContent":[{"__symbolic":"method"}]}},"TableVirtualScrollDataSource":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@angular/material","name":"MatTableDataSource","line":5,"character":53},"members":{"_updateChangeSubscription":[{"__symbolic":"method"}],"initRenderedRangeStream":[{"__symbolic":"method"}]}}},"origins":{"TableVirtualScrollModule":"./lib/table-virtual-scroll.module","_tableVirtualScrollDirectiveStrategyFactory":"./lib/table-item-size.directive","TableItemSizeDirective":"./lib/table-item-size.directive","FixedSizeTableVirtualScrollStrategy":"./lib/fixed-size-table-virtual-scroll-strategy","TableVirtualScrollDataSource":"./lib/table-data-source"},"importAs":"ng-table-virtual-scroll"}
{"__symbolic":"module","version":4,"metadata":{"TableVirtualScrollModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TableItemSizeDirective"}],"imports":[],"exports":[{"__symbolic":"reference","name":"TableItemSizeDirective"}]}]}],"members":{}},"_tableVirtualScrollDirectiveStrategyFactory":{"__symbolic":"function","parameters":["tableDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"tableDir"},"member":"scrollStrategy"}},"TableItemSizeDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[tvsItemSize]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/scrolling","name":"VIRTUAL_SCROLL_STRATEGY","line":21,"character":13},"useFactory":{"__symbolic":"reference","name":"_tableVirtualScrollDirectiveStrategyFactory"},"deps":[{"__symbolic":"reference","name":"TableItemSizeDirective"}]}]}]}],"members":{"rowHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3},"arguments":["tvsItemSize"]}]}],"headerHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"bufferMultiplier":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"table":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatTable","line":39,"character":16},{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":44,"character":28}]}],"ngOnDestroy":[{"__symbolic":"method"}],"isAlive":[{"__symbolic":"method"}],"isStickyEnabled":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"setSticky":[{"__symbolic":"method"}]}},"FixedSizeTableVirtualScrollStrategy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"setConfig":[{"__symbolic":"method"}],"updateContent":[{"__symbolic":"method"}]}},"TableVirtualScrollDataSource":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@angular/material","name":"MatTableDataSource","line":5,"character":53},"members":{"_updateChangeSubscription":[{"__symbolic":"method"}],"initRenderedRangeStream":[{"__symbolic":"method"}]}}},"origins":{"TableVirtualScrollModule":"./lib/table-virtual-scroll.module","_tableVirtualScrollDirectiveStrategyFactory":"./lib/table-item-size.directive","TableItemSizeDirective":"./lib/table-item-size.directive","FixedSizeTableVirtualScrollStrategy":"./lib/fixed-size-table-virtual-scroll-strategy","TableVirtualScrollDataSource":"./lib/table-data-source"},"importAs":"ng-table-virtual-scroll"}
{
"name": "ng-table-virtual-scroll",
"version": "1.2.0",
"version": "1.2.1",
"description": "Virtual scroll for for Angular Material Table",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/diprokon/ng-table-virtual-scroll",

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

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