@progress/kendo-angular-treelist 17.0.2-develop.5 → 17.0.2-develop.6
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.
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/header/header.component.mjs +7 -2
- package/esm2022/rendering/header/select-all-checkbox.directive.mjs +61 -0
- package/esm2022/selection/selectable.directive.mjs +6 -0
- package/fesm2022/progress-kendo-angular-treelist.mjs +246 -187
- package/package.json +16 -16
- package/rendering/header/select-all-checkbox.directive.d.ts +20 -0
- package/schematics/ngAdd/index.js +3 -3
- package/selection/selectable.directive.d.ts +4 -0
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
9
9
|
name: '@progress/kendo-angular-treelist',
|
10
10
|
productName: 'Kendo UI for Angular',
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
12
|
-
publishDate:
|
13
|
-
version: '17.0.2-develop.
|
12
|
+
publishDate: 1731612927,
|
13
|
+
version: '17.0.2-develop.6',
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
15
15
|
};
|
@@ -36,6 +36,7 @@ import { FilterMenuComponent } from '../../filtering/menu/filter-menu.component'
|
|
36
36
|
import { LogicalCellDirective } from '../../navigation/logical-cell.directive';
|
37
37
|
import { LogicalRowDirective } from '../../navigation/logical-row.directive';
|
38
38
|
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
39
|
+
import { TreeListSelectAllCheckboxDirective } from './select-all-checkbox.directive';
|
39
40
|
import * as i0 from "@angular/core";
|
40
41
|
import * as i1 from "../../common/single-popup.service";
|
41
42
|
import * as i2 from "../../dragdrop/drag-hint.service";
|
@@ -469,6 +470,7 @@ export class HeaderComponent {
|
|
469
470
|
<kendo-checkbox
|
470
471
|
[inputAttributes]="{'aria-label': messageFor('selectAllRowsCheckboxLabel')}"
|
471
472
|
kendoTreeListFocusable
|
473
|
+
kendoTreeListSelectAllCheckbox
|
472
474
|
(checkedStateChange)="selectAllChange($event)"
|
473
475
|
></kendo-checkbox>
|
474
476
|
</ng-template>
|
@@ -543,7 +545,7 @@ export class HeaderComponent {
|
|
543
545
|
[logicalSlaveCellsCount]="unlockedColumnsCount"
|
544
546
|
>
|
545
547
|
</tr>
|
546
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: LogicalRowDirective, selector: "[kendoTreeListLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "isNew", "totalColumns"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: FilterMenuComponent, selector: "kendo-treelist-filter-menu", inputs: ["column", "filter"] }, { kind: "component", type: ColumnMenuComponent, selector: "kendo-treelist-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: ColumnHandleDirective, selector: "[kendoTreeListColumnHandle]", inputs: ["columns", "column"] }, { kind: "component", type: FilterRowComponent, selector: "[kendoTreeListFilterRow]", inputs: ["columns", "filter", "logicalRowIndex", "lockedColumnsCount"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }] });
|
548
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: LogicalRowDirective, selector: "[kendoTreeListLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "isNew", "totalColumns"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: FilterMenuComponent, selector: "kendo-treelist-filter-menu", inputs: ["column", "filter"] }, { kind: "component", type: ColumnMenuComponent, selector: "kendo-treelist-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: ColumnHandleDirective, selector: "[kendoTreeListColumnHandle]", inputs: ["columns", "column"] }, { kind: "component", type: FilterRowComponent, selector: "[kendoTreeListFilterRow]", inputs: ["columns", "filter", "logicalRowIndex", "lockedColumnsCount"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }, { kind: "directive", type: TreeListSelectAllCheckboxDirective, selector: "[kendoTreeListSelectAllCheckbox]" }] });
|
547
549
|
}
|
548
550
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderComponent, decorators: [{
|
549
551
|
type: Component,
|
@@ -656,6 +658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
656
658
|
<kendo-checkbox
|
657
659
|
[inputAttributes]="{'aria-label': messageFor('selectAllRowsCheckboxLabel')}"
|
658
660
|
kendoTreeListFocusable
|
661
|
+
kendoTreeListSelectAllCheckbox
|
659
662
|
(checkedStateChange)="selectAllChange($event)"
|
660
663
|
></kendo-checkbox>
|
661
664
|
</ng-template>
|
@@ -732,7 +735,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
732
735
|
</tr>
|
733
736
|
`,
|
734
737
|
standalone: true,
|
735
|
-
imports: [NgFor, LogicalRowDirective, NgIf, LogicalCellDirective, DropTargetDirective, DraggableDirective, DraggableColumnDirective, NgClass, NgStyle,
|
738
|
+
imports: [NgFor, LogicalRowDirective, NgIf, LogicalCellDirective, DropTargetDirective, DraggableDirective, DraggableColumnDirective, NgClass, NgStyle,
|
739
|
+
FilterMenuComponent, ColumnMenuComponent, TemplateContextDirective, IconWrapperComponent, FocusableDirective, ColumnHandleDirective, FilterRowComponent,
|
740
|
+
CheckBoxComponent, TreeListSelectAllCheckboxDirective]
|
736
741
|
}]
|
737
742
|
}], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.DragHintService }, { type: i3.DropCueService }, { type: i4.ColumnReorderService }, { type: i5.SortService }, { type: i6.SelectionService }, { type: i7.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { totalColumnLevels: [{
|
738
743
|
type: Input
|
@@ -0,0 +1,61 @@
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
2
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
5
|
+
import { ChangeDetectorRef, Directive, ElementRef, NgZone, Renderer2 } from '@angular/core';
|
6
|
+
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
7
|
+
import { SelectionService } from '../../selection/selection.service';
|
8
|
+
import { Subscription } from 'rxjs';
|
9
|
+
import { SelectableDirective } from '../../selection/selectable.directive';
|
10
|
+
import { isPresent } from '@progress/kendo-angular-common';
|
11
|
+
import * as i0 from "@angular/core";
|
12
|
+
import * as i1 from "@progress/kendo-angular-inputs";
|
13
|
+
import * as i2 from "../../selection/selection.service";
|
14
|
+
import * as i3 from "../../selection/selectable.directive";
|
15
|
+
/**
|
16
|
+
* @hidden
|
17
|
+
*/
|
18
|
+
export class TreeListSelectAllCheckboxDirective {
|
19
|
+
sub = new Subscription();
|
20
|
+
setState = true;
|
21
|
+
constructor(host, hostEl, selectionService, selectableDirective, cdr, zone, renderer) {
|
22
|
+
this.sub = selectionService.changes.subscribe(eventData => {
|
23
|
+
// omit setting the state when the selection change comes from clicking the checkbox, and clear the flag
|
24
|
+
if (!this.setState) {
|
25
|
+
this.setState = true;
|
26
|
+
return;
|
27
|
+
}
|
28
|
+
const allSelected = eventData.sender.view.total === selectableDirective.stateArray.length;
|
29
|
+
const noneSelected = selectableDirective.stateArray.length === 0;
|
30
|
+
const someSelected = !noneSelected && !allSelected;
|
31
|
+
if (allSelected && host.checkedState !== true) {
|
32
|
+
host.checkedState = true;
|
33
|
+
}
|
34
|
+
else if (someSelected && host.checkedState !== 'indeterminate') {
|
35
|
+
host.checkedState = 'indeterminate';
|
36
|
+
}
|
37
|
+
else if (noneSelected && host.checkedState !== false) {
|
38
|
+
host.checkedState = false;
|
39
|
+
}
|
40
|
+
cdr.markForCheck();
|
41
|
+
});
|
42
|
+
// set flag for conditional checkbox state logic
|
43
|
+
['pointerdown', 'keydown'].forEach(eventName => this.sub.add(renderer.listen(hostEl.nativeElement, eventName, (e) => {
|
44
|
+
const isSpace = e.key && e.key === ' ';
|
45
|
+
const spaceOrPointer = !isPresent(e.key) || isSpace;
|
46
|
+
spaceOrPointer && (this.setState = false);
|
47
|
+
})));
|
48
|
+
}
|
49
|
+
ngOnDestroy() {
|
50
|
+
this.sub && this.sub.unsubscribe();
|
51
|
+
}
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListSelectAllCheckboxDirective, deps: [{ token: i1.CheckBoxComponent }, { token: i0.ElementRef }, { token: i2.SelectionService }, { token: i3.SelectableDirective }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
53
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TreeListSelectAllCheckboxDirective, isStandalone: true, selector: "[kendoTreeListSelectAllCheckbox]", ngImport: i0 });
|
54
|
+
}
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListSelectAllCheckboxDirective, decorators: [{
|
56
|
+
type: Directive,
|
57
|
+
args: [{
|
58
|
+
selector: '[kendoTreeListSelectAllCheckbox]',
|
59
|
+
standalone: true
|
60
|
+
}]
|
61
|
+
}], ctorParameters: function () { return [{ type: i1.CheckBoxComponent }, { type: i0.ElementRef }, { type: i2.SelectionService }, { type: i3.SelectableDirective }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; } });
|
@@ -27,6 +27,7 @@ import { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, caretAltD
|
|
27
27
|
import * as i95 from '@progress/kendo-angular-pager';
|
28
28
|
import { PagerContextService, PagerNavigationService, PagerTemplateDirective, KENDO_PAGER } from '@progress/kendo-angular-pager';
|
29
29
|
import { getter, setter } from '@progress/kendo-common';
|
30
|
+
import * as i1$5 from '@progress/kendo-angular-inputs';
|
30
31
|
import { NumericTextBoxComponent, CheckBoxComponent, TextBoxComponent, RadioButtonComponent } from '@progress/kendo-angular-inputs';
|
31
32
|
import * as i1$3 from '@progress/kendo-angular-intl';
|
32
33
|
import { DropDownListComponent, AutoCompleteComponent } from '@progress/kendo-angular-dropdowns';
|
@@ -45,8 +46,8 @@ const packageMetadata = {
|
|
45
46
|
name: '@progress/kendo-angular-treelist',
|
46
47
|
productName: 'Kendo UI for Angular',
|
47
48
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
48
|
-
publishDate:
|
49
|
-
version: '17.0.2-develop.
|
49
|
+
publishDate: 1731612927,
|
50
|
+
version: '17.0.2-develop.6',
|
50
51
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
51
52
|
};
|
52
53
|
|
@@ -13308,6 +13309,243 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
13308
13309
|
type: Input
|
13309
13310
|
}] } });
|
13310
13311
|
|
13312
|
+
const defaultColumnKeyGetter = (_column, columnIndex) => columnIndex;
|
13313
|
+
/**
|
13314
|
+
* A directive which controls the selection state. [See example](slug:selection_treelist).
|
13315
|
+
*/
|
13316
|
+
class SelectableDirective {
|
13317
|
+
treelist;
|
13318
|
+
/**
|
13319
|
+
* @hidden
|
13320
|
+
*/
|
13321
|
+
set selectable(value) {
|
13322
|
+
if (typeof value === 'object') { // add method to normalize this
|
13323
|
+
this._settings = value;
|
13324
|
+
}
|
13325
|
+
else {
|
13326
|
+
this._settings = {
|
13327
|
+
enabled: value
|
13328
|
+
};
|
13329
|
+
}
|
13330
|
+
this.state = createState(this._settings);
|
13331
|
+
this.state.fromArray(this._selectedItems || []);
|
13332
|
+
if (this._settings.enabled !== false) {
|
13333
|
+
this.treelist.isSelected = this._settings.mode === 'cell' ? this.cellSelected : this.rowSelected;
|
13334
|
+
this.subscribeSelection();
|
13335
|
+
}
|
13336
|
+
else {
|
13337
|
+
this.treelist.isSelected = () => false;
|
13338
|
+
this.unsubscribeSelection();
|
13339
|
+
}
|
13340
|
+
this.treelist.updateView();
|
13341
|
+
}
|
13342
|
+
/**
|
13343
|
+
* Specifies the selected items.
|
13344
|
+
*/
|
13345
|
+
set selectedItems(value) {
|
13346
|
+
if (!value) {
|
13347
|
+
this.state.clear();
|
13348
|
+
}
|
13349
|
+
else if (value !== this.lastChange) {
|
13350
|
+
this.state.fromArray(value);
|
13351
|
+
this.treelist.updateView();
|
13352
|
+
}
|
13353
|
+
this._selectedItems = value;
|
13354
|
+
}
|
13355
|
+
/**
|
13356
|
+
* Fires when the selected items are changed.
|
13357
|
+
*/
|
13358
|
+
selectedItemsChange = new EventEmitter();
|
13359
|
+
/**
|
13360
|
+
* The field name or a function that specify the dataItems key.
|
13361
|
+
*/
|
13362
|
+
set itemKey(value) {
|
13363
|
+
if (isString(value)) {
|
13364
|
+
this._keyGetter = getter(String(value));
|
13365
|
+
}
|
13366
|
+
else {
|
13367
|
+
this._keyGetter = value;
|
13368
|
+
}
|
13369
|
+
}
|
13370
|
+
/**
|
13371
|
+
* The field name or a function that specify the columns key.
|
13372
|
+
*/
|
13373
|
+
set columnKey(value) {
|
13374
|
+
if (isString(value)) {
|
13375
|
+
this._columnKeyGetter = getter(String(value));
|
13376
|
+
}
|
13377
|
+
else if (value) {
|
13378
|
+
this._columnKeyGetter = value;
|
13379
|
+
}
|
13380
|
+
}
|
13381
|
+
/**
|
13382
|
+
* @hidden
|
13383
|
+
*/
|
13384
|
+
get stateArray() {
|
13385
|
+
return this.state.toArray();
|
13386
|
+
}
|
13387
|
+
get keyGetter() {
|
13388
|
+
return this._keyGetter || this.treelist.idGetter;
|
13389
|
+
}
|
13390
|
+
get columnKeyGetter() {
|
13391
|
+
return this._columnKeyGetter || defaultColumnKeyGetter;
|
13392
|
+
}
|
13393
|
+
subscriptions;
|
13394
|
+
state = new RowSelectionState();
|
13395
|
+
_settings;
|
13396
|
+
lastChange;
|
13397
|
+
_columnKeyGetter;
|
13398
|
+
_keyGetter;
|
13399
|
+
_selectedItems = [];
|
13400
|
+
constructor(treelist) {
|
13401
|
+
this.treelist = treelist;
|
13402
|
+
this.cellSelected = this.cellSelected.bind(this);
|
13403
|
+
this.rowSelected = this.rowSelected.bind(this);
|
13404
|
+
this.selectionChange = this.selectionChange.bind(this);
|
13405
|
+
this.updateColumnIndices = this.updateColumnIndices.bind(this);
|
13406
|
+
this.treelist.selectable = this.selectable = true;
|
13407
|
+
}
|
13408
|
+
ngOnDestroy() {
|
13409
|
+
this.unsubscribeSelection();
|
13410
|
+
}
|
13411
|
+
/**
|
13412
|
+
* @hidden
|
13413
|
+
*/
|
13414
|
+
cellSelected(dataItem, column, columnIndex) {
|
13415
|
+
return this.state.has(this.keyGetter(dataItem), this.columnKeyGetter(column, columnIndex));
|
13416
|
+
}
|
13417
|
+
/**
|
13418
|
+
* @hidden
|
13419
|
+
*/
|
13420
|
+
rowSelected(dataItem) {
|
13421
|
+
return this.state.has(this.keyGetter(dataItem));
|
13422
|
+
}
|
13423
|
+
selectionChange({ action, items }) {
|
13424
|
+
if (action === 'select' || action === 'add') {
|
13425
|
+
if (action === 'select') {
|
13426
|
+
this.state.clear();
|
13427
|
+
}
|
13428
|
+
items.forEach(item => {
|
13429
|
+
this.state.add(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));
|
13430
|
+
});
|
13431
|
+
}
|
13432
|
+
else {
|
13433
|
+
items.forEach(item => {
|
13434
|
+
this.state.remove(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));
|
13435
|
+
});
|
13436
|
+
}
|
13437
|
+
this.emitSelectedItemsChange();
|
13438
|
+
}
|
13439
|
+
emitSelectedItemsChange() {
|
13440
|
+
this.lastChange = this.state.toArray();
|
13441
|
+
this.selectedItemsChange.emit(this.lastChange);
|
13442
|
+
}
|
13443
|
+
subscribeSelection() {
|
13444
|
+
this.unsubscribeSelection();
|
13445
|
+
this.subscriptions = this.treelist.selectionChange.subscribe(this.selectionChange);
|
13446
|
+
if (this._settings.mode === 'cell') {
|
13447
|
+
this.subscriptions.add(this.treelist.columnOrderChange.subscribe(this.updateColumnIndices));
|
13448
|
+
this.subscriptions.add(this.treelist.columnLockedChange.subscribe(this.updateColumnIndices));
|
13449
|
+
}
|
13450
|
+
}
|
13451
|
+
unsubscribeSelection() {
|
13452
|
+
if (this.subscriptions) {
|
13453
|
+
this.subscriptions.unsubscribe();
|
13454
|
+
this.subscriptions = null;
|
13455
|
+
}
|
13456
|
+
}
|
13457
|
+
updateColumnIndices() {
|
13458
|
+
if (!this._columnKeyGetter) {
|
13459
|
+
const changes = new Map();
|
13460
|
+
const currentIndices = [];
|
13461
|
+
this.leafColumns.forEach((column) => {
|
13462
|
+
currentIndices.push(column);
|
13463
|
+
});
|
13464
|
+
this.treelist.columnsContainer.refresh();
|
13465
|
+
const leafColumns = this.leafColumns;
|
13466
|
+
currentIndices.forEach((column, index) => {
|
13467
|
+
if (column !== leafColumns[index]) {
|
13468
|
+
changes.set(index, leafColumns.indexOf(column));
|
13469
|
+
}
|
13470
|
+
});
|
13471
|
+
if (changes.size && this.state.updateColumKeys(changes)) {
|
13472
|
+
this.emitSelectedItemsChange();
|
13473
|
+
}
|
13474
|
+
}
|
13475
|
+
}
|
13476
|
+
get leafColumns() {
|
13477
|
+
return this.treelist.lockedLeafColumns.toArray().concat(this.treelist.nonLockedLeafColumns.toArray());
|
13478
|
+
}
|
13479
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectableDirective, deps: [{ token: TreeListComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
13480
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SelectableDirective, isStandalone: true, selector: "[kendoTreeListSelectable]", inputs: { selectable: "selectable", selectedItems: "selectedItems", itemKey: "itemKey", columnKey: "columnKey" }, outputs: { selectedItemsChange: "selectedItemsChange" }, exportAs: ["kendoTreeListSelectable"], ngImport: i0 });
|
13481
|
+
}
|
13482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectableDirective, decorators: [{
|
13483
|
+
type: Directive,
|
13484
|
+
args: [{
|
13485
|
+
exportAs: 'kendoTreeListSelectable',
|
13486
|
+
selector: '[kendoTreeListSelectable]',
|
13487
|
+
standalone: true
|
13488
|
+
}]
|
13489
|
+
}], ctorParameters: function () { return [{ type: TreeListComponent }]; }, propDecorators: { selectable: [{
|
13490
|
+
type: Input
|
13491
|
+
}], selectedItems: [{
|
13492
|
+
type: Input
|
13493
|
+
}], selectedItemsChange: [{
|
13494
|
+
type: Output
|
13495
|
+
}], itemKey: [{
|
13496
|
+
type: Input
|
13497
|
+
}], columnKey: [{
|
13498
|
+
type: Input
|
13499
|
+
}] } });
|
13500
|
+
|
13501
|
+
/**
|
13502
|
+
* @hidden
|
13503
|
+
*/
|
13504
|
+
class TreeListSelectAllCheckboxDirective {
|
13505
|
+
sub = new Subscription();
|
13506
|
+
setState = true;
|
13507
|
+
constructor(host, hostEl, selectionService, selectableDirective, cdr, zone, renderer) {
|
13508
|
+
this.sub = selectionService.changes.subscribe(eventData => {
|
13509
|
+
// omit setting the state when the selection change comes from clicking the checkbox, and clear the flag
|
13510
|
+
if (!this.setState) {
|
13511
|
+
this.setState = true;
|
13512
|
+
return;
|
13513
|
+
}
|
13514
|
+
const allSelected = eventData.sender.view.total === selectableDirective.stateArray.length;
|
13515
|
+
const noneSelected = selectableDirective.stateArray.length === 0;
|
13516
|
+
const someSelected = !noneSelected && !allSelected;
|
13517
|
+
if (allSelected && host.checkedState !== true) {
|
13518
|
+
host.checkedState = true;
|
13519
|
+
}
|
13520
|
+
else if (someSelected && host.checkedState !== 'indeterminate') {
|
13521
|
+
host.checkedState = 'indeterminate';
|
13522
|
+
}
|
13523
|
+
else if (noneSelected && host.checkedState !== false) {
|
13524
|
+
host.checkedState = false;
|
13525
|
+
}
|
13526
|
+
cdr.markForCheck();
|
13527
|
+
});
|
13528
|
+
// set flag for conditional checkbox state logic
|
13529
|
+
['pointerdown', 'keydown'].forEach(eventName => this.sub.add(renderer.listen(hostEl.nativeElement, eventName, (e) => {
|
13530
|
+
const isSpace = e.key && e.key === ' ';
|
13531
|
+
const spaceOrPointer = !isPresent$1(e.key) || isSpace;
|
13532
|
+
spaceOrPointer && (this.setState = false);
|
13533
|
+
})));
|
13534
|
+
}
|
13535
|
+
ngOnDestroy() {
|
13536
|
+
this.sub && this.sub.unsubscribe();
|
13537
|
+
}
|
13538
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListSelectAllCheckboxDirective, deps: [{ token: i1$5.CheckBoxComponent }, { token: i0.ElementRef }, { token: SelectionService }, { token: SelectableDirective }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
13539
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TreeListSelectAllCheckboxDirective, isStandalone: true, selector: "[kendoTreeListSelectAllCheckbox]", ngImport: i0 });
|
13540
|
+
}
|
13541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListSelectAllCheckboxDirective, decorators: [{
|
13542
|
+
type: Directive,
|
13543
|
+
args: [{
|
13544
|
+
selector: '[kendoTreeListSelectAllCheckbox]',
|
13545
|
+
standalone: true
|
13546
|
+
}]
|
13547
|
+
}], ctorParameters: function () { return [{ type: i1$5.CheckBoxComponent }, { type: i0.ElementRef }, { type: SelectionService }, { type: SelectableDirective }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; } });
|
13548
|
+
|
13311
13549
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
13312
13550
|
const mergeObjects = (...args) => Object.assign.apply(null, [{}].concat(args));
|
13313
13551
|
const directions = initialDirection => initialDirection === "asc" ? ["asc", "desc"] : ["desc", "asc"];
|
@@ -13734,6 +13972,7 @@ class HeaderComponent {
|
|
13734
13972
|
<kendo-checkbox
|
13735
13973
|
[inputAttributes]="{'aria-label': messageFor('selectAllRowsCheckboxLabel')}"
|
13736
13974
|
kendoTreeListFocusable
|
13975
|
+
kendoTreeListSelectAllCheckbox
|
13737
13976
|
(checkedStateChange)="selectAllChange($event)"
|
13738
13977
|
></kendo-checkbox>
|
13739
13978
|
</ng-template>
|
@@ -13808,7 +14047,7 @@ class HeaderComponent {
|
|
13808
14047
|
[logicalSlaveCellsCount]="unlockedColumnsCount"
|
13809
14048
|
>
|
13810
14049
|
</tr>
|
13811
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: LogicalRowDirective, selector: "[kendoTreeListLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "isNew", "totalColumns"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: FilterMenuComponent, selector: "kendo-treelist-filter-menu", inputs: ["column", "filter"] }, { kind: "component", type: ColumnMenuComponent, selector: "kendo-treelist-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: ColumnHandleDirective, selector: "[kendoTreeListColumnHandle]", inputs: ["columns", "column"] }, { kind: "component", type: FilterRowComponent, selector: "[kendoTreeListFilterRow]", inputs: ["columns", "filter", "logicalRowIndex", "lockedColumnsCount"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }] });
|
14050
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: LogicalRowDirective, selector: "[kendoTreeListLogicalRow]", inputs: ["logicalRowIndex", "logicalSlaveRow", "logicalCellsCount", "logicalSlaveCellsCount", "dataRowIndex", "dataItem", "isNew", "totalColumns"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LogicalCellDirective, selector: "[kendoTreeListLogicalCell]", inputs: ["logicalColIndex", "logicalRowIndex", "logicalSlaveCell", "column", "colIndex", "colSpan", "rowSpan", "dataRowIndex", "dataItem", "expandable"] }, { kind: "directive", type: DropTargetDirective, selector: "[kendoDropTarget]", inputs: ["context"], outputs: ["enter", "leave", "drop"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: DraggableColumnDirective, selector: "[kendoDraggableColumn]", inputs: ["context", "enableDrag"], outputs: ["drag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: FilterMenuComponent, selector: "kendo-treelist-filter-menu", inputs: ["column", "filter"] }, { kind: "component", type: ColumnMenuComponent, selector: "kendo-treelist-column-menu", inputs: ["standalone", "column", "settings", "sort", "filter", "sortable", "columnMenuTemplate"] }, { kind: "directive", type: TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }, { kind: "directive", type: ColumnHandleDirective, selector: "[kendoTreeListColumnHandle]", inputs: ["columns", "column"] }, { kind: "component", type: FilterRowComponent, selector: "[kendoTreeListFilterRow]", inputs: ["columns", "filter", "logicalRowIndex", "lockedColumnsCount"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }, { kind: "directive", type: TreeListSelectAllCheckboxDirective, selector: "[kendoTreeListSelectAllCheckbox]" }] });
|
13812
14051
|
}
|
13813
14052
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderComponent, decorators: [{
|
13814
14053
|
type: Component,
|
@@ -13921,6 +14160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
13921
14160
|
<kendo-checkbox
|
13922
14161
|
[inputAttributes]="{'aria-label': messageFor('selectAllRowsCheckboxLabel')}"
|
13923
14162
|
kendoTreeListFocusable
|
14163
|
+
kendoTreeListSelectAllCheckbox
|
13924
14164
|
(checkedStateChange)="selectAllChange($event)"
|
13925
14165
|
></kendo-checkbox>
|
13926
14166
|
</ng-template>
|
@@ -13997,7 +14237,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
13997
14237
|
</tr>
|
13998
14238
|
`,
|
13999
14239
|
standalone: true,
|
14000
|
-
imports: [NgFor, LogicalRowDirective, NgIf, LogicalCellDirective, DropTargetDirective, DraggableDirective, DraggableColumnDirective, NgClass, NgStyle,
|
14240
|
+
imports: [NgFor, LogicalRowDirective, NgIf, LogicalCellDirective, DropTargetDirective, DraggableDirective, DraggableColumnDirective, NgClass, NgStyle,
|
14241
|
+
FilterMenuComponent, ColumnMenuComponent, TemplateContextDirective, IconWrapperComponent, FocusableDirective, ColumnHandleDirective, FilterRowComponent,
|
14242
|
+
CheckBoxComponent, TreeListSelectAllCheckboxDirective]
|
14001
14243
|
}]
|
14002
14244
|
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: SortService }, { type: SelectionService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { totalColumnLevels: [{
|
14003
14245
|
type: Input
|
@@ -18508,189 +18750,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
18508
18750
|
type: Input
|
18509
18751
|
}] } });
|
18510
18752
|
|
18511
|
-
const defaultColumnKeyGetter = (_column, columnIndex) => columnIndex;
|
18512
|
-
/**
|
18513
|
-
* A directive which controls the selection state. [See example](slug:selection_treelist).
|
18514
|
-
*/
|
18515
|
-
class SelectableDirective {
|
18516
|
-
treelist;
|
18517
|
-
/**
|
18518
|
-
* @hidden
|
18519
|
-
*/
|
18520
|
-
set selectable(value) {
|
18521
|
-
if (typeof value === 'object') { // add method to normalize this
|
18522
|
-
this._settings = value;
|
18523
|
-
}
|
18524
|
-
else {
|
18525
|
-
this._settings = {
|
18526
|
-
enabled: value
|
18527
|
-
};
|
18528
|
-
}
|
18529
|
-
this.state = createState(this._settings);
|
18530
|
-
this.state.fromArray(this._selectedItems || []);
|
18531
|
-
if (this._settings.enabled !== false) {
|
18532
|
-
this.treelist.isSelected = this._settings.mode === 'cell' ? this.cellSelected : this.rowSelected;
|
18533
|
-
this.subscribeSelection();
|
18534
|
-
}
|
18535
|
-
else {
|
18536
|
-
this.treelist.isSelected = () => false;
|
18537
|
-
this.unsubscribeSelection();
|
18538
|
-
}
|
18539
|
-
this.treelist.updateView();
|
18540
|
-
}
|
18541
|
-
/**
|
18542
|
-
* Specifies the selected items.
|
18543
|
-
*/
|
18544
|
-
set selectedItems(value) {
|
18545
|
-
if (!value) {
|
18546
|
-
this.state.clear();
|
18547
|
-
}
|
18548
|
-
else if (value !== this.lastChange) {
|
18549
|
-
this.state.fromArray(value);
|
18550
|
-
this.treelist.updateView();
|
18551
|
-
}
|
18552
|
-
this._selectedItems = value;
|
18553
|
-
}
|
18554
|
-
/**
|
18555
|
-
* Fires when the selected items are changed.
|
18556
|
-
*/
|
18557
|
-
selectedItemsChange = new EventEmitter();
|
18558
|
-
/**
|
18559
|
-
* The field name or a function that specify the dataItems key.
|
18560
|
-
*/
|
18561
|
-
set itemKey(value) {
|
18562
|
-
if (isString(value)) {
|
18563
|
-
this._keyGetter = getter(String(value));
|
18564
|
-
}
|
18565
|
-
else {
|
18566
|
-
this._keyGetter = value;
|
18567
|
-
}
|
18568
|
-
}
|
18569
|
-
/**
|
18570
|
-
* The field name or a function that specify the columns key.
|
18571
|
-
*/
|
18572
|
-
set columnKey(value) {
|
18573
|
-
if (isString(value)) {
|
18574
|
-
this._columnKeyGetter = getter(String(value));
|
18575
|
-
}
|
18576
|
-
else if (value) {
|
18577
|
-
this._columnKeyGetter = value;
|
18578
|
-
}
|
18579
|
-
}
|
18580
|
-
get keyGetter() {
|
18581
|
-
return this._keyGetter || this.treelist.idGetter;
|
18582
|
-
}
|
18583
|
-
get columnKeyGetter() {
|
18584
|
-
return this._columnKeyGetter || defaultColumnKeyGetter;
|
18585
|
-
}
|
18586
|
-
subscriptions;
|
18587
|
-
state = new RowSelectionState();
|
18588
|
-
_settings;
|
18589
|
-
lastChange;
|
18590
|
-
_columnKeyGetter;
|
18591
|
-
_keyGetter;
|
18592
|
-
_selectedItems = [];
|
18593
|
-
constructor(treelist) {
|
18594
|
-
this.treelist = treelist;
|
18595
|
-
this.cellSelected = this.cellSelected.bind(this);
|
18596
|
-
this.rowSelected = this.rowSelected.bind(this);
|
18597
|
-
this.selectionChange = this.selectionChange.bind(this);
|
18598
|
-
this.updateColumnIndices = this.updateColumnIndices.bind(this);
|
18599
|
-
this.treelist.selectable = this.selectable = true;
|
18600
|
-
}
|
18601
|
-
ngOnDestroy() {
|
18602
|
-
this.unsubscribeSelection();
|
18603
|
-
}
|
18604
|
-
/**
|
18605
|
-
* @hidden
|
18606
|
-
*/
|
18607
|
-
cellSelected(dataItem, column, columnIndex) {
|
18608
|
-
return this.state.has(this.keyGetter(dataItem), this.columnKeyGetter(column, columnIndex));
|
18609
|
-
}
|
18610
|
-
/**
|
18611
|
-
* @hidden
|
18612
|
-
*/
|
18613
|
-
rowSelected(dataItem) {
|
18614
|
-
return this.state.has(this.keyGetter(dataItem));
|
18615
|
-
}
|
18616
|
-
selectionChange({ action, items }) {
|
18617
|
-
if (action === 'select' || action === 'add') {
|
18618
|
-
if (action === 'select') {
|
18619
|
-
this.state.clear();
|
18620
|
-
}
|
18621
|
-
items.forEach(item => {
|
18622
|
-
this.state.add(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));
|
18623
|
-
});
|
18624
|
-
}
|
18625
|
-
else {
|
18626
|
-
items.forEach(item => {
|
18627
|
-
this.state.remove(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));
|
18628
|
-
});
|
18629
|
-
}
|
18630
|
-
this.emitSelectedItemsChange();
|
18631
|
-
}
|
18632
|
-
emitSelectedItemsChange() {
|
18633
|
-
this.lastChange = this.state.toArray();
|
18634
|
-
this.selectedItemsChange.emit(this.lastChange);
|
18635
|
-
}
|
18636
|
-
subscribeSelection() {
|
18637
|
-
this.unsubscribeSelection();
|
18638
|
-
this.subscriptions = this.treelist.selectionChange.subscribe(this.selectionChange);
|
18639
|
-
if (this._settings.mode === 'cell') {
|
18640
|
-
this.subscriptions.add(this.treelist.columnOrderChange.subscribe(this.updateColumnIndices));
|
18641
|
-
this.subscriptions.add(this.treelist.columnLockedChange.subscribe(this.updateColumnIndices));
|
18642
|
-
}
|
18643
|
-
}
|
18644
|
-
unsubscribeSelection() {
|
18645
|
-
if (this.subscriptions) {
|
18646
|
-
this.subscriptions.unsubscribe();
|
18647
|
-
this.subscriptions = null;
|
18648
|
-
}
|
18649
|
-
}
|
18650
|
-
updateColumnIndices() {
|
18651
|
-
if (!this._columnKeyGetter) {
|
18652
|
-
const changes = new Map();
|
18653
|
-
const currentIndices = [];
|
18654
|
-
this.leafColumns.forEach((column) => {
|
18655
|
-
currentIndices.push(column);
|
18656
|
-
});
|
18657
|
-
this.treelist.columnsContainer.refresh();
|
18658
|
-
const leafColumns = this.leafColumns;
|
18659
|
-
currentIndices.forEach((column, index) => {
|
18660
|
-
if (column !== leafColumns[index]) {
|
18661
|
-
changes.set(index, leafColumns.indexOf(column));
|
18662
|
-
}
|
18663
|
-
});
|
18664
|
-
if (changes.size && this.state.updateColumKeys(changes)) {
|
18665
|
-
this.emitSelectedItemsChange();
|
18666
|
-
}
|
18667
|
-
}
|
18668
|
-
}
|
18669
|
-
get leafColumns() {
|
18670
|
-
return this.treelist.lockedLeafColumns.toArray().concat(this.treelist.nonLockedLeafColumns.toArray());
|
18671
|
-
}
|
18672
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectableDirective, deps: [{ token: TreeListComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
18673
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SelectableDirective, isStandalone: true, selector: "[kendoTreeListSelectable]", inputs: { selectable: "selectable", selectedItems: "selectedItems", itemKey: "itemKey", columnKey: "columnKey" }, outputs: { selectedItemsChange: "selectedItemsChange" }, exportAs: ["kendoTreeListSelectable"], ngImport: i0 });
|
18674
|
-
}
|
18675
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectableDirective, decorators: [{
|
18676
|
-
type: Directive,
|
18677
|
-
args: [{
|
18678
|
-
exportAs: 'kendoTreeListSelectable',
|
18679
|
-
selector: '[kendoTreeListSelectable]',
|
18680
|
-
standalone: true
|
18681
|
-
}]
|
18682
|
-
}], ctorParameters: function () { return [{ type: TreeListComponent }]; }, propDecorators: { selectable: [{
|
18683
|
-
type: Input
|
18684
|
-
}], selectedItems: [{
|
18685
|
-
type: Input
|
18686
|
-
}], selectedItemsChange: [{
|
18687
|
-
type: Output
|
18688
|
-
}], itemKey: [{
|
18689
|
-
type: Input
|
18690
|
-
}], columnKey: [{
|
18691
|
-
type: Input
|
18692
|
-
}] } });
|
18693
|
-
|
18694
18753
|
/**
|
18695
18754
|
* Represents the Kendo UI TreeListSpacer component for Angular.
|
18696
18755
|
* Used to give additional white space between the Pager inner elements,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@progress/kendo-angular-treelist",
|
3
|
-
"version": "17.0.2-develop.
|
3
|
+
"version": "17.0.2-develop.6",
|
4
4
|
"description": "Kendo UI TreeList for Angular - Display hierarchical data in an Angular tree grid view that supports sorting, filtering, paging, and much more.",
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
6
6
|
"author": "Progress",
|
@@ -31,25 +31,25 @@
|
|
31
31
|
"@progress/kendo-data-query": "^1.0.0",
|
32
32
|
"@progress/kendo-drawing": "^1.21.0",
|
33
33
|
"@progress/kendo-licensing": "^1.0.2",
|
34
|
-
"@progress/kendo-angular-buttons": "17.0.2-develop.
|
35
|
-
"@progress/kendo-angular-common": "17.0.2-develop.
|
36
|
-
"@progress/kendo-angular-dateinputs": "17.0.2-develop.
|
37
|
-
"@progress/kendo-angular-dropdowns": "17.0.2-develop.
|
38
|
-
"@progress/kendo-angular-excel-export": "17.0.2-develop.
|
39
|
-
"@progress/kendo-angular-icons": "17.0.2-develop.
|
40
|
-
"@progress/kendo-angular-inputs": "17.0.2-develop.
|
41
|
-
"@progress/kendo-angular-intl": "17.0.2-develop.
|
42
|
-
"@progress/kendo-angular-l10n": "17.0.2-develop.
|
43
|
-
"@progress/kendo-angular-label": "17.0.2-develop.
|
44
|
-
"@progress/kendo-angular-pdf-export": "17.0.2-develop.
|
45
|
-
"@progress/kendo-angular-popup": "17.0.2-develop.
|
46
|
-
"@progress/kendo-angular-toolbar": "17.0.2-develop.
|
47
|
-
"@progress/kendo-angular-utils": "17.0.2-develop.
|
34
|
+
"@progress/kendo-angular-buttons": "17.0.2-develop.6",
|
35
|
+
"@progress/kendo-angular-common": "17.0.2-develop.6",
|
36
|
+
"@progress/kendo-angular-dateinputs": "17.0.2-develop.6",
|
37
|
+
"@progress/kendo-angular-dropdowns": "17.0.2-develop.6",
|
38
|
+
"@progress/kendo-angular-excel-export": "17.0.2-develop.6",
|
39
|
+
"@progress/kendo-angular-icons": "17.0.2-develop.6",
|
40
|
+
"@progress/kendo-angular-inputs": "17.0.2-develop.6",
|
41
|
+
"@progress/kendo-angular-intl": "17.0.2-develop.6",
|
42
|
+
"@progress/kendo-angular-l10n": "17.0.2-develop.6",
|
43
|
+
"@progress/kendo-angular-label": "17.0.2-develop.6",
|
44
|
+
"@progress/kendo-angular-pdf-export": "17.0.2-develop.6",
|
45
|
+
"@progress/kendo-angular-popup": "17.0.2-develop.6",
|
46
|
+
"@progress/kendo-angular-toolbar": "17.0.2-develop.6",
|
47
|
+
"@progress/kendo-angular-utils": "17.0.2-develop.6",
|
48
48
|
"rxjs": "^6.5.3 || ^7.0.0"
|
49
49
|
},
|
50
50
|
"dependencies": {
|
51
51
|
"tslib": "^2.3.1",
|
52
|
-
"@progress/kendo-angular-schematics": "17.0.2-develop.
|
52
|
+
"@progress/kendo-angular-schematics": "17.0.2-develop.6",
|
53
53
|
"@progress/kendo-common": "^1.0.1",
|
54
54
|
"@progress/kendo-file-saver": "^1.0.0"
|
55
55
|
},
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
2
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
5
|
+
import { ChangeDetectorRef, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';
|
6
|
+
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
7
|
+
import { SelectionService } from '../../selection/selection.service';
|
8
|
+
import { SelectableDirective } from '../../selection/selectable.directive';
|
9
|
+
import * as i0 from "@angular/core";
|
10
|
+
/**
|
11
|
+
* @hidden
|
12
|
+
*/
|
13
|
+
export declare class TreeListSelectAllCheckboxDirective implements OnDestroy {
|
14
|
+
private sub;
|
15
|
+
private setState;
|
16
|
+
constructor(host: CheckBoxComponent, hostEl: ElementRef, selectionService: SelectionService, selectableDirective: SelectableDirective, cdr: ChangeDetectorRef, zone: NgZone, renderer: Renderer2);
|
17
|
+
ngOnDestroy(): void;
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeListSelectAllCheckboxDirective, never>;
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TreeListSelectAllCheckboxDirective, "[kendoTreeListSelectAllCheckbox]", never, {}, {}, never, never, true, never>;
|
20
|
+
}
|
@@ -4,13 +4,13 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
4
4
|
function default_1(options) {
|
5
5
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'TreeListModule', package: 'treelist', peerDependencies: {
|
6
6
|
// peer dep of the dropdowns
|
7
|
-
'@progress/kendo-angular-treeview': '17.0.2-develop.
|
7
|
+
'@progress/kendo-angular-treeview': '17.0.2-develop.6',
|
8
8
|
// peer dependency of kendo-angular-inputs
|
9
|
-
'@progress/kendo-angular-dialog': '17.0.2-develop.
|
9
|
+
'@progress/kendo-angular-dialog': '17.0.2-develop.6',
|
10
10
|
// peer dependency of kendo-angular-icons
|
11
11
|
'@progress/kendo-svg-icons': '^4.0.0',
|
12
12
|
// peer dependency of kendo-angular-dateinputs
|
13
|
-
'@progress/kendo-angular-navigation': '17.0.2-develop.
|
13
|
+
'@progress/kendo-angular-navigation': '17.0.2-develop.6',
|
14
14
|
} });
|
15
15
|
return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
|
16
16
|
}
|
@@ -43,6 +43,10 @@ export declare class SelectableDirective implements OnDestroy {
|
|
43
43
|
* The field name or a function that specify the columns key.
|
44
44
|
*/
|
45
45
|
set columnKey(value: string | ((column: any, columnIndex: number) => any));
|
46
|
+
/**
|
47
|
+
* @hidden
|
48
|
+
*/
|
49
|
+
get stateArray(): any[];
|
46
50
|
protected get keyGetter(): any;
|
47
51
|
protected get columnKeyGetter(): any;
|
48
52
|
protected subscriptions: any;
|