@progress/kendo-angular-pivotgrid 21.4.1 → 22.0.0-develop.1

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.
Files changed (62) hide show
  1. package/configurator/chip-menu/chip-menu-item-base.d.ts +1 -1
  2. package/data-binding/base-binding-directive.d.ts +1 -1
  3. package/fesm2022/progress-kendo-angular-pivotgrid.mjs +120 -120
  4. package/localization/messages.d.ts +1 -1
  5. package/package.json +18 -26
  6. package/schematics/ngAdd/index.js +2 -2
  7. package/esm2022/configurator/chip-kb-nav.directive.mjs +0 -69
  8. package/esm2022/configurator/chip-menu/chip-menu-container.component.mjs +0 -51
  9. package/esm2022/configurator/chip-menu/chip-menu-filter.component.mjs +0 -135
  10. package/esm2022/configurator/chip-menu/chip-menu-item-base.mjs +0 -40
  11. package/esm2022/configurator/chip-menu/chip-menu-item-content-template.directive.mjs +0 -29
  12. package/esm2022/configurator/chip-menu/chip-menu-item.component.mjs +0 -206
  13. package/esm2022/configurator/chip-menu/chip-menu-item.directive.mjs +0 -98
  14. package/esm2022/configurator/chip-menu/chip-menu-reorder.component.mjs +0 -198
  15. package/esm2022/configurator/chip-menu/chip-menu-sort.component.mjs +0 -104
  16. package/esm2022/configurator/chip-menu/chip-menu.component.mjs +0 -165
  17. package/esm2022/configurator/chip-menu/chip-menu.service.mjs +0 -40
  18. package/esm2022/configurator/chip-menu/filtering/filter-menu-container.component.mjs +0 -186
  19. package/esm2022/configurator/chip-menu/filtering/filter-menu-dropdownlist.directive.mjs +0 -44
  20. package/esm2022/configurator/chip-menu/filtering/menu-tabbing.service.mjs +0 -20
  21. package/esm2022/configurator/chip-menu/filtering/string-filter-menu.component.mjs +0 -148
  22. package/esm2022/configurator/chip-menu/single-popup.service.mjs +0 -136
  23. package/esm2022/configurator/configurator.component.mjs +0 -806
  24. package/esm2022/configurator/configurator.service.mjs +0 -53
  25. package/esm2022/configurator/draggable.directive.mjs +0 -131
  26. package/esm2022/configurator/drop-cue.service.mjs +0 -86
  27. package/esm2022/configurator/drop-target.directive.mjs +0 -190
  28. package/esm2022/data-binding/base-binding-directive.mjs +0 -164
  29. package/esm2022/data-binding/local-binding.directive.mjs +0 -107
  30. package/esm2022/data-binding/olap-binding.directive.mjs +0 -204
  31. package/esm2022/data-binding/pivotgrid-data.service.mjs +0 -76
  32. package/esm2022/directives.mjs +0 -97
  33. package/esm2022/index.mjs +0 -28
  34. package/esm2022/localization/custom-messages.component.mjs +0 -57
  35. package/esm2022/localization/localized-messages.directive.mjs +0 -39
  36. package/esm2022/localization/messages.mjs +0 -254
  37. package/esm2022/localization/pivot-localization.service.mjs +0 -30
  38. package/esm2022/models/configuration-change-event.mjs +0 -37
  39. package/esm2022/models/configurator-chipmenu-reorder-target.mjs +0 -5
  40. package/esm2022/models/configurator-orientation.mjs +0 -5
  41. package/esm2022/models/configurator-position.mjs +0 -5
  42. package/esm2022/models/configurator-settings.mjs +0 -21
  43. package/esm2022/models/data-row-item.mjs +0 -5
  44. package/esm2022/models/drop-section.mjs +0 -5
  45. package/esm2022/models/drop-target.mjs +0 -5
  46. package/esm2022/models/expanded-change-event.mjs +0 -29
  47. package/esm2022/models/expanded-state-action.mjs +0 -5
  48. package/esm2022/models/loader-settings.mjs +0 -5
  49. package/esm2022/models/virtualization-settings.mjs +0 -25
  50. package/esm2022/package-metadata.mjs +0 -16
  51. package/esm2022/pivotgrid.component.mjs +0 -729
  52. package/esm2022/pivotgrid.module.mjs +0 -87
  53. package/esm2022/progress-kendo-angular-pivotgrid.mjs +0 -8
  54. package/esm2022/rendering/pivotgrid-cell.directive.mjs +0 -247
  55. package/esm2022/rendering/pivotgrid-table.component.mjs +0 -386
  56. package/esm2022/rendering/templates/pivotgrid-cell-template.directive.mjs +0 -44
  57. package/esm2022/rendering/templates/pivotgrid-column-header-cell-template.directive.mjs +0 -44
  58. package/esm2022/rendering/templates/pivotgrid-row-header-cell-template.directive.mjs +0 -44
  59. package/esm2022/rendering/templates/pivotgrid-value-cell-template.directive.mjs +0 -43
  60. package/esm2022/util.mjs +0 -223
  61. package/esm2022/virtual/scroll.service.mjs +0 -18
  62. package/esm2022/virtual/scrollable-container.mjs +0 -128
@@ -1,729 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, ContentChild, ElementRef, HostBinding, Input, NgZone, Renderer2, ViewChild } from '@angular/core';
6
- import { validatePackage } from '@progress/kendo-licensing';
7
- import { packageMetadata } from './package-metadata';
8
- import { isChanged, isDocumentAvailable, ScrollbarWidthService } from '@progress/kendo-angular-common';
9
- import { PivotGridDataService } from './data-binding/pivotgrid-data.service';
10
- import { fromEvent, Subscription } from 'rxjs';
11
- import { cloneArray, syncScroll, syncWheel } from './util';
12
- import { merge } from 'rxjs/operators';
13
- import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
14
- import { ConfiguratorNavigation, PivotGridNavigation } from '@progress/kendo-pivotgrid-common';
15
- import { PivotLocalizationService } from './localization/pivot-localization.service';
16
- import { gearIcon } from '@progress/kendo-svg-icons';
17
- import { CellTemplateDirective } from './rendering/templates/pivotgrid-cell-template.directive';
18
- import { ValueCellTemplateDirective } from './rendering/templates/pivotgrid-value-cell-template.directive';
19
- import { RowHeaderCellTemplateDirective } from './rendering/templates/pivotgrid-row-header-cell-template.directive';
20
- import { ColumnHeaderCellTemplateDirective } from './rendering/templates/pivotgrid-column-header-cell-template.directive';
21
- import { PivotGridConfiguratorComponent } from './configurator/configurator.component';
22
- import { PivotGridTableComponent } from './rendering/pivotgrid-table.component';
23
- import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
24
- import { LoaderComponent } from '@progress/kendo-angular-indicators';
25
- import { IconWrapperComponent } from '@progress/kendo-angular-icons';
26
- import { normalizeVirtualSettings } from './models/virtualization-settings';
27
- import { PivotGridScrollService } from './virtual/scroll.service';
28
- import * as i0 from "@angular/core";
29
- import * as i1 from "./data-binding/pivotgrid-data.service";
30
- import * as i2 from "@progress/kendo-angular-l10n";
31
- import * as i3 from "@progress/kendo-angular-common";
32
- import * as i4 from "./virtual/scroll.service";
33
- const DEFAULT_LOADER_SETTINGS = {
34
- type: 'converging-spinner',
35
- themeColor: 'primary',
36
- size: 'large'
37
- };
38
- const DEFAULT_CONFIGURATOR_SETTINGS = {
39
- position: 'right',
40
- orientation: 'vertical'
41
- };
42
- /**
43
- * Represents the [Kendo UI PivotGrid component for Angular](slug:overview_pivotgrid).
44
- *
45
- * @example
46
- * ```html
47
- * <kendo-pivotgrid
48
- * [kendoPivotLocalBinding]="data"
49
- * [dimensions]="dimensions"
50
- * [measures]="measures"
51
- * [rowAxes]="defaultRowAxes"
52
- * [columnAxes]="defaultColumnAxes"
53
- * [measureAxes]="defaultMeasureAxes"
54
- * [configurator]="true"
55
- * >
56
- * </kendo-pivotgrid>
57
- * ```
58
- *
59
- * @remarks
60
- * Supported children components are: {@link CustomMessagesComponent}
61
- */
62
- export class PivotGridComponent {
63
- hostEl;
64
- zone;
65
- dataService;
66
- localization;
67
- renderer;
68
- scrollService;
69
- hostClass = true;
70
- get rightPositionClass() {
71
- return !this.configuratorSettings || this.configuratorSettings.position === 'right';
72
- }
73
- get leftPositionClass() {
74
- return this.configuratorSettings?.position === 'left';
75
- }
76
- get bottomPositionClass() {
77
- return this.configuratorSettings?.position === 'bottom';
78
- }
79
- get topPositionClass() {
80
- return this.configuratorSettings?.position === 'top';
81
- }
82
- get dir() {
83
- return this.direction;
84
- }
85
- colHeadersTable;
86
- rowHeadersTable;
87
- valuesTable;
88
- table;
89
- configuratorWrapper;
90
- customCellTemplate;
91
- valueCellTemplate;
92
- rowHeaderCellTemplate;
93
- columnHeaderCellTemplate;
94
- /**
95
- * Sets the type, size, and color of the PivotGrid loader.
96
- */
97
- set loaderSettings(settings) {
98
- this._loaderSettings = Object.assign({}, DEFAULT_LOADER_SETTINGS, settings);
99
- }
100
- get loaderSettings() {
101
- return this._loaderSettings;
102
- }
103
- /**
104
- * @hidden
105
- */
106
- get loadingText() {
107
- return this.localization.get('loading');
108
- }
109
- /**
110
- * Controls whether the axes configurator is displayed.
111
- *
112
- * @default false
113
- */
114
- configurator;
115
- /**
116
- * Sets the virtualization options of the component. By default, the virtual scrolling functionality is disabled.
117
- *
118
- * @default false
119
- */
120
- set virtualScrolling(value) {
121
- this._virtualScrolling = normalizeVirtualSettings(value);
122
- this.scrollService.virtualScrolling = !!value;
123
- }
124
- get virtualScrolling() {
125
- return this._virtualScrolling;
126
- }
127
- get configuratorSettings() {
128
- return this.configurator && Object.assign({}, DEFAULT_CONFIGURATOR_SETTINGS, this.configurator);
129
- }
130
- /**
131
- * Sets the width of the column header and data cells. The provided value is treated in pixels [(see example)]({% slug appearance_pivotgrid %}#toc-column-headers-width).
132
- *
133
- * @default 200
134
- */
135
- columnHeadersWidth = 200;
136
- /**
137
- * Specifies whether the keyboard navigation is enabled. When enabled, you can use keyboard shortcuts to interact with the PivotGrid.
138
- * Set to `false` to disable navigation and include the PivotGrid content in the normal tab sequence.
139
- *
140
- * @default true
141
- */
142
- navigable = true;
143
- /**
144
- * Gets the aggregated PivotGrid values that are displayed.
145
- */
146
- get aggregateData() {
147
- return cloneArray(this.dataService.aggregateData);
148
- }
149
- /**
150
- * @hidden
151
- */
152
- gearSVGIcon = gearIcon;
153
- loading;
154
- showConfigurator;
155
- configuratorNavigation;
156
- resizeObservers = [];
157
- _loaderSettings = DEFAULT_LOADER_SETTINGS;
158
- _virtualScrolling = normalizeVirtualSettings(false);
159
- subs = new Subscription();
160
- rtl = false;
161
- direction;
162
- navigation;
163
- navigationSubs;
164
- constructor(hostEl, zone, dataService, localization, renderer, _scrollbarWidthService, scrollService) {
165
- this.hostEl = hostEl;
166
- this.zone = zone;
167
- this.dataService = dataService;
168
- this.localization = localization;
169
- this.renderer = renderer;
170
- this.scrollService = scrollService;
171
- validatePackage(packageMetadata);
172
- this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
173
- this.rtl = rtl;
174
- this.direction = this.rtl ? 'rtl' : 'ltr';
175
- }));
176
- dataService.wrapper = this.hostEl.nativeElement;
177
- this.scrollService.pivotGrid = this;
178
- }
179
- ngAfterViewInit() {
180
- if (isDocumentAvailable()) {
181
- this.zone.runOutsideAngular(() => {
182
- const rowHeadersTable = this.rowHeadersTable.nativeElement.firstElementChild;
183
- const headerColsResizeObserver = new ResizeObserver(() => setTimeout(() => this.resizeContainer('Columns', rowHeadersTable)));
184
- headerColsResizeObserver.observe(rowHeadersTable);
185
- const colHeadersTable = this.colHeadersTable.nativeElement.firstElementChild;
186
- const headerRowsResizeObserver = new ResizeObserver(() => setTimeout(() => this.resizeContainer('Rows', colHeadersTable)));
187
- headerRowsResizeObserver.observe(colHeadersTable);
188
- this.resizeObservers = [headerColsResizeObserver, headerRowsResizeObserver];
189
- this.subs.add(fromEvent(rowHeadersTable, 'wheel')
190
- .pipe(merge(fromEvent(colHeadersTable, 'wheel'), fromEvent(this.valuesTable.nativeElement, 'scroll'))).subscribe((ev) => this.handleScroll(ev)));
191
- if (this.navigable) {
192
- this.initNavigation();
193
- }
194
- const emptyCell = this.hostEl.nativeElement.querySelector('.k-pivotgrid-empty-cell');
195
- emptyCell && this.renderer.setAttribute(emptyCell, 'id', `k-pivotgrid-${this.dataService.pivotGridId}-empty-cell`);
196
- });
197
- }
198
- }
199
- ngAfterContentInit() {
200
- this.subs.add(this.dataService.loading.subscribe(state => this.loading = state));
201
- }
202
- ngOnChanges(changes) {
203
- if (isChanged('navigable', changes)) {
204
- if (this.navigable) {
205
- this.initNavigation();
206
- }
207
- else {
208
- this.stopNavigation();
209
- }
210
- }
211
- }
212
- ngOnDestroy() {
213
- this.resizeObservers.forEach(o => o.disconnect());
214
- this.subs.unsubscribe();
215
- this.stopNavigation();
216
- }
217
- /**
218
- * @hidden
219
- */
220
- messageFor(localizationToken) {
221
- return this.localization.get(localizationToken);
222
- }
223
- /**
224
- * @hidden
225
- */
226
- toggleConfigurator() {
227
- this.showConfigurator = !this.showConfigurator;
228
- if (!this.navigable) {
229
- return;
230
- }
231
- if (this.showConfigurator) {
232
- this.zone.runOutsideAngular(() => setTimeout(() => this.initConfiguratorNavigation()));
233
- }
234
- else {
235
- this.stopConfiguratorNavigation();
236
- const el = this.navigation.current;
237
- if (el) {
238
- this.zone.runOutsideAngular(() => {
239
- setTimeout(() => this.navigation.focusElement(el, null));
240
- });
241
- }
242
- }
243
- }
244
- resizeContainer = (axis, element) => {
245
- const isRows = axis === 'Rows';
246
- const table = this.table.nativeElement;
247
- const size = isRows ? 'offsetHeight' : 'offsetWidth';
248
- table.style[`gridTemplate${axis}`] = '';
249
- table.style[`gridTemplate${axis}`] = `${element[size]}px 1fr`;
250
- };
251
- handleScroll = (event) => {
252
- if (event.target === this.valuesTable.nativeElement) {
253
- syncScroll(event.target, [
254
- this.rowHeadersTable.nativeElement,
255
- this.colHeadersTable.nativeElement
256
- ]);
257
- }
258
- else if (event.target.closest('.k-pivotgrid-row-headers')) {
259
- event.preventDefault();
260
- syncWheel(event, [this.valuesTable.nativeElement, this.rowHeadersTable.nativeElement], 'scrollTop', 'Y');
261
- }
262
- else if (event.target.closest('.k-pivotgrid-column-headers')) {
263
- event.preventDefault();
264
- syncWheel(event, [this.valuesTable.nativeElement, this.colHeadersTable.nativeElement], 'scrollLeft', 'X');
265
- }
266
- };
267
- /**
268
- * @hidden
269
- */
270
- initNavigation() {
271
- this.stopNavigation();
272
- this.navigation = new PivotGridNavigation({ tabIndex: 0 });
273
- this.navigation.start(this.table.nativeElement);
274
- const firstCell = this.navigation.first;
275
- if (firstCell) {
276
- firstCell.setAttribute('tabindex', '0');
277
- }
278
- if (!this.navigationSubs) {
279
- this.navigationSubs = this.dataService.directive?.expandChange.pipe(merge(this.dataService.directive?.configurationChange)).subscribe(() => this.zone.runOutsideAngular(() => {
280
- setTimeout(() => this.navigation.update());
281
- }));
282
- this.subs.add(this.navigationSubs);
283
- }
284
- }
285
- stopNavigation() {
286
- if (this.navigation) {
287
- const lastFocusedEl = this.navigation.elements.find(el => el.hasAttribute('tabindex'));
288
- if (lastFocusedEl) {
289
- this.renderer.removeAttribute(lastFocusedEl, 'tabindex');
290
- }
291
- this.navigation.stop();
292
- }
293
- }
294
- initConfiguratorNavigation() {
295
- this.stopConfiguratorNavigation();
296
- this.configuratorNavigation = new ConfiguratorNavigation({ tabIndex: 0 });
297
- this.configuratorNavigation.start(this.configuratorWrapper.nativeElement);
298
- this.configuratorNavigation.first.setAttribute('tabindex', '0');
299
- }
300
- stopConfiguratorNavigation() {
301
- if (this.configuratorNavigation) {
302
- const lastFocusedEl = this.configuratorNavigation.elements.find(el => el.hasAttribute('tabindex'));
303
- if (lastFocusedEl) {
304
- this.renderer.removeAttribute(lastFocusedEl, 'tabindex');
305
- }
306
- this.configuratorNavigation.stop();
307
- }
308
- }
309
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.PivotGridDataService }, { token: i2.LocalizationService }, { token: i0.Renderer2 }, { token: i3.ScrollbarWidthService }, { token: i4.PivotGridScrollService }], target: i0.ɵɵFactoryTarget.Component });
310
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PivotGridComponent, isStandalone: true, selector: "kendo-pivotgrid", inputs: { loaderSettings: "loaderSettings", configurator: "configurator", virtualScrolling: "virtualScrolling", columnHeadersWidth: "columnHeadersWidth", navigable: "navigable" }, host: { properties: { "class.k-d-flex": "this.hostClass", "class.k-pos-relative": "this.hostClass", "class.k-flex-row": "this.rightPositionClass", "class.k-flex-row-reverse": "this.leftPositionClass", "class.k-flex-column": "this.bottomPositionClass", "class.k-flex-column-reverse": "this.topPositionClass", "attr.dir": "this.dir" } }, providers: [
311
- PivotGridDataService,
312
- LocalizationService,
313
- PivotLocalizationService,
314
- {
315
- provide: L10N_PREFIX,
316
- useValue: 'kendo.pivotgrid'
317
- },
318
- PivotGridScrollService
319
- ], queries: [{ propertyName: "customCellTemplate", first: true, predicate: CellTemplateDirective, descendants: true }, { propertyName: "valueCellTemplate", first: true, predicate: ValueCellTemplateDirective, descendants: true }, { propertyName: "rowHeaderCellTemplate", first: true, predicate: RowHeaderCellTemplateDirective, descendants: true }, { propertyName: "columnHeaderCellTemplate", first: true, predicate: ColumnHeaderCellTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "colHeadersTable", first: true, predicate: ["colHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "rowHeadersTable", first: true, predicate: ["rowHeadersTable"], descendants: true, read: ElementRef }, { propertyName: "valuesTable", first: true, predicate: ["valuesTable"], descendants: true, read: ElementRef }, { propertyName: "table", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "configuratorWrapper", first: true, predicate: ["configurator"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
320
- <ng-container kendoPivotGridLocalizedMessages
321
- i18n-loading="kendo.pivotgrid.loading|The loading text"
322
- loading="Loading"
323
-
324
- i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"
325
- emptyCellLabel="PivotGrid Empty Cell"
326
-
327
- i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"
328
- fieldMenuFilterItemLabel="Filter"
329
-
330
- i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"
331
- fieldMenuSortAscendingItemLabel="Sort ascending"
332
-
333
- i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"
334
- fieldMenuSortDescendingItemLabel="Sort descending"
335
-
336
- i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"
337
- filterInputLabel="{{ '{fields} Filter' }}"
338
-
339
- i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"
340
- filterOperatorsDropDownLabel="{{ '{fields} Filter Operators' }}"
341
-
342
- i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"
343
- filterEqOperator="Is equal to"
344
-
345
- i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"
346
- filterNotEqOperator="Is not equal to"
347
-
348
- i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"
349
- filterIsNullOperator="Is null"
350
-
351
- i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"
352
- filterIsNotNullOperator="Is not null"
353
-
354
- i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"
355
- filterIsEmptyOperator="Is empty"
356
-
357
- i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"
358
- filterIsNotEmptyOperator="Is not empty"
359
-
360
- i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"
361
- filterStartsWithOperator="Starts with"
362
-
363
- i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"
364
- filterContainsOperator="Contains"
365
-
366
- i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"
367
- filterNotContainsOperator="Does not contain"
368
-
369
- i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"
370
- filterEndsWithOperator="Ends with"
371
-
372
- i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"
373
- filterFilterButton="Filter"
374
-
375
- i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"
376
- filterClearButton="Clear"
377
-
378
- i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"
379
- configuratorButtonText="Change Settings"
380
-
381
- i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"
382
- configuratorHeaderText="Settings"
383
-
384
- i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"
385
- configuratorFieldsText="Fields"
386
-
387
- i18n-configuratorFieldsMeasuresText="kendo.pivotgrid.configuratorFieldsMeasuresText|The text content of the PivotGrid configurator fields TreeView Measures node"
388
- configuratorFieldsMeasuresText="Measures"
389
-
390
- i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"
391
- configuratorColumnsText="Columns"
392
-
393
- i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"
394
- configuratorRowsText="Rows"
395
-
396
- i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"
397
- configuratorValuesText="Values"
398
-
399
- i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"
400
- configuratorCancelButtonText="Cancel"
401
-
402
- i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"
403
- configuratorApplyButtonText="Apply"
404
-
405
- i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"
406
- configuratorEmptyRowsText="Select some fields to begin setup"
407
-
408
- i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"
409
- configuratorEmptyColumnsText="Select some fields to begin setup"
410
-
411
- i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
412
- configuratorEmptyMeasuresText="Select some fields to begin setup"
413
-
414
- i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
415
- chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
416
-
417
- i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
418
- fieldMenuMoveToColumnsItem="Move to Columns"
419
-
420
- i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
421
- fieldMenuMoveToRowsItem="Move to Rows"
422
-
423
- i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
424
- fieldMenuMovePreviousItem="Move as previous"
425
-
426
- i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
427
- fieldMenuMoveNextItem="Move as next"></ng-container>
428
-
429
- <div #table class="k-pivotgrid" role="grid">
430
- <span class="k-pivotgrid-empty-cell" role="columnheader">
431
- <span class="k-sr-only">{{messageFor('emptyCellLabel')}}</span>
432
- </span>
433
- <kendo-pivotgrid-table
434
- #colHeadersTable
435
- [colWidth]="columnHeadersWidth"
436
- [customCellTemplate]="customCellTemplate"
437
- [columnHeaderCellTemplate]="columnHeaderCellTemplate"
438
- class="k-pivotgrid-column-headers"
439
- tableType="columnHeader"></kendo-pivotgrid-table>
440
- <kendo-pivotgrid-table
441
- #rowHeadersTable
442
- [customCellTemplate]="customCellTemplate"
443
- [rowHeaderCellTemplate]="rowHeaderCellTemplate"
444
- class="k-pivotgrid-row-headers"
445
- tableType="rowHeader"></kendo-pivotgrid-table>
446
- <kendo-pivotgrid-table
447
- #valuesTable
448
- [customCellTemplate]="customCellTemplate"
449
- [valueCellTemplate]="valueCellTemplate"
450
- [colWidth]="columnHeadersWidth"
451
- class="k-pivotgrid-values"
452
- [scrollableSettings]="virtualScrolling"
453
- tableType="values"></kendo-pivotgrid-table>
454
-
455
- @if (loading) {
456
- <div [style]="'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'">
457
- <kendo-loader
458
- [type]="loaderSettings?.type"
459
- [themeColor]="loaderSettings?.themeColor"
460
- [size]="loaderSettings?.size"
461
- >
462
- </kendo-loader>
463
- <span class="k-loading-text">{{ loadingText }}</span>
464
- </div>
465
- }
466
- </div>
467
- @if (showConfigurator) {
468
- <kendo-pivotgrid-configurator
469
- #configurator
470
- [navigation]="configuratorNavigation"
471
- [orientation]="configuratorSettings.orientation"
472
- (close)="toggleConfigurator()">
473
- </kendo-pivotgrid-configurator>
474
- }
475
- @if (configurator) {
476
- <div
477
- #configuratorButton
478
- class="k-pivotgrid-configurator-button"
479
- aria-hidden="true"
480
- (click)="toggleConfigurator()">
481
- <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
482
- </span>
483
- </div>
484
- }
485
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPivotGridLocalizedMessages]" }, { kind: "component", type: PivotGridTableComponent, selector: "kendo-pivotgrid-table", inputs: ["tableType", "colWidth", "customCellTemplate", "valueCellTemplate", "rowHeaderCellTemplate", "columnHeaderCellTemplate", "scrollableSettings"] }, { kind: "component", type: LoaderComponent, selector: "kendo-loader", inputs: ["type", "themeColor", "size"] }, { kind: "component", type: PivotGridConfiguratorComponent, selector: "kendo-pivotgrid-configurator", inputs: ["orientation", "sort", "filter", "navigation"], outputs: ["close"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
486
- }
487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PivotGridComponent, decorators: [{
488
- type: Component,
489
- args: [{
490
- selector: 'kendo-pivotgrid',
491
- providers: [
492
- PivotGridDataService,
493
- LocalizationService,
494
- PivotLocalizationService,
495
- {
496
- provide: L10N_PREFIX,
497
- useValue: 'kendo.pivotgrid'
498
- },
499
- PivotGridScrollService
500
- ],
501
- template: `
502
- <ng-container kendoPivotGridLocalizedMessages
503
- i18n-loading="kendo.pivotgrid.loading|The loading text"
504
- loading="Loading"
505
-
506
- i18n-emptyCellLabel="kendo.pivotgrid.emptyCellLabel|The value of the aria-label attribute placed on the focusable empty cell element"
507
- emptyCellLabel="PivotGrid Empty Cell"
508
-
509
- i18n-fieldMenuFilterItemLabel="kendo.pivotgrid.fieldMenuFilterItemLabel|The text content of the filter item in the column and row fields menu"
510
- fieldMenuFilterItemLabel="Filter"
511
-
512
- i18n-fieldMenuSortAscendingItemLabel="kendo.pivotgrid.fieldMenuSortAscendingItemLabel|The text content of the sort ascending item in the column and row fields menu"
513
- fieldMenuSortAscendingItemLabel="Sort ascending"
514
-
515
- i18n-fieldMenuSortDescendingItemLabel="kendo.pivotgrid.fieldMenuSortDescendingItemLabel|The text content of the sort descending item in the column and row fields menu"
516
- fieldMenuSortDescendingItemLabel="Sort descending"
517
-
518
- i18n-filterInputLabel="kendo.pivotgrid.filterInputLabel|The label of the filter input"
519
- filterInputLabel="{{ '{fields} Filter' }}"
520
-
521
- i18n-filterOperatorsDropDownLabel="kendo.pivotgrid.filterOperatorsDropDownLabel|The label of the filter operators DropDownList"
522
- filterOperatorsDropDownLabel="{{ '{fields} Filter Operators' }}"
523
-
524
- i18n-filterEqOperator="kendo.pivotgrid.filterEqOperator|The text of the equal filter operator"
525
- filterEqOperator="Is equal to"
526
-
527
- i18n-filterNotEqOperator="kendo.pivotgrid.filterNotEqOperator|The text of the not equal filter operator"
528
- filterNotEqOperator="Is not equal to"
529
-
530
- i18n-filterIsNullOperator="kendo.pivotgrid.filterIsNullOperator|The text of the is null filter operator"
531
- filterIsNullOperator="Is null"
532
-
533
- i18n-filterIsNotNullOperator="kendo.pivotgrid.filterIsNotNullOperator|The text of the is not null filter operator"
534
- filterIsNotNullOperator="Is not null"
535
-
536
- i18n-filterIsEmptyOperator="kendo.pivotgrid.filterIsEmptyOperator|The text of the is empty filter operator"
537
- filterIsEmptyOperator="Is empty"
538
-
539
- i18n-filterIsNotEmptyOperator="kendo.pivotgrid.filterIsNotEmptyOperator|The text of the is not empty filter operator"
540
- filterIsNotEmptyOperator="Is not empty"
541
-
542
- i18n-filterStartsWithOperator="kendo.pivotgrid.filterStartsWithOperator|The text of the starts with filter operator"
543
- filterStartsWithOperator="Starts with"
544
-
545
- i18n-filterContainsOperator="kendo.pivotgrid.filterContainsOperator|The text of the contains filter operator"
546
- filterContainsOperator="Contains"
547
-
548
- i18n-filterNotContainsOperator="kendo.pivotgrid.filterNotContainsOperator|The text of the does not contain filter operator"
549
- filterNotContainsOperator="Does not contain"
550
-
551
- i18n-filterEndsWithOperator="kendo.pivotgrid.filterEndsWithOperator|The text of the ends with filter operator"
552
- filterEndsWithOperator="Ends with"
553
-
554
- i18n-filterFilterButton="kendo.pivotgrid.filterFilterButton|The text of the filter button"
555
- filterFilterButton="Filter"
556
-
557
- i18n-filterClearButton="kendo.pivotgrid.filterClearButton|The text of the clear filter button"
558
- filterClearButton="Clear"
559
-
560
- i18n-configuratorButtonText="kendo.pivotgrid.configuratorButtonText|The text content of the button that opens and closes the PivotGrid configurator"
561
- configuratorButtonText="Change Settings"
562
-
563
- i18n-configuratorHeaderText="kendo.pivotgrid.configuratorHeaderText|The text content of the PivotGrid configurator title element"
564
- configuratorHeaderText="Settings"
565
-
566
- i18n-configuratorFieldsText="kendo.pivotgrid.configuratorFieldsText|The text content of the PivotGrid configurator fields section title element"
567
- configuratorFieldsText="Fields"
568
-
569
- i18n-configuratorFieldsMeasuresText="kendo.pivotgrid.configuratorFieldsMeasuresText|The text content of the PivotGrid configurator fields TreeView Measures node"
570
- configuratorFieldsMeasuresText="Measures"
571
-
572
- i18n-configuratorColumnsText="kendo.pivotgrid.configuratorColumnsText|The text content of the PivotGrid configurator columns section title element"
573
- configuratorColumnsText="Columns"
574
-
575
- i18n-configuratorRowsText="kendo.pivotgrid.configuratorRowsText|The text content of the PivotGrid configurator rows section title element"
576
- configuratorRowsText="Rows"
577
-
578
- i18n-configuratorValuesText="kendo.pivotgrid.configuratorValuesText|The text content of the PivotGrid configurator values section title element"
579
- configuratorValuesText="Values"
580
-
581
- i18n-configuratorCancelButtonText="kendo.pivotgrid.configuratorCancelButtonText|The text content of the PivotGrid configurator configurator Cancel button"
582
- configuratorCancelButtonText="Cancel"
583
-
584
- i18n-configuratorApplyButtonText="kendo.pivotgrid.configuratorApplyButtonText|The text content of the PivotGrid configurator configurator Apply button"
585
- configuratorApplyButtonText="Apply"
586
-
587
- i18n-configuratorEmptyRowsText="kendo.pivotgrid.configuratorEmptyRowsText|The text content of the PivotGrid configurator empty rows container"
588
- configuratorEmptyRowsText="Select some fields to begin setup"
589
-
590
- i18n-configuratorEmptyColumnsText="kendo.pivotgrid.configuratorEmptyColumnsText|The text content of the PivotGrid configurator empty columns container"
591
- configuratorEmptyColumnsText="Select some fields to begin setup"
592
-
593
- i18n-configuratorEmptyMeasuresText="kendo.pivotgrid.configuratorEmptyMeasuresText|The text content of the PivotGrid configurator empty measures container"
594
- configuratorEmptyMeasuresText="Select some fields to begin setup"
595
-
596
- i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
597
- chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
598
-
599
- i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
600
- fieldMenuMoveToColumnsItem="Move to Columns"
601
-
602
- i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
603
- fieldMenuMoveToRowsItem="Move to Rows"
604
-
605
- i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
606
- fieldMenuMovePreviousItem="Move as previous"
607
-
608
- i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
609
- fieldMenuMoveNextItem="Move as next"></ng-container>
610
-
611
- <div #table class="k-pivotgrid" role="grid">
612
- <span class="k-pivotgrid-empty-cell" role="columnheader">
613
- <span class="k-sr-only">{{messageFor('emptyCellLabel')}}</span>
614
- </span>
615
- <kendo-pivotgrid-table
616
- #colHeadersTable
617
- [colWidth]="columnHeadersWidth"
618
- [customCellTemplate]="customCellTemplate"
619
- [columnHeaderCellTemplate]="columnHeaderCellTemplate"
620
- class="k-pivotgrid-column-headers"
621
- tableType="columnHeader"></kendo-pivotgrid-table>
622
- <kendo-pivotgrid-table
623
- #rowHeadersTable
624
- [customCellTemplate]="customCellTemplate"
625
- [rowHeaderCellTemplate]="rowHeaderCellTemplate"
626
- class="k-pivotgrid-row-headers"
627
- tableType="rowHeader"></kendo-pivotgrid-table>
628
- <kendo-pivotgrid-table
629
- #valuesTable
630
- [customCellTemplate]="customCellTemplate"
631
- [valueCellTemplate]="valueCellTemplate"
632
- [colWidth]="columnHeadersWidth"
633
- class="k-pivotgrid-values"
634
- [scrollableSettings]="virtualScrolling"
635
- tableType="values"></kendo-pivotgrid-table>
636
-
637
- @if (loading) {
638
- <div [style]="'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);'">
639
- <kendo-loader
640
- [type]="loaderSettings?.type"
641
- [themeColor]="loaderSettings?.themeColor"
642
- [size]="loaderSettings?.size"
643
- >
644
- </kendo-loader>
645
- <span class="k-loading-text">{{ loadingText }}</span>
646
- </div>
647
- }
648
- </div>
649
- @if (showConfigurator) {
650
- <kendo-pivotgrid-configurator
651
- #configurator
652
- [navigation]="configuratorNavigation"
653
- [orientation]="configuratorSettings.orientation"
654
- (close)="toggleConfigurator()">
655
- </kendo-pivotgrid-configurator>
656
- }
657
- @if (configurator) {
658
- <div
659
- #configuratorButton
660
- class="k-pivotgrid-configurator-button"
661
- aria-hidden="true"
662
- (click)="toggleConfigurator()">
663
- <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
664
- </span>
665
- </div>
666
- }
667
- `,
668
- standalone: true,
669
- imports: [LocalizedMessagesDirective, PivotGridTableComponent, LoaderComponent, PivotGridConfiguratorComponent, IconWrapperComponent]
670
- }]
671
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.PivotGridDataService }, { type: i2.LocalizationService }, { type: i0.Renderer2 }, { type: i3.ScrollbarWidthService }, { type: i4.PivotGridScrollService }], propDecorators: { hostClass: [{
672
- type: HostBinding,
673
- args: ['class.k-d-flex']
674
- }, {
675
- type: HostBinding,
676
- args: ['class.k-pos-relative']
677
- }], rightPositionClass: [{
678
- type: HostBinding,
679
- args: ['class.k-flex-row']
680
- }], leftPositionClass: [{
681
- type: HostBinding,
682
- args: ['class.k-flex-row-reverse']
683
- }], bottomPositionClass: [{
684
- type: HostBinding,
685
- args: ['class.k-flex-column']
686
- }], topPositionClass: [{
687
- type: HostBinding,
688
- args: ['class.k-flex-column-reverse']
689
- }], dir: [{
690
- type: HostBinding,
691
- args: ['attr.dir']
692
- }], colHeadersTable: [{
693
- type: ViewChild,
694
- args: ['colHeadersTable', { read: ElementRef }]
695
- }], rowHeadersTable: [{
696
- type: ViewChild,
697
- args: ['rowHeadersTable', { read: ElementRef }]
698
- }], valuesTable: [{
699
- type: ViewChild,
700
- args: ['valuesTable', { read: ElementRef }]
701
- }], table: [{
702
- type: ViewChild,
703
- args: ['table', { read: ElementRef }]
704
- }], configuratorWrapper: [{
705
- type: ViewChild,
706
- args: ['configurator', { read: ElementRef }]
707
- }], customCellTemplate: [{
708
- type: ContentChild,
709
- args: [CellTemplateDirective]
710
- }], valueCellTemplate: [{
711
- type: ContentChild,
712
- args: [ValueCellTemplateDirective]
713
- }], rowHeaderCellTemplate: [{
714
- type: ContentChild,
715
- args: [RowHeaderCellTemplateDirective]
716
- }], columnHeaderCellTemplate: [{
717
- type: ContentChild,
718
- args: [ColumnHeaderCellTemplateDirective]
719
- }], loaderSettings: [{
720
- type: Input
721
- }], configurator: [{
722
- type: Input
723
- }], virtualScrolling: [{
724
- type: Input
725
- }], columnHeadersWidth: [{
726
- type: Input
727
- }], navigable: [{
728
- type: Input
729
- }] } });