@progress/kendo-angular-pivotgrid 25.2.1-develop.1 → 25.3.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.
@@ -3,13 +3,12 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, Output, Directive, Input, Injectable, HostBinding, ContentChildren, Component, isDevMode, forwardRef, ViewChild, Optional, ContentChild, ElementRef, NgModule } from '@angular/core';
6
+ import { EventEmitter, Output, Directive, Input, afterNextRender, Injectable, signal, HostBinding, ContentChildren, ChangeDetectionStrategy, Component, isDevMode, forwardRef, ViewChild, Optional, computed, ContentChild, ElementRef, NgModule } from '@angular/core';
7
7
  import * as i1 from '@progress/kendo-angular-buttons';
8
8
  import { ButtonComponent, ChipListComponent, ChipComponent } from '@progress/kendo-angular-buttons';
9
9
  import * as i1$4 from '@progress/kendo-angular-common';
10
10
  import { normalizeKeys, Keys, isDocumentAvailable, replaceMessagePlaceholder, PreventableEvent, DraggableDirective, hasObservers, anyChanged, EventsOutsideAngularDirective, TemplateContextDirective, isChanged, KENDO_WEBMCP_HOST, provideComponentName, ResizeBatchService } from '@progress/kendo-angular-common';
11
11
  import { Subscription, BehaviorSubject, Subject, from, of, fromEvent } from 'rxjs';
12
- import { take, tap, mergeMap, merge } from 'rxjs/operators';
13
12
  import { toTree, toRows, toColumns, toData, configuratorReducer, PIVOT_CONFIGURATOR_ACTION, HEADERS_ACTION, headersReducer, createFlatSchemaDimensions, createDataTree, createLocalDataState, rootFields, fetchData, createDataState, fetchDiscover, addKPI, buildKPIMeasures, PivotGridNavigation, ConfiguratorNavigation } from '@progress/kendo-pivotgrid-common';
14
13
  export { AggregateType, averageAggregate, countAggregate, createAggregate, maxAggregate, minAggregate, sumAggregate } from '@progress/kendo-pivotgrid-common';
15
14
  import { filterIcon, columnsIcon, rowsIcon, arrowLeftIcon, arrowRightIcon, sortAscSmallIcon, sortDescSmallIcon, moreVerticalIcon, chevronUpIcon, chevronDownIcon, gearIcon } from '@progress/kendo-svg-icons';
@@ -26,6 +25,7 @@ import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icon
26
25
  import * as i1$3 from '@progress/kendo-angular-popup';
27
26
  import { PopupService } from '@progress/kendo-angular-popup';
28
27
  import { TreeViewComponent, ExpandDirective, CheckDirective } from '@progress/kendo-angular-treeview';
28
+ import { tap, mergeMap, merge } from 'rxjs/operators';
29
29
  import { validatePackage } from '@progress/kendo-licensing';
30
30
  import { LoaderComponent } from '@progress/kendo-angular-indicators';
31
31
  import { DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
@@ -409,7 +409,7 @@ let nextPivotGridId = 0;
409
409
  * @hidden
410
410
  */
411
411
  class PivotGridDataService {
412
- ngZone;
412
+ injector;
413
413
  expandedStateChange = new EventEmitter();
414
414
  configuratorFieldChange = new EventEmitter();
415
415
  expandedFieldChange = new EventEmitter();
@@ -429,8 +429,8 @@ class PivotGridDataService {
429
429
  valuesRows = new BehaviorSubject([]);
430
430
  loading = new BehaviorSubject(false);
431
431
  pivotGridId;
432
- constructor(ngZone) {
433
- this.ngZone = ngZone;
432
+ constructor(injector) {
433
+ this.injector = injector;
434
434
  this.pivotGridId = nextPivotGridId++;
435
435
  }
436
436
  fields = new BehaviorSubject([]);
@@ -448,19 +448,16 @@ class PivotGridDataService {
448
448
  this.rowHeaderRows.next(rowHeaderRows);
449
449
  this.valuesRows.next(toData((this.normalizedData || []).slice(), columnHeaderLeaves, rowHeaderLeaves, columnHeaderBreadth, rowHeaderDepth));
450
450
  if (isDocumentAvailable()) {
451
- this.ngZone.runOutsideAngular(() => {
452
- // needed because all tables need to be rendered in accordance with the new settings
453
- // before applying the required DOM attributes
454
- setTimeout(() => matchAriaAttributes(this.wrapper));
455
- });
451
+ // Waits for the tables to re-render with the new settings before applying the required DOM attributes.
452
+ afterNextRender(() => matchAriaAttributes(this.wrapper), { injector: this.injector });
456
453
  }
457
454
  }
458
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridDataService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
455
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridDataService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
459
456
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridDataService });
460
457
  }
461
458
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridDataService, decorators: [{
462
459
  type: Injectable
463
- }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { expandedStateChange: [{
460
+ }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { expandedStateChange: [{
464
461
  type: Output
465
462
  }], configuratorFieldChange: [{
466
463
  type: Output
@@ -492,7 +489,7 @@ class PivotGridState {
492
489
  class ConfiguratorService {
493
490
  dataService;
494
491
  configuratorInstance;
495
- state;
492
+ state = signal(undefined, ...(ngDevMode ? [{ debugName: "state" }] : []));
496
493
  draggedElement;
497
494
  dropTargetElement;
498
495
  cueContainer;
@@ -503,21 +500,25 @@ class ConfiguratorService {
503
500
  this.dataService = dataService;
504
501
  }
505
502
  parseConfiguratorState(action) {
503
+ if (!this.dataService.state) {
504
+ return;
505
+ }
506
+ const currentState = this.state() || {};
506
507
  const newState = configuratorReducer({
507
508
  filter: this.dataService.state.filter,
508
509
  sort: this.dataService.state.sort,
509
510
  rowAxes: this.dataService.state.rowAxes,
510
511
  columnAxes: this.dataService.state.columnAxes,
511
512
  measureAxes: this.dataService.state.measureAxes,
512
- dragItem: this.state.dragItem,
513
- dropDirection: this.state.dropDirection,
514
- dropTarget: this.state.dropTarget,
515
- dropZone: this.state.dropZone
513
+ dragItem: currentState.dragItem,
514
+ dropDirection: currentState.dropDirection,
515
+ dropTarget: currentState.dropTarget,
516
+ dropZone: currentState.dropZone
516
517
  }, action);
517
518
  Object.keys(newState).forEach(key => newState[key] === undefined && delete newState[key]);
518
- this.state = { ...this.state, ...newState };
519
- this.dataService.state = new PivotGridState(this.state.columnAxes, this.state.rowAxes, this.state.measureAxes, this.state.sort, this.state.filter);
520
- this.configuratorStateChange.emit(this.state);
519
+ this.state.set({ ...currentState, ...newState });
520
+ this.dataService.state = new PivotGridState(this.state().columnAxes, this.state().rowAxes, this.state().measureAxes, this.state().sort, this.state().filter);
521
+ this.configuratorStateChange.emit(this.state());
521
522
  }
522
523
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ConfiguratorService, deps: [{ token: PivotGridDataService }], target: i0.ɵɵFactoryTarget.Injectable });
523
524
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ConfiguratorService });
@@ -580,12 +581,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
580
581
  */
581
582
  class ChipMenuContainerComponent {
582
583
  service;
583
- ngZone;
584
+ injector;
584
585
  chipMenuItems;
585
586
  hostClass = true;
586
- constructor(service, ngZone) {
587
+ constructor(service, injector) {
587
588
  this.service = service;
588
- this.ngZone = ngZone;
589
+ this.injector = injector;
589
590
  }
590
591
  ngAfterViewInit() {
591
592
  if (!this.chipMenuItems.length) {
@@ -593,12 +594,12 @@ class ChipMenuContainerComponent {
593
594
  }
594
595
  this.chipMenuItems.first.isFirst = true;
595
596
  this.chipMenuItems.last.isLast = true;
596
- this.ngZone.onStable.pipe(take(1)).subscribe(() => this.service.menuTabbingService.firstFocusable.focus());
597
+ afterNextRender(() => this.service.menuTabbingService.firstFocusable.focus(), { injector: this.injector });
597
598
  }
598
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuContainerComponent, deps: [{ token: ChipMenuService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
599
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuContainerComponent, deps: [{ token: ChipMenuService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
599
600
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: ChipMenuContainerComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-container", host: { properties: { "class.k-grid-columnmenu-popup": "this.hostClass" } }, queries: [{ propertyName: "chipMenuItems", predicate: ChipMenuItemDirective, descendants: true }], ngImport: i0, template: `
600
601
  <ng-content></ng-content>
601
- `, isInline: true });
602
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
602
603
  }
603
604
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuContainerComponent, decorators: [{
604
605
  type: Component,
@@ -607,9 +608,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
607
608
  template: `
608
609
  <ng-content></ng-content>
609
610
  `,
610
- standalone: true
611
+ standalone: true,
612
+ changeDetection: ChangeDetectionStrategy.OnPush
611
613
  }]
612
- }], ctorParameters: () => [{ type: ChipMenuService }, { type: i0.NgZone }], propDecorators: { chipMenuItems: [{
614
+ }], ctorParameters: () => [{ type: ChipMenuService }, { type: i0.Injector }], propDecorators: { chipMenuItems: [{
613
615
  type: ContentChildren,
614
616
  args: [ChipMenuItemDirective, { descendants: true }]
615
617
  }], hostClass: [{
@@ -648,8 +650,14 @@ class ChipMenuItemBase {
648
650
  * Represents the ChipMenuService class.
649
651
  * Requires a mandatory input.
650
652
  */
651
- service;
653
+ set service(value) {
654
+ this._service.set(value);
655
+ }
656
+ get service() {
657
+ return this._service();
658
+ }
652
659
  hostClass = true;
660
+ _service = signal(undefined, ...(ngDevMode ? [{ debugName: "_service" }] : []));
653
661
  ngOnInit() {
654
662
  if (isDevMode() && !this.service) {
655
663
  throw new Error('The service input of the host chip menu components (e.g. ChipMenuSortComponent) is mandatory.');
@@ -659,13 +667,14 @@ class ChipMenuItemBase {
659
667
  this.service.close();
660
668
  }
661
669
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuItemBase, deps: [], target: i0.ɵɵFactoryTarget.Component });
662
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: ChipMenuItemBase, isStandalone: true, selector: "kendo-pivot-chip-menu-item-base", inputs: { service: "service" }, host: { properties: { "class.k-columnmenu-item-wrapper": "this.hostClass" } }, ngImport: i0, template: ``, isInline: true });
670
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: ChipMenuItemBase, isStandalone: true, selector: "kendo-pivot-chip-menu-item-base", inputs: { service: "service" }, host: { properties: { "class.k-columnmenu-item-wrapper": "this.hostClass" } }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
663
671
  }
664
672
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuItemBase, decorators: [{
665
673
  type: Component,
666
674
  args: [{
667
675
  selector: 'kendo-pivot-chip-menu-item-base',
668
- template: ``
676
+ template: ``,
677
+ changeDetection: ChangeDetectionStrategy.OnPush
669
678
  }]
670
679
  }], propDecorators: { service: [{
671
680
  type: Input
@@ -679,7 +688,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
679
688
  */
680
689
  class FilterMenuDropDownListDirective {
681
690
  host;
682
- filterMenuDropDownLabel;
691
+ set filterMenuDropDownLabel(value) {
692
+ this._filterMenuDropDownLabel.set(value);
693
+ }
694
+ get filterMenuDropDownLabel() {
695
+ return this._filterMenuDropDownLabel();
696
+ }
697
+ _filterMenuDropDownLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterMenuDropDownLabel" }] : []));
683
698
  constructor(host) {
684
699
  this.host = host;
685
700
  }
@@ -741,14 +756,26 @@ class StringFilterMenuComponent {
741
756
  /**
742
757
  * The field with which the filter is associated.
743
758
  */
744
- chip;
745
- menuTabbingService;
759
+ set chip(value) {
760
+ this._chip.set(value);
761
+ }
762
+ get chip() {
763
+ return this._chip();
764
+ }
765
+ set menuTabbingService(value) {
766
+ this._menuTabbingService.set(value);
767
+ }
768
+ get menuTabbingService() {
769
+ return this._menuTabbingService();
770
+ }
746
771
  operators;
747
772
  filterFormGroup;
748
773
  get currentFilter() {
749
- const filterValue = this.configuratorService.state.filter?.filter(x => x.field === this.chip.name.toString());
774
+ const filterValue = this.configuratorService.state().filter?.filter(x => x.field === this.chip.name.toString());
750
775
  return filterValue && filterValue[0];
751
776
  }
777
+ _chip = signal(undefined, ...(ngDevMode ? [{ debugName: "_chip" }] : []));
778
+ _menuTabbingService = signal(undefined, ...(ngDevMode ? [{ debugName: "_menuTabbingService" }] : []));
752
779
  subscription = new Subscription();
753
780
  constructor(localization, configuratorService, fb) {
754
781
  this.localization = localization;
@@ -803,7 +830,7 @@ class StringFilterMenuComponent {
803
830
  formControlName="value"
804
831
  />
805
832
  </ng-container>
806
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }] });
833
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
807
834
  }
808
835
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
809
836
  type: Component,
@@ -832,7 +859,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
832
859
  </ng-container>
833
860
  `,
834
861
  standalone: true,
835
- imports: [ReactiveFormsModule, DropDownListComponent, FilterMenuDropDownListDirective, TextBoxDirective]
862
+ imports: [ReactiveFormsModule, DropDownListComponent, FilterMenuDropDownListDirective, TextBoxDirective],
863
+ changeDetection: ChangeDetectionStrategy.OnPush
836
864
  }]
837
865
  }], ctorParameters: () => [{ type: PivotLocalizationService }, { type: ConfiguratorService }, { type: i3.FormBuilder }], propDecorators: { chip: [{
838
866
  type: Input
@@ -857,12 +885,36 @@ class FilterMenuContainerComponent {
857
885
  /**
858
886
  * The field with which the filter is associated.
859
887
  */
860
- chip;
861
- isExpanded;
862
- menuTabbingService;
863
- actionsClass = 'k-action-buttons k-button-group';
888
+ set chip(value) {
889
+ this._chip.set(value);
890
+ }
891
+ get chip() {
892
+ return this._chip();
893
+ }
894
+ set isExpanded(value) {
895
+ this._isExpanded.set(value);
896
+ }
897
+ get isExpanded() {
898
+ return this._isExpanded();
899
+ }
900
+ set menuTabbingService(value) {
901
+ this._menuTabbingService.set(value);
902
+ }
903
+ get menuTabbingService() {
904
+ return this._menuTabbingService();
905
+ }
906
+ set actionsClass(value) {
907
+ this._actionsClass.set(value);
908
+ }
909
+ get actionsClass() {
910
+ return this._actionsClass();
911
+ }
864
912
  filterDescriptorValue;
865
913
  filterMenuComponent;
914
+ _chip = signal(undefined, ...(ngDevMode ? [{ debugName: "_chip" }] : []));
915
+ _isExpanded = signal(undefined, ...(ngDevMode ? [{ debugName: "_isExpanded" }] : []));
916
+ _menuTabbingService = signal(undefined, ...(ngDevMode ? [{ debugName: "_menuTabbingService" }] : []));
917
+ _actionsClass = signal('k-action-buttons k-button-group', ...(ngDevMode ? [{ debugName: "_actionsClass" }] : []));
866
918
  constructor(localization, cd, menuTabbingService, configuratorService) {
867
919
  this.localization = localization;
868
920
  this.cd = cd;
@@ -876,7 +928,7 @@ class FilterMenuContainerComponent {
876
928
  return !(this.filterDescriptorValue && validFilter(this.filterDescriptorValue));
877
929
  }
878
930
  get clearDisabled() {
879
- const hasPersistedFilter = !!this.configuratorService.state.filter?.some(descriptor => descriptor.field === this.chip.name.toString());
931
+ const hasPersistedFilter = !!this.configuratorService.state().filter?.some(descriptor => descriptor.field === this.chip.name.toString());
880
932
  const hasPendingValue = !!this.filterDescriptorValue && (hasFieldValue(this.filterDescriptorValue.operator) || hasFieldValue(this.filterDescriptorValue.value));
881
933
  return !hasPersistedFilter && !hasPendingValue;
882
934
  }
@@ -885,10 +937,10 @@ class FilterMenuContainerComponent {
885
937
  field: this.chip.name.toString(),
886
938
  ...this.filterDescriptorValue
887
939
  };
888
- const payload = !this.configuratorService.state.filter ?
940
+ const payload = !this.configuratorService.state().filter ?
889
941
  [filterDescriptor] :
890
942
  [
891
- ...this.configuratorService.state.filter.filter(descriptor => descriptor.field !== filterDescriptor.field),
943
+ ...this.configuratorService.state().filter.filter(descriptor => descriptor.field !== filterDescriptor.field),
892
944
  filterDescriptor
893
945
  ];
894
946
  this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setFilter, payload: payload });
@@ -900,7 +952,7 @@ class FilterMenuContainerComponent {
900
952
  if (this.clearDisabled) {
901
953
  return;
902
954
  }
903
- const currentFilters = this.configuratorService.state.filter || [];
955
+ const currentFilters = this.configuratorService.state().filter || [];
904
956
  const filters = currentFilters.filter(descriptor => descriptor.field !== this.chip.name.toString());
905
957
  this.filterMenuComponent?.filterFormGroup.setValue({ operator: '', value: '' });
906
958
  this.filterDescriptorValue = { operator: '', value: '' };
@@ -955,7 +1007,7 @@ class FilterMenuContainerComponent {
955
1007
  </div>
956
1008
  </div>
957
1009
  </form>
958
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: StringFilterMenuComponent, selector: "kendo-pivot-string-filter-menu", inputs: ["chip", "menuTabbingService"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
1010
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: StringFilterMenuComponent, selector: "kendo-pivot-string-filter-menu", inputs: ["chip", "menuTabbingService"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
959
1011
  }
960
1012
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
961
1013
  type: Component,
@@ -996,7 +1048,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
996
1048
  </form>
997
1049
  `,
998
1050
  standalone: true,
999
- imports: [ReactiveFormsModule, FormsModule, StringFilterMenuComponent, NgClass, ButtonComponent]
1051
+ imports: [ReactiveFormsModule, FormsModule, StringFilterMenuComponent, NgClass, ButtonComponent],
1052
+ changeDetection: ChangeDetectionStrategy.OnPush
1000
1053
  }]
1001
1054
  }], ctorParameters: () => [{ type: PivotLocalizationService }, { type: i0.ChangeDetectorRef }, { type: MenuTabbingService }, { type: ConfiguratorService }], propDecorators: { close: [{
1002
1055
  type: Output
@@ -1058,43 +1111,76 @@ class ChipMenuItemComponent {
1058
1111
  * Specifies the name of the [font icon](https://www.telerik.com/kendo-angular-ui/components/styling/icons#icons-list)
1059
1112
  * that will be rendered for the item.
1060
1113
  */
1061
- icon;
1114
+ set icon(value) {
1115
+ this._icon.set(value);
1116
+ }
1117
+ get icon() {
1118
+ return this._icon();
1119
+ }
1062
1120
  /**
1063
1121
  * Defines an SVGIcon to be rendered for the column menu items.
1064
1122
  * The input can take either an [existing Kendo SVG icon](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon/svgicon-list) or a custom one.
1065
1123
  */
1066
- svgIcon;
1124
+ set svgIcon(value) {
1125
+ this._svgIcon.set(value);
1126
+ }
1127
+ get svgIcon() {
1128
+ return this._svgIcon();
1129
+ }
1067
1130
  /**
1068
1131
  * Specifies the item text.
1069
1132
  */
1070
- text;
1133
+ set text(value) {
1134
+ this._text.set(value);
1135
+ }
1136
+ get text() {
1137
+ return this._text();
1138
+ }
1071
1139
  /**
1072
1140
  * Specifies if the item is selected.
1073
1141
  */
1074
- selected;
1142
+ set selected(value) {
1143
+ this._selected.set(value);
1144
+ }
1145
+ get selected() {
1146
+ return this._selected();
1147
+ }
1075
1148
  /**
1076
1149
  * Specifies if the item is expanded.
1077
1150
  */
1078
- expanded;
1151
+ set expanded(value) {
1152
+ this._expanded.set(value);
1153
+ }
1154
+ get expanded() {
1155
+ return this._expanded();
1156
+ }
1079
1157
  /**
1080
1158
  * Specified if the item is disabled
1081
1159
  */
1082
- disabled;
1160
+ set disabled(value) {
1161
+ this._disabled.set(value);
1162
+ }
1163
+ get disabled() {
1164
+ return this._disabled();
1165
+ }
1083
1166
  contentTemplate;
1084
1167
  get iconClass() {
1085
1168
  return `k-i-${this.icon}`;
1086
1169
  }
1087
- contentState = 'collapsed';
1088
- ngOnChanges(changes) {
1089
- if (changes.expanded) {
1090
- this.updateContentState();
1091
- }
1170
+ get contentState() {
1171
+ return this._contentState();
1092
1172
  }
1173
+ _icon = signal(undefined, ...(ngDevMode ? [{ debugName: "_icon" }] : []));
1174
+ _svgIcon = signal(undefined, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : []));
1175
+ _text = signal(undefined, ...(ngDevMode ? [{ debugName: "_text" }] : []));
1176
+ _selected = signal(undefined, ...(ngDevMode ? [{ debugName: "_selected" }] : []));
1177
+ _expanded = signal(undefined, ...(ngDevMode ? [{ debugName: "_expanded" }] : []));
1178
+ _disabled = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
1179
+ _contentState = computed(() => this._expanded() ? 'expanded' : 'collapsed', ...(ngDevMode ? [{ debugName: "_contentState" }] : []));
1093
1180
  onClick(e) {
1094
1181
  this.itemClick.emit(e);
1095
1182
  if (this.contentTemplate) {
1096
1183
  this.expanded = !this.expanded;
1097
- this.updateContentState();
1098
1184
  if (this.expanded) {
1099
1185
  this.expand.emit();
1100
1186
  }
@@ -1103,11 +1189,8 @@ class ChipMenuItemComponent {
1103
1189
  }
1104
1190
  }
1105
1191
  }
1106
- updateContentState() {
1107
- this.contentState = this.expanded ? 'expanded' : 'collapsed';
1108
- }
1109
1192
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1110
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.30", type: ChipMenuItemComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", expanded: "expanded", disabled: "disabled" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ChipMenuItemContentTemplateDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1193
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.30", type: ChipMenuItemComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-item", inputs: { icon: "icon", svgIcon: "svgIcon", text: "text", selected: "selected", expanded: "expanded", disabled: "disabled" }, outputs: { itemClick: "itemClick", expand: "expand", collapse: "collapse" }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ChipMenuItemContentTemplateDirective, descendants: true }], ngImport: i0, template: `
1111
1194
  <div
1112
1195
  class="k-columnmenu-item"
1113
1196
  (click)="onClick($event)"
@@ -1153,7 +1236,7 @@ class ChipMenuItemComponent {
1153
1236
  }))
1154
1237
  ])
1155
1238
  ])
1156
- ] });
1239
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1157
1240
  }
1158
1241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuItemComponent, decorators: [{
1159
1242
  type: Component,
@@ -1208,7 +1291,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
1208
1291
  }
1209
1292
  `,
1210
1293
  standalone: true,
1211
- imports: [IconWrapperComponent, NgTemplateOutlet]
1294
+ imports: [IconWrapperComponent, NgTemplateOutlet],
1295
+ changeDetection: ChangeDetectionStrategy.OnPush
1212
1296
  }]
1213
1297
  }], propDecorators: { itemClick: [{
1214
1298
  type: Output
@@ -1250,13 +1334,25 @@ class ChipMenuFilterComponent extends ChipMenuItemBase {
1250
1334
  /**
1251
1335
  * Holds current field information.
1252
1336
  */
1253
- chip;
1337
+ set chip(value) {
1338
+ this._chip.set(value);
1339
+ }
1340
+ get chip() {
1341
+ return this._chip();
1342
+ }
1254
1343
  /**
1255
1344
  * Specifies if the content is expanded.
1256
1345
  */
1257
- expanded = false;
1346
+ set expanded(value) {
1347
+ this._expanded.set(value);
1348
+ }
1349
+ get expanded() {
1350
+ return this._expanded();
1351
+ }
1258
1352
  actionsClass = 'k-columnmenu-actions';
1259
1353
  filterSVGIcon = filterIcon;
1354
+ _chip = signal(undefined, ...(ngDevMode ? [{ debugName: "_chip" }] : []));
1355
+ _expanded = signal(false, ...(ngDevMode ? [{ debugName: "_expanded" }] : []));
1260
1356
  constructor(localization) {
1261
1357
  super();
1262
1358
  this.localization = localization;
@@ -1296,7 +1392,7 @@ class ChipMenuFilterComponent extends ChipMenuItemBase {
1296
1392
  </kendo-pivot-filter-menu-container>
1297
1393
  </ng-template>
1298
1394
  </kendo-pivot-chipmenu-item>
1299
- `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ChipMenuItemContentTemplateDirective, selector: "[kendoPivotChipMenuItemContentTemplate]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-pivot-filter-menu-container", inputs: ["chip", "isExpanded", "menuTabbingService", "actionsClass"], outputs: ["close"] }] });
1395
+ `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }, { kind: "directive", type: ChipMenuItemContentTemplateDirective, selector: "[kendoPivotChipMenuItemContentTemplate]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-pivot-filter-menu-container", inputs: ["chip", "isExpanded", "menuTabbingService", "actionsClass"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1300
1396
  }
1301
1397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuFilterComponent, decorators: [{
1302
1398
  type: Component,
@@ -1324,7 +1420,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
1324
1420
  </kendo-pivot-chipmenu-item>
1325
1421
  `,
1326
1422
  standalone: true,
1327
- imports: [ChipMenuItemComponent, ChipMenuItemContentTemplateDirective, FilterMenuContainerComponent]
1423
+ imports: [ChipMenuItemComponent, ChipMenuItemContentTemplateDirective, FilterMenuContainerComponent],
1424
+ changeDetection: ChangeDetectionStrategy.OnPush
1328
1425
  }]
1329
1426
  }], ctorParameters: () => [{ type: PivotLocalizationService }], propDecorators: { expand: [{
1330
1427
  type: Output
@@ -1348,29 +1445,35 @@ class ChipMenuReorderComponent extends ChipMenuItemBase {
1348
1445
  dataService;
1349
1446
  cdr;
1350
1447
  ngZone;
1351
- chip;
1448
+ set chip(value) {
1449
+ this._chip.set(value);
1450
+ }
1451
+ get chip() {
1452
+ return this._chip();
1453
+ }
1352
1454
  columnsIcon = columnsIcon;
1353
1455
  rowsIcon = rowsIcon;
1354
1456
  arrowLeftIcon = arrowLeftIcon;
1355
1457
  arrowRightIcon = arrowRightIcon;
1356
1458
  rtl = false;
1459
+ _chip = signal(undefined, ...(ngDevMode ? [{ debugName: "_chip" }] : []));
1357
1460
  get isColumnsField() {
1358
- return this.configuratorService.state.columnAxes.some(item => item === this.chip);
1461
+ return this.configuratorService.state().columnAxes.some(item => item === this.chip);
1359
1462
  }
1360
1463
  get isRowsField() {
1361
- return this.configuratorService.state.rowAxes.some(item => item === this.chip);
1464
+ return this.configuratorService.state().rowAxes.some(item => item === this.chip);
1362
1465
  }
1363
1466
  get isMeasureField() {
1364
- return this.configuratorService.state.measureAxes.some(item => item === this.chip);
1467
+ return this.configuratorService.state().measureAxes.some(item => item === this.chip);
1365
1468
  }
1366
1469
  get isFirst() {
1367
- const state = this.configuratorService.state;
1470
+ const state = this.configuratorService.state();
1368
1471
  return this.isColumnsField && state.columnAxes[0] === this.chip ||
1369
1472
  this.isRowsField && state.rowAxes[0] === this.chip ||
1370
1473
  this.isMeasureField && state.measureAxes[0] === this.chip;
1371
1474
  }
1372
1475
  get isLast() {
1373
- const state = this.configuratorService.state;
1476
+ const state = this.configuratorService.state();
1374
1477
  return this.isColumnsField && state.columnAxes[state.columnAxes.length - 1] === this.chip ||
1375
1478
  this.isRowsField && state.rowAxes[state.rowAxes.length - 1] === this.chip ||
1376
1479
  this.isMeasureField && state.measureAxes[state.measureAxes.length - 1] === this.chip;
@@ -1397,7 +1500,7 @@ class ChipMenuReorderComponent extends ChipMenuItemBase {
1397
1500
  if (isDisabled) {
1398
1501
  return;
1399
1502
  }
1400
- const currentState = this.configuratorService.state;
1503
+ const currentState = this.configuratorService.state();
1401
1504
  switch (target) {
1402
1505
  case 'columns':
1403
1506
  {
@@ -1472,7 +1575,7 @@ class ChipMenuReorderComponent extends ChipMenuItemBase {
1472
1575
  [svgIcon]="rtl ? arrowLeftIcon : arrowRightIcon"
1473
1576
  (itemClick)="move($event, 'next')">
1474
1577
  </kendo-pivot-chipmenu-item>
1475
- `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }] });
1578
+ `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1476
1579
  }
1477
1580
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuReorderComponent, decorators: [{
1478
1581
  type: Component,
@@ -1513,7 +1616,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
1513
1616
  </kendo-pivot-chipmenu-item>
1514
1617
  `,
1515
1618
  standalone: true,
1516
- imports: [ChipMenuItemComponent]
1619
+ imports: [ChipMenuItemComponent],
1620
+ changeDetection: ChangeDetectionStrategy.OnPush
1517
1621
  }]
1518
1622
  }], ctorParameters: () => [{ type: PivotLocalizationService }, { type: i0.Renderer2 }, { type: ConfiguratorService }, { type: PivotGridDataService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { chip: [{
1519
1623
  type: Input
@@ -1529,9 +1633,15 @@ class ChipMenuSortComponent extends ChipMenuItemBase {
1529
1633
  localization;
1530
1634
  renderer;
1531
1635
  configuratorService;
1532
- chip;
1636
+ set chip(value) {
1637
+ this._chip.set(value);
1638
+ }
1639
+ get chip() {
1640
+ return this._chip();
1641
+ }
1533
1642
  sortAscSVGIcon = sortAscSmallIcon;
1534
1643
  sortDescSVGIcon = sortDescSmallIcon;
1644
+ _chip = signal(undefined, ...(ngDevMode ? [{ debugName: "_chip" }] : []));
1535
1645
  constructor(localization, renderer, configuratorService) {
1536
1646
  super();
1537
1647
  this.localization = localization;
@@ -1555,7 +1665,7 @@ class ChipMenuSortComponent extends ChipMenuItemBase {
1555
1665
  toggleSort(dir) {
1556
1666
  const field = this.chip.name.toString();
1557
1667
  const descriptor = this.descriptor;
1558
- const sort = this.configuratorService.state.sort.filter(s => s.field !== field);
1668
+ const sort = this.configuratorService.state().sort.filter(s => s.field !== field);
1559
1669
  if (!descriptor || descriptor.dir !== dir) {
1560
1670
  sort.push({ field, dir });
1561
1671
  }
@@ -1563,7 +1673,7 @@ class ChipMenuSortComponent extends ChipMenuItemBase {
1563
1673
  this.close();
1564
1674
  }
1565
1675
  get descriptor() {
1566
- return [].concat(this.configuratorService.state.sort || []).find(s => s.field === this.chip.name.toString());
1676
+ return [].concat(this.configuratorService.state().sort || []).find(s => s.field === this.chip.name.toString());
1567
1677
  }
1568
1678
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuSortComponent, deps: [{ token: PivotLocalizationService }, { token: i0.Renderer2 }, { token: ConfiguratorService }], target: i0.ɵɵFactoryTarget.Component });
1569
1679
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.30", type: ChipMenuSortComponent, isStandalone: true, selector: "kendo-pivot-chipmenu-sort", inputs: { chip: "chip" }, usesInheritance: true, ngImport: i0, template: `
@@ -1581,7 +1691,7 @@ class ChipMenuSortComponent extends ChipMenuItemBase {
1581
1691
  (itemClick)="toggleSort('desc')"
1582
1692
  [selected]="sortedDesc">
1583
1693
  </kendo-pivot-chipmenu-item>
1584
- `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }] });
1694
+ `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuItemComponent, selector: "kendo-pivot-chipmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "expanded", "disabled"], outputs: ["itemClick", "expand", "collapse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1585
1695
  }
1586
1696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuSortComponent, decorators: [{
1587
1697
  type: Component,
@@ -1604,7 +1714,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
1604
1714
  </kendo-pivot-chipmenu-item>
1605
1715
  `,
1606
1716
  standalone: true,
1607
- imports: [ChipMenuItemComponent]
1717
+ imports: [ChipMenuItemComponent],
1718
+ changeDetection: ChangeDetectionStrategy.OnPush
1608
1719
  }]
1609
1720
  }], ctorParameters: () => [{ type: PivotLocalizationService }, { type: i0.Renderer2 }, { type: ConfiguratorService }], propDecorators: { chip: [{
1610
1721
  type: Input
@@ -1748,14 +1859,38 @@ class ChipMenuComponent {
1748
1859
  /**
1749
1860
  * The Configurator field instance to control with the menu.
1750
1861
  */
1751
- chip;
1752
- tabIndex = '-1';
1753
- isMeasureField = false;
1754
- anchor;
1862
+ set chip(value) {
1863
+ this._chip.set(value);
1864
+ }
1865
+ get chip() {
1866
+ return this._chip();
1867
+ }
1868
+ set tabIndex(value) {
1869
+ this._tabIndex.set(value);
1870
+ }
1871
+ get tabIndex() {
1872
+ return this._tabIndex();
1873
+ }
1874
+ set isMeasureField(value) {
1875
+ this._isMeasureField.set(value);
1876
+ }
1877
+ get isMeasureField() {
1878
+ return this._isMeasureField();
1879
+ }
1880
+ set anchor(value) {
1881
+ this._anchor.set(value);
1882
+ }
1883
+ get anchor() {
1884
+ return this._anchor();
1885
+ }
1755
1886
  template;
1756
1887
  menuItemSVGIcon = moreVerticalIcon;
1757
1888
  popupRef;
1758
1889
  closeSubscription;
1890
+ _chip = signal(undefined, ...(ngDevMode ? [{ debugName: "_chip" }] : []));
1891
+ _tabIndex = signal('-1', ...(ngDevMode ? [{ debugName: "_tabIndex" }] : []));
1892
+ _isMeasureField = signal(false, ...(ngDevMode ? [{ debugName: "_isMeasureField" }] : []));
1893
+ _anchor = signal(undefined, ...(ngDevMode ? [{ debugName: "_anchor" }] : []));
1759
1894
  constructor(popupService, localization, service, renderer) {
1760
1895
  this.popupService = popupService;
1761
1896
  this.localization = localization;
@@ -1824,7 +1959,7 @@ class ChipMenuComponent {
1824
1959
  [service]="service"></kendo-pivot-chipmenu-reorder>
1825
1960
  </kendo-pivot-chipmenu-container>
1826
1961
  </ng-template>
1827
- `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuContainerComponent, selector: "kendo-pivot-chipmenu-container" }, { kind: "component", type: ChipMenuSortComponent, selector: "kendo-pivot-chipmenu-sort", inputs: ["chip"] }, { kind: "directive", type: ChipMenuItemDirective, selector: "[kendoPivotChipMenuItem]", inputs: ["kendoPivotChipMenuItem"] }, { kind: "component", type: ChipMenuFilterComponent, selector: "kendo-pivot-chipmenu-filter", inputs: ["chip", "expanded"], outputs: ["expand", "collapse"] }, { kind: "component", type: ChipMenuReorderComponent, selector: "kendo-pivot-chipmenu-reorder", inputs: ["chip"] }] });
1962
+ `, isInline: true, dependencies: [{ kind: "component", type: ChipMenuContainerComponent, selector: "kendo-pivot-chipmenu-container" }, { kind: "component", type: ChipMenuSortComponent, selector: "kendo-pivot-chipmenu-sort", inputs: ["chip"] }, { kind: "directive", type: ChipMenuItemDirective, selector: "[kendoPivotChipMenuItem]", inputs: ["kendoPivotChipMenuItem"] }, { kind: "component", type: ChipMenuFilterComponent, selector: "kendo-pivot-chipmenu-filter", inputs: ["chip", "expanded"], outputs: ["expand", "collapse"] }, { kind: "component", type: ChipMenuReorderComponent, selector: "kendo-pivot-chipmenu-reorder", inputs: ["chip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1828
1963
  }
1829
1964
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: ChipMenuComponent, decorators: [{
1830
1965
  type: Component,
@@ -1864,7 +1999,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
1864
1999
  </ng-template>
1865
2000
  `,
1866
2001
  standalone: true,
1867
- imports: [ChipMenuContainerComponent, ChipMenuSortComponent, ChipMenuItemDirective, ChipMenuFilterComponent, ChipMenuReorderComponent]
2002
+ imports: [ChipMenuContainerComponent, ChipMenuSortComponent, ChipMenuItemDirective, ChipMenuFilterComponent, ChipMenuReorderComponent],
2003
+ changeDetection: ChangeDetectionStrategy.OnPush
1868
2004
  }]
1869
2005
  }], ctorParameters: () => [{ type: SinglePopupService }, { type: PivotLocalizationService }, { type: ChipMenuService }, { type: i0.Renderer2 }], propDecorators: { chip: [{
1870
2006
  type: Input
@@ -1973,10 +2109,22 @@ class DraggableChipDirective {
1973
2109
  return this.drag ? 'none' : undefined;
1974
2110
  }
1975
2111
  touchActions = 'none';
1976
- item;
2112
+ set item(value) {
2113
+ this._item.set(value);
2114
+ }
2115
+ get item() {
2116
+ return this._item();
2117
+ }
1977
2118
  initialX = {};
1978
2119
  initialY = {};
1979
- drag;
2120
+ _item = signal(undefined, ...(ngDevMode ? [{ debugName: "_item" }] : []));
2121
+ get drag() {
2122
+ return this._drag();
2123
+ }
2124
+ set drag(value) {
2125
+ this._drag.set(value);
2126
+ }
2127
+ _drag = signal(false, ...(ngDevMode ? [{ debugName: "_drag" }] : []));
1980
2128
  invalidTarget = false;
1981
2129
  subs = new Subscription();
1982
2130
  constructor(draggable, element, zone, service, cue, renderer) {
@@ -2031,19 +2179,14 @@ class DraggableChipDirective {
2031
2179
  this.zone.runOutsideAngular(() => {
2032
2180
  this.drag = false;
2033
2181
  this.invalidTarget = false;
2034
- if (this.service.state.dragItem) {
2182
+ if (this.service.state().dragItem) {
2035
2183
  const element = this.element.nativeElement;
2036
2184
  if (isDocumentAvailable()) {
2037
2185
  this.renderer.removeStyle(element, 'transform');
2038
2186
  this.cue.remove(this.service.cueContainer);
2039
2187
  }
2040
2188
  this.service.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.drop, payload: this.item });
2041
- this.service.state.dragItem = null;
2042
- this.service.state.dropDirection = null;
2043
- this.service.state.dropTarget = null;
2044
- this.service.state.dropZone = null;
2045
- this.renderer.removeStyle(element, 'z-index');
2046
- this.service.draggedElement = null;
2189
+ this.service.state.update(s => ({ ...s, dragItem: null, dropDirection: null, dropTarget: null, dropZone: null }));
2047
2190
  if (this.service.dropTargetElement) {
2048
2191
  this.renderer.removeStyle(this.service.dropTargetElement, 'cursor');
2049
2192
  this.service.dropTargetElement = null;
@@ -2085,8 +2228,20 @@ class DropTargetDirective {
2085
2228
  cue;
2086
2229
  renderer;
2087
2230
  zone;
2088
- item;
2089
- axes;
2231
+ set item(value) {
2232
+ this._item.set(value);
2233
+ }
2234
+ get item() {
2235
+ return this._item();
2236
+ }
2237
+ set axes(value) {
2238
+ this._axes.set(value);
2239
+ }
2240
+ get axes() {
2241
+ return this._axes();
2242
+ }
2243
+ _item = signal(undefined, ...(ngDevMode ? [{ debugName: "_item" }] : []));
2244
+ _axes = signal(undefined, ...(ngDevMode ? [{ debugName: "_axes" }] : []));
2090
2245
  elementType;
2091
2246
  elementSectionType;
2092
2247
  targetElement;
@@ -2112,7 +2267,7 @@ class DropTargetDirective {
2112
2267
  }
2113
2268
  handleMouseEnter(event) {
2114
2269
  this.zone.runOutsideAngular(() => {
2115
- if (this.configuratorService.state.dragItem) {
2270
+ if (this.configuratorService.state().dragItem) {
2116
2271
  this.configuratorService.dropTargetElement = this.element.nativeElement;
2117
2272
  if (this.configuratorService.draggedElement && !this.isDropAllowed(this.configuratorService.draggedElement.fromSection)) {
2118
2273
  return;
@@ -2129,7 +2284,7 @@ class DropTargetDirective {
2129
2284
  handleMouseMove(event) {
2130
2285
  this.zone.runOutsideAngular(() => {
2131
2286
  event.stopImmediatePropagation();
2132
- if (this.configuratorService.state.dragItem) {
2287
+ if (this.configuratorService.state().dragItem) {
2133
2288
  if (this.configuratorService.draggedElement && !this.isDropAllowed(this.configuratorService.draggedElement.fromSection)) {
2134
2289
  this.renderer.setStyle(this.element.nativeElement, 'cursor', 'not-allowed');
2135
2290
  return;
@@ -2146,7 +2301,7 @@ class DropTargetDirective {
2146
2301
  const x = event.clientX - rect.left;
2147
2302
  const direction = x < rect.width / 2 ? 'before' : 'after';
2148
2303
  this.cue.show(direction, this.configuratorService.cueContainer, this.targetElement);
2149
- if (direction !== this.configuratorService.state.dropDirection) {
2304
+ if (direction !== this.configuratorService.state().dropDirection) {
2150
2305
  this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setDropDirection, payload: direction });
2151
2306
  }
2152
2307
  break;
@@ -2161,7 +2316,7 @@ class DropTargetDirective {
2161
2316
  const nextChip = this.getNextChip(draggedElement);
2162
2317
  if (!nextChip) {
2163
2318
  this.cue.show('before', this.configuratorService.cueContainer, draggedElement);
2164
- if (this.configuratorService.state.dropDirection !== 'before') {
2319
+ if (this.configuratorService.state().dropDirection !== 'before') {
2165
2320
  this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setDropDirection, payload: 'before' });
2166
2321
  }
2167
2322
  return;
@@ -2176,7 +2331,7 @@ class DropTargetDirective {
2176
2331
  return;
2177
2332
  }
2178
2333
  }
2179
- if (this.configuratorService.state.dropDirection !== 'after') {
2334
+ if (this.configuratorService.state().dropDirection !== 'after') {
2180
2335
  this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setDropDirection, payload: 'after' });
2181
2336
  }
2182
2337
  this.cue.show('after', this.configuratorService.cueContainer, this.targetElement);
@@ -2198,7 +2353,7 @@ class DropTargetDirective {
2198
2353
  if (this.elementType === 'chip') {
2199
2354
  return;
2200
2355
  }
2201
- if (this.configuratorService.state.dragItem) {
2356
+ if (this.configuratorService.state().dragItem) {
2202
2357
  this.configuratorService.parseConfiguratorState({ type: PIVOT_CONFIGURATOR_ACTION.setDropZone, payload: null });
2203
2358
  }
2204
2359
  });
@@ -2268,18 +2423,54 @@ class PivotGridConfiguratorComponent {
2268
2423
  get headerTextId() {
2269
2424
  return `k-pivotgrid-${this.dataService.pivotGridId}-configurator-header`;
2270
2425
  }
2271
- orientation = 'vertical';
2272
- sort = new Array();
2273
- filter;
2274
- navigation;
2426
+ set orientation(value) {
2427
+ this._orientation.set(value);
2428
+ this.configuratorService.orientation = value;
2429
+ }
2430
+ get orientation() {
2431
+ return this._orientation();
2432
+ }
2433
+ set sort(value) {
2434
+ this._sort.set(value);
2435
+ }
2436
+ get sort() {
2437
+ return this._sort();
2438
+ }
2439
+ set filter(value) {
2440
+ this._filter.set(value);
2441
+ }
2442
+ get filter() {
2443
+ return this._filter();
2444
+ }
2445
+ set navigation(value) {
2446
+ this._navigation.set(value);
2447
+ }
2448
+ get navigation() {
2449
+ return this._navigation();
2450
+ }
2275
2451
  close = new EventEmitter();
2276
2452
  treeView;
2277
2453
  columnsList;
2278
2454
  rowsList;
2279
2455
  originalState;
2280
- state;
2281
- fields;
2282
- checked = [];
2456
+ set state(value) {
2457
+ this._state.set(value);
2458
+ }
2459
+ get state() {
2460
+ return this._state();
2461
+ }
2462
+ set fields(value) {
2463
+ this._fields.set(value);
2464
+ }
2465
+ get fields() {
2466
+ return this._fields();
2467
+ }
2468
+ set checked(value) {
2469
+ this._checked.set(value);
2470
+ }
2471
+ get checked() {
2472
+ return this._checked();
2473
+ }
2283
2474
  get isHorizontal() {
2284
2475
  return this.orientation === 'horizontal';
2285
2476
  }
@@ -2289,6 +2480,13 @@ class PivotGridConfiguratorComponent {
2289
2480
  return hasNoValues && hasNoRowsOrColumns;
2290
2481
  }
2291
2482
  subs = new Subscription();
2483
+ _orientation = signal('vertical', ...(ngDevMode ? [{ debugName: "_orientation" }] : []));
2484
+ _sort = signal(new Array(), ...(ngDevMode ? [{ debugName: "_sort" }] : []));
2485
+ _filter = signal(undefined, ...(ngDevMode ? [{ debugName: "_filter" }] : []));
2486
+ _navigation = signal(undefined, ...(ngDevMode ? [{ debugName: "_navigation" }] : []));
2487
+ _state = signal(undefined, ...(ngDevMode ? [{ debugName: "_state" }] : []));
2488
+ _fields = signal(undefined, ...(ngDevMode ? [{ debugName: "_fields" }] : []));
2489
+ _checked = signal([], ...(ngDevMode ? [{ debugName: "_checked" }] : []));
2292
2490
  /**
2293
2491
  * A function which determines if a specific node has child nodes.
2294
2492
  */
@@ -2336,11 +2534,6 @@ class PivotGridConfiguratorComponent {
2336
2534
  ngOnDestroy() {
2337
2535
  this.subs.unsubscribe();
2338
2536
  }
2339
- ngOnChanges(changes) {
2340
- if (changes['orientation']) {
2341
- this.configuratorService.orientation = this.orientation;
2342
- }
2343
- }
2344
2537
  getName(name) {
2345
2538
  return name.toString();
2346
2539
  }
@@ -2355,7 +2548,8 @@ class PivotGridConfiguratorComponent {
2355
2548
  sort: state.sort,
2356
2549
  filter: state.filter
2357
2550
  };
2358
- this.state = this.configuratorService.state = state;
2551
+ this.state = state;
2552
+ this.configuratorService.state.set(state);
2359
2553
  this.cdr.detectChanges();
2360
2554
  }
2361
2555
  onReorder(ev, name, item) {
@@ -2557,7 +2751,7 @@ class PivotGridConfiguratorComponent {
2557
2751
  ConfiguratorService,
2558
2752
  DropCueService,
2559
2753
  SinglePopupService
2560
- ], viewQueries: [{ propertyName: "treeView", first: true, predicate: TreeViewComponent, descendants: true }, { propertyName: "columnsList", first: true, predicate: ["columnsChiplist"], descendants: true }, { propertyName: "rowsList", first: true, predicate: ["rowsChiplist"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2754
+ ], viewQueries: [{ propertyName: "treeView", first: true, predicate: TreeViewComponent, descendants: true }, { propertyName: "columnsList", first: true, predicate: ["columnsChiplist"], descendants: true }, { propertyName: "rowsList", first: true, predicate: ["rowsChiplist"], descendants: true }], ngImport: i0, template: `
2561
2755
  <div
2562
2756
  class="k-pivotgrid-configurator-panel k-pivotgrid-configurator-push"
2563
2757
  [ngClass]="{
@@ -2775,7 +2969,7 @@ class PivotGridConfiguratorComponent {
2775
2969
  <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()" [disabled]="isApplyDisabled" [attr.aria-disabled]="isApplyDisabled || null">{{messageFor('configuratorApplyButtonText')}}</button>
2776
2970
  </div>
2777
2971
  </div>
2778
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "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"] }, { kind: "directive", type: ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { kind: "directive", type: CheckDirective, selector: "[kendoTreeViewCheckable]", inputs: ["isChecked", "checkBy", "checkedKeys", "kendoTreeViewCheckable"], outputs: ["checkedKeysChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["item", "axes"] }, { kind: "component", type: ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["orientation", "selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "component", type: ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarSettings", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { kind: "directive", type: DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: ["item"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: ["reorder"] }, { kind: "component", type: ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: ["chip", "tabIndex", "isMeasureField", "anchor"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
2972
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "loadMoreButtonRole", "trackBy", "nodes", "textField", "hasChildren", "isChecked", "isDisabled", "hasCheckbox", "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"] }, { kind: "directive", type: ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { kind: "directive", type: CheckDirective, selector: "[kendoTreeViewCheckable]", inputs: ["isChecked", "checkBy", "checkedKeys", "kendoTreeViewCheckable"], outputs: ["checkedKeysChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["item", "axes"] }, { kind: "component", type: ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["orientation", "selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "component", type: ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarSettings", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { kind: "directive", type: DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: ["item"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: ["reorder"] }, { kind: "component", type: ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: ["chip", "tabIndex", "isMeasureField", "anchor"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2779
2973
  }
2780
2974
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridConfiguratorComponent, decorators: [{
2781
2975
  type: Component,
@@ -3010,7 +3204,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
3010
3204
  NgClass, NgStyle, TreeViewComponent, ExpandDirective, CheckDirective,
3011
3205
  NgTemplateOutlet, DropTargetDirective, ChipListComponent, ChipComponent, DraggableChipDirective,
3012
3206
  DraggableDirective, ChipKeyboardNavigationDirective, ChipMenuComponent, ButtonComponent
3013
- ]
3207
+ ],
3208
+ changeDetection: ChangeDetectionStrategy.OnPush
3014
3209
  }]
3015
3210
  }], ctorParameters: () => [{ type: PivotGridDataService }, { type: i1$1.LocalizationService }, { type: ConfiguratorService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { hostClass: [{
3016
3211
  type: HostBinding,
@@ -3110,23 +3305,48 @@ class PivotBaseBindingDirective {
3110
3305
  /**
3111
3306
  * Defines the column axes configuration of the PivotGrid.
3112
3307
  */
3113
- columnAxes = [];
3308
+ set columnAxes(value) {
3309
+ this._columnAxes.set(value);
3310
+ }
3311
+ get columnAxes() {
3312
+ return this._columnAxes();
3313
+ }
3114
3314
  /**
3115
3315
  * Defines the row axes configuration of the PivotGrid.
3116
3316
  */
3117
- rowAxes = [];
3317
+ set rowAxes(value) {
3318
+ this._rowAxes.set(value);
3319
+ }
3320
+ get rowAxes() {
3321
+ return this._rowAxes();
3322
+ }
3118
3323
  /**
3119
3324
  * Defines the measure axes configuration of the PivotGrid.
3120
3325
  */
3121
- measureAxes = [];
3326
+ set measureAxes(value) {
3327
+ this._measureAxes.set(value);
3328
+ }
3329
+ get measureAxes() {
3330
+ return this._measureAxes();
3331
+ }
3122
3332
  /**
3123
3333
  * Sets the initial sorted state of the PivotGrid.
3124
3334
  */
3125
- sort = [];
3335
+ set sort(value) {
3336
+ this._sort.set(value);
3337
+ }
3338
+ get sort() {
3339
+ return this._sort();
3340
+ }
3126
3341
  /**
3127
3342
  * Sets the initial filtered state of the PivotGrid.
3128
3343
  */
3129
- filter;
3344
+ set filter(value) {
3345
+ this._filter.set(value);
3346
+ }
3347
+ get filter() {
3348
+ return this._filter();
3349
+ }
3130
3350
  /**
3131
3351
  * Fires each time a row or column header gets expanded or collapsed by the user.
3132
3352
  *
@@ -3148,6 +3368,11 @@ class PivotBaseBindingDirective {
3148
3368
  dataState;
3149
3369
  configuratorFields;
3150
3370
  subs = new Subscription();
3371
+ _columnAxes = signal([], ...(ngDevMode ? [{ debugName: "_columnAxes" }] : []));
3372
+ _rowAxes = signal([], ...(ngDevMode ? [{ debugName: "_rowAxes" }] : []));
3373
+ _measureAxes = signal([], ...(ngDevMode ? [{ debugName: "_measureAxes" }] : []));
3374
+ _sort = signal([], ...(ngDevMode ? [{ debugName: "_sort" }] : []));
3375
+ _filter = signal(undefined, ...(ngDevMode ? [{ debugName: "_filter" }] : []));
3151
3376
  constructor(dataService, zone) {
3152
3377
  this.dataService = dataService;
3153
3378
  this.zone = zone;
@@ -3276,16 +3501,34 @@ class PivotLocalBindingDirective extends PivotBaseBindingDirective {
3276
3501
  /**
3277
3502
  * Contains the array of data which will be used to populate the PivotGrid.
3278
3503
  */
3279
- data;
3504
+ set data(value) {
3505
+ this._data.set(value);
3506
+ }
3507
+ get data() {
3508
+ return this._data();
3509
+ }
3280
3510
  /**
3281
3511
  * Defines the dimensions object of the PivotGrid.
3282
3512
  */
3283
- dimensions;
3513
+ set dimensions(value) {
3514
+ this._dimensions.set(value);
3515
+ }
3516
+ get dimensions() {
3517
+ return this._dimensions();
3518
+ }
3284
3519
  /**
3285
3520
  * Contains the measures collection of the PivotGrid.
3286
3521
  */
3287
- measures;
3522
+ set measures(value) {
3523
+ this._measures.set(value);
3524
+ }
3525
+ get measures() {
3526
+ return this._measures();
3527
+ }
3288
3528
  type = 'local';
3529
+ _data = signal(undefined, ...(ngDevMode ? [{ debugName: "_data" }] : []));
3530
+ _dimensions = signal(undefined, ...(ngDevMode ? [{ debugName: "_dimensions" }] : []));
3531
+ _measures = signal(undefined, ...(ngDevMode ? [{ debugName: "_measures" }] : []));
3289
3532
  constructor(dataService, zone) {
3290
3533
  super(dataService, zone);
3291
3534
  }
@@ -3377,16 +3620,34 @@ class PivotOLAPBindingDirective extends PivotBaseBindingDirective {
3377
3620
  /**
3378
3621
  * Defines the OLAP service endpoint where the data is processed and retrieved to render the pivot table.
3379
3622
  */
3380
- url;
3623
+ set url(value) {
3624
+ this._url.set(value);
3625
+ }
3626
+ get url() {
3627
+ return this._url();
3628
+ }
3381
3629
  /**
3382
3630
  * Sets the cube name that is used to retrieve data for the pivot table rendering.
3383
3631
  */
3384
- cube;
3632
+ set cube(value) {
3633
+ this._cube.set(value);
3634
+ }
3635
+ get cube() {
3636
+ return this._cube();
3637
+ }
3385
3638
  /**
3386
3639
  * Sets the database name that is used to retrieve the data from the specified connection string.
3387
3640
  */
3388
- catalog;
3641
+ set catalog(value) {
3642
+ this._catalog.set(value);
3643
+ }
3644
+ get catalog() {
3645
+ return this._catalog();
3646
+ }
3389
3647
  type = 'olap';
3648
+ _url = signal(undefined, ...(ngDevMode ? [{ debugName: "_url" }] : []));
3649
+ _cube = signal(undefined, ...(ngDevMode ? [{ debugName: "_cube" }] : []));
3650
+ _catalog = signal(undefined, ...(ngDevMode ? [{ debugName: "_catalog" }] : []));
3390
3651
  constructor(dataService, zone) {
3391
3652
  super(dataService, zone);
3392
3653
  }
@@ -3554,15 +3815,30 @@ class PivotGridMessages extends ComponentMessages {
3554
3815
  /**
3555
3816
  * Sets the text content of the filter item in the column and row fields menu.
3556
3817
  */
3557
- fieldMenuFilterItemLabel;
3818
+ set fieldMenuFilterItemLabel(value) {
3819
+ this._fieldMenuFilterItemLabel.set(value);
3820
+ }
3821
+ get fieldMenuFilterItemLabel() {
3822
+ return this._fieldMenuFilterItemLabel();
3823
+ }
3558
3824
  /**
3559
3825
  * Specifies the text content of the sort ascending item in the column and row fields menu.
3560
3826
  */
3561
- fieldMenuSortAscendingItemLabel;
3827
+ set fieldMenuSortAscendingItemLabel(value) {
3828
+ this._fieldMenuSortAscendingItemLabel.set(value);
3829
+ }
3830
+ get fieldMenuSortAscendingItemLabel() {
3831
+ return this._fieldMenuSortAscendingItemLabel();
3832
+ }
3562
3833
  /**
3563
3834
  * Sets the text content of the sort descending item in the column and row fields menu.
3564
3835
  */
3565
- fieldMenuSortDescendingItemLabel;
3836
+ set fieldMenuSortDescendingItemLabel(value) {
3837
+ this._fieldMenuSortDescendingItemLabel.set(value);
3838
+ }
3839
+ get fieldMenuSortDescendingItemLabel() {
3840
+ return this._fieldMenuSortDescendingItemLabel();
3841
+ }
3566
3842
  /**
3567
3843
  * Defines the label of the filter input.
3568
3844
  *
@@ -3572,7 +3848,12 @@ class PivotGridMessages extends ComponentMessages {
3572
3848
  * You can reorder the parts using `'[[fields]]'` as a placeholder. The `'[[fields]]'` placeholder will get replaced
3573
3849
  * with the field name(s). For example, `'filter for [[fields]]'` will become `'filter for Geography City'`.
3574
3850
  */
3575
- filterInputLabel;
3851
+ set filterInputLabel(value) {
3852
+ this._filterInputLabel.set(value);
3853
+ }
3854
+ get filterInputLabel() {
3855
+ return this._filterInputLabel();
3856
+ }
3576
3857
  /**
3577
3858
  * Specifies the label of the filter operators DropDownList.
3578
3859
  *
@@ -3582,126 +3863,276 @@ class PivotGridMessages extends ComponentMessages {
3582
3863
  * You can reorder the parts using `'[[fields]]'` as a placeholder. The `'[[fields]]'` placeholder will get replaced
3583
3864
  * with the field name(s). For example, `'filter operators for [[fields]]'` will become `'filter operators for Geography City'`.
3584
3865
  */
3585
- filterOperatorsDropDownLabel;
3866
+ set filterOperatorsDropDownLabel(value) {
3867
+ this._filterOperatorsDropDownLabel.set(value);
3868
+ }
3869
+ get filterOperatorsDropDownLabel() {
3870
+ return this._filterOperatorsDropDownLabel();
3871
+ }
3586
3872
  /**
3587
3873
  * Sets the text of the `Equal` (**Is equal to**) filter operator.
3588
3874
  */
3589
- filterEqOperator;
3875
+ set filterEqOperator(value) {
3876
+ this._filterEqOperator.set(value);
3877
+ }
3878
+ get filterEqOperator() {
3879
+ return this._filterEqOperator();
3880
+ }
3590
3881
  /**
3591
3882
  * Specifies the text of the `NotEqual` (**Is not equal to**) filter operator.
3592
3883
  */
3593
- filterNotEqOperator;
3884
+ set filterNotEqOperator(value) {
3885
+ this._filterNotEqOperator.set(value);
3886
+ }
3887
+ get filterNotEqOperator() {
3888
+ return this._filterNotEqOperator();
3889
+ }
3594
3890
  /**
3595
3891
  * Specifies the text of the `IsNull` (**Is null**) filter operator.
3596
3892
  */
3597
- filterIsNullOperator;
3893
+ set filterIsNullOperator(value) {
3894
+ this._filterIsNullOperator.set(value);
3895
+ }
3896
+ get filterIsNullOperator() {
3897
+ return this._filterIsNullOperator();
3898
+ }
3598
3899
  /**
3599
3900
  * Sets the text of the `IsNotNull` (**Is not null**) filter operator.
3600
3901
  */
3601
- filterIsNotNullOperator;
3902
+ set filterIsNotNullOperator(value) {
3903
+ this._filterIsNotNullOperator.set(value);
3904
+ }
3905
+ get filterIsNotNullOperator() {
3906
+ return this._filterIsNotNullOperator();
3907
+ }
3602
3908
  /**
3603
3909
  * Specifies the text of the `IsEmpty` (**Is empty**) filter operator.
3604
3910
  */
3605
- filterIsEmptyOperator;
3911
+ set filterIsEmptyOperator(value) {
3912
+ this._filterIsEmptyOperator.set(value);
3913
+ }
3914
+ get filterIsEmptyOperator() {
3915
+ return this._filterIsEmptyOperator();
3916
+ }
3606
3917
  /**
3607
3918
  * Specifies the text of the `IsNotEmpty` (**Is not empty**) filter operator.
3608
3919
  */
3609
- filterIsNotEmptyOperator;
3920
+ set filterIsNotEmptyOperator(value) {
3921
+ this._filterIsNotEmptyOperator.set(value);
3922
+ }
3923
+ get filterIsNotEmptyOperator() {
3924
+ return this._filterIsNotEmptyOperator();
3925
+ }
3610
3926
  /**
3611
3927
  * Sets the text of the `StartsWith` (**Starts with**) filter operator.
3612
3928
  */
3613
- filterStartsWithOperator;
3929
+ set filterStartsWithOperator(value) {
3930
+ this._filterStartsWithOperator.set(value);
3931
+ }
3932
+ get filterStartsWithOperator() {
3933
+ return this._filterStartsWithOperator();
3934
+ }
3614
3935
  /**
3615
3936
  * Sets the text of the `Contains` (**Contains**) filter operator.
3616
3937
  */
3617
- filterContainsOperator;
3938
+ set filterContainsOperator(value) {
3939
+ this._filterContainsOperator.set(value);
3940
+ }
3941
+ get filterContainsOperator() {
3942
+ return this._filterContainsOperator();
3943
+ }
3618
3944
  /**
3619
3945
  * Specifies the text of the `DoesNotContain` (**Does not contain**) filter operator.
3620
3946
  */
3621
- filterNotContainsOperator;
3947
+ set filterNotContainsOperator(value) {
3948
+ this._filterNotContainsOperator.set(value);
3949
+ }
3950
+ get filterNotContainsOperator() {
3951
+ return this._filterNotContainsOperator();
3952
+ }
3622
3953
  /**
3623
3954
  * Specifies the text of the `EndsWith` (**Ends with**) string filter operator.
3624
3955
  */
3625
- filterEndsWithOperator;
3956
+ set filterEndsWithOperator(value) {
3957
+ this._filterEndsWithOperator.set(value);
3958
+ }
3959
+ get filterEndsWithOperator() {
3960
+ return this._filterEndsWithOperator();
3961
+ }
3626
3962
  /**
3627
3963
  * Sets the text of the **Filter** button.
3628
3964
  */
3629
- filterFilterButton;
3965
+ set filterFilterButton(value) {
3966
+ this._filterFilterButton.set(value);
3967
+ }
3968
+ get filterFilterButton() {
3969
+ return this._filterFilterButton();
3970
+ }
3630
3971
  /**
3631
3972
  * Sets the text of the **Clear filter** button.
3632
3973
  */
3633
- filterClearButton;
3974
+ set filterClearButton(value) {
3975
+ this._filterClearButton.set(value);
3976
+ }
3977
+ get filterClearButton() {
3978
+ return this._filterClearButton();
3979
+ }
3634
3980
  /**
3635
3981
  * Specifies the loading text.
3636
3982
  *
3637
3983
  * > The `loading` property is part of the accessibility support of the PivotGrid.
3638
3984
  * Its value is detectable by screen readers and is not visible otherwise.
3639
3985
  */
3640
- loading;
3986
+ set loading(value) {
3987
+ this._loading.set(value);
3988
+ }
3989
+ get loading() {
3990
+ return this._loading();
3991
+ }
3641
3992
  /**
3642
3993
  * Specifies the value of the aria-label attribute placed on the PivotGrid focusable empty cell element.
3643
3994
  */
3644
- emptyCellLabel;
3995
+ set emptyCellLabel(value) {
3996
+ this._emptyCellLabel.set(value);
3997
+ }
3998
+ get emptyCellLabel() {
3999
+ return this._emptyCellLabel();
4000
+ }
3645
4001
  /**
3646
4002
  * Sets the text content of the button that opens and closes the PivotGrid configurator.
3647
4003
  */
3648
- configuratorButtonText;
4004
+ set configuratorButtonText(value) {
4005
+ this._configuratorButtonText.set(value);
4006
+ }
4007
+ get configuratorButtonText() {
4008
+ return this._configuratorButtonText();
4009
+ }
3649
4010
  /**
3650
4011
  * Sets the text content of the PivotGrid configurator title element.
3651
4012
  */
3652
- configuratorHeaderText;
4013
+ set configuratorHeaderText(value) {
4014
+ this._configuratorHeaderText.set(value);
4015
+ }
4016
+ get configuratorHeaderText() {
4017
+ return this._configuratorHeaderText();
4018
+ }
3653
4019
  /**
3654
4020
  * Sets the text content of the PivotGrid configurator fields section title element.
3655
4021
  */
3656
- configuratorFieldsText;
4022
+ set configuratorFieldsText(value) {
4023
+ this._configuratorFieldsText.set(value);
4024
+ }
4025
+ get configuratorFieldsText() {
4026
+ return this._configuratorFieldsText();
4027
+ }
3657
4028
  /**
3658
4029
  * Sets the text content of the PivotGrid configurator columns section title element.
3659
4030
  */
3660
- configuratorColumnsText;
4031
+ set configuratorColumnsText(value) {
4032
+ this._configuratorColumnsText.set(value);
4033
+ }
4034
+ get configuratorColumnsText() {
4035
+ return this._configuratorColumnsText();
4036
+ }
3661
4037
  /**
3662
4038
  * Specifies the text content of the PivotGrid configurator rows section title element.
3663
4039
  */
3664
- configuratorRowsText;
4040
+ set configuratorRowsText(value) {
4041
+ this._configuratorRowsText.set(value);
4042
+ }
4043
+ get configuratorRowsText() {
4044
+ return this._configuratorRowsText();
4045
+ }
3665
4046
  /**
3666
4047
  * Specifies the text content of the PivotGrid configurator values section title element.
3667
4048
  */
3668
- configuratorValuesText;
4049
+ set configuratorValuesText(value) {
4050
+ this._configuratorValuesText.set(value);
4051
+ }
4052
+ get configuratorValuesText() {
4053
+ return this._configuratorValuesText();
4054
+ }
3669
4055
  /**
3670
4056
  * Sets the text content of the PivotGrid configurator **Cancel** button.
3671
4057
  */
3672
- configuratorCancelButtonText;
4058
+ set configuratorCancelButtonText(value) {
4059
+ this._configuratorCancelButtonText.set(value);
4060
+ }
4061
+ get configuratorCancelButtonText() {
4062
+ return this._configuratorCancelButtonText();
4063
+ }
3673
4064
  /**
3674
4065
  * Specifies the text content of the PivotGrid configurator **Apply** button.
3675
4066
  */
3676
- configuratorApplyButtonText;
4067
+ set configuratorApplyButtonText(value) {
4068
+ this._configuratorApplyButtonText.set(value);
4069
+ }
4070
+ get configuratorApplyButtonText() {
4071
+ return this._configuratorApplyButtonText();
4072
+ }
3677
4073
  /**
3678
4074
  * Sets the text content of the PivotGrid configurator empty rows container.
3679
4075
  */
3680
- configuratorEmptyRowsText;
4076
+ set configuratorEmptyRowsText(value) {
4077
+ this._configuratorEmptyRowsText.set(value);
4078
+ }
4079
+ get configuratorEmptyRowsText() {
4080
+ return this._configuratorEmptyRowsText();
4081
+ }
3681
4082
  /**
3682
4083
  * Sets the text content of the PivotGrid configurator empty columns container.
3683
4084
  */
3684
- configuratorEmptyColumnsText;
4085
+ set configuratorEmptyColumnsText(value) {
4086
+ this._configuratorEmptyColumnsText.set(value);
4087
+ }
4088
+ get configuratorEmptyColumnsText() {
4089
+ return this._configuratorEmptyColumnsText();
4090
+ }
3685
4091
  /**
3686
4092
  * Sets the text content of the PivotGrid configurator empty measures container.
3687
4093
  */
3688
- configuratorEmptyMeasuresText;
4094
+ set configuratorEmptyMeasuresText(value) {
4095
+ this._configuratorEmptyMeasuresText.set(value);
4096
+ }
4097
+ get configuratorEmptyMeasuresText() {
4098
+ return this._configuratorEmptyMeasuresText();
4099
+ }
3689
4100
  /**
3690
4101
  * Sets the text content of the **Move to Columns** item in the column and row fields menu.
3691
4102
  */
3692
- fieldMenuMoveToColumnsItem;
4103
+ set fieldMenuMoveToColumnsItem(value) {
4104
+ this._fieldMenuMoveToColumnsItem.set(value);
4105
+ }
4106
+ get fieldMenuMoveToColumnsItem() {
4107
+ return this._fieldMenuMoveToColumnsItem();
4108
+ }
3693
4109
  /**
3694
4110
  * Specifies the text content of the **Move to Rows** item in the column and row fields menu.
3695
4111
  */
3696
- fieldMenuMoveToRowsItem;
4112
+ set fieldMenuMoveToRowsItem(value) {
4113
+ this._fieldMenuMoveToRowsItem.set(value);
4114
+ }
4115
+ get fieldMenuMoveToRowsItem() {
4116
+ return this._fieldMenuMoveToRowsItem();
4117
+ }
3697
4118
  /**
3698
4119
  * Specifies the text content of the **Move as previous** item in the column, row, and value fields menu.
3699
4120
  */
3700
- fieldMenuMovePreviousItem;
4121
+ set fieldMenuMovePreviousItem(value) {
4122
+ this._fieldMenuMovePreviousItem.set(value);
4123
+ }
4124
+ get fieldMenuMovePreviousItem() {
4125
+ return this._fieldMenuMovePreviousItem();
4126
+ }
3701
4127
  /**
3702
4128
  * Specifies the text content of the **Move as next** item in the column, row, and value fields menu.
3703
4129
  */
3704
- fieldMenuMoveNextItem;
4130
+ set fieldMenuMoveNextItem(value) {
4131
+ this._fieldMenuMoveNextItem.set(value);
4132
+ }
4133
+ get fieldMenuMoveNextItem() {
4134
+ return this._fieldMenuMoveNextItem();
4135
+ }
3705
4136
  /**
3706
4137
  * Controls the title of the chip menu icon.
3707
4138
  *
@@ -3711,15 +4142,67 @@ class PivotGridMessages extends ComponentMessages {
3711
4142
  * You can reorder the parts using `'[[fieldName]]'` as a placeholder. The `'[[fieldName]]'` placeholder will get replaced
3712
4143
  * with the current chip name. For example, `'chip for [[fieldName]]'` will become `'chip for Product Field Menu'`.
3713
4144
  */
3714
- chipMenuIconTitle;
4145
+ set chipMenuIconTitle(value) {
4146
+ this._chipMenuIconTitle.set(value);
4147
+ }
4148
+ get chipMenuIconTitle() {
4149
+ return this._chipMenuIconTitle();
4150
+ }
3715
4151
  /**
3716
4152
  * The text content of the PivotGrid configurator fields TreeView Measures node
3717
4153
  */
3718
- configuratorMeasuresText;
4154
+ set configuratorMeasuresText(value) {
4155
+ this._configuratorMeasuresText.set(value);
4156
+ }
4157
+ get configuratorMeasuresText() {
4158
+ return this._configuratorMeasuresText();
4159
+ }
3719
4160
  /**
3720
4161
  * Sets the accessible label for the chip list sections in the PivotGrid configurator.
3721
4162
  */
3722
- configuratorChipListLabel;
4163
+ set configuratorChipListLabel(value) {
4164
+ this._configuratorChipListLabel.set(value);
4165
+ }
4166
+ get configuratorChipListLabel() {
4167
+ return this._configuratorChipListLabel();
4168
+ }
4169
+ _fieldMenuFilterItemLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_fieldMenuFilterItemLabel" }] : []));
4170
+ _fieldMenuSortAscendingItemLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_fieldMenuSortAscendingItemLabel" }] : []));
4171
+ _fieldMenuSortDescendingItemLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_fieldMenuSortDescendingItemLabel" }] : []));
4172
+ _filterInputLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterInputLabel" }] : []));
4173
+ _filterOperatorsDropDownLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterOperatorsDropDownLabel" }] : []));
4174
+ _filterEqOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterEqOperator" }] : []));
4175
+ _filterNotEqOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterNotEqOperator" }] : []));
4176
+ _filterIsNullOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterIsNullOperator" }] : []));
4177
+ _filterIsNotNullOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterIsNotNullOperator" }] : []));
4178
+ _filterIsEmptyOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterIsEmptyOperator" }] : []));
4179
+ _filterIsNotEmptyOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterIsNotEmptyOperator" }] : []));
4180
+ _filterStartsWithOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterStartsWithOperator" }] : []));
4181
+ _filterContainsOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterContainsOperator" }] : []));
4182
+ _filterNotContainsOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterNotContainsOperator" }] : []));
4183
+ _filterEndsWithOperator = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterEndsWithOperator" }] : []));
4184
+ _filterFilterButton = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterFilterButton" }] : []));
4185
+ _filterClearButton = signal(undefined, ...(ngDevMode ? [{ debugName: "_filterClearButton" }] : []));
4186
+ _loading = signal(undefined, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
4187
+ _emptyCellLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_emptyCellLabel" }] : []));
4188
+ _configuratorButtonText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorButtonText" }] : []));
4189
+ _configuratorHeaderText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorHeaderText" }] : []));
4190
+ _configuratorFieldsText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorFieldsText" }] : []));
4191
+ _configuratorColumnsText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorColumnsText" }] : []));
4192
+ _configuratorRowsText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorRowsText" }] : []));
4193
+ _configuratorValuesText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorValuesText" }] : []));
4194
+ _configuratorCancelButtonText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorCancelButtonText" }] : []));
4195
+ _configuratorApplyButtonText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorApplyButtonText" }] : []));
4196
+ _configuratorEmptyRowsText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorEmptyRowsText" }] : []));
4197
+ _configuratorEmptyColumnsText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorEmptyColumnsText" }] : []));
4198
+ _configuratorEmptyMeasuresText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorEmptyMeasuresText" }] : []));
4199
+ _fieldMenuMoveToColumnsItem = signal(undefined, ...(ngDevMode ? [{ debugName: "_fieldMenuMoveToColumnsItem" }] : []));
4200
+ _fieldMenuMoveToRowsItem = signal(undefined, ...(ngDevMode ? [{ debugName: "_fieldMenuMoveToRowsItem" }] : []));
4201
+ _fieldMenuMovePreviousItem = signal(undefined, ...(ngDevMode ? [{ debugName: "_fieldMenuMovePreviousItem" }] : []));
4202
+ _fieldMenuMoveNextItem = signal(undefined, ...(ngDevMode ? [{ debugName: "_fieldMenuMoveNextItem" }] : []));
4203
+ _chipMenuIconTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_chipMenuIconTitle" }] : []));
4204
+ _configuratorMeasuresText = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorMeasuresText" }] : []));
4205
+ _configuratorChipListLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorChipListLabel" }] : []));
3723
4206
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3724
4207
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: PivotGridMessages, isStandalone: true, 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", fieldMenuMoveToColumnsItem: "fieldMenuMoveToColumnsItem", fieldMenuMoveToRowsItem: "fieldMenuMoveToRowsItem", fieldMenuMovePreviousItem: "fieldMenuMovePreviousItem", fieldMenuMoveNextItem: "fieldMenuMoveNextItem", chipMenuIconTitle: "chipMenuIconTitle", configuratorMeasuresText: "configuratorMeasuresText", configuratorChipListLabel: "configuratorChipListLabel" }, usesInheritance: true, ngImport: i0 });
3725
4208
  }
@@ -3889,8 +4372,8 @@ const packageMetadata = {
3889
4372
  productName: 'Kendo UI for Angular',
3890
4373
  productCode: 'KENDOUIANGULAR',
3891
4374
  productCodes: ['KENDOUIANGULAR'],
3892
- publishDate: 1790323637,
3893
- version: '25.2.1-develop.1',
4375
+ publishDate: 1790689440,
4376
+ version: '25.3.0-develop.1',
3894
4377
  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'
3895
4378
  };
3896
4379
 
@@ -4182,14 +4665,54 @@ class PivotGridCellDirective {
4182
4665
  renderer;
4183
4666
  dataService;
4184
4667
  cellClass = true;
4185
- kendoPivotGridCell;
4186
- tableType;
4187
- rowIndex;
4188
- colIndex;
4189
- customCellTemplate;
4190
- valueCellTemplate;
4191
- rowHeaderCellTemplate;
4192
- columnHeaderCellTemplate;
4668
+ set kendoPivotGridCell(value) {
4669
+ this._kendoPivotGridCell.set(value);
4670
+ }
4671
+ get kendoPivotGridCell() {
4672
+ return this._kendoPivotGridCell();
4673
+ }
4674
+ set tableType(value) {
4675
+ this._tableType.set(value);
4676
+ }
4677
+ get tableType() {
4678
+ return this._tableType();
4679
+ }
4680
+ set rowIndex(value) {
4681
+ this._rowIndex.set(value);
4682
+ }
4683
+ get rowIndex() {
4684
+ return this._rowIndex();
4685
+ }
4686
+ set colIndex(value) {
4687
+ this._colIndex.set(value);
4688
+ }
4689
+ get colIndex() {
4690
+ return this._colIndex();
4691
+ }
4692
+ set customCellTemplate(value) {
4693
+ this._customCellTemplate.set(value);
4694
+ }
4695
+ get customCellTemplate() {
4696
+ return this._customCellTemplate();
4697
+ }
4698
+ set valueCellTemplate(value) {
4699
+ this._valueCellTemplate.set(value);
4700
+ }
4701
+ get valueCellTemplate() {
4702
+ return this._valueCellTemplate();
4703
+ }
4704
+ set rowHeaderCellTemplate(value) {
4705
+ this._rowHeaderCellTemplate.set(value);
4706
+ }
4707
+ get rowHeaderCellTemplate() {
4708
+ return this._rowHeaderCellTemplate();
4709
+ }
4710
+ set columnHeaderCellTemplate(value) {
4711
+ this._columnHeaderCellTemplate.set(value);
4712
+ }
4713
+ get columnHeaderCellTemplate() {
4714
+ return this._columnHeaderCellTemplate();
4715
+ }
4193
4716
  get isNotProvidedCellTemplatePerType() {
4194
4717
  return (this.tableType === 'values' && !this.valueCellTemplate)
4195
4718
  || (this.tableType === 'rowHeader' && !this.rowHeaderCellTemplate)
@@ -4198,8 +4721,20 @@ class PivotGridCellDirective {
4198
4721
  get expanded() {
4199
4722
  return (this.kendoPivotGridCell?.hasChildren && this.kendoPivotGridCell?.children?.length > 0) || false;
4200
4723
  }
4724
+ get cellText() {
4725
+ const value = this.kendoPivotGridCell?.data ? this.kendoPivotGridCell.data.fmtValue : this.kendoPivotGridCell?.caption;
4726
+ return value === undefined || value === null || value === '' ? '\u200B' : value;
4727
+ }
4201
4728
  chevronUpSVGIcon = chevronUpIcon;
4202
4729
  chevronDownSVGIcon = chevronDownIcon;
4730
+ _kendoPivotGridCell = signal(undefined, ...(ngDevMode ? [{ debugName: "_kendoPivotGridCell" }] : []));
4731
+ _tableType = signal(undefined, ...(ngDevMode ? [{ debugName: "_tableType" }] : []));
4732
+ _rowIndex = signal(undefined, ...(ngDevMode ? [{ debugName: "_rowIndex" }] : []));
4733
+ _colIndex = signal(undefined, ...(ngDevMode ? [{ debugName: "_colIndex" }] : []));
4734
+ _customCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_customCellTemplate" }] : []));
4735
+ _valueCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueCellTemplate" }] : []));
4736
+ _rowHeaderCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_rowHeaderCellTemplate" }] : []));
4737
+ _columnHeaderCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_columnHeaderCellTemplate" }] : []));
4203
4738
  constructor(hostEl, renderer, dataService) {
4204
4739
  this.hostEl = hostEl;
4205
4740
  this.renderer = renderer;
@@ -4299,10 +4834,10 @@ class PivotGridCellDirective {
4299
4834
  <!--default cell content-->
4300
4835
  @if (!customCellTemplate && isNotProvidedCellTemplatePerType) {
4301
4836
  <span [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
4302
- {{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}
4837
+ {{ cellText }}
4303
4838
  </span>
4304
4839
  }
4305
- `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4840
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4306
4841
  }
4307
4842
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridCellDirective, decorators: [{
4308
4843
  type: Component,
@@ -4376,12 +4911,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
4376
4911
  <!--default cell content-->
4377
4912
  @if (!customCellTemplate && isNotProvidedCellTemplatePerType) {
4378
4913
  <span [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
4379
- {{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}
4914
+ {{ cellText }}
4380
4915
  </span>
4381
4916
  }
4382
4917
  `,
4383
4918
  standalone: true,
4384
- imports: [IconWrapperComponent, EventsOutsideAngularDirective, TemplateContextDirective, NgClass]
4919
+ imports: [IconWrapperComponent, EventsOutsideAngularDirective, TemplateContextDirective, NgClass],
4920
+ changeDetection: ChangeDetectionStrategy.OnPush
4385
4921
  }]
4386
4922
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PivotGridDataService }], propDecorators: { cellClass: [{
4387
4923
  type: HostBinding,
@@ -4427,25 +4963,70 @@ class PivotGridTableComponent {
4427
4963
  zone;
4428
4964
  scrollService;
4429
4965
  hostRole = 'none';
4430
- headerItems;
4431
- rows;
4432
- renderedRows;
4433
- renderedCols;
4966
+ get headerItems() {
4967
+ return this._headerItems();
4968
+ }
4969
+ get rows() {
4970
+ return this._rows();
4971
+ }
4972
+ get renderedRows() {
4973
+ return this._renderedRows();
4974
+ }
4975
+ get renderedCols() {
4976
+ return this._renderedCols();
4977
+ }
4434
4978
  totalRows;
4435
- startRowIndex = 0;
4436
- startColIndex = 0;
4437
- rtl = false;
4438
- itemIdCounter = 0;
4439
- itemIdMap = new WeakMap();
4440
- rowIdMap = new WeakMap();
4441
- cellIdMap = new WeakMap();
4442
- tableType;
4443
- colWidth;
4444
- customCellTemplate;
4445
- valueCellTemplate;
4446
- rowHeaderCellTemplate;
4447
- columnHeaderCellTemplate;
4448
- scrollableSettings;
4979
+ get startRowIndex() {
4980
+ return this._startRowIndex();
4981
+ }
4982
+ get startColIndex() {
4983
+ return this._startColIndex();
4984
+ }
4985
+ get rtl() {
4986
+ return this._rtl();
4987
+ }
4988
+ set tableType(value) {
4989
+ this._tableType.set(value);
4990
+ }
4991
+ get tableType() {
4992
+ return this._tableType();
4993
+ }
4994
+ set colWidth(value) {
4995
+ this._colWidth.set(value);
4996
+ }
4997
+ get colWidth() {
4998
+ return this._colWidth();
4999
+ }
5000
+ set customCellTemplate(value) {
5001
+ this._customCellTemplate.set(value);
5002
+ }
5003
+ get customCellTemplate() {
5004
+ return this._customCellTemplate();
5005
+ }
5006
+ set valueCellTemplate(value) {
5007
+ this._valueCellTemplate.set(value);
5008
+ }
5009
+ get valueCellTemplate() {
5010
+ return this._valueCellTemplate();
5011
+ }
5012
+ set rowHeaderCellTemplate(value) {
5013
+ this._rowHeaderCellTemplate.set(value);
5014
+ }
5015
+ get rowHeaderCellTemplate() {
5016
+ return this._rowHeaderCellTemplate();
5017
+ }
5018
+ set columnHeaderCellTemplate(value) {
5019
+ this._columnHeaderCellTemplate.set(value);
5020
+ }
5021
+ get columnHeaderCellTemplate() {
5022
+ return this._columnHeaderCellTemplate();
5023
+ }
5024
+ set scrollableSettings(value) {
5025
+ this._scrollableSettings.set(value);
5026
+ }
5027
+ get scrollableSettings() {
5028
+ return this._scrollableSettings();
5029
+ }
4449
5030
  get pivotGridId() {
4450
5031
  return `kendo-pivotgrid-${this.dataService.pivotGridId}-`;
4451
5032
  }
@@ -4455,6 +5036,24 @@ class PivotGridTableComponent {
4455
5036
  get rowVirtualization() {
4456
5037
  return this.scrollableSettings?.type && this.scrollableSettings?.type !== 'column';
4457
5038
  }
5039
+ itemIdCounter = 0;
5040
+ itemIdMap = new WeakMap();
5041
+ rowIdMap = new WeakMap();
5042
+ cellIdMap = new WeakMap();
5043
+ _headerItems = signal(undefined, ...(ngDevMode ? [{ debugName: "_headerItems" }] : []));
5044
+ _rows = signal(undefined, ...(ngDevMode ? [{ debugName: "_rows" }] : []));
5045
+ _renderedRows = signal(undefined, ...(ngDevMode ? [{ debugName: "_renderedRows" }] : []));
5046
+ _renderedCols = signal(undefined, ...(ngDevMode ? [{ debugName: "_renderedCols" }] : []));
5047
+ _startRowIndex = signal(0, ...(ngDevMode ? [{ debugName: "_startRowIndex" }] : []));
5048
+ _startColIndex = signal(0, ...(ngDevMode ? [{ debugName: "_startColIndex" }] : []));
5049
+ _rtl = signal(false, ...(ngDevMode ? [{ debugName: "_rtl" }] : []));
5050
+ _tableType = signal(undefined, ...(ngDevMode ? [{ debugName: "_tableType" }] : []));
5051
+ _colWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "_colWidth" }] : []));
5052
+ _customCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_customCellTemplate" }] : []));
5053
+ _valueCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_valueCellTemplate" }] : []));
5054
+ _rowHeaderCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_rowHeaderCellTemplate" }] : []));
5055
+ _columnHeaderCellTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_columnHeaderCellTemplate" }] : []));
5056
+ _scrollableSettings = signal(undefined, ...(ngDevMode ? [{ debugName: "_scrollableSettings" }] : []));
4458
5057
  subs = new Subscription();
4459
5058
  scrollable;
4460
5059
  constructor(host, dataService, localization, zone, scrollService) {
@@ -4464,14 +5063,14 @@ class PivotGridTableComponent {
4464
5063
  this.zone = zone;
4465
5064
  this.scrollService = scrollService;
4466
5065
  this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
4467
- this.rtl = rtl;
5066
+ this._rtl.set(rtl);
4468
5067
  this.scrollable && (this.scrollable.rtl = rtl);
4469
5068
  }));
4470
5069
  }
4471
5070
  ngOnInit() {
4472
5071
  this.subs.add(this.dataService[`${this.tableType}Rows`].subscribe(rows => {
4473
- this.rows = rows;
4474
- this.renderedRows = this.scrollableSettings ? rows.slice(this.startRowIndex, this.startRowIndex + this.scrollableSettings.rows) : rows;
5072
+ this._rows.set(rows);
5073
+ this._renderedRows.set(this.scrollableSettings ? rows.slice(this.startRowIndex, this.startRowIndex + this.scrollableSettings.rows) : rows);
4475
5074
  this.totalRows && this.totalRows !== rows.length && this.scrollable && (this.scrollable.total = rows.length);
4476
5075
  this.scrollable && this.scrollable.onNewData(this.totalRows && this.totalRows !== rows.length);
4477
5076
  this.totalRows = rows.length;
@@ -4529,18 +5128,18 @@ class PivotGridTableComponent {
4529
5128
  return `cell-${index + this.startColIndex}-obj${objectId}`;
4530
5129
  }
4531
5130
  colsUpdateCallback = (cols) => {
4532
- this.renderedCols = Math.min(cols.length, this.scrollableSettings?.columns);
5131
+ this._renderedCols.set(Math.min(cols.length, this.scrollableSettings?.columns));
4533
5132
  this.renderedCols && this.scrollable && (this.scrollable.totalCols = cols.length);
4534
5133
  (this.scrollableSettings && this.scrollableSettings.type !== 'row') && this.scrollable?.onNewData(true);
4535
- this.headerItems = cols;
5134
+ this._headerItems.set(cols);
4536
5135
  isDocumentAvailable() && !this.scrollable && this.tableType === 'values' && (this.columnVirtualization || this.rowVirtualization) && this.initScrollable();
4537
5136
  };
4538
5137
  initScrollable = () => {
4539
5138
  this.scrollable = new ScrollableTable(this.host.nativeElement, {
4540
5139
  onScroll: () => {
4541
- this.startRowIndex = this.scrollable.startRow;
4542
- this.startColIndex = this.scrollable.startCol;
4543
- this.renderedRows = this.rows.slice(this.startRowIndex, this.startRowIndex + this.scrollableSettings.rows);
5140
+ this._startRowIndex.set(this.scrollable.startRow);
5141
+ this._startColIndex.set(this.scrollable.startCol);
5142
+ this._renderedRows.set(this.rows.slice(this.startRowIndex, this.startRowIndex + this.scrollableSettings.rows));
4544
5143
  this.scrollable.renderedRows = this.renderedRows.length;
4545
5144
  this.scrollable.renderedCols = this.renderedCols;
4546
5145
  },
@@ -4700,7 +5299,7 @@ class PivotGridTableComponent {
4700
5299
  }
4701
5300
  </tbody>
4702
5301
  </table>
4703
- `, isInline: true, dependencies: [{ kind: "component", type: PivotGridCellDirective, selector: "[kendoPivotGridCell]", inputs: ["kendoPivotGridCell", "tableType", "rowIndex", "colIndex", "customCellTemplate", "valueCellTemplate", "rowHeaderCellTemplate", "columnHeaderCellTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
5302
+ `, isInline: true, dependencies: [{ kind: "component", type: PivotGridCellDirective, selector: "[kendoPivotGridCell]", inputs: ["kendoPivotGridCell", "tableType", "rowIndex", "colIndex", "customCellTemplate", "valueCellTemplate", "rowHeaderCellTemplate", "columnHeaderCellTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4704
5303
  }
4705
5304
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridTableComponent, decorators: [{
4706
5305
  type: Component,
@@ -4765,7 +5364,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
4765
5364
  </table>
4766
5365
  `,
4767
5366
  standalone: true,
4768
- imports: [PivotGridCellDirective, NgStyle]
5367
+ imports: [PivotGridCellDirective, NgStyle],
5368
+ changeDetection: ChangeDetectionStrategy.OnPush
4769
5369
  }]
4770
5370
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: PivotGridDataService }, { type: i1$1.LocalizationService }, { type: i0.NgZone }, { type: PivotGridScrollService }], propDecorators: { hostRole: [{
4771
5371
  type: HostBinding,
@@ -4844,6 +5444,7 @@ class PivotGridComponent {
4844
5444
  localization;
4845
5445
  renderer;
4846
5446
  scrollService;
5447
+ cdr;
4847
5448
  hostClass = true;
4848
5449
  get rightPositionClass() {
4849
5450
  return !this.configuratorSettings || this.configuratorSettings.position === 'right';
@@ -4858,7 +5459,7 @@ class PivotGridComponent {
4858
5459
  return this.configuratorSettings?.position === 'top';
4859
5460
  }
4860
5461
  get dir() {
4861
- return this.direction;
5462
+ return this._direction();
4862
5463
  }
4863
5464
  colHeadersTable;
4864
5465
  rowHeadersTable;
@@ -4873,10 +5474,10 @@ class PivotGridComponent {
4873
5474
  * Sets the type, size, and color of the PivotGrid loader.
4874
5475
  */
4875
5476
  set loaderSettings(settings) {
4876
- this._loaderSettings = Object.assign({}, DEFAULT_LOADER_SETTINGS, settings);
5477
+ this._loaderSettings.set(Object.assign({}, DEFAULT_LOADER_SETTINGS, settings));
4877
5478
  }
4878
5479
  get loaderSettings() {
4879
- return this._loaderSettings;
5480
+ return this._loaderSettings();
4880
5481
  }
4881
5482
  /**
4882
5483
  * @hidden
@@ -4889,28 +5490,38 @@ class PivotGridComponent {
4889
5490
  *
4890
5491
  * @default false
4891
5492
  */
4892
- configurator;
5493
+ set configurator(value) {
5494
+ this._configurator.set(value);
5495
+ }
5496
+ get configurator() {
5497
+ return this._configurator();
5498
+ }
4893
5499
  /**
4894
5500
  * Sets the virtualization options of the component. By default, the virtual scrolling functionality is disabled.
4895
5501
  *
4896
5502
  * @default false
4897
5503
  */
4898
5504
  set virtualScrolling(value) {
4899
- this._virtualScrolling = normalizeVirtualSettings(value);
5505
+ this._virtualScrolling.set(normalizeVirtualSettings(value));
4900
5506
  this.scrollService.virtualScrolling = !!value;
4901
5507
  }
4902
5508
  get virtualScrolling() {
4903
- return this._virtualScrolling;
5509
+ return this._virtualScrolling();
4904
5510
  }
4905
5511
  get configuratorSettings() {
4906
- return this.configurator && Object.assign({}, DEFAULT_CONFIGURATOR_SETTINGS, this.configurator);
5512
+ return this._configuratorSettings();
4907
5513
  }
4908
5514
  /**
4909
5515
  * Sets the width of the column header and data cells. The provided value is treated in pixels [(see example)](https://www.telerik.com/kendo-angular-ui/components/pivotgrid/appearance#column-headers-width).
4910
5516
  *
4911
5517
  * @default 200
4912
5518
  */
4913
- columnHeadersWidth = 200;
5519
+ set columnHeadersWidth(value) {
5520
+ this._columnHeadersWidth.set(value);
5521
+ }
5522
+ get columnHeadersWidth() {
5523
+ return this._columnHeadersWidth();
5524
+ }
4914
5525
  /**
4915
5526
  * Specifies whether the keyboard navigation is enabled. When enabled, you can use keyboard shortcuts to interact with the PivotGrid.
4916
5527
  * Set to `false` to disable navigation and include the PivotGrid content in the normal tab sequence.
@@ -4920,7 +5531,12 @@ class PivotGridComponent {
4920
5531
  * @remarks
4921
5532
  * This property is related to accessibility.
4922
5533
  */
4923
- navigable = true;
5534
+ set navigable(value) {
5535
+ this._navigable.set(value);
5536
+ }
5537
+ get navigable() {
5538
+ return this._navigable();
5539
+ }
4924
5540
  /**
4925
5541
  * Gets the aggregated PivotGrid values that are displayed.
4926
5542
  */
@@ -4931,28 +5547,48 @@ class PivotGridComponent {
4931
5547
  * @hidden
4932
5548
  */
4933
5549
  gearSVGIcon = gearIcon;
4934
- loading;
4935
- showConfigurator;
4936
- configuratorNavigation;
5550
+ set loading(value) {
5551
+ this._loading.set(value);
5552
+ }
5553
+ get loading() {
5554
+ return this._loading();
5555
+ }
5556
+ set showConfigurator(value) {
5557
+ this._showConfigurator.set(value);
5558
+ }
5559
+ get showConfigurator() {
5560
+ return this._showConfigurator();
5561
+ }
5562
+ get configuratorNavigation() {
5563
+ return this._configuratorNavigation();
5564
+ }
5565
+ navigation;
4937
5566
  resizeObservers = [];
4938
- _loaderSettings = DEFAULT_LOADER_SETTINGS;
4939
- _virtualScrolling = normalizeVirtualSettings(false);
5567
+ _loaderSettings = signal(DEFAULT_LOADER_SETTINGS, ...(ngDevMode ? [{ debugName: "_loaderSettings" }] : []));
5568
+ _virtualScrolling = signal(normalizeVirtualSettings(false), ...(ngDevMode ? [{ debugName: "_virtualScrolling" }] : []));
5569
+ _configurator = signal(undefined, ...(ngDevMode ? [{ debugName: "_configurator" }] : []));
5570
+ _columnHeadersWidth = signal(200, ...(ngDevMode ? [{ debugName: "_columnHeadersWidth" }] : []));
5571
+ _navigable = signal(true, ...(ngDevMode ? [{ debugName: "_navigable" }] : []));
5572
+ _loading = signal(false, ...(ngDevMode ? [{ debugName: "_loading" }] : []));
5573
+ _showConfigurator = signal(false, ...(ngDevMode ? [{ debugName: "_showConfigurator" }] : []));
5574
+ _configuratorNavigation = signal(undefined, ...(ngDevMode ? [{ debugName: "_configuratorNavigation" }] : []));
5575
+ _direction = signal(undefined, ...(ngDevMode ? [{ debugName: "_direction" }] : []));
5576
+ _configuratorSettings = computed(() => this._configurator() && Object.assign({}, DEFAULT_CONFIGURATOR_SETTINGS, this._configurator()), ...(ngDevMode ? [{ debugName: "_configuratorSettings" }] : []));
4940
5577
  subs = new Subscription();
4941
5578
  rtl = false;
4942
- direction;
4943
- navigation;
4944
5579
  navigationSubs;
4945
- constructor(hostEl, zone, dataService, localization, renderer, _scrollbarService, scrollService) {
5580
+ constructor(hostEl, zone, dataService, localization, renderer, _scrollbarService, scrollService, cdr) {
4946
5581
  this.hostEl = hostEl;
4947
5582
  this.zone = zone;
4948
5583
  this.dataService = dataService;
4949
5584
  this.localization = localization;
4950
5585
  this.renderer = renderer;
4951
5586
  this.scrollService = scrollService;
5587
+ this.cdr = cdr;
4952
5588
  validatePackage(packageMetadata);
4953
5589
  this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
4954
5590
  this.rtl = rtl;
4955
- this.direction = this.rtl ? 'rtl' : 'ltr';
5591
+ this._direction.set(this.rtl ? 'rtl' : 'ltr');
4956
5592
  }));
4957
5593
  dataService.wrapper = this.hostEl.nativeElement;
4958
5594
  this.scrollService.pivotGrid = this;
@@ -4978,7 +5614,8 @@ class PivotGridComponent {
4978
5614
  }
4979
5615
  }
4980
5616
  ngAfterContentInit() {
4981
- this.subs.add(this.dataService.loading.subscribe(state => this.loading = state));
5617
+ this.subs.add(this.dataService.loading.subscribe(state => this._loading.set(state)));
5618
+ this.subs.add(this.dataService.valuesRows.subscribe(() => this.cdr.markForCheck()));
4982
5619
  }
4983
5620
  ngOnChanges(changes) {
4984
5621
  if (isChanged('navigable', changes)) {
@@ -5005,7 +5642,7 @@ class PivotGridComponent {
5005
5642
  * @hidden
5006
5643
  */
5007
5644
  toggleConfigurator() {
5008
- this.showConfigurator = !this.showConfigurator;
5645
+ this._showConfigurator.set(!this._showConfigurator());
5009
5646
  if (!this.navigable) {
5010
5647
  return;
5011
5648
  }
@@ -5073,10 +5710,14 @@ class PivotGridComponent {
5073
5710
  }
5074
5711
  }
5075
5712
  initConfiguratorNavigation() {
5713
+ if (!this.configuratorWrapper) {
5714
+ return;
5715
+ }
5076
5716
  this.stopConfiguratorNavigation();
5077
- this.configuratorNavigation = new ConfiguratorNavigation({ tabIndex: 0 });
5078
- this.configuratorNavigation.start(this.configuratorWrapper.nativeElement);
5079
- this.configuratorNavigation.first.setAttribute('tabindex', '0');
5717
+ const configuratorNavigation = new ConfiguratorNavigation({ tabIndex: 0 });
5718
+ configuratorNavigation.start(this.configuratorWrapper.nativeElement);
5719
+ configuratorNavigation.first.setAttribute('tabindex', '0');
5720
+ this._configuratorNavigation.set(configuratorNavigation);
5080
5721
  }
5081
5722
  stopConfiguratorNavigation() {
5082
5723
  if (this.configuratorNavigation) {
@@ -5087,7 +5728,7 @@ class PivotGridComponent {
5087
5728
  this.configuratorNavigation.stop();
5088
5729
  }
5089
5730
  }
5090
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PivotGridDataService }, { token: i1$1.LocalizationService }, { token: i0.Renderer2 }, { token: i1$4.ScrollbarService }, { token: PivotGridScrollService }], target: i0.ɵɵFactoryTarget.Component });
5731
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PivotGridDataService }, { token: i1$1.LocalizationService }, { token: i0.Renderer2 }, { token: i1$4.ScrollbarService }, { token: PivotGridScrollService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
5091
5732
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.30", 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: [
5092
5733
  PivotGridDataService,
5093
5734
  LocalizationService,
@@ -5268,7 +5909,7 @@ class PivotGridComponent {
5268
5909
  </span>
5269
5910
  </div>
5270
5911
  }
5271
- `, 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"] }] });
5912
+ `, 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5272
5913
  }
5273
5914
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: PivotGridComponent, decorators: [{
5274
5915
  type: Component,
@@ -5457,9 +6098,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
5457
6098
  }
5458
6099
  `,
5459
6100
  standalone: true,
5460
- imports: [LocalizedMessagesDirective, PivotGridTableComponent, LoaderComponent, PivotGridConfiguratorComponent, IconWrapperComponent]
6101
+ imports: [LocalizedMessagesDirective, PivotGridTableComponent, LoaderComponent, PivotGridConfiguratorComponent, IconWrapperComponent],
6102
+ changeDetection: ChangeDetectionStrategy.OnPush
5461
6103
  }]
5462
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: PivotGridDataService }, { type: i1$1.LocalizationService }, { type: i0.Renderer2 }, { type: i1$4.ScrollbarService }, { type: PivotGridScrollService }], propDecorators: { hostClass: [{
6104
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: PivotGridDataService }, { type: i1$1.LocalizationService }, { type: i0.Renderer2 }, { type: i1$4.ScrollbarService }, { type: PivotGridScrollService }, { type: i0.ChangeDetectorRef }], propDecorators: { hostClass: [{
5463
6105
  type: HostBinding,
5464
6106
  args: ['class.k-d-flex']
5465
6107
  }, {