UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

1,018 lines (897 loc) 99.6 kB
/*! * devextreme-angular * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/devextreme-angular */ /* tslint:disable:max-line-length */ import { TransferState, Component, NgModule, ElementRef, NgZone, PLATFORM_ID, Inject, Input, Output, EventEmitter } from '@angular/core'; import DxPivotGrid from 'devextreme/ui/pivot_grid'; import { DxComponent, DxTemplateHost, DxIntegrationModule, DxTemplateModule, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core'; import { DxoExportModule } from 'devextreme-angular/ui/nested'; import { DxoFieldChooserModule } from 'devextreme-angular/ui/nested'; import { DxoTextsModule } from 'devextreme-angular/ui/nested'; import { DxoFieldPanelModule } from 'devextreme-angular/ui/nested'; import { DxoHeaderFilterModule } from 'devextreme-angular/ui/nested'; import { DxoSearchModule } from 'devextreme-angular/ui/nested'; import { DxoLoadPanelModule } from 'devextreme-angular/ui/nested'; import { DxoScrollingModule } from 'devextreme-angular/ui/nested'; import { DxoStateStoringModule } from 'devextreme-angular/ui/nested'; import { DxoPivotGridExportModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridFieldChooserModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridFieldChooserTextsModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridFieldPanelModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridFieldPanelTextsModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridHeaderFilterModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridHeaderFilterTextsModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridLoadPanelModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridPivotGridTextsModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridScrollingModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridSearchModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridStateStoringModule } from 'devextreme-angular/ui/pivot-grid/nested'; import { DxoPivotGridTextsModule } from 'devextreme-angular/ui/pivot-grid/nested'; import * as i0 from "@angular/core"; import * as i1 from "devextreme-angular/core"; /** * The PivotGrid is a UI component that allows you to display and analyze multi-dimensional data from a local storage or an OLAP cube. */ export class DxPivotGridComponent extends DxComponent { _watcherHelper; _idh; instance = null; /** * Allows users to expand/collapse all header items within the same header level. Ignored if the PivotGridDataSource's paginate property is true. */ get allowExpandAll() { return this._getOption('allowExpandAll'); } set allowExpandAll(value) { this._setOption('allowExpandAll', value); } /** * Allows a user to filter fields by selecting or deselecting values in the popup menu. */ get allowFiltering() { return this._getOption('allowFiltering'); } set allowFiltering(value) { this._setOption('allowFiltering', value); } /** * Allows an end user to change sorting properties. */ get allowSorting() { return this._getOption('allowSorting'); } set allowSorting(value) { this._setOption('allowSorting', value); } /** * Allows users to sort the pivot grid by summary values instead of field values. Ignored if the PivotGridDataSource's paginate property is true. */ get allowSortingBySummary() { return this._getOption('allowSortingBySummary'); } set allowSortingBySummary(value) { this._setOption('allowSortingBySummary', value); } /** * Specifies the area to which data field headers must belong. */ get dataFieldArea() { return this._getOption('dataFieldArea'); } set dataFieldArea(value) { this._setOption('dataFieldArea', value); } /** * Binds the UI component to data. */ get dataSource() { return this._getOption('dataSource'); } set dataSource(value) { this._setOption('dataSource', value); } /** * Specifies whether the UI component responds to user interaction. */ get disabled() { return this._getOption('disabled'); } set disabled(value) { this._setOption('disabled', value); } /** * Specifies the global attributes to be attached to the UI component's container element. */ get elementAttr() { return this._getOption('elementAttr'); } set elementAttr(value) { this._setOption('elementAttr', value); } /** * Specifies whether HTML tags are displayed as plain text or applied to cell values. */ get encodeHtml() { return this._getOption('encodeHtml'); } set encodeHtml(value) { this._setOption('encodeHtml', value); } /** * Configures client-side exporting. */ get export() { return this._getOption('export'); } set export(value) { this._setOption('export', value); } /** * The Field Chooser configuration properties. */ get fieldChooser() { return this._getOption('fieldChooser'); } set fieldChooser(value) { this._setOption('fieldChooser', value); } /** * Configures the field panel. */ get fieldPanel() { return this._getOption('fieldPanel'); } set fieldPanel(value) { this._setOption('fieldPanel', value); } /** * Configures the header filter feature. */ get headerFilter() { return this._getOption('headerFilter'); } set headerFilter(value) { this._setOption('headerFilter', value); } /** * Specifies the UI component's height. */ get height() { return this._getOption('height'); } set height(value) { this._setOption('height', value); } /** * Specifies whether or not to hide rows and columns with no data. */ get hideEmptySummaryCells() { return this._getOption('hideEmptySummaryCells'); } set hideEmptySummaryCells(value) { this._setOption('hideEmptySummaryCells', value); } /** * Specifies text for a hint that appears when a user pauses on the UI component. */ get hint() { return this._getOption('hint'); } set hint(value) { this._setOption('hint', value); } /** * Specifies properties configuring the load panel. */ get loadPanel() { return this._getOption('loadPanel'); } set loadPanel(value) { this._setOption('loadPanel', value); } /** * Specifies the layout of items in the row header. */ get rowHeaderLayout() { return this._getOption('rowHeaderLayout'); } set rowHeaderLayout(value) { this._setOption('rowHeaderLayout', value); } /** * Switches the UI component to a right-to-left representation. */ get rtlEnabled() { return this._getOption('rtlEnabled'); } set rtlEnabled(value) { this._setOption('rtlEnabled', value); } /** * A configuration object specifying scrolling properties. */ get scrolling() { return this._getOption('scrolling'); } set scrolling(value) { this._setOption('scrolling', value); } /** * Specifies whether the outer borders of the grid are visible or not. */ get showBorders() { return this._getOption('showBorders'); } set showBorders(value) { this._setOption('showBorders', value); } /** * Specifies whether to display the Grand Total column. */ get showColumnGrandTotals() { return this._getOption('showColumnGrandTotals'); } set showColumnGrandTotals(value) { this._setOption('showColumnGrandTotals', value); } /** * Specifies whether to display the Total columns. */ get showColumnTotals() { return this._getOption('showColumnTotals'); } set showColumnTotals(value) { this._setOption('showColumnTotals', value); } /** * Specifies whether to display the Grand Total row. */ get showRowGrandTotals() { return this._getOption('showRowGrandTotals'); } set showRowGrandTotals(value) { this._setOption('showRowGrandTotals', value); } /** * Specifies whether to display the Total rows. Applies only if rowHeaderLayout is 'standard'. */ get showRowTotals() { return this._getOption('showRowTotals'); } set showRowTotals(value) { this._setOption('showRowTotals', value); } /** * Specifies where to show the total rows or columns. */ get showTotalsPrior() { return this._getOption('showTotalsPrior'); } set showTotalsPrior(value) { this._setOption('showTotalsPrior', value); } /** * A configuration object specifying properties related to state storing. */ get stateStoring() { return this._getOption('stateStoring'); } set stateStoring(value) { this._setOption('stateStoring', value); } /** * Specifies the number of the element when the Tab key is used for navigating. */ get tabIndex() { return this._getOption('tabIndex'); } set tabIndex(value) { this._setOption('tabIndex', value); } /** * Strings that can be changed or localized in the PivotGrid UI component. */ get texts() { return this._getOption('texts'); } set texts(value) { this._setOption('texts', value); } /** * Specifies whether the UI component is visible. */ get visible() { return this._getOption('visible'); } set visible(value) { this._setOption('visible', value); } /** * Specifies the UI component's width. */ get width() { return this._getOption('width'); } set width(value) { this._setOption('width', value); } /** * Specifies whether long text in header items should be wrapped. */ get wordWrapEnabled() { return this._getOption('wordWrapEnabled'); } set wordWrapEnabled(value) { this._setOption('wordWrapEnabled', value); } /** * A function that is executed when a pivot grid cell is clicked or tapped. */ onCellClick; /** * A function that is executed after a pivot grid cell is created. */ onCellPrepared; /** * A function that is executed when the UI component is rendered and each time the component is repainted. */ onContentReady; /** * A function that is executed before the context menu is rendered. */ onContextMenuPreparing; /** * A function that is executed before the UI component is disposed of. */ onDisposing; /** * A function that is executed before data is exported. */ onExporting; /** * A function used in JavaScript frameworks to save the UI component instance. */ onInitialized; /** * A function that is executed after a UI component property is changed. */ onOptionChanged; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ allowExpandAllChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ allowFilteringChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ allowSortingChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ allowSortingBySummaryChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ dataFieldAreaChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ dataSourceChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ disabledChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ elementAttrChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ encodeHtmlChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ exportChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ fieldChooserChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ fieldPanelChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ headerFilterChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ heightChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ hideEmptySummaryCellsChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ hintChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ loadPanelChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ rowHeaderLayoutChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ rtlEnabledChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ scrollingChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showBordersChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showColumnGrandTotalsChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showColumnTotalsChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showRowGrandTotalsChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showRowTotalsChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showTotalsPriorChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ stateStoringChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ tabIndexChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ textsChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ visibleChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ widthChange; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ wordWrapEnabledChange; constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) { super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId); this._watcherHelper = _watcherHelper; this._idh = _idh; this._createEventEmitters([ { subscribe: 'cellClick', emit: 'onCellClick' }, { subscribe: 'cellPrepared', emit: 'onCellPrepared' }, { subscribe: 'contentReady', emit: 'onContentReady' }, { subscribe: 'contextMenuPreparing', emit: 'onContextMenuPreparing' }, { subscribe: 'disposing', emit: 'onDisposing' }, { subscribe: 'exporting', emit: 'onExporting' }, { subscribe: 'initialized', emit: 'onInitialized' }, { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { emit: 'allowExpandAllChange' }, { emit: 'allowFilteringChange' }, { emit: 'allowSortingChange' }, { emit: 'allowSortingBySummaryChange' }, { emit: 'dataFieldAreaChange' }, { emit: 'dataSourceChange' }, { emit: 'disabledChange' }, { emit: 'elementAttrChange' }, { emit: 'encodeHtmlChange' }, { emit: 'exportChange' }, { emit: 'fieldChooserChange' }, { emit: 'fieldPanelChange' }, { emit: 'headerFilterChange' }, { emit: 'heightChange' }, { emit: 'hideEmptySummaryCellsChange' }, { emit: 'hintChange' }, { emit: 'loadPanelChange' }, { emit: 'rowHeaderLayoutChange' }, { emit: 'rtlEnabledChange' }, { emit: 'scrollingChange' }, { emit: 'showBordersChange' }, { emit: 'showColumnGrandTotalsChange' }, { emit: 'showColumnTotalsChange' }, { emit: 'showRowGrandTotalsChange' }, { emit: 'showRowTotalsChange' }, { emit: 'showTotalsPriorChange' }, { emit: 'stateStoringChange' }, { emit: 'tabIndexChange' }, { emit: 'textsChange' }, { emit: 'visibleChange' }, { emit: 'widthChange' }, { emit: 'wordWrapEnabledChange' } ]); this._idh.setHost(this); optionHost.setHost(this); } _createInstance(element, options) { return new DxPivotGrid(element, options); } ngOnDestroy() { this._destroyWidget(); } ngOnChanges(changes) { super.ngOnChanges(changes); this.setupChanges('dataSource', changes); } setupChanges(prop, changes) { if (!(prop in this._optionsToUpdate)) { this._idh.setup(prop, changes); } } ngDoCheck() { this._idh.doCheck('dataSource'); this._watcherHelper.checkWatchers(); super.ngDoCheck(); super.clearChangedOptions(); } _setOption(name, value) { let isSetup = this._idh.setupSingle(name, value); let isChanged = this._idh.getChanges(name, value) !== null; if (isSetup || isChanged) { super._setOption(name, value); } } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxPivotGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.DxTemplateHost }, { token: i1.WatcherHelper }, { token: i1.IterableDifferHelper }, { token: i1.NestedOptionHost }, { token: i0.TransferState }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxPivotGridComponent, selector: "dx-pivot-grid", inputs: { allowExpandAll: "allowExpandAll", allowFiltering: "allowFiltering", allowSorting: "allowSorting", allowSortingBySummary: "allowSortingBySummary", dataFieldArea: "dataFieldArea", dataSource: "dataSource", disabled: "disabled", elementAttr: "elementAttr", encodeHtml: "encodeHtml", export: "export", fieldChooser: "fieldChooser", fieldPanel: "fieldPanel", headerFilter: "headerFilter", height: "height", hideEmptySummaryCells: "hideEmptySummaryCells", hint: "hint", loadPanel: "loadPanel", rowHeaderLayout: "rowHeaderLayout", rtlEnabled: "rtlEnabled", scrolling: "scrolling", showBorders: "showBorders", showColumnGrandTotals: "showColumnGrandTotals", showColumnTotals: "showColumnTotals", showRowGrandTotals: "showRowGrandTotals", showRowTotals: "showRowTotals", showTotalsPrior: "showTotalsPrior", stateStoring: "stateStoring", tabIndex: "tabIndex", texts: "texts", visible: "visible", width: "width", wordWrapEnabled: "wordWrapEnabled" }, outputs: { onCellClick: "onCellClick", onCellPrepared: "onCellPrepared", onContentReady: "onContentReady", onContextMenuPreparing: "onContextMenuPreparing", onDisposing: "onDisposing", onExporting: "onExporting", onInitialized: "onInitialized", onOptionChanged: "onOptionChanged", allowExpandAllChange: "allowExpandAllChange", allowFilteringChange: "allowFilteringChange", allowSortingChange: "allowSortingChange", allowSortingBySummaryChange: "allowSortingBySummaryChange", dataFieldAreaChange: "dataFieldAreaChange", dataSourceChange: "dataSourceChange", disabledChange: "disabledChange", elementAttrChange: "elementAttrChange", encodeHtmlChange: "encodeHtmlChange", exportChange: "exportChange", fieldChooserChange: "fieldChooserChange", fieldPanelChange: "fieldPanelChange", headerFilterChange: "headerFilterChange", heightChange: "heightChange", hideEmptySummaryCellsChange: "hideEmptySummaryCellsChange", hintChange: "hintChange", loadPanelChange: "loadPanelChange", rowHeaderLayoutChange: "rowHeaderLayoutChange", rtlEnabledChange: "rtlEnabledChange", scrollingChange: "scrollingChange", showBordersChange: "showBordersChange", showColumnGrandTotalsChange: "showColumnGrandTotalsChange", showColumnTotalsChange: "showColumnTotalsChange", showRowGrandTotalsChange: "showRowGrandTotalsChange", showRowTotalsChange: "showRowTotalsChange", showTotalsPriorChange: "showTotalsPriorChange", stateStoringChange: "stateStoringChange", tabIndexChange: "tabIndexChange", textsChange: "textsChange", visibleChange: "visibleChange", widthChange: "widthChange", wordWrapEnabledChange: "wordWrapEnabledChange" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [ DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxPivotGridComponent, decorators: [{ type: Component, args: [{ selector: 'dx-pivot-grid', template: '', host: { ngSkipHydration: 'true' }, providers: [ DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper ] }] }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i0.TransferState }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }], propDecorators: { allowExpandAll: [{ type: Input }], allowFiltering: [{ type: Input }], allowSorting: [{ type: Input }], allowSortingBySummary: [{ type: Input }], dataFieldArea: [{ type: Input }], dataSource: [{ type: Input }], disabled: [{ type: Input }], elementAttr: [{ type: Input }], encodeHtml: [{ type: Input }], export: [{ type: Input }], fieldChooser: [{ type: Input }], fieldPanel: [{ type: Input }], headerFilter: [{ type: Input }], height: [{ type: Input }], hideEmptySummaryCells: [{ type: Input }], hint: [{ type: Input }], loadPanel: [{ type: Input }], rowHeaderLayout: [{ type: Input }], rtlEnabled: [{ type: Input }], scrolling: [{ type: Input }], showBorders: [{ type: Input }], showColumnGrandTotals: [{ type: Input }], showColumnTotals: [{ type: Input }], showRowGrandTotals: [{ type: Input }], showRowTotals: [{ type: Input }], showTotalsPrior: [{ type: Input }], stateStoring: [{ type: Input }], tabIndex: [{ type: Input }], texts: [{ type: Input }], visible: [{ type: Input }], width: [{ type: Input }], wordWrapEnabled: [{ type: Input }], onCellClick: [{ type: Output }], onCellPrepared: [{ type: Output }], onContentReady: [{ type: Output }], onContextMenuPreparing: [{ type: Output }], onDisposing: [{ type: Output }], onExporting: [{ type: Output }], onInitialized: [{ type: Output }], onOptionChanged: [{ type: Output }], allowExpandAllChange: [{ type: Output }], allowFilteringChange: [{ type: Output }], allowSortingChange: [{ type: Output }], allowSortingBySummaryChange: [{ type: Output }], dataFieldAreaChange: [{ type: Output }], dataSourceChange: [{ type: Output }], disabledChange: [{ type: Output }], elementAttrChange: [{ type: Output }], encodeHtmlChange: [{ type: Output }], exportChange: [{ type: Output }], fieldChooserChange: [{ type: Output }], fieldPanelChange: [{ type: Output }], headerFilterChange: [{ type: Output }], heightChange: [{ type: Output }], hideEmptySummaryCellsChange: [{ type: Output }], hintChange: [{ type: Output }], loadPanelChange: [{ type: Output }], rowHeaderLayoutChange: [{ type: Output }], rtlEnabledChange: [{ type: Output }], scrollingChange: [{ type: Output }], showBordersChange: [{ type: Output }], showColumnGrandTotalsChange: [{ type: Output }], showColumnTotalsChange: [{ type: Output }], showRowGrandTotalsChange: [{ type: Output }], showRowTotalsChange: [{ type: Output }], showTotalsPriorChange: [{ type: Output }], stateStoringChange: [{ type: Output }], tabIndexChange: [{ type: Output }], textsChange: [{ type: Output }], visibleChange: [{ type: Output }], widthChange: [{ type: Output }], wordWrapEnabledChange: [{ type: Output }] } }); export class DxPivotGridModule { /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxPivotGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxPivotGridModule, declarations: [DxPivotGridComponent], imports: [DxoExportModule, DxoFieldChooserModule, DxoTextsModule, DxoFieldPanelModule, DxoHeaderFilterModule, DxoSearchModule, DxoLoadPanelModule, DxoScrollingModule, DxoStateStoringModule, DxoPivotGridExportModule, DxoPivotGridFieldChooserModule, DxoPivotGridFieldChooserTextsModule, DxoPivotGridFieldPanelModule, DxoPivotGridFieldPanelTextsModule, DxoPivotGridHeaderFilterModule, DxoPivotGridHeaderFilterTextsModule, DxoPivotGridLoadPanelModule, DxoPivotGridPivotGridTextsModule, DxoPivotGridScrollingModule, DxoPivotGridSearchModule, DxoPivotGridStateStoringModule, DxoPivotGridTextsModule, DxIntegrationModule, DxTemplateModule], exports: [DxPivotGridComponent, DxoExportModule, DxoFieldChooserModule, DxoTextsModule, DxoFieldPanelModule, DxoHeaderFilterModule, DxoSearchModule, DxoLoadPanelModule, DxoScrollingModule, DxoStateStoringModule, DxoPivotGridExportModule, DxoPivotGridFieldChooserModule, DxoPivotGridFieldChooserTextsModule, DxoPivotGridFieldPanelModule, DxoPivotGridFieldPanelTextsModule, DxoPivotGridHeaderFilterModule, DxoPivotGridHeaderFilterTextsModule, DxoPivotGridLoadPanelModule, DxoPivotGridPivotGridTextsModule, DxoPivotGridScrollingModule, DxoPivotGridSearchModule, DxoPivotGridStateStoringModule, DxoPivotGridTextsModule, DxTemplateModule] }); /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxPivotGridModule, imports: [DxoExportModule, DxoFieldChooserModule, DxoTextsModule, DxoFieldPanelModule, DxoHeaderFilterModule, DxoSearchModule, DxoLoadPanelModule, DxoScrollingModule, DxoStateStoringModule, DxoPivotGridExportModule, DxoPivotGridFieldChooserModule, DxoPivotGridFieldChooserTextsModule, DxoPivotGridFieldPanelModule, DxoPivotGridFieldPanelTextsModule, DxoPivotGridHeaderFilterModule, DxoPivotGridHeaderFilterTextsModule, DxoPivotGridLoadPanelModule, DxoPivotGridPivotGridTextsModule, DxoPivotGridScrollingModule, DxoPivotGridSearchModule, DxoPivotGridStateStoringModule, DxoPivotGridTextsModule, DxIntegrationModule, DxTemplateModule, DxoExportModule, DxoFieldChooserModule, DxoTextsModule, DxoFieldPanelModule, DxoHeaderFilterModule, DxoSearchModule, DxoLoadPanelModule, DxoScrollingModule, DxoStateStoringModule, DxoPivotGridExportModule, DxoPivotGridFieldChooserModule, DxoPivotGridFieldChooserTextsModule, DxoPivotGridFieldPanelModule, DxoPivotGridFieldPanelTextsModule, DxoPivotGridHeaderFilterModule, DxoPivotGridHeaderFilterTextsModule, DxoPivotGridLoadPanelModule, DxoPivotGridPivotGridTextsModule, DxoPivotGridScrollingModule, DxoPivotGridSearchModule, DxoPivotGridStateStoringModule, DxoPivotGridTextsModule, DxTemplateModule] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxPivotGridModule, decorators: [{ type: NgModule, args: [{ imports: [ DxoExportModule, DxoFieldChooserModule, DxoTextsModule, DxoFieldPanelModule, DxoHeaderFilterModule, DxoSearchModule, DxoLoadPanelModule, DxoScrollingModule, DxoStateStoringModule, DxoPivotGridExportModule, DxoPivotGridFieldChooserModule, DxoPivotGridFieldChooserTextsModule, DxoPivotGridFieldPanelModule, DxoPivotGridFieldPanelTextsModule, DxoPivotGridHeaderFilterModule, DxoPivotGridHeaderFilterTextsModule, DxoPivotGridLoadPanelModule, DxoPivotGridPivotGridTextsModule, DxoPivotGridScrollingModule, DxoPivotGridSearchModule, DxoPivotGridStateStoringModule, DxoPivotGridTextsModule, DxIntegrationModule, DxTemplateModule ], declarations: [ DxPivotGridComponent ], exports: [ DxPivotGridComponent, DxoExportModule, DxoFieldChooserModule, DxoTextsModule, DxoFieldPanelModule, DxoHeaderFilterModule, DxoSearchModule, DxoLoadPanelModule, DxoScrollingModule, DxoStateStoringModule, DxoPivotGridExportModule, DxoPivotGridFieldChooserModule, DxoPivotGridFieldChooserTextsModule, DxoPivotGridFieldPanelModule, DxoPivotGridFieldPanelTextsModule, DxoPivotGridHeaderFilterModule, DxoPivotGridHeaderFilterTextsModule, DxoPivotGridLoadPanelModule, DxoPivotGridPivotGridTextsModule, DxoPivotGridScrollingModule, DxoPivotGridSearchModule, DxoPivotGridStateStoringModule, DxoPivotGridTextsModule, DxTemplateModule ] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kaXN0L3VpL3Bpdm90LWdyaWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxvQ0FBb0M7QUFHcEMsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFFTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFlBQVksRUFJZixNQUFNLGVBQWUsQ0FBQztBQVN2QixPQUFPLFdBQVcsTUFBTSwwQkFBMEIsQ0FBQztBQUduRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixvQkFBb0IsRUFDcEIsYUFBYSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXJFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSw4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