@progress/kendo-angular-treelist
Version:
Kendo UI TreeList for Angular - Display hierarchical data in an Angular tree grid view that supports sorting, filtering, paging, and much more.
55 lines (54 loc) • 2.37 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Injectable, EventEmitter } from "@angular/core";
import { ColumnsContainer } from "../columns/columns-container";
import { expandColumns } from "../columns/column-common";
import { orderBy } from '@progress/kendo-data-query';
import * as i0 from "@angular/core";
/**
* @hidden
*/
export class ColumnInfoService {
visibilityChange = new EventEmitter();
lockedChange = new EventEmitter();
columnRangeChange = new EventEmitter();
columnsContainer = new ColumnsContainer(() => []);
list;
get lockedLeafColumns() {
return this.columnsContainer.lockedLeafColumns;
}
get nonLockedLeafColumns() {
return this.columnsContainer.nonLockedLeafColumns;
}
get isLocked() {
return this.lockedLeafColumns.length > 0;
}
get totalLevels() {
return this.columnsContainer.totalLevels;
}
get leafNamedColumns() {
const columns = expandColumns(this.list().filterSort(column => !column.isColumnGroup))
.filter(column => column.matchesMedia && column.displayTitle);
return orderBy(columns, [{ field: 'locked', dir: 'desc' }]);
}
get unlockedRootCount() {
return this.list().rootColumns().filter(column => !column.locked && column.isVisible).length;
}
init(columns, list) {
this.columnsContainer = columns;
this.list = list;
}
changeVisibility(columns) {
this.visibilityChange.emit(columns);
}
changeLocked(columns) {
this.lockedChange.emit(columns);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnInfoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnInfoService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnInfoService, decorators: [{
type: Injectable
}] });