@progress/kendo-angular-pivotgrid 0.2.0-dev.202209020832 → 0.2.0-dev.202209021834
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/kendo-angular-pivotgrid.umd.js +1 -1
- package/data-binding/pivotgrid-data.service.d.ts +2 -0
- package/esm2015/data-binding/base-binding-directive.js +1 -3
- package/esm2015/data-binding/olap-binding.directive.js +2 -1
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/pivotgrid.component.js +7 -1
- package/esm2015/util.js +46 -28
- package/fesm2015/kendo-angular-pivotgrid.js +55 -33
- package/package.json +2 -2
- package/pivotgrid.component.d.ts +5 -0
- package/schematics/ngAdd/index.js +1 -1
- package/schematics/ngAdd/index.js.map +1 -1
- package/util.d.ts +20 -8
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@progress/kendo-licensing"),require("@progress/kendo-angular-common"),require("@progress/kendo-pivotgrid-common"),require("rxjs"),require("rxjs/operators"),require("@progress/kendo-angular-l10n"),require("@angular/common"),require("@progress/kendo-angular-indicators"),require("@progress/kendo-angular-popup"),require("@progress/kendo-angular-treeview"),require("@progress/kendo-angular-buttons"),require("@angular/animations"),require("@angular/forms"),require("@progress/kendo-angular-dropdowns"),require("@progress/kendo-angular-inputs")):"function"==typeof define&&define.amd?define("KendoAngularPivotgrid",["exports","@angular/core","@progress/kendo-licensing","@progress/kendo-angular-common","@progress/kendo-pivotgrid-common","rxjs","rxjs/operators","@progress/kendo-angular-l10n","@angular/common","@progress/kendo-angular-indicators","@progress/kendo-angular-popup","@progress/kendo-angular-treeview","@progress/kendo-angular-buttons","@angular/animations","@angular/forms","@progress/kendo-angular-dropdowns","@progress/kendo-angular-inputs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoAngularPivotgrid={},e.ng.core,e.KendoLicensing,e.KendoAngularCommon,e.KendoPivotgridCommon,e.rxjs,e.rxjs.operators,e.KendoAngularL10N,e.ng.common,e.KendoAngularIndicators,e.KendoAngularPopup,e.KendoAngularTreeview,e.KendoAngularButtons,e.ng.animations,e.ng.forms,e.i1$2,e.KendoAngularInputs)}(this,function(e,r,V,l,p,s,R,t,n,B,o,G,z,i,j,H,q){"use strict";function a(n){var o;return n&&n.__esModule?n:(o=Object.create(null),n&&Object.keys(n).forEach(function(e){var t;"default"!==e&&(t=Object.getOwnPropertyDescriptor(n,e),Object.defineProperty(o,e,t.get?t:{enumerable:!0,get:function(){return n[e]}}))}),o.default=n,Object.freeze(o))}var c=a(r),_=a(l),d=a(t),u=a(n),g=a(B),W=a(o),o=a(G),m=a(z),f=a(j),Z=a(H),h=a(q),K={name:"@progress/kendo-angular-pivotgrid",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1662107494,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"},U=function(e,t){return(U=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function $(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}U(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function X(e,a,s,l){return new(s=s||Promise)(function(n,t){function o(e){try{i(l.next(e))}catch(e){t(e)}}function r(e){try{i(l.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?n(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(o,r)}i((l=l.apply(e,a||[])).next())})}function Y(o,r){var i,a,s,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(n){return function(e){var t=[n,e];if(i)throw new TypeError("Generator is already executing.");for(;l;)try{if(i=1,a&&(s=2&t[0]?a.return:t[0]?a.throw||((s=a.return)&&s.call(a),0):a.next)&&!(s=s.call(a,t[1])).done)return s;switch(a=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,a=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]<s[3]))l.label=t[1];else if(6===t[0]&&l.label<s[1])l.label=s[1],s=t;else{if(!(s&&l.label<s[2])){s[2]&&l.ops.pop(),l.trys.pop();continue}l.label=s[2],l.ops.push(t)}}t=r.call(o,l)}catch(e){t=[6,e],a=0}finally{i=s=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}}Object.create;function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,i=n.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(o=i.next()).done;)a.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a}function y(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r<i;r++)!o&&r in t||((o=o||Array.prototype.slice.call(t,0,r))[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}Object.create;function Q(e){return null!=e}function J(e,t,n,o){(e="Y"===o?-ne(e,o):ne(e,o))&&(t[0][n]=t[1][n]+=e)}var ee=/^\s*$/,te=function(e){return null==e},ne=function(e,t){var n=e["wheelDelta"+t];return e.wheelDelta&&(void 0===n||n)?e.wheelDelta:e.detail&&e.axis===e["X"===t?"HORIZONTAL_AXIS":"VERTICAL_AXIS"]?10*-e.detail:0};function oe(e){var t={};return function e(t,n){for(var o in t){var r;t.hasOwnProperty(o)&&(r=t[o],Array.isArray(r)?n[o]=r.slice(0):!r||"object"!=typeof r||r instanceof Date?n[o]=r:(n[o]=n[o]||{},e(r,n[o])))}}(e,t),t}function re(e,t){n=se(a=e),i=n.clientTop,n=n.clientLeft,o=le(a),r=o.pageYOffset,o=o.pageXOffset;var n,o,r={top:(a=a.getBoundingClientRect()).top+r-i,left:a.left+o-n},i=e.offsetWidth,a=e.offsetHeight;return{left:r.left+(t?0:i),top:r.top+a/2,height:a}}function ie(e,n,o){return e.reduce(function(e,t){return n(t)?y(y([],v(e)),[o(t)]):e},[])}function ae(e,t,n){return e.replace(new RegExp("{\\s*"+t+"\\s*}","g"),n)}var se=function(e){return e.ownerDocument.documentElement},le=function(e){return e.ownerDocument.defaultView},pe=0,b=(ce.prototype.updateRowsAndCols=function(){var n=this,e=p.toTree((this.rows||[]).slice()),e=v(p.toRows(e),4),t=e[0],o=e[1],r=e[2],e=e[3],i=p.toTree((this.columns||[]).slice()),i=v(p.toColumns(i),3),a=i[0],s=i[1],i=i[2];this.columnHeaderLeaves=s,this.columnHeaderCols.next(s),this.columnHeaderRows.next(a),this.rowHeaderLeaves=o,this.rowHeaderCols.next(new Array(e).fill({})),this.rowHeaderRows.next(t),this.valuesRows.next(p.toData((this.normalizedData||[]).slice(),s,o,i,r)),l.isDocumentAvailable()&&this.ngZone.runOutsideAngular(function(){setTimeout(function(){return e=n.wrapper,t=e.querySelectorAll(".k-pivotgrid-row-headers .k-pivotgrid-row"),o=e.querySelectorAll(".k-pivotgrid-column-headers th"),r=e.querySelectorAll(".k-pivotgrid-values td"),t.forEach(function(e,t){var n=ie(Array.from(r),function(e){return e.getAttribute("id").split("-")[4]===(t+1).toString()},function(e){return e.getAttribute("id")});e.setAttribute("aria-owns",n.join(" "))}),void r.forEach(function(e){var n=+e.getAttribute("id").split("-")[5],t=ie(Array.from(o),function(e){var t=+e.getAttribute("id").split("-")[5],e=+e.getAttribute("colspan");return n==t||1<e&&n<=t+e-1},function(e){return e.getAttribute("id")});e.setAttribute("aria-describedby",t.join(" "))});var e,t,o,r})})},ce);function ce(e){this.ngZone=e,this.expandedStateChange=new r.EventEmitter,this.configuratorFieldChange=new r.EventEmitter,this.expandedFieldChange=new r.EventEmitter,this.columnHeaderRows=new s.BehaviorSubject([]),this.columnHeaderCols=new s.BehaviorSubject([]),this.rowHeaderCols=new s.BehaviorSubject([]),this.rowHeaderRows=new s.BehaviorSubject([]),this.valuesRows=new s.BehaviorSubject([]),this.loading=new s.BehaviorSubject(!1),this.fields=new s.BehaviorSubject([]),this.configuredFields=new s.BehaviorSubject([]),this.pivotGridId=pe++}b.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:b,deps:[{token:c.NgZone}],target:c.ɵɵFactoryTarget.Injectable}),b.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:b}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:b,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:c.NgZone}]},propDecorators:{expandedStateChange:[{type:r.Output}],configuratorFieldChange:[{type:r.Output}],expandedFieldChange:[{type:r.Output}]}});de.prototype.get=function(e){return this.localization.get(e)},Object.defineProperty(de.prototype,"rtl",{get:function(){return this.localization.rtl},enumerable:!1,configurable:!0});var k=de;function de(e){this.localization=e}k.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:k,deps:[{token:d.LocalizationService}],target:c.ɵɵFactoryTarget.Injectable}),k.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:k}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:k,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:d.LocalizationService}]}});Object.defineProperty(ue.prototype,"expanded",{get:function(){var e;return(null==(e=this.kendoPivotGridCell)?void 0:e.hasChildren)&&this.kendoPivotGridCell.children.length},enumerable:!1,configurable:!0}),ue.prototype.ngOnInit=function(){var e,t,n=this.hostEl.nativeElement,o=(this.renderer.setAttribute(n,"rowspan",this.kendoPivotGridCell.rowSpan||1),this.renderer.setAttribute(n,"colspan",this.kendoPivotGridCell.colSpan||1),{"k-pivotgrid-header-total":(null==(e=this.kendoPivotGridCell)?void 0:e.total)||"values"===this.tableType&&(this.dataService.rowHeaderLeaves[this.rowIndex].total||this.dataService.columnHeaderLeaves[this.colIndex].total),"k-pivotgrid-header-root":0===(null==(e=this.kendoPivotGridCell)?void 0:e.levelNum),"k-pivotgrid-expanded":(null==(e=this.kendoPivotGridCell)?void 0:e.hasChildren)&&this.kendoPivotGridCell.children.length,"k-first":0<this.colIndex});for(t in o)o[t]&&this.renderer.addClass(n,t)};var x=ue;function ue(e,t,n){var o=this;this.hostEl=e,this.renderer=t,this.dataService=n,this.cellClass=!0,this.handleClick=function(){o.dataService.expandedStateChange.emit({action:o.expanded?"collapse":"expand",cell:o.kendoPivotGridCell,tableType:o.tableType})}}x.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:x,deps:[{token:c.ElementRef},{token:c.Renderer2},{token:b}],target:c.ɵɵFactoryTarget.Component}),x.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:x,selector:"[kendoPivotGridCell]",inputs:{kendoPivotGridCell:"kendoPivotGridCell",tableType:"tableType",rowIndex:"rowIndex",colIndex:"colIndex"},host:{properties:{"class.k-pivotgrid-cell":"this.cellClass"}},ngImport:c,template:'\n <span \n *ngIf="kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total"\n class="k-icon"\n aria-hidden="true"\n [kendoEventsOutsideAngular]="{\n click: handleClick\n }"\n [ngClass]="{\n \'k-i-arrow-chevron-up\': expanded,\n \'k-i-arrow-chevron-down\': !expanded\n }"></span>{{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}',isInline:!0,directives:[{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:_.EventsOutsideAngularDirective,selector:"[kendoEventsOutsideAngular]",inputs:["kendoEventsOutsideAngular","scope"]},{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:x,decorators:[{type:r.Component,args:[{selector:"[kendoPivotGridCell]",template:'\n <span \n *ngIf="kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total"\n class="k-icon"\n aria-hidden="true"\n [kendoEventsOutsideAngular]="{\n click: handleClick\n }"\n [ngClass]="{\n \'k-i-arrow-chevron-up\': expanded,\n \'k-i-arrow-chevron-down\': !expanded\n }"></span>{{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}'}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:c.Renderer2},{type:b}]},propDecorators:{cellClass:[{type:r.HostBinding,args:["class.k-pivotgrid-cell"]}],kendoPivotGridCell:[{type:r.Input}],tableType:[{type:r.Input}],rowIndex:[{type:r.Input}],colIndex:[{type:r.Input}]}});Object.defineProperty(ge.prototype,"pivotGridId",{get:function(){return"kendo-pivotgrid-"+this.dataService.pivotGridId+"-"},enumerable:!1,configurable:!0}),ge.prototype.ngOnInit=function(){var t=this;this.dataChangeSubs.add(this.dataService[this.tableType+"Rows"].subscribe(function(e){return t.rows=e})),this.dataChangeSubs.add("values"===this.tableType?this.dataService.columnHeaderCols.subscribe(function(e){return t.headerItems=e}):this.dataService[this.tableType+"Cols"].subscribe(function(e){return t.headerItems=e}))},ge.prototype.ngOnDestroy=function(){this.dataChangeSubs.unsubscribe()};var C=ge;function ge(e){this.dataService=e,this.dataChangeSubs=new s.Subscription}C.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:C,deps:[{token:b}],target:c.ɵɵFactoryTarget.Component}),C.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:C,selector:"kendo-pivotgrid-table",inputs:{tableType:"tableType",colWidth:"colWidth"},ngImport:c,template:'\n <table\n class="k-pivotgrid-table"\n role="presentation">\n <colgroup>\n <col \n *ngFor="let item of headerItems;"\n [style.width]="tableType !== \'rowHeader\' ? colWidth >= 0 ? colWidth + \'px\' : \'200px\' : undefined" />\n </colgroup>\n <tbody class="k-pivotgrid-tbody" role="rowgroup">\n <tr *ngFor="let row of rows; index as rowIndex"\n class="k-pivotgrid-row"\n role="row">\n <ng-container *ngFor="let cell of row.cells; index as colIndex">\n <th\n *ngIf="cell && tableType !== \'values\'" \n [kendoPivotGridCell]="cell"\n [tableType]="tableType"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n [attr.aria-expanded]="cell.hasChildren && cell.children.length ? \'true\' : \'false\'"\n [attr.role]="tableType === \'columnHeader\' ? \'columnheader\' : \'rowheader\'"\n [attr.id]="pivotGridId + (tableType === \'columnHeader\' ? \'ch-\' : \'rh-\') + (rowIndex + 1) + \'-\' + (colIndex + 1)"></th>\n <td\n *ngIf="cell && tableType === \'values\'"\n [kendoPivotGridCell]="cell"\n tableType="values"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n role="gridcell"\n [attr.id]="pivotGridId + \'cell-\' + (rowIndex + 1) + \'-\' + (colIndex + 1)"></td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n ',isInline:!0,components:[{type:x,selector:"[kendoPivotGridCell]",inputs:["kendoPivotGridCell","tableType","rowIndex","colIndex"]}],directives:[{type:u.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:C,decorators:[{type:r.Component,args:[{selector:"kendo-pivotgrid-table",template:'\n <table\n class="k-pivotgrid-table"\n role="presentation">\n <colgroup>\n <col \n *ngFor="let item of headerItems;"\n [style.width]="tableType !== \'rowHeader\' ? colWidth >= 0 ? colWidth + \'px\' : \'200px\' : undefined" />\n </colgroup>\n <tbody class="k-pivotgrid-tbody" role="rowgroup">\n <tr *ngFor="let row of rows; index as rowIndex"\n class="k-pivotgrid-row"\n role="row">\n <ng-container *ngFor="let cell of row.cells; index as colIndex">\n <th\n *ngIf="cell && tableType !== \'values\'" \n [kendoPivotGridCell]="cell"\n [tableType]="tableType"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n [attr.aria-expanded]="cell.hasChildren && cell.children.length ? \'true\' : \'false\'"\n [attr.role]="tableType === \'columnHeader\' ? \'columnheader\' : \'rowheader\'"\n [attr.id]="pivotGridId + (tableType === \'columnHeader\' ? \'ch-\' : \'rh-\') + (rowIndex + 1) + \'-\' + (colIndex + 1)"></th>\n <td\n *ngIf="cell && tableType === \'values\'"\n [kendoPivotGridCell]="cell"\n tableType="values"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n role="gridcell"\n [attr.id]="pivotGridId + \'cell-\' + (rowIndex + 1) + \'-\' + (colIndex + 1)"></td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n '}]}],ctorParameters:function(){return[{type:b}]},propDecorators:{tableType:[{type:r.Input}],colWidth:[{type:r.Input}]}});me.prototype.parseConfiguratorState=function(e){var t=p.configuratorReducer({filter:this.state.filter,sort:this.state.sort,rowAxes:this.state.rowAxes,columnAxes:this.state.columnAxes,measureAxes:this.state.measureAxes,dragItem:this.state.dragItem,dropDirection:this.state.dropDirection,dropTarget:this.state.dropTarget,dropZone:this.state.dropZone},e);Object.keys(t).forEach(function(e){return void 0===t[e]&&delete t[e]}),this.state=Object.assign(Object.assign({},this.state),t),this.configuratorStateChange.emit(this.state)};var I=me;function me(){this.configuratorStateChange=new r.EventEmitter}I.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:I,deps:[],target:c.ɵɵFactoryTarget.Injectable}),I.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:I}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:I,decorators:[{type:r.Injectable}],propDecorators:{configuratorStateChange:[{type:r.Output}]}});fe.prototype.create=function(){this.dom=document.createElement("span"),this.dom.style.position="absolute";var e=document.createElement("div"),t=(e.classList.add("k-drop-hint","k-drop-hint-v"),document.createElement("div")),n=(t.classList.add("k-drop-hint-start"),document.createElement("div")),o=(n.classList.add("k-drop-hint-line"),document.createElement("div"));o.classList.add("k-drop-hint-end"),e.append(t,n,o),this.dom.append(e),this.hide()},fe.prototype.attach=function(){return e=this.dom,!1||(document.body.appendChild(e),0),e;var e},fe.prototype.remove=function(){this.dom&&this.dom.parentElement&&(document.body.removeChild(this.dom),this.dom=null)},fe.prototype.hide=function(){this.dom.style.display="none"},fe.prototype.position=function(e){var t=e.left,n=e.top,e=e.height,e=(this.dom.style.display="block",this.dom.style.height=e+"px",this.dom.style.top=n+"px",this.dom.style.zIndex="1000",this.dom.offsetWidth/2);this.dom.style.left=t-e+"px"};var T=fe;function fe(){}T.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:T,deps:[],target:c.ɵɵFactoryTarget.Injectable}),T.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:T}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:T,decorators:[{type:r.Injectable}]});$(ye,he=l.PreventableEvent);var he,ve=ye;function ye(e){var t=he.call(this)||this;return t.originalEvent=e,t}ke.prototype.open=function(e,t,n,o){void 0===o&&(o="k-grid-filter-popup");var n=Q(n)&&this.popupRef===n,o=(this.destroy(),n||(n=this.localization.rtl?"right":"left",this.popupRef=this.popupService.open({anchorAlign:{vertical:"bottom",horizontal:n},popupAlign:{vertical:"top",horizontal:n},anchor:e,popupClass:o,content:t,positionMode:"absolute"}),this.renderer.setAttribute(this.popupRef.popupElement,"dir",this.localization.rtl?"rtl":"ltr"),this.attachClose(e)),null==(n=this.popupRef)?void 0:n.popupElement);return o&&this.attachMouseListeners(o),this.popupRef},ke.prototype.destroy=function(){this.popupRef&&(this.detachClose(),this.pointerEventsSub.unsubscribe(),this.pointerEventsSub=null,this.popupRef.close(),this.popupRef=null)},ke.prototype.ngOnDestroy=function(){this.destroy(),this.scrollSubscription.unsubscribe()},ke.prototype.detachClose=function(){this.removeClick&&this.removeClick()},ke.prototype.attachClose=function(t){var n=this;this.detachClose(),this.ngZone.runOutsideAngular(function(){return n.removeClick=n.renderer.listen("document","click",function(e){!function(e,t){for(;e;){if(t(e))return!0;e=e.parentNode}return!1}(e.target,function(e){return n.popupRef.popupElement===e||e===t})&&(e=new ve(e),n.onClose.next(e),!e.isDefaultPrevented()&&n.canClosePopup&&n.destroy(),n.canClosePopup=!0)})})},ke.prototype.attachMouseListeners=function(e){var t=this;this.pointerEventsSub=new s.Subscription,this.ngZone.runOutsideAngular(function(){t.pointerEventsSub.add(t.renderer.listen(e,"pointerdown",function(e){e.stopImmediatePropagation(),t.canClosePopup=!1})),t.pointerEventsSub.add(t.renderer.listen(e,"pointerup",function(){t.canClosePopup=!0}))})};var be=ke;function ke(e,t,n,o){this.popupService=e,this.renderer=t,this.ngZone=n,this.localization=o,this.onClose=new s.Subject,this.pointerEventsSub=new s.Subscription,this.scrollSubscription=new s.Subscription}be.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:be,deps:[{token:W.PopupService},{token:c.Renderer2},{token:c.NgZone},{token:k}],target:c.ɵɵFactoryTarget.Injectable}),be.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:be}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:be,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:W.PopupService},{type:c.Renderer2},{type:c.NgZone},{type:k}]}});var D=function(){this.isColumnMenu=!1,this.isPopupOpen=!1},w=(D.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:D,deps:[],target:c.ɵɵFactoryTarget.Injectable}),D.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:D}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:D,decorators:[{type:r.Injectable}]}),xe.prototype.close=function(){this.closeMenu.emit()},xe);function xe(e){this.closeMenu=new r.EventEmitter,this.menuTabbingService=e}w.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:w,deps:[{token:D}],target:c.ɵɵFactoryTarget.Injectable}),w.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:w}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:w,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:D}]}});Object.defineProperty(Ce.prototype,"isFirst",{get:function(){return this._isFirst},set:function(e){var t,n=this;e&&(t=this.chipMenuItems[0],this.menuItemComponent.service.menuTabbingService.firstFocusable=t,this.ngZone.runOutsideAngular(function(){var e=n.renderer.listen(t,"keydown",n.onTab);n.subs.add(e)})),this._isFirst=e},enumerable:!1,configurable:!0}),Object.defineProperty(Ce.prototype,"isLast",{get:function(){return this._isLast},set:function(e){var t,n=this;this.chipMenuItems&&(e&&(t=this.getLastColumnMenuItem(),this.menuItemComponent.service.menuTabbingService.lastFocusable=t,this.ngZone.runOutsideAngular(function(){var e=n.renderer.listen(t,"keydown",n.onTab);n.subs.add(e)})),this._isLast=e)},enumerable:!1,configurable:!0}),Ce.prototype.ngAfterViewInit=function(){var t=this;this.chipMenuItems=this.hostElement.nativeElement.querySelectorAll(".k-columnmenu-item"),this.chipMenuItems.forEach(function(e){return t.renderer.setAttribute(e,"tabindex","0")})},Ce.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},Ce.prototype.getLastColumnMenuItem=function(){return 1===this.chipMenuItems.length?this.chipMenuItems[0]:this.chipMenuItems[1]};var O=Ce;function Ce(e,t,n){var o=this;this.hostElement=e,this.renderer=t,this.ngZone=n,this._isFirst=!1,this._isLast=!1,this.subs=new s.Subscription,this.onTab=function(e){var t,n;e.keyCode===l.Keys.Tab&&(o.isFirst&&e.shiftKey&&e.target===o.chipMenuItems[0]&&(e.preventDefault(),o.menuItemComponent.service.menuTabbingService.lastFocusable.focus()),o.isLast&&!e.shiftKey&&(t=o.getLastColumnMenuItem(),n=o.menuItemComponent.expanded,t!==e.target||n||(e.preventDefault(),o.menuItemComponent.service.menuTabbingService.firstFocusable.focus())))}}O.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:O,deps:[{token:c.ElementRef},{token:c.Renderer2},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),O.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:O,selector:"[kendoPivotChipMenuItem]",inputs:{menuItemComponent:["kendoPivotChipMenuItem","menuItemComponent"]},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:O,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotChipMenuItem]"}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:c.Renderer2},{type:c.NgZone}]},propDecorators:{menuItemComponent:[{type:r.Input,args:["kendoPivotChipMenuItem"]}]}});Te.prototype.ngAfterViewInit=function(){var e=this;this.chipMenuItems.length&&(this.chipMenuItems.first.isFirst=!0,this.chipMenuItems.last.isLast=!0,this.ngZone.onStable.pipe(R.take(1)).subscribe(function(){return e.service.menuTabbingService.firstFocusable.focus()}))};var Ie=Te;function Te(e,t){this.service=e,this.ngZone=t,this.hostClass=!0}Ie.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ie,deps:[{token:w},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Component}),Ie.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:Ie,selector:"kendo-pivot-chipmenu-container",host:{properties:{"class.k-grid-columnmenu-popup":"this.hostClass"}},queries:[{propertyName:"chipMenuItems",predicate:O,descendants:!0}],ngImport:c,template:"\n <ng-content></ng-content>\n ",isInline:!0}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ie,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chipmenu-container",template:"\n <ng-content></ng-content>\n "}]}],ctorParameters:function(){return[{type:w},{type:c.NgZone}]},propDecorators:{chipMenuItems:[{type:r.ContentChildren,args:[O,{descendants:!0}]}],hostClass:[{type:r.HostBinding,args:["class.k-grid-columnmenu-popup"]}]}});De.prototype.ngOnInit=function(){if(r.isDevMode()&&!this.service)throw new Error("The service input of the host chip menu components (e.g. ChipMenuSortComponent) is mandatory.")},De.prototype.close=function(){this.service.close()};var S=De;function De(){this.hostClass=!0}S.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,deps:[],target:c.ɵɵFactoryTarget.Component}),S.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:S,selector:"kendo-pivot-chip-menu-item-base",inputs:{service:"service"},host:{properties:{"class.k-columnmenu-item-wrapper":"this.hostClass"}},ngImport:c,template:"",isInline:!0}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chip-menu-item-base",template:""}]}],propDecorators:{service:[{type:r.Input}],hostClass:[{type:r.HostBinding,args:["class.k-columnmenu-item-wrapper"]}]}});var F=function(e){this.templateRef=e},A=(F.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:F,deps:[{token:c.TemplateRef,optional:!0}],target:c.ɵɵFactoryTarget.Directive}),F.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:F,selector:"[kendoPivotChipMenuItemContentTemplate]",ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:F,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotChipMenuItemContentTemplate]"}]}],ctorParameters:function(){return[{type:c.TemplateRef,decorators:[{type:r.Optional}]}]}}),Object.defineProperty(we.prototype,"iconClass",{get:function(){return"k-i-"+this.icon},enumerable:!1,configurable:!0}),we.prototype.ngOnChanges=function(e){e.expanded&&this.updateContentState()},we.prototype.onClick=function(e){this.itemClick.emit(e),this.contentTemplate&&(this.expanded=!this.expanded,this.updateContentState(),(this.expanded?this.expand:this.collapse).emit())},we.prototype.updateContentState=function(){this.contentState=this.expanded?"expanded":"collapsed"},we);function we(){this.itemClick=new r.EventEmitter,this.expand=new r.EventEmitter,this.collapse=new r.EventEmitter,this.contentState="collapsed"}A.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:A,deps:[],target:c.ɵɵFactoryTarget.Component}),A.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:A,selector:"kendo-pivot-chipmenu-item",inputs:{icon:"icon",text:"text",selected:"selected",expanded:"expanded"},outputs:{itemClick:"itemClick",expand:"expand",collapse:"collapse"},queries:[{propertyName:"contentTemplate",first:!0,predicate:F,descendants:!0}],usesOnChanges:!0,ngImport:c,template:'\n <div\n class="k-columnmenu-item"\n (click)="onClick($event)"\n (keydown.enter)="onClick($event)"\n [class.k-selected]="selected"\n role="button"\n [attr.aria-expanded]="expanded">\n <span *ngIf="icon" class="k-icon" [ngClass]="iconClass">\n </span>\n {{ text }}\n </div>\n <div *ngIf="contentTemplate" [@state]="contentState" style="overflow:hidden;" class="k-columnmenu-item-content">\n <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">\n </ng-container>\n <div>\n ',isInline:!0,directives:[{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:u.NgTemplateOutlet,selector:"[ngTemplateOutlet]",inputs:["ngTemplateOutletContext","ngTemplateOutlet"]}],animations:[i.trigger("state",[i.state("collapsed",i.style({display:"none"})),i.state("expanded",i.style({display:"block"})),i.transition("collapsed => expanded",[i.style({height:"0px",display:"block"}),i.animate("100ms ease-in",i.style({height:"*"}))]),i.transition("expanded => collapsed",[i.style({height:"*"}),i.animate("100ms ease-in",i.style({height:"0px"}))])])]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:A,decorators:[{type:r.Component,args:[{animations:[i.trigger("state",[i.state("collapsed",i.style({display:"none"})),i.state("expanded",i.style({display:"block"})),i.transition("collapsed => expanded",[i.style({height:"0px",display:"block"}),i.animate("100ms ease-in",i.style({height:"*"}))]),i.transition("expanded => collapsed",[i.style({height:"*"}),i.animate("100ms ease-in",i.style({height:"0px"}))])])],selector:"kendo-pivot-chipmenu-item",template:'\n <div\n class="k-columnmenu-item"\n (click)="onClick($event)"\n (keydown.enter)="onClick($event)"\n [class.k-selected]="selected"\n role="button"\n [attr.aria-expanded]="expanded">\n <span *ngIf="icon" class="k-icon" [ngClass]="iconClass">\n </span>\n {{ text }}\n </div>\n <div *ngIf="contentTemplate" [@state]="contentState" style="overflow:hidden;" class="k-columnmenu-item-content">\n <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">\n </ng-container>\n <div>\n '}]}],propDecorators:{itemClick:[{type:r.Output}],expand:[{type:r.Output}],collapse:[{type:r.Output}],icon:[{type:r.Input}],text:[{type:r.Input}],selected:[{type:r.Input}],expanded:[{type:r.Input}],contentTemplate:[{type:r.ContentChild,args:[F,{static:!1}]}]}});$(Fe,Oe=S),Object.defineProperty(Fe.prototype,"sortedAsc",{get:function(){var e=this.descriptor;return e&&(!e.dir||"asc"===e.dir)},enumerable:!1,configurable:!0}),Object.defineProperty(Fe.prototype,"sortedDesc",{get:function(){var e=this.descriptor;return e&&"desc"===e.dir},enumerable:!1,configurable:!0}),Fe.prototype.messageFor=function(e){return this.localization.get(e)},Fe.prototype.toggleSort=function(e){var t=this.chip.name.toString(),n=this.descriptor,o=this.configuratorService.state.sort.filter(function(e){return e.field!==t});n&&n.dir===e||o.push({field:t,dir:e}),this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setSort,payload:o}),this.close()},Object.defineProperty(Fe.prototype,"descriptor",{get:function(){var t=this;return[].concat(this.configuratorService.state.sort||[]).find(function(e){return e.field===t.chip.name.toString()})},enumerable:!1,configurable:!0});var Oe,Se=Fe;function Fe(e,t,n){var o=Oe.call(this)||this;return o.localization=e,o.renderer=t,o.configuratorService=n,o}Se.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Se,deps:[{token:k},{token:c.Renderer2},{token:I}],target:c.ɵɵFactoryTarget.Component}),Se.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:Se,selector:"kendo-pivot-chipmenu-sort",inputs:{chip:"chip"},usesInheritance:!0,ngImport:c,template:'\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortAscendingItemLabel\')"\n icon="sort-asc-small"\n (itemClick)="toggleSort(\'asc\')"\n [selected]="sortedAsc">\n </kendo-pivot-chipmenu-item>\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortDescendingItemLabel\')"\n icon="sort-desc-small"\n (itemClick)="toggleSort(\'desc\')"\n [selected]="sortedDesc">\n </kendo-pivot-chipmenu-item>\n ',isInline:!0,components:[{type:A,selector:"kendo-pivot-chipmenu-item",inputs:["icon","text","selected","expanded"],outputs:["itemClick","expand","collapse"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Se,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chipmenu-sort",template:'\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortAscendingItemLabel\')"\n icon="sort-asc-small"\n (itemClick)="toggleSort(\'asc\')"\n [selected]="sortedAsc">\n </kendo-pivot-chipmenu-item>\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortDescendingItemLabel\')"\n icon="sort-desc-small"\n (itemClick)="toggleSort(\'desc\')"\n [selected]="sortedDesc">\n </kendo-pivot-chipmenu-item>\n '}]}],ctorParameters:function(){return[{type:k},{type:c.Renderer2},{type:I}]},propDecorators:{chip:[{type:r.Input}]}});Ae.prototype.ngAfterViewInit=function(){var e=this.host.wrapper.nativeElement;e.setAttribute("aria-label",this.filterMenuDropDownLabel),e.addEventListener("keydown",this.keydownHandler,!0)},Ae.prototype.ngOnDestroy=function(){this.host.wrapper.nativeElement.removeEventListener("keydown",this.keydownHandler)};i=Ae;function Ae(e){var t=this;this.host=e,this.keydownHandler=function(e){e.keyCode===l.Keys.Escape&&t.host.isOpen&&(e.stopPropagation(),t.host.toggle(!1))}}i.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:i,deps:[{token:Z.DropDownListComponent}],target:c.ɵɵFactoryTarget.Directive}),i.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:i,selector:"[kendoFilterMenuDropDown]",inputs:{filterMenuDropDownLabel:"filterMenuDropDownLabel"},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:i,decorators:[{type:r.Directive,args:[{selector:"[kendoFilterMenuDropDown]"}]}],ctorParameters:function(){return[{type:Z.DropDownListComponent}]},propDecorators:{filterMenuDropDownLabel:[{type:r.Input}]}});Ee={filterEqOperator:"eq",filterNotEqOperator:"neq",filterContainsOperator:"contains",filterNotContainsOperator:"doesnotcontain",filterStartsWithOperator:"startswith",filterEndsWithOperator:"endswith",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull",filterIsEmptyOperator:"isempty",filterIsNotEmptyOperator:"isnotempty"};var Ee,Me=function(t){return Object.keys(Ee).map(function(e){return{text:t.get(e),value:Ee[e]}})},E=(Object.defineProperty(Ne.prototype,"currentFilter",{get:function(){var t=this,e=null==(e=this.configuratorService.state.filter)?void 0:e.filter(function(e){return e.field===t.chip.name.toString()});return e&&e[0]},enumerable:!1,configurable:!0}),Ne.prototype.registerOnChange=function(e){this.filterFormGroup.valueChanges.subscribe(e)},Ne.prototype.registerOnTouched=function(e){this.onTouched=e},Ne.prototype.writeValue=function(e){e&&this.filterFormGroup.setValue(e,{emitEvent:!1})},Object.defineProperty(Ne.prototype,"filterMenuDropDownLabel",{get:function(){var e=this.localization.get("filterOperatorsDropDownLabel")||"",t=this.chip.name.toString();return ae(e,"fields",t)},enumerable:!1,configurable:!0}),Ne.prototype.ngOnInit=function(){this.filterFormGroup=this.fb.group({operator:[this.currentFilter?this.currentFilter.operator:""],value:[this.currentFilter?this.currentFilter.value:""]}),this.operators=Me(this.localization)},Ne.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},Ne);function Ne(e,t,n){this.localization=e,this.configuratorService=t,this.fb=n,this.subscription=new s.Subscription,this.onTouched=function(){}}E.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:E,deps:[{token:k},{token:I},{token:f.FormBuilder}],target:c.ɵɵFactoryTarget.Component}),E.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:E,selector:"kendo-pivot-string-filter-menu",inputs:{chip:"chip",menuTabbingService:"menuTabbingService"},providers:[{provide:j.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return E}),multi:!0}],ngImport:c,template:'\n <ng-container [formGroup]="filterFormGroup">\n <kendo-dropdownlist\n kendoFilterMenuDropDown\n [filterMenuDropDownLabel]="filterMenuDropDownLabel"\n [data]="operators"\n formControlName="operator"\n [valuePrimitive]="true"\n textField="text"\n valueField="value">\n </kendo-dropdownlist>\n <input\n kendoTextBox\n formControlName="value"\n />\n </ng-container>\n ',isInline:!0,components:[{type:Z.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]}],directives:[{type:f.NgControlStatusGroup,selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]"},{type:f.FormGroupDirective,selector:"[formGroup]",inputs:["formGroup"],outputs:["ngSubmit"],exportAs:["ngForm"]},{type:i,selector:"[kendoFilterMenuDropDown]",inputs:["filterMenuDropDownLabel"]},{type:f.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{type:f.FormControlName,selector:"[formControlName]",inputs:["disabled","formControlName","ngModel"],outputs:["ngModelChange"]},{type:h.TextBoxDirective,selector:"input[kendoTextBox]",inputs:["value"]},{type:f.DefaultValueAccessor,selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]"}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:E,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-string-filter-menu",providers:[{provide:j.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return E}),multi:!0}],template:'\n <ng-container [formGroup]="filterFormGroup">\n <kendo-dropdownlist\n kendoFilterMenuDropDown\n [filterMenuDropDownLabel]="filterMenuDropDownLabel"\n [data]="operators"\n formControlName="operator"\n [valuePrimitive]="true"\n textField="text"\n valueField="value">\n </kendo-dropdownlist>\n <input\n kendoTextBox\n formControlName="value"\n />\n </ng-container>\n '}]}],ctorParameters:function(){return[{type:k},{type:I},{type:f.FormBuilder}]},propDecorators:{chip:[{type:r.Input}],menuTabbingService:[{type:r.Input}]}});function Pe(e){var t=e.value,e=e.operator;return!(te(t=t)||ee.test(t))||("isnull"===(t=e)||"isnotnull"===t||"isempty"===t||"isnotempty"===t)}Ve.prototype.ngOnInit=function(){},Ve.prototype.ngAfterViewChecked=function(){(!this.menuTabbingService.isColumnMenu||this.isLast&&this.isExpanded)&&(this.menuTabbingService.lastFocusable=(this.disabled?this.resetButton:this.filterButton).nativeElement)},Ve.prototype.ngOnDestroy=function(){this.menuTabbingService.lastFocusable=null},Object.defineProperty(Ve.prototype,"disabled",{get:function(){return!(this.filterDescriptorValue&&Pe(this.filterDescriptorValue))},enumerable:!1,configurable:!0}),Ve.prototype.submit=function(){var t=Object.assign({field:this.chip.name.toString()},this.filterDescriptorValue),e=this.configuratorService.state.filter?y(y([],v(this.configuratorService.state.filter.filter(function(e){return e.field!==t.field}))),[t]):[t];return this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setFilter,payload:e}),this.close.emit(),!1},Ve.prototype.reset=function(){var t=this,e=this.configuratorService.state.filter.filter(function(e){return e.field!==t.chip.name.toString()});this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setFilter,payload:e}),this.close.emit()},Ve.prototype.onTab=function(e,t){!this.menuTabbingService.firstFocusable||this.menuTabbingService.isColumnMenu&&!this.isLast||(e.preventDefault(),("reset"!==t||this.disabled?this.menuTabbingService.firstFocusable:this.filterButton.nativeElement).focus())},Ve.prototype.messageFor=function(e){return this.localization.get(e)};var Le=Ve;function Ve(e,t,n,o){this.localization=e,this.cd=t,this.configuratorService=o,this.close=new r.EventEmitter,this.actionsClass="k-action-buttons k-button-group",this.menuTabbingService=n}Le.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Le,deps:[{token:k},{token:c.ChangeDetectorRef},{token:D},{token:I}],target:c.ɵɵFactoryTarget.Component}),Le.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:Le,selector:"kendo-pivot-filter-menu-container",inputs:{chip:"chip",isLast:"isLast",isExpanded:"isExpanded",menuTabbingService:"menuTabbingService",actionsClass:"actionsClass"},outputs:{close:"close"},providers:[D],viewQueries:[{propertyName:"resetButton",first:!0,predicate:["resetButton"],descendants:!0},{propertyName:"filterButton",first:!0,predicate:["filterButton"],descendants:!0}],ngImport:c,template:'\n <form (submit)="submit()" (reset)="reset()"\n class="k-filter-menu k-group k-reset k-state-border-up">\n <div class="k-filter-menu-container">\n <kendo-pivot-string-filter-menu\n [(ngModel)]="filterDescriptorValue"\n name="\'filterDescriptorValue\'"\n [chip]="chip"\n [menuTabbingService]="menuTabbingService">\n </kendo-pivot-string-filter-menu>\n <div [ngClass]="actionsClass">\n <button\n #resetButton\n type="reset"\n kendoButton\n (keydown.tab)="onTab($event, \'reset\')">{{messageFor(\'filterClearButton\')}}</button>\n <button #filterButton\n type="submit"\n [disabled]="disabled"\n kendoButton\n themeColor="primary"\n (keydown.tab)="onTab($event, \'filter\')">{{messageFor(\'filterFilterButton\')}}</button>\n </div>\n </div>\n </form>\n ',isInline:!0,styles:["\n kendo-pivot-string-filter-menu {\n display: flex;\n flex-flow: column nowrap;\n align-items: stretch;\n gap: 8px;\n }\n "],components:[{type:E,selector:"kendo-pivot-string-filter-menu",inputs:["chip","menuTabbingService"]}],directives:[{type:f.ɵNgNoValidate,selector:"form:not([ngNoForm]):not([ngNativeValidate])"},{type:f.NgControlStatusGroup,selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]"},{type:f.NgForm,selector:"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]",inputs:["ngFormOptions"],outputs:["ngSubmit"],exportAs:["ngForm"]},{type:f.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{type:f.NgModel,selector:"[ngModel]:not([formControlName]):not([formControl])",inputs:["name","disabled","ngModel","ngModelOptions"],outputs:["ngModelChange"],exportAs:["ngModel"]},{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:m.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Le,decorators:[{type:r.Component,args:[{providers:[D],selector:"kendo-pivot-filter-menu-container",template:'\n <form (submit)="submit()" (reset)="reset()"\n class="k-filter-menu k-group k-reset k-state-border-up">\n <div class="k-filter-menu-container">\n <kendo-pivot-string-filter-menu\n [(ngModel)]="filterDescriptorValue"\n name="\'filterDescriptorValue\'"\n [chip]="chip"\n [menuTabbingService]="menuTabbingService">\n </kendo-pivot-string-filter-menu>\n <div [ngClass]="actionsClass">\n <button\n #resetButton\n type="reset"\n kendoButton\n (keydown.tab)="onTab($event, \'reset\')">{{messageFor(\'filterClearButton\')}}</button>\n <button #filterButton\n type="submit"\n [disabled]="disabled"\n kendoButton\n themeColor="primary"\n (keydown.tab)="onTab($event, \'filter\')">{{messageFor(\'filterFilterButton\')}}</button>\n </div>\n </div>\n </form>\n ',styles:["\n kendo-pivot-string-filter-menu {\n display: flex;\n flex-flow: column nowrap;\n align-items: stretch;\n gap: 8px;\n }\n "]}]}],ctorParameters:function(){return[{type:k},{type:c.ChangeDetectorRef},{type:D},{type:I}]},propDecorators:{close:[{type:r.Output}],chip:[{type:r.Input}],isLast:[{type:r.Input}],isExpanded:[{type:r.Input}],menuTabbingService:[{type:r.Input}],actionsClass:[{type:r.Input}],resetButton:[{type:r.ViewChild,args:["resetButton"]}],filterButton:[{type:r.ViewChild,args:["filterButton"]}]}});$(Be,Re=S),Be.prototype.onCollapse=function(){this.expanded=!1,this.isLast&&(this.service.menuTabbingService.lastFocusable=this.hostElement.nativeElement.querySelector(".k-columnmenu-item")),this.collapse.emit()},Be.prototype.onExpand=function(){this.expanded=!0,this.expand.emit()},Be.prototype.messageFor=function(e){return this.localization.get(e)};var Re,S=Be;function Be(e,t){var n=Re.call(this)||this;return n.localization=e,n.hostElement=t,n.expand=new r.EventEmitter,n.collapse=new r.EventEmitter,n.expanded=!1,n.isLast=!1,n.actionsClass="k-columnmenu-actions",n}S.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,deps:[{token:k},{token:c.ElementRef}],target:c.ɵɵFactoryTarget.Component}),S.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:S,selector:"kendo-pivot-chipmenu-filter",inputs:{chip:"chip",expanded:"expanded",isLast:"isLast"},outputs:{expand:"expand",collapse:"collapse"},usesInheritance:!0,ngImport:c,template:'\n <kendo-pivot-chipmenu-item\n classs="k-widget k-expander"\n [text]="messageFor(\'fieldMenuFilterItemLabel\')"\n icon="filter"\n [expanded]="expanded"\n (collapse)="onCollapse()"\n (expand)="onExpand()">\n <ng-template kendoPivotChipMenuItemContentTemplate>\n <kendo-pivot-filter-menu-container\n [chip]="chip"\n [menuTabbingService]="service.menuTabbingService"\n [actionsClass]="actionsClass"\n [isLast]="isLast"\n [isExpanded]="expanded"\n (keydown.shift.tab)="$event.stopImmediatePropagation()"\n (close)="close()">\n </kendo-pivot-filter-menu-container>\n </ng-template>\n </kendo-pivot-chipmenu-item>\n ',isInline:!0,components:[{type:A,selector:"kendo-pivot-chipmenu-item",inputs:["icon","text","selected","expanded"],outputs:["itemClick","expand","collapse"]},{type:Le,selector:"kendo-pivot-filter-menu-container",inputs:["chip","isLast","isExpanded","menuTabbingService","actionsClass"],outputs:["close"]}],directives:[{type:F,selector:"[kendoPivotChipMenuItemContentTemplate]"}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chipmenu-filter",template:'\n <kendo-pivot-chipmenu-item\n classs="k-widget k-expander"\n [text]="messageFor(\'fieldMenuFilterItemLabel\')"\n icon="filter"\n [expanded]="expanded"\n (collapse)="onCollapse()"\n (expand)="onExpand()">\n <ng-template kendoPivotChipMenuItemContentTemplate>\n <kendo-pivot-filter-menu-container\n [chip]="chip"\n [menuTabbingService]="service.menuTabbingService"\n [actionsClass]="actionsClass"\n [isLast]="isLast"\n [isExpanded]="expanded"\n (keydown.shift.tab)="$event.stopImmediatePropagation()"\n (close)="close()">\n </kendo-pivot-filter-menu-container>\n </ng-template>\n </kendo-pivot-chipmenu-item>\n '}]}],ctorParameters:function(){return[{type:k},{type:c.ElementRef}]},propDecorators:{expand:[{type:r.Output}],collapse:[{type:r.Output}],chip:[{type:r.Input}],expanded:[{type:r.Input}],isLast:[{type:r.Input}]}});ze.prototype.ngOnDestroy=function(){this.close(),this.closeSubscription.unsubscribe()},ze.prototype.toggle=function(e,t,n){e&&(e.preventDefault(),e.stopImmediatePropagation()),this.popupRef=this.popupService.open(t,n,this.popupRef,"k-column-menu"),this.popupRef||this.anchor.nativeElement.focus()},ze.prototype.close=function(){this.popupService.destroy(),this.popupRef=null,this.anchor.nativeElement.focus()},Object.defineProperty(ze.prototype,"chipMenuTitle",{get:function(){var e=this.localization.get("chipMenuIconTitle")||"",t=this.chip.name.toString();return ae(e,"fieldName",t)},enumerable:!1,configurable:!0});var Ge=ze;function ze(e,t,n){this.popupService=e,this.localization=t,this.service=n,this.tabIndex="-1",this.closeSubscription=n.closeMenu.subscribe(this.close.bind(this))}Ge.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ge,deps:[{token:be},{token:k},{token:w}],target:c.ɵɵFactoryTarget.Component}),Ge.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:Ge,selector:"kendo-pivot-chip-menu",inputs:{chip:"chip",tabIndex:"tabIndex"},providers:[w,D],viewQueries:[{propertyName:"anchor",first:!0,predicate:["anchor"],descendants:!0,static:!0}],ngImport:c,template:'\n <span #anchor\n class="k-icon k-i-more-vertical"\n (click)="toggle($event, anchor, template)"\n [tabindex]="tabIndex"\n [attr.title]="chipMenuTitle">\n </span>\n <ng-template #template>\n <kendo-pivot-chipmenu-container\n (keydown.escape)="close()"\n (keydown.enter)="$event.stopImmediatePropagation()">\n <kendo-pivot-chipmenu-sort\n #sortItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="sortItem"\n [service]="service">\n </kendo-pivot-chipmenu-sort>\n\n <kendo-pivot-chipmenu-filter\n #filterItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="filterItem"\n [service]="service">\n </kendo-pivot-chipmenu-filter>\n </kendo-pivot-chipmenu-container>\n </ng-template>\n ',isInline:!0,components:[{type:Ie,selector:"kendo-pivot-chipmenu-container"},{type:Se,selector:"kendo-pivot-chipmenu-sort",inputs:["chip"]},{type:S,selector:"kendo-pivot-chipmenu-filter",inputs:["chip","expanded","isLast"],outputs:["expand","collapse"]}],directives:[{type:O,selector:"[kendoPivotChipMenuItem]",inputs:["kendoPivotChipMenuItem"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ge,decorators:[{type:r.Component,args:[{providers:[w,D],selector:"kendo-pivot-chip-menu",template:'\n <span #anchor\n class="k-icon k-i-more-vertical"\n (click)="toggle($event, anchor, template)"\n [tabindex]="tabIndex"\n [attr.title]="chipMenuTitle">\n </span>\n <ng-template #template>\n <kendo-pivot-chipmenu-container\n (keydown.escape)="close()"\n (keydown.enter)="$event.stopImmediatePropagation()">\n <kendo-pivot-chipmenu-sort\n #sortItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="sortItem"\n [service]="service">\n </kendo-pivot-chipmenu-sort>\n\n <kendo-pivot-chipmenu-filter\n #filterItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="filterItem"\n [service]="service">\n </kendo-pivot-chipmenu-filter>\n </kendo-pivot-chipmenu-container>\n </ng-template>\n '}]}],ctorParameters:function(){return[{type:be},{type:k},{type:w}]},propDecorators:{chip:[{type:r.Input}],tabIndex:[{type:r.Input}],anchor:[{type:r.ViewChild,args:["anchor",{static:!0}]}]}});He.prototype.ngOnInit=function(){var e=this,t=this.element.nativeElement;this.elementType="KENDO-CHIP"===t.nodeName?"chip":"container",this.zone.runOutsideAngular(function(){e.subs.add(e.renderer.listen(t,"mouseenter",e.handleMouseEnter.bind(e))),e.subs.add(e.renderer.listen(t,"mousemove",e.handleMouseMove.bind(e))),e.subs.add(e.renderer.listen(t,"mouseleave",e.handleMouseLeave.bind(e)))})},He.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},He.prototype.handleMouseEnter=function(e){this.configuratorService.state.dragItem&&("chip"===this.elementType&&(this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropTarget,payload:this.item}),this.targetElement=e.target,this.cue.position(re(e.target,"before"===this.configuratorService.state.dropDirection))),this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropZone,payload:this.axes}))},He.prototype.handleMouseMove=function(e){var t;this.configuratorService.state.dragItem&&"chip"===this.elementType&&this.element.nativeElement&&(t=this.element.nativeElement.getBoundingClientRect(),(e=e.clientX-t.left<t.width/2?"before":"after")!==this.configuratorService.state.dropDirection&&this.targetElement&&this.cue.position(re(this.targetElement,"before"==e)),this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropDirection,payload:e}))},He.prototype.handleMouseLeave=function(){"chip"!==this.elementType&&this.configuratorService.state.dragItem&&this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropZone,payload:null})};var je=He;function He(e,t,n,o,r){this.element=e,this.configuratorService=t,this.cue=n,this.renderer=o,this.zone=r,this.subs=new s.Subscription}je.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:je,deps:[{token:c.ElementRef},{token:I},{token:T},{token:c.Renderer2},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),je.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:je,selector:"[kendoDropTarget]",inputs:{item:"item",axes:"axes"},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:je,decorators:[{type:r.Directive,args:[{selector:"[kendoDropTarget]"}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:I},{type:T},{type:c.Renderer2},{type:c.NgZone}]},propDecorators:{item:[{type:r.Input}],axes:[{type:r.Input}]}});Object.defineProperty(_e.prototype,"pointerEvents",{get:function(){return this.drag?"none":void 0},enumerable:!1,configurable:!0}),_e.prototype.ngOnInit=function(){var t=this;this.zone.runOutsideAngular(function(){return t.subs.add(t.draggable.kendoPress.subscribe(function(e){l.isDocumentAvailable()&&(t.cue.create(),t.cue.attach(),t.initialX.current=e.clientX,t.initialY.current=e.clientY)}))}),this.zone.runOutsideAngular(function(){return t.subs.add(t.draggable.kendoDrag.subscribe(function(e){if(l.isDocumentAvailable()){if(Math.abs(t.initialX.current-e.clientX)<10&&Math.abs(t.initialY.current-e.clientY)<10)return;t.element.nativeElement&&(t.element.nativeElement.style.transform="translate("+(e.clientX-t.initialX.current)+"px, "+(e.clientY-t.initialY.current)+"px)")}t.drag=!0,t.service.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDragItem,payload:t.item})}))}),this.zone.runOutsideAngular(function(){return t.subs.add(t.draggable.kendoRelease.subscribe(function(){t.drag=!1,t.service.state.dragItem&&(l.isDocumentAvailable()&&(t.element.nativeElement&&(t.element.nativeElement.style.transform=""),t.cue.remove()),t.service.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.drop,payload:t.item}),t.service.state.dragItem=null,t.service.state.dropDirection=null,t.service.state.dropTarget=null,t.service.state.dropZone=null)}))})},_e.prototype.ngOnDestroy=function(){this.subs.unsubscribe()};var qe=_e;function _e(e,t,n,o,r){this.draggable=e,this.element=t,this.zone=n,this.service=o,this.cue=r,this.touchActions="none",this.initialX={},this.initialY={},this.subs=new s.Subscription}qe.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:qe,deps:[{token:_.DraggableDirective,optional:!0},{token:c.ElementRef},{token:c.NgZone},{token:I},{token:T}],target:c.ɵɵFactoryTarget.Directive}),qe.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:qe,selector:"[kendoChipDraggable]",inputs:{item:"item"},host:{properties:{"style.pointerEvents":"this.pointerEvents","style.touch-action":"this.touchActions"}},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:qe,decorators:[{type:r.Directive,args:[{selector:"[kendoChipDraggable]"}]}],ctorParameters:function(){return[{type:_.DraggableDirective,decorators:[{type:r.Optional}]},{type:c.ElementRef},{type:c.NgZone},{type:I},{type:T}]},propDecorators:{pointerEvents:[{type:r.HostBinding,args:["style.pointerEvents"]}],touchActions:[{type:r.HostBinding,args:["style.touch-action"]}],item:[{type:r.Input}]}});M.prototype.ngOnInit=function(){var t=this;this.subs.add(this.dataService.fields.subscribe(function(e){t.fields=e})),this.subs.add(this.dataService.configuredFields.subscribe(function(e){t.originalState=oe(e),t.setState(oe(e)),t.setChecked()})),this.subs.add(this.configuratorService.configuratorStateChange.subscribe(function(e){t.state=e,t.cdr.detectChanges()}))},M.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},M.prototype.getName=function(e){return e.toString()},M.prototype.setState=function(e){this.state=e,this.configuratorService.state=e},M.prototype.messageFor=function(e){return this.localization.get(e)},Object.defineProperty(M.prototype,"columnHierarchies",{get:function(){return this.extractDefaultFields(this.state.columnAxes)},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"rowHierarchies",{get:function(){return this.extractDefaultFields(this.state.rowAxes)},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"measureHierarchies",{get:function(){return this.extractDefaultFields(this.state.measureAxes)},enumerable:!1,configurable:!0}),M.prototype.setChecked=function(e){var n=this,e=(void 0===e&&(e=[]),y(y([],v(this.fields)),v(e))),e=this.getFieldsFlatMap(e).filter(function(t){return y(y(y([],v(n.columnHierarchies)),v(n.rowHierarchies)),v(n.measureHierarchies)).some(function(e){return e===t.uniqueName||e===t.defaultHierarchy})});this.checked=e},M.prototype.isItemChecked=function(t){var e;return this.checked.some(function(e){return t.defaultHierarchy?e.defaultHierarchy===t.defaultHierarchy:e.uniqueName===t.uniqueName})||(null==(e=t.children)?void 0:e.length)&&(null==(e=t.children)?void 0:e.every(function(e){return e.checked}))||null},M.prototype.isSelectable=function(e){var t=!("hierarchyUniqueName"in e||"aggregator"in e);return!Boolean(!t&&!e.aggregator&&!e.measure||2===e.type||"[KPIs]"===e.uniqueName)},M.prototype.handleChildrenLoaded=function(e){"local"!==this.dataService.directive.type&&(e=e.children.map(function(e){return e.dataItem}),this.setChecked(e))},M.prototype.handleCheckedChange=function(e,t){e.target.checked?this.checked=y(y([],v(this.checked)),[t]):(e=this.checked.findIndex(function(e){return e.uniqueName===t.uniqueName}),this.checked.splice(e,1));e={type:"PIVOT_CONFIGURATOR_ACTION_TOGGLE_SELECTION",payload:t};this.configuratorService.parseConfiguratorState(e)},M.prototype.handleSubmit=function(){this.dataService.configuratorFieldChange.emit(this.state)},M.prototype.handleReset=function(){this.setState(oe(this.originalState)),this.setChecked()},M.prototype.getFieldsFlatMap=function(e){var t=this,n=y([],v(e=void 0===e?[]:e));return(e||[]).forEach(function(e){n=n.concat(t.getFieldsFlatMap(e.children))}),n},M.prototype.extractDefaultFields=function(e){void 0===e&&(e=[]);var t=new Set;return e.forEach(function(e){t.add(String(e.name))}),Array.from(t)};var We=M;function M(e,t,n,o){var r=this;this.dataService=e,this.localization=t,this.configuratorService=n,this.cdr=o,this.hostClass=!0,this.horizontal=!1,this.sort=new Array,this.checked=[],this.subs=new s.Subscription,this.hasChildren=function(e){return!("hierarchyUniqueName"in e||"aggregator"in e)},this.children=function(e){return"olap"===r.dataService.directive.type?s.from(r.dataService.directive.fetchChildren(e,r.fields)).pipe(R.mergeMap(function(e){return s.of(e)})):s.of(e.children)}}We.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:We,deps:[{token:b},{token:d.LocalizationService},{token:I},{token:c.ChangeDetectorRef}],target:c.ɵɵFactoryTarget.Component}),We.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:We,selector:"kendo-pivotgrid-configurator",inputs:{horizontal:"horizontal",sort:"sort",filter:"filter"},host:{properties:{"class.k-pivotgrid-configurator":"this.hostClass"}},providers:[I,T,be],ngImport:c,template:'\n <div \n class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"\n [ngClass]="{\n \'k-pivotgrid-configurator-horizontal\': horizontal,\n \'k-pivotgrid-configurator-vertical\': !horizontal\n }"\n >\n <div class="k-pivotgrid-configurator-header">\n <div class="k-pivotgrid-configurator-header-text">{{messageFor(\'configuratorHeaderText\')}}</div>\n </div>\n\n <div class="k-pivotgrid-configurator-content">\n <div class="k-form" [class.k-form-horizontal]="horizontal">\n <div class="k-form-field-wrapper">\n <div class="k-form-field">\n <span class="k-label">{{messageFor(\'configuratorFieldsText\')}}</span>\n </div>\n\n <div class="k-form-field">\n <div class="k-fields-list-wrapper">\n <kendo-treeview\n [nodes]="fields"\n textField="caption"\n [children]="children"\n [hasChildren]="hasChildren"\n kendoTreeViewExpandable\n (childrenLoaded)="handleChildrenLoaded($event)"\n >\n <ng-template kendoTreeViewNodeTemplate let-dataItem>\n <input kendoCheckBox\n *ngIf="isSelectable(dataItem)"\n type="checkbox" \n kendoCheckBox\n [checked]="isItemChecked(dataItem)"\n (change)="handleCheckedChange($event, dataItem)"/>\n {{ dataItem.caption }}\n </ng-template>\n </kendo-treeview>\n\n </div>\n </div>\n </div>\n\n <div *ngIf="horizontal; else verticalTemplate" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>\n </div>\n\n <ng-template #verticalTemplate>\n <div class="k-form-field" kendoDropTarget axes="columnAxes">\n <span class="k-label">{{messageFor(\'configuratorColumnsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"\n kendoDropTarget\n axes="columnAxes"\n >\n <kendo-chip *ngFor="let item of state.columnAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="columnAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noColumnAxes>\n <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor(\'configuratorEmptyColumnsText\')}}</div>\n </ng-template>\n\n <div class="k-form-field" kendoDropTarget axes="rowAxes">\n <span class="k-label">{{messageFor(\'configuratorRowsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"\n kendoDropTarget\n axes="rowAxes"\n >\n <kendo-chip *ngFor="let item of state.rowAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="rowAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noRowAxes>\n <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor(\'configuratorEmptyRowsText\')}}</div>\n </ng-template>\n </ng-template>\n\n <div *ngIf="horizontal; else elseTpl2" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="elseTpl2"></ng-container>\n </div>\n\n <ng-template #elseTpl2>\n <div class="k-form-field" kendoDropTarget axes="measureAxes">\n <span class="k-label">{{messageFor(\'configuratorValuesText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"\n kendoDropTarget\n axes="measureAxes"\n >\n <kendo-chip *ngFor="let item of state.measureAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="measureAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noMeasureAxes>\n <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor(\'configuratorEmptyMeasuresText\')}}</div>\n </ng-template>\n </ng-template>\n \n </div>\n </div>\n <div class="k-pivotgrid-configurator-actions k-actions k-hstack k-justify-content-end">\n <button kendoButton type="button" (click)="handleReset()">{{messageFor(\'configuratorCancelButtonText\')}}</button>\n <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor(\'configuratorApplyButtonText\')}}</button>\n </div>\n </div>\n ',isInline:!0,components:[{type:o.TreeViewComponent,selector:"kendo-treeview",inputs:["filterInputPlaceholder","expandDisabledNodes","animate","nodeTemplate","loadMoreButtonTemplate","trackBy","nodes","textField","hasChildren","isChecked","isDisabled","isExpanded","isSelected","isVisible","navigable","children","loadOnDemand","filterable","filter","size","disableParentNodesOnly"],outputs:["childrenLoaded","blur","focus","expand","collapse","nodeDragStart","nodeDrag","filterStateChange","nodeDrop","nodeDragEnd","addItem","removeItem","checkedChange","selectionChange","filterChange","nodeClick","nodeDblClick"],exportAs:["kendoTreeView"]},{type:m.ChipListComponent,selector:"kendo-chiplist, kendo-chip-list",inputs:["selection","size"],outputs:["selectedChange","remove"]},{type:m.ChipComponent,selector:"kendo-chip",inputs:["label","icon","iconClass","avatarClass","selected","removable","removeIcon","disabled","size","rounded","fillMode","themeColor"],outputs:["remove","contentClick"]},{type:Ge,selector:"kendo-pivot-chip-menu",inputs:["chip","tabIndex"]}],directives:[{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:o.ExpandDirective,selector:"[kendoTreeViewExpandable]",inputs:["isExpanded","expandBy","expandOnFilter","expandedKeys"],outputs:["expandedKeysChange"]},{type:o.NodeTemplateDirective,selector:"[kendoTreeViewNodeTemplate]"},{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:h.CheckBoxDirective,selector:"input[kendoCheckBox]",inputs:["size","rounded"]},{type:u.NgTemplateOutlet,selector:"[ngTemplateOutlet]",inputs:["ngTemplateOutletContext","ngTemplateOutlet"]},{type:je,selector:"[kendoDropTarget]",inputs:["item","axes"]},{type:u.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:qe,selector:"[kendoChipDraggable]",inputs:["item"]},{type:_.DraggableDirective,selector:"[kendoDraggable]",inputs:["enableDrag"],outputs:["kendoPress","kendoDrag","kendoRelease"]},{type:m.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:We,decorators:[{type:r.Component,args:[{selector:"kendo-pivotgrid-configurator",providers:[I,T,be],template:'\n <div \n class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"\n [ngClass]="{\n \'k-pivotgrid-configurator-horizontal\': horizontal,\n \'k-pivotgrid-configurator-vertical\': !horizontal\n }"\n >\n <div class="k-pivotgrid-configurator-header">\n <div class="k-pivotgrid-configurator-header-text">{{messageFor(\'configuratorHeaderText\')}}</div>\n </div>\n\n <div class="k-pivotgrid-configurator-content">\n <div class="k-form" [class.k-form-horizontal]="horizontal">\n <div class="k-form-field-wrapper">\n <div class="k-form-field">\n <span class="k-label">{{messageFor(\'configuratorFieldsText\')}}</span>\n </div>\n\n <div class="k-form-field">\n <div class="k-fields-list-wrapper">\n <kendo-treeview\n [nodes]="fields"\n textField="caption"\n [children]="children"\n [hasChildren]="hasChildren"\n kendoTreeViewExpandable\n (childrenLoaded)="handleChildrenLoaded($event)"\n >\n <ng-template kendoTreeViewNodeTemplate let-dataItem>\n <input kendoCheckBox\n *ngIf="isSelectable(dataItem)"\n type="checkbox" \n kendoCheckBox\n [checked]="isItemChecked(dataItem)"\n (change)="handleCheckedChange($event, dataItem)"/>\n {{ dataItem.caption }}\n </ng-template>\n </kendo-treeview>\n\n </div>\n </div>\n </div>\n\n <div *ngIf="horizontal; else verticalTemplate" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>\n </div>\n\n <ng-template #verticalTemplate>\n <div class="k-form-field" kendoDropTarget axes="columnAxes">\n <span class="k-label">{{messageFor(\'configuratorColumnsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"\n kendoDropTarget\n axes="columnAxes"\n >\n <kendo-chip *ngFor="let item of state.columnAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="columnAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noColumnAxes>\n <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor(\'configuratorEmptyColumnsText\')}}</div>\n </ng-template>\n\n <div class="k-form-field" kendoDropTarget axes="rowAxes">\n <span class="k-label">{{messageFor(\'configuratorRowsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"\n kendoDropTarget\n axes="rowAxes"\n >\n <kendo-chip *ngFor="let item of state.rowAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="rowAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noRowAxes>\n <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor(\'configuratorEmptyRowsText\')}}</div>\n </ng-template>\n </ng-template>\n\n <div *ngIf="horizontal; else elseTpl2" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="elseTpl2"></ng-container>\n </div>\n\n <ng-template #elseTpl2>\n <div class="k-form-field" kendoDropTarget axes="measureAxes">\n <span class="k-label">{{messageFor(\'configuratorValuesText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"\n kendoDropTarget\n axes="measureAxes"\n >\n <kendo-chip *ngFor="let item of state.measureAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="measureAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noMeasureAxes>\n <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor(\'configuratorEmptyMeasuresText\')}}</div>\n </ng-template>\n </ng-template>\n \n </div>\n </div>\n <div class="k-pivotgrid-configurator-actions k-actions k-hstack k-justify-content-end">\n <button kendoButton type="button" (click)="handleReset()">{{messageFor(\'configuratorCancelButtonText\')}}</button>\n <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor(\'configuratorApplyButtonText\')}}</button>\n </div>\n </div>\n '}]}],ctorParameters:function(){return[{type:b},{type:d.LocalizationService},{type:I},{type:c.ChangeDetectorRef}]},propDecorators:{hostClass:[{type:r.HostBinding,args:["class.k-pivotgrid-configurator"]}],horizontal:[{type:r.Input}],sort:[{type:r.Input}],filter:[{type:r.Input}]}});$(Ke,Ze=t.ComponentMessages);var Ze,o=Ke;function Ke(){return null!==Ze&&Ze.apply(this,arguments)||this}o.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:o,deps:null,target:c.ɵɵFactoryTarget.Directive}),o.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:o,inputs:{fieldMenuFilterItemLabel:"fieldMenuFilterItemLabel",fieldMenuSortAscendingItemLabel:"fieldMenuSortAscendingItemLabel",fieldMenuSortDescendingItemLabel:"fieldMenuSortDescendingItemLabel",filterInputLabel:"filterInputLabel",filterOperatorsDropDownLabel:"filterOperatorsDropDownLabel",filterEqOperator:"filterEqOperator",filterNotEqOperator:"filterNotEqOperator",filterIsNullOperator:"filterIsNullOperator",filterIsNotNullOperator:"filterIsNotNullOperator",filterIsEmptyOperator:"filterIsEmptyOperator",filterIsNotEmptyOperator:"filterIsNotEmptyOperator",filterStartsWithOperator:"filterStartsWithOperator",filterContainsOperator:"filterContainsOperator",filterNotContainsOperator:"filterNotContainsOperator",filterEndsWithOperator:"filterEndsWithOperator",filterFilterButton:"filterFilterButton",filterClearButton:"filterClearButton",loading:"loading",emptyCellLabel:"emptyCellLabel",configuratorButtonText:"configuratorButtonText",configuratorHeaderText:"configuratorHeaderText",configuratorFieldsText:"configuratorFieldsText",configuratorColumnsText:"configuratorColumnsText",configuratorRowsText:"configuratorRowsText",configuratorValuesText:"configuratorValuesText",configuratorCancelButtonText:"configuratorCancelButtonText",configuratorApplyButtonText:"configuratorApplyButtonText",configuratorEmptyRowsText:"configuratorEmptyRowsText",configuratorEmptyColumnsText:"configuratorEmptyColumnsText",configuratorEmptyMeasuresText:"configuratorEmptyMeasuresText",chipMenuIconTitle:"chipMenuIconTitle"},usesInheritance:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:o,decorators:[{type:r.Directive}],propDecorators:{fieldMenuFilterItemLabel:[{type:r.Input}],fieldMenuSortAscendingItemLabel:[{type:r.Input}],fieldMenuSortDescendingItemLabel:[{type:r.Input}],filterInputLabel:[{type:r.Input}],filterOperatorsDropDownLabel:[{type:r.Input}],filterEqOperator:[{type:r.Input}],filterNotEqOperator:[{type:r.Input}],filterIsNullOperator:[{type:r.Input}],filterIsNotNullOperator:[{type:r.Input}],filterIsEmptyOperator:[{type:r.Input}],filterIsNotEmptyOperator:[{type:r.Input}],filterStartsWithOperator:[{type:r.Input}],filterContainsOperator:[{type:r.Input}],filterNotContainsOperator:[{type:r.Input}],filterEndsWithOperator:[{type:r.Input}],filterFilterButton:[{type:r.Input}],filterClearButton:[{type:r.Input}],loading:[{type:r.Input}],emptyCellLabel:[{type:r.Input}],configuratorButtonText:[{type:r.Input}],configuratorHeaderText:[{type:r.Input}],configuratorFieldsText:[{type:r.Input}],configuratorColumnsText:[{type:r.Input}],configuratorRowsText:[{type:r.Input}],configuratorValuesText:[{type:r.Input}],configuratorCancelButtonText:[{type:r.Input}],configuratorApplyButtonText:[{type:r.Input}],configuratorEmptyRowsText:[{type:r.Input}],configuratorEmptyColumnsText:[{type:r.Input}],configuratorEmptyMeasuresText:[{type:r.Input}],chipMenuIconTitle:[{type:r.Input}]}});$(Xe,Ue=o);var Ue,$e=Xe;function Xe(e){var t=Ue.call(this)||this;return t.service=e,t}$e.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:$e,deps:[{token:d.LocalizationService}],target:c.ɵɵFactoryTarget.Directive}),$e.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:$e,selector:"[kendoPivotGridLocalizedMessages]",providers:[{provide:o,useExisting:r.forwardRef(function(){return $e})}],usesInheritance:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:$e,decorators:[{type:r.Directive,args:[{providers:[{provide:o,useExisting:r.forwardRef(function(){return $e})}],selector:"[kendoPivotGridLocalizedMessages]"}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});var Ye={type:"converging-spinner",themeColor:"primary",size:"large"},Qe={position:"right",horizontal:!1},h=(Object.defineProperty(N.prototype,"rightPositionClass",{get:function(){var e;return"right"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"leftPositionClass",{get:function(){var e;return"left"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"bottomPositionClass",{get:function(){var e;return"bottom"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"topPositionClass",{get:function(){var e;return"top"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"dir",{get:function(){return this.direction},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"loaderSettings",{get:function(){return this._loaderSettings},set:function(e){this._loaderSettings=Object.assign({},Ye,e)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"loadingText",{get:function(){return this.localization.get("loading")},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"configuratorSettings",{get:function(){return this.configurator&&Object.assign({},Qe,this.configurator)},enumerable:!1,configurable:!0}),N.prototype.ngAfterViewInit=function(){var r=this;l.isDocumentAvailable()&&this.zone.runOutsideAngular(function(){var e=r.rowHeadersTable.nativeElement.firstElementChild,t=new ResizeObserver(function(){return r.resizeContainer("Columns",e)}),n=(t.observe(e),r.colHeadersTable.nativeElement.firstElementChild),o=new ResizeObserver(function(){return r.resizeContainer("Rows",n)});o.observe(n),r.resizeObservers=[t,o],r.subs.add(s.fromEvent(e,"wheel").pipe(R.merge(s.fromEvent(n,"wheel"),s.fromEvent(r.valuesTable.nativeElement,"scroll"))).subscribe(function(e){return r.handleScroll(e)})),r.navigable&&r.initNavigation()})},N.prototype.ngAfterContentInit=function(){var t=this;this.subs.add(this.dataService.loading.subscribe(function(e){return t.loading=e}))},N.prototype.ngOnChanges=function(e){l.isChanged("navigable",e)&&(this.navigable?this.initNavigation():this.stopNavigation())},N.prototype.ngOnDestroy=function(){this.resizeObservers.forEach(function(e){return e.disconnect()}),this.subs.unsubscribe(),this.stopNavigation()},N.prototype.messageFor=function(e){return this.localization.get(e)},N.prototype.initNavigation=function(){var e=this,t=(this.stopNavigation(),this.navigation=new p.PivotGridNavigation({tabIndex:0}),this.navigation.start(this.hostEl.nativeElement),this.navigation.first);t&&t.setAttribute("tabindex","0"),this.subs.add(this.dataService.directive.expandChange.pipe(R.merge(this.dataService.directive.configurationChange)).subscribe(function(){return e.zone.runOutsideAngular(function(){setTimeout(function(){return e.navigation.update()})})}))},N.prototype.stopNavigation=function(){var e;this.navigation&&((e=this.navigation.elements.find(function(e){return e.hasAttribute("tabindex")}))&&this.renderer.removeAttribute(e,"tabindex"),this.navigation.stop())},N);function N(e,t,n,o,r,i){var a=this;this.hostEl=e,this.zone=t,this.dataService=n,this.localization=o,this.renderer=r,this.hostClass=!0,this.ariaRole="grid",this.columnHeadersWidth=200,this.navigable=!1,this.resizeObservers=[],this._loaderSettings=Ye,this.subs=new s.Subscription,this.rtl=!1,this.resizeContainer=function(e,t){var n=a.table.nativeElement,o="Rows"===e?"offsetHeight":"offsetWidth";n.style["gridTemplate"+e]="",n.style["gridTemplate"+e]=t[o]+"px 1fr"},this.handleScroll=function(e){var t,n,o,r,i;e.target===a.valuesTable.nativeElement?(t=e.target,n=[a.rowHeadersTable.nativeElement,a.colHeadersTable.nativeElement],o=t.scrollTop,t=t.scrollLeft,r=n[0].scrollTop,i=t!==n[1].scrollLeft,o!==r?n[0].scrollTop=o:i&&(n[1].scrollLeft=t)):e.target.closest(".k-pivotgrid-row-headers")?J(e,[a.valuesTable.nativeElement,a.rowHeadersTable.nativeElement],"scrollTop","Y"):e.target.closest(".k-pivotgrid-column-headers")&&J(e,[a.valuesTable.nativeElement,a.colHeadersTable.nativeElement],"scrollLeft","X")},V.validatePackage(K),this.subs.add(this.localization.changes.subscribe(function(e){e=e.rtl;a.rtl=e,a.direction=a.rtl?"rtl":"ltr"})),n.wrapper=e.nativeElement}h.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:h,deps:[{token:c.ElementRef},{token:c.NgZone},{token:b},{token:d.LocalizationService},{token:c.Renderer2},{token:_.ScrollbarWidthService}],target:c.ɵɵFactoryTarget.Component}),h.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:h,selector:"kendo-pivotgrid",inputs:{loaderSettings:"loaderSettings",configurator:"configurator",columnHeadersWidth:"columnHeadersWidth",navigable:"navigable"},host:{properties:{"class.k-d-flex":"this.hostClass","class.k-pos-relative":"this.hostClass","class.k-flex-row":"this.rightPositionClass","class.k-flex-row-reverse":"this.leftPositionClass","class.k-flex-column":"this.bottomPositionClass","class.k-flex-column-reverse":"this.topPositionClass","attr.dir":"this.dir","attr.role":"this.ariaRole"}},providers:[b,t.LocalizationService,k,{provide:t.L10N_PREFIX,useValue:"kendo.pivotgrid"}],viewQueries:[{propertyName:"colHeadersTable",first:!0,predicate:["colHeadersTable"],descendants:!0,read:r.ElementRef},{propertyName:"rowHeadersTable",first:!0,predicate:["rowHeadersTable"],descendants:!0,read:r.ElementRef},{propertyName:"valuesTable",first:!0,predicate:["valuesTable"],descendants:!0,read:r.ElementRef},{propertyName:"table",first:!0,predicate:["table"],descendants:!0,read:r.ElementRef}],usesOnChanges:!0,ngImport:c,template:'\n <ng-container kendoPivotGridLocalizedMessages\n i18n-loading="kendo.pivotgrid.loading|The loading text"\n loading="Loading"\n \n i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"\n emptyCellLabel="PivotGrid Empty Cell"\n \n i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"\n fieldMenuFilterItemLabel="Filter"\n\n i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"\n fieldMenuSortAscendingItemLabel="Sort ascending"\n\n i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"\n fieldMenuSortDescendingItemLabel="Sort descending"\n\n i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"\n filterInputLabel="{{ \'{fields} Filter\' }}"\n\n i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"\n filterOperatorsDropDownLabel="{{ \'{fields} Filter Operators\' }}"\n\n i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"\n filterFilterButton="Filter"\n\n i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"\n filterClearButton="Clear"\n\n i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"\n configuratorButtonText="Change Settings"\n\n i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"\n configuratorHeaderText="Settings"\n\n i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"\n configuratorFieldsText="Fields"\n\n i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"\n configuratorColumnsText="Columns"\n\n i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"\n configuratorRowsText="Rows"\n\n i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"\n configuratorValuesText="Values"\n\n i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"\n configuratorCancelButtonText="Cancel"\n\n i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"\n configuratorApplyButtonText="Apply"\n \n i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"\n configuratorEmptyRowsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"\n configuratorEmptyColumnsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"\n configuratorEmptyMeasuresText="Select some fields to begin setup"\n \n i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"\n chipMenuIconTitle="{{ \'{fieldName} Field Menu\' }}"></ng-container>\n\n <div #table class="k-pivotgrid">\n <span class="k-pivotgrid-empty-cell">\n <span class="k-sr-only">{{messageFor(\'emptyCellLabel\')}}</span>\n </span>\n <kendo-pivotgrid-table\n #colHeadersTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-column-headers"\n tableType="columnHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #rowHeadersTable\n class="k-pivotgrid-row-headers"\n tableType="rowHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #valuesTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-values"\n tableType="values"></kendo-pivotgrid-table>\n \n <div *ngIf="loading" class="k-loader">\n <kendo-loader\n [type]="loaderSettings?.type"\n [themeColor]="loaderSettings?.themeColor"\n [size]="loaderSettings?.size"\n >\n </kendo-loader>\n <span class="k-loading-text">{{ loadingText }}</span>\n </div>\n </div>\n\n <kendo-pivotgrid-configurator\n *ngIf="showConfigurator"\n [horizontal]="configuratorSettings.horizontal">\n </kendo-pivotgrid-configurator>\n\n <div *ngIf="configurator"\n class="k-pivotgrid-configurator-button"\n (click)="showConfigurator = !showConfigurator">\n <span>{{messageFor(\'configuratorButtonText\')}}<span class="k-icon k-i-gear k-color-inherit"></span>\n </span>\n </div>\n ',isInline:!0,styles:["\n /** TODO: Remove if added to themes */\n div.k-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "],components:[{type:C,selector:"kendo-pivotgrid-table",inputs:["tableType","colWidth"]},{type:g.LoaderComponent,selector:"kendo-loader",inputs:["type","themeColor","size"]},{type:We,selector:"kendo-pivotgrid-configurator",inputs:["horizontal","sort","filter"]}],directives:[{type:$e,selector:"[kendoPivotGridLocalizedMessages]"},{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:h,decorators:[{type:r.Component,args:[{selector:"kendo-pivotgrid",providers:[b,t.LocalizationService,k,{provide:t.L10N_PREFIX,useValue:"kendo.pivotgrid"}],template:'\n <ng-container kendoPivotGridLocalizedMessages\n i18n-loading="kendo.pivotgrid.loading|The loading text"\n loading="Loading"\n \n i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"\n emptyCellLabel="PivotGrid Empty Cell"\n \n i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"\n fieldMenuFilterItemLabel="Filter"\n\n i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"\n fieldMenuSortAscendingItemLabel="Sort ascending"\n\n i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"\n fieldMenuSortDescendingItemLabel="Sort descending"\n\n i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"\n filterInputLabel="{{ \'{fields} Filter\' }}"\n\n i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"\n filterOperatorsDropDownLabel="{{ \'{fields} Filter Operators\' }}"\n\n i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"\n filterFilterButton="Filter"\n\n i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"\n filterClearButton="Clear"\n\n i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"\n configuratorButtonText="Change Settings"\n\n i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"\n configuratorHeaderText="Settings"\n\n i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"\n configuratorFieldsText="Fields"\n\n i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"\n configuratorColumnsText="Columns"\n\n i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"\n configuratorRowsText="Rows"\n\n i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"\n configuratorValuesText="Values"\n\n i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"\n configuratorCancelButtonText="Cancel"\n\n i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"\n configuratorApplyButtonText="Apply"\n \n i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"\n configuratorEmptyRowsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"\n configuratorEmptyColumnsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"\n configuratorEmptyMeasuresText="Select some fields to begin setup"\n \n i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"\n chipMenuIconTitle="{{ \'{fieldName} Field Menu\' }}"></ng-container>\n\n <div #table class="k-pivotgrid">\n <span class="k-pivotgrid-empty-cell">\n <span class="k-sr-only">{{messageFor(\'emptyCellLabel\')}}</span>\n </span>\n <kendo-pivotgrid-table\n #colHeadersTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-column-headers"\n tableType="columnHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #rowHeadersTable\n class="k-pivotgrid-row-headers"\n tableType="rowHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #valuesTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-values"\n tableType="values"></kendo-pivotgrid-table>\n \n <div *ngIf="loading" class="k-loader">\n <kendo-loader\n [type]="loaderSettings?.type"\n [themeColor]="loaderSettings?.themeColor"\n [size]="loaderSettings?.size"\n >\n </kendo-loader>\n <span class="k-loading-text">{{ loadingText }}</span>\n </div>\n </div>\n\n <kendo-pivotgrid-configurator\n *ngIf="showConfigurator"\n [horizontal]="configuratorSettings.horizontal">\n </kendo-pivotgrid-configurator>\n\n <div *ngIf="configurator"\n class="k-pivotgrid-configurator-button"\n (click)="showConfigurator = !showConfigurator">\n <span>{{messageFor(\'configuratorButtonText\')}}<span class="k-icon k-i-gear k-color-inherit"></span>\n </span>\n </div>\n ',styles:["\n /** TODO: Remove if added to themes */\n div.k-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "]}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:c.NgZone},{type:b},{type:d.LocalizationService},{type:c.Renderer2},{type:_.ScrollbarWidthService}]},propDecorators:{hostClass:[{type:r.HostBinding,args:["class.k-d-flex"]},{type:r.HostBinding,args:["class.k-pos-relative"]}],rightPositionClass:[{type:r.HostBinding,args:["class.k-flex-row"]}],leftPositionClass:[{type:r.HostBinding,args:["class.k-flex-row-reverse"]}],bottomPositionClass:[{type:r.HostBinding,args:["class.k-flex-column"]}],topPositionClass:[{type:r.HostBinding,args:["class.k-flex-column-reverse"]}],dir:[{type:r.HostBinding,args:["attr.dir"]}],ariaRole:[{type:r.HostBinding,args:["attr.role"]}],colHeadersTable:[{type:r.ViewChild,args:["colHeadersTable",{read:r.ElementRef}]}],rowHeadersTable:[{type:r.ViewChild,args:["rowHeadersTable",{read:r.ElementRef}]}],valuesTable:[{type:r.ViewChild,args:["valuesTable",{read:r.ElementRef}]}],table:[{type:r.ViewChild,args:["table",{read:r.ElementRef}]}],loaderSettings:[{type:r.Input}],configurator:[{type:r.Input}],columnHeadersWidth:[{type:r.Input}],navigable:[{type:r.Input}]}});var Je,et=function(e,t,n,o,r){this.columnAxes=e,this.rowAxes=t,this.measureAxes=n,this.sort=o,this.filter=r},tt=($(nt,Je=l.PreventableEvent),nt);function nt(e){var t=Je.call(this)||this;return Object.assign(t,e),t}$(it,ot=l.PreventableEvent);var ot,rt=it;function it(e){var t=ot.call(this)||this;return Object.assign(t,e),t}Object.defineProperty(at.prototype,"state",{get:function(){return new et(this.columnAxes,this.rowAxes,this.measureAxes,this.sort,this.filter)},enumerable:!1,configurable:!0}),at.prototype.ngOnInit=function(){var o=this;this.loadData(this.state),this.loadFields(),this.subs.add(this.dataService.expandedStateChange.subscribe(function(n){o.zone.run(function(){var e="columnHeader"===n.tableType,t=e?"columnAxes":"rowAxes",e=p.toTree((e?o.dataService.columns:o.dataService.rows||[]).slice());o.updateHeaders(t,e,n.cell.path)})})),this.subs.add(this.dataService.configuratorFieldChange.subscribe(function(t){o.zone.run(function(){if(l.hasObservers(o.configurationChange)){var e=new rt(t);if(o.configurationChange.emit(e),e.isDefaultPrevented())return}o.dataService.configuredFields.next({columnAxes:t.columnAxes,rowAxes:t.rowAxes,measureAxes:t.measureAxes,sort:t.sort,filter:t.filter}),o.loadData(t)})})),this.subs.add(this.dataService.valuesRows.subscribe(function(e){o.zone.run(function(){l.hasObservers(o.dataLoaded)&&o.dataLoaded.emit(e)})})),this.dataService.directive=this},at.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},at.prototype.updateDataServiceFields=function(){this.dataService.normalizedData=this.dataState.data,this.dataService.rows=this.dataState.rows,this.dataService.columns=this.dataState.columns,this.dataService.updateRowsAndCols()},at.prototype.updateConfiguratorFields=function(){this.dataService.fields.next(this.configuratorFields),this.dataService.configuredFields.next({columnAxes:this.columnAxes,rowAxes:this.rowAxes,measureAxes:this.measureAxes,sort:this.sort,filter:this.filter})},at.prototype.updateHeaders=function(e,t,n){n={type:p.HEADERS_ACTION.toggle,payload:n},n=p.headersReducer(this[e].slice(),Object.assign(Object.assign({},n),{tree:t}));if(l.hasObservers(this.expandChange)){t=Object.assign(Object.assign({},this.state),((t={})[e]=n,t)),t=new tt(t);if(this.expandChange.emit(t),t.isDefaultPrevented())return}this[e]=n,this.loadData(this.state)};m=at;function at(e,t){this.dataService=e,this.zone=t,this.columnAxes=[],this.rowAxes=[],this.measureAxes=[],this.sort=[],this.expandChange=new r.EventEmitter,this.configurationChange=new r.EventEmitter,this.dataLoaded=new r.EventEmitter,this.subs=new s.Subscription}m.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,deps:[{token:b},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),m.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:m,selector:"kendo-base-binding-directive",inputs:{columnAxes:"columnAxes",rowAxes:"rowAxes",measureAxes:"measureAxes",sort:"sort",filter:"filter"},outputs:{expandChange:"expandChange",configurationChange:"configurationChange",dataLoaded:"dataLoaded"},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,decorators:[{type:r.Directive,args:[{selector:"kendo-base-binding-directive"}]}],ctorParameters:function(){return[{type:b},{type:c.NgZone}]},propDecorators:{columnAxes:[{type:r.Input}],rowAxes:[{type:r.Input}],measureAxes:[{type:r.Input}],sort:[{type:r.Input}],filter:[{type:r.Input}],expandChange:[{type:r.Output}],configurationChange:[{type:r.Output}],dataLoaded:[{type:r.Output}]}});var st,lt={dataField:"aggregate",columnsData:"columns"},g=($(pt,st=m),pt.prototype.ngOnChanges=function(e){l.anyChanged(["data","dimensions","columnAxes","rowAxes","measureAxes","measures"],e)&&this.loadData(this.state)},pt.prototype.fetchChildren=function(e){return e.children},pt.prototype.loadFields=function(){this.configuratorFields=p.createFlatSchemaDimensions(this.dimensions,this.measures),this.updateConfiguratorFields()},pt.prototype.loadData=function(e){var n=this,t=e.columnAxes,o=e.rowAxes,r=e.measureAxes,i=e.sort,e=e.filter,a=this.getRootAxes(t),s=this.getRootAxes(o),a=a.split("&").map(this.createAxisSettings),s=s.split("&").map(this.createAxisSettings),r=r.map(function(t){return n.measures.find(function(e){return String(e.name)===String(t.name)})}).filter(Boolean),e=p.createDataTree(this.data,s,a,r,lt,e);this.dataState=p.createLocalDataState({dataTree:e,rowSettings:s,columnSettings:a,rowAxes:o,columnAxes:t,measures:r,sort:i,fields:lt}),this.updateDataServiceFields()},pt.prototype.getRootAxes=function(e){return Array.from(p.rootFields(e).keys()).join("&")},pt);function pt(e,t){var n=st.call(this,e,t)||this;return n.type="local",n.createAxisSettings=function(e){return Object.assign({key:e},n.dimensions[e])},n}g.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:g,deps:[{token:b},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),g.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:g,selector:"[kendoPivotLocalBinding]",inputs:{data:["kendoPivotLocalBinding","data"],dimensions:"dimensions",measures:"measures"},exportAs:["kendoPivotLocalBinding"],usesInheritance:!0,usesOnChanges:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:g,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotLocalBinding]",exportAs:"kendoPivotLocalBinding"}]}],ctorParameters:function(){return[{type:b},{type:c.NgZone}]},propDecorators:{data:[{type:r.Input,args:["kendoPivotLocalBinding"]}],dimensions:[{type:r.Input}],measures:[{type:r.Input}]}});$(P,ct=m),P.prototype.ngOnChanges=function(e){l.anyChanged(["url","cube","catalog","columnAxes","rowAxes","measureAxes"],e)&&(this.loadData(this.state),this.loadFields())},P.prototype.loadData=function(e){var t=this,n=e.columnAxes,o=e.rowAxes,r=e.measureAxes,i=e.sort,e=e.filter,n=(this.dataService.loading.next(!0),{connection:{catalog:this.catalog,cube:this.cube},columnAxes:n,rowAxes:o,measureAxes:r,sort:i,filter:e});p.fetchData({url:this.url},JSON.parse(JSON.stringify(n))).then(p.createDataState).then(function(e){t.dataState=e,t.updateDataServiceFields(),t.dataService.loading.next(!1)})},P.prototype.loadFields=function(){var t=this,e={connection:{catalog:this.catalog,cube:this.cube},restrictions:{catalogName:this.catalog,cubeName:this.cube},command:"schemaDimensions"};p.fetchDiscover({url:this.url},e).then(function(e){p.addKPI(e),t.configuratorFields=e,t.updateConfiguratorFields()})},P.prototype.updateFields=function(r,i){return X(this,void 0,void 0,function(){var t,n,o;return Y(this,function(e){switch(e.label){case 0:return(t=i.slice(),(t=this.getField(t,r))&&"[KPIs]"===t.uniqueName)?(n=this.normalizeKPIs,[4,this.loadKPIs()]):[3,2];case 1:return o=n.apply(this,[e.sent()]),t.children=o,[3,5];case 2:return t&&"kpi"===t.type?(t.children=p.buildKPIMeasures(t),[3,5]):[3,3];case 3:return!t||t.children?[3,5]:[4,this.loadAvailableFields(t)];case 4:o=e.sent(),t.children=o,e.label=5;case 5:return[2,null==t?void 0:t.children]}})})},P.prototype.fetchChildren=function(e,t){return this.updateFields(e,t)},P.prototype.normalizeKPIs=function(e){for(var t=0,n=e.length;t<n;t++)e[t].uniqueName=e[t].name,e[t].type="kpi";return e},P.prototype.getField=function(e,t){void 0===e&&(e=[]);for(var n=0;n<e.length;n++){var o=e[n];if(o.uniqueName===t.uniqueName)return o;o=this.getField(o.children,t);if(null!==o)return o}return null},P.prototype.loadKPIs=function(){return X(this,void 0,void 0,function(){var t;return Y(this,function(e){return t={connection:{catalog:this.catalog,cube:this.cube},restrictions:{catalogName:this.catalog,cubeName:this.cube},command:"schemaKPIs"},[2,p.fetchDiscover({url:this.url},t)]})})},P.prototype.loadAvailableFields=function(i){return X(this,void 0,void 0,function(){var t,n,o,r;return Y(this,function(e){return 2===i.type?t="schemaMeasures":i.dimensionUniqueName?(t="schemaLevels",o=i.uniqueName):(t="schemaHierarchies",n=i.uniqueName),r={connection:{catalog:this.catalog,cube:this.cube},restrictions:{catalogName:this.catalog,cubeName:this.cube,hierarchyUniqueName:o,dimensionUniqueName:n,levelUniqueName:void 0,memberUniqueName:void 0,treeOp:void 0},command:t},[2,p.fetchDiscover({url:this.url},r)]})})};var ct,u=P;function P(e,t){e=ct.call(this,e,t)||this;return e.type="olap",e}u.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:u,deps:[{token:b},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),u.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:u,selector:"[kendoPivotOLAPBinding]",inputs:{url:"url",cube:"cube",catalog:"catalog"},exportAs:["kendoPivotOLAPBinding"],usesInheritance:!0,usesOnChanges:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:u,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotOLAPBinding]",exportAs:"kendoPivotOLAPBinding"}]}],ctorParameters:function(){return[{type:b},{type:c.NgZone}]},propDecorators:{url:[{type:r.Input}],cube:[{type:r.Input}],catalog:[{type:r.Input}]}});$(ut,dt=o),Object.defineProperty(ut.prototype,"override",{get:function(){return!0},enumerable:!1,configurable:!0});var dt,L=ut;function ut(e){var t=dt.call(this)||this;return t.service=e,t}L.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:L,deps:[{token:d.LocalizationService}],target:c.ɵɵFactoryTarget.Component}),L.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:L,selector:"kendo-pivotgrid-messages",providers:[{provide:o,useExisting:r.forwardRef(function(){return L})}],usesInheritance:!0,ngImport:c,template:"",isInline:!0}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:L,decorators:[{type:r.Component,args:[{providers:[{provide:o,useExisting:r.forwardRef(function(){return L})}],selector:"kendo-pivotgrid-messages",template:""}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});t=[n.CommonModule,H.DropDownsModule,q.InputsModule,z.ButtonsModule],m=function(){},m.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,deps:[],target:c.ɵɵFactoryTarget.NgModule}),m.ɵmod=c.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,imports:[n.CommonModule,H.DropDownsModule,q.InputsModule,z.ButtonsModule],exports:[n.CommonModule,H.DropDownsModule,q.InputsModule,z.ButtonsModule]}),m.ɵinj=c.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,imports:[[t],n.CommonModule,H.DropDownsModule,q.InputsModule,z.ButtonsModule]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,decorators:[{type:r.NgModule,args:[{imports:[t],exports:[t]}]}]}),o=[A,Se,Ge,S,F,Le,E,i,Ie,O],gt.exports=function(){return[A,Se,Ie,O,Ge]},n=gt;function gt(){}n.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,deps:[],target:c.ɵɵFactoryTarget.NgModule}),n.ɵmod=c.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,declarations:[A,Se,Ge,S,F,Le,E,i,Ie,O],imports:[m,j.ReactiveFormsModule,j.FormsModule],exports:[A,Se,Ge,S,F,Le,E,i,Ie,O]}),n.ɵinj=c.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,imports:[[m,j.ReactiveFormsModule,j.FormsModule]]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,decorators:[{type:r.NgModule,args:[{declarations:[o],imports:[m,j.ReactiveFormsModule,j.FormsModule],exports:[o]}]}]});H=[l.EventsModule,B.IndicatorsModule,G.TreeViewModule,l.DraggableModule,n,m],q=[h,C,We,x,g,u,qe,je,$e,L],z=[h,C,x,g,u,L],t=function(){};t.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,deps:[],target:c.ɵɵFactoryTarget.NgModule}),t.ɵmod=c.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,declarations:[h,C,We,x,g,u,qe,je,$e,L],imports:[l.EventsModule,B.IndicatorsModule,G.TreeViewModule,l.DraggableModule,n,m],exports:[h,C,x,g,u,L]}),t.ɵinj=c.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,imports:[y([],v(H))]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,decorators:[{type:r.NgModule,args:[{imports:y([],v(H)),declarations:y([],v(q)),exports:y([],v(z))}]}]}),Object.defineProperty(e,"averageAggregate",{enumerable:!0,get:function(){return p.averageAggregate}}),Object.defineProperty(e,"maxAggregate",{enumerable:!0,get:function(){return p.maxAggregate}}),Object.defineProperty(e,"minAggregate",{enumerable:!0,get:function(){return p.minAggregate}}),Object.defineProperty(e,"sumAggregate",{enumerable:!0,get:function(){return p.sumAggregate}}),e.ConfigurationChangeEvent=rt,e.CustomMessagesComponent=L,e.DraggableChipDirective=qe,e.DropTargetDirective=je,e.ExpandChangeEvent=tt,e.PivotGridCellDirective=x,e.PivotGridComponent=h,e.PivotGridConfiguratorComponent=We,e.PivotGridModule=t,e.PivotGridTableComponent=C,e.PivotLocalBindingDirective=g,e.PivotOLAPBindingDirective=u,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
5
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@progress/kendo-licensing"),require("@progress/kendo-angular-common"),require("@progress/kendo-pivotgrid-common"),require("rxjs"),require("rxjs/operators"),require("@progress/kendo-angular-l10n"),require("@angular/common"),require("@progress/kendo-angular-indicators"),require("@progress/kendo-angular-popup"),require("@progress/kendo-angular-treeview"),require("@progress/kendo-angular-buttons"),require("@angular/animations"),require("@angular/forms"),require("@progress/kendo-angular-dropdowns"),require("@progress/kendo-angular-inputs")):"function"==typeof define&&define.amd?define("KendoAngularPivotgrid",["exports","@angular/core","@progress/kendo-licensing","@progress/kendo-angular-common","@progress/kendo-pivotgrid-common","rxjs","rxjs/operators","@progress/kendo-angular-l10n","@angular/common","@progress/kendo-angular-indicators","@progress/kendo-angular-popup","@progress/kendo-angular-treeview","@progress/kendo-angular-buttons","@angular/animations","@angular/forms","@progress/kendo-angular-dropdowns","@progress/kendo-angular-inputs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoAngularPivotgrid={},e.ng.core,e.KendoLicensing,e.KendoAngularCommon,e.KendoPivotgridCommon,e.rxjs,e.rxjs.operators,e.KendoAngularL10N,e.ng.common,e.KendoAngularIndicators,e.KendoAngularPopup,e.KendoAngularTreeview,e.KendoAngularButtons,e.ng.animations,e.ng.forms,e.i1$2,e.KendoAngularInputs)}(this,function(e,r,V,l,p,s,R,t,n,B,o,G,j,i,z,H,q){"use strict";function a(n){var o;return n&&n.__esModule?n:(o=Object.create(null),n&&Object.keys(n).forEach(function(e){var t;"default"!==e&&(t=Object.getOwnPropertyDescriptor(n,e),Object.defineProperty(o,e,t.get?t:{enumerable:!0,get:function(){return n[e]}}))}),o.default=n,Object.freeze(o))}var c=a(r),_=a(l),d=a(t),u=a(n),g=a(B),W=a(o),o=a(G),m=a(j),f=a(z),Z=a(H),h=a(q),K={name:"@progress/kendo-angular-pivotgrid",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1662143617,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"},U=function(e,t){return(U=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function $(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}U(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function X(e,a,s,l){return new(s=s||Promise)(function(n,t){function o(e){try{i(l.next(e))}catch(e){t(e)}}function r(e){try{i(l.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?n(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(o,r)}i((l=l.apply(e,a||[])).next())})}function Y(o,r){var i,a,s,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},e={next:t(0),throw:t(1),return:t(2)};return"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(n){return function(e){var t=[n,e];if(i)throw new TypeError("Generator is already executing.");for(;l;)try{if(i=1,a&&(s=2&t[0]?a.return:t[0]?a.throw||((s=a.return)&&s.call(a),0):a.next)&&!(s=s.call(a,t[1])).done)return s;switch(a=0,(t=s?[2&t[0],s.value]:t)[0]){case 0:case 1:s=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,a=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!s||t[1]>s[0]&&t[1]<s[3]))l.label=t[1];else if(6===t[0]&&l.label<s[1])l.label=s[1],s=t;else{if(!(s&&l.label<s[2])){s[2]&&l.ops.pop(),l.trys.pop();continue}l.label=s[2],l.ops.push(t)}}t=r.call(o,l)}catch(e){t=[6,e],a=0}finally{i=s=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}}Object.create;function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,i=n.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(o=i.next()).done;)a.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a}function y(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r<i;r++)!o&&r in t||((o=o||Array.prototype.slice.call(t,0,r))[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}Object.create;function Q(e){return null!=e}function J(e,t,n,o){(e="Y"===o?-ie(e,o):ie(e,o))&&(t[0][n]=t[1][n]+=e)}function ee(e,t){n=ae(a=e),i=n.clientTop,n=n.clientLeft,o=se(a),r=o.pageYOffset,o=o.pageXOffset;var n,o,r={top:(a=a.getBoundingClientRect()).top+r-i,left:a.left+o-n},i=e.offsetWidth,a=e.offsetHeight;return{left:r.left+(t?0:i),top:r.top+a/2,height:a}}function te(e,n,o){return e.reduce(function(e,t){return n(t)?y(y([],v(e)),[o(t)]):e},[])}function ne(e,t,n){return e.replace(new RegExp("{\\s*"+t+"\\s*}","g"),n)}var oe=/^\s*$/,re=function(e){return null==e},ie=function(e,t){var n=e["wheelDelta"+t];return e.wheelDelta&&(void 0===n||n)?e.wheelDelta:e.detail&&e.axis===e["X"===t?"HORIZONTAL_AXIS":"VERTICAL_AXIS"]?10*-e.detail:0},ae=function(e){return e.ownerDocument.documentElement},se=function(e){return e.ownerDocument.defaultView},le=function(e){return e?new Date(e.getTime()):null};function pe(e){var t={};return ce(e,t),t}function ce(e,t){for(var n in e){var o;e.hasOwnProperty(n)&&(o=e[n],t[n]=de(o,t[n]))}}function de(e,t){return Array.isArray(e)?ue(e):e instanceof Date?le(e):e&&"object"==typeof e?(ce(e,t=t||{}),t):e}function ue(e){return e.map(function(e){return de(e,void 0)})}var ge=0,b=(me.prototype.updateRowsAndCols=function(){var n=this,e=p.toTree((this.rows||[]).slice()),e=v(p.toRows(e),4),t=e[0],o=e[1],r=e[2],e=e[3],i=p.toTree((this.columns||[]).slice()),i=v(p.toColumns(i),3),a=i[0],s=i[1],i=i[2];this.columnHeaderLeaves=s,this.columnHeaderCols.next(s),this.columnHeaderRows.next(a),this.rowHeaderLeaves=o,this.rowHeaderCols.next(new Array(e).fill({})),this.rowHeaderRows.next(t),this.valuesRows.next(p.toData((this.normalizedData||[]).slice(),s,o,i,r)),l.isDocumentAvailable()&&this.ngZone.runOutsideAngular(function(){setTimeout(function(){return e=n.wrapper,t=e.querySelectorAll(".k-pivotgrid-row-headers .k-pivotgrid-row"),o=e.querySelectorAll(".k-pivotgrid-column-headers th"),r=e.querySelectorAll(".k-pivotgrid-values td"),t.forEach(function(e,t){var n=te(Array.from(r),function(e){return e.getAttribute("id").split("-")[4]===(t+1).toString()},function(e){return e.getAttribute("id")});e.setAttribute("aria-owns",n.join(" "))}),void r.forEach(function(e){var n=+e.getAttribute("id").split("-")[5],t=te(Array.from(o),function(e){var t=+e.getAttribute("id").split("-")[5],e=+e.getAttribute("colspan");return n==t||1<e&&n<=t+e-1},function(e){return e.getAttribute("id")});e.setAttribute("aria-describedby",t.join(" "))});var e,t,o,r})})},me);function me(e){this.ngZone=e,this.expandedStateChange=new r.EventEmitter,this.configuratorFieldChange=new r.EventEmitter,this.expandedFieldChange=new r.EventEmitter,this.columnHeaderRows=new s.BehaviorSubject([]),this.columnHeaderCols=new s.BehaviorSubject([]),this.rowHeaderCols=new s.BehaviorSubject([]),this.rowHeaderRows=new s.BehaviorSubject([]),this.valuesRows=new s.BehaviorSubject([]),this.loading=new s.BehaviorSubject(!1),this.fields=new s.BehaviorSubject([]),this.configuredFields=new s.BehaviorSubject([]),this.pivotGridId=ge++}b.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:b,deps:[{token:c.NgZone}],target:c.ɵɵFactoryTarget.Injectable}),b.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:b}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:b,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:c.NgZone}]},propDecorators:{expandedStateChange:[{type:r.Output}],configuratorFieldChange:[{type:r.Output}],expandedFieldChange:[{type:r.Output}]}});fe.prototype.get=function(e){return this.localization.get(e)},Object.defineProperty(fe.prototype,"rtl",{get:function(){return this.localization.rtl},enumerable:!1,configurable:!0});var k=fe;function fe(e){this.localization=e}k.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:k,deps:[{token:d.LocalizationService}],target:c.ɵɵFactoryTarget.Injectable}),k.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:k}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:k,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:d.LocalizationService}]}});Object.defineProperty(he.prototype,"expanded",{get:function(){var e;return(null==(e=this.kendoPivotGridCell)?void 0:e.hasChildren)&&this.kendoPivotGridCell.children.length},enumerable:!1,configurable:!0}),he.prototype.ngOnInit=function(){var e,t,n=this.hostEl.nativeElement,o=(this.renderer.setAttribute(n,"rowspan",this.kendoPivotGridCell.rowSpan||1),this.renderer.setAttribute(n,"colspan",this.kendoPivotGridCell.colSpan||1),{"k-pivotgrid-header-total":(null==(e=this.kendoPivotGridCell)?void 0:e.total)||"values"===this.tableType&&(this.dataService.rowHeaderLeaves[this.rowIndex].total||this.dataService.columnHeaderLeaves[this.colIndex].total),"k-pivotgrid-header-root":0===(null==(e=this.kendoPivotGridCell)?void 0:e.levelNum),"k-pivotgrid-expanded":(null==(e=this.kendoPivotGridCell)?void 0:e.hasChildren)&&this.kendoPivotGridCell.children.length,"k-first":0<this.colIndex});for(t in o)o[t]&&this.renderer.addClass(n,t)};var x=he;function he(e,t,n){var o=this;this.hostEl=e,this.renderer=t,this.dataService=n,this.cellClass=!0,this.handleClick=function(){o.dataService.expandedStateChange.emit({action:o.expanded?"collapse":"expand",cell:o.kendoPivotGridCell,tableType:o.tableType})}}x.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:x,deps:[{token:c.ElementRef},{token:c.Renderer2},{token:b}],target:c.ɵɵFactoryTarget.Component}),x.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:x,selector:"[kendoPivotGridCell]",inputs:{kendoPivotGridCell:"kendoPivotGridCell",tableType:"tableType",rowIndex:"rowIndex",colIndex:"colIndex"},host:{properties:{"class.k-pivotgrid-cell":"this.cellClass"}},ngImport:c,template:'\n <span \n *ngIf="kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total"\n class="k-icon"\n aria-hidden="true"\n [kendoEventsOutsideAngular]="{\n click: handleClick\n }"\n [ngClass]="{\n \'k-i-arrow-chevron-up\': expanded,\n \'k-i-arrow-chevron-down\': !expanded\n }"></span>{{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}',isInline:!0,directives:[{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:_.EventsOutsideAngularDirective,selector:"[kendoEventsOutsideAngular]",inputs:["kendoEventsOutsideAngular","scope"]},{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:x,decorators:[{type:r.Component,args:[{selector:"[kendoPivotGridCell]",template:'\n <span \n *ngIf="kendoPivotGridCell.hasChildren && !kendoPivotGridCell.total"\n class="k-icon"\n aria-hidden="true"\n [kendoEventsOutsideAngular]="{\n click: handleClick\n }"\n [ngClass]="{\n \'k-i-arrow-chevron-up\': expanded,\n \'k-i-arrow-chevron-down\': !expanded\n }"></span>{{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}'}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:c.Renderer2},{type:b}]},propDecorators:{cellClass:[{type:r.HostBinding,args:["class.k-pivotgrid-cell"]}],kendoPivotGridCell:[{type:r.Input}],tableType:[{type:r.Input}],rowIndex:[{type:r.Input}],colIndex:[{type:r.Input}]}});Object.defineProperty(ve.prototype,"pivotGridId",{get:function(){return"kendo-pivotgrid-"+this.dataService.pivotGridId+"-"},enumerable:!1,configurable:!0}),ve.prototype.ngOnInit=function(){var t=this;this.dataChangeSubs.add(this.dataService[this.tableType+"Rows"].subscribe(function(e){return t.rows=e})),this.dataChangeSubs.add("values"===this.tableType?this.dataService.columnHeaderCols.subscribe(function(e){return t.headerItems=e}):this.dataService[this.tableType+"Cols"].subscribe(function(e){return t.headerItems=e}))},ve.prototype.ngOnDestroy=function(){this.dataChangeSubs.unsubscribe()};var C=ve;function ve(e){this.dataService=e,this.dataChangeSubs=new s.Subscription}C.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:C,deps:[{token:b}],target:c.ɵɵFactoryTarget.Component}),C.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:C,selector:"kendo-pivotgrid-table",inputs:{tableType:"tableType",colWidth:"colWidth"},ngImport:c,template:'\n <table\n class="k-pivotgrid-table"\n role="presentation">\n <colgroup>\n <col \n *ngFor="let item of headerItems;"\n [style.width]="tableType !== \'rowHeader\' ? colWidth >= 0 ? colWidth + \'px\' : \'200px\' : undefined" />\n </colgroup>\n <tbody class="k-pivotgrid-tbody" role="rowgroup">\n <tr *ngFor="let row of rows; index as rowIndex"\n class="k-pivotgrid-row"\n role="row">\n <ng-container *ngFor="let cell of row.cells; index as colIndex">\n <th\n *ngIf="cell && tableType !== \'values\'" \n [kendoPivotGridCell]="cell"\n [tableType]="tableType"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n [attr.aria-expanded]="cell.hasChildren && cell.children.length ? \'true\' : \'false\'"\n [attr.role]="tableType === \'columnHeader\' ? \'columnheader\' : \'rowheader\'"\n [attr.id]="pivotGridId + (tableType === \'columnHeader\' ? \'ch-\' : \'rh-\') + (rowIndex + 1) + \'-\' + (colIndex + 1)"></th>\n <td\n *ngIf="cell && tableType === \'values\'"\n [kendoPivotGridCell]="cell"\n tableType="values"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n role="gridcell"\n [attr.id]="pivotGridId + \'cell-\' + (rowIndex + 1) + \'-\' + (colIndex + 1)"></td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n ',isInline:!0,components:[{type:x,selector:"[kendoPivotGridCell]",inputs:["kendoPivotGridCell","tableType","rowIndex","colIndex"]}],directives:[{type:u.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:C,decorators:[{type:r.Component,args:[{selector:"kendo-pivotgrid-table",template:'\n <table\n class="k-pivotgrid-table"\n role="presentation">\n <colgroup>\n <col \n *ngFor="let item of headerItems;"\n [style.width]="tableType !== \'rowHeader\' ? colWidth >= 0 ? colWidth + \'px\' : \'200px\' : undefined" />\n </colgroup>\n <tbody class="k-pivotgrid-tbody" role="rowgroup">\n <tr *ngFor="let row of rows; index as rowIndex"\n class="k-pivotgrid-row"\n role="row">\n <ng-container *ngFor="let cell of row.cells; index as colIndex">\n <th\n *ngIf="cell && tableType !== \'values\'" \n [kendoPivotGridCell]="cell"\n [tableType]="tableType"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n [attr.aria-expanded]="cell.hasChildren && cell.children.length ? \'true\' : \'false\'"\n [attr.role]="tableType === \'columnHeader\' ? \'columnheader\' : \'rowheader\'"\n [attr.id]="pivotGridId + (tableType === \'columnHeader\' ? \'ch-\' : \'rh-\') + (rowIndex + 1) + \'-\' + (colIndex + 1)"></th>\n <td\n *ngIf="cell && tableType === \'values\'"\n [kendoPivotGridCell]="cell"\n tableType="values"\n [colIndex]="colIndex"\n [rowIndex]="rowIndex"\n role="gridcell"\n [attr.id]="pivotGridId + \'cell-\' + (rowIndex + 1) + \'-\' + (colIndex + 1)"></td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n '}]}],ctorParameters:function(){return[{type:b}]},propDecorators:{tableType:[{type:r.Input}],colWidth:[{type:r.Input}]}});ye.prototype.parseConfiguratorState=function(e){var t=p.configuratorReducer({filter:this.state.filter,sort:this.state.sort,rowAxes:this.state.rowAxes,columnAxes:this.state.columnAxes,measureAxes:this.state.measureAxes,dragItem:this.state.dragItem,dropDirection:this.state.dropDirection,dropTarget:this.state.dropTarget,dropZone:this.state.dropZone},e);Object.keys(t).forEach(function(e){return void 0===t[e]&&delete t[e]}),this.state=Object.assign(Object.assign({},this.state),t),this.configuratorStateChange.emit(this.state)};var I=ye;function ye(){this.configuratorStateChange=new r.EventEmitter}I.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:I,deps:[],target:c.ɵɵFactoryTarget.Injectable}),I.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:I}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:I,decorators:[{type:r.Injectable}],propDecorators:{configuratorStateChange:[{type:r.Output}]}});be.prototype.create=function(){this.dom=document.createElement("span"),this.dom.style.position="absolute";var e=document.createElement("div"),t=(e.classList.add("k-drop-hint","k-drop-hint-v"),document.createElement("div")),n=(t.classList.add("k-drop-hint-start"),document.createElement("div")),o=(n.classList.add("k-drop-hint-line"),document.createElement("div"));o.classList.add("k-drop-hint-end"),e.append(t,n,o),this.dom.append(e),this.hide()},be.prototype.attach=function(){return e=this.dom,!1||(document.body.appendChild(e),0),e;var e},be.prototype.remove=function(){this.dom&&this.dom.parentElement&&(document.body.removeChild(this.dom),this.dom=null)},be.prototype.hide=function(){this.dom.style.display="none"},be.prototype.position=function(e){var t=e.left,n=e.top,e=e.height,e=(this.dom.style.display="block",this.dom.style.height=e+"px",this.dom.style.top=n+"px",this.dom.style.zIndex="1000",this.dom.offsetWidth/2);this.dom.style.left=t-e+"px"};var T=be;function be(){}T.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:T,deps:[],target:c.ɵɵFactoryTarget.Injectable}),T.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:T}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:T,decorators:[{type:r.Injectable}]});$(Ce,ke=l.PreventableEvent);var ke,xe=Ce;function Ce(e){var t=ke.call(this)||this;return t.originalEvent=e,t}Te.prototype.open=function(e,t,n,o){void 0===o&&(o="k-grid-filter-popup");var n=Q(n)&&this.popupRef===n,o=(this.destroy(),n||(n=this.localization.rtl?"right":"left",this.popupRef=this.popupService.open({anchorAlign:{vertical:"bottom",horizontal:n},popupAlign:{vertical:"top",horizontal:n},anchor:e,popupClass:o,content:t,positionMode:"absolute"}),this.renderer.setAttribute(this.popupRef.popupElement,"dir",this.localization.rtl?"rtl":"ltr"),this.attachClose(e)),null==(n=this.popupRef)?void 0:n.popupElement);return o&&this.attachMouseListeners(o),this.popupRef},Te.prototype.destroy=function(){this.popupRef&&(this.detachClose(),this.pointerEventsSub.unsubscribe(),this.pointerEventsSub=null,this.popupRef.close(),this.popupRef=null)},Te.prototype.ngOnDestroy=function(){this.destroy(),this.scrollSubscription.unsubscribe()},Te.prototype.detachClose=function(){this.removeClick&&this.removeClick()},Te.prototype.attachClose=function(t){var n=this;this.detachClose(),this.ngZone.runOutsideAngular(function(){return n.removeClick=n.renderer.listen("document","click",function(e){!function(e,t){for(;e;){if(t(e))return!0;e=e.parentNode}return!1}(e.target,function(e){return n.popupRef.popupElement===e||e===t})&&(e=new xe(e),n.onClose.next(e),!e.isDefaultPrevented()&&n.canClosePopup&&n.destroy(),n.canClosePopup=!0)})})},Te.prototype.attachMouseListeners=function(e){var t=this;this.pointerEventsSub=new s.Subscription,this.ngZone.runOutsideAngular(function(){t.pointerEventsSub.add(t.renderer.listen(e,"pointerdown",function(e){e.stopImmediatePropagation(),t.canClosePopup=!1})),t.pointerEventsSub.add(t.renderer.listen(e,"pointerup",function(){t.canClosePopup=!0}))})};var Ie=Te;function Te(e,t,n,o){this.popupService=e,this.renderer=t,this.ngZone=n,this.localization=o,this.onClose=new s.Subject,this.pointerEventsSub=new s.Subscription,this.scrollSubscription=new s.Subscription}Ie.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ie,deps:[{token:W.PopupService},{token:c.Renderer2},{token:c.NgZone},{token:k}],target:c.ɵɵFactoryTarget.Injectable}),Ie.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ie}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ie,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:W.PopupService},{type:c.Renderer2},{type:c.NgZone},{type:k}]}});var D=function(){this.isColumnMenu=!1,this.isPopupOpen=!1},w=(D.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:D,deps:[],target:c.ɵɵFactoryTarget.Injectable}),D.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:D}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:D,decorators:[{type:r.Injectable}]}),De.prototype.close=function(){this.closeMenu.emit()},De);function De(e){this.closeMenu=new r.EventEmitter,this.menuTabbingService=e}w.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:w,deps:[{token:D}],target:c.ɵɵFactoryTarget.Injectable}),w.ɵprov=c.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:w}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:w,decorators:[{type:r.Injectable}],ctorParameters:function(){return[{type:D}]}});Object.defineProperty(we.prototype,"isFirst",{get:function(){return this._isFirst},set:function(e){var t,n=this;e&&(t=this.chipMenuItems[0],this.menuItemComponent.service.menuTabbingService.firstFocusable=t,this.ngZone.runOutsideAngular(function(){var e=n.renderer.listen(t,"keydown",n.onTab);n.subs.add(e)})),this._isFirst=e},enumerable:!1,configurable:!0}),Object.defineProperty(we.prototype,"isLast",{get:function(){return this._isLast},set:function(e){var t,n=this;this.chipMenuItems&&(e&&(t=this.getLastColumnMenuItem(),this.menuItemComponent.service.menuTabbingService.lastFocusable=t,this.ngZone.runOutsideAngular(function(){var e=n.renderer.listen(t,"keydown",n.onTab);n.subs.add(e)})),this._isLast=e)},enumerable:!1,configurable:!0}),we.prototype.ngAfterViewInit=function(){var t=this;this.chipMenuItems=this.hostElement.nativeElement.querySelectorAll(".k-columnmenu-item"),this.chipMenuItems.forEach(function(e){return t.renderer.setAttribute(e,"tabindex","0")})},we.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},we.prototype.getLastColumnMenuItem=function(){return 1===this.chipMenuItems.length?this.chipMenuItems[0]:this.chipMenuItems[1]};var O=we;function we(e,t,n){var o=this;this.hostElement=e,this.renderer=t,this.ngZone=n,this._isFirst=!1,this._isLast=!1,this.subs=new s.Subscription,this.onTab=function(e){var t,n;e.keyCode===l.Keys.Tab&&(o.isFirst&&e.shiftKey&&e.target===o.chipMenuItems[0]&&(e.preventDefault(),o.menuItemComponent.service.menuTabbingService.lastFocusable.focus()),o.isLast&&!e.shiftKey&&(t=o.getLastColumnMenuItem(),n=o.menuItemComponent.expanded,t!==e.target||n||(e.preventDefault(),o.menuItemComponent.service.menuTabbingService.firstFocusable.focus())))}}O.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:O,deps:[{token:c.ElementRef},{token:c.Renderer2},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),O.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:O,selector:"[kendoPivotChipMenuItem]",inputs:{menuItemComponent:["kendoPivotChipMenuItem","menuItemComponent"]},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:O,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotChipMenuItem]"}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:c.Renderer2},{type:c.NgZone}]},propDecorators:{menuItemComponent:[{type:r.Input,args:["kendoPivotChipMenuItem"]}]}});Se.prototype.ngAfterViewInit=function(){var e=this;this.chipMenuItems.length&&(this.chipMenuItems.first.isFirst=!0,this.chipMenuItems.last.isLast=!0,this.ngZone.onStable.pipe(R.take(1)).subscribe(function(){return e.service.menuTabbingService.firstFocusable.focus()}))};var Oe=Se;function Se(e,t){this.service=e,this.ngZone=t,this.hostClass=!0}Oe.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Oe,deps:[{token:w},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Component}),Oe.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:Oe,selector:"kendo-pivot-chipmenu-container",host:{properties:{"class.k-grid-columnmenu-popup":"this.hostClass"}},queries:[{propertyName:"chipMenuItems",predicate:O,descendants:!0}],ngImport:c,template:"\n <ng-content></ng-content>\n ",isInline:!0}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Oe,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chipmenu-container",template:"\n <ng-content></ng-content>\n "}]}],ctorParameters:function(){return[{type:w},{type:c.NgZone}]},propDecorators:{chipMenuItems:[{type:r.ContentChildren,args:[O,{descendants:!0}]}],hostClass:[{type:r.HostBinding,args:["class.k-grid-columnmenu-popup"]}]}});Fe.prototype.ngOnInit=function(){if(r.isDevMode()&&!this.service)throw new Error("The service input of the host chip menu components (e.g. ChipMenuSortComponent) is mandatory.")},Fe.prototype.close=function(){this.service.close()};var S=Fe;function Fe(){this.hostClass=!0}S.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,deps:[],target:c.ɵɵFactoryTarget.Component}),S.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:S,selector:"kendo-pivot-chip-menu-item-base",inputs:{service:"service"},host:{properties:{"class.k-columnmenu-item-wrapper":"this.hostClass"}},ngImport:c,template:"",isInline:!0}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chip-menu-item-base",template:""}]}],propDecorators:{service:[{type:r.Input}],hostClass:[{type:r.HostBinding,args:["class.k-columnmenu-item-wrapper"]}]}});var F=function(e){this.templateRef=e},A=(F.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:F,deps:[{token:c.TemplateRef,optional:!0}],target:c.ɵɵFactoryTarget.Directive}),F.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:F,selector:"[kendoPivotChipMenuItemContentTemplate]",ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:F,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotChipMenuItemContentTemplate]"}]}],ctorParameters:function(){return[{type:c.TemplateRef,decorators:[{type:r.Optional}]}]}}),Object.defineProperty(Ae.prototype,"iconClass",{get:function(){return"k-i-"+this.icon},enumerable:!1,configurable:!0}),Ae.prototype.ngOnChanges=function(e){e.expanded&&this.updateContentState()},Ae.prototype.onClick=function(e){this.itemClick.emit(e),this.contentTemplate&&(this.expanded=!this.expanded,this.updateContentState(),(this.expanded?this.expand:this.collapse).emit())},Ae.prototype.updateContentState=function(){this.contentState=this.expanded?"expanded":"collapsed"},Ae);function Ae(){this.itemClick=new r.EventEmitter,this.expand=new r.EventEmitter,this.collapse=new r.EventEmitter,this.contentState="collapsed"}A.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:A,deps:[],target:c.ɵɵFactoryTarget.Component}),A.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:A,selector:"kendo-pivot-chipmenu-item",inputs:{icon:"icon",text:"text",selected:"selected",expanded:"expanded"},outputs:{itemClick:"itemClick",expand:"expand",collapse:"collapse"},queries:[{propertyName:"contentTemplate",first:!0,predicate:F,descendants:!0}],usesOnChanges:!0,ngImport:c,template:'\n <div\n class="k-columnmenu-item"\n (click)="onClick($event)"\n (keydown.enter)="onClick($event)"\n [class.k-selected]="selected"\n role="button"\n [attr.aria-expanded]="expanded">\n <span *ngIf="icon" class="k-icon" [ngClass]="iconClass">\n </span>\n {{ text }}\n </div>\n <div *ngIf="contentTemplate" [@state]="contentState" style="overflow:hidden;" class="k-columnmenu-item-content">\n <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">\n </ng-container>\n <div>\n ',isInline:!0,directives:[{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:u.NgTemplateOutlet,selector:"[ngTemplateOutlet]",inputs:["ngTemplateOutletContext","ngTemplateOutlet"]}],animations:[i.trigger("state",[i.state("collapsed",i.style({display:"none"})),i.state("expanded",i.style({display:"block"})),i.transition("collapsed => expanded",[i.style({height:"0px",display:"block"}),i.animate("100ms ease-in",i.style({height:"*"}))]),i.transition("expanded => collapsed",[i.style({height:"*"}),i.animate("100ms ease-in",i.style({height:"0px"}))])])]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:A,decorators:[{type:r.Component,args:[{animations:[i.trigger("state",[i.state("collapsed",i.style({display:"none"})),i.state("expanded",i.style({display:"block"})),i.transition("collapsed => expanded",[i.style({height:"0px",display:"block"}),i.animate("100ms ease-in",i.style({height:"*"}))]),i.transition("expanded => collapsed",[i.style({height:"*"}),i.animate("100ms ease-in",i.style({height:"0px"}))])])],selector:"kendo-pivot-chipmenu-item",template:'\n <div\n class="k-columnmenu-item"\n (click)="onClick($event)"\n (keydown.enter)="onClick($event)"\n [class.k-selected]="selected"\n role="button"\n [attr.aria-expanded]="expanded">\n <span *ngIf="icon" class="k-icon" [ngClass]="iconClass">\n </span>\n {{ text }}\n </div>\n <div *ngIf="contentTemplate" [@state]="contentState" style="overflow:hidden;" class="k-columnmenu-item-content">\n <ng-container [ngTemplateOutlet]="contentTemplate.templateRef">\n </ng-container>\n <div>\n '}]}],propDecorators:{itemClick:[{type:r.Output}],expand:[{type:r.Output}],collapse:[{type:r.Output}],icon:[{type:r.Input}],text:[{type:r.Input}],selected:[{type:r.Input}],expanded:[{type:r.Input}],contentTemplate:[{type:r.ContentChild,args:[F,{static:!1}]}]}});$(Pe,Ee=S),Object.defineProperty(Pe.prototype,"sortedAsc",{get:function(){var e=this.descriptor;return e&&(!e.dir||"asc"===e.dir)},enumerable:!1,configurable:!0}),Object.defineProperty(Pe.prototype,"sortedDesc",{get:function(){var e=this.descriptor;return e&&"desc"===e.dir},enumerable:!1,configurable:!0}),Pe.prototype.messageFor=function(e){return this.localization.get(e)},Pe.prototype.toggleSort=function(e){var t=this.chip.name.toString(),n=this.descriptor,o=this.configuratorService.state.sort.filter(function(e){return e.field!==t});n&&n.dir===e||o.push({field:t,dir:e}),this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setSort,payload:o}),this.close()},Object.defineProperty(Pe.prototype,"descriptor",{get:function(){var t=this;return[].concat(this.configuratorService.state.sort||[]).find(function(e){return e.field===t.chip.name.toString()})},enumerable:!1,configurable:!0});var Ee,Me=Pe;function Pe(e,t,n){var o=Ee.call(this)||this;return o.localization=e,o.renderer=t,o.configuratorService=n,o}Me.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Me,deps:[{token:k},{token:c.Renderer2},{token:I}],target:c.ɵɵFactoryTarget.Component}),Me.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:Me,selector:"kendo-pivot-chipmenu-sort",inputs:{chip:"chip"},usesInheritance:!0,ngImport:c,template:'\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortAscendingItemLabel\')"\n icon="sort-asc-small"\n (itemClick)="toggleSort(\'asc\')"\n [selected]="sortedAsc">\n </kendo-pivot-chipmenu-item>\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortDescendingItemLabel\')"\n icon="sort-desc-small"\n (itemClick)="toggleSort(\'desc\')"\n [selected]="sortedDesc">\n </kendo-pivot-chipmenu-item>\n ',isInline:!0,components:[{type:A,selector:"kendo-pivot-chipmenu-item",inputs:["icon","text","selected","expanded"],outputs:["itemClick","expand","collapse"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Me,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chipmenu-sort",template:'\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortAscendingItemLabel\')"\n icon="sort-asc-small"\n (itemClick)="toggleSort(\'asc\')"\n [selected]="sortedAsc">\n </kendo-pivot-chipmenu-item>\n <kendo-pivot-chipmenu-item\n [text]="messageFor(\'fieldMenuSortDescendingItemLabel\')"\n icon="sort-desc-small"\n (itemClick)="toggleSort(\'desc\')"\n [selected]="sortedDesc">\n </kendo-pivot-chipmenu-item>\n '}]}],ctorParameters:function(){return[{type:k},{type:c.Renderer2},{type:I}]},propDecorators:{chip:[{type:r.Input}]}});Ne.prototype.ngAfterViewInit=function(){var e=this.host.wrapper.nativeElement;e.setAttribute("aria-label",this.filterMenuDropDownLabel),e.addEventListener("keydown",this.keydownHandler,!0)},Ne.prototype.ngOnDestroy=function(){this.host.wrapper.nativeElement.removeEventListener("keydown",this.keydownHandler)};i=Ne;function Ne(e){var t=this;this.host=e,this.keydownHandler=function(e){e.keyCode===l.Keys.Escape&&t.host.isOpen&&(e.stopPropagation(),t.host.toggle(!1))}}i.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:i,deps:[{token:Z.DropDownListComponent}],target:c.ɵɵFactoryTarget.Directive}),i.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:i,selector:"[kendoFilterMenuDropDown]",inputs:{filterMenuDropDownLabel:"filterMenuDropDownLabel"},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:i,decorators:[{type:r.Directive,args:[{selector:"[kendoFilterMenuDropDown]"}]}],ctorParameters:function(){return[{type:Z.DropDownListComponent}]},propDecorators:{filterMenuDropDownLabel:[{type:r.Input}]}});Le={filterEqOperator:"eq",filterNotEqOperator:"neq",filterContainsOperator:"contains",filterNotContainsOperator:"doesnotcontain",filterStartsWithOperator:"startswith",filterEndsWithOperator:"endswith",filterIsNullOperator:"isnull",filterIsNotNullOperator:"isnotnull",filterIsEmptyOperator:"isempty",filterIsNotEmptyOperator:"isnotempty"};var Le,Ve=function(t){return Object.keys(Le).map(function(e){return{text:t.get(e),value:Le[e]}})},E=(Object.defineProperty(Re.prototype,"currentFilter",{get:function(){var t=this,e=null==(e=this.configuratorService.state.filter)?void 0:e.filter(function(e){return e.field===t.chip.name.toString()});return e&&e[0]},enumerable:!1,configurable:!0}),Re.prototype.registerOnChange=function(e){this.filterFormGroup.valueChanges.subscribe(e)},Re.prototype.registerOnTouched=function(e){this.onTouched=e},Re.prototype.writeValue=function(e){e&&this.filterFormGroup.setValue(e,{emitEvent:!1})},Object.defineProperty(Re.prototype,"filterMenuDropDownLabel",{get:function(){var e=this.localization.get("filterOperatorsDropDownLabel")||"",t=this.chip.name.toString();return ne(e,"fields",t)},enumerable:!1,configurable:!0}),Re.prototype.ngOnInit=function(){this.filterFormGroup=this.fb.group({operator:[this.currentFilter?this.currentFilter.operator:""],value:[this.currentFilter?this.currentFilter.value:""]}),this.operators=Ve(this.localization)},Re.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},Re);function Re(e,t,n){this.localization=e,this.configuratorService=t,this.fb=n,this.subscription=new s.Subscription,this.onTouched=function(){}}E.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:E,deps:[{token:k},{token:I},{token:f.FormBuilder}],target:c.ɵɵFactoryTarget.Component}),E.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:E,selector:"kendo-pivot-string-filter-menu",inputs:{chip:"chip",menuTabbingService:"menuTabbingService"},providers:[{provide:z.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return E}),multi:!0}],ngImport:c,template:'\n <ng-container [formGroup]="filterFormGroup">\n <kendo-dropdownlist\n kendoFilterMenuDropDown\n [filterMenuDropDownLabel]="filterMenuDropDownLabel"\n [data]="operators"\n formControlName="operator"\n [valuePrimitive]="true"\n textField="text"\n valueField="value">\n </kendo-dropdownlist>\n <input\n kendoTextBox\n formControlName="value"\n />\n </ng-container>\n ',isInline:!0,components:[{type:Z.DropDownListComponent,selector:"kendo-dropdownlist",inputs:["iconClass","loading","data","value","textField","valueField","popupSettings","listHeight","defaultItem","disabled","itemDisabled","readonly","filterable","virtual","ignoreCase","delay","valuePrimitive","tabindex","tabIndex","size","rounded","fillMode","id"],outputs:["valueChange","filterChange","selectionChange","open","opened","close","closed","focus","blur"],exportAs:["kendoDropDownList"]}],directives:[{type:f.NgControlStatusGroup,selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]"},{type:f.FormGroupDirective,selector:"[formGroup]",inputs:["formGroup"],outputs:["ngSubmit"],exportAs:["ngForm"]},{type:i,selector:"[kendoFilterMenuDropDown]",inputs:["filterMenuDropDownLabel"]},{type:f.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{type:f.FormControlName,selector:"[formControlName]",inputs:["disabled","formControlName","ngModel"],outputs:["ngModelChange"]},{type:h.TextBoxDirective,selector:"input[kendoTextBox]",inputs:["value"]},{type:f.DefaultValueAccessor,selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]"}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:E,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-string-filter-menu",providers:[{provide:z.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return E}),multi:!0}],template:'\n <ng-container [formGroup]="filterFormGroup">\n <kendo-dropdownlist\n kendoFilterMenuDropDown\n [filterMenuDropDownLabel]="filterMenuDropDownLabel"\n [data]="operators"\n formControlName="operator"\n [valuePrimitive]="true"\n textField="text"\n valueField="value">\n </kendo-dropdownlist>\n <input\n kendoTextBox\n formControlName="value"\n />\n </ng-container>\n '}]}],ctorParameters:function(){return[{type:k},{type:I},{type:f.FormBuilder}]},propDecorators:{chip:[{type:r.Input}],menuTabbingService:[{type:r.Input}]}});function Be(e){var t=e.value,e=e.operator;return!(re(t=t)||oe.test(t))||("isnull"===(t=e)||"isnotnull"===t||"isempty"===t||"isnotempty"===t)}je.prototype.ngOnInit=function(){},je.prototype.ngAfterViewChecked=function(){(!this.menuTabbingService.isColumnMenu||this.isLast&&this.isExpanded)&&(this.menuTabbingService.lastFocusable=(this.disabled?this.resetButton:this.filterButton).nativeElement)},je.prototype.ngOnDestroy=function(){this.menuTabbingService.lastFocusable=null},Object.defineProperty(je.prototype,"disabled",{get:function(){return!(this.filterDescriptorValue&&Be(this.filterDescriptorValue))},enumerable:!1,configurable:!0}),je.prototype.submit=function(){var t=Object.assign({field:this.chip.name.toString()},this.filterDescriptorValue),e=this.configuratorService.state.filter?y(y([],v(this.configuratorService.state.filter.filter(function(e){return e.field!==t.field}))),[t]):[t];return this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setFilter,payload:e}),this.close.emit(),!1},je.prototype.reset=function(){var t=this,e=this.configuratorService.state.filter.filter(function(e){return e.field!==t.chip.name.toString()});this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setFilter,payload:e}),this.close.emit()},je.prototype.onTab=function(e,t){!this.menuTabbingService.firstFocusable||this.menuTabbingService.isColumnMenu&&!this.isLast||(e.preventDefault(),("reset"!==t||this.disabled?this.menuTabbingService.firstFocusable:this.filterButton.nativeElement).focus())},je.prototype.messageFor=function(e){return this.localization.get(e)};var Ge=je;function je(e,t,n,o){this.localization=e,this.cd=t,this.configuratorService=o,this.close=new r.EventEmitter,this.actionsClass="k-action-buttons k-button-group",this.menuTabbingService=n}Ge.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ge,deps:[{token:k},{token:c.ChangeDetectorRef},{token:D},{token:I}],target:c.ɵɵFactoryTarget.Component}),Ge.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:Ge,selector:"kendo-pivot-filter-menu-container",inputs:{chip:"chip",isLast:"isLast",isExpanded:"isExpanded",menuTabbingService:"menuTabbingService",actionsClass:"actionsClass"},outputs:{close:"close"},providers:[D],viewQueries:[{propertyName:"resetButton",first:!0,predicate:["resetButton"],descendants:!0},{propertyName:"filterButton",first:!0,predicate:["filterButton"],descendants:!0}],ngImport:c,template:'\n <form (submit)="submit()" (reset)="reset()"\n class="k-filter-menu k-group k-reset k-state-border-up">\n <div class="k-filter-menu-container">\n <kendo-pivot-string-filter-menu\n [(ngModel)]="filterDescriptorValue"\n name="\'filterDescriptorValue\'"\n [chip]="chip"\n [menuTabbingService]="menuTabbingService">\n </kendo-pivot-string-filter-menu>\n <div [ngClass]="actionsClass">\n <button\n #resetButton\n type="reset"\n kendoButton\n (keydown.tab)="onTab($event, \'reset\')">{{messageFor(\'filterClearButton\')}}</button>\n <button #filterButton\n type="submit"\n [disabled]="disabled"\n kendoButton\n themeColor="primary"\n (keydown.tab)="onTab($event, \'filter\')">{{messageFor(\'filterFilterButton\')}}</button>\n </div>\n </div>\n </form>\n ',isInline:!0,styles:["\n kendo-pivot-string-filter-menu {\n display: flex;\n flex-flow: column nowrap;\n align-items: stretch;\n gap: 8px;\n }\n "],components:[{type:E,selector:"kendo-pivot-string-filter-menu",inputs:["chip","menuTabbingService"]}],directives:[{type:f.ɵNgNoValidate,selector:"form:not([ngNoForm]):not([ngNativeValidate])"},{type:f.NgControlStatusGroup,selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]"},{type:f.NgForm,selector:"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]",inputs:["ngFormOptions"],outputs:["ngSubmit"],exportAs:["ngForm"]},{type:f.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{type:f.NgModel,selector:"[ngModel]:not([formControlName]):not([formControl])",inputs:["name","disabled","ngModel","ngModelOptions"],outputs:["ngModelChange"],exportAs:["ngModel"]},{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:m.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ge,decorators:[{type:r.Component,args:[{providers:[D],selector:"kendo-pivot-filter-menu-container",template:'\n <form (submit)="submit()" (reset)="reset()"\n class="k-filter-menu k-group k-reset k-state-border-up">\n <div class="k-filter-menu-container">\n <kendo-pivot-string-filter-menu\n [(ngModel)]="filterDescriptorValue"\n name="\'filterDescriptorValue\'"\n [chip]="chip"\n [menuTabbingService]="menuTabbingService">\n </kendo-pivot-string-filter-menu>\n <div [ngClass]="actionsClass">\n <button\n #resetButton\n type="reset"\n kendoButton\n (keydown.tab)="onTab($event, \'reset\')">{{messageFor(\'filterClearButton\')}}</button>\n <button #filterButton\n type="submit"\n [disabled]="disabled"\n kendoButton\n themeColor="primary"\n (keydown.tab)="onTab($event, \'filter\')">{{messageFor(\'filterFilterButton\')}}</button>\n </div>\n </div>\n </form>\n ',styles:["\n kendo-pivot-string-filter-menu {\n display: flex;\n flex-flow: column nowrap;\n align-items: stretch;\n gap: 8px;\n }\n "]}]}],ctorParameters:function(){return[{type:k},{type:c.ChangeDetectorRef},{type:D},{type:I}]},propDecorators:{close:[{type:r.Output}],chip:[{type:r.Input}],isLast:[{type:r.Input}],isExpanded:[{type:r.Input}],menuTabbingService:[{type:r.Input}],actionsClass:[{type:r.Input}],resetButton:[{type:r.ViewChild,args:["resetButton"]}],filterButton:[{type:r.ViewChild,args:["filterButton"]}]}});$(He,ze=S),He.prototype.onCollapse=function(){this.expanded=!1,this.isLast&&(this.service.menuTabbingService.lastFocusable=this.hostElement.nativeElement.querySelector(".k-columnmenu-item")),this.collapse.emit()},He.prototype.onExpand=function(){this.expanded=!0,this.expand.emit()},He.prototype.messageFor=function(e){return this.localization.get(e)};var ze,S=He;function He(e,t){var n=ze.call(this)||this;return n.localization=e,n.hostElement=t,n.expand=new r.EventEmitter,n.collapse=new r.EventEmitter,n.expanded=!1,n.isLast=!1,n.actionsClass="k-columnmenu-actions",n}S.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,deps:[{token:k},{token:c.ElementRef}],target:c.ɵɵFactoryTarget.Component}),S.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:S,selector:"kendo-pivot-chipmenu-filter",inputs:{chip:"chip",expanded:"expanded",isLast:"isLast"},outputs:{expand:"expand",collapse:"collapse"},usesInheritance:!0,ngImport:c,template:'\n <kendo-pivot-chipmenu-item\n classs="k-widget k-expander"\n [text]="messageFor(\'fieldMenuFilterItemLabel\')"\n icon="filter"\n [expanded]="expanded"\n (collapse)="onCollapse()"\n (expand)="onExpand()">\n <ng-template kendoPivotChipMenuItemContentTemplate>\n <kendo-pivot-filter-menu-container\n [chip]="chip"\n [menuTabbingService]="service.menuTabbingService"\n [actionsClass]="actionsClass"\n [isLast]="isLast"\n [isExpanded]="expanded"\n (keydown.shift.tab)="$event.stopImmediatePropagation()"\n (close)="close()">\n </kendo-pivot-filter-menu-container>\n </ng-template>\n </kendo-pivot-chipmenu-item>\n ',isInline:!0,components:[{type:A,selector:"kendo-pivot-chipmenu-item",inputs:["icon","text","selected","expanded"],outputs:["itemClick","expand","collapse"]},{type:Ge,selector:"kendo-pivot-filter-menu-container",inputs:["chip","isLast","isExpanded","menuTabbingService","actionsClass"],outputs:["close"]}],directives:[{type:F,selector:"[kendoPivotChipMenuItemContentTemplate]"}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:S,decorators:[{type:r.Component,args:[{selector:"kendo-pivot-chipmenu-filter",template:'\n <kendo-pivot-chipmenu-item\n classs="k-widget k-expander"\n [text]="messageFor(\'fieldMenuFilterItemLabel\')"\n icon="filter"\n [expanded]="expanded"\n (collapse)="onCollapse()"\n (expand)="onExpand()">\n <ng-template kendoPivotChipMenuItemContentTemplate>\n <kendo-pivot-filter-menu-container\n [chip]="chip"\n [menuTabbingService]="service.menuTabbingService"\n [actionsClass]="actionsClass"\n [isLast]="isLast"\n [isExpanded]="expanded"\n (keydown.shift.tab)="$event.stopImmediatePropagation()"\n (close)="close()">\n </kendo-pivot-filter-menu-container>\n </ng-template>\n </kendo-pivot-chipmenu-item>\n '}]}],ctorParameters:function(){return[{type:k},{type:c.ElementRef}]},propDecorators:{expand:[{type:r.Output}],collapse:[{type:r.Output}],chip:[{type:r.Input}],expanded:[{type:r.Input}],isLast:[{type:r.Input}]}});_e.prototype.ngOnDestroy=function(){this.close(),this.closeSubscription.unsubscribe()},_e.prototype.toggle=function(e,t,n){e&&(e.preventDefault(),e.stopImmediatePropagation()),this.popupRef=this.popupService.open(t,n,this.popupRef,"k-column-menu"),this.popupRef||this.anchor.nativeElement.focus()},_e.prototype.close=function(){this.popupService.destroy(),this.popupRef=null,this.anchor.nativeElement.focus()},Object.defineProperty(_e.prototype,"chipMenuTitle",{get:function(){var e=this.localization.get("chipMenuIconTitle")||"",t=this.chip.name.toString();return ne(e,"fieldName",t)},enumerable:!1,configurable:!0});var qe=_e;function _e(e,t,n){this.popupService=e,this.localization=t,this.service=n,this.tabIndex="-1",this.closeSubscription=n.closeMenu.subscribe(this.close.bind(this))}qe.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:qe,deps:[{token:Ie},{token:k},{token:w}],target:c.ɵɵFactoryTarget.Component}),qe.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:qe,selector:"kendo-pivot-chip-menu",inputs:{chip:"chip",tabIndex:"tabIndex"},providers:[w,D],viewQueries:[{propertyName:"anchor",first:!0,predicate:["anchor"],descendants:!0,static:!0}],ngImport:c,template:'\n <span #anchor\n class="k-icon k-i-more-vertical"\n (click)="toggle($event, anchor, template)"\n [tabindex]="tabIndex"\n [attr.title]="chipMenuTitle">\n </span>\n <ng-template #template>\n <kendo-pivot-chipmenu-container\n (keydown.escape)="close()"\n (keydown.enter)="$event.stopImmediatePropagation()">\n <kendo-pivot-chipmenu-sort\n #sortItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="sortItem"\n [service]="service">\n </kendo-pivot-chipmenu-sort>\n\n <kendo-pivot-chipmenu-filter\n #filterItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="filterItem"\n [service]="service">\n </kendo-pivot-chipmenu-filter>\n </kendo-pivot-chipmenu-container>\n </ng-template>\n ',isInline:!0,components:[{type:Oe,selector:"kendo-pivot-chipmenu-container"},{type:Me,selector:"kendo-pivot-chipmenu-sort",inputs:["chip"]},{type:S,selector:"kendo-pivot-chipmenu-filter",inputs:["chip","expanded","isLast"],outputs:["expand","collapse"]}],directives:[{type:O,selector:"[kendoPivotChipMenuItem]",inputs:["kendoPivotChipMenuItem"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:qe,decorators:[{type:r.Component,args:[{providers:[w,D],selector:"kendo-pivot-chip-menu",template:'\n <span #anchor\n class="k-icon k-i-more-vertical"\n (click)="toggle($event, anchor, template)"\n [tabindex]="tabIndex"\n [attr.title]="chipMenuTitle">\n </span>\n <ng-template #template>\n <kendo-pivot-chipmenu-container\n (keydown.escape)="close()"\n (keydown.enter)="$event.stopImmediatePropagation()">\n <kendo-pivot-chipmenu-sort\n #sortItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="sortItem"\n [service]="service">\n </kendo-pivot-chipmenu-sort>\n\n <kendo-pivot-chipmenu-filter\n #filterItem\n [chip]="chip"\n [kendoPivotChipMenuItem]="filterItem"\n [service]="service">\n </kendo-pivot-chipmenu-filter>\n </kendo-pivot-chipmenu-container>\n </ng-template>\n '}]}],ctorParameters:function(){return[{type:Ie},{type:k},{type:w}]},propDecorators:{chip:[{type:r.Input}],tabIndex:[{type:r.Input}],anchor:[{type:r.ViewChild,args:["anchor",{static:!0}]}]}});Ze.prototype.ngOnInit=function(){var e=this,t=this.element.nativeElement;this.elementType="KENDO-CHIP"===t.nodeName?"chip":"container",this.zone.runOutsideAngular(function(){e.subs.add(e.renderer.listen(t,"mouseenter",e.handleMouseEnter.bind(e))),e.subs.add(e.renderer.listen(t,"mousemove",e.handleMouseMove.bind(e))),e.subs.add(e.renderer.listen(t,"mouseleave",e.handleMouseLeave.bind(e)))})},Ze.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},Ze.prototype.handleMouseEnter=function(e){this.configuratorService.state.dragItem&&("chip"===this.elementType&&(this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropTarget,payload:this.item}),this.targetElement=e.target,this.cue.position(ee(e.target,"before"===this.configuratorService.state.dropDirection))),this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropZone,payload:this.axes}))},Ze.prototype.handleMouseMove=function(e){var t;this.configuratorService.state.dragItem&&"chip"===this.elementType&&this.element.nativeElement&&(t=this.element.nativeElement.getBoundingClientRect(),(e=e.clientX-t.left<t.width/2?"before":"after")!==this.configuratorService.state.dropDirection&&this.targetElement&&this.cue.position(ee(this.targetElement,"before"==e)),this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropDirection,payload:e}))},Ze.prototype.handleMouseLeave=function(){"chip"!==this.elementType&&this.configuratorService.state.dragItem&&this.configuratorService.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDropZone,payload:null})};var We=Ze;function Ze(e,t,n,o,r){this.element=e,this.configuratorService=t,this.cue=n,this.renderer=o,this.zone=r,this.subs=new s.Subscription}We.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:We,deps:[{token:c.ElementRef},{token:I},{token:T},{token:c.Renderer2},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),We.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:We,selector:"[kendoDropTarget]",inputs:{item:"item",axes:"axes"},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:We,decorators:[{type:r.Directive,args:[{selector:"[kendoDropTarget]"}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:I},{type:T},{type:c.Renderer2},{type:c.NgZone}]},propDecorators:{item:[{type:r.Input}],axes:[{type:r.Input}]}});Object.defineProperty(Ue.prototype,"pointerEvents",{get:function(){return this.drag?"none":void 0},enumerable:!1,configurable:!0}),Ue.prototype.ngOnInit=function(){var t=this;this.zone.runOutsideAngular(function(){return t.subs.add(t.draggable.kendoPress.subscribe(function(e){l.isDocumentAvailable()&&(t.cue.create(),t.cue.attach(),t.initialX.current=e.clientX,t.initialY.current=e.clientY)}))}),this.zone.runOutsideAngular(function(){return t.subs.add(t.draggable.kendoDrag.subscribe(function(e){if(l.isDocumentAvailable()){if(Math.abs(t.initialX.current-e.clientX)<10&&Math.abs(t.initialY.current-e.clientY)<10)return;t.element.nativeElement&&(t.element.nativeElement.style.transform="translate("+(e.clientX-t.initialX.current)+"px, "+(e.clientY-t.initialY.current)+"px)")}t.drag=!0,t.service.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.setDragItem,payload:t.item})}))}),this.zone.runOutsideAngular(function(){return t.subs.add(t.draggable.kendoRelease.subscribe(function(){t.drag=!1,t.service.state.dragItem&&(l.isDocumentAvailable()&&(t.element.nativeElement&&(t.element.nativeElement.style.transform=""),t.cue.remove()),t.service.parseConfiguratorState({type:p.PIVOT_CONFIGURATOR_ACTION.drop,payload:t.item}),t.service.state.dragItem=null,t.service.state.dropDirection=null,t.service.state.dropTarget=null,t.service.state.dropZone=null)}))})},Ue.prototype.ngOnDestroy=function(){this.subs.unsubscribe()};var Ke=Ue;function Ue(e,t,n,o,r){this.draggable=e,this.element=t,this.zone=n,this.service=o,this.cue=r,this.touchActions="none",this.initialX={},this.initialY={},this.subs=new s.Subscription}Ke.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ke,deps:[{token:_.DraggableDirective,optional:!0},{token:c.ElementRef},{token:c.NgZone},{token:I},{token:T}],target:c.ɵɵFactoryTarget.Directive}),Ke.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:Ke,selector:"[kendoChipDraggable]",inputs:{item:"item"},host:{properties:{"style.pointerEvents":"this.pointerEvents","style.touch-action":"this.touchActions"}},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Ke,decorators:[{type:r.Directive,args:[{selector:"[kendoChipDraggable]"}]}],ctorParameters:function(){return[{type:_.DraggableDirective,decorators:[{type:r.Optional}]},{type:c.ElementRef},{type:c.NgZone},{type:I},{type:T}]},propDecorators:{pointerEvents:[{type:r.HostBinding,args:["style.pointerEvents"]}],touchActions:[{type:r.HostBinding,args:["style.touch-action"]}],item:[{type:r.Input}]}});M.prototype.ngOnInit=function(){var t=this;this.subs.add(this.dataService.fields.subscribe(function(e){t.fields=e})),this.subs.add(this.dataService.configuredFields.subscribe(function(e){t.originalState=pe(e),t.setState(pe(e)),t.setChecked()})),this.subs.add(this.configuratorService.configuratorStateChange.subscribe(function(e){t.state=e,t.cdr.detectChanges()}))},M.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},M.prototype.getName=function(e){return e.toString()},M.prototype.setState=function(e){this.state=e,this.configuratorService.state=e},M.prototype.messageFor=function(e){return this.localization.get(e)},Object.defineProperty(M.prototype,"columnHierarchies",{get:function(){return this.extractDefaultFields(this.state.columnAxes)},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"rowHierarchies",{get:function(){return this.extractDefaultFields(this.state.rowAxes)},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"measureHierarchies",{get:function(){return this.extractDefaultFields(this.state.measureAxes)},enumerable:!1,configurable:!0}),M.prototype.setChecked=function(e){var n=this,e=(void 0===e&&(e=[]),y(y([],v(this.fields)),v(e))),e=this.getFieldsFlatMap(e).filter(function(t){return y(y(y([],v(n.columnHierarchies)),v(n.rowHierarchies)),v(n.measureHierarchies)).some(function(e){return e===t.uniqueName||e===t.defaultHierarchy})});this.checked=e},M.prototype.isItemChecked=function(t){var e;return this.checked.some(function(e){return t.defaultHierarchy?e.defaultHierarchy===t.defaultHierarchy:e.uniqueName===t.uniqueName})||(null==(e=t.children)?void 0:e.length)&&(null==(e=t.children)?void 0:e.every(function(e){return e.checked}))||null},M.prototype.isSelectable=function(e){var t=!("hierarchyUniqueName"in e||"aggregator"in e);return!Boolean(!t&&!e.aggregator&&!e.measure||2===e.type||"[KPIs]"===e.uniqueName)},M.prototype.handleChildrenLoaded=function(e){"local"!==this.dataService.directive.type&&(e=e.children.map(function(e){return e.dataItem}),this.setChecked(e))},M.prototype.handleCheckedChange=function(e,t){e.target.checked?this.checked=y(y([],v(this.checked)),[t]):(e=this.checked.findIndex(function(e){return e.uniqueName===t.uniqueName}),this.checked.splice(e,1));e={type:"PIVOT_CONFIGURATOR_ACTION_TOGGLE_SELECTION",payload:t};this.configuratorService.parseConfiguratorState(e)},M.prototype.handleSubmit=function(){this.dataService.configuratorFieldChange.emit(this.state)},M.prototype.handleReset=function(){this.setState(pe(this.originalState)),this.setChecked()},M.prototype.getFieldsFlatMap=function(e){var t=this,n=y([],v(e=void 0===e?[]:e));return(e||[]).forEach(function(e){n=n.concat(t.getFieldsFlatMap(e.children))}),n},M.prototype.extractDefaultFields=function(e){void 0===e&&(e=[]);var t=new Set;return e.forEach(function(e){t.add(String(e.name))}),Array.from(t)};var $e=M;function M(e,t,n,o){var r=this;this.dataService=e,this.localization=t,this.configuratorService=n,this.cdr=o,this.hostClass=!0,this.horizontal=!1,this.sort=new Array,this.checked=[],this.subs=new s.Subscription,this.hasChildren=function(e){return!("hierarchyUniqueName"in e||"aggregator"in e)},this.children=function(e){return"olap"===r.dataService.directive.type?s.from(r.dataService.directive.fetchChildren(e,r.fields)).pipe(R.mergeMap(function(e){return s.of(e)})):s.of(e.children)}}$e.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:$e,deps:[{token:b},{token:d.LocalizationService},{token:I},{token:c.ChangeDetectorRef}],target:c.ɵɵFactoryTarget.Component}),$e.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:$e,selector:"kendo-pivotgrid-configurator",inputs:{horizontal:"horizontal",sort:"sort",filter:"filter"},host:{properties:{"class.k-pivotgrid-configurator":"this.hostClass"}},providers:[I,T,Ie],ngImport:c,template:'\n <div \n class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"\n [ngClass]="{\n \'k-pivotgrid-configurator-horizontal\': horizontal,\n \'k-pivotgrid-configurator-vertical\': !horizontal\n }"\n >\n <div class="k-pivotgrid-configurator-header">\n <div class="k-pivotgrid-configurator-header-text">{{messageFor(\'configuratorHeaderText\')}}</div>\n </div>\n\n <div class="k-pivotgrid-configurator-content">\n <div class="k-form" [class.k-form-horizontal]="horizontal">\n <div class="k-form-field-wrapper">\n <div class="k-form-field">\n <span class="k-label">{{messageFor(\'configuratorFieldsText\')}}</span>\n </div>\n\n <div class="k-form-field">\n <div class="k-fields-list-wrapper">\n <kendo-treeview\n [nodes]="fields"\n textField="caption"\n [children]="children"\n [hasChildren]="hasChildren"\n kendoTreeViewExpandable\n (childrenLoaded)="handleChildrenLoaded($event)"\n >\n <ng-template kendoTreeViewNodeTemplate let-dataItem>\n <input kendoCheckBox\n *ngIf="isSelectable(dataItem)"\n type="checkbox" \n kendoCheckBox\n [checked]="isItemChecked(dataItem)"\n (change)="handleCheckedChange($event, dataItem)"/>\n {{ dataItem.caption }}\n </ng-template>\n </kendo-treeview>\n\n </div>\n </div>\n </div>\n\n <div *ngIf="horizontal; else verticalTemplate" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>\n </div>\n\n <ng-template #verticalTemplate>\n <div class="k-form-field" kendoDropTarget axes="columnAxes">\n <span class="k-label">{{messageFor(\'configuratorColumnsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"\n kendoDropTarget\n axes="columnAxes"\n >\n <kendo-chip *ngFor="let item of state.columnAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="columnAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noColumnAxes>\n <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor(\'configuratorEmptyColumnsText\')}}</div>\n </ng-template>\n\n <div class="k-form-field" kendoDropTarget axes="rowAxes">\n <span class="k-label">{{messageFor(\'configuratorRowsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"\n kendoDropTarget\n axes="rowAxes"\n >\n <kendo-chip *ngFor="let item of state.rowAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="rowAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noRowAxes>\n <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor(\'configuratorEmptyRowsText\')}}</div>\n </ng-template>\n </ng-template>\n\n <div *ngIf="horizontal; else elseTpl2" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="elseTpl2"></ng-container>\n </div>\n\n <ng-template #elseTpl2>\n <div class="k-form-field" kendoDropTarget axes="measureAxes">\n <span class="k-label">{{messageFor(\'configuratorValuesText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"\n kendoDropTarget\n axes="measureAxes"\n >\n <kendo-chip *ngFor="let item of state.measureAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="measureAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noMeasureAxes>\n <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor(\'configuratorEmptyMeasuresText\')}}</div>\n </ng-template>\n </ng-template>\n \n </div>\n </div>\n <div class="k-pivotgrid-configurator-actions k-actions k-hstack k-justify-content-end">\n <button kendoButton type="button" (click)="handleReset()">{{messageFor(\'configuratorCancelButtonText\')}}</button>\n <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor(\'configuratorApplyButtonText\')}}</button>\n </div>\n </div>\n ',isInline:!0,components:[{type:o.TreeViewComponent,selector:"kendo-treeview",inputs:["filterInputPlaceholder","expandDisabledNodes","animate","nodeTemplate","loadMoreButtonTemplate","trackBy","nodes","textField","hasChildren","isChecked","isDisabled","isExpanded","isSelected","isVisible","navigable","children","loadOnDemand","filterable","filter","size","disableParentNodesOnly"],outputs:["childrenLoaded","blur","focus","expand","collapse","nodeDragStart","nodeDrag","filterStateChange","nodeDrop","nodeDragEnd","addItem","removeItem","checkedChange","selectionChange","filterChange","nodeClick","nodeDblClick"],exportAs:["kendoTreeView"]},{type:m.ChipListComponent,selector:"kendo-chiplist, kendo-chip-list",inputs:["selection","size"],outputs:["selectedChange","remove"]},{type:m.ChipComponent,selector:"kendo-chip",inputs:["label","icon","iconClass","avatarClass","selected","removable","removeIcon","disabled","size","rounded","fillMode","themeColor"],outputs:["remove","contentClick"]},{type:qe,selector:"kendo-pivot-chip-menu",inputs:["chip","tabIndex"]}],directives:[{type:u.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:o.ExpandDirective,selector:"[kendoTreeViewExpandable]",inputs:["isExpanded","expandBy","expandOnFilter","expandedKeys"],outputs:["expandedKeysChange"]},{type:o.NodeTemplateDirective,selector:"[kendoTreeViewNodeTemplate]"},{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:h.CheckBoxDirective,selector:"input[kendoCheckBox]",inputs:["size","rounded"]},{type:u.NgTemplateOutlet,selector:"[ngTemplateOutlet]",inputs:["ngTemplateOutletContext","ngTemplateOutlet"]},{type:We,selector:"[kendoDropTarget]",inputs:["item","axes"]},{type:u.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:Ke,selector:"[kendoChipDraggable]",inputs:["item"]},{type:_.DraggableDirective,selector:"[kendoDraggable]",inputs:["enableDrag"],outputs:["kendoPress","kendoDrag","kendoRelease"]},{type:m.ButtonDirective,selector:"button[kendoButton], span[kendoButton]",inputs:["toggleable","togglable","selected","tabIndex","icon","iconClass","imageUrl","disabled","size","rounded","fillMode","themeColor","role","primary","look"],outputs:["selectedChange","click"],exportAs:["kendoButton"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:$e,decorators:[{type:r.Component,args:[{selector:"kendo-pivotgrid-configurator",providers:[I,T,Ie],template:'\n <div \n class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"\n [ngClass]="{\n \'k-pivotgrid-configurator-horizontal\': horizontal,\n \'k-pivotgrid-configurator-vertical\': !horizontal\n }"\n >\n <div class="k-pivotgrid-configurator-header">\n <div class="k-pivotgrid-configurator-header-text">{{messageFor(\'configuratorHeaderText\')}}</div>\n </div>\n\n <div class="k-pivotgrid-configurator-content">\n <div class="k-form" [class.k-form-horizontal]="horizontal">\n <div class="k-form-field-wrapper">\n <div class="k-form-field">\n <span class="k-label">{{messageFor(\'configuratorFieldsText\')}}</span>\n </div>\n\n <div class="k-form-field">\n <div class="k-fields-list-wrapper">\n <kendo-treeview\n [nodes]="fields"\n textField="caption"\n [children]="children"\n [hasChildren]="hasChildren"\n kendoTreeViewExpandable\n (childrenLoaded)="handleChildrenLoaded($event)"\n >\n <ng-template kendoTreeViewNodeTemplate let-dataItem>\n <input kendoCheckBox\n *ngIf="isSelectable(dataItem)"\n type="checkbox" \n kendoCheckBox\n [checked]="isItemChecked(dataItem)"\n (change)="handleCheckedChange($event, dataItem)"/>\n {{ dataItem.caption }}\n </ng-template>\n </kendo-treeview>\n\n </div>\n </div>\n </div>\n\n <div *ngIf="horizontal; else verticalTemplate" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="verticalTemplate"></ng-container>\n </div>\n\n <ng-template #verticalTemplate>\n <div class="k-form-field" kendoDropTarget axes="columnAxes">\n <span class="k-label">{{messageFor(\'configuratorColumnsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"\n kendoDropTarget\n axes="columnAxes"\n >\n <kendo-chip *ngFor="let item of state.columnAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="columnAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noColumnAxes>\n <div class="k-settings-description" kendoDropTarget axes="columnAxes">{{messageFor(\'configuratorEmptyColumnsText\')}}</div>\n </ng-template>\n\n <div class="k-form-field" kendoDropTarget axes="rowAxes">\n <span class="k-label">{{messageFor(\'configuratorRowsText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"\n kendoDropTarget\n axes="rowAxes"\n >\n <kendo-chip *ngFor="let item of state.rowAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="rowAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n\n <kendo-pivot-chip-menu\n [chip]="item">\n </kendo-pivot-chip-menu>\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noRowAxes>\n <div class="k-settings-description" kendoDropTarget axes="rowAxes">{{messageFor(\'configuratorEmptyRowsText\')}}</div>\n </ng-template>\n </ng-template>\n\n <div *ngIf="horizontal; else elseTpl2" class="k-form-field-wrapper">\n <ng-container *ngTemplateOutlet="elseTpl2"></ng-container>\n </div>\n\n <ng-template #elseTpl2>\n <div class="k-form-field" kendoDropTarget axes="measureAxes">\n <span class="k-label">{{messageFor(\'configuratorValuesText\')}}</span>\n </div>\n\n <kendo-chiplist\n *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"\n kendoDropTarget\n axes="measureAxes"\n >\n <kendo-chip *ngFor="let item of state.measureAxes"\n kendoChipDraggable\n kendoDraggable\n kendoDropTarget\n [item]="item"\n axes="measureAxes"\n rounded="full"\n [removable]="true"\n >\n {{ getName(item.name) }}\n </kendo-chip>\n </kendo-chiplist>\n\n <ng-template #noMeasureAxes>\n <div class="k-settings-description" kendoDropTarget axes="measureAxes">{{messageFor(\'configuratorEmptyMeasuresText\')}}</div>\n </ng-template>\n </ng-template>\n \n </div>\n </div>\n <div class="k-pivotgrid-configurator-actions k-actions k-hstack k-justify-content-end">\n <button kendoButton type="button" (click)="handleReset()">{{messageFor(\'configuratorCancelButtonText\')}}</button>\n <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor(\'configuratorApplyButtonText\')}}</button>\n </div>\n </div>\n '}]}],ctorParameters:function(){return[{type:b},{type:d.LocalizationService},{type:I},{type:c.ChangeDetectorRef}]},propDecorators:{hostClass:[{type:r.HostBinding,args:["class.k-pivotgrid-configurator"]}],horizontal:[{type:r.Input}],sort:[{type:r.Input}],filter:[{type:r.Input}]}});$(Ye,Xe=t.ComponentMessages);var Xe,o=Ye;function Ye(){return null!==Xe&&Xe.apply(this,arguments)||this}o.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:o,deps:null,target:c.ɵɵFactoryTarget.Directive}),o.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:o,inputs:{fieldMenuFilterItemLabel:"fieldMenuFilterItemLabel",fieldMenuSortAscendingItemLabel:"fieldMenuSortAscendingItemLabel",fieldMenuSortDescendingItemLabel:"fieldMenuSortDescendingItemLabel",filterInputLabel:"filterInputLabel",filterOperatorsDropDownLabel:"filterOperatorsDropDownLabel",filterEqOperator:"filterEqOperator",filterNotEqOperator:"filterNotEqOperator",filterIsNullOperator:"filterIsNullOperator",filterIsNotNullOperator:"filterIsNotNullOperator",filterIsEmptyOperator:"filterIsEmptyOperator",filterIsNotEmptyOperator:"filterIsNotEmptyOperator",filterStartsWithOperator:"filterStartsWithOperator",filterContainsOperator:"filterContainsOperator",filterNotContainsOperator:"filterNotContainsOperator",filterEndsWithOperator:"filterEndsWithOperator",filterFilterButton:"filterFilterButton",filterClearButton:"filterClearButton",loading:"loading",emptyCellLabel:"emptyCellLabel",configuratorButtonText:"configuratorButtonText",configuratorHeaderText:"configuratorHeaderText",configuratorFieldsText:"configuratorFieldsText",configuratorColumnsText:"configuratorColumnsText",configuratorRowsText:"configuratorRowsText",configuratorValuesText:"configuratorValuesText",configuratorCancelButtonText:"configuratorCancelButtonText",configuratorApplyButtonText:"configuratorApplyButtonText",configuratorEmptyRowsText:"configuratorEmptyRowsText",configuratorEmptyColumnsText:"configuratorEmptyColumnsText",configuratorEmptyMeasuresText:"configuratorEmptyMeasuresText",chipMenuIconTitle:"chipMenuIconTitle"},usesInheritance:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:o,decorators:[{type:r.Directive}],propDecorators:{fieldMenuFilterItemLabel:[{type:r.Input}],fieldMenuSortAscendingItemLabel:[{type:r.Input}],fieldMenuSortDescendingItemLabel:[{type:r.Input}],filterInputLabel:[{type:r.Input}],filterOperatorsDropDownLabel:[{type:r.Input}],filterEqOperator:[{type:r.Input}],filterNotEqOperator:[{type:r.Input}],filterIsNullOperator:[{type:r.Input}],filterIsNotNullOperator:[{type:r.Input}],filterIsEmptyOperator:[{type:r.Input}],filterIsNotEmptyOperator:[{type:r.Input}],filterStartsWithOperator:[{type:r.Input}],filterContainsOperator:[{type:r.Input}],filterNotContainsOperator:[{type:r.Input}],filterEndsWithOperator:[{type:r.Input}],filterFilterButton:[{type:r.Input}],filterClearButton:[{type:r.Input}],loading:[{type:r.Input}],emptyCellLabel:[{type:r.Input}],configuratorButtonText:[{type:r.Input}],configuratorHeaderText:[{type:r.Input}],configuratorFieldsText:[{type:r.Input}],configuratorColumnsText:[{type:r.Input}],configuratorRowsText:[{type:r.Input}],configuratorValuesText:[{type:r.Input}],configuratorCancelButtonText:[{type:r.Input}],configuratorApplyButtonText:[{type:r.Input}],configuratorEmptyRowsText:[{type:r.Input}],configuratorEmptyColumnsText:[{type:r.Input}],configuratorEmptyMeasuresText:[{type:r.Input}],chipMenuIconTitle:[{type:r.Input}]}});$(et,Qe=o);var Qe,Je=et;function et(e){var t=Qe.call(this)||this;return t.service=e,t}Je.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Je,deps:[{token:d.LocalizationService}],target:c.ɵɵFactoryTarget.Directive}),Je.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:Je,selector:"[kendoPivotGridLocalizedMessages]",providers:[{provide:o,useExisting:r.forwardRef(function(){return Je})}],usesInheritance:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:Je,decorators:[{type:r.Directive,args:[{providers:[{provide:o,useExisting:r.forwardRef(function(){return Je})}],selector:"[kendoPivotGridLocalizedMessages]"}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});var tt={type:"converging-spinner",themeColor:"primary",size:"large"},nt={position:"right",horizontal:!1},h=(Object.defineProperty(P.prototype,"rightPositionClass",{get:function(){var e;return"right"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"leftPositionClass",{get:function(){var e;return"left"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"bottomPositionClass",{get:function(){var e;return"bottom"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"topPositionClass",{get:function(){var e;return"top"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"dir",{get:function(){return this.direction},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"loaderSettings",{get:function(){return this._loaderSettings},set:function(e){this._loaderSettings=Object.assign({},tt,e)},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"loadingText",{get:function(){return this.localization.get("loading")},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"configuratorSettings",{get:function(){return this.configurator&&Object.assign({},nt,this.configurator)},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"aggregateData",{get:function(){return ue(this.dataService.aggregateData)},enumerable:!1,configurable:!0}),P.prototype.ngAfterViewInit=function(){var r=this;l.isDocumentAvailable()&&this.zone.runOutsideAngular(function(){var e=r.rowHeadersTable.nativeElement.firstElementChild,t=new ResizeObserver(function(){return r.resizeContainer("Columns",e)}),n=(t.observe(e),r.colHeadersTable.nativeElement.firstElementChild),o=new ResizeObserver(function(){return r.resizeContainer("Rows",n)});o.observe(n),r.resizeObservers=[t,o],r.subs.add(s.fromEvent(e,"wheel").pipe(R.merge(s.fromEvent(n,"wheel"),s.fromEvent(r.valuesTable.nativeElement,"scroll"))).subscribe(function(e){return r.handleScroll(e)})),r.navigable&&r.initNavigation()})},P.prototype.ngAfterContentInit=function(){var t=this;this.subs.add(this.dataService.loading.subscribe(function(e){return t.loading=e}))},P.prototype.ngOnChanges=function(e){l.isChanged("navigable",e)&&(this.navigable?this.initNavigation():this.stopNavigation())},P.prototype.ngOnDestroy=function(){this.resizeObservers.forEach(function(e){return e.disconnect()}),this.subs.unsubscribe(),this.stopNavigation()},P.prototype.messageFor=function(e){return this.localization.get(e)},P.prototype.initNavigation=function(){var e=this,t=(this.stopNavigation(),this.navigation=new p.PivotGridNavigation({tabIndex:0}),this.navigation.start(this.hostEl.nativeElement),this.navigation.first);t&&t.setAttribute("tabindex","0"),this.subs.add(this.dataService.directive.expandChange.pipe(R.merge(this.dataService.directive.configurationChange)).subscribe(function(){return e.zone.runOutsideAngular(function(){setTimeout(function(){return e.navigation.update()})})}))},P.prototype.stopNavigation=function(){var e;this.navigation&&((e=this.navigation.elements.find(function(e){return e.hasAttribute("tabindex")}))&&this.renderer.removeAttribute(e,"tabindex"),this.navigation.stop())},P);function P(e,t,n,o,r,i){var a=this;this.hostEl=e,this.zone=t,this.dataService=n,this.localization=o,this.renderer=r,this.hostClass=!0,this.ariaRole="grid",this.columnHeadersWidth=200,this.navigable=!1,this.resizeObservers=[],this._loaderSettings=tt,this.subs=new s.Subscription,this.rtl=!1,this.resizeContainer=function(e,t){var n=a.table.nativeElement,o="Rows"===e?"offsetHeight":"offsetWidth";n.style["gridTemplate"+e]="",n.style["gridTemplate"+e]=t[o]+"px 1fr"},this.handleScroll=function(e){var t,n,o,r,i;e.target===a.valuesTable.nativeElement?(t=e.target,n=[a.rowHeadersTable.nativeElement,a.colHeadersTable.nativeElement],o=t.scrollTop,t=t.scrollLeft,r=n[0].scrollTop,i=t!==n[1].scrollLeft,o!==r?n[0].scrollTop=o:i&&(n[1].scrollLeft=t)):e.target.closest(".k-pivotgrid-row-headers")?J(e,[a.valuesTable.nativeElement,a.rowHeadersTable.nativeElement],"scrollTop","Y"):e.target.closest(".k-pivotgrid-column-headers")&&J(e,[a.valuesTable.nativeElement,a.colHeadersTable.nativeElement],"scrollLeft","X")},V.validatePackage(K),this.subs.add(this.localization.changes.subscribe(function(e){e=e.rtl;a.rtl=e,a.direction=a.rtl?"rtl":"ltr"})),n.wrapper=e.nativeElement}h.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:h,deps:[{token:c.ElementRef},{token:c.NgZone},{token:b},{token:d.LocalizationService},{token:c.Renderer2},{token:_.ScrollbarWidthService}],target:c.ɵɵFactoryTarget.Component}),h.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:h,selector:"kendo-pivotgrid",inputs:{loaderSettings:"loaderSettings",configurator:"configurator",columnHeadersWidth:"columnHeadersWidth",navigable:"navigable"},host:{properties:{"class.k-d-flex":"this.hostClass","class.k-pos-relative":"this.hostClass","class.k-flex-row":"this.rightPositionClass","class.k-flex-row-reverse":"this.leftPositionClass","class.k-flex-column":"this.bottomPositionClass","class.k-flex-column-reverse":"this.topPositionClass","attr.dir":"this.dir","attr.role":"this.ariaRole"}},providers:[b,t.LocalizationService,k,{provide:t.L10N_PREFIX,useValue:"kendo.pivotgrid"}],viewQueries:[{propertyName:"colHeadersTable",first:!0,predicate:["colHeadersTable"],descendants:!0,read:r.ElementRef},{propertyName:"rowHeadersTable",first:!0,predicate:["rowHeadersTable"],descendants:!0,read:r.ElementRef},{propertyName:"valuesTable",first:!0,predicate:["valuesTable"],descendants:!0,read:r.ElementRef},{propertyName:"table",first:!0,predicate:["table"],descendants:!0,read:r.ElementRef}],usesOnChanges:!0,ngImport:c,template:'\n <ng-container kendoPivotGridLocalizedMessages\n i18n-loading="kendo.pivotgrid.loading|The loading text"\n loading="Loading"\n \n i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"\n emptyCellLabel="PivotGrid Empty Cell"\n \n i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"\n fieldMenuFilterItemLabel="Filter"\n\n i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"\n fieldMenuSortAscendingItemLabel="Sort ascending"\n\n i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"\n fieldMenuSortDescendingItemLabel="Sort descending"\n\n i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"\n filterInputLabel="{{ \'{fields} Filter\' }}"\n\n i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"\n filterOperatorsDropDownLabel="{{ \'{fields} Filter Operators\' }}"\n\n i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"\n filterFilterButton="Filter"\n\n i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"\n filterClearButton="Clear"\n\n i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"\n configuratorButtonText="Change Settings"\n\n i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"\n configuratorHeaderText="Settings"\n\n i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"\n configuratorFieldsText="Fields"\n\n i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"\n configuratorColumnsText="Columns"\n\n i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"\n configuratorRowsText="Rows"\n\n i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"\n configuratorValuesText="Values"\n\n i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"\n configuratorCancelButtonText="Cancel"\n\n i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"\n configuratorApplyButtonText="Apply"\n \n i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"\n configuratorEmptyRowsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"\n configuratorEmptyColumnsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"\n configuratorEmptyMeasuresText="Select some fields to begin setup"\n \n i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"\n chipMenuIconTitle="{{ \'{fieldName} Field Menu\' }}"></ng-container>\n\n <div #table class="k-pivotgrid">\n <span class="k-pivotgrid-empty-cell">\n <span class="k-sr-only">{{messageFor(\'emptyCellLabel\')}}</span>\n </span>\n <kendo-pivotgrid-table\n #colHeadersTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-column-headers"\n tableType="columnHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #rowHeadersTable\n class="k-pivotgrid-row-headers"\n tableType="rowHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #valuesTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-values"\n tableType="values"></kendo-pivotgrid-table>\n \n <div *ngIf="loading" class="k-loader">\n <kendo-loader\n [type]="loaderSettings?.type"\n [themeColor]="loaderSettings?.themeColor"\n [size]="loaderSettings?.size"\n >\n </kendo-loader>\n <span class="k-loading-text">{{ loadingText }}</span>\n </div>\n </div>\n\n <kendo-pivotgrid-configurator\n *ngIf="showConfigurator"\n [horizontal]="configuratorSettings.horizontal">\n </kendo-pivotgrid-configurator>\n\n <div *ngIf="configurator"\n class="k-pivotgrid-configurator-button"\n (click)="showConfigurator = !showConfigurator">\n <span>{{messageFor(\'configuratorButtonText\')}}<span class="k-icon k-i-gear k-color-inherit"></span>\n </span>\n </div>\n ',isInline:!0,styles:["\n /** TODO: Remove if added to themes */\n div.k-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "],components:[{type:C,selector:"kendo-pivotgrid-table",inputs:["tableType","colWidth"]},{type:g.LoaderComponent,selector:"kendo-loader",inputs:["type","themeColor","size"]},{type:$e,selector:"kendo-pivotgrid-configurator",inputs:["horizontal","sort","filter"]}],directives:[{type:Je,selector:"[kendoPivotGridLocalizedMessages]"},{type:u.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:h,decorators:[{type:r.Component,args:[{selector:"kendo-pivotgrid",providers:[b,t.LocalizationService,k,{provide:t.L10N_PREFIX,useValue:"kendo.pivotgrid"}],template:'\n <ng-container kendoPivotGridLocalizedMessages\n i18n-loading="kendo.pivotgrid.loading|The loading text"\n loading="Loading"\n \n i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"\n emptyCellLabel="PivotGrid Empty Cell"\n \n i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"\n fieldMenuFilterItemLabel="Filter"\n\n i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"\n fieldMenuSortAscendingItemLabel="Sort ascending"\n\n i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"\n fieldMenuSortDescendingItemLabel="Sort descending"\n\n i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"\n filterInputLabel="{{ \'{fields} Filter\' }}"\n\n i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"\n filterOperatorsDropDownLabel="{{ \'{fields} Filter Operators\' }}"\n\n i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"\n filterEqOperator="Is equal to"\n\n i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"\n filterNotEqOperator="Is not equal to"\n\n i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"\n filterIsNullOperator="Is null"\n\n i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"\n filterIsNotNullOperator="Is not null"\n\n i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"\n filterIsEmptyOperator="Is empty"\n\n i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"\n filterIsNotEmptyOperator="Is not empty"\n\n i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"\n filterStartsWithOperator="Starts with"\n\n i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"\n filterContainsOperator="Contains"\n\n i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"\n filterNotContainsOperator="Does not contain"\n\n i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"\n filterEndsWithOperator="Ends with"\n\n i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"\n filterFilterButton="Filter"\n\n i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"\n filterClearButton="Clear"\n\n i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"\n configuratorButtonText="Change Settings"\n\n i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"\n configuratorHeaderText="Settings"\n\n i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"\n configuratorFieldsText="Fields"\n\n i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"\n configuratorColumnsText="Columns"\n\n i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"\n configuratorRowsText="Rows"\n\n i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"\n configuratorValuesText="Values"\n\n i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"\n configuratorCancelButtonText="Cancel"\n\n i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"\n configuratorApplyButtonText="Apply"\n \n i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"\n configuratorEmptyRowsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"\n configuratorEmptyColumnsText="Select some fields to begin setup"\n \n i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"\n configuratorEmptyMeasuresText="Select some fields to begin setup"\n \n i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"\n chipMenuIconTitle="{{ \'{fieldName} Field Menu\' }}"></ng-container>\n\n <div #table class="k-pivotgrid">\n <span class="k-pivotgrid-empty-cell">\n <span class="k-sr-only">{{messageFor(\'emptyCellLabel\')}}</span>\n </span>\n <kendo-pivotgrid-table\n #colHeadersTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-column-headers"\n tableType="columnHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #rowHeadersTable\n class="k-pivotgrid-row-headers"\n tableType="rowHeader"></kendo-pivotgrid-table>\n <kendo-pivotgrid-table\n #valuesTable\n [colWidth]="columnHeadersWidth"\n class="k-pivotgrid-values"\n tableType="values"></kendo-pivotgrid-table>\n \n <div *ngIf="loading" class="k-loader">\n <kendo-loader\n [type]="loaderSettings?.type"\n [themeColor]="loaderSettings?.themeColor"\n [size]="loaderSettings?.size"\n >\n </kendo-loader>\n <span class="k-loading-text">{{ loadingText }}</span>\n </div>\n </div>\n\n <kendo-pivotgrid-configurator\n *ngIf="showConfigurator"\n [horizontal]="configuratorSettings.horizontal">\n </kendo-pivotgrid-configurator>\n\n <div *ngIf="configurator"\n class="k-pivotgrid-configurator-button"\n (click)="showConfigurator = !showConfigurator">\n <span>{{messageFor(\'configuratorButtonText\')}}<span class="k-icon k-i-gear k-color-inherit"></span>\n </span>\n </div>\n ',styles:["\n /** TODO: Remove if added to themes */\n div.k-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "]}]}],ctorParameters:function(){return[{type:c.ElementRef},{type:c.NgZone},{type:b},{type:d.LocalizationService},{type:c.Renderer2},{type:_.ScrollbarWidthService}]},propDecorators:{hostClass:[{type:r.HostBinding,args:["class.k-d-flex"]},{type:r.HostBinding,args:["class.k-pos-relative"]}],rightPositionClass:[{type:r.HostBinding,args:["class.k-flex-row"]}],leftPositionClass:[{type:r.HostBinding,args:["class.k-flex-row-reverse"]}],bottomPositionClass:[{type:r.HostBinding,args:["class.k-flex-column"]}],topPositionClass:[{type:r.HostBinding,args:["class.k-flex-column-reverse"]}],dir:[{type:r.HostBinding,args:["attr.dir"]}],ariaRole:[{type:r.HostBinding,args:["attr.role"]}],colHeadersTable:[{type:r.ViewChild,args:["colHeadersTable",{read:r.ElementRef}]}],rowHeadersTable:[{type:r.ViewChild,args:["rowHeadersTable",{read:r.ElementRef}]}],valuesTable:[{type:r.ViewChild,args:["valuesTable",{read:r.ElementRef}]}],table:[{type:r.ViewChild,args:["table",{read:r.ElementRef}]}],loaderSettings:[{type:r.Input}],configurator:[{type:r.Input}],columnHeadersWidth:[{type:r.Input}],navigable:[{type:r.Input}]}});var ot,rt=function(e,t,n,o,r){this.columnAxes=e,this.rowAxes=t,this.measureAxes=n,this.sort=o,this.filter=r},it=($(at,ot=l.PreventableEvent),at);function at(e){var t=ot.call(this)||this;return Object.assign(t,e),t}$(pt,st=l.PreventableEvent);var st,lt=pt;function pt(e){var t=st.call(this)||this;return Object.assign(t,e),t}Object.defineProperty(ct.prototype,"state",{get:function(){return new rt(this.columnAxes,this.rowAxes,this.measureAxes,this.sort,this.filter)},enumerable:!1,configurable:!0}),ct.prototype.ngOnInit=function(){var o=this;this.loadData(this.state),this.loadFields(),this.subs.add(this.dataService.expandedStateChange.subscribe(function(n){o.zone.run(function(){var e="columnHeader"===n.tableType,t=e?"columnAxes":"rowAxes",e=p.toTree((e?o.dataService.columns:o.dataService.rows||[]).slice());o.updateHeaders(t,e,n.cell.path)})})),this.subs.add(this.dataService.configuratorFieldChange.subscribe(function(t){o.zone.run(function(){if(l.hasObservers(o.configurationChange)){var e=new lt(t);if(o.configurationChange.emit(e),e.isDefaultPrevented())return}o.dataService.configuredFields.next({columnAxes:t.columnAxes,rowAxes:t.rowAxes,measureAxes:t.measureAxes,sort:t.sort,filter:t.filter}),o.loadData(t)})})),this.subs.add(this.dataService.valuesRows.subscribe(function(e){o.zone.run(function(){o.dataService.aggregateData=e})})),this.dataService.directive=this},ct.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},ct.prototype.updateDataServiceFields=function(){this.dataService.normalizedData=this.dataState.data,this.dataService.rows=this.dataState.rows,this.dataService.columns=this.dataState.columns,this.dataService.updateRowsAndCols()},ct.prototype.updateConfiguratorFields=function(){this.dataService.fields.next(this.configuratorFields),this.dataService.configuredFields.next({columnAxes:this.columnAxes,rowAxes:this.rowAxes,measureAxes:this.measureAxes,sort:this.sort,filter:this.filter})},ct.prototype.updateHeaders=function(e,t,n){n={type:p.HEADERS_ACTION.toggle,payload:n},n=p.headersReducer(this[e].slice(),Object.assign(Object.assign({},n),{tree:t}));if(l.hasObservers(this.expandChange)){t=Object.assign(Object.assign({},this.state),((t={})[e]=n,t)),t=new it(t);if(this.expandChange.emit(t),t.isDefaultPrevented())return}this[e]=n,this.loadData(this.state)};m=ct;function ct(e,t){this.dataService=e,this.zone=t,this.columnAxes=[],this.rowAxes=[],this.measureAxes=[],this.sort=[],this.expandChange=new r.EventEmitter,this.configurationChange=new r.EventEmitter,this.dataLoaded=new r.EventEmitter,this.subs=new s.Subscription}m.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,deps:[{token:b},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),m.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:m,selector:"kendo-base-binding-directive",inputs:{columnAxes:"columnAxes",rowAxes:"rowAxes",measureAxes:"measureAxes",sort:"sort",filter:"filter"},outputs:{expandChange:"expandChange",configurationChange:"configurationChange",dataLoaded:"dataLoaded"},ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,decorators:[{type:r.Directive,args:[{selector:"kendo-base-binding-directive"}]}],ctorParameters:function(){return[{type:b},{type:c.NgZone}]},propDecorators:{columnAxes:[{type:r.Input}],rowAxes:[{type:r.Input}],measureAxes:[{type:r.Input}],sort:[{type:r.Input}],filter:[{type:r.Input}],expandChange:[{type:r.Output}],configurationChange:[{type:r.Output}],dataLoaded:[{type:r.Output}]}});var dt,ut={dataField:"aggregate",columnsData:"columns"},g=($(gt,dt=m),gt.prototype.ngOnChanges=function(e){l.anyChanged(["data","dimensions","columnAxes","rowAxes","measureAxes","measures"],e)&&this.loadData(this.state)},gt.prototype.fetchChildren=function(e){return e.children},gt.prototype.loadFields=function(){this.configuratorFields=p.createFlatSchemaDimensions(this.dimensions,this.measures),this.updateConfiguratorFields()},gt.prototype.loadData=function(e){var n=this,t=e.columnAxes,o=e.rowAxes,r=e.measureAxes,i=e.sort,e=e.filter,a=this.getRootAxes(t),s=this.getRootAxes(o),a=a.split("&").map(this.createAxisSettings),s=s.split("&").map(this.createAxisSettings),r=r.map(function(t){return n.measures.find(function(e){return String(e.name)===String(t.name)})}).filter(Boolean),e=p.createDataTree(this.data,s,a,r,ut,e);this.dataState=p.createLocalDataState({dataTree:e,rowSettings:s,columnSettings:a,rowAxes:o,columnAxes:t,measures:r,sort:i,fields:ut}),this.updateDataServiceFields()},gt.prototype.getRootAxes=function(e){return Array.from(p.rootFields(e).keys()).join("&")},gt);function gt(e,t){var n=dt.call(this,e,t)||this;return n.type="local",n.createAxisSettings=function(e){return Object.assign({key:e},n.dimensions[e])},n}g.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:g,deps:[{token:b},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),g.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:g,selector:"[kendoPivotLocalBinding]",inputs:{data:["kendoPivotLocalBinding","data"],dimensions:"dimensions",measures:"measures"},exportAs:["kendoPivotLocalBinding"],usesInheritance:!0,usesOnChanges:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:g,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotLocalBinding]",exportAs:"kendoPivotLocalBinding"}]}],ctorParameters:function(){return[{type:b},{type:c.NgZone}]},propDecorators:{data:[{type:r.Input,args:["kendoPivotLocalBinding"]}],dimensions:[{type:r.Input}],measures:[{type:r.Input}]}});$(N,mt=m),N.prototype.ngOnChanges=function(e){l.anyChanged(["url","cube","catalog","columnAxes","rowAxes","measureAxes"],e)&&(this.loadData(this.state),this.loadFields())},N.prototype.loadData=function(e){var t=this,n=e.columnAxes,o=e.rowAxes,r=e.measureAxes,i=e.sort,e=e.filter,n=(this.dataService.loading.next(!0),{connection:{catalog:this.catalog,cube:this.cube},columnAxes:n,rowAxes:o,measureAxes:r,sort:i,filter:e});p.fetchData({url:this.url},pe(n)).then(p.createDataState).then(function(e){t.dataState=e,t.updateDataServiceFields(),t.dataService.loading.next(!1)})},N.prototype.loadFields=function(){var t=this,e={connection:{catalog:this.catalog,cube:this.cube},restrictions:{catalogName:this.catalog,cubeName:this.cube},command:"schemaDimensions"};p.fetchDiscover({url:this.url},e).then(function(e){p.addKPI(e),t.configuratorFields=e,t.updateConfiguratorFields()})},N.prototype.updateFields=function(r,i){return X(this,void 0,void 0,function(){var t,n,o;return Y(this,function(e){switch(e.label){case 0:return(t=i.slice(),(t=this.getField(t,r))&&"[KPIs]"===t.uniqueName)?(n=this.normalizeKPIs,[4,this.loadKPIs()]):[3,2];case 1:return o=n.apply(this,[e.sent()]),t.children=o,[3,5];case 2:return t&&"kpi"===t.type?(t.children=p.buildKPIMeasures(t),[3,5]):[3,3];case 3:return!t||t.children?[3,5]:[4,this.loadAvailableFields(t)];case 4:o=e.sent(),t.children=o,e.label=5;case 5:return[2,null==t?void 0:t.children]}})})},N.prototype.fetchChildren=function(e,t){return this.updateFields(e,t)},N.prototype.normalizeKPIs=function(e){for(var t=0,n=e.length;t<n;t++)e[t].uniqueName=e[t].name,e[t].type="kpi";return e},N.prototype.getField=function(e,t){void 0===e&&(e=[]);for(var n=0;n<e.length;n++){var o=e[n];if(o.uniqueName===t.uniqueName)return o;o=this.getField(o.children,t);if(null!==o)return o}return null},N.prototype.loadKPIs=function(){return X(this,void 0,void 0,function(){var t;return Y(this,function(e){return t={connection:{catalog:this.catalog,cube:this.cube},restrictions:{catalogName:this.catalog,cubeName:this.cube},command:"schemaKPIs"},[2,p.fetchDiscover({url:this.url},t)]})})},N.prototype.loadAvailableFields=function(i){return X(this,void 0,void 0,function(){var t,n,o,r;return Y(this,function(e){return 2===i.type?t="schemaMeasures":i.dimensionUniqueName?(t="schemaLevels",o=i.uniqueName):(t="schemaHierarchies",n=i.uniqueName),r={connection:{catalog:this.catalog,cube:this.cube},restrictions:{catalogName:this.catalog,cubeName:this.cube,hierarchyUniqueName:o,dimensionUniqueName:n,levelUniqueName:void 0,memberUniqueName:void 0,treeOp:void 0},command:t},[2,p.fetchDiscover({url:this.url},r)]})})};var mt,u=N;function N(e,t){e=mt.call(this,e,t)||this;return e.type="olap",e}u.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:u,deps:[{token:b},{token:c.NgZone}],target:c.ɵɵFactoryTarget.Directive}),u.ɵdir=c.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:u,selector:"[kendoPivotOLAPBinding]",inputs:{url:"url",cube:"cube",catalog:"catalog"},exportAs:["kendoPivotOLAPBinding"],usesInheritance:!0,usesOnChanges:!0,ngImport:c}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:u,decorators:[{type:r.Directive,args:[{selector:"[kendoPivotOLAPBinding]",exportAs:"kendoPivotOLAPBinding"}]}],ctorParameters:function(){return[{type:b},{type:c.NgZone}]},propDecorators:{url:[{type:r.Input}],cube:[{type:r.Input}],catalog:[{type:r.Input}]}});$(ht,ft=o),Object.defineProperty(ht.prototype,"override",{get:function(){return!0},enumerable:!1,configurable:!0});var ft,L=ht;function ht(e){var t=ft.call(this)||this;return t.service=e,t}L.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:L,deps:[{token:d.LocalizationService}],target:c.ɵɵFactoryTarget.Component}),L.ɵcmp=c.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:L,selector:"kendo-pivotgrid-messages",providers:[{provide:o,useExisting:r.forwardRef(function(){return L})}],usesInheritance:!0,ngImport:c,template:"",isInline:!0}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:L,decorators:[{type:r.Component,args:[{providers:[{provide:o,useExisting:r.forwardRef(function(){return L})}],selector:"kendo-pivotgrid-messages",template:""}]}],ctorParameters:function(){return[{type:d.LocalizationService}]}});t=[n.CommonModule,H.DropDownsModule,q.InputsModule,j.ButtonsModule],m=function(){},m.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,deps:[],target:c.ɵɵFactoryTarget.NgModule}),m.ɵmod=c.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,imports:[n.CommonModule,H.DropDownsModule,q.InputsModule,j.ButtonsModule],exports:[n.CommonModule,H.DropDownsModule,q.InputsModule,j.ButtonsModule]}),m.ɵinj=c.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,imports:[[t],n.CommonModule,H.DropDownsModule,q.InputsModule,j.ButtonsModule]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:m,decorators:[{type:r.NgModule,args:[{imports:[t],exports:[t]}]}]}),o=[A,Me,qe,S,F,Ge,E,i,Oe,O],vt.exports=function(){return[A,Me,Oe,O,qe]},n=vt;function vt(){}n.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,deps:[],target:c.ɵɵFactoryTarget.NgModule}),n.ɵmod=c.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,declarations:[A,Me,qe,S,F,Ge,E,i,Oe,O],imports:[m,z.ReactiveFormsModule,z.FormsModule],exports:[A,Me,qe,S,F,Ge,E,i,Oe,O]}),n.ɵinj=c.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,imports:[[m,z.ReactiveFormsModule,z.FormsModule]]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:n,decorators:[{type:r.NgModule,args:[{declarations:[o],imports:[m,z.ReactiveFormsModule,z.FormsModule],exports:[o]}]}]});H=[l.EventsModule,B.IndicatorsModule,G.TreeViewModule,l.DraggableModule,n,m],q=[h,C,$e,x,g,u,Ke,We,Je,L],j=[h,C,x,g,u,L],t=function(){};t.ɵfac=c.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,deps:[],target:c.ɵɵFactoryTarget.NgModule}),t.ɵmod=c.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,declarations:[h,C,$e,x,g,u,Ke,We,Je,L],imports:[l.EventsModule,B.IndicatorsModule,G.TreeViewModule,l.DraggableModule,n,m],exports:[h,C,x,g,u,L]}),t.ɵinj=c.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,imports:[y([],v(H))]}),c.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:c,type:t,decorators:[{type:r.NgModule,args:[{imports:y([],v(H)),declarations:y([],v(q)),exports:y([],v(j))}]}]}),Object.defineProperty(e,"averageAggregate",{enumerable:!0,get:function(){return p.averageAggregate}}),Object.defineProperty(e,"maxAggregate",{enumerable:!0,get:function(){return p.maxAggregate}}),Object.defineProperty(e,"minAggregate",{enumerable:!0,get:function(){return p.minAggregate}}),Object.defineProperty(e,"sumAggregate",{enumerable:!0,get:function(){return p.sumAggregate}}),e.ConfigurationChangeEvent=lt,e.CustomMessagesComponent=L,e.DraggableChipDirective=Ke,e.DropTargetDirective=We,e.ExpandChangeEvent=it,e.PivotGridCellDirective=x,e.PivotGridComponent=h,e.PivotGridConfiguratorComponent=$e,e.PivotGridModule=t,e.PivotGridTableComponent=C,e.PivotLocalBindingDirective=g,e.PivotOLAPBindingDirective=u,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
@@ -6,6 +6,7 @@ import { EventEmitter, NgZone } from '@angular/core';
|
|
|
6
6
|
import { PivotDataItem, PivotGridField, Tuple } from '@progress/kendo-pivotgrid-common';
|
|
7
7
|
import { BehaviorSubject } from 'rxjs';
|
|
8
8
|
import { PivotBaseBindingDirective } from './base-binding-directive';
|
|
9
|
+
import { PivotDataRowItem } from '../models/data-row-item';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
/**
|
|
11
12
|
* @hidden
|
|
@@ -20,6 +21,7 @@ export declare class PivotGridDataService {
|
|
|
20
21
|
rows: Tuple[];
|
|
21
22
|
columns: Tuple[];
|
|
22
23
|
wrapper: Element;
|
|
24
|
+
aggregateData: PivotDataRowItem[];
|
|
23
25
|
columnHeaderLeaves: {
|
|
24
26
|
total: boolean;
|
|
25
27
|
path: string[];
|
|
@@ -91,9 +91,7 @@ export class PivotBaseBindingDirective {
|
|
|
91
91
|
}));
|
|
92
92
|
this.subs.add(this.dataService.valuesRows.subscribe((data) => {
|
|
93
93
|
this.zone.run(() => {
|
|
94
|
-
|
|
95
|
-
this.dataLoaded.emit(data);
|
|
96
|
-
}
|
|
94
|
+
this.dataService.aggregateData = data;
|
|
97
95
|
});
|
|
98
96
|
}));
|
|
99
97
|
this.dataService.directive = this;
|
|
@@ -7,6 +7,7 @@ import { Directive, Input } from '@angular/core';
|
|
|
7
7
|
import { addKPI, buildKPIMeasures, createDataState, fetchData, fetchDiscover } from '@progress/kendo-pivotgrid-common';
|
|
8
8
|
import { anyChanged } from '@progress/kendo-angular-common';
|
|
9
9
|
import { PivotBaseBindingDirective } from './base-binding-directive';
|
|
10
|
+
import { clone } from '../util';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "./pivotgrid-data.service";
|
|
12
13
|
/**
|
|
@@ -37,7 +38,7 @@ export class PivotOLAPBindingDirective extends PivotBaseBindingDirective {
|
|
|
37
38
|
sort,
|
|
38
39
|
filter
|
|
39
40
|
};
|
|
40
|
-
fetchData({ url: this.url },
|
|
41
|
+
fetchData({ url: this.url }, clone(options))
|
|
41
42
|
.then(createDataState)
|
|
42
43
|
.then(newDataState => {
|
|
43
44
|
this.dataState = newDataState;
|
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-pivotgrid',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
12
|
+
publishDate: 1662143617,
|
|
13
13
|
version: '',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
15
15
|
};
|
|
@@ -8,7 +8,7 @@ import { packageMetadata } from './package-metadata';
|
|
|
8
8
|
import { isChanged, isDocumentAvailable } from '@progress/kendo-angular-common';
|
|
9
9
|
import { PivotGridDataService } from './data-binding/pivotgrid-data.service';
|
|
10
10
|
import { fromEvent, Subscription } from 'rxjs';
|
|
11
|
-
import { syncScroll, syncWheel } from './util';
|
|
11
|
+
import { cloneArray, syncScroll, syncWheel } from './util';
|
|
12
12
|
// eslint-disable-next-line rxjs/ban-operators
|
|
13
13
|
import { merge } from 'rxjs/operators';
|
|
14
14
|
import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
|
|
@@ -131,6 +131,12 @@ export class PivotGridComponent {
|
|
|
131
131
|
get configuratorSettings() {
|
|
132
132
|
return this.configurator && Object.assign({}, DEFAULT_CONFIGURATOR_SETTINGS, this.configurator);
|
|
133
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Holds the displayed aggregated PivotGrid values.
|
|
136
|
+
*/
|
|
137
|
+
get aggregateData() {
|
|
138
|
+
return cloneArray(this.dataService.aggregateData);
|
|
139
|
+
}
|
|
134
140
|
ngAfterViewInit() {
|
|
135
141
|
if (isDocumentAvailable()) {
|
|
136
142
|
this.zone.runOutsideAngular(() => {
|
package/esm2015/util.js
CHANGED
|
@@ -73,34 +73,6 @@ export const syncWheel = (event, tables, prop, axis) => {
|
|
|
73
73
|
tables[1][prop] += delta;
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
|
-
/**
|
|
77
|
-
* @hidden
|
|
78
|
-
*/
|
|
79
|
-
export function cloneTo(obj, result) {
|
|
80
|
-
for (let field in obj) {
|
|
81
|
-
if (obj.hasOwnProperty(field)) {
|
|
82
|
-
const value = obj[field];
|
|
83
|
-
if (Array.isArray(value)) {
|
|
84
|
-
result[field] = value.slice(0);
|
|
85
|
-
}
|
|
86
|
-
else if (value && typeof value === 'object' && !(value instanceof Date)) {
|
|
87
|
-
result[field] = result[field] || {};
|
|
88
|
-
cloneTo(value, result[field]);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
result[field] = value;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* @hidden
|
|
98
|
-
*/
|
|
99
|
-
export function clone(obj) {
|
|
100
|
-
const result = {};
|
|
101
|
-
cloneTo(obj, result);
|
|
102
|
-
return result;
|
|
103
|
-
}
|
|
104
76
|
/**
|
|
105
77
|
* @hidden
|
|
106
78
|
*/
|
|
@@ -163,3 +135,49 @@ export const filterAndMap = (arr, predicate, mapper) => arr.reduce((acc, curr) =
|
|
|
163
135
|
* @hidden
|
|
164
136
|
*/
|
|
165
137
|
export const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
138
|
+
/**
|
|
139
|
+
* @hidden
|
|
140
|
+
*/
|
|
141
|
+
export const cloneDate = (date) => date ? new Date(date.getTime()) : null;
|
|
142
|
+
/**
|
|
143
|
+
* @hidden
|
|
144
|
+
*/
|
|
145
|
+
export function clone(obj) {
|
|
146
|
+
const result = {};
|
|
147
|
+
cloneObject(obj, result);
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* @hidden
|
|
152
|
+
*/
|
|
153
|
+
export function cloneObject(obj, result) {
|
|
154
|
+
for (let field in obj) {
|
|
155
|
+
if (obj.hasOwnProperty(field)) {
|
|
156
|
+
const value = obj[field];
|
|
157
|
+
result[field] = cloneValue(value, result[field]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* @hidden
|
|
163
|
+
*/
|
|
164
|
+
export function cloneValue(value, nextValue) {
|
|
165
|
+
if (Array.isArray(value)) {
|
|
166
|
+
return cloneArray(value);
|
|
167
|
+
}
|
|
168
|
+
else if (value instanceof Date) {
|
|
169
|
+
return cloneDate(value);
|
|
170
|
+
}
|
|
171
|
+
else if (value && typeof value === 'object') {
|
|
172
|
+
const newNextValue = nextValue || {};
|
|
173
|
+
cloneObject(value, newNextValue);
|
|
174
|
+
return newNextValue;
|
|
175
|
+
}
|
|
176
|
+
return value;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* @hidden
|
|
180
|
+
*/
|
|
181
|
+
export function cloneArray(array) {
|
|
182
|
+
return array.map(value => cloneValue(value, undefined));
|
|
183
|
+
}
|
|
@@ -38,7 +38,7 @@ const packageMetadata = {
|
|
|
38
38
|
name: '@progress/kendo-angular-pivotgrid',
|
|
39
39
|
productName: 'Kendo UI for Angular',
|
|
40
40
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
41
|
-
publishDate:
|
|
41
|
+
publishDate: 1662143617,
|
|
42
42
|
version: '',
|
|
43
43
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
44
44
|
};
|
|
@@ -114,34 +114,6 @@ const syncWheel = (event, tables, prop, axis) => {
|
|
|
114
114
|
tables[1][prop] += delta;
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
|
-
/**
|
|
118
|
-
* @hidden
|
|
119
|
-
*/
|
|
120
|
-
function cloneTo(obj, result) {
|
|
121
|
-
for (let field in obj) {
|
|
122
|
-
if (obj.hasOwnProperty(field)) {
|
|
123
|
-
const value = obj[field];
|
|
124
|
-
if (Array.isArray(value)) {
|
|
125
|
-
result[field] = value.slice(0);
|
|
126
|
-
}
|
|
127
|
-
else if (value && typeof value === 'object' && !(value instanceof Date)) {
|
|
128
|
-
result[field] = result[field] || {};
|
|
129
|
-
cloneTo(value, result[field]);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
result[field] = value;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* @hidden
|
|
139
|
-
*/
|
|
140
|
-
function clone(obj) {
|
|
141
|
-
const result = {};
|
|
142
|
-
cloneTo(obj, result);
|
|
143
|
-
return result;
|
|
144
|
-
}
|
|
145
117
|
/**
|
|
146
118
|
* @hidden
|
|
147
119
|
*/
|
|
@@ -204,6 +176,52 @@ const filterAndMap = (arr, predicate, mapper) => arr.reduce((acc, curr) => predi
|
|
|
204
176
|
* @hidden
|
|
205
177
|
*/
|
|
206
178
|
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
179
|
+
/**
|
|
180
|
+
* @hidden
|
|
181
|
+
*/
|
|
182
|
+
const cloneDate = (date) => date ? new Date(date.getTime()) : null;
|
|
183
|
+
/**
|
|
184
|
+
* @hidden
|
|
185
|
+
*/
|
|
186
|
+
function clone(obj) {
|
|
187
|
+
const result = {};
|
|
188
|
+
cloneObject(obj, result);
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* @hidden
|
|
193
|
+
*/
|
|
194
|
+
function cloneObject(obj, result) {
|
|
195
|
+
for (let field in obj) {
|
|
196
|
+
if (obj.hasOwnProperty(field)) {
|
|
197
|
+
const value = obj[field];
|
|
198
|
+
result[field] = cloneValue(value, result[field]);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* @hidden
|
|
204
|
+
*/
|
|
205
|
+
function cloneValue(value, nextValue) {
|
|
206
|
+
if (Array.isArray(value)) {
|
|
207
|
+
return cloneArray(value);
|
|
208
|
+
}
|
|
209
|
+
else if (value instanceof Date) {
|
|
210
|
+
return cloneDate(value);
|
|
211
|
+
}
|
|
212
|
+
else if (value && typeof value === 'object') {
|
|
213
|
+
const newNextValue = nextValue || {};
|
|
214
|
+
cloneObject(value, newNextValue);
|
|
215
|
+
return newNextValue;
|
|
216
|
+
}
|
|
217
|
+
return value;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* @hidden
|
|
221
|
+
*/
|
|
222
|
+
function cloneArray(array) {
|
|
223
|
+
return array.map(value => cloneValue(value, undefined));
|
|
224
|
+
}
|
|
207
225
|
|
|
208
226
|
/**
|
|
209
227
|
* @hidden
|
|
@@ -2503,6 +2521,12 @@ class PivotGridComponent {
|
|
|
2503
2521
|
get configuratorSettings() {
|
|
2504
2522
|
return this.configurator && Object.assign({}, DEFAULT_CONFIGURATOR_SETTINGS, this.configurator);
|
|
2505
2523
|
}
|
|
2524
|
+
/**
|
|
2525
|
+
* Holds the displayed aggregated PivotGrid values.
|
|
2526
|
+
*/
|
|
2527
|
+
get aggregateData() {
|
|
2528
|
+
return cloneArray(this.dataService.aggregateData);
|
|
2529
|
+
}
|
|
2506
2530
|
ngAfterViewInit() {
|
|
2507
2531
|
if (isDocumentAvailable()) {
|
|
2508
2532
|
this.zone.runOutsideAngular(() => {
|
|
@@ -3040,9 +3064,7 @@ class PivotBaseBindingDirective {
|
|
|
3040
3064
|
}));
|
|
3041
3065
|
this.subs.add(this.dataService.valuesRows.subscribe((data) => {
|
|
3042
3066
|
this.zone.run(() => {
|
|
3043
|
-
|
|
3044
|
-
this.dataLoaded.emit(data);
|
|
3045
|
-
}
|
|
3067
|
+
this.dataService.aggregateData = data;
|
|
3046
3068
|
});
|
|
3047
3069
|
}));
|
|
3048
3070
|
this.dataService.directive = this;
|
|
@@ -3211,7 +3233,7 @@ class PivotOLAPBindingDirective extends PivotBaseBindingDirective {
|
|
|
3211
3233
|
sort,
|
|
3212
3234
|
filter
|
|
3213
3235
|
};
|
|
3214
|
-
fetchData({ url: this.url },
|
|
3236
|
+
fetchData({ url: this.url }, clone(options))
|
|
3215
3237
|
.then(createDataState)
|
|
3216
3238
|
.then(newDataState => {
|
|
3217
3239
|
this.dataState = newDataState;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-pivotgrid",
|
|
3
|
-
"version": "0.2.0-dev.
|
|
3
|
+
"version": "0.2.0-dev.202209021834",
|
|
4
4
|
"description": "PivotGrid package for Angular",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"friendlyName": "PivotGrid"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@progress/kendo-pivotgrid-common": "0.4.
|
|
24
|
+
"@progress/kendo-pivotgrid-common": "0.4.1",
|
|
25
25
|
"@progress/kendo-schematics": "^3.0.0",
|
|
26
26
|
"@telerik/kendo-draggable": "^2.0.0",
|
|
27
27
|
"tslib": "^2.3.1"
|
package/pivotgrid.component.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { PivotGridDataService } from './data-binding/pivotgrid-data.service';
|
|
|
8
8
|
import { LoaderSettings } from './models/loader-settings';
|
|
9
9
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
10
10
|
import { ConfiguratorSettings } from './models/configurator-settings';
|
|
11
|
+
import { PivotDataRowItem } from './models/data-row-item';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
/**
|
|
13
14
|
* Represents the Kendo UI PivotGrid component for Angular.
|
|
@@ -60,6 +61,10 @@ export declare class PivotGridComponent implements AfterViewInit, AfterContentIn
|
|
|
60
61
|
* @default false
|
|
61
62
|
*/
|
|
62
63
|
navigable: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Holds the displayed aggregated PivotGrid values.
|
|
66
|
+
*/
|
|
67
|
+
get aggregateData(): PivotDataRowItem[];
|
|
63
68
|
loading: boolean;
|
|
64
69
|
showConfigurator: boolean;
|
|
65
70
|
private resizeObservers;
|
|
@@ -10,7 +10,7 @@ function default_1(options) {
|
|
|
10
10
|
// Additional dependencies to install.
|
|
11
11
|
// See https://github.com/telerik/kendo-schematics/issues/28
|
|
12
12
|
peerDependencies: {
|
|
13
|
-
|
|
13
|
+
"@progress/kendo-angular-dialog": "^7.0.0"
|
|
14
14
|
} });
|
|
15
15
|
return schematics_1.externalSchematic('@progress/kendo-schematics', 'ng-add', finalOptions);
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tooling/schematics/ngAdd/index.ts"],"names":[],"mappings":";;AAAA,2DAGqC;AAErC,mBAAyB,OAAY;IACjC,MAAM,YAAY,mCACX,OAAO,KACV,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,WAAW;QACpB,sCAAsC;QACtC,4DAA4D;QAC5D,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tooling/schematics/ngAdd/index.ts"],"names":[],"mappings":";;AAAA,2DAGqC;AAErC,mBAAyB,OAAY;IACjC,MAAM,YAAY,mCACX,OAAO,KACV,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,WAAW;QACpB,sCAAsC;QACtC,4DAA4D;QAC5D,gBAAgB,EAAE;YACd,gCAAgC,EAAE,QAAQ;SAC7C,GACJ,CAAC;IAEF,OAAO,8BAAiB,CAAC,4BAA4B,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AACnF,CAAC;AAbD,4BAaC"}
|
package/util.d.ts
CHANGED
|
@@ -32,14 +32,6 @@ export declare const syncScroll: (source: HTMLTableElement, targets: HTMLTableEl
|
|
|
32
32
|
* @hidden
|
|
33
33
|
*/
|
|
34
34
|
export declare const syncWheel: (event: Event, tables: Element[], prop: 'scrollTop' | 'scrollLeft', axis: 'X' | 'Y') => void;
|
|
35
|
-
/**
|
|
36
|
-
* @hidden
|
|
37
|
-
*/
|
|
38
|
-
export declare function cloneTo(obj: any, result: any): void;
|
|
39
|
-
/**
|
|
40
|
-
* @hidden
|
|
41
|
-
*/
|
|
42
|
-
export declare function clone(obj: any): any;
|
|
43
35
|
/**
|
|
44
36
|
* @hidden
|
|
45
37
|
*/
|
|
@@ -67,3 +59,23 @@ export declare const filterAndMap: (arr: any[], predicate: (item: any) => boolea
|
|
|
67
59
|
* @hidden
|
|
68
60
|
*/
|
|
69
61
|
export declare const replaceMessagePlaceholder: (message: string, name: string, value: string) => string;
|
|
62
|
+
/**
|
|
63
|
+
* @hidden
|
|
64
|
+
*/
|
|
65
|
+
export declare const cloneDate: (date?: Date) => Date | null;
|
|
66
|
+
/**
|
|
67
|
+
* @hidden
|
|
68
|
+
*/
|
|
69
|
+
export declare function clone(obj: any): any;
|
|
70
|
+
/**
|
|
71
|
+
* @hidden
|
|
72
|
+
*/
|
|
73
|
+
export declare function cloneObject(obj: any, result: any): void;
|
|
74
|
+
/**
|
|
75
|
+
* @hidden
|
|
76
|
+
*/
|
|
77
|
+
export declare function cloneValue(value: any, nextValue: any): any;
|
|
78
|
+
/**
|
|
79
|
+
* @hidden
|
|
80
|
+
*/
|
|
81
|
+
export declare function cloneArray(array: any[]): any;
|