@progress/kendo-angular-pivotgrid 17.0.0-develop.2 → 17.0.0-develop.21

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.
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, NgZone, Output, ViewChild } from '@angular/core';
6
6
  import { ConfiguratorNavigation } from '@progress/kendo-pivotgrid-common';
7
- import { ExpandDirective, NodeTemplateDirective, TreeViewComponent } from '@progress/kendo-angular-treeview';
7
+ import { CheckDirective, ExpandDirective, NodeTemplateDirective, TreeViewComponent } from '@progress/kendo-angular-treeview';
8
8
  import { PivotGridDataService } from '../data-binding/pivotgrid-data.service';
9
9
  import { ConfiguratorService } from './configurator.service';
10
10
  import { DropCueService } from './drop-cue.service';
@@ -20,7 +20,7 @@ import { DraggableChipDirective } from './draggable.directive';
20
20
  import { DropTargetDirective } from './drop-target.directive';
21
21
  import { NgClass, NgStyle, NgIf, NgTemplateOutlet, NgFor } from '@angular/common';
22
22
  import { DraggableDirective } from '@progress/kendo-angular-common';
23
- import { CheckBoxDirective } from '@progress/kendo-angular-inputs';
23
+ import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
24
24
  import * as i0 from "@angular/core";
25
25
  import * as i1 from "../data-binding/pivotgrid-data.service";
26
26
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -47,6 +47,9 @@ export class PivotGridConfiguratorComponent {
47
47
  * A function which determines if a specific node has child nodes.
48
48
  */
49
49
  this.hasChildren = (node) => !('hierarchyUniqueName' in node) && !('aggregator' in node);
50
+ this.checkItemBy = (context) => {
51
+ return context.dataItem;
52
+ };
50
53
  /**
51
54
  * A function which provides the child nodes for a given parent node.
52
55
  */
@@ -201,16 +204,6 @@ export class PivotGridConfiguratorComponent {
201
204
  ].some((h) => (h === f.uniqueName || h === f.defaultHierarchy)));
202
205
  this.checked = checked;
203
206
  }
204
- /**
205
- * A function which determines if a specific node is checked/
206
- */
207
- isItemChecked(node) {
208
- const res = this.checked.some(s => node.defaultHierarchy
209
- ? s.defaultHierarchy === node.defaultHierarchy
210
- : s.uniqueName === node.uniqueName)
211
- || (node.children?.length && node.children?.every((c) => c.checked));
212
- return res || null;
213
- }
214
207
  /**
215
208
  * Determines if a checkbox should be rendered.
216
209
  */
@@ -231,21 +224,14 @@ export class PivotGridConfiguratorComponent {
231
224
  const fields = event.children.map(item => item.dataItem);
232
225
  this.setChecked(fields);
233
226
  }
234
- handleCheckedChange(event, item) {
235
- if (event.target.checked) {
236
- this.checked = [...this.checked, item];
237
- }
238
- else {
239
- const itemIndex = this.checked.findIndex(checkedItem => checkedItem.uniqueName === item.uniqueName);
240
- this.checked.splice(itemIndex, 1);
241
- }
227
+ handleCheckedChange(event) {
228
+ const itemIndex = this.checked.findIndex(checkedItem => checkedItem.uniqueName === event.item.dataItem.uniqueName);
229
+ this.checked.splice(itemIndex, 1);
242
230
  const action = {
243
231
  type: 'PIVOT_CONFIGURATOR_ACTION_TOGGLE_SELECTION',
244
- payload: item
232
+ payload: event.item.dataItem
245
233
  };
246
234
  this.configuratorService.parseConfiguratorState(action);
247
- const closestItem = event.target.closest('.k-treeview-item');
248
- this.zone.runOutsideAngular(() => setTimeout(() => closestItem.focus()));
249
235
  }
250
236
  onTreeViewSelect(ev) {
251
237
  const closestItem = ev.target.closest('.k-treeview-item');
@@ -334,7 +320,7 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
334
320
  </div>
335
321
 
336
322
  <div class="k-pivotgrid-configurator-content">
337
- <div class="k-form" [class.k-form-horizontal]="isHorizontal" role="form">
323
+ <div class="k-form k-form-md" [class.k-form-horizontal]="isHorizontal" [class.k-form-vertical]="!isHorizontal" role="form">
338
324
  <div class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null">
339
325
  <div class="k-form-field" [style]="'padding-top: 1em; margin-top: 0;'" [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null">
340
326
  <span [id]="contentLabelId('fields')" class="k-label">{{messageFor('configuratorFieldsText')}}</span>
@@ -349,21 +335,14 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
349
335
  textField="caption"
350
336
  [children]="children"
351
337
  [hasChildren]="hasChildren"
338
+ kendoTreeViewCheckable
339
+ [hasCheckbox]="isSelectable"
340
+ [(checkedKeys)]="checked"
341
+ [checkBy]="checkItemBy"
342
+ (checkedChange)="handleCheckedChange($event)"
352
343
  kendoTreeViewExpandable
353
344
  (childrenLoaded)="handleChildrenLoaded($event)"
354
345
  (keydown.space)="onTreeViewSelect($event)">
355
- <ng-template kendoTreeViewNodeTemplate let-dataItem>
356
- <input kendoCheckBox
357
- *ngIf="isSelectable(dataItem)"
358
- type="checkbox"
359
- kendoCheckBox
360
- tabindex="-1"
361
- role="none"
362
- aria-hidden="true"
363
- [checked]="isItemChecked(dataItem)"
364
- (change)="handleCheckedChange($event, dataItem)"/>
365
- {{ dataItem.caption }}
366
- </ng-template>
367
346
  </kendo-treeview>
368
347
 
369
348
  </div>
@@ -381,8 +360,10 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
381
360
 
382
361
  <kendo-chiplist
383
362
  *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"
363
+ [navigable]="false"
384
364
  #columnsChiplist
385
365
  kendoDropTarget
366
+ class="k-column-fields"
386
367
  axes="columnAxes"
387
368
  [style.width.%]="100"
388
369
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
@@ -390,20 +371,25 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
390
371
  >
391
372
  <ng-container *ngFor="let item of state.columnAxes">
392
373
  <kendo-chip *ngIf="item.name.length === 1"
374
+ #chip
393
375
  kendoChipDraggable
394
376
  kendoDraggable
395
377
  kendoDropTarget
396
378
  kendoChipKeyboardNavigation
397
379
  [item]="item"
380
+ [label]="getName(item.name)"
398
381
  axes="columnAxes"
399
- rounded="full"
400
382
  [removable]="true"
383
+ [hasMenu]="true"
384
+ (menuToggle)="chipMenuColumns.toggle($event)"
401
385
  (remove)="onChipRemove($event, item, 'column')"
402
386
  (reorder)="onReorder($event, 'column', item)"
403
- >{{ getName(item.name) }}
387
+ >
404
388
  <kendo-pivot-chip-menu
405
- [chip]="item">
406
- </kendo-pivot-chip-menu>
389
+ #chipMenuColumns
390
+ [chip]="item"
391
+ [anchor]="chip"
392
+ ></kendo-pivot-chip-menu>
407
393
  </kendo-chip>
408
394
  </ng-container>
409
395
  </kendo-chiplist>
@@ -418,8 +404,10 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
418
404
 
419
405
  <kendo-chiplist
420
406
  *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"
407
+ [navigable]="false"
421
408
  #rowsChiplist
422
409
  kendoDropTarget
410
+ class="k-row-fields"
423
411
  axes="rowAxes"
424
412
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('rows')"
425
413
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
@@ -427,22 +415,25 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
427
415
  >
428
416
  <ng-container *ngFor="let item of state.rowAxes">
429
417
  <kendo-chip *ngIf="item.name.length === 1"
418
+ #chip
430
419
  kendoChipDraggable
431
420
  kendoDraggable
432
421
  kendoDropTarget
433
422
  kendoChipKeyboardNavigation
434
423
  [item]="item"
424
+ [label]="getName(item.name)"
435
425
  axes="rowAxes"
436
- rounded="full"
437
426
  [removable]="true"
427
+ [hasMenu]="true"
428
+ (menuToggle)="chipMenuRows.toggle($event)"
438
429
  (remove)="onChipRemove($event, item, 'row')"
439
430
  (reorder)="onReorder($event, 'row', item)"
440
431
  >
441
- {{ getName(item.name) }}
442
-
443
432
  <kendo-pivot-chip-menu
444
- [chip]="item">
445
- </kendo-pivot-chip-menu>
433
+ #chipMenuRows
434
+ [chip]="item"
435
+ [anchor]="chip"
436
+ ></kendo-pivot-chip-menu>
446
437
  </kendo-chip>
447
438
  </ng-container>
448
439
  </kendo-chiplist>
@@ -463,30 +454,34 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
463
454
 
464
455
  <kendo-chiplist
465
456
  *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"
457
+ [navigable]="false"
466
458
  kendoDropTarget
459
+ class="k-filter-fields"
467
460
  axes="measureAxes"
468
461
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('values')"
469
462
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
470
463
  [style.width.%]="100"
471
464
  >
472
465
  <kendo-chip *ngFor="let item of state.measureAxes"
466
+ #chip
473
467
  kendoChipDraggable
474
468
  kendoDraggable
475
469
  kendoDropTarget
476
470
  kendoChipKeyboardNavigation
477
471
  [item]="item"
472
+ [label]="getName(item.name)"
478
473
  axes="measureAxes"
479
- rounded="full"
480
474
  [removable]="true"
475
+ [hasMenu]="true"
476
+ (menuToggle)="chipMenuValues.toggle($event)"
481
477
  (remove)="onChipRemove($event, item, 'measure')"
482
478
  (reorder)="onReorder($event, 'measure', item)"
483
479
  >
484
- {{ getName(item.name) }}
485
-
486
- <kendo-pivot-chip-menu
487
- [isMeasureField]="true"
488
- [chip]="item">
489
- </kendo-pivot-chip-menu>
480
+ <kendo-pivot-chip-menu
481
+ #chipMenuValues
482
+ [chip]="item"
483
+ [anchor]="chip"
484
+ ></kendo-pivot-chip-menu>
490
485
  </kendo-chip>
491
486
  </kendo-chiplist>
492
487
 
@@ -497,12 +492,12 @@ PivotGridConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
497
492
 
498
493
  </div>
499
494
  </div>
500
- <div class="k-pivotgrid-configurator-actions k-actions k-hstack k-justify-content-end">
495
+ <div class="k-pivotgrid-configurator-actions k-actions k-actions-end k-actions-horizontal">
501
496
  <button kendoButton type="button" (click)="handleReset()">{{messageFor('configuratorCancelButtonText')}}</button>
502
497
  <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor('configuratorApplyButtonText')}}</button>
503
498
  </div>
504
499
  </div>
505
- `, 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", "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: NodeTemplateDirective, selector: "[kendoTreeViewNodeTemplate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { 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: ["selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: 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"] }, { 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"] }, { kind: "component", type: 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"] }] });
500
+ `, 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", "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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: ["selection", "size", "role", "navigable"], outputs: ["selectedChange", "remove"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
506
501
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PivotGridConfiguratorComponent, decorators: [{
507
502
  type: Component,
508
503
  args: [{
@@ -527,7 +522,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
527
522
  </div>
528
523
 
529
524
  <div class="k-pivotgrid-configurator-content">
530
- <div class="k-form" [class.k-form-horizontal]="isHorizontal" role="form">
525
+ <div class="k-form k-form-md" [class.k-form-horizontal]="isHorizontal" [class.k-form-vertical]="!isHorizontal" role="form">
531
526
  <div class="k-form-field-wrapper" [ngStyle]="isHorizontal ? {'padding-left': 0 } : null">
532
527
  <div class="k-form-field" [style]="'padding-top: 1em; margin-top: 0;'" [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null">
533
528
  <span [id]="contentLabelId('fields')" class="k-label">{{messageFor('configuratorFieldsText')}}</span>
@@ -542,21 +537,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
542
537
  textField="caption"
543
538
  [children]="children"
544
539
  [hasChildren]="hasChildren"
540
+ kendoTreeViewCheckable
541
+ [hasCheckbox]="isSelectable"
542
+ [(checkedKeys)]="checked"
543
+ [checkBy]="checkItemBy"
544
+ (checkedChange)="handleCheckedChange($event)"
545
545
  kendoTreeViewExpandable
546
546
  (childrenLoaded)="handleChildrenLoaded($event)"
547
547
  (keydown.space)="onTreeViewSelect($event)">
548
- <ng-template kendoTreeViewNodeTemplate let-dataItem>
549
- <input kendoCheckBox
550
- *ngIf="isSelectable(dataItem)"
551
- type="checkbox"
552
- kendoCheckBox
553
- tabindex="-1"
554
- role="none"
555
- aria-hidden="true"
556
- [checked]="isItemChecked(dataItem)"
557
- (change)="handleCheckedChange($event, dataItem)"/>
558
- {{ dataItem.caption }}
559
- </ng-template>
560
548
  </kendo-treeview>
561
549
 
562
550
  </div>
@@ -574,8 +562,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
574
562
 
575
563
  <kendo-chiplist
576
564
  *ngIf="state.columnAxes && state.columnAxes.length; else noColumnAxes"
565
+ [navigable]="false"
577
566
  #columnsChiplist
578
567
  kendoDropTarget
568
+ class="k-column-fields"
579
569
  axes="columnAxes"
580
570
  [style.width.%]="100"
581
571
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('columns')"
@@ -583,20 +573,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
583
573
  >
584
574
  <ng-container *ngFor="let item of state.columnAxes">
585
575
  <kendo-chip *ngIf="item.name.length === 1"
576
+ #chip
586
577
  kendoChipDraggable
587
578
  kendoDraggable
588
579
  kendoDropTarget
589
580
  kendoChipKeyboardNavigation
590
581
  [item]="item"
582
+ [label]="getName(item.name)"
591
583
  axes="columnAxes"
592
- rounded="full"
593
584
  [removable]="true"
585
+ [hasMenu]="true"
586
+ (menuToggle)="chipMenuColumns.toggle($event)"
594
587
  (remove)="onChipRemove($event, item, 'column')"
595
588
  (reorder)="onReorder($event, 'column', item)"
596
- >{{ getName(item.name) }}
589
+ >
597
590
  <kendo-pivot-chip-menu
598
- [chip]="item">
599
- </kendo-pivot-chip-menu>
591
+ #chipMenuColumns
592
+ [chip]="item"
593
+ [anchor]="chip"
594
+ ></kendo-pivot-chip-menu>
600
595
  </kendo-chip>
601
596
  </ng-container>
602
597
  </kendo-chiplist>
@@ -611,8 +606,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
611
606
 
612
607
  <kendo-chiplist
613
608
  *ngIf="state.rowAxes && state.rowAxes.length; else noRowAxes"
609
+ [navigable]="false"
614
610
  #rowsChiplist
615
611
  kendoDropTarget
612
+ class="k-row-fields"
616
613
  axes="rowAxes"
617
614
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('rows')"
618
615
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
@@ -620,22 +617,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
620
617
  >
621
618
  <ng-container *ngFor="let item of state.rowAxes">
622
619
  <kendo-chip *ngIf="item.name.length === 1"
620
+ #chip
623
621
  kendoChipDraggable
624
622
  kendoDraggable
625
623
  kendoDropTarget
626
624
  kendoChipKeyboardNavigation
627
625
  [item]="item"
626
+ [label]="getName(item.name)"
628
627
  axes="rowAxes"
629
- rounded="full"
630
628
  [removable]="true"
629
+ [hasMenu]="true"
630
+ (menuToggle)="chipMenuRows.toggle($event)"
631
631
  (remove)="onChipRemove($event, item, 'row')"
632
632
  (reorder)="onReorder($event, 'row', item)"
633
633
  >
634
- {{ getName(item.name) }}
635
-
636
634
  <kendo-pivot-chip-menu
637
- [chip]="item">
638
- </kendo-pivot-chip-menu>
635
+ #chipMenuRows
636
+ [chip]="item"
637
+ [anchor]="chip"
638
+ ></kendo-pivot-chip-menu>
639
639
  </kendo-chip>
640
640
  </ng-container>
641
641
  </kendo-chiplist>
@@ -656,30 +656,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
656
656
 
657
657
  <kendo-chiplist
658
658
  *ngIf="state.measureAxes && state.measureAxes.length; else noMeasureAxes"
659
+ [navigable]="false"
659
660
  kendoDropTarget
661
+ class="k-filter-fields"
660
662
  axes="measureAxes"
661
663
  [attr.aria-labelledby]="headerTextId + ' ' + contentLabelId('values')"
662
664
  [ngStyle]="isHorizontal ? {'padding-top': 0, 'padding-left': '16px' } : null"
663
665
  [style.width.%]="100"
664
666
  >
665
667
  <kendo-chip *ngFor="let item of state.measureAxes"
668
+ #chip
666
669
  kendoChipDraggable
667
670
  kendoDraggable
668
671
  kendoDropTarget
669
672
  kendoChipKeyboardNavigation
670
673
  [item]="item"
674
+ [label]="getName(item.name)"
671
675
  axes="measureAxes"
672
- rounded="full"
673
676
  [removable]="true"
677
+ [hasMenu]="true"
678
+ (menuToggle)="chipMenuValues.toggle($event)"
674
679
  (remove)="onChipRemove($event, item, 'measure')"
675
680
  (reorder)="onReorder($event, 'measure', item)"
676
681
  >
677
- {{ getName(item.name) }}
678
-
679
- <kendo-pivot-chip-menu
680
- [isMeasureField]="true"
681
- [chip]="item">
682
- </kendo-pivot-chip-menu>
682
+ <kendo-pivot-chip-menu
683
+ #chipMenuValues
684
+ [chip]="item"
685
+ [anchor]="chip"
686
+ ></kendo-pivot-chip-menu>
683
687
  </kendo-chip>
684
688
  </kendo-chiplist>
685
689
 
@@ -690,7 +694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
690
694
 
691
695
  </div>
692
696
  </div>
693
- <div class="k-pivotgrid-configurator-actions k-actions k-hstack k-justify-content-end">
697
+ <div class="k-pivotgrid-configurator-actions k-actions k-actions-end k-actions-horizontal">
694
698
  <button kendoButton type="button" (click)="handleReset()">{{messageFor('configuratorCancelButtonText')}}</button>
695
699
  <button kendoButton themeColor="primary" type="button" (click)="handleSubmit()">{{messageFor('configuratorApplyButtonText')}}</button>
696
700
  </div>
@@ -698,7 +702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
698
702
  `,
699
703
  standalone: true,
700
704
  imports: [
701
- NgClass, NgStyle, TreeViewComponent, ExpandDirective, NodeTemplateDirective, NgIf, CheckBoxDirective,
705
+ NgClass, NgStyle, TreeViewComponent, ExpandDirective, CheckDirective, NodeTemplateDirective, NgIf, CheckBoxComponent,
702
706
  NgTemplateOutlet, DropTargetDirective, ChipListComponent, NgFor, ChipComponent, DraggableChipDirective,
703
707
  DraggableDirective, ChipKeyboardNavigationDirective, ChipMenuComponent, ButtonComponent
704
708
  ]
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 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, ChangeDetectorRef } from '@angular/core';
5
+ import { Directive, Input, ElementRef, NgZone, Optional, HostBinding, Renderer2 } 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';
@@ -17,14 +17,13 @@ import * as i3 from "./drop-cue.service";
17
17
  * @hidden
18
18
  */
19
19
  export class DraggableChipDirective {
20
- constructor(draggable, element, zone, service, cue, renderer, cdr) {
20
+ constructor(draggable, element, zone, service, cue, renderer) {
21
21
  this.draggable = draggable;
22
22
  this.element = element;
23
23
  this.zone = zone;
24
24
  this.service = service;
25
25
  this.cue = cue;
26
26
  this.renderer = renderer;
27
- this.cdr = cdr;
28
27
  this.touchActions = 'none';
29
28
  this.initialX = {};
30
29
  this.initialY = {};
@@ -103,7 +102,7 @@ export class DraggableChipDirective {
103
102
  this.subs.unsubscribe();
104
103
  }
105
104
  }
106
- DraggableChipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", 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 });
105
+ DraggableChipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", 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 });
107
106
  DraggableChipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DraggableChipDirective, isStandalone: true, selector: "[kendoChipDraggable]", inputs: { item: "item" }, host: { properties: { "style.pointerEvents": "this.pointerEvents", "style.touch-action": "this.touchActions" } }, ngImport: i0 });
108
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DraggableChipDirective, decorators: [{
109
108
  type: Directive,
@@ -113,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
113
112
  }]
114
113
  }], ctorParameters: function () { return [{ type: i1.DraggableDirective, decorators: [{
115
114
  type: Optional
116
- }] }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ConfiguratorService }, { type: i3.DropCueService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { pointerEvents: [{
115
+ }] }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ConfiguratorService }, { type: i3.DropCueService }, { type: i0.Renderer2 }]; }, propDecorators: { pointerEvents: [{
117
116
  type: HostBinding,
118
117
  args: ['style.pointerEvents']
119
118
  }], touchActions: [{
@@ -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: 1728914708,
13
- version: '17.0.0-develop.2',
12
+ publishDate: 1729874461,
13
+ version: '17.0.0-develop.21',
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
  };
@@ -105,7 +105,7 @@ export class PivotGridComponent {
105
105
  this.scrollService.pivotGrid = this;
106
106
  }
107
107
  get rightPositionClass() {
108
- return this.configuratorSettings?.position === 'right';
108
+ return !this.configuratorSettings || this.configuratorSettings.position === 'right';
109
109
  }
110
110
  get leftPositionClass() {
111
111
  return this.configuratorSettings?.position === 'left';
@@ -433,7 +433,7 @@ PivotGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
433
433
  class="k-pivotgrid-configurator-button"
434
434
  aria-hidden="true"
435
435
  (click)="toggleConfigurator()">
436
- <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" innerCssClass="k-color-inherit" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
436
+ <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
437
437
  </span>
438
438
  </div>
439
439
  `, 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: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
@@ -606,7 +606,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
606
606
  class="k-pivotgrid-configurator-button"
607
607
  aria-hidden="true"
608
608
  (click)="toggleConfigurator()">
609
- <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" innerCssClass="k-color-inherit" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
609
+ <span>{{messageFor('configuratorButtonText')}}<kendo-icon-wrapper name="gear" [svgIcon]="gearSVGIcon"></kendo-icon-wrapper>
610
610
  </span>
611
611
  </div>
612
612
  `,
@@ -9,7 +9,7 @@ import { CellTemplateDirective } from './templates/pivotgrid-cell-template.direc
9
9
  import { ValueCellTemplateDirective } from './templates/pivotgrid-value-cell-template.directive';
10
10
  import { RowHeaderCellTemplateDirective } from './templates/pivotgrid-row-header-cell-template.directive';
11
11
  import { ColumnHeaderCellTemplateDirective } from './templates/pivotgrid-column-header-cell-template.directive';
12
- import { NgIf } from '@angular/common';
12
+ import { NgClass, NgIf } from '@angular/common';
13
13
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
14
14
  import { EventsOutsideAngularDirective, TemplateContextDirective } from '@progress/kendo-angular-common';
15
15
  import * as i0 from "@angular/core";
@@ -46,9 +46,10 @@ export class PivotGridCellDirective {
46
46
  this.renderer.setAttribute(nativeElement, 'rowspan', this.kendoPivotGridCell.rowSpan || 1);
47
47
  this.renderer.setAttribute(nativeElement, 'colspan', this.kendoPivotGridCell.colSpan || 1);
48
48
  const classesToAdd = {
49
- 'k-pivotgrid-header-total': this.kendoPivotGridCell?.total || (this.tableType === 'values'
49
+ 'k-pivotgrid-header-total': this.kendoPivotGridCell?.total,
50
+ 'k-pivotgrid-total': this.tableType === 'values'
50
51
  && (this.dataService.rowHeaderLeaves[this.rowIndex].total ||
51
- this.dataService.columnHeaderLeaves[this.colIndex].total)),
52
+ this.dataService.columnHeaderLeaves[this.colIndex].total),
52
53
  'k-pivotgrid-header-root': this.kendoPivotGridCell?.levelNum === 0,
53
54
  'k-pivotgrid-expanded': this.kendoPivotGridCell?.hasChildren && this.kendoPivotGridCell.children.length,
54
55
  'k-first': this.colIndex > 0
@@ -118,10 +119,10 @@ PivotGridCellDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
118
119
  }">
119
120
  </ng-template>
120
121
  <!--default cell content-->
121
- <span *ngIf="!customCellTemplate && isNotProvidedCellTemplatePerType">
122
+ <span *ngIf="!customCellTemplate && isNotProvidedCellTemplatePerType" [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
122
123
  {{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}
123
124
  </span>
124
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
125
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
125
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PivotGridCellDirective, decorators: [{
126
127
  type: Component,
127
128
  args: [{
@@ -184,12 +185,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
184
185
  }">
185
186
  </ng-template>
186
187
  <!--default cell content-->
187
- <span *ngIf="!customCellTemplate && isNotProvidedCellTemplatePerType">
188
+ <span *ngIf="!customCellTemplate && isNotProvidedCellTemplatePerType" [ngClass]="{'k-pivotgrid-header-title': !kendoPivotGridCell.data, 'k-pivotgrid-content': kendoPivotGridCell.data}">
188
189
  {{ kendoPivotGridCell.data ? kendoPivotGridCell.data.fmtValue : kendoPivotGridCell.caption }}
189
190
  </span>
190
191
  `,
191
192
  standalone: true,
192
- imports: [NgIf, IconWrapperComponent, EventsOutsideAngularDirective, TemplateContextDirective]
193
+ imports: [NgIf, IconWrapperComponent, EventsOutsideAngularDirective, TemplateContextDirective, NgClass]
193
194
  }]
194
195
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.PivotGridDataService }]; }, propDecorators: { cellClass: [{
195
196
  type: HostBinding,