@progress/kendo-angular-pivotgrid 0.2.0-dev.202208181233 → 0.2.0-dev.202208250747
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/configurator/configurator.component.d.ts +96 -0
- package/configurator/configurator.service.d.ts +17 -0
- package/configurator/draggable.directive.d.ts +32 -0
- package/configurator/drop-cue.service.d.ts +22 -0
- package/configurator/drop-target.directive.d.ts +32 -0
- package/data-binding/base-binding-directive.d.ts +33 -5
- package/data-binding/local-binding.directive.d.ts +8 -1
- package/data-binding/olap-binding.directive.d.ts +13 -1
- package/data-binding/pivotgrid-data.service.d.ts +8 -3
- package/esm2015/configurator/configurator.component.js +500 -0
- package/esm2015/configurator/configurator.service.js +38 -0
- package/esm2015/configurator/draggable.directive.js +94 -0
- package/esm2015/configurator/drop-cue.service.js +64 -0
- package/esm2015/configurator/drop-target.directive.js +82 -0
- package/esm2015/data-binding/base-binding-directive.js +82 -9
- package/esm2015/data-binding/local-binding.directive.js +20 -8
- package/esm2015/data-binding/olap-binding.directive.js +131 -6
- package/esm2015/data-binding/pivotgrid-data.service.js +9 -1
- package/esm2015/localization/custom-messages.component.js +41 -0
- package/esm2015/localization/localized-messages.directive.js +36 -0
- package/esm2015/localization/messages.js +77 -0
- package/esm2015/main.js +8 -0
- package/esm2015/models/configuration-change-event.js +18 -0
- package/esm2015/models/configurator-settings.js +14 -0
- package/esm2015/models/data-row-item.js +6 -0
- package/esm2015/models/expanded-change-event.js +18 -0
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/pivotgrid.component.js +355 -63
- package/esm2015/pivotgrid.module.js +43 -16
- package/esm2015/util.js +59 -0
- package/fesm2015/kendo-angular-pivotgrid.js +1593 -106
- package/localization/custom-messages.component.d.ts +18 -0
- package/localization/localized-messages.directive.d.ts +16 -0
- package/localization/messages.d.ts +172 -0
- package/main.d.ts +7 -0
- package/models/configuration-change-event.d.ts +36 -0
- package/models/configurator-settings.d.ts +32 -0
- package/models/data-row-item.d.ts +18 -0
- package/models/expanded-change-event.d.ts +27 -0
- package/package.json +7 -1
- package/pivotgrid.component.d.ts +27 -3
- package/pivotgrid.module.d.ts +15 -7
- package/rendering/pivotgrid-table.component.d.ts +2 -2
- package/util.d.ts +23 -0
|
@@ -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("@angular/common"),require("@progress/kendo-angular-indicators"),require("@progress/kendo-angular-l10n")):"function"==typeof define&&define.amd?define("KendoAngularPivotgrid",["exports","@angular/core","@progress/kendo-licensing","@progress/kendo-angular-common","@progress/kendo-pivotgrid-common","rxjs","rxjs/operators","@angular/common","@progress/kendo-angular-indicators","@progress/kendo-angular-l10n"],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.ng.common,e.KendoAngularIndicators,e.KendoAngularL10N)}(this,function(e,t,F,l,d,i,V,n,r,o){"use strict";function a(n){var r;return n&&n.__esModule?n:(r=Object.create(null),n&&Object.keys(n).forEach(function(e){var t;"default"!==e&&(t=Object.getOwnPropertyDescriptor(n,e),Object.defineProperty(r,e,t.get?t:{enumerable:!0,get:function(){return n[e]}}))}),r.default=n,Object.freeze(r))}var s=a(t),c=a(l),p=a(n),u=a(r),N={name:"@progress/kendo-angular-pivotgrid",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1660825955,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"},g=function(e,t){return(g=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 v(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}g(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}Object.create;function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function m(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||((r=r||Array.prototype.slice.call(t,0,o))[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}Object.create;function y(e,t,n,r){(e="Y"===r?-b(e,r):b(e,r))&&(t[0][n]=t[1][n]+=e)}function f(e,n,r){return e.reduce(function(e,t){return n(t)?m(m([],h(e)),[r(t)]):e},[])}var b=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},L=0,k=(I.prototype.updateRowsAndCols=function(){var n=this,e=d.toTree((this.rows||[]).slice()),e=h(d.toRows(e),4),t=e[0],r=e[1],o=e[2],e=e[3],i=d.toTree((this.columns||[]).slice()),i=h(d.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=r,this.rowHeaderCols.next(new Array(e).fill({})),this.rowHeaderRows.next(t),this.valuesRows.next(d.toData((this.normalizedData||[]).slice(),s,r,i,o)),l.isDocumentAvailable()&&this.ngZone.runOutsideAngular(function(){setTimeout(function(){return e=n.wrapper,t=e.querySelectorAll(".k-pivotgrid-row-headers .k-pivotgrid-row"),r=e.querySelectorAll(".k-pivotgrid-column-headers th"),o=e.querySelectorAll(".k-pivotgrid-values td"),t.forEach(function(e,t){var n=f(Array.from(o),function(e){return e.getAttribute("id").split("-")[4]===(t+1).toString()},function(e){return e.getAttribute("id")});e.setAttribute("aria-owns",n.join(" "))}),void o.forEach(function(e){var n=+e.getAttribute("id").split("-")[5],t=f(Array.from(r),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,r,o})})},I);function I(e){this.ngZone=e,this.expandedStateChange=new t.EventEmitter,this.columnHeaderRows=new i.BehaviorSubject([]),this.columnHeaderCols=new i.BehaviorSubject([]),this.rowHeaderCols=new i.BehaviorSubject([]),this.rowHeaderRows=new i.BehaviorSubject([]),this.valuesRows=new i.BehaviorSubject([]),this.loading=new i.BehaviorSubject(!1),this.pivotGridId=L++}k.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:k,deps:[{token:s.NgZone}],target:s.ɵɵFactoryTarget.Injectable}),k.ɵprov=s.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:k}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:k,decorators:[{type:t.Injectable}],ctorParameters:function(){return[{type:s.NgZone}]},propDecorators:{expandedStateChange:[{type:t.Output}]}});Object.defineProperty(x.prototype,"expanded",{get:function(){var e;return(null==(e=this.kendoPivotGridCell)?void 0:e.hasChildren)&&this.kendoPivotGridCell.children.length},enumerable:!1,configurable:!0}),x.prototype.ngOnInit=function(){var e,t,n=this.hostEl.nativeElement,r=(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 r)r[t]&&this.renderer.addClass(n,t)};var w=x;function x(e,t,n){var r=this;this.hostEl=e,this.renderer=t,this.dataService=n,this.cellClass=!0,this.handleClick=function(){r.dataService.expandedStateChange.emit({action:r.expanded?"collapse":"expand",cell:r.kendoPivotGridCell,tableType:r.tableType})}}w.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:w,deps:[{token:s.ElementRef},{token:s.Renderer2},{token:k}],target:s.ɵɵFactoryTarget.Component}),w.ɵcmp=s.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:w,selector:"[kendoPivotGridCell]",inputs:{kendoPivotGridCell:"kendoPivotGridCell",tableType:"tableType",rowIndex:"rowIndex",colIndex:"colIndex"},host:{properties:{"class.k-pivotgrid-cell":"this.cellClass"}},ngImport:s,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:p.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:c.EventsOutsideAngularDirective,selector:"[kendoEventsOutsideAngular]",inputs:["kendoEventsOutsideAngular","scope"]},{type:p.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]}]}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:w,decorators:[{type:t.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:s.ElementRef},{type:s.Renderer2},{type:k}]},propDecorators:{cellClass:[{type:t.HostBinding,args:["class.k-pivotgrid-cell"]}],kendoPivotGridCell:[{type:t.Input}],tableType:[{type:t.Input}],rowIndex:[{type:t.Input}],colIndex:[{type:t.Input}]}});Object.defineProperty(A.prototype,"pivotGridId",{get:function(){return"kendo-pivotgrid-"+this.dataService.pivotGridId+"-"},enumerable:!1,configurable:!0}),A.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}))},A.prototype.ngOnDestroy=function(){this.dataChangeSubs.unsubscribe()};var C=A;function A(e){this.dataService=e,this.dataChangeSubs=new i.Subscription}C.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:C,deps:[{token:k}],target:s.ɵɵFactoryTarget.Component}),C.ɵcmp=s.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:C,selector:"kendo-pivotgrid-table",inputs:{tableType:"tableType",colWidth:"colWidth"},ngImport:s,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:w,selector:"[kendoPivotGridCell]",inputs:["kendoPivotGridCell","tableType","rowIndex","colIndex"]}],directives:[{type:p.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:p.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:C,decorators:[{type:t.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:k}]},propDecorators:{tableType:[{type:t.Input}],colWidth:[{type:t.Input}]}});var T={type:"converging-spinner",themeColor:"primary",size:"large"},S=(Object.defineProperty(D.prototype,"loaderSettings",{get:function(){return this._loaderSettings},set:function(e){this._loaderSettings=Object.assign({},T,e)},enumerable:!1,configurable:!0}),D.prototype.ngAfterViewInit=function(){var o=this;l.isDocumentAvailable()&&this.zone.runOutsideAngular(function(){var e=o.rowHeadersTable.nativeElement.firstElementChild,t=new ResizeObserver(function(){return o.resizeContainer("Columns",e)}),n=(t.observe(e),o.colHeadersTable.nativeElement.firstElementChild),r=new ResizeObserver(function(){return o.resizeContainer("Rows",n)});r.observe(n),o.resizeObservers=[t,r],o.subs.add(i.fromEvent(e,"wheel").pipe(V.merge(i.fromEvent(n,"wheel"),i.fromEvent(o.valuesTable.nativeElement,"scroll"))).subscribe(function(e){return o.handleScroll(e)}))})},D.prototype.ngAfterContentInit=function(){var t=this;this.subs.add(this.dataService.loading.subscribe(function(e){return t.loading=e}))},D.prototype.ngOnDestroy=function(){this.resizeObservers.forEach(function(e){return e.disconnect()}),this.subs.unsubscribe()},D);function D(e,t,n,r){var a=this;this.hostEl=e,this.zone=t,this.dataService=n,this.hostClass=!0,this.ariaRole="grid",this.columnHeadersWidth=200,this.resizeObservers=[],this._loaderSettings=T,this.subs=new i.Subscription,this.resizeContainer=function(e,t){var n=a.hostEl.nativeElement,r="Rows"===e?"offsetHeight":"offsetWidth";n.style["gridTemplate"+e]="",n.style["gridTemplate"+e]=t[r]+"px 1fr"},this.handleScroll=function(e){var t,n,r,o,i;e.target===a.valuesTable.nativeElement?(t=e.target,n=[a.rowHeadersTable.nativeElement,a.colHeadersTable.nativeElement],r=t.scrollTop,t=t.scrollLeft,o=n[0].scrollTop,i=t!==n[1].scrollLeft,r!==o?n[0].scrollTop=r:i&&(n[1].scrollLeft=t)):e.target.closest(".k-pivotgrid-row-headers")?y(e,[a.valuesTable.nativeElement,a.rowHeadersTable.nativeElement],"scrollTop","Y"):e.target.closest(".k-pivotgrid-column-headers")&&y(e,[a.valuesTable.nativeElement,a.colHeadersTable.nativeElement],"scrollLeft","X")},F.validatePackage(N),n.wrapper=e.nativeElement}S.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:S,deps:[{token:s.ElementRef},{token:s.NgZone},{token:k},{token:c.ScrollbarWidthService}],target:s.ɵɵFactoryTarget.Component}),S.ɵcmp=s.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:S,selector:"kendo-pivotgrid",inputs:{loaderSettings:"loaderSettings",columnHeadersWidth:"columnHeadersWidth"},host:{properties:{"class.k-pivotgrid":"this.hostClass","attr.role":"this.ariaRole"}},providers:[k],viewQueries:[{propertyName:"colHeadersTable",first:!0,predicate:["colHeadersTable"],descendants:!0,read:t.ElementRef},{propertyName:"rowHeadersTable",first:!0,predicate:["rowHeadersTable"],descendants:!0,read:t.ElementRef},{propertyName:"valuesTable",first:!0,predicate:["valuesTable"],descendants:!0,read:t.ElementRef}],ngImport:s,template:'\n <span class="k-pivotgrid-empty-cell"></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 </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:u.LoaderComponent,selector:"kendo-loader",inputs:["type","themeColor","size"]}],directives:[{type:p.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:S,decorators:[{type:t.Component,args:[{selector:"kendo-pivotgrid",providers:[k],template:'\n <span class="k-pivotgrid-empty-cell"></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 </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:s.ElementRef},{type:s.NgZone},{type:k},{type:c.ScrollbarWidthService}]},propDecorators:{hostClass:[{type:t.HostBinding,args:["class.k-pivotgrid"]}],ariaRole:[{type:t.HostBinding,args:["attr.role"]}],colHeadersTable:[{type:t.ViewChild,args:["colHeadersTable",{read:t.ElementRef}]}],rowHeadersTable:[{type:t.ViewChild,args:["rowHeadersTable",{read:t.ElementRef}]}],valuesTable:[{type:t.ViewChild,args:["valuesTable",{read:t.ElementRef}]}],loaderSettings:[{type:t.Input}],columnHeadersWidth:[{type:t.Input}]}});P.prototype.ngOnInit=function(){var r=this;this.loadData(),this.expandedStateSub=this.dataService.expandedStateChange.subscribe(function(n){r.zone.run(function(){var e="columnHeader"===n.tableType,t=e?"columnAxes":"rowAxes",e=d.toTree((e?r.dataService.columns:r.dataService.rows||[]).slice());r.updateHeaders(t,e,n.cell.path)})})},P.prototype.ngOnDestroy=function(){this.expandedStateSub.unsubscribe()},P.prototype.updateDataServiceFields=function(){this.dataService.normalizedData=this.dataState.data,this.dataService.rows=this.dataState.rows,this.dataService.columns=this.dataState.columns,this.dataService.updateRowsAndCols()},P.prototype.updateHeaders=function(e,t,n){n={type:d.HEADERS_ACTION.toggle,payload:n},n=d.headersReducer(this[e].slice(),Object.assign(Object.assign({},n),{tree:t}));this[e]=n,this.loadData()};u=P;function P(e,t){this.dataService=e,this.zone=t,this.columnAxes=[],this.rowAxes=[],this.measureAxes=[],this.expandedStateSub=new i.Subscription}u.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:u,deps:[{token:k},{token:s.NgZone}],target:s.ɵɵFactoryTarget.Directive}),u.ɵdir=s.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:u,selector:"kendo-base-binding-directive",inputs:{columnAxes:"columnAxes",rowAxes:"rowAxes",measureAxes:"measureAxes"},ngImport:s}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:u,decorators:[{type:t.Directive,args:[{selector:"kendo-base-binding-directive"}]}],ctorParameters:function(){return[{type:k},{type:s.NgZone}]},propDecorators:{columnAxes:[{type:t.Input}],rowAxes:[{type:t.Input}],measureAxes:[{type:t.Input}]}});var O,E={dataField:"aggregate",columnsData:"columns"},p=(v(H,O=u),H.prototype.ngOnChanges=function(e){l.anyChanged(["data","dimensions","columnAxes","rowAxes","measureAxes","measures"],e)&&this.loadData()},H.prototype.loadData=function(){var e=this,t=this.getRootAxes(this.columnAxes),n=this.getRootAxes(this.rowAxes),t=t.split("&").map(this.createAxisSettings),n=n.split("&").map(this.createAxisSettings),r=this.measureAxes.map(function(t){return e.measures.find(function(e){return String(e.name)===String(t.name)})}).filter(Boolean),o=d.createDataTree(this.data,n,t,r,E);this.dataState=d.createLocalDataState({dataTree:o,rowSettings:n,columnSettings:t,rowAxes:this.rowAxes,columnAxes:this.columnAxes,measures:r,sort:[],fields:E}),this.updateDataServiceFields()},H.prototype.getRootAxes=function(e){return Array.from(d.rootFields(e).keys()).join("&")},H);function H(e,t){var n=O.call(this,e,t)||this;return n.createAxisSettings=function(e){return Object.assign({key:e},n.dimensions[e])},n}p.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:p,deps:[{token:k},{token:s.NgZone}],target:s.ɵɵFactoryTarget.Directive}),p.ɵdir=s.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:p,selector:"[kendoPivotLocalBinding]",inputs:{data:["kendoPivotLocalBinding","data"],dimensions:"dimensions",measures:"measures"},exportAs:["kendoPivotLocalBinding"],usesInheritance:!0,usesOnChanges:!0,ngImport:s}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:p,decorators:[{type:t.Directive,args:[{selector:"[kendoPivotLocalBinding]",exportAs:"kendoPivotLocalBinding"}]}],ctorParameters:function(){return[{type:k},{type:s.NgZone}]},propDecorators:{data:[{type:t.Input,args:["kendoPivotLocalBinding"]}],dimensions:[{type:t.Input}],measures:[{type:t.Input}]}});v(G,j=u),G.prototype.ngOnChanges=function(e){l.anyChanged(["url","cube","catalog","columnAxes","rowAxes","measureAxes"],e)&&this.loadData()},G.prototype.loadData=function(){var t=this,e=(this.dataService.loading.next(!0),{connection:{catalog:this.catalog,cube:this.cube},columnAxes:this.columnAxes,rowAxes:this.rowAxes,measureAxes:this.measureAxes});d.fetchData({url:this.url},JSON.parse(JSON.stringify(e))).then(d.createDataState).then(function(e){t.dataState=e,t.updateDataServiceFields(),t.dataService.loading.next(!1)})};var j,u=G;function G(e,t){return j.call(this,e,t)||this}u.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:u,deps:[{token:k},{token:s.NgZone}],target:s.ɵɵFactoryTarget.Directive}),u.ɵdir=s.ɵɵ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:s}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:u,decorators:[{type:t.Directive,args:[{selector:"[kendoPivotOLAPBinding]",exportAs:"kendoPivotOLAPBinding"}]}],ctorParameters:function(){return[{type:k},{type:s.NgZone}]},propDecorators:{url:[{type:t.Input}],cube:[{type:t.Input}],catalog:[{type:t.Input}]}});var B=[n.CommonModule,l.EventsModule,r.IndicatorsModule],W=[S,C,w,p,u],R=function(){};R.ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:R,deps:[],target:s.ɵɵFactoryTarget.NgModule}),R.ɵmod=s.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:R,declarations:[S,C,w,p,u],imports:[n.CommonModule,l.EventsModule,r.IndicatorsModule],exports:[S,C,w,p,u]}),R.ɵinj=s.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:R,providers:[{provide:o.L10N_PREFIX,useValue:"kendo.pivotgrid"}],imports:[m([],h(B))]}),s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:s,type:R,decorators:[{type:t.NgModule,args:[{imports:m([],h(B)),declarations:m([],h(W)),exports:m([],h(W)),providers:[{provide:o.L10N_PREFIX,useValue:"kendo.pivotgrid"}]}]}]}),Object.defineProperty(e,"averageAggregate",{enumerable:!0,get:function(){return d.averageAggregate}}),Object.defineProperty(e,"maxAggregate",{enumerable:!0,get:function(){return d.maxAggregate}}),Object.defineProperty(e,"minAggregate",{enumerable:!0,get:function(){return d.minAggregate}}),Object.defineProperty(e,"sumAggregate",{enumerable:!0,get:function(){return d.sumAggregate}}),e.PivotGridCellDirective=w,e.PivotGridComponent=S,e.PivotGridModule=R,e.PivotGridTableComponent=C,e.PivotLocalBindingDirective=p,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-treeview"),require("@progress/kendo-angular-buttons"),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-treeview","@progress/kendo-angular-buttons","@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.KendoAngularTreeview,e.KendoAngularButtons,e.KendoAngularInputs)}(this,function(e,n,R,l,d,i,M,t,H,V,z,G,j){"use strict";function o(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 r=o(n),a=o(l),s=o(t),c=o(H),p=o(V),u=o(z),g=o(G),f=o(j),q={name:"@progress/kendo-angular-pivotgrid",productName:"Kendo UI for Angular",productCodes:["KENDOUIANGULAR","KENDOUICOMPLETE"],publishDate:1661413588,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"},W=function(e,t){return(W=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 h(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}W(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function _(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 K(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 m(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 v(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 Z(e,t,n,o){(e="Y"===o?-U(e,o):U(e,o))&&(t[0][n]=t[1][n]+=e)}var U=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 X(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 Y(e,t){n=J(a=e),i=n.clientTop,n=n.clientLeft,o=Q(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 $(e,n,o){return e.reduce(function(e,t){return n(t)?v(v([],m(e)),[o(t)]):e},[])}var J=function(e){return e.ownerDocument.documentElement},Q=function(e){return e.ownerDocument.defaultView},ee=0,y=(te.prototype.updateRowsAndCols=function(){var n=this,e=d.toTree((this.rows||[]).slice()),e=m(d.toRows(e),4),t=e[0],o=e[1],r=e[2],e=e[3],i=d.toTree((this.columns||[]).slice()),i=m(d.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(d.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=$(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=$(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})})},te);function te(e){this.ngZone=e,this.expandedStateChange=new n.EventEmitter,this.configuratorFieldChange=new n.EventEmitter,this.expandedFieldChange=new n.EventEmitter,this.columnHeaderRows=new i.BehaviorSubject([]),this.columnHeaderCols=new i.BehaviorSubject([]),this.rowHeaderCols=new i.BehaviorSubject([]),this.rowHeaderRows=new i.BehaviorSubject([]),this.valuesRows=new i.BehaviorSubject([]),this.loading=new i.BehaviorSubject(!1),this.fields=new i.BehaviorSubject([]),this.configuredFields=new i.BehaviorSubject([]),this.pivotGridId=ee++}y.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:y,deps:[{token:r.NgZone}],target:r.ɵɵFactoryTarget.Injectable}),y.ɵprov=r.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:y}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:y,decorators:[{type:n.Injectable}],ctorParameters:function(){return[{type:r.NgZone}]},propDecorators:{expandedStateChange:[{type:n.Output}],configuratorFieldChange:[{type:n.Output}],expandedFieldChange:[{type:n.Output}]}});Object.defineProperty(ne.prototype,"expanded",{get:function(){var e;return(null==(e=this.kendoPivotGridCell)?void 0:e.hasChildren)&&this.kendoPivotGridCell.children.length},enumerable:!1,configurable:!0}),ne.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 b=ne;function ne(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})}}b.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:b,deps:[{token:r.ElementRef},{token:r.Renderer2},{token:y}],target:r.ɵɵFactoryTarget.Component}),b.ɵcmp=r.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:b,selector:"[kendoPivotGridCell]",inputs:{kendoPivotGridCell:"kendoPivotGridCell",tableType:"tableType",rowIndex:"rowIndex",colIndex:"colIndex"},host:{properties:{"class.k-pivotgrid-cell":"this.cellClass"}},ngImport:r,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:c.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:a.EventsOutsideAngularDirective,selector:"[kendoEventsOutsideAngular]",inputs:["kendoEventsOutsideAngular","scope"]},{type:c.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]}]}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:b,decorators:[{type:n.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:r.ElementRef},{type:r.Renderer2},{type:y}]},propDecorators:{cellClass:[{type:n.HostBinding,args:["class.k-pivotgrid-cell"]}],kendoPivotGridCell:[{type:n.Input}],tableType:[{type:n.Input}],rowIndex:[{type:n.Input}],colIndex:[{type:n.Input}]}});Object.defineProperty(oe.prototype,"pivotGridId",{get:function(){return"kendo-pivotgrid-"+this.dataService.pivotGridId+"-"},enumerable:!1,configurable:!0}),oe.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}))},oe.prototype.ngOnDestroy=function(){this.dataChangeSubs.unsubscribe()};var x=oe;function oe(e){this.dataService=e,this.dataChangeSubs=new i.Subscription}x.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:x,deps:[{token:y}],target:r.ɵɵFactoryTarget.Component}),x.ɵcmp=r.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:x,selector:"kendo-pivotgrid-table",inputs:{tableType:"tableType",colWidth:"colWidth"},ngImport:r,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:b,selector:"[kendoPivotGridCell]",inputs:["kendoPivotGridCell","tableType","rowIndex","colIndex"]}],directives:[{type:c.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:c.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:x,decorators:[{type:n.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:y}]},propDecorators:{tableType:[{type:n.Input}],colWidth:[{type:n.Input}]}});re.prototype.parseConfiguratorState=function(e){var t=d.configuratorReducer({filter:[],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 k=re;function re(){this.configuratorStateChange=new n.EventEmitter}k.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:k,deps:[],target:r.ɵɵFactoryTarget.Injectable}),k.ɵprov=r.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:k}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:k,decorators:[{type:n.Injectable}],propDecorators:{configuratorStateChange:[{type:n.Output}]}});I.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()},I.prototype.attach=function(){return e=this.dom,!1||(document.body.appendChild(e),0),e;var e},I.prototype.remove=function(){this.dom&&this.dom.parentElement&&(document.body.removeChild(this.dom),this.dom=null)},I.prototype.hide=function(){this.dom.style.display="none"},I.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=I;function I(){}T.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:T,deps:[],target:r.ɵɵFactoryTarget.Injectable}),T.ɵprov=r.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:T}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:T,decorators:[{type:n.Injectable}]});w.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)))})},w.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},w.prototype.handleMouseEnter=function(e){this.configuratorService.state.dragItem&&("chip"===this.elementType&&(this.configuratorService.parseConfiguratorState({type:d.PIVOT_CONFIGURATOR_ACTION.setDropTarget,payload:this.item}),this.targetElement=e.target,this.cue.position(Y(e.target,"before"===this.configuratorService.state.dropDirection))),this.configuratorService.parseConfiguratorState({type:d.PIVOT_CONFIGURATOR_ACTION.setDropZone,payload:this.axes}))},w.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(Y(this.targetElement,"before"==e)),this.configuratorService.parseConfiguratorState({type:d.PIVOT_CONFIGURATOR_ACTION.setDropDirection,payload:e}))},w.prototype.handleMouseLeave=function(){"chip"!==this.elementType&&this.configuratorService.state.dragItem&&this.configuratorService.parseConfiguratorState({type:d.PIVOT_CONFIGURATOR_ACTION.setDropZone,payload:null})};var C=w;function w(e,t,n,o,r){this.element=e,this.configuratorService=t,this.cue=n,this.renderer=o,this.zone=r,this.subs=new i.Subscription}C.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:C,deps:[{token:r.ElementRef},{token:k},{token:T},{token:r.Renderer2},{token:r.NgZone}],target:r.ɵɵFactoryTarget.Directive}),C.ɵdir=r.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:C,selector:"[kendoDropTarget]",inputs:{item:"item",axes:"axes"},ngImport:r}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:C,decorators:[{type:n.Directive,args:[{selector:"[kendoDropTarget]"}]}],ctorParameters:function(){return[{type:r.ElementRef},{type:k},{type:T},{type:r.Renderer2},{type:r.NgZone}]},propDecorators:{item:[{type:n.Input}],axes:[{type:n.Input}]}});Object.defineProperty(ie.prototype,"pointerEvents",{get:function(){return this.drag?"none":void 0},enumerable:!1,configurable:!0}),ie.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:d.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:d.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)}))})},ie.prototype.ngOnDestroy=function(){this.subs.unsubscribe()};var O=ie;function ie(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 i.Subscription}O.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:O,deps:[{token:a.DraggableDirective,optional:!0},{token:r.ElementRef},{token:r.NgZone},{token:k},{token:T}],target:r.ɵɵFactoryTarget.Directive}),O.ɵdir=r.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:O,selector:"[kendoChipDraggable]",inputs:{item:"item"},host:{properties:{"style.pointerEvents":"this.pointerEvents","style.touch-action":"this.touchActions"}},ngImport:r}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:O,decorators:[{type:n.Directive,args:[{selector:"[kendoChipDraggable]"}]}],ctorParameters:function(){return[{type:a.DraggableDirective,decorators:[{type:n.Optional}]},{type:r.ElementRef},{type:r.NgZone},{type:k},{type:T}]},propDecorators:{pointerEvents:[{type:n.HostBinding,args:["style.pointerEvents"]}],touchActions:[{type:n.HostBinding,args:["style.touch-action"]}],item:[{type:n.Input}]}});A.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=X(e),t.setState(X(e)),t.setChecked()})),this.subs.add(this.configuratorService.configuratorStateChange.subscribe(function(e){t.state=e,t.cdr.detectChanges()}))},A.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},A.prototype.getName=function(e){return e.toString()},A.prototype.setState=function(e){this.state=e,this.configuratorService.state=e},A.prototype.messageFor=function(e){return this.localization.get(e)},Object.defineProperty(A.prototype,"columnHierarchies",{get:function(){return this.extractDefaultFields(this.state.columnAxes)},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"rowHierarchies",{get:function(){return this.extractDefaultFields(this.state.rowAxes)},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"measureHierarchies",{get:function(){return this.extractDefaultFields(this.state.measureAxes)},enumerable:!1,configurable:!0}),A.prototype.setChecked=function(e){var n=this,e=(void 0===e&&(e=[]),v(v([],m(this.fields)),m(e))),e=this.getFieldsFlatMap(e).filter(function(t){return v(v(v([],m(n.columnHierarchies)),m(n.rowHierarchies)),m(n.measureHierarchies)).some(function(e){return e===t.uniqueName||e===t.defaultHierarchy})});this.checked=e},A.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},A.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)},A.prototype.handleChildrenLoaded=function(e){"local"!==this.dataService.directive.type&&(e=e.children.map(function(e){return e.dataItem}),this.setChecked(e))},A.prototype.handleCheckedChange=function(e,t){e.target.checked?this.checked=v(v([],m(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)},A.prototype.handleSubmit=function(){this.dataService.configuratorFieldChange.emit(this.state)},A.prototype.handleReset=function(){this.setState(X(this.originalState)),this.setChecked()},A.prototype.getFieldsFlatMap=function(e){var t=this,n=v([],m(e=void 0===e?[]:e));return(e||[]).forEach(function(e){n=n.concat(t.getFieldsFlatMap(e.children))}),n},A.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 D=A;function A(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.checked=[],this.subs=new i.Subscription,this.hasChildren=function(e){return!("hierarchyUniqueName"in e||"aggregator"in e)},this.children=function(e){return"olap"===r.dataService.directive.type?i.from(r.dataService.directive.fetchChildren(e,r.fields)).pipe(M.mergeMap(function(e){return i.of(e)})):i.of(e.children)}}D.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:D,deps:[{token:y},{token:s.LocalizationService},{token:k},{token:r.ChangeDetectorRef}],target:r.ɵɵFactoryTarget.Component}),D.ɵcmp=r.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:D,selector:"kendo-pivotgrid-configurator",inputs:{horizontal:"horizontal"},host:{properties:{"class.k-pivotgrid-configurator":"this.hostClass"}},providers:[k,T],ngImport:r,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 </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 </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 \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:u.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:g.ChipListComponent,selector:"kendo-chiplist, kendo-chip-list",inputs:["selection","size"],outputs:["selectedChange","remove"]},{type:g.ChipComponent,selector:"kendo-chip",inputs:["label","icon","iconClass","avatarClass","selected","removable","removeIcon","disabled","size","rounded","fillMode","themeColor"],outputs:["remove","contentClick"]}],directives:[{type:c.NgClass,selector:"[ngClass]",inputs:["class","ngClass"]},{type:u.ExpandDirective,selector:"[kendoTreeViewExpandable]",inputs:["isExpanded","expandBy","expandOnFilter","expandedKeys"],outputs:["expandedKeysChange"]},{type:u.NodeTemplateDirective,selector:"[kendoTreeViewNodeTemplate]"},{type:c.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{type:f.CheckBoxDirective,selector:"input[kendoCheckBox]",inputs:["size","rounded"]},{type:c.NgTemplateOutlet,selector:"[ngTemplateOutlet]",inputs:["ngTemplateOutletContext","ngTemplateOutlet"]},{type:C,selector:"[kendoDropTarget]",inputs:["item","axes"]},{type:c.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{type:O,selector:"[kendoChipDraggable]",inputs:["item"]},{type:a.DraggableDirective,selector:"[kendoDraggable]",inputs:["enableDrag"],outputs:["kendoPress","kendoDrag","kendoRelease"]},{type:g.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"]}]}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:D,decorators:[{type:n.Component,args:[{selector:"kendo-pivotgrid-configurator",providers:[k,T],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 </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 </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 \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:y},{type:s.LocalizationService},{type:k},{type:r.ChangeDetectorRef}]},propDecorators:{hostClass:[{type:n.HostBinding,args:["class.k-pivotgrid-configurator"]}],horizontal:[{type:n.Input}]}});h(se,ae=t.ComponentMessages);var ae,u=se;function se(){return null!==ae&&ae.apply(this,arguments)||this}u.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:u,deps:null,target:r.ɵɵFactoryTarget.Directive}),u.ɵdir=r.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:u,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"},usesInheritance:!0,ngImport:r}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:u,decorators:[{type:n.Directive}],propDecorators:{fieldMenuFilterItemLabel:[{type:n.Input}],fieldMenuSortAscendingItemLabel:[{type:n.Input}],fieldMenuSortDescendingItemLabel:[{type:n.Input}],filterInputLabel:[{type:n.Input}],filterOperatorsDropDownLabel:[{type:n.Input}],filterEqOperator:[{type:n.Input}],filterNotEqOperator:[{type:n.Input}],filterIsNullOperator:[{type:n.Input}],filterIsNotNullOperator:[{type:n.Input}],filterIsEmptyOperator:[{type:n.Input}],filterIsNotEmptyOperator:[{type:n.Input}],filterStartsWithOperator:[{type:n.Input}],filterContainsOperator:[{type:n.Input}],filterNotContainsOperator:[{type:n.Input}],filterEndsWithOperator:[{type:n.Input}],filterFilterButton:[{type:n.Input}],filterClearButton:[{type:n.Input}],loading:[{type:n.Input}],emptyCellLabel:[{type:n.Input}],configuratorButtonText:[{type:n.Input}],configuratorHeaderText:[{type:n.Input}],configuratorFieldsText:[{type:n.Input}],configuratorColumnsText:[{type:n.Input}],configuratorRowsText:[{type:n.Input}],configuratorValuesText:[{type:n.Input}],configuratorCancelButtonText:[{type:n.Input}],configuratorApplyButtonText:[{type:n.Input}],configuratorEmptyRowsText:[{type:n.Input}],configuratorEmptyColumnsText:[{type:n.Input}],configuratorEmptyMeasuresText:[{type:n.Input}]}});h(de,le=u);var le,S=de;function de(e){var t=le.call(this)||this;return t.service=e,t}S.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:S,deps:[{token:s.LocalizationService}],target:r.ɵɵFactoryTarget.Directive}),S.ɵdir=r.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:S,selector:"[kendoPivotGridLocalizedMessages]",providers:[{provide:u,useExisting:n.forwardRef(function(){return S})}],usesInheritance:!0,ngImport:r}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:S,decorators:[{type:n.Directive,args:[{providers:[{provide:u,useExisting:n.forwardRef(function(){return S})}],selector:"[kendoPivotGridLocalizedMessages]"}]}],ctorParameters:function(){return[{type:s.LocalizationService}]}});var ce={type:"converging-spinner",themeColor:"primary",size:"large"},pe={position:"right",horizontal:!1},f=(Object.defineProperty(E.prototype,"rightPositionClass",{get:function(){var e;return"right"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"leftPositionClass",{get:function(){var e;return"left"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"bottomPositionClass",{get:function(){var e;return"bottom"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"topPositionClass",{get:function(){var e;return"top"===(null==(e=this.configuratorSettings)?void 0:e.position)},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"dir",{get:function(){return this.direction},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"loaderSettings",{get:function(){return this._loaderSettings},set:function(e){this._loaderSettings=Object.assign({},ce,e)},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"loadingText",{get:function(){return this.localization.get("loading")},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"configuratorSettings",{get:function(){return this.configurator&&Object.assign({},pe,this.configurator)},enumerable:!1,configurable:!0}),E.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(i.fromEvent(e,"wheel").pipe(M.merge(i.fromEvent(n,"wheel"),i.fromEvent(r.valuesTable.nativeElement,"scroll"))).subscribe(function(e){return r.handleScroll(e)}))})},E.prototype.ngAfterContentInit=function(){var t=this;this.subs.add(this.dataService.loading.subscribe(function(e){return t.loading=e}))},E.prototype.ngOnDestroy=function(){this.resizeObservers.forEach(function(e){return e.disconnect()}),this.subs.unsubscribe()},E.prototype.messageFor=function(e){return this.localization.get(e)},E);function E(e,t,n,o,r){var a=this;this.zone=t,this.dataService=n,this.localization=o,this.hostClass=!0,this.ariaRole="grid",this.columnHeadersWidth=200,this.resizeObservers=[],this._loaderSettings=ce,this.subs=new i.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")?Z(e,[a.valuesTable.nativeElement,a.rowHeadersTable.nativeElement],"scrollTop","Y"):e.target.closest(".k-pivotgrid-column-headers")&&Z(e,[a.valuesTable.nativeElement,a.colHeadersTable.nativeElement],"scrollLeft","X")},R.validatePackage(q),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}f.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:f,deps:[{token:r.ElementRef},{token:r.NgZone},{token:y},{token:s.LocalizationService},{token:a.ScrollbarWidthService}],target:r.ɵɵFactoryTarget.Component}),f.ɵcmp=r.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:f,selector:"kendo-pivotgrid",inputs:{loaderSettings:"loaderSettings",configurator:"configurator",columnHeadersWidth:"columnHeadersWidth"},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:[y,t.LocalizationService,{provide:t.L10N_PREFIX,useValue:"kendo.pivotgrid"}],viewQueries:[{propertyName:"colHeadersTable",first:!0,predicate:["colHeadersTable"],descendants:!0,read:n.ElementRef},{propertyName:"rowHeadersTable",first:!0,predicate:["rowHeadersTable"],descendants:!0,read:n.ElementRef},{propertyName:"valuesTable",first:!0,predicate:["valuesTable"],descendants:!0,read:n.ElementRef},{propertyName:"table",first:!0,predicate:["table"],descendants:!0,read:n.ElementRef}],ngImport:r,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"></ng-container>\n\n <div #table class="k-pivotgrid">\n <span class="k-pivotgrid-empty-cell" [attr.aria-label]="messageFor(\'emptyCellLabel\')"></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:x,selector:"kendo-pivotgrid-table",inputs:["tableType","colWidth"]},{type:p.LoaderComponent,selector:"kendo-loader",inputs:["type","themeColor","size"]},{type:D,selector:"kendo-pivotgrid-configurator",inputs:["horizontal"]}],directives:[{type:S,selector:"[kendoPivotGridLocalizedMessages]"},{type:c.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:f,decorators:[{type:n.Component,args:[{selector:"kendo-pivotgrid",providers:[y,t.LocalizationService,{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"></ng-container>\n\n <div #table class="k-pivotgrid">\n <span class="k-pivotgrid-empty-cell" [attr.aria-label]="messageFor(\'emptyCellLabel\')"></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:r.ElementRef},{type:r.NgZone},{type:y},{type:s.LocalizationService},{type:a.ScrollbarWidthService}]},propDecorators:{hostClass:[{type:n.HostBinding,args:["class.k-d-flex"]},{type:n.HostBinding,args:["class.k-pos-relative"]}],rightPositionClass:[{type:n.HostBinding,args:["class.k-flex-row"]}],leftPositionClass:[{type:n.HostBinding,args:["class.k-flex-row-reverse"]}],bottomPositionClass:[{type:n.HostBinding,args:["class.k-flex-column"]}],topPositionClass:[{type:n.HostBinding,args:["class.k-flex-column-reverse"]}],dir:[{type:n.HostBinding,args:["attr.dir"]}],ariaRole:[{type:n.HostBinding,args:["attr.role"]}],colHeadersTable:[{type:n.ViewChild,args:["colHeadersTable",{read:n.ElementRef}]}],rowHeadersTable:[{type:n.ViewChild,args:["rowHeadersTable",{read:n.ElementRef}]}],valuesTable:[{type:n.ViewChild,args:["valuesTable",{read:n.ElementRef}]}],table:[{type:n.ViewChild,args:["table",{read:n.ElementRef}]}],loaderSettings:[{type:n.Input}],configurator:[{type:n.Input}],columnHeadersWidth:[{type:n.Input}]}});var ue,ge=function(e,t,n){this.columnAxes=e,this.rowAxes=t,this.measureAxes=n},fe=(h(he,ue=l.PreventableEvent),he);function he(e){var t=ue.call(this)||this;return Object.assign(t,e),t}h(ye,me=l.PreventableEvent);var me,ve=ye;function ye(e){var t=me.call(this)||this;return Object.assign(t,e),t}Object.defineProperty(F.prototype,"state",{get:function(){return new ge(this.columnAxes,this.rowAxes,this.measureAxes)},enumerable:!1,configurable:!0}),F.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=d.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 ve(t);if(o.configurationChange.emit(e),e.isDefaultPrevented())return}o.dataService.configuredFields.next({columnAxes:t.columnAxes,rowAxes:t.rowAxes,measureAxes:t.measureAxes}),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},F.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},F.prototype.updateDataServiceFields=function(){this.dataService.normalizedData=this.dataState.data,this.dataService.rows=this.dataState.rows,this.dataService.columns=this.dataState.columns,this.dataService.updateRowsAndCols()},F.prototype.updateConfiguratorFields=function(){this.dataService.fields.next(this.configuratorFields),this.dataService.configuredFields.next({columnAxes:this.columnAxes,rowAxes:this.rowAxes,measureAxes:this.measureAxes})},F.prototype.updateHeaders=function(e,t,n){n={type:d.HEADERS_ACTION.toggle,payload:n},n=d.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 fe(t);if(this.expandChange.emit(t),t.isDefaultPrevented())return}this[e]=n,this.loadData(this.state)};g=F;function F(e,t){this.dataService=e,this.zone=t,this.columnAxes=[],this.rowAxes=[],this.measureAxes=[],this.expandChange=new n.EventEmitter,this.configurationChange=new n.EventEmitter,this.dataLoaded=new n.EventEmitter,this.subs=new i.Subscription}g.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:g,deps:[{token:y},{token:r.NgZone}],target:r.ɵɵFactoryTarget.Directive}),g.ɵdir=r.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:g,selector:"kendo-base-binding-directive",inputs:{columnAxes:"columnAxes",rowAxes:"rowAxes",measureAxes:"measureAxes"},outputs:{expandChange:"expandChange",configurationChange:"configurationChange",dataLoaded:"dataLoaded"},ngImport:r}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:g,decorators:[{type:n.Directive,args:[{selector:"kendo-base-binding-directive"}]}],ctorParameters:function(){return[{type:y},{type:r.NgZone}]},propDecorators:{columnAxes:[{type:n.Input}],rowAxes:[{type:n.Input}],measureAxes:[{type:n.Input}],expandChange:[{type:n.Output}],configurationChange:[{type:n.Output}],dataLoaded:[{type:n.Output}]}});var be,xe={dataField:"aggregate",columnsData:"columns"},p=(h(P,be=g),P.prototype.ngOnChanges=function(e){l.anyChanged(["data","dimensions","columnAxes","rowAxes","measureAxes","measures"],e)&&this.loadData(this.state)},P.prototype.fetchChildren=function(e){return e.children},P.prototype.loadFields=function(){this.configuratorFields=d.createFlatSchemaDimensions(this.dimensions,this.measures),this.updateConfiguratorFields()},P.prototype.loadData=function(e){var n=this,t=e.columnAxes,o=e.rowAxes,e=e.measureAxes,r=this.getRootAxes(t),i=this.getRootAxes(o),r=r.split("&").map(this.createAxisSettings),i=i.split("&").map(this.createAxisSettings),e=e.map(function(t){return n.measures.find(function(e){return String(e.name)===String(t.name)})}).filter(Boolean),a=d.createDataTree(this.data,i,r,e,xe);this.dataState=d.createLocalDataState({dataTree:a,rowSettings:i,columnSettings:r,rowAxes:o,columnAxes:t,measures:e,sort:[],fields:xe}),this.updateDataServiceFields()},P.prototype.getRootAxes=function(e){return Array.from(d.rootFields(e).keys()).join("&")},P);function P(e,t){var n=be.call(this,e,t)||this;return n.type="local",n.createAxisSettings=function(e){return Object.assign({key:e},n.dimensions[e])},n}p.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:p,deps:[{token:y},{token:r.NgZone}],target:r.ɵɵFactoryTarget.Directive}),p.ɵdir=r.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:p,selector:"[kendoPivotLocalBinding]",inputs:{data:["kendoPivotLocalBinding","data"],dimensions:"dimensions",measures:"measures"},exportAs:["kendoPivotLocalBinding"],usesInheritance:!0,usesOnChanges:!0,ngImport:r}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:p,decorators:[{type:n.Directive,args:[{selector:"[kendoPivotLocalBinding]",exportAs:"kendoPivotLocalBinding"}]}],ctorParameters:function(){return[{type:y},{type:r.NgZone}]},propDecorators:{data:[{type:n.Input,args:["kendoPivotLocalBinding"]}],dimensions:[{type:n.Input}],measures:[{type:n.Input}]}});h(N,ke=g),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,e=e.measureAxes,n=(this.dataService.loading.next(!0),{connection:{catalog:this.catalog,cube:this.cube},columnAxes:n,rowAxes:o,measureAxes:e});d.fetchData({url:this.url},JSON.parse(JSON.stringify(n))).then(d.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"};d.fetchDiscover({url:this.url},e).then(function(e){d.addKPI(e),t.configuratorFields=e,t.updateConfiguratorFields()})},N.prototype.updateFields=function(r,i){return _(this,void 0,void 0,function(){var t,n,o;return K(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=d.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 _(this,void 0,void 0,function(){var t;return K(this,function(e){return t={connection:{catalog:this.catalog,cube:this.cube},restrictions:{catalogName:this.catalog,cubeName:this.cube},command:"schemaKPIs"},[2,d.fetchDiscover({url:this.url},t)]})})},N.prototype.loadAvailableFields=function(i){return _(this,void 0,void 0,function(){var t,n,o,r;return K(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,d.fetchDiscover({url:this.url},r)]})})};var ke,c=N;function N(e,t){e=ke.call(this,e,t)||this;return e.type="olap",e}c.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:c,deps:[{token:y},{token:r.NgZone}],target:r.ɵɵFactoryTarget.Directive}),c.ɵdir=r.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"12.2.16",type:c,selector:"[kendoPivotOLAPBinding]",inputs:{url:"url",cube:"cube",catalog:"catalog"},exportAs:["kendoPivotOLAPBinding"],usesInheritance:!0,usesOnChanges:!0,ngImport:r}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:c,decorators:[{type:n.Directive,args:[{selector:"[kendoPivotOLAPBinding]",exportAs:"kendoPivotOLAPBinding"}]}],ctorParameters:function(){return[{type:y},{type:r.NgZone}]},propDecorators:{url:[{type:n.Input}],cube:[{type:n.Input}],catalog:[{type:n.Input}]}});h(Ie,Te=u),Object.defineProperty(Ie.prototype,"override",{get:function(){return!0},enumerable:!1,configurable:!0});var Te,L=Ie;function Ie(e){var t=Te.call(this)||this;return t.service=e,t}L.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:L,deps:[{token:s.LocalizationService}],target:r.ɵɵFactoryTarget.Component}),L.ɵcmp=r.ɵɵngDeclareComponent({minVersion:"12.0.0",version:"12.2.16",type:L,selector:"kendo-pivotgrid-messages",providers:[{provide:u,useExisting:n.forwardRef(function(){return L})}],usesInheritance:!0,ngImport:r,template:"",isInline:!0}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:L,decorators:[{type:n.Component,args:[{providers:[{provide:u,useExisting:n.forwardRef(function(){return L})}],selector:"kendo-pivotgrid-messages",template:""}]}],ctorParameters:function(){return[{type:s.LocalizationService}]}});var t=[H.CommonModule,l.EventsModule,V.IndicatorsModule,G.ButtonsModule,z.TreeViewModule,j.InputsModule,l.DraggableModule],g=[f,x,D,b,p,c,O,C,S,L],u=[f,x,b,p,c,L],B=function(){};B.ɵfac=r.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:B,deps:[],target:r.ɵɵFactoryTarget.NgModule}),B.ɵmod=r.ɵɵngDeclareNgModule({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:B,declarations:[f,x,D,b,p,c,O,C,S,L],imports:[H.CommonModule,l.EventsModule,V.IndicatorsModule,G.ButtonsModule,z.TreeViewModule,j.InputsModule,l.DraggableModule],exports:[f,x,b,p,c,L]}),B.ɵinj=r.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:B,imports:[v([],m(t))]}),r.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"12.2.16",ngImport:r,type:B,decorators:[{type:n.NgModule,args:[{imports:v([],m(t)),declarations:v([],m(g)),exports:v([],m(u))}]}]}),Object.defineProperty(e,"averageAggregate",{enumerable:!0,get:function(){return d.averageAggregate}}),Object.defineProperty(e,"maxAggregate",{enumerable:!0,get:function(){return d.maxAggregate}}),Object.defineProperty(e,"minAggregate",{enumerable:!0,get:function(){return d.minAggregate}}),Object.defineProperty(e,"sumAggregate",{enumerable:!0,get:function(){return d.sumAggregate}}),e.ConfigurationChangeEvent=ve,e.CustomMessagesComponent=L,e.DraggableChipDirective=O,e.DropTargetDirective=C,e.ExpandChangeEvent=fe,e.PivotGridCellDirective=b,e.PivotGridComponent=f,e.PivotGridConfiguratorComponent=D,e.PivotGridModule=B,e.PivotGridTableComponent=x,e.PivotLocalBindingDirective=p,e.PivotOLAPBindingDirective=c,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
|
|
6
|
+
import { PivotGridField, PivotGridConfiguratorState } from '@progress/kendo-pivotgrid-common';
|
|
7
|
+
import { TreeItem } from '@progress/kendo-angular-treeview';
|
|
8
|
+
import { PivotGridDataService } from '../data-binding/pivotgrid-data.service';
|
|
9
|
+
import { ConfiguratorService } from './configurator.service';
|
|
10
|
+
import { Observable } from 'rxjs';
|
|
11
|
+
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
* Represents the Kendo UI PivotGrid Configurator component for Angular.
|
|
16
|
+
*/
|
|
17
|
+
export declare class PivotGridConfiguratorComponent implements OnInit, OnDestroy {
|
|
18
|
+
private dataService;
|
|
19
|
+
private localization;
|
|
20
|
+
configuratorService: ConfiguratorService;
|
|
21
|
+
private cdr;
|
|
22
|
+
hostClass: boolean;
|
|
23
|
+
horizontal: boolean;
|
|
24
|
+
originalState: PivotGridConfiguratorState;
|
|
25
|
+
state: PivotGridConfiguratorState;
|
|
26
|
+
fields: PivotGridField[];
|
|
27
|
+
checked: any[];
|
|
28
|
+
private subs;
|
|
29
|
+
/**
|
|
30
|
+
* A function which determines if a specific node has child nodes.
|
|
31
|
+
*/
|
|
32
|
+
hasChildren: (node: any) => boolean;
|
|
33
|
+
constructor(dataService: PivotGridDataService, localization: LocalizationService, configuratorService: ConfiguratorService, cdr: ChangeDetectorRef);
|
|
34
|
+
ngOnInit(): void;
|
|
35
|
+
ngOnDestroy(): void;
|
|
36
|
+
getName(name: string[]): string;
|
|
37
|
+
setState(state: PivotGridConfiguratorState): void;
|
|
38
|
+
/**
|
|
39
|
+
* Returns the localized message for a given token
|
|
40
|
+
*/
|
|
41
|
+
messageFor(localizationToken: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves the 'Columns' section item names
|
|
44
|
+
*/
|
|
45
|
+
get columnHierarchies(): unknown[];
|
|
46
|
+
/**
|
|
47
|
+
* Retrieves the 'Rows' section item names
|
|
48
|
+
*/
|
|
49
|
+
get rowHierarchies(): unknown[];
|
|
50
|
+
/**
|
|
51
|
+
* Retrieves the 'Value' section item names
|
|
52
|
+
*/
|
|
53
|
+
get measureHierarchies(): unknown[];
|
|
54
|
+
/**
|
|
55
|
+
* Constructs an array with all selected fields.
|
|
56
|
+
* @param fields - used for when child nodes are loaded on demand.
|
|
57
|
+
* Child nodes are concatinated to the root level nodes.
|
|
58
|
+
*/
|
|
59
|
+
setChecked(fields?: any[]): void;
|
|
60
|
+
/**
|
|
61
|
+
* A function which determines if a specific node is checked/
|
|
62
|
+
*/
|
|
63
|
+
isItemChecked(node: any): any;
|
|
64
|
+
/**
|
|
65
|
+
* Determines if a checkbox should be rendered.
|
|
66
|
+
*/
|
|
67
|
+
isSelectable(node: any): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* A function which provides the child nodes for a given parent node.
|
|
70
|
+
*/
|
|
71
|
+
children: (node: any) => Observable<any[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if the newly loaded child nodes have checked items.
|
|
74
|
+
* (Only for OLAP data-binding directive)
|
|
75
|
+
*/
|
|
76
|
+
handleChildrenLoaded(event: {
|
|
77
|
+
children: TreeItem[];
|
|
78
|
+
item: TreeItem;
|
|
79
|
+
}): void;
|
|
80
|
+
handleCheckedChange(event: any, item: any): void;
|
|
81
|
+
handleSubmit(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Reset the configurator to the last saved state
|
|
84
|
+
*/
|
|
85
|
+
handleReset(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Flattens all available fields.
|
|
88
|
+
*/
|
|
89
|
+
private getFieldsFlatMap;
|
|
90
|
+
/**
|
|
91
|
+
* Creates an array containing only the field names, e.g. '[Date].[Calendar]' or 'Product'
|
|
92
|
+
*/
|
|
93
|
+
private extractDefaultFields;
|
|
94
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PivotGridConfiguratorComponent, never>;
|
|
95
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PivotGridConfiguratorComponent, "kendo-pivotgrid-configurator", never, { "horizontal": "horizontal"; }, {}, never, never>;
|
|
96
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { EventEmitter } from '@angular/core';
|
|
6
|
+
import { PivotGridConfiguratorState } from '@progress/kendo-pivotgrid-common';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export declare class ConfiguratorService {
|
|
12
|
+
state: PivotGridConfiguratorState;
|
|
13
|
+
configuratorStateChange: EventEmitter<any>;
|
|
14
|
+
parseConfiguratorState(action: any): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfiguratorService, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ConfiguratorService>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { ElementRef, OnInit, NgZone, OnDestroy } from '@angular/core';
|
|
6
|
+
import { DraggableDirective } from '@progress/kendo-angular-common';
|
|
7
|
+
import { PivotGridAxis } from '@progress/kendo-pivotgrid-common';
|
|
8
|
+
import { ConfiguratorService } from './configurator.service';
|
|
9
|
+
import { DropCueService } from './drop-cue.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
export declare class DraggableChipDirective implements OnInit, OnDestroy {
|
|
15
|
+
draggable: DraggableDirective;
|
|
16
|
+
private element;
|
|
17
|
+
private zone;
|
|
18
|
+
private service;
|
|
19
|
+
private cue;
|
|
20
|
+
get pointerEvents(): any;
|
|
21
|
+
touchActions: string;
|
|
22
|
+
constructor(draggable: DraggableDirective, element: ElementRef, zone: NgZone, service: ConfiguratorService, cue: DropCueService);
|
|
23
|
+
item: PivotGridAxis;
|
|
24
|
+
initialX: any;
|
|
25
|
+
initialY: any;
|
|
26
|
+
private drag;
|
|
27
|
+
private subs;
|
|
28
|
+
ngOnInit(): void;
|
|
29
|
+
ngOnDestroy(): void;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DraggableChipDirective, [{ optional: true; }, null, null, null, null]>;
|
|
31
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableChipDirective, "[kendoChipDraggable]", never, { "item": "item"; }, {}, never>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* @hidden
|
|
8
|
+
*/
|
|
9
|
+
export declare const append: (element: any) => () => any;
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
export declare class DropCueService {
|
|
14
|
+
private dom;
|
|
15
|
+
create(): void;
|
|
16
|
+
attach(): Function;
|
|
17
|
+
remove(): void;
|
|
18
|
+
hide(): void;
|
|
19
|
+
position({ left, top, height }: any): void;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DropCueService, never>;
|
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DropCueService>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { ElementRef, NgZone, OnDestroy, OnInit, Renderer2 } from "@angular/core";
|
|
6
|
+
import { PivotGridAxis, PivotGridConfiguratorDropZone } from "@progress/kendo-pivotgrid-common";
|
|
7
|
+
import { ConfiguratorService } from "./configurator.service";
|
|
8
|
+
import { DropCueService } from "./drop-cue.service";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
export declare class DropTargetDirective implements OnInit, OnDestroy {
|
|
14
|
+
private element;
|
|
15
|
+
private configuratorService;
|
|
16
|
+
private cue;
|
|
17
|
+
private renderer;
|
|
18
|
+
private zone;
|
|
19
|
+
item: PivotGridAxis;
|
|
20
|
+
axes: PivotGridConfiguratorDropZone;
|
|
21
|
+
private elementType;
|
|
22
|
+
private targetElement;
|
|
23
|
+
private subs;
|
|
24
|
+
constructor(element: ElementRef, configuratorService: ConfiguratorService, cue: DropCueService, renderer: Renderer2, zone: NgZone);
|
|
25
|
+
ngOnInit(): void;
|
|
26
|
+
ngOnDestroy(): void;
|
|
27
|
+
private handleMouseEnter;
|
|
28
|
+
private handleMouseMove;
|
|
29
|
+
private handleMouseLeave;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DropTargetDirective, never>;
|
|
31
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DropTargetDirective, "[kendoDropTarget]", never, { "item": "item"; "axes": "axes"; }, {}, never>;
|
|
32
|
+
}
|
|
@@ -2,18 +2,25 @@
|
|
|
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
|
-
import { NgZone } from '@angular/core';
|
|
5
|
+
import { EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
|
|
6
6
|
import { PivotGridDataService } from './pivotgrid-data.service';
|
|
7
7
|
import { DataState, PivotGridAxis } from '@progress/kendo-pivotgrid-common';
|
|
8
|
+
import { PivotGridState } from '../models/configurator-settings';
|
|
9
|
+
import { ExpandChangeEvent } from '../models/expanded-change-event';
|
|
10
|
+
import { ConfigurationChangeEvent } from '../models/configuration-change-event';
|
|
11
|
+
import { PivotDataRowItem } from '../models/data-row-item';
|
|
8
12
|
import * as i0 from "@angular/core";
|
|
9
13
|
/**
|
|
10
14
|
* @hidden
|
|
11
15
|
* A directive which binds the PivotGrid to an array of objects.
|
|
12
16
|
*/
|
|
13
|
-
export declare abstract class PivotBaseBindingDirective {
|
|
17
|
+
export declare abstract class PivotBaseBindingDirective implements OnInit, OnDestroy {
|
|
14
18
|
protected dataService: PivotGridDataService;
|
|
15
19
|
private zone;
|
|
16
|
-
protected abstract loadData(): void;
|
|
20
|
+
protected abstract loadData(state: PivotGridState): void;
|
|
21
|
+
protected abstract loadFields(): void;
|
|
22
|
+
abstract fetchChildren(state: any, fields: any): Promise<any>;
|
|
23
|
+
abstract type: 'local' | 'olap';
|
|
17
24
|
/**
|
|
18
25
|
* Represents the column axes configuration of the PivotGrid.
|
|
19
26
|
*/
|
|
@@ -26,13 +33,34 @@ export declare abstract class PivotBaseBindingDirective {
|
|
|
26
33
|
* Represents the measure axes configuration of the PivotGrid.
|
|
27
34
|
*/
|
|
28
35
|
measureAxes: PivotGridAxis[];
|
|
36
|
+
/**
|
|
37
|
+
* Fires each time a row or column header gets expanded or collapsed by the end user. The event is preventable.
|
|
38
|
+
* If you prevent the event, the PivotGrid will not be rerendered with the new state, resulting from the end user interaction.
|
|
39
|
+
*/
|
|
40
|
+
expandChange: EventEmitter<ExpandChangeEvent>;
|
|
41
|
+
/**
|
|
42
|
+
* Fires when the Configurator Apply button is pressed. The event is preventable.
|
|
43
|
+
* If you prevent the event, the PivotGrid will not be rerendered with the new state, resulting from the configuration changes, applied through the configurator interface.
|
|
44
|
+
*/
|
|
45
|
+
configurationChange: EventEmitter<ConfigurationChangeEvent>;
|
|
46
|
+
/**
|
|
47
|
+
* Fires each time when new data is loaded and transformed to show aggregated values.
|
|
48
|
+
* The event fires upon initialization and on user interaction that changes the state of the PivotGrid.
|
|
49
|
+
*/
|
|
50
|
+
dataLoaded: EventEmitter<PivotDataRowItem[]>;
|
|
29
51
|
protected dataState: DataState;
|
|
30
|
-
|
|
52
|
+
protected configuratorFields: any;
|
|
53
|
+
private subs;
|
|
31
54
|
constructor(dataService: PivotGridDataService, zone: NgZone);
|
|
55
|
+
/**
|
|
56
|
+
* @hidden
|
|
57
|
+
*/
|
|
58
|
+
get state(): PivotGridState;
|
|
32
59
|
ngOnInit(): void;
|
|
33
60
|
ngOnDestroy(): void;
|
|
34
61
|
protected updateDataServiceFields(): void;
|
|
62
|
+
protected updateConfiguratorFields(): void;
|
|
35
63
|
private updateHeaders;
|
|
36
64
|
static ɵfac: i0.ɵɵFactoryDeclaration<PivotBaseBindingDirective, never>;
|
|
37
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<PivotBaseBindingDirective, "kendo-base-binding-directive", never, { "columnAxes": "columnAxes"; "rowAxes": "rowAxes"; "measureAxes": "measureAxes"; }, {}, never>;
|
|
65
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PivotBaseBindingDirective, "kendo-base-binding-directive", never, { "columnAxes": "columnAxes"; "rowAxes": "rowAxes"; "measureAxes": "measureAxes"; }, { "expandChange": "expandChange"; "configurationChange": "configurationChange"; "dataLoaded": "dataLoaded"; }, never>;
|
|
38
66
|
}
|
|
@@ -6,6 +6,7 @@ import { NgZone, SimpleChanges } from '@angular/core';
|
|
|
6
6
|
import { PivotGridDataService } from './pivotgrid-data.service';
|
|
7
7
|
import { Dimension, Measure } from '@progress/kendo-pivotgrid-common';
|
|
8
8
|
import { PivotBaseBindingDirective } from './base-binding-directive';
|
|
9
|
+
import { PivotGridState } from '../models/configurator-settings';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
/**
|
|
11
12
|
* A directive which binds the PivotGrid to local data ([see example]({% slug directives_databinding_local_pivotgrid %})).
|
|
@@ -25,9 +26,15 @@ export declare class PivotLocalBindingDirective extends PivotBaseBindingDirectiv
|
|
|
25
26
|
* Represents the measures collection of the PivotGrid.
|
|
26
27
|
*/
|
|
27
28
|
measures: Measure[];
|
|
29
|
+
type: 'local' | 'olap';
|
|
28
30
|
constructor(dataService: PivotGridDataService, zone: NgZone);
|
|
29
31
|
ngOnChanges(changes: SimpleChanges): void;
|
|
30
|
-
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
fetchChildren(node: any): Promise<any>;
|
|
36
|
+
protected loadFields(): void;
|
|
37
|
+
protected loadData(state: PivotGridState): void;
|
|
31
38
|
private createAxisSettings;
|
|
32
39
|
private getRootAxes;
|
|
33
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<PivotLocalBindingDirective, never>;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { NgZone, SimpleChanges } from '@angular/core';
|
|
6
6
|
import { PivotGridDataService } from './pivotgrid-data.service';
|
|
7
7
|
import { PivotBaseBindingDirective } from './base-binding-directive';
|
|
8
|
+
import { PivotGridState } from '../models/configurator-settings';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
/**
|
|
10
11
|
* A directive which binds the PivotGrid to data using an Online Analytical Processing (OLAP) service ([see example]({% slug directives_databinding_remote_pivotgrid %})).
|
|
@@ -22,9 +23,20 @@ export declare class PivotOLAPBindingDirective extends PivotBaseBindingDirective
|
|
|
22
23
|
* The database name that is used to retrieve the data from the specified connection string.
|
|
23
24
|
*/
|
|
24
25
|
catalog: string;
|
|
26
|
+
type: 'local' | 'olap';
|
|
25
27
|
constructor(dataService: PivotGridDataService, zone: NgZone);
|
|
26
28
|
ngOnChanges(changes: SimpleChanges): void;
|
|
27
|
-
protected loadData(): void;
|
|
29
|
+
protected loadData(state: PivotGridState): void;
|
|
30
|
+
protected loadFields(): void;
|
|
31
|
+
protected updateFields(event: any, fields: any): Promise<any>;
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
fetchChildren(event: any, fields: any): Promise<any>;
|
|
36
|
+
private normalizeKPIs;
|
|
37
|
+
private getField;
|
|
38
|
+
private loadKPIs;
|
|
39
|
+
private loadAvailableFields;
|
|
28
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<PivotOLAPBindingDirective, never>;
|
|
29
41
|
static ɵdir: i0.ɵɵDirectiveDeclaration<PivotOLAPBindingDirective, "[kendoPivotOLAPBinding]", ["kendoPivotOLAPBinding"], { "url": "url"; "cube": "cube"; "catalog": "catalog"; }, {}, never>;
|
|
30
42
|
}
|