@progress/kendo-angular-pivotgrid 14.1.0-develop.9 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/configurator/chip-menu/chip-menu-item.component.d.ts +5 -1
  2. package/configurator/chip-menu/chip-menu-reorder.component.d.ts +44 -0
  3. package/configurator/chip-menu/chip-menu.component.d.ts +5 -3
  4. package/configurator/chip-menu/chip-menu.module.d.ts +4 -3
  5. package/configurator/chip-menu/chip-menu.service.d.ts +5 -1
  6. package/configurator/configurator.service.d.ts +3 -0
  7. package/configurator/draggable.directive.d.ts +5 -3
  8. package/esm2020/configurator/chip-menu/chip-menu-filter.component.mjs +1 -1
  9. package/esm2020/configurator/chip-menu/chip-menu-item.component.mjs +7 -1
  10. package/esm2020/configurator/chip-menu/chip-menu-reorder.component.mjs +185 -0
  11. package/esm2020/configurator/chip-menu/chip-menu-sort.component.mjs +1 -1
  12. package/esm2020/configurator/chip-menu/chip-menu.component.mjs +56 -33
  13. package/esm2020/configurator/chip-menu/chip-menu.module.mjs +8 -3
  14. package/esm2020/configurator/chip-menu/chip-menu.service.mjs +12 -3
  15. package/esm2020/configurator/configurator.component.mjs +20 -2
  16. package/esm2020/configurator/configurator.service.mjs +3 -0
  17. package/esm2020/configurator/draggable.directive.mjs +17 -8
  18. package/esm2020/localization/messages.mjs +9 -1
  19. package/esm2020/models/configurator-chipmenu-reorder-target.mjs +5 -0
  20. package/esm2020/package-metadata.mjs +2 -2
  21. package/esm2020/pivotgrid.component.mjs +26 -2
  22. package/fesm2015/progress-kendo-angular-pivotgrid.mjs +324 -56
  23. package/fesm2020/progress-kendo-angular-pivotgrid.mjs +323 -56
  24. package/localization/messages.d.ts +17 -1
  25. package/localization/pivot-localization.service.d.ts +1 -1
  26. package/models/configurator-chipmenu-reorder-target.d.ts +8 -0
  27. package/package.json +12 -12
  28. package/schematics/ngAdd/index.js +1 -1
@@ -15,6 +15,7 @@ import { StringFilterMenuComponent } from './filtering/string-filter-menu.compon
15
15
  import { FilterMenuDropDownListDirective } from './filtering/filter-menu-dropdownlist.directive';
16
16
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
17
17
  import { SharedModule } from '../../shared.module';
18
+ import { ChipMenuReorderComponent } from './chip-menu-reorder.component';
18
19
  import * as i0 from "@angular/core";
19
20
  const COMPONENTS = [
20
21
  ChipMenuItemComponent,
@@ -26,7 +27,8 @@ const COMPONENTS = [
26
27
  StringFilterMenuComponent,
27
28
  FilterMenuDropDownListDirective,
28
29
  ChipMenuContainerComponent,
29
- ChipMenuItemDirective
30
+ ChipMenuItemDirective,
31
+ ChipMenuReorderComponent
30
32
  ];
31
33
  /**
32
34
  * @hidden
@@ -36,6 +38,7 @@ export class ChipMenuModule {
36
38
  return [
37
39
  ChipMenuItemComponent,
38
40
  ChipMenuSortComponent,
41
+ ChipMenuReorderComponent,
39
42
  ChipMenuContainerComponent,
40
43
  ChipMenuItemDirective,
41
44
  ChipMenuComponent
@@ -52,7 +55,8 @@ ChipMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
52
55
  StringFilterMenuComponent,
53
56
  FilterMenuDropDownListDirective,
54
57
  ChipMenuContainerComponent,
55
- ChipMenuItemDirective], imports: [SharedModule,
58
+ ChipMenuItemDirective,
59
+ ChipMenuReorderComponent], imports: [SharedModule,
56
60
  ReactiveFormsModule,
57
61
  FormsModule], exports: [ChipMenuItemComponent,
58
62
  ChipMenuSortComponent,
@@ -63,7 +67,8 @@ ChipMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
63
67
  StringFilterMenuComponent,
64
68
  FilterMenuDropDownListDirective,
65
69
  ChipMenuContainerComponent,
66
- ChipMenuItemDirective] });
70
+ ChipMenuItemDirective,
71
+ ChipMenuReorderComponent] });
67
72
  ChipMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ChipMenuModule, imports: [[
68
73
  SharedModule,
69
74
  ReactiveFormsModule,
@@ -2,18 +2,24 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ import { Subscription } from 'rxjs';
6
+ import { ConfiguratorService } from '../configurator.service';
5
7
  import { MenuTabbingService } from './filtering/menu-tabbing.service';
6
8
  import { Injectable, EventEmitter } from '@angular/core';
7
9
  import * as i0 from "@angular/core";
8
10
  import * as i1 from "./filtering/menu-tabbing.service";
11
+ import * as i2 from "../configurator.service";
9
12
  /**
10
13
  * @hidden
11
14
  * Represents the service that is passed to the ChipMenuFilterComponent and ChipMenuSortComponent.
12
15
  */
13
16
  export class ChipMenuService {
14
- constructor(menuTabbingService) {
17
+ constructor(menuTabbingService, configuratorService) {
18
+ this.configuratorService = configuratorService;
15
19
  this.closeMenu = new EventEmitter();
20
+ this.sub = new Subscription();
16
21
  this.menuTabbingService = menuTabbingService;
22
+ configuratorService && (this.sub = configuratorService.closeMenu.subscribe(() => this.close()));
17
23
  }
18
24
  /**
19
25
  * Closes the chip menu.
@@ -21,9 +27,12 @@ export class ChipMenuService {
21
27
  close() {
22
28
  this.closeMenu.emit();
23
29
  }
30
+ ngOnDestroy() {
31
+ this.sub.unsubscribe();
32
+ }
24
33
  }
25
- ChipMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ChipMenuService, deps: [{ token: i1.MenuTabbingService }], target: i0.ɵɵFactoryTarget.Injectable });
34
+ ChipMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ChipMenuService, deps: [{ token: i1.MenuTabbingService }, { token: i2.ConfiguratorService }], target: i0.ɵɵFactoryTarget.Injectable });
26
35
  ChipMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ChipMenuService });
27
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ChipMenuService, decorators: [{
28
37
  type: Injectable
29
- }], ctorParameters: function () { return [{ type: i1.MenuTabbingService }]; } });
38
+ }], ctorParameters: function () { return [{ type: i1.MenuTabbingService }, { type: i2.ConfiguratorService }]; } });
@@ -59,6 +59,7 @@ export class PivotGridConfiguratorComponent {
59
59
  }
60
60
  return of(node.children);
61
61
  };
62
+ this.configuratorService.configuratorInstance = this;
62
63
  }
63
64
  get headerTextId() {
64
65
  return `k-pivotgrid-${this.dataService.pivotGridId}-configurator-header`;
@@ -117,6 +118,7 @@ export class PivotGridConfiguratorComponent {
117
118
  filter: state.filter
118
119
  };
119
120
  this.state = this.configuratorService.state = state;
121
+ this.cdr.detectChanges();
120
122
  }
121
123
  onReorder(ev, name, item) {
122
124
  const currentCollection = this.state[`${name}Axes`];
@@ -183,12 +185,12 @@ export class PivotGridConfiguratorComponent {
183
185
  this.dataService.state[`${section}Axes`] = filteredItems;
184
186
  const newState = { ...this.state, ...this.dataService.state };
185
187
  this.checked = this.checked.filter(checkedItem => checkedItem.uniqueName !== item.name[0]);
188
+ const targetIndex = this.navigation?.elements.indexOf(ev.sender.element.nativeElement);
186
189
  this.setState(newState);
187
190
  if (!this.navigation) {
188
191
  return;
189
192
  }
190
193
  ;
191
- const targetIndex = this.navigation.elements.indexOf(ev.sender.element.nativeElement);
192
194
  this.zone.runOutsideAngular(() => setTimeout(() => this.navigation.focusElement(this.navigation.elements[targetIndex - 1], this.navigation.elements[targetIndex])));
193
195
  }
194
196
  /**
@@ -389,6 +391,7 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
389
391
  #columnsChiplist
390
392
  kendoDropTarget
391
393
  axes="columnAxes"
394
+ [style.width.%]="100"
392
395
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
393
396
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
394
397
  >
@@ -427,6 +430,7 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
427
430
  axes="rowAxes"
428
431
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('rows')"
429
432
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
433
+ [style.width.%]="100"
430
434
  >
431
435
  <ng-container *ngFor="let item of state.rowAxes">
432
436
  <kendo-chip *ngIf="item.name.length === 1"
@@ -470,6 +474,7 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
470
474
  axes="measureAxes"
471
475
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('values')"
472
476
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
477
+ [style.width.%]="100"
473
478
  >
474
479
  <kendo-chip *ngFor="let item of state.measureAxes"
475
480
  kendoChipDraggable
@@ -484,6 +489,11 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
484
489
  (reorder)="onReorder($event, 'measure', item)"
485
490
  >
486
491
  {{ getName(item.name) }}
492
+
493
+ <kendo-pivot-chip-menu
494
+ [isMeasureField]="true"
495
+ [chip]="item">
496
+ </kendo-pivot-chip-menu>
487
497
  </kendo-chip>
488
498
  </kendo-chiplist>
489
499
 
@@ -499,7 +509,7 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
499
509
  <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor('configuratorApplyButtonText')}}</button>
500
510
  </div>
501
511
  </div>
502
- `, isInline: true, components: [{ type: i4.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "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"] }, { type: i5.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { type: i5.ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarClass", "selected", "removable", "removeIcon", "removeSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "contentClick"] }, { type: i6.ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: ["chip", "tabIndex"] }, { type: i5.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { type: i4.NodeTemplateDirective, selector: "[kendoTreeViewNodeTemplate]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["item", "axes"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: ["item"] }, { type: i11.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i12.ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: ["reorder"] }] });
512
+ `, isInline: true, components: [{ type: i4.TreeViewComponent, selector: "kendo-treeview", inputs: ["filterInputPlaceholder", "expandDisabledNodes", "animate", "nodeTemplate", "loadMoreButtonTemplate", "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"] }, { type: i5.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { type: i5.ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "svgIcon", "iconClass", "avatarClass", "selected", "removable", "removeIcon", "removeSvgIcon", "hasMenu", "menuIcon", "menuSvgIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "menuToggle", "contentClick"] }, { type: i6.ChipMenuComponent, selector: "kendo-pivot-chip-menu", inputs: ["chip", "tabIndex", "isMeasureField"] }, { type: i5.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { type: i4.NodeTemplateDirective, selector: "[kendoTreeViewNodeTemplate]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["item", "axes"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: ["item"] }, { type: i11.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i12.ChipKeyboardNavigationDirective, selector: "[kendoChipKeyboardNavigation]", outputs: ["reorder"] }] });
503
513
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PivotGridConfiguratorComponent, decorators: [{
504
514
  type: Component,
505
515
  args: [{
@@ -574,6 +584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
574
584
  #columnsChiplist
575
585
  kendoDropTarget
576
586
  axes="columnAxes"
587
+ [style.width.%]="100"
577
588
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
578
589
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
579
590
  >
@@ -612,6 +623,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
612
623
  axes="rowAxes"
613
624
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('rows')"
614
625
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
626
+ [style.width.%]="100"
615
627
  >
616
628
  <ng-container *ngFor="let item of state.rowAxes">
617
629
  <kendo-chip *ngIf="item.name.length === 1"
@@ -655,6 +667,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
655
667
  axes="measureAxes"
656
668
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('values')"
657
669
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
670
+ [style.width.%]="100"
658
671
  >
659
672
  <kendo-chip *ngFor="let item of state.measureAxes"
660
673
  kendoChipDraggable
@@ -669,6 +682,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
669
682
  (reorder)="onReorder($event, 'measure', item)"
670
683
  >
671
684
  {{ getName(item.name) }}
685
+
686
+ <kendo-pivot-chip-menu
687
+ [isMeasureField]="true"
688
+ [chip]="item">
689
+ </kendo-pivot-chip-menu>
672
690
  </kendo-chip>
673
691
  </kendo-chiplist>
674
692
 
@@ -15,6 +15,7 @@ export class ConfiguratorService {
15
15
  constructor(dataService) {
16
16
  this.dataService = dataService;
17
17
  this.configuratorStateChange = new EventEmitter();
18
+ this.closeMenu = new EventEmitter();
18
19
  }
19
20
  parseConfiguratorState(action) {
20
21
  const newState = configuratorReducer({
@@ -40,4 +41,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
40
41
  type: Injectable
41
42
  }], ctorParameters: function () { return [{ type: i1.PivotGridDataService }]; }, propDecorators: { configuratorStateChange: [{
42
43
  type: Output
44
+ }], closeMenu: [{
45
+ type: Output
43
46
  }] } });
@@ -2,12 +2,13 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Directive, Input, ElementRef, NgZone, Optional, HostBinding, Renderer2 } from '@angular/core';
5
+ import { Directive, Input, ElementRef, NgZone, Optional, HostBinding, Renderer2, ChangeDetectorRef } from '@angular/core';
6
6
  import { DraggableDirective, isDocumentAvailable } from '@progress/kendo-angular-common';
7
7
  import { PIVOT_CONFIGURATOR_ACTION } from '@progress/kendo-pivotgrid-common';
8
8
  import { ConfiguratorService } from './configurator.service';
9
9
  import { DropCueService } from './drop-cue.service';
10
10
  import { Subscription } from 'rxjs';
11
+ import { tap } from 'rxjs/operators';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@progress/kendo-angular-common";
13
14
  import * as i2 from "./configurator.service";
@@ -16,16 +17,18 @@ import * as i3 from "./drop-cue.service";
16
17
  * @hidden
17
18
  */
18
19
  export class DraggableChipDirective {
19
- constructor(draggable, element, zone, service, cue, renderer) {
20
+ constructor(draggable, element, zone, service, cue, renderer, cdr) {
20
21
  this.draggable = draggable;
21
22
  this.element = element;
22
23
  this.zone = zone;
23
24
  this.service = service;
24
25
  this.cue = cue;
25
26
  this.renderer = renderer;
27
+ this.cdr = cdr;
26
28
  this.touchActions = 'none';
27
29
  this.initialX = {};
28
30
  this.initialY = {};
31
+ this.invalidTarget = false;
29
32
  this.subs = new Subscription();
30
33
  }
31
34
  get pointerEvents() {
@@ -33,9 +36,14 @@ export class DraggableChipDirective {
33
36
  }
34
37
  ngOnInit() {
35
38
  this.subs.add(this.draggable.kendoPress
36
- .subscribe((event) => {
39
+ .pipe(tap((e) => {
40
+ this.service.closeMenu.emit();
41
+ if (e.originalEvent.target.closest('.k-icon-wrapper-host')) {
42
+ this.invalidTarget = true;
43
+ }
44
+ })).subscribe((event) => {
37
45
  this.zone.runOutsideAngular(() => {
38
- if (isDocumentAvailable()) {
46
+ if (isDocumentAvailable() && !this.invalidTarget) {
39
47
  this.initialX.current = event.clientX;
40
48
  this.initialY.current = event.clientY;
41
49
  const element = this.element.nativeElement;
@@ -51,14 +59,14 @@ export class DraggableChipDirective {
51
59
  this.subs.add(this.draggable.kendoDrag
52
60
  .subscribe((event) => {
53
61
  this.zone.runOutsideAngular(() => {
54
- if (isDocumentAvailable()) {
62
+ if (isDocumentAvailable() && !this.invalidTarget) {
55
63
  const isDragging = Math.abs(this.initialX.current - event.clientX) > 5 ||
56
64
  Math.abs(this.initialY.current - event.clientY) > 5;
57
65
  if (!isDragging) {
58
66
  return;
59
67
  }
60
68
  this.drag = true;
61
- if (!document.elementFromPoint(event.clientX, event.clientY)?.closest('.k-pivotgrid-configurator [kendodroptarget]')) {
69
+ if (!document.elementFromPoint(event.clientX, event.clientY)?.closest('.k-pivotgrid-configurator')) {
62
70
  return;
63
71
  }
64
72
  this.renderer.setStyle(this.element.nativeElement, 'transform', `translate(${event.clientX - this.initialX.current}px, ${event.clientY - this.initialY.current}px)`);
@@ -69,6 +77,7 @@ export class DraggableChipDirective {
69
77
  .subscribe(() => {
70
78
  this.zone.runOutsideAngular(() => {
71
79
  this.drag = false;
80
+ this.invalidTarget = false;
72
81
  if (this.service.state.dragItem) {
73
82
  const element = this.element.nativeElement;
74
83
  if (isDocumentAvailable()) {
@@ -94,7 +103,7 @@ export class DraggableChipDirective {
94
103
  this.subs.unsubscribe();
95
104
  }
96
105
  }
97
- DraggableChipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DraggableChipDirective, deps: [{ token: i1.DraggableDirective, optional: true }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ConfiguratorService }, { token: i3.DropCueService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
106
+ DraggableChipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DraggableChipDirective, deps: [{ token: i1.DraggableDirective, optional: true }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ConfiguratorService }, { token: i3.DropCueService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
98
107
  DraggableChipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DraggableChipDirective, selector: "[kendoChipDraggable]", inputs: { item: "item" }, host: { properties: { "style.pointerEvents": "this.pointerEvents", "style.touch-action": "this.touchActions" } }, ngImport: i0 });
99
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DraggableChipDirective, decorators: [{
100
109
  type: Directive,
@@ -103,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
103
112
  }]
104
113
  }], ctorParameters: function () { return [{ type: i1.DraggableDirective, decorators: [{
105
114
  type: Optional
106
- }] }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ConfiguratorService }, { type: i3.DropCueService }, { type: i0.Renderer2 }]; }, propDecorators: { pointerEvents: [{
115
+ }] }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ConfiguratorService }, { type: i3.DropCueService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { pointerEvents: [{
107
116
  type: HostBinding,
108
117
  args: ['style.pointerEvents']
109
118
  }], touchActions: [{
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  export class PivotGridMessages extends ComponentMessages {
12
12
  }
13
13
  PivotGridMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PivotGridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
- PivotGridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PivotGridMessages, inputs: { fieldMenuFilterItemLabel: "fieldMenuFilterItemLabel", fieldMenuSortAscendingItemLabel: "fieldMenuSortAscendingItemLabel", fieldMenuSortDescendingItemLabel: "fieldMenuSortDescendingItemLabel", filterInputLabel: "filterInputLabel", filterOperatorsDropDownLabel: "filterOperatorsDropDownLabel", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", loading: "loading", emptyCellLabel: "emptyCellLabel", configuratorButtonText: "configuratorButtonText", configuratorHeaderText: "configuratorHeaderText", configuratorFieldsText: "configuratorFieldsText", configuratorColumnsText: "configuratorColumnsText", configuratorRowsText: "configuratorRowsText", configuratorValuesText: "configuratorValuesText", configuratorCancelButtonText: "configuratorCancelButtonText", configuratorApplyButtonText: "configuratorApplyButtonText", configuratorEmptyRowsText: "configuratorEmptyRowsText", configuratorEmptyColumnsText: "configuratorEmptyColumnsText", configuratorEmptyMeasuresText: "configuratorEmptyMeasuresText", chipMenuIconTitle: "chipMenuIconTitle" }, usesInheritance: true, ngImport: i0 });
14
+ PivotGridMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PivotGridMessages, 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" }, usesInheritance: true, ngImport: i0 });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PivotGridMessages, decorators: [{
16
16
  type: Directive
17
17
  }], propDecorators: { fieldMenuFilterItemLabel: [{
@@ -74,6 +74,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
74
74
  type: Input
75
75
  }], configuratorEmptyMeasuresText: [{
76
76
  type: Input
77
+ }], fieldMenuMoveToColumnsItem: [{
78
+ type: Input
79
+ }], fieldMenuMoveToRowsItem: [{
80
+ type: Input
81
+ }], fieldMenuMovePreviousItem: [{
82
+ type: Input
83
+ }], fieldMenuMoveNextItem: [{
84
+ type: Input
77
85
  }], chipMenuIconTitle: [{
78
86
  type: Input
79
87
  }] } });
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-pivotgrid',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1699436217,
13
- version: '14.1.0-develop.9',
12
+ publishDate: 1699452695,
13
+ version: '14.1.0',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -345,7 +345,19 @@ PivotGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
345
345
  configuratorEmptyMeasuresText="Select some fields to begin setup"
346
346
 
347
347
  i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
348
- chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"></ng-container>
348
+ chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
349
+
350
+ i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
351
+ fieldMenuMoveToColumnsItem="Move to Columns"
352
+
353
+ i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
354
+ fieldMenuMoveToRowsItem="Move to Rows"
355
+
356
+ i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
357
+ fieldMenuMovePreviousItem="Move as previous"
358
+
359
+ i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
360
+ fieldMenuMoveNextItem="Move as next"></ng-container>
349
361
 
350
362
  <div #table class="k-pivotgrid" role="grid">
351
363
  <span class="k-pivotgrid-empty-cell" role="columnheader">
@@ -498,7 +510,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
498
510
  configuratorEmptyMeasuresText="Select some fields to begin setup"
499
511
 
500
512
  i18n-chipMenuIconTitle="kendo.grid.chipMenuIconTitle|The title of the field menu icon"
501
- chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"></ng-container>
513
+ chipMenuIconTitle="{{ '{fieldName} Field Menu' }}"
514
+
515
+ i18n-fieldMenuMoveToColumnsItem="kendo.pivotgrid.fieldMenuMoveToColumnsItem|The text content of the Move to Columns item in the column and row fields menu."
516
+ fieldMenuMoveToColumnsItem="Move to Columns"
517
+
518
+ i18n-fieldMenuMoveToRowsItem="kendo.pivotgrid.fieldMenuMoveToRowsItem|The text content of the Move to Rows item in the column and row fields menu."
519
+ fieldMenuMoveToRowsItem="Move to Rows"
520
+
521
+ i18n-fieldMenuMovePreviousItem="kendo.pivotgrid.fieldMenuMovePreviousItem|The text content of the Move as previous item in the column, row, and value fields menu."
522
+ fieldMenuMovePreviousItem="Move as previous"
523
+
524
+ i18n-fieldMenuMoveNextItem="kendo.pivotgrid.fieldMenuMoveNextItem|The text content of the Move as next item in the column, row, and value fields menu."
525
+ fieldMenuMoveNextItem="Move as next"></ng-container>
502
526
 
503
527
  <div #table class="k-pivotgrid" role="grid">
504
528
  <span class="k-pivotgrid-empty-cell" role="columnheader">