!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("primeng/api"),require("@angular/cdk/scrolling")):"function"==typeof define&&define.amd?define("primeng/virtualscroller",["exports","@angular/core","@angular/common","primeng/api","@angular/cdk/scrolling"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.virtualscroller={}),e.ng.core,e.ng.common,e.primeng.api,e.ng.cdk.scrolling)}(this,(function(e,t,n,o,r){"use strict";var l=function(){function e(e){this.el=e,this.trackBy=function(e,t){return t},this.onLazyLoad=new t.EventEmitter,this._totalRecords=0,this.page=0,this._first=0,this.loadedPages=[]}return Object.defineProperty(e.prototype,"totalRecords",{get:function(){return this._totalRecords},set:function(e){this._totalRecords=e,console.log("totalRecords is deprecated, provide a value with the length of virtual items instead.")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"first",{get:function(){return this._first},set:function(e){this._first=e,console.log("first property is deprecated, use scrollToIndex function to scroll a specific item.")},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"cache",{get:function(){return this._cache},set:function(e){this._cache=e,console.log("cache is deprecated as it is always on.")},enumerable:!1,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach((function(t){switch(t.getType()){case"item":e.itemTemplate=t.template;break;case"loadingItem":e.loadingItemTemplate=t.template;break;case"header":e.headerTemplate=t.template;break;case"footer":e.footerTemplate=t.template;break;default:e.itemTemplate=t.template}}))},e.prototype.onScrollIndexChange=function(e){var t=this;this.lazy&&this.createPageRange(Math.floor(e/this.rows)).forEach((function(e){return t.loadPage(e)}))},e.prototype.createPageRange=function(e){var t=[];return 0!==e&&t.push(e-1),t.push(e),e!==Math.ceil(this.value.length/this.rows)-1&&t.push(e+1),t},e.prototype.loadPage=function(e){this.loadedPages.includes(e)||(this.onLazyLoad.emit({first:this.rows*e,rows:this.rows}),this.loadedPages.push(e))},e.prototype.getBlockableElement=function(){return this.el.nativeElement.children[0]},e.prototype.scrollTo=function(e,t){this.scrollToIndex(e,t)},e.prototype.scrollToIndex=function(e,t){this.viewport&&this.viewport.scrollToIndex(e,t)},e.prototype.clearCache=function(){this.loadedPages=[]},e.prototype.ngOnChanges=function(e){e.value&&(this.lazy||this.clearCache())},e}();l.decorators=[{type:t.Component,args:[{selector:"p-virtualScroller",template:'\n