@progress-chef/platform-shared-components 0.0.154 → 0.0.155
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/assets/icons/IconFont.css +6 -3
- package/assets/icons/IconFont.scss +6 -3
- package/assets/icons/IconFont.ttf +0 -0
- package/assets/icons/IconFont.woff +0 -0
- package/assets/icons/IconFont.woff2 +0 -0
- package/esm2022/lib/atoms/atoms.module.mjs +15 -1
- package/esm2022/lib/atoms/drag-and-drop/drag-and-drop.component.mjs +31 -3
- package/esm2022/lib/atoms/markdown-display/markdown-display.component.mjs +39 -0
- package/esm2022/lib/atoms/markdown-display/markdown-display.module.mjs +26 -0
- package/esm2022/lib/atoms/markdown-display/markdown-display.service.mjs +53 -0
- package/esm2022/lib/atoms/tree-list/tree-list.component.mjs +404 -0
- package/esm2022/lib/atoms/tree-list/tree-list.interfaces.mjs +2 -0
- package/esm2022/lib/atoms/tree-list/tree-list.module.mjs +44 -0
- package/esm2022/lib/atoms/tree-view/tree-view.component.mjs +521 -0
- package/esm2022/lib/atoms/tree-view/tree-view.interfaces.mjs +2 -0
- package/esm2022/lib/atoms/tree-view/tree-view.module.mjs +44 -0
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/progress-chef-platform-shared-components.mjs +1139 -13
- package/fesm2022/progress-chef-platform-shared-components.mjs.map +1 -1
- package/lib/atoms/atoms.module.d.ts +5 -3
- package/lib/atoms/drag-and-drop/drag-and-drop.component.d.ts +10 -1
- package/lib/atoms/markdown-display/markdown-display.component.d.ts +22 -0
- package/lib/atoms/markdown-display/markdown-display.module.d.ts +8 -0
- package/lib/atoms/markdown-display/markdown-display.service.d.ts +23 -0
- package/lib/atoms/tree-list/tree-list.component.d.ts +288 -0
- package/lib/atoms/tree-list/tree-list.interfaces.d.ts +31 -0
- package/lib/atoms/tree-list/tree-list.module.d.ts +13 -0
- package/lib/atoms/tree-view/tree-view.component.d.ts +279 -0
- package/lib/atoms/tree-view/tree-view.interfaces.d.ts +23 -0
- package/lib/atoms/tree-view/tree-view.module.d.ts +13 -0
- package/package.json +2 -1
- package/public-api.d.ts +6 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, EventEmitter, HostBinding, Output, NgModule, ViewChild, HostListener, ViewChildren, ContentChild, ViewEncapsulation, Pipe, Directive, booleanAttribute, ContentChildren, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
2
|
+
import { Component, Input, EventEmitter, HostBinding, Output, NgModule, ViewChild, HostListener, ViewChildren, ContentChild, ViewEncapsulation, Pipe, Directive, booleanAttribute, ContentChildren, CUSTOM_ELEMENTS_SCHEMA, SecurityContext, Injectable } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i3$2 from '@angular/forms';
|
|
@@ -19,7 +19,7 @@ import * as i2$5 from '@progress/kendo-angular-dropdowns';
|
|
|
19
19
|
import { DropDownsModule, AutoCompleteModule } from '@progress/kendo-angular-dropdowns';
|
|
20
20
|
import * as i2$2 from '@progress/kendo-angular-inputs';
|
|
21
21
|
import { InputsModule } from '@progress/kendo-angular-inputs';
|
|
22
|
-
import * as i2$
|
|
22
|
+
import * as i2$a from '@progress/kendo-angular-icons';
|
|
23
23
|
import { IconsModule } from '@progress/kendo-angular-icons';
|
|
24
24
|
import * as i3$3 from '@progress/kendo-angular-label';
|
|
25
25
|
import { LabelModule, FloatingLabelModule } from '@progress/kendo-angular-label';
|
|
@@ -36,19 +36,25 @@ import { LoaderModule as LoaderModule$1, IndicatorsModule } from '@progress/kend
|
|
|
36
36
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
37
37
|
import * as i2$6 from '@progress/kendo-angular-progressbar';
|
|
38
38
|
import { ProgressBarModule } from '@progress/kendo-angular-progressbar';
|
|
39
|
-
import { Subject, Subscription, tap, map } from 'rxjs';
|
|
39
|
+
import { Subject, Subscription, tap, map, of } from 'rxjs';
|
|
40
40
|
import { debounceTime } from 'rxjs/operators';
|
|
41
|
+
import * as i2$7 from '@progress/kendo-angular-treelist';
|
|
42
|
+
import { TreeListModule as TreeListModule$1 } from '@progress/kendo-angular-treelist';
|
|
43
|
+
import * as i2$8 from '@progress/kendo-angular-treeview';
|
|
44
|
+
import { TreeViewModule as TreeViewModule$1 } from '@progress/kendo-angular-treeview';
|
|
41
45
|
import * as i1$5 from '@progress/kendo-angular-upload';
|
|
42
46
|
import { UploadsModule } from '@progress/kendo-angular-upload';
|
|
43
47
|
import { HttpClientModule } from '@angular/common/http';
|
|
44
|
-
import * as i2$
|
|
48
|
+
import * as i2$9 from '@progress/kendo-angular-dialog';
|
|
45
49
|
import { DialogsModule, DialogModule as DialogModule$1 } from '@progress/kendo-angular-dialog';
|
|
46
50
|
import * as i1$6 from '@progress/kendo-angular-grid';
|
|
47
51
|
import { GridModule, GridComponent } from '@progress/kendo-angular-grid';
|
|
48
52
|
import { Keys } from '@progress/kendo-angular-common';
|
|
49
|
-
import * as i2$
|
|
53
|
+
import * as i2$b from '@progress/kendo-angular-pager';
|
|
50
54
|
import { KENDO_PAGER, PagerModule } from '@progress/kendo-angular-pager';
|
|
51
55
|
import { orderBy } from '@progress/kendo-data-query';
|
|
56
|
+
import { marked } from 'marked';
|
|
57
|
+
import * as i1$7 from '@angular/platform-browser';
|
|
52
58
|
|
|
53
59
|
class SharedComponent {
|
|
54
60
|
constructor() { }
|
|
@@ -1548,6 +1554,11 @@ class DragAndDropComponent {
|
|
|
1548
1554
|
this.dragDropItemIndexAttribute = 'data-kendo-listview-item-index';
|
|
1549
1555
|
this.dragHandleClassSelector = '.reorder-icon';
|
|
1550
1556
|
this.emitListChangeEv = new EventEmitter();
|
|
1557
|
+
this.dragEnter = new EventEmitter();
|
|
1558
|
+
this.dragLeave = new EventEmitter();
|
|
1559
|
+
this.dropDone = new EventEmitter();
|
|
1560
|
+
this.dragStart = new EventEmitter();
|
|
1561
|
+
this.dragRelease = new EventEmitter();
|
|
1551
1562
|
this.dragData = ({ dragTarget }) => {
|
|
1552
1563
|
return {
|
|
1553
1564
|
fromElement: this.setElement(dragTarget, this.dragDropContainerClassSelector, this.dragDropContainerIndexAttribute),
|
|
@@ -1572,6 +1583,18 @@ class DragAndDropComponent {
|
|
|
1572
1583
|
this.dropTargetContainer.notify();
|
|
1573
1584
|
}
|
|
1574
1585
|
}
|
|
1586
|
+
onDragEnter(e) {
|
|
1587
|
+
this.dragEnter.emit(e);
|
|
1588
|
+
}
|
|
1589
|
+
onDragLeave(e) {
|
|
1590
|
+
this.dragLeave.emit(e);
|
|
1591
|
+
}
|
|
1592
|
+
onRelease(e) {
|
|
1593
|
+
this.dragRelease.emit(e);
|
|
1594
|
+
}
|
|
1595
|
+
onDragStart(e) {
|
|
1596
|
+
this.dragStart.emit(e);
|
|
1597
|
+
}
|
|
1575
1598
|
onDrop(e) {
|
|
1576
1599
|
const { fromIndex } = e.dragData;
|
|
1577
1600
|
let destinationIndex = 0;
|
|
@@ -1581,6 +1604,7 @@ class DragAndDropComponent {
|
|
|
1581
1604
|
}
|
|
1582
1605
|
this._listData = [...this._listData];
|
|
1583
1606
|
this.emitListChangeEv.emit(this._listData);
|
|
1607
|
+
this.dropDone.emit(e);
|
|
1584
1608
|
this.dragTargetContainer.notify();
|
|
1585
1609
|
this.dropTargetContainer.notify();
|
|
1586
1610
|
}
|
|
@@ -1605,11 +1629,11 @@ class DragAndDropComponent {
|
|
|
1605
1629
|
}
|
|
1606
1630
|
;
|
|
1607
1631
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DragAndDropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1608
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: DragAndDropComponent, isStandalone: true, selector: "lib-drag-and-drop", inputs: { dragDropContainerClassSelector: "dragDropContainerClassSelector", dragDropItemClassSelector: "dragDropItemClassSelector", dragDropContainerIndexAttribute: "dragDropContainerIndexAttribute", dragDropItemIndexAttribute: "dragDropItemIndexAttribute", dragHandleClassSelector: "dragHandleClassSelector", listData: "listData" }, outputs: { emitListChangeEv: "emitListChangeEv" }, viewQueries: [{ propertyName: "dragTargetContainer", first: true, predicate: ["wrapper"], descendants: true, read: DragTargetContainerDirective }, { propertyName: "dropTargetContainer", first: true, predicate: ["wrapper"], descendants: true, read: DropTargetContainerDirective }], ngImport: i0, template: "<div class=\"demo-container\" #wrapper kendoDragTargetContainer kendoDropTargetContainer\n [dragTargetFilter]=\"dragDropItemClassSelector\" [dropTargetFilter]=\"dragDropItemClassSelector\" [dragData]=\"dragData\"\n [hint]=\"{ hintClass: 'rowHint' }\" (onDrop)=\"onDrop($event)\" [dragHandle]=\"dragHandleClassSelector\">\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: DragAndDropModule$1 }, { kind: "directive", type: i1$2.DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: i1$2.DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }] }); }
|
|
1632
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: DragAndDropComponent, isStandalone: true, selector: "lib-drag-and-drop", inputs: { dragDropContainerClassSelector: "dragDropContainerClassSelector", dragDropItemClassSelector: "dragDropItemClassSelector", dragDropContainerIndexAttribute: "dragDropContainerIndexAttribute", dragDropItemIndexAttribute: "dragDropItemIndexAttribute", dragHandleClassSelector: "dragHandleClassSelector", listData: "listData" }, outputs: { emitListChangeEv: "emitListChangeEv", dragEnter: "dragEnter", dragLeave: "dragLeave", dropDone: "dropDone", dragStart: "dragStart", dragRelease: "dragRelease" }, viewQueries: [{ propertyName: "dragTargetContainer", first: true, predicate: ["wrapper"], descendants: true, read: DragTargetContainerDirective }, { propertyName: "dropTargetContainer", first: true, predicate: ["wrapper"], descendants: true, read: DropTargetContainerDirective }], ngImport: i0, template: "<div class=\"demo-container\" #wrapper kendoDragTargetContainer kendoDropTargetContainer\n [dragTargetFilter]=\"dragDropItemClassSelector\" [dropTargetFilter]=\"dragDropItemClassSelector\" [dragData]=\"dragData\"\n [hint]=\"{ hintClass: 'rowHint' }\" (onDrop)=\"onDrop($event)\" (onDragEnter)=\"onDragEnter($event)\"\n (onDragLeave)=\"onDragLeave($event)\" (onRelease)=\"onRelease($event)\" (onDragStart)=\"onDragStart($event)\" [dragHandle]=\"dragHandleClassSelector\">\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: DragAndDropModule$1 }, { kind: "directive", type: i1$2.DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode", "cursorStyle", "hintContext"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: i1$2.DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }] }); }
|
|
1609
1633
|
}
|
|
1610
1634
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DragAndDropComponent, decorators: [{
|
|
1611
1635
|
type: Component,
|
|
1612
|
-
args: [{ standalone: true, selector: 'lib-drag-and-drop', imports: [DragAndDropModule$1], template: "<div class=\"demo-container\" #wrapper kendoDragTargetContainer kendoDropTargetContainer\n [dragTargetFilter]=\"dragDropItemClassSelector\" [dropTargetFilter]=\"dragDropItemClassSelector\" [dragData]=\"dragData\"\n [hint]=\"{ hintClass: 'rowHint' }\" (onDrop)=\"onDrop($event)\" [dragHandle]=\"dragHandleClassSelector\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
1636
|
+
args: [{ standalone: true, selector: 'lib-drag-and-drop', imports: [DragAndDropModule$1], template: "<div class=\"demo-container\" #wrapper kendoDragTargetContainer kendoDropTargetContainer\n [dragTargetFilter]=\"dragDropItemClassSelector\" [dropTargetFilter]=\"dragDropItemClassSelector\" [dragData]=\"dragData\"\n [hint]=\"{ hintClass: 'rowHint' }\" (onDrop)=\"onDrop($event)\" (onDragEnter)=\"onDragEnter($event)\"\n (onDragLeave)=\"onDragLeave($event)\" (onRelease)=\"onRelease($event)\" (onDragStart)=\"onDragStart($event)\" [dragHandle]=\"dragHandleClassSelector\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
1613
1637
|
}], propDecorators: { dragDropContainerClassSelector: [{
|
|
1614
1638
|
type: Input
|
|
1615
1639
|
}], dragDropItemClassSelector: [{
|
|
@@ -1624,6 +1648,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
1624
1648
|
type: Input
|
|
1625
1649
|
}], emitListChangeEv: [{
|
|
1626
1650
|
type: Output
|
|
1651
|
+
}], dragEnter: [{
|
|
1652
|
+
type: Output
|
|
1653
|
+
}], dragLeave: [{
|
|
1654
|
+
type: Output
|
|
1655
|
+
}], dropDone: [{
|
|
1656
|
+
type: Output
|
|
1657
|
+
}], dragStart: [{
|
|
1658
|
+
type: Output
|
|
1659
|
+
}], dragRelease: [{
|
|
1660
|
+
type: Output
|
|
1627
1661
|
}], dragTargetContainer: [{
|
|
1628
1662
|
type: ViewChild,
|
|
1629
1663
|
args: ['wrapper', { read: DragTargetContainerDirective, static: false }]
|
|
@@ -4147,6 +4181,980 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
4147
4181
|
}]
|
|
4148
4182
|
}] });
|
|
4149
4183
|
|
|
4184
|
+
/**
|
|
4185
|
+
* Custom TreeList component that wraps Kendo's TreeList with design system styling.
|
|
4186
|
+
*
|
|
4187
|
+
* This component provides a hierarchical data grid for displaying and editing tabular data.
|
|
4188
|
+
* It supports selection, sorting, filtering, editing, and custom column templates.
|
|
4189
|
+
*/
|
|
4190
|
+
class TreeListComponent {
|
|
4191
|
+
constructor() {
|
|
4192
|
+
/**
|
|
4193
|
+
* The data source for the tree list
|
|
4194
|
+
*/
|
|
4195
|
+
this.data = [];
|
|
4196
|
+
/**
|
|
4197
|
+
* Column definitions for the tree list
|
|
4198
|
+
*/
|
|
4199
|
+
this.columns = [];
|
|
4200
|
+
/**
|
|
4201
|
+
* Field name that contains the unique identifier for each node
|
|
4202
|
+
*/
|
|
4203
|
+
this.idField = 'id';
|
|
4204
|
+
/**
|
|
4205
|
+
* Field name that contains the child nodes array (for hierarchical binding)
|
|
4206
|
+
*/
|
|
4207
|
+
this.childrenField = 'children';
|
|
4208
|
+
/**
|
|
4209
|
+
* Field name that contains the parent identifier (for flat binding)
|
|
4210
|
+
*/
|
|
4211
|
+
this.parentIdField = 'parentId';
|
|
4212
|
+
/**
|
|
4213
|
+
* Binding type: 'hierarchy' for nested data with children, 'flat' for parent-child relationship data
|
|
4214
|
+
*/
|
|
4215
|
+
this.bindingType = 'hierarchy';
|
|
4216
|
+
/**
|
|
4217
|
+
* Enable selection functionality
|
|
4218
|
+
*/
|
|
4219
|
+
this.selectable = false;
|
|
4220
|
+
/**
|
|
4221
|
+
* Enable sorting functionality
|
|
4222
|
+
*/
|
|
4223
|
+
this.sortable = false;
|
|
4224
|
+
/**
|
|
4225
|
+
* Enable filtering functionality
|
|
4226
|
+
*/
|
|
4227
|
+
this.filterable = false;
|
|
4228
|
+
/**
|
|
4229
|
+
* Enable resizing functionality
|
|
4230
|
+
*/
|
|
4231
|
+
this.resizable = false;
|
|
4232
|
+
/**
|
|
4233
|
+
* Enable reordering functionality
|
|
4234
|
+
*/
|
|
4235
|
+
this.reorderable = false;
|
|
4236
|
+
/**
|
|
4237
|
+
* Enable editing functionality
|
|
4238
|
+
*/
|
|
4239
|
+
this.editable = false;
|
|
4240
|
+
/**
|
|
4241
|
+
* Loading state - shows loading indicator when true
|
|
4242
|
+
*/
|
|
4243
|
+
this.loading = false;
|
|
4244
|
+
/**
|
|
4245
|
+
* Height of the tree list container
|
|
4246
|
+
*/
|
|
4247
|
+
this.height = 'auto';
|
|
4248
|
+
/**
|
|
4249
|
+
* Enable virtual scrolling
|
|
4250
|
+
*/
|
|
4251
|
+
this.scrollable = true;
|
|
4252
|
+
/**
|
|
4253
|
+
* Page size for pagination
|
|
4254
|
+
*/
|
|
4255
|
+
this.pageSize = 0;
|
|
4256
|
+
/**
|
|
4257
|
+
* Enable pagination
|
|
4258
|
+
*/
|
|
4259
|
+
this.pageable = false;
|
|
4260
|
+
/**
|
|
4261
|
+
* Current sort configuration
|
|
4262
|
+
*/
|
|
4263
|
+
this.sort = [];
|
|
4264
|
+
this.selectionChange = new EventEmitter();
|
|
4265
|
+
this.expand = new EventEmitter();
|
|
4266
|
+
this.collapse = new EventEmitter();
|
|
4267
|
+
this.sortChange = new EventEmitter();
|
|
4268
|
+
this.filterChange = new EventEmitter();
|
|
4269
|
+
this.pageChange = new EventEmitter();
|
|
4270
|
+
this.add = new EventEmitter();
|
|
4271
|
+
this.edit = new EventEmitter();
|
|
4272
|
+
this.cancelEvent = new EventEmitter();
|
|
4273
|
+
this.save = new EventEmitter();
|
|
4274
|
+
this.remove = new EventEmitter();
|
|
4275
|
+
this.cellClick = new EventEmitter();
|
|
4276
|
+
this.cellClose = new EventEmitter();
|
|
4277
|
+
}
|
|
4278
|
+
/**
|
|
4279
|
+
* Generates CSS classes for the tree-list container element based on current state.
|
|
4280
|
+
* Applies conditional classes for loading state and editing mode to enable appropriate styling.
|
|
4281
|
+
*
|
|
4282
|
+
* @returns A space-separated string of CSS class names to apply to the container
|
|
4283
|
+
*/
|
|
4284
|
+
getTreeListClasses() {
|
|
4285
|
+
const classes = ['lib-tree-list'];
|
|
4286
|
+
if (this.loading) {
|
|
4287
|
+
classes.push('lib-tree-list--loading');
|
|
4288
|
+
}
|
|
4289
|
+
if (this.editable) {
|
|
4290
|
+
classes.push('lib-tree-list--editable');
|
|
4291
|
+
}
|
|
4292
|
+
return classes.join(' ');
|
|
4293
|
+
}
|
|
4294
|
+
/**
|
|
4295
|
+
* Handles selection state changes when users select or deselect tree-list rows.
|
|
4296
|
+
* Propagates the selection event to parent components for external handling.
|
|
4297
|
+
*
|
|
4298
|
+
* @param event - The selection change event containing selected items and metadata
|
|
4299
|
+
*/
|
|
4300
|
+
onSelectionChange(event) {
|
|
4301
|
+
this.selectionChange.emit(event);
|
|
4302
|
+
}
|
|
4303
|
+
/**
|
|
4304
|
+
* Handles node expansion events when users expand collapsed hierarchical tree nodes.
|
|
4305
|
+
* Emits the expand event to notify parent components of the state change for potential data loading.
|
|
4306
|
+
*
|
|
4307
|
+
* @param event - The expand event containing the expanded node data and index information
|
|
4308
|
+
*/
|
|
4309
|
+
onExpand(event) {
|
|
4310
|
+
this.expand.emit(event);
|
|
4311
|
+
}
|
|
4312
|
+
/**
|
|
4313
|
+
* Handles node collapse events when users collapse expanded hierarchical tree nodes.
|
|
4314
|
+
* Emits the collapse event to notify parent components of the state change for cleanup or optimization.
|
|
4315
|
+
*
|
|
4316
|
+
* @param event - The collapse event containing the collapsed node data and index information
|
|
4317
|
+
*/
|
|
4318
|
+
onCollapse(event) {
|
|
4319
|
+
this.collapse.emit(event);
|
|
4320
|
+
}
|
|
4321
|
+
/**
|
|
4322
|
+
* Handles column sorting changes when users click on sortable column headers.
|
|
4323
|
+
* Updates the internal sort state and propagates the change to parent components for data reordering.
|
|
4324
|
+
*
|
|
4325
|
+
* @param sort - Array of sort descriptors defining field names and sort directions (asc/desc)
|
|
4326
|
+
*/
|
|
4327
|
+
onSortChange(sort) {
|
|
4328
|
+
this.sort = sort;
|
|
4329
|
+
this.sortChange.emit(sort);
|
|
4330
|
+
}
|
|
4331
|
+
/**
|
|
4332
|
+
* Handles filter criteria changes when users interact with column filters or search functionality.
|
|
4333
|
+
* Propagates filter events to parent components for server-side or client-side data filtering.
|
|
4334
|
+
*
|
|
4335
|
+
* @param filter - The filter object containing criteria, operators, and field specifications
|
|
4336
|
+
*/
|
|
4337
|
+
onFilterChange(filter) {
|
|
4338
|
+
this.filterChange.emit(filter);
|
|
4339
|
+
}
|
|
4340
|
+
/**
|
|
4341
|
+
* Handles pagination navigation when users interact with pager controls.
|
|
4342
|
+
* Propagates page change events to parent components for data loading of the requested page.
|
|
4343
|
+
*
|
|
4344
|
+
* @param event - The page change event containing skip, take, and page size information
|
|
4345
|
+
*/
|
|
4346
|
+
onPageChange(event) {
|
|
4347
|
+
this.pageChange.emit(event);
|
|
4348
|
+
}
|
|
4349
|
+
/**
|
|
4350
|
+
* Handles add/create events when users initiate creation of new tree-list items.
|
|
4351
|
+
* Propagates the add event to parent components for handling new item creation logic and validation.
|
|
4352
|
+
*
|
|
4353
|
+
* @param event - The add event containing parent item context and position information for insertion
|
|
4354
|
+
*/
|
|
4355
|
+
onAdd(event) {
|
|
4356
|
+
this.add.emit(event);
|
|
4357
|
+
}
|
|
4358
|
+
/**
|
|
4359
|
+
* Handles edit mode activation when users enter editing mode for tree-list items.
|
|
4360
|
+
* Propagates the edit event to parent components for setting up edit state and validation rules.
|
|
4361
|
+
*
|
|
4362
|
+
* @param event - The edit event containing the item data being edited and row context
|
|
4363
|
+
*/
|
|
4364
|
+
onEdit(event) {
|
|
4365
|
+
this.edit.emit(event);
|
|
4366
|
+
}
|
|
4367
|
+
/**
|
|
4368
|
+
* Handles edit cancellation when users discard changes and exit editing mode without saving.
|
|
4369
|
+
* Propagates the cancel event to parent components for cleanup and restoring original data state.
|
|
4370
|
+
*
|
|
4371
|
+
* @param event - The cancel event containing the item data that was being edited
|
|
4372
|
+
*/
|
|
4373
|
+
onCancel(event) {
|
|
4374
|
+
this.cancelEvent.emit(event);
|
|
4375
|
+
}
|
|
4376
|
+
/**
|
|
4377
|
+
* Handles save operations when users commit changes after editing tree-list items.
|
|
4378
|
+
* Propagates the save event to parent components for validation, persistence, and data refresh.
|
|
4379
|
+
*
|
|
4380
|
+
* @param event - The save event containing the modified item data and original values for comparison
|
|
4381
|
+
*/
|
|
4382
|
+
onSave(event) {
|
|
4383
|
+
this.save.emit(event);
|
|
4384
|
+
}
|
|
4385
|
+
/**
|
|
4386
|
+
* Handles delete/removal operations when users confirm deletion of tree-list items.
|
|
4387
|
+
* Propagates the remove event to parent components for confirmation dialogs and data deletion.
|
|
4388
|
+
*
|
|
4389
|
+
* @param event - The remove event containing the item data to be deleted and hierarchical context
|
|
4390
|
+
*/
|
|
4391
|
+
onRemove(event) {
|
|
4392
|
+
this.remove.emit(event);
|
|
4393
|
+
}
|
|
4394
|
+
/**
|
|
4395
|
+
* Handles individual cell click events within the tree-list for custom interaction handling.
|
|
4396
|
+
* Propagates cell click events to parent components for custom actions, navigation, or cell-specific logic.
|
|
4397
|
+
*
|
|
4398
|
+
* @param event - The cell click event containing cell data, coordinates, and column information
|
|
4399
|
+
*/
|
|
4400
|
+
onCellClick(event) {
|
|
4401
|
+
this.cellClick.emit(event);
|
|
4402
|
+
}
|
|
4403
|
+
/**
|
|
4404
|
+
* Handles cell editor close events when users exit cell editing mode.
|
|
4405
|
+
* Propagates cell close events to parent components for cleanup and state management.
|
|
4406
|
+
*
|
|
4407
|
+
* @param event - The cell close event containing editor state and any pending changes
|
|
4408
|
+
*/
|
|
4409
|
+
onCellClose(event) {
|
|
4410
|
+
this.cellClose.emit(event);
|
|
4411
|
+
}
|
|
4412
|
+
/**
|
|
4413
|
+
* Handles edit button clicks from command column or custom templates to initiate item editing.
|
|
4414
|
+
* Creates and emits a properly formatted EditEvent to notify parent components of edit intention.
|
|
4415
|
+
* This method bridges custom UI elements with the standard Kendo TreeList editing workflow.
|
|
4416
|
+
*
|
|
4417
|
+
* @param dataItem - The tree-list item data object to be edited
|
|
4418
|
+
*/
|
|
4419
|
+
onEditButtonClick(dataItem) {
|
|
4420
|
+
// Emit the edit event to let parent component handle the editing logic
|
|
4421
|
+
this.edit.emit({ dataItem });
|
|
4422
|
+
}
|
|
4423
|
+
/**
|
|
4424
|
+
* Handles remove button clicks from command column or custom templates to initiate item deletion.
|
|
4425
|
+
* Creates and emits a properly formatted RemoveEvent to notify parent components of deletion request.
|
|
4426
|
+
* This method bridges custom UI elements with the standard Kendo TreeList removal workflow.
|
|
4427
|
+
*
|
|
4428
|
+
* @param dataItem - The tree-list item data object to be deleted
|
|
4429
|
+
*/
|
|
4430
|
+
onRemoveButtonClick(dataItem) {
|
|
4431
|
+
// Emit the remove event to let parent component handle the removal logic
|
|
4432
|
+
this.remove.emit({ dataItem });
|
|
4433
|
+
}
|
|
4434
|
+
/**
|
|
4435
|
+
* Recursively expands all collapsible nodes in the tree-list hierarchy.
|
|
4436
|
+
* Iterates through all top-level data items and uses the Kendo TreeList API to expand each node,
|
|
4437
|
+
* which triggers cascading expansion of all child nodes. Safely handles cases where the
|
|
4438
|
+
* TreeList element is not yet initialized.
|
|
4439
|
+
*/
|
|
4440
|
+
expandAll() {
|
|
4441
|
+
if (this.treeListElement) {
|
|
4442
|
+
// TreeList doesn't have expandAll, so we implement custom logic
|
|
4443
|
+
this.data.forEach(item => {
|
|
4444
|
+
if (this.treeListElement) {
|
|
4445
|
+
this.treeListElement.expand(item);
|
|
4446
|
+
}
|
|
4447
|
+
});
|
|
4448
|
+
}
|
|
4449
|
+
}
|
|
4450
|
+
/**
|
|
4451
|
+
* Recursively collapses all expandable nodes in the tree-list hierarchy.
|
|
4452
|
+
* Iterates through all top-level data items and uses the Kendo TreeList API to collapse each node,
|
|
4453
|
+
* which triggers cascading collapse of all child nodes. Safely handles cases where the
|
|
4454
|
+
* TreeList element is not yet initialized.
|
|
4455
|
+
*/
|
|
4456
|
+
collapseAll() {
|
|
4457
|
+
if (this.treeListElement) {
|
|
4458
|
+
// TreeList doesn't have collapseAll, so we implement custom logic
|
|
4459
|
+
this.data.forEach(item => {
|
|
4460
|
+
if (this.treeListElement) {
|
|
4461
|
+
this.treeListElement.collapse(item);
|
|
4462
|
+
}
|
|
4463
|
+
});
|
|
4464
|
+
}
|
|
4465
|
+
}
|
|
4466
|
+
/**
|
|
4467
|
+
* Provides a tracking function for Angular's ngFor optimization when rendering column definitions.
|
|
4468
|
+
* Returns a unique identifier for each column to help Angular efficiently track and update
|
|
4469
|
+
* column elements during re-rendering. Falls back to array index if no field property exists.
|
|
4470
|
+
*
|
|
4471
|
+
* @param index - The array index of the column in the columns collection
|
|
4472
|
+
* @param column - The column configuration object containing field and other properties
|
|
4473
|
+
* @returns A unique identifier for the column (field name or array index)
|
|
4474
|
+
*/
|
|
4475
|
+
trackByColumn(index, column) {
|
|
4476
|
+
return column.field || index;
|
|
4477
|
+
}
|
|
4478
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4479
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TreeListComponent, isStandalone: true, selector: "lib-tree-list", inputs: { data: "data", columns: "columns", idField: "idField", childrenField: "childrenField", parentIdField: "parentIdField", bindingType: "bindingType", fetchChildren: "fetchChildren", hasChildren: "hasChildren", isExpanded: "isExpanded", selectable: "selectable", sortable: "sortable", filterable: "filterable", resizable: "resizable", reorderable: "reorderable", editable: "editable", loading: "loading", height: "height", scrollable: "scrollable", pageSize: "pageSize", pageable: "pageable", sort: "sort", cellTemplate: "cellTemplate", headerTemplate: "headerTemplate", footerTemplate: "footerTemplate", editTemplate: "editTemplate", commandTemplate: "commandTemplate", noRecordsTemplate: "noRecordsTemplate", loadingTemplate: "loadingTemplate" }, outputs: { selectionChange: "selectionChange", expand: "expand", collapse: "collapse", sortChange: "sortChange", filterChange: "filterChange", pageChange: "pageChange", add: "add", edit: "edit", cancelEvent: "cancelEvent", save: "save", remove: "remove", cellClick: "cellClick", cellClose: "cellClose" }, viewQueries: [{ propertyName: "treeListElement", first: true, predicate: ["treeListElement"], descendants: true }], ngImport: i0, template: "<div [class]=\"getTreeListClasses()\">\n <!-- Enhanced TreeList with Hierarchy Binding -->\n <kendo-treelist *ngIf=\"bindingType === 'hierarchy'\" [kendoTreeListHierarchyBinding]=\"data\"\n [childrenField]=\"childrenField\" [idField]=\"idField\" class=\"lib-tree-list__kendo-treelist\" [selectable]=\"selectable\"\n (selectionChange)=\"onSelectionChange($event)\" [sortable]=\"sortable\" [sort]=\"sort\"\n (sortChange)=\"onSortChange($event)\" [filterable]=\"filterable\" (filterChange)=\"onFilterChange($event)\"\n [pageable]=\"pageable\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\" [resizable]=\"resizable\"\n [reorderable]=\"reorderable\" [height]=\"height\" [scrollable]=\"scrollable\" [navigable]=\"editable\"\n (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\" (cellClick)=\"onCellClick($event)\"\n (cellClose)=\"onCellClose($event)\" (add)=\"onAdd($event)\" (edit)=\"onEdit($event)\" (cancel)=\"onCancel($event)\"\n (save)=\"onSave($event)\" (remove)=\"onRemove($event)\" kendoTreeListExpandable [initiallyExpanded]=\"true\"\n kendoTreeListSelectable>\n\n <!-- Dynamic columns with templates -->\n <kendo-treelist-column *ngFor=\"let column of columns; trackBy: trackByColumn; let i = index\" [field]=\"column.field\"\n [title]=\"column.title || column.field\" [width]=\"column.width\" [locked]=\"column.locked\" [hidden]=\"column.hidden\"\n [sortable]=\"column.sortable !== undefined ? column.sortable : sortable\"\n [filterable]=\"column.filterable !== undefined ? column.filterable : filterable\"\n [editable]=\"column.editable !== undefined ? column.editable : editable\" [format]=\"column.format\"\n [expandable]=\"i === 0\">\n\n <!-- Custom cell template -->\n <ng-template *ngIf=\"column.template\" kendoTreeListCellTemplate let-dataItem=\"dataItem\" let-rowIndex=\"rowIndex\"\n let-columnIndex=\"columnIndex\">\n <ng-container [ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n rowIndex: rowIndex, \n columnIndex: columnIndex,\n field: column.field,\n value: dataItem[column.field]\n }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom header template -->\n <ng-template *ngIf=\"column.headerTemplate\" kendoTreeListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"column.headerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom footer template -->\n <ng-template *ngIf=\"column.footerTemplate\" kendoTreeListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"column.footerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Edit template for inline editing -->\n <ng-template *ngIf=\"editable && column.editTemplate\" kendoTreeListEditTemplate let-dataItem=\"dataItem\"\n let-formGroup=\"formGroup\">\n <ng-container [ngTemplateOutlet]=\"column.editTemplate\" [ngTemplateOutletContext]=\"{ \n dataItem: dataItem, \n formGroup: formGroup,\n field: column.field\n }\">\n </ng-container>\n </ng-template>\n </kendo-treelist-column>\n\n <!-- Command column for editing actions -->\n <kendo-treelist-command-column *ngIf=\"editable\" title=\"Actions\" width=\"150\" [locked]=\"false\">\n <ng-template kendoTreeListCellTemplate let-isNew=\"isNew\" let-dataItem=\"dataItem\" let-cellContext=\"cellContext\">\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"edit\" size=\"medium\" fillMode=\"flat\" themeColor=\"primary\"\n [iconButton]=\"true\" (buttonClick)=\"onEditButtonClick(dataItem)\" [attr.aria-label]=\"'Edit ' + dataItem.name\">\n </lib-button>\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"delete\" size=\"medium\" fillMode=\"flat\" themeColor=\"error\"\n [iconButton]=\"true\" (buttonClick)=\"onRemoveButtonClick(dataItem)\"\n [attr.aria-label]=\"'Delete ' + dataItem.name\">\n </lib-button>\n </ng-template>\n </kendo-treelist-command-column>\n </kendo-treelist>\n\n <!-- Enhanced TreeList with Flat Binding -->\n <kendo-treelist *ngIf=\"bindingType === 'flat'\" [kendoTreeListFlatBinding]=\"data\" [parentIdField]=\"parentIdField\"\n [idField]=\"idField\" class=\"lib-tree-list__kendo-treelist\" [selectable]=\"selectable\"\n (selectionChange)=\"onSelectionChange($event)\" [sortable]=\"sortable\" [sort]=\"sort\"\n (sortChange)=\"onSortChange($event)\" [filterable]=\"filterable\" (filterChange)=\"onFilterChange($event)\"\n [pageable]=\"pageable\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\" [resizable]=\"resizable\"\n [reorderable]=\"reorderable\" [height]=\"height\" [scrollable]=\"scrollable\" [navigable]=\"editable\"\n (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\" (cellClick)=\"onCellClick($event)\"\n (cellClose)=\"onCellClose($event)\" (add)=\"onAdd($event)\" (edit)=\"onEdit($event)\" (cancel)=\"onCancel($event)\"\n (save)=\"onSave($event)\" (remove)=\"onRemove($event)\">\n\n <!-- Dynamic columns with templates for flat binding -->\n <kendo-treelist-column *ngFor=\"let column of columns; trackBy: trackByColumn; let i = index\" [field]=\"column.field\"\n [title]=\"column.title || column.field\" [width]=\"column.width\" [locked]=\"column.locked\" [hidden]=\"column.hidden\"\n [sortable]=\"column.sortable !== undefined ? column.sortable : sortable\"\n [filterable]=\"column.filterable !== undefined ? column.filterable : filterable\"\n [editable]=\"column.editable !== undefined ? column.editable : editable\" [format]=\"column.format\"\n [expandable]=\"i === 0\">\n\n <!-- Custom cell template -->\n <ng-template *ngIf=\"column.template\" kendoTreeListCellTemplate let-dataItem=\"dataItem\" let-rowIndex=\"rowIndex\"\n let-columnIndex=\"columnIndex\">\n <ng-container [ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n rowIndex: rowIndex, \n columnIndex: columnIndex,\n field: column.field,\n value: dataItem[column.field]\n }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom header template -->\n <ng-template *ngIf=\"column.headerTemplate\" kendoTreeListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"column.headerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom footer template -->\n <ng-template *ngIf=\"column.footerTemplate\" kendoTreeListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"column.footerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Edit template for inline editing -->\n <ng-template *ngIf=\"editable && column.editTemplate\" kendoTreeListEditTemplate let-dataItem=\"dataItem\"\n let-formGroup=\"formGroup\">\n <ng-container [ngTemplateOutlet]=\"column.editTemplate\" [ngTemplateOutletContext]=\"{ \n dataItem: dataItem, \n formGroup: formGroup,\n field: column.field\n }\">\n </ng-container>\n </ng-template>\n </kendo-treelist-column>\n\n <!-- Command column for editing actions -->\n <kendo-treelist-command-column *ngIf=\"editable\" title=\"Actions\" width=\"150\" [locked]=\"false\">\n <ng-template kendoTreeListCellTemplate let-isNew=\"isNew\" let-dataItem=\"dataItem\">\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"edit\" size=\"medium\" fillMode=\"flat\" themeColor=\"primary\"\n [iconButton]=\"true\" (buttonClick)=\"onEditButtonClick(dataItem)\" [attr.aria-label]=\"'Edit ' + dataItem.name\">\n </lib-button>\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"delete\" size=\"medium\" fillMode=\"flat\" themeColor=\"error\"\n [iconButton]=\"true\" (buttonClick)=\"onRemoveButtonClick(dataItem)\"\n [attr.aria-label]=\"'Delete ' + dataItem.name\">\n </lib-button>\n </ng-template>\n </kendo-treelist-command-column>\n </kendo-treelist>\n\n <!-- Loading indicator -->\n <div *ngIf=\"loading\" class=\"lib-tree-list__loading\">\n <lib-loader size=\"medium\" type=\"pulsing\" themeColor=\"primary\"></lib-loader>\n </div>\n</div>\n", styles: [".lib-tree-list{position:relative;width:100%}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TreeListModule$1 }, { kind: "component", type: i2$7.TreeListComponent, selector: "kendo-treelist", inputs: ["aria-label", "data", "pageSize", "height", "rowHeight", "skip", "scrollable", "sort", "trackBy", "filter", "virtualColumns", "filterable", "sortable", "pageable", "navigable", "autoSize", "rowClass", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "idField", "selectable", "isSelected", "rowReorderable", "columns", "fetchChildren", "hasChildren", "isExpanded"], outputs: ["selectionChange", "filterChange", "pageChange", "sortChange", "dataStateChange", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "scrollBottom", "contentScroll", "expand", "collapse", "expandStateChange", "rowReorder"], exportAs: ["kendoTreeList"] }, { kind: "directive", type: i2$7.HierarchyBindingDirective, selector: "[kendoTreeListHierarchyBinding]", inputs: ["childrenField", "kendoTreeListHierarchyBinding"], exportAs: ["kendoTreeListHierarchyBinding"] }, { kind: "directive", type: i2$7.FlatBindingDirective, selector: "[kendoTreeListFlatBinding]", inputs: ["parentIdField", "idField", "kendoTreeListFlatBinding"], exportAs: ["kendoTreeListFlatBinding"] }, { kind: "directive", type: i2$7.ExpandableDirective, selector: "[kendoTreeListExpandable]", inputs: ["expandedKeys", "initiallyExpanded", "expandBy"], outputs: ["expandedKeysChange"], exportAs: ["kendoTreeListExpandable"] }, { kind: "directive", type: i2$7.SelectableDirective, selector: "[kendoTreeListSelectable]", inputs: ["selectable", "selectedItems", "itemKey", "columnKey"], outputs: ["selectedItemsChange"], exportAs: ["kendoTreeListSelectable"] }, { kind: "component", type: i2$7.ColumnComponent, selector: "kendo-treelist-column", inputs: ["expandable", "field", "format", "sortable", "editor", "filter", "filterable", "editable"] }, { kind: "component", type: i2$7.CommandColumnComponent, selector: "kendo-treelist-command-column" }, { kind: "directive", type: i2$7.CellTemplateDirective, selector: "[kendoTreeListCellTemplate]" }, { kind: "directive", type: i2$7.EditTemplateDirective, selector: "[kendoTreeListEditTemplate]" }, { kind: "directive", type: i2$7.FooterTemplateDirective, selector: "[kendoTreeListFooterTemplate]" }, { kind: "directive", type: i2$7.HeaderTemplateDirective, selector: "[kendoTreeListHeaderTemplate]" }, { kind: "ngmodule", type: IconsModule }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["size", "rounded", "fillMode", "themeColor", "label", "iconName", "disabled", "toggleable", "iconPosition", "fontType", "width", "iconButton", "projectedIcon", "formatFn", "iconFontSize"], outputs: ["buttonClick"] }, { kind: "component", type: LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }] }); }
|
|
4480
|
+
}
|
|
4481
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeListComponent, decorators: [{
|
|
4482
|
+
type: Component,
|
|
4483
|
+
args: [{ standalone: true, selector: 'lib-tree-list', imports: [
|
|
4484
|
+
CommonModule,
|
|
4485
|
+
TreeListModule$1,
|
|
4486
|
+
IconsModule,
|
|
4487
|
+
ButtonComponent,
|
|
4488
|
+
IconComponent,
|
|
4489
|
+
LoaderComponent
|
|
4490
|
+
], template: "<div [class]=\"getTreeListClasses()\">\n <!-- Enhanced TreeList with Hierarchy Binding -->\n <kendo-treelist *ngIf=\"bindingType === 'hierarchy'\" [kendoTreeListHierarchyBinding]=\"data\"\n [childrenField]=\"childrenField\" [idField]=\"idField\" class=\"lib-tree-list__kendo-treelist\" [selectable]=\"selectable\"\n (selectionChange)=\"onSelectionChange($event)\" [sortable]=\"sortable\" [sort]=\"sort\"\n (sortChange)=\"onSortChange($event)\" [filterable]=\"filterable\" (filterChange)=\"onFilterChange($event)\"\n [pageable]=\"pageable\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\" [resizable]=\"resizable\"\n [reorderable]=\"reorderable\" [height]=\"height\" [scrollable]=\"scrollable\" [navigable]=\"editable\"\n (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\" (cellClick)=\"onCellClick($event)\"\n (cellClose)=\"onCellClose($event)\" (add)=\"onAdd($event)\" (edit)=\"onEdit($event)\" (cancel)=\"onCancel($event)\"\n (save)=\"onSave($event)\" (remove)=\"onRemove($event)\" kendoTreeListExpandable [initiallyExpanded]=\"true\"\n kendoTreeListSelectable>\n\n <!-- Dynamic columns with templates -->\n <kendo-treelist-column *ngFor=\"let column of columns; trackBy: trackByColumn; let i = index\" [field]=\"column.field\"\n [title]=\"column.title || column.field\" [width]=\"column.width\" [locked]=\"column.locked\" [hidden]=\"column.hidden\"\n [sortable]=\"column.sortable !== undefined ? column.sortable : sortable\"\n [filterable]=\"column.filterable !== undefined ? column.filterable : filterable\"\n [editable]=\"column.editable !== undefined ? column.editable : editable\" [format]=\"column.format\"\n [expandable]=\"i === 0\">\n\n <!-- Custom cell template -->\n <ng-template *ngIf=\"column.template\" kendoTreeListCellTemplate let-dataItem=\"dataItem\" let-rowIndex=\"rowIndex\"\n let-columnIndex=\"columnIndex\">\n <ng-container [ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n rowIndex: rowIndex, \n columnIndex: columnIndex,\n field: column.field,\n value: dataItem[column.field]\n }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom header template -->\n <ng-template *ngIf=\"column.headerTemplate\" kendoTreeListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"column.headerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom footer template -->\n <ng-template *ngIf=\"column.footerTemplate\" kendoTreeListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"column.footerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Edit template for inline editing -->\n <ng-template *ngIf=\"editable && column.editTemplate\" kendoTreeListEditTemplate let-dataItem=\"dataItem\"\n let-formGroup=\"formGroup\">\n <ng-container [ngTemplateOutlet]=\"column.editTemplate\" [ngTemplateOutletContext]=\"{ \n dataItem: dataItem, \n formGroup: formGroup,\n field: column.field\n }\">\n </ng-container>\n </ng-template>\n </kendo-treelist-column>\n\n <!-- Command column for editing actions -->\n <kendo-treelist-command-column *ngIf=\"editable\" title=\"Actions\" width=\"150\" [locked]=\"false\">\n <ng-template kendoTreeListCellTemplate let-isNew=\"isNew\" let-dataItem=\"dataItem\" let-cellContext=\"cellContext\">\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"edit\" size=\"medium\" fillMode=\"flat\" themeColor=\"primary\"\n [iconButton]=\"true\" (buttonClick)=\"onEditButtonClick(dataItem)\" [attr.aria-label]=\"'Edit ' + dataItem.name\">\n </lib-button>\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"delete\" size=\"medium\" fillMode=\"flat\" themeColor=\"error\"\n [iconButton]=\"true\" (buttonClick)=\"onRemoveButtonClick(dataItem)\"\n [attr.aria-label]=\"'Delete ' + dataItem.name\">\n </lib-button>\n </ng-template>\n </kendo-treelist-command-column>\n </kendo-treelist>\n\n <!-- Enhanced TreeList with Flat Binding -->\n <kendo-treelist *ngIf=\"bindingType === 'flat'\" [kendoTreeListFlatBinding]=\"data\" [parentIdField]=\"parentIdField\"\n [idField]=\"idField\" class=\"lib-tree-list__kendo-treelist\" [selectable]=\"selectable\"\n (selectionChange)=\"onSelectionChange($event)\" [sortable]=\"sortable\" [sort]=\"sort\"\n (sortChange)=\"onSortChange($event)\" [filterable]=\"filterable\" (filterChange)=\"onFilterChange($event)\"\n [pageable]=\"pageable\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\" [resizable]=\"resizable\"\n [reorderable]=\"reorderable\" [height]=\"height\" [scrollable]=\"scrollable\" [navigable]=\"editable\"\n (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\" (cellClick)=\"onCellClick($event)\"\n (cellClose)=\"onCellClose($event)\" (add)=\"onAdd($event)\" (edit)=\"onEdit($event)\" (cancel)=\"onCancel($event)\"\n (save)=\"onSave($event)\" (remove)=\"onRemove($event)\">\n\n <!-- Dynamic columns with templates for flat binding -->\n <kendo-treelist-column *ngFor=\"let column of columns; trackBy: trackByColumn; let i = index\" [field]=\"column.field\"\n [title]=\"column.title || column.field\" [width]=\"column.width\" [locked]=\"column.locked\" [hidden]=\"column.hidden\"\n [sortable]=\"column.sortable !== undefined ? column.sortable : sortable\"\n [filterable]=\"column.filterable !== undefined ? column.filterable : filterable\"\n [editable]=\"column.editable !== undefined ? column.editable : editable\" [format]=\"column.format\"\n [expandable]=\"i === 0\">\n\n <!-- Custom cell template -->\n <ng-template *ngIf=\"column.template\" kendoTreeListCellTemplate let-dataItem=\"dataItem\" let-rowIndex=\"rowIndex\"\n let-columnIndex=\"columnIndex\">\n <ng-container [ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n rowIndex: rowIndex, \n columnIndex: columnIndex,\n field: column.field,\n value: dataItem[column.field]\n }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom header template -->\n <ng-template *ngIf=\"column.headerTemplate\" kendoTreeListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"column.headerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Custom footer template -->\n <ng-template *ngIf=\"column.footerTemplate\" kendoTreeListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"column.footerTemplate\" [ngTemplateOutletContext]=\"{ column: column }\">\n </ng-container>\n </ng-template>\n\n <!-- Edit template for inline editing -->\n <ng-template *ngIf=\"editable && column.editTemplate\" kendoTreeListEditTemplate let-dataItem=\"dataItem\"\n let-formGroup=\"formGroup\">\n <ng-container [ngTemplateOutlet]=\"column.editTemplate\" [ngTemplateOutletContext]=\"{ \n dataItem: dataItem, \n formGroup: formGroup,\n field: column.field\n }\">\n </ng-container>\n </ng-template>\n </kendo-treelist-column>\n\n <!-- Command column for editing actions -->\n <kendo-treelist-command-column *ngIf=\"editable\" title=\"Actions\" width=\"150\" [locked]=\"false\">\n <ng-template kendoTreeListCellTemplate let-isNew=\"isNew\" let-dataItem=\"dataItem\">\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"edit\" size=\"medium\" fillMode=\"flat\" themeColor=\"primary\"\n [iconButton]=\"true\" (buttonClick)=\"onEditButtonClick(dataItem)\" [attr.aria-label]=\"'Edit ' + dataItem.name\">\n </lib-button>\n <lib-button *ngIf=\"!isNew\" label=\"\" iconName=\"delete\" size=\"medium\" fillMode=\"flat\" themeColor=\"error\"\n [iconButton]=\"true\" (buttonClick)=\"onRemoveButtonClick(dataItem)\"\n [attr.aria-label]=\"'Delete ' + dataItem.name\">\n </lib-button>\n </ng-template>\n </kendo-treelist-command-column>\n </kendo-treelist>\n\n <!-- Loading indicator -->\n <div *ngIf=\"loading\" class=\"lib-tree-list__loading\">\n <lib-loader size=\"medium\" type=\"pulsing\" themeColor=\"primary\"></lib-loader>\n </div>\n</div>\n", styles: [".lib-tree-list{position:relative;width:100%}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}\n"] }]
|
|
4491
|
+
}], propDecorators: { treeListElement: [{
|
|
4492
|
+
type: ViewChild,
|
|
4493
|
+
args: ['treeListElement', { static: false }]
|
|
4494
|
+
}], data: [{
|
|
4495
|
+
type: Input
|
|
4496
|
+
}], columns: [{
|
|
4497
|
+
type: Input
|
|
4498
|
+
}], idField: [{
|
|
4499
|
+
type: Input
|
|
4500
|
+
}], childrenField: [{
|
|
4501
|
+
type: Input
|
|
4502
|
+
}], parentIdField: [{
|
|
4503
|
+
type: Input
|
|
4504
|
+
}], bindingType: [{
|
|
4505
|
+
type: Input
|
|
4506
|
+
}], fetchChildren: [{
|
|
4507
|
+
type: Input
|
|
4508
|
+
}], hasChildren: [{
|
|
4509
|
+
type: Input
|
|
4510
|
+
}], isExpanded: [{
|
|
4511
|
+
type: Input
|
|
4512
|
+
}], selectable: [{
|
|
4513
|
+
type: Input
|
|
4514
|
+
}], sortable: [{
|
|
4515
|
+
type: Input
|
|
4516
|
+
}], filterable: [{
|
|
4517
|
+
type: Input
|
|
4518
|
+
}], resizable: [{
|
|
4519
|
+
type: Input
|
|
4520
|
+
}], reorderable: [{
|
|
4521
|
+
type: Input
|
|
4522
|
+
}], editable: [{
|
|
4523
|
+
type: Input
|
|
4524
|
+
}], loading: [{
|
|
4525
|
+
type: Input
|
|
4526
|
+
}], height: [{
|
|
4527
|
+
type: Input
|
|
4528
|
+
}], scrollable: [{
|
|
4529
|
+
type: Input
|
|
4530
|
+
}], pageSize: [{
|
|
4531
|
+
type: Input
|
|
4532
|
+
}], pageable: [{
|
|
4533
|
+
type: Input
|
|
4534
|
+
}], sort: [{
|
|
4535
|
+
type: Input
|
|
4536
|
+
}], cellTemplate: [{
|
|
4537
|
+
type: Input
|
|
4538
|
+
}], headerTemplate: [{
|
|
4539
|
+
type: Input
|
|
4540
|
+
}], footerTemplate: [{
|
|
4541
|
+
type: Input
|
|
4542
|
+
}], editTemplate: [{
|
|
4543
|
+
type: Input
|
|
4544
|
+
}], commandTemplate: [{
|
|
4545
|
+
type: Input
|
|
4546
|
+
}], noRecordsTemplate: [{
|
|
4547
|
+
type: Input
|
|
4548
|
+
}], loadingTemplate: [{
|
|
4549
|
+
type: Input
|
|
4550
|
+
}], selectionChange: [{
|
|
4551
|
+
type: Output
|
|
4552
|
+
}], expand: [{
|
|
4553
|
+
type: Output
|
|
4554
|
+
}], collapse: [{
|
|
4555
|
+
type: Output
|
|
4556
|
+
}], sortChange: [{
|
|
4557
|
+
type: Output
|
|
4558
|
+
}], filterChange: [{
|
|
4559
|
+
type: Output
|
|
4560
|
+
}], pageChange: [{
|
|
4561
|
+
type: Output
|
|
4562
|
+
}], add: [{
|
|
4563
|
+
type: Output
|
|
4564
|
+
}], edit: [{
|
|
4565
|
+
type: Output
|
|
4566
|
+
}], cancelEvent: [{
|
|
4567
|
+
type: Output
|
|
4568
|
+
}], save: [{
|
|
4569
|
+
type: Output
|
|
4570
|
+
}], remove: [{
|
|
4571
|
+
type: Output
|
|
4572
|
+
}], cellClick: [{
|
|
4573
|
+
type: Output
|
|
4574
|
+
}], cellClose: [{
|
|
4575
|
+
type: Output
|
|
4576
|
+
}] } });
|
|
4577
|
+
|
|
4578
|
+
class TreeListModule {
|
|
4579
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4580
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TreeListModule, imports: [TreeListComponent,
|
|
4581
|
+
CommonModule,
|
|
4582
|
+
TreeListModule$1,
|
|
4583
|
+
IconsModule,
|
|
4584
|
+
ButtonModule,
|
|
4585
|
+
IconModule,
|
|
4586
|
+
LoaderModule], exports: [TreeListComponent] }); }
|
|
4587
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeListModule, imports: [TreeListComponent,
|
|
4588
|
+
CommonModule,
|
|
4589
|
+
TreeListModule$1,
|
|
4590
|
+
IconsModule,
|
|
4591
|
+
ButtonModule,
|
|
4592
|
+
IconModule,
|
|
4593
|
+
LoaderModule] }); }
|
|
4594
|
+
}
|
|
4595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeListModule, decorators: [{
|
|
4596
|
+
type: NgModule,
|
|
4597
|
+
args: [{
|
|
4598
|
+
imports: [
|
|
4599
|
+
TreeListComponent,
|
|
4600
|
+
CommonModule,
|
|
4601
|
+
TreeListModule$1,
|
|
4602
|
+
IconsModule,
|
|
4603
|
+
ButtonModule,
|
|
4604
|
+
IconModule,
|
|
4605
|
+
LoaderModule
|
|
4606
|
+
],
|
|
4607
|
+
exports: [
|
|
4608
|
+
TreeListComponent
|
|
4609
|
+
]
|
|
4610
|
+
}]
|
|
4611
|
+
}] });
|
|
4612
|
+
|
|
4613
|
+
/**
|
|
4614
|
+
* Custom TreeView component that wraps Kendo's TreeView with design system styling.
|
|
4615
|
+
*
|
|
4616
|
+
* This component provides a hierarchical tree structure for displaying and navigating data.
|
|
4617
|
+
* It supports selection, expansion, icons, and custom templates.
|
|
4618
|
+
*/
|
|
4619
|
+
class TreeViewComponent {
|
|
4620
|
+
constructor() {
|
|
4621
|
+
/**
|
|
4622
|
+
* The data source for the tree view
|
|
4623
|
+
*/
|
|
4624
|
+
this.data = [];
|
|
4625
|
+
// Basic Properties
|
|
4626
|
+
this.selectable = false;
|
|
4627
|
+
this.filterable = false;
|
|
4628
|
+
this.checkboxes = false;
|
|
4629
|
+
this.checkable = false;
|
|
4630
|
+
this.dragAndDrop = false;
|
|
4631
|
+
this.expandable = true;
|
|
4632
|
+
this.loading = false;
|
|
4633
|
+
this.animate = true;
|
|
4634
|
+
this.size = 'medium';
|
|
4635
|
+
// Field Configuration
|
|
4636
|
+
this.textField = 'text';
|
|
4637
|
+
this.childrenField = 'children';
|
|
4638
|
+
this.hasChildrenField = 'hasChildren';
|
|
4639
|
+
this.expandedField = 'expanded';
|
|
4640
|
+
this.selectedField = 'selected';
|
|
4641
|
+
this.disabledField = 'disabled';
|
|
4642
|
+
this.checkedField = 'checked';
|
|
4643
|
+
this.iconClassField = 'iconClass';
|
|
4644
|
+
this.iconField = 'icon';
|
|
4645
|
+
this.imageUrlField = 'imageUrl';
|
|
4646
|
+
this.spriteCssClassField = 'spriteCssClass';
|
|
4647
|
+
// Selection and Expansion
|
|
4648
|
+
this.disabledKeys = [];
|
|
4649
|
+
this.expandBy = ''; //if expandBy is empty, expandedKeys will use index to track expansion. Otherwise, it will use the field name to decide the expandedKeys.
|
|
4650
|
+
this.expandedKeys = [];
|
|
4651
|
+
this.selectedKeys = [];
|
|
4652
|
+
this.checkedKeys = [];
|
|
4653
|
+
this.expandDisabledNodes = false;
|
|
4654
|
+
this.disableNodes = false;
|
|
4655
|
+
// Checkbox Configuration
|
|
4656
|
+
this.enableCheck = false;
|
|
4657
|
+
this.checkChildren = false;
|
|
4658
|
+
this.checkDisabledChildren = false;
|
|
4659
|
+
this.checkParents = false;
|
|
4660
|
+
this.checkOnClick = false;
|
|
4661
|
+
this.uncheckCollapsedChildren = false;
|
|
4662
|
+
this.checkMode = "multiple";
|
|
4663
|
+
this.pageSize = 0;
|
|
4664
|
+
this.loadOnDemand = false;
|
|
4665
|
+
// Filtering
|
|
4666
|
+
this.filter = '';
|
|
4667
|
+
// Keyboard Navigation
|
|
4668
|
+
this.navigable = true;
|
|
4669
|
+
// Basic Events
|
|
4670
|
+
this.selectionChange = new EventEmitter();
|
|
4671
|
+
this.expand = new EventEmitter();
|
|
4672
|
+
this.collapse = new EventEmitter();
|
|
4673
|
+
this.checkedChange = new EventEmitter();
|
|
4674
|
+
this.nodeClick = new EventEmitter();
|
|
4675
|
+
this.nodeDblClick = new EventEmitter();
|
|
4676
|
+
// Drag and Drop Events
|
|
4677
|
+
this.nodeDragStart = new EventEmitter();
|
|
4678
|
+
this.nodeDrag = new EventEmitter();
|
|
4679
|
+
this.nodeDrop = new EventEmitter();
|
|
4680
|
+
this.nodeDragEnd = new EventEmitter();
|
|
4681
|
+
this.addItem = new EventEmitter();
|
|
4682
|
+
this.removeItem = new EventEmitter();
|
|
4683
|
+
// Key Change Events (Two-way binding support)
|
|
4684
|
+
this.expandedKeysChange = new EventEmitter();
|
|
4685
|
+
this.selectedKeysChange = new EventEmitter();
|
|
4686
|
+
this.checkedKeysChange = new EventEmitter();
|
|
4687
|
+
// Filter Events
|
|
4688
|
+
this.filterChange = new EventEmitter();
|
|
4689
|
+
// Load More Events
|
|
4690
|
+
this.loadMore = new EventEmitter();
|
|
4691
|
+
// Children Loading Events
|
|
4692
|
+
this.childrenLoaded = new EventEmitter();
|
|
4693
|
+
/**
|
|
4694
|
+
* Currently selected items
|
|
4695
|
+
*/
|
|
4696
|
+
this.selectedItems = [];
|
|
4697
|
+
/**
|
|
4698
|
+
* Currently checked items
|
|
4699
|
+
*/
|
|
4700
|
+
this.checkedItems = [];
|
|
4701
|
+
/**
|
|
4702
|
+
* Extracts and returns child items from a tree node using the configured children field.
|
|
4703
|
+
* Provides a standardized way for the Kendo TreeView to access hierarchical child data
|
|
4704
|
+
* regardless of the actual field name used in the data structure.
|
|
4705
|
+
*
|
|
4706
|
+
* @param dataItem - The tree node data item to extract children from
|
|
4707
|
+
* @returns Observable array of child items or empty array if no children exist
|
|
4708
|
+
*/
|
|
4709
|
+
this.children = (dataItem) => of(dataItem[this.childrenField]);
|
|
4710
|
+
/**
|
|
4711
|
+
* Determines whether a tree node has child items for proper expand/collapse icon display.
|
|
4712
|
+
* Checks for the existence of children property and logs the result for debugging purposes.
|
|
4713
|
+
* Used by the TreeView to decide whether to show expansion indicators for each node.
|
|
4714
|
+
*
|
|
4715
|
+
* @param dataItem - The tree node data item to check for children
|
|
4716
|
+
* @returns Boolean indicating whether the node has children that can be expanded
|
|
4717
|
+
*/
|
|
4718
|
+
this.hasChildren = (dataItem) => { return !!dataItem[this.childrenField]; };
|
|
4719
|
+
}
|
|
4720
|
+
/**
|
|
4721
|
+
* Generates CSS classes for the tree-view container element based on current component state.
|
|
4722
|
+
* Applies conditional styling classes to reflect loading states and enable appropriate visual feedback.
|
|
4723
|
+
*
|
|
4724
|
+
* @returns A space-separated string of CSS class names to apply to the tree-view container
|
|
4725
|
+
*/
|
|
4726
|
+
getTreeViewClasses() {
|
|
4727
|
+
const classes = ['lib-tree-view'];
|
|
4728
|
+
if (this.loading) {
|
|
4729
|
+
classes.push('lib-tree-view--loading');
|
|
4730
|
+
}
|
|
4731
|
+
return classes.join(' ');
|
|
4732
|
+
}
|
|
4733
|
+
/**
|
|
4734
|
+
* Provides comprehensive checkable settings configuration for the Kendo TreeView component.
|
|
4735
|
+
* Aggregates all checkbox-related input properties into a single configuration object
|
|
4736
|
+
* that controls checkbox behavior including parent-child relationships and interaction modes.
|
|
4737
|
+
*
|
|
4738
|
+
* @returns CheckableSettings object with all checkbox configuration options
|
|
4739
|
+
*/
|
|
4740
|
+
get checkableSettings() {
|
|
4741
|
+
return {
|
|
4742
|
+
checkChildren: this.checkChildren,
|
|
4743
|
+
checkDisabledChildren: this.checkDisabledChildren,
|
|
4744
|
+
checkParents: this.checkParents,
|
|
4745
|
+
enabled: this.enableCheck,
|
|
4746
|
+
mode: this.checkMode,
|
|
4747
|
+
checkOnClick: this.checkOnClick,
|
|
4748
|
+
uncheckCollapsedChildren: this.uncheckCollapsedChildren,
|
|
4749
|
+
};
|
|
4750
|
+
}
|
|
4751
|
+
// Event Handlers
|
|
4752
|
+
/**
|
|
4753
|
+
* Handles tree node selection changes when users select or deselect nodes.
|
|
4754
|
+
* Updates the internal selected items state and propagates the selection event
|
|
4755
|
+
* to parent components for external handling and synchronization.
|
|
4756
|
+
*
|
|
4757
|
+
* @param event - The selection change event containing the newly selected items array
|
|
4758
|
+
*/
|
|
4759
|
+
onSelectionChange(event) {
|
|
4760
|
+
this.selectedItems = event;
|
|
4761
|
+
this.selectionChange.emit(event);
|
|
4762
|
+
}
|
|
4763
|
+
/**
|
|
4764
|
+
* Handles checkbox state changes when users check or uncheck tree nodes.
|
|
4765
|
+
* Updates the internal checked items state and emits the change event to notify
|
|
4766
|
+
* parent components of the new checkbox selections for form validation or data processing.
|
|
4767
|
+
*
|
|
4768
|
+
* @param event - The checked change event containing the newly checked items array
|
|
4769
|
+
*/
|
|
4770
|
+
onCheckedChange(event) {
|
|
4771
|
+
this.checkedItems = event;
|
|
4772
|
+
this.checkedChange.emit(event);
|
|
4773
|
+
}
|
|
4774
|
+
/**
|
|
4775
|
+
* Handles tree node expansion events when users click expand icons or use keyboard navigation.
|
|
4776
|
+
* Updates the node's expanded state in the data model and emits the expand event
|
|
4777
|
+
* for parent components to handle lazy loading of child data or state persistence.
|
|
4778
|
+
*
|
|
4779
|
+
* @param event - The expand event containing the expanded node data and context information
|
|
4780
|
+
*/
|
|
4781
|
+
onExpand(event) {
|
|
4782
|
+
if (event.dataItem) {
|
|
4783
|
+
event.dataItem[this.expandedField] = true;
|
|
4784
|
+
}
|
|
4785
|
+
this.expand.emit(event);
|
|
4786
|
+
}
|
|
4787
|
+
/**
|
|
4788
|
+
* Handles tree node collapse events when users click collapse icons or use keyboard navigation.
|
|
4789
|
+
* Updates the node's expanded state in the data model and emits the collapse event
|
|
4790
|
+
* for parent components to handle state cleanup or memory optimization.
|
|
4791
|
+
*
|
|
4792
|
+
* @param event - The collapse event containing the collapsed node data and context information
|
|
4793
|
+
*/
|
|
4794
|
+
onCollapse(event) {
|
|
4795
|
+
if (event.dataItem) {
|
|
4796
|
+
event.dataItem[this.expandedField] = false;
|
|
4797
|
+
}
|
|
4798
|
+
this.collapse.emit(event);
|
|
4799
|
+
}
|
|
4800
|
+
/**
|
|
4801
|
+
* Handles single-click events on tree nodes for custom interaction handling.
|
|
4802
|
+
* Propagates click events to parent components for navigation, selection logic,
|
|
4803
|
+
* or custom actions based on the clicked node's data and context.
|
|
4804
|
+
*
|
|
4805
|
+
* @param event - The node click event containing clicked node data and mouse event details
|
|
4806
|
+
*/
|
|
4807
|
+
onNodeClick(event) {
|
|
4808
|
+
this.nodeClick.emit(event);
|
|
4809
|
+
}
|
|
4810
|
+
/**
|
|
4811
|
+
* Handles double-click events on tree nodes for enhanced interaction patterns.
|
|
4812
|
+
* Typically used for opening detailed views, editing modes, or quick actions
|
|
4813
|
+
* that differ from single-click behavior. Emits event for parent component handling.
|
|
4814
|
+
*
|
|
4815
|
+
* @param event - The node double-click event containing node data and mouse event details
|
|
4816
|
+
*/
|
|
4817
|
+
onNodeDblClick(event) {
|
|
4818
|
+
this.nodeDblClick.emit(event);
|
|
4819
|
+
}
|
|
4820
|
+
/**
|
|
4821
|
+
* Handles the initiation of drag operations when users start dragging tree nodes.
|
|
4822
|
+
* Validates that drag-and-drop functionality is enabled before proceeding and
|
|
4823
|
+
* emits the drag start event for parent components to handle drag state setup.
|
|
4824
|
+
*
|
|
4825
|
+
* @param event - The tree item drag start event containing source node and drag context
|
|
4826
|
+
*/
|
|
4827
|
+
onNodeDragStart(event) {
|
|
4828
|
+
if (!this.dragAndDrop) {
|
|
4829
|
+
return;
|
|
4830
|
+
}
|
|
4831
|
+
this.nodeDragStart.emit(event);
|
|
4832
|
+
}
|
|
4833
|
+
/**
|
|
4834
|
+
* Handles ongoing drag operations as users move nodes during drag-and-drop actions.
|
|
4835
|
+
* Provides real-time feedback and validation during the drag process, allowing
|
|
4836
|
+
* parent components to update UI indicators or validate drop targets.
|
|
4837
|
+
*
|
|
4838
|
+
* @param event - The tree item drag event containing current drag position and target information
|
|
4839
|
+
*/
|
|
4840
|
+
onNodeDrag(event) {
|
|
4841
|
+
this.nodeDrag.emit(event);
|
|
4842
|
+
}
|
|
4843
|
+
/**
|
|
4844
|
+
* Handles the completion of drag operations when users finish dragging nodes.
|
|
4845
|
+
* Provides cleanup and final processing for drag-and-drop operations, allowing
|
|
4846
|
+
* parent components to finalize data updates and reset drag-related UI states.
|
|
4847
|
+
*
|
|
4848
|
+
* @param event - The tree item drag end event containing final drag state and completion context
|
|
4849
|
+
*/
|
|
4850
|
+
onNodeDragEnd(event) {
|
|
4851
|
+
this.nodeDragEnd.emit(event);
|
|
4852
|
+
}
|
|
4853
|
+
/**
|
|
4854
|
+
* Handles item addition events when new nodes are added to the tree structure.
|
|
4855
|
+
* Propagates add events to parent components for data persistence, validation,
|
|
4856
|
+
* and tree structure updates to maintain data integrity.
|
|
4857
|
+
*
|
|
4858
|
+
* @param event - The tree item add event containing new item data and insertion context
|
|
4859
|
+
*/
|
|
4860
|
+
onAddItem(event) {
|
|
4861
|
+
this.addItem.emit(event);
|
|
4862
|
+
}
|
|
4863
|
+
/**
|
|
4864
|
+
* Handles item removal events when nodes are deleted from the tree structure.
|
|
4865
|
+
* Propagates remove events to parent components for confirmation dialogs, data cleanup,
|
|
4866
|
+
* and cascading deletions of child nodes when necessary.
|
|
4867
|
+
*
|
|
4868
|
+
* @param event - The tree item remove event containing deleted item data and context
|
|
4869
|
+
*/
|
|
4870
|
+
onRemoveItem(event) {
|
|
4871
|
+
this.removeItem.emit(event);
|
|
4872
|
+
}
|
|
4873
|
+
/**
|
|
4874
|
+
* Handles expanded keys changes for two-way binding support with parent components.
|
|
4875
|
+
* Synchronizes internal expanded state with external data binding, enabling
|
|
4876
|
+
* programmatic control of tree expansion and state persistence across component updates.
|
|
4877
|
+
*
|
|
4878
|
+
* @param keys - Array of string keys representing currently expanded tree nodes
|
|
4879
|
+
*/
|
|
4880
|
+
onExpandedKeysChange(keys) {
|
|
4881
|
+
this.expandedKeys = keys;
|
|
4882
|
+
this.expandedKeysChange.emit(keys);
|
|
4883
|
+
}
|
|
4884
|
+
/**
|
|
4885
|
+
* Handles selected keys changes for two-way binding support with parent components.
|
|
4886
|
+
* Synchronizes internal selection state with external data binding, enabling
|
|
4887
|
+
* programmatic control of tree selection and form integration capabilities.
|
|
4888
|
+
*
|
|
4889
|
+
* @param keys - Array of string keys representing currently selected tree nodes
|
|
4890
|
+
*/
|
|
4891
|
+
onSelectedKeysChange(keys) {
|
|
4892
|
+
this.selectedKeys = keys;
|
|
4893
|
+
this.selectedKeysChange.emit(keys);
|
|
4894
|
+
}
|
|
4895
|
+
/**
|
|
4896
|
+
* Handles checked keys changes for two-way binding support with parent components.
|
|
4897
|
+
* Synchronizes internal checkbox state with external data binding, enabling
|
|
4898
|
+
* programmatic control of checkbox selections and form validation integration.
|
|
4899
|
+
*
|
|
4900
|
+
* @param keys - Array of string keys representing currently checked tree nodes
|
|
4901
|
+
*/
|
|
4902
|
+
onCheckedKeysChange(keys) {
|
|
4903
|
+
this.checkedKeys = keys;
|
|
4904
|
+
this.checkedKeysChange.emit(keys);
|
|
4905
|
+
}
|
|
4906
|
+
/**
|
|
4907
|
+
* Handles filter text changes when users type in search fields or apply filtering criteria.
|
|
4908
|
+
* Updates the internal filter state and propagates changes to parent components
|
|
4909
|
+
* for server-side filtering or custom search logic implementation.
|
|
4910
|
+
*
|
|
4911
|
+
* @param filter - The filter string entered by the user for tree node searching
|
|
4912
|
+
*/
|
|
4913
|
+
onFilterChange(filter) {
|
|
4914
|
+
this.filter = filter;
|
|
4915
|
+
this.filterChange.emit(filter);
|
|
4916
|
+
}
|
|
4917
|
+
/**
|
|
4918
|
+
* Handle load more event
|
|
4919
|
+
*/
|
|
4920
|
+
onLoadMore(event) {
|
|
4921
|
+
this.loadMore.emit(event);
|
|
4922
|
+
}
|
|
4923
|
+
/**
|
|
4924
|
+
* Handle children loaded event
|
|
4925
|
+
*/
|
|
4926
|
+
onChildrenLoaded(event) {
|
|
4927
|
+
this.childrenLoaded.emit(event);
|
|
4928
|
+
}
|
|
4929
|
+
// Utility Methods
|
|
4930
|
+
/**
|
|
4931
|
+
* Expand all nodes
|
|
4932
|
+
*/
|
|
4933
|
+
expandAll() {
|
|
4934
|
+
if (this.treeViewElement) {
|
|
4935
|
+
// Implementation depends on Kendo TreeView API
|
|
4936
|
+
}
|
|
4937
|
+
}
|
|
4938
|
+
/**
|
|
4939
|
+
* Get item from lookup
|
|
4940
|
+
*/
|
|
4941
|
+
itemLookup(index) {
|
|
4942
|
+
if (this.treeViewElement) {
|
|
4943
|
+
return this.treeViewElement.itemLookup(index);
|
|
4944
|
+
}
|
|
4945
|
+
return undefined;
|
|
4946
|
+
}
|
|
4947
|
+
/**
|
|
4948
|
+
* Log function for debugging events
|
|
4949
|
+
*/
|
|
4950
|
+
log(eventName, event) {
|
|
4951
|
+
console.log(`${eventName}:`, event);
|
|
4952
|
+
}
|
|
4953
|
+
/**
|
|
4954
|
+
* Handle drop event with custom logic
|
|
4955
|
+
*/
|
|
4956
|
+
handleDrop(event) {
|
|
4957
|
+
console.log('handleDrop:', event);
|
|
4958
|
+
// Add custom drop handling logic here
|
|
4959
|
+
this.nodeDrop.emit(event);
|
|
4960
|
+
}
|
|
4961
|
+
/**
|
|
4962
|
+
* Handle node drag start event
|
|
4963
|
+
*/
|
|
4964
|
+
onDragStart(event) {
|
|
4965
|
+
if (!this.dragAndDrop) {
|
|
4966
|
+
event.preventDefault();
|
|
4967
|
+
}
|
|
4968
|
+
}
|
|
4969
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4970
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TreeViewComponent, isStandalone: true, selector: "lib-tree-view", inputs: { data: "data", selectable: "selectable", filterable: "filterable", checkboxes: "checkboxes", checkable: "checkable", dragAndDrop: "dragAndDrop", expandable: "expandable", loading: "loading", animate: "animate", size: "size", textField: "textField", childrenField: "childrenField", hasChildrenField: "hasChildrenField", expandedField: "expandedField", selectedField: "selectedField", disabledField: "disabledField", checkedField: "checkedField", iconClassField: "iconClassField", iconField: "iconField", imageUrlField: "imageUrlField", spriteCssClassField: "spriteCssClassField", disabledKeys: "disabledKeys", expandBy: "expandBy", expandedKeys: "expandedKeys", selectedKeys: "selectedKeys", checkedKeys: "checkedKeys", expandDisabledNodes: "expandDisabledNodes", disableNodes: "disableNodes", enableCheck: "enableCheck", checkChildren: "checkChildren", checkDisabledChildren: "checkDisabledChildren", checkParents: "checkParents", checkOnClick: "checkOnClick", uncheckCollapsedChildren: "uncheckCollapsedChildren", checkMode: "checkMode", fetchChildren: "fetchChildren", isChecked: "isChecked", isDisabled: "isDisabled", isExpanded: "isExpanded", isSelected: "isSelected", isVisible: "isVisible", nodeTemplate: "nodeTemplate", loadMoreButtonTemplate: "loadMoreButtonTemplate", loadMoreService: "loadMoreService", pageSize: "pageSize", loadOnDemand: "loadOnDemand", filter: "filter", filterSettings: "filterSettings", navigable: "navigable", trackBy: "trackBy" }, outputs: { selectionChange: "selectionChange", expand: "expand", collapse: "collapse", checkedChange: "checkedChange", nodeClick: "nodeClick", nodeDblClick: "nodeDblClick", nodeDragStart: "nodeDragStart", nodeDrag: "nodeDrag", nodeDrop: "nodeDrop", nodeDragEnd: "nodeDragEnd", addItem: "addItem", removeItem: "removeItem", expandedKeysChange: "expandedKeysChange", selectedKeysChange: "selectedKeysChange", checkedKeysChange: "checkedKeysChange", filterChange: "filterChange", loadMore: "loadMore", childrenLoaded: "childrenLoaded" }, viewQueries: [{ propertyName: "treeViewElement", first: true, predicate: ["treeViewElement"], descendants: true }], ngImport: i0, template: "<div [class]=\"getTreeViewClasses()\">\n\n <div class=\"treeview-panel\">\n\n <ng-container [ngSwitch]=\"checkable\">\n\n <kendo-treeview #treeViewElement *ngSwitchCase=\"true\" [children]=\"children\" kendoTreeViewHierarchyBinding\n kendoTreeViewExpandable [kendoTreeViewCheckable]=\"checkableSettings\" kendoTreeViewDragAndDrop\n kendoTreeViewDragAndDropEditing [nodes]=\"data\" [textField]=\"textField\" [childrenField]=\"childrenField\"\n [filterable]=\"filterable\" [expandBy]=\"expandBy\" [(expandedKeys)]=\"expandedKeys\"\n [expandDisabledNodes]=\"expandDisabledNodes\" (selectionChange)=\"onSelectionChange($event)\"\n (checkedChange)=\"onCheckedChange($event)\" (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\"\n (nodeClick)=\"onNodeClick($event)\" (expandedKeysChange)=\"onExpandedKeysChange($event)\"\n (nodeDragStart)=\"onDragStart($event)\" (nodeDrop)=\"handleDrop($event)\" (addItem)=\"log('addItem', $event)\"\n (removeItem)=\"log('removeItem', $event)\" (nodeDragEnd)=\"log('nodeDragEnd', $event)\"\n (nodeDrag)=\"onNodeDrag($event)\" class=\"lib-tree-view__kendo-tree\" [kendoTreeViewSelectable]=\"selectable\"\n [filter]=\"filter\" [size]=\"size\" [navigable]=\"navigable\" [loadOnDemand]=\"loadOnDemand\" [trackBy]=\"trackBy\"\n [hasChildren]=\"hasChildren\" [(selectedKeys)]=\"selectedKeys\" (filterChange)=\"onFilterChange($event)\">\n\n <!-- Custom Node Template -->\n <ng-template *ngIf=\"nodeTemplate\" kendoTreeViewNodeTemplate let-dataItem=\"dataItem\" let-index=\"index\">\n <ng-container [ngTemplateOutlet]=\"nodeTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n index: index \n }\">\n </ng-container>\n </ng-template>\n\n <!-- Load More Button Template -->\n <ng-template *ngIf=\"loadMoreButtonTemplate\" kendoTreeViewLoadMoreButtonTemplate let-dataItem=\"dataItem\">\n <ng-container [ngTemplateOutlet]=\"loadMoreButtonTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem \n }\">\n </ng-container>\n </ng-template>\n\n </kendo-treeview>\n\n <!-- TreeView without checkable functionality -->\n <kendo-treeview #treeViewElement *ngSwitchDefault kendoTreeViewHierarchyBinding kendoTreeViewExpandable\n kendoTreeViewDragAndDrop kendoTreeViewDragAndDropEditing [nodes]=\"data\" [textField]=\"textField\"\n [childrenField]=\"childrenField\" [filterable]=\"filterable\" [expandBy]=\"expandBy\" [(expandedKeys)]=\"expandedKeys\"\n [expandDisabledNodes]=\"expandDisabledNodes\" (selectionChange)=\"onSelectionChange($event)\"\n (checkedChange)=\"onCheckedChange($event)\" (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\"\n (nodeClick)=\"onNodeClick($event)\" (expandedKeysChange)=\"onExpandedKeysChange($event)\"\n (nodeDragStart)=\"onDragStart($event)\" (nodeDrag)=\"onNodeDrag($event)\" (nodeDrop)=\"handleDrop($event)\"\n (addItem)=\"log('addItem', $event)\" (removeItem)=\"log('removeItem', $event)\"\n (nodeDragEnd)=\"log('nodeDragEnd', $event)\" class=\"lib-tree-view__kendo-tree\"\n [kendoTreeViewSelectable]=\"selectable\" [size]=\"size\" [navigable]=\"navigable\" [loadOnDemand]=\"loadOnDemand\"\n [trackBy]=\"trackBy\" [hasChildren]=\"hasChildren\" [(selectedKeys)]=\"selectedKeys\"\n (filterChange)=\"onFilterChange($event)\">\n\n <!-- Custom Node Template -->\n <ng-template *ngIf=\"nodeTemplate\" kendoTreeViewNodeTemplate let-dataItem=\"dataItem\" let-index=\"index\">\n <ng-container [ngTemplateOutlet]=\"nodeTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n index: index \n }\">\n </ng-container>\n </ng-template>\n\n <!-- Load More Button Template -->\n <ng-template *ngIf=\"loadMoreButtonTemplate\" kendoTreeViewLoadMoreButtonTemplate let-dataItem=\"dataItem\">\n <ng-container [ngTemplateOutlet]=\"loadMoreButtonTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem \n }\">\n </ng-container>\n </ng-template>\n\n </kendo-treeview>\n </ng-container>\n\n <!-- Loading indicator -->\n <div *ngIf=\"loading\" class=\"lib-tree-view__loading\">\n <lib-loader size=\"medium\" type=\"pulsing\" themeColor=\"primary\"></lib-loader>\n </div>\n </div>\n", styles: [".lib-tree-view{position:relative;width:100%}.lib-tree-view__loading{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background-color:#fffc}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: TreeViewModule$1 }, { kind: "component", type: i2$8.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: i2$8.NodeTemplateDirective, selector: "[kendoTreeViewNodeTemplate]" }, { kind: "directive", type: i2$8.CheckDirective, selector: "[kendoTreeViewCheckable]", inputs: ["isChecked", "checkBy", "checkedKeys", "kendoTreeViewCheckable"], outputs: ["checkedKeysChange"] }, { kind: "directive", type: i2$8.ExpandDirective, selector: "[kendoTreeViewExpandable]", inputs: ["isExpanded", "expandBy", "expandOnFilter", "expandedKeys"], outputs: ["expandedKeysChange"] }, { kind: "directive", type: i2$8.SelectDirective, selector: "[kendoTreeViewSelectable]", inputs: ["isSelected", "selectBy", "kendoTreeViewSelectable", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "directive", type: i2$8.HierarchyBindingDirective, selector: "[kendoTreeViewHierarchyBinding]", inputs: ["childrenField", "nodes", "isVisible", "loadOnDemand"] }, { kind: "directive", type: i2$8.DragAndDropDirective, selector: "[kendoTreeViewDragAndDrop]", inputs: ["allowCopy", "dropZoneTreeViews", "startDragAfter", "autoScroll"] }, { kind: "directive", type: i2$8.DragAndDropEditingDirective, selector: "[kendoTreeViewDragAndDropEditing]", inputs: ["editService"] }, { kind: "directive", type: i2$8.LoadMoreButtonTemplateDirective, selector: "[kendoTreeViewLoadMoreButtonTemplate]" }, { kind: "ngmodule", type: IconsModule }, { kind: "component", type: LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }] }); }
|
|
4971
|
+
}
|
|
4972
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeViewComponent, decorators: [{
|
|
4973
|
+
type: Component,
|
|
4974
|
+
args: [{ standalone: true, selector: 'lib-tree-view', imports: [
|
|
4975
|
+
CommonModule,
|
|
4976
|
+
TreeViewModule$1,
|
|
4977
|
+
IconsModule,
|
|
4978
|
+
ButtonComponent,
|
|
4979
|
+
IconComponent,
|
|
4980
|
+
LoaderComponent
|
|
4981
|
+
], template: "<div [class]=\"getTreeViewClasses()\">\n\n <div class=\"treeview-panel\">\n\n <ng-container [ngSwitch]=\"checkable\">\n\n <kendo-treeview #treeViewElement *ngSwitchCase=\"true\" [children]=\"children\" kendoTreeViewHierarchyBinding\n kendoTreeViewExpandable [kendoTreeViewCheckable]=\"checkableSettings\" kendoTreeViewDragAndDrop\n kendoTreeViewDragAndDropEditing [nodes]=\"data\" [textField]=\"textField\" [childrenField]=\"childrenField\"\n [filterable]=\"filterable\" [expandBy]=\"expandBy\" [(expandedKeys)]=\"expandedKeys\"\n [expandDisabledNodes]=\"expandDisabledNodes\" (selectionChange)=\"onSelectionChange($event)\"\n (checkedChange)=\"onCheckedChange($event)\" (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\"\n (nodeClick)=\"onNodeClick($event)\" (expandedKeysChange)=\"onExpandedKeysChange($event)\"\n (nodeDragStart)=\"onDragStart($event)\" (nodeDrop)=\"handleDrop($event)\" (addItem)=\"log('addItem', $event)\"\n (removeItem)=\"log('removeItem', $event)\" (nodeDragEnd)=\"log('nodeDragEnd', $event)\"\n (nodeDrag)=\"onNodeDrag($event)\" class=\"lib-tree-view__kendo-tree\" [kendoTreeViewSelectable]=\"selectable\"\n [filter]=\"filter\" [size]=\"size\" [navigable]=\"navigable\" [loadOnDemand]=\"loadOnDemand\" [trackBy]=\"trackBy\"\n [hasChildren]=\"hasChildren\" [(selectedKeys)]=\"selectedKeys\" (filterChange)=\"onFilterChange($event)\">\n\n <!-- Custom Node Template -->\n <ng-template *ngIf=\"nodeTemplate\" kendoTreeViewNodeTemplate let-dataItem=\"dataItem\" let-index=\"index\">\n <ng-container [ngTemplateOutlet]=\"nodeTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n index: index \n }\">\n </ng-container>\n </ng-template>\n\n <!-- Load More Button Template -->\n <ng-template *ngIf=\"loadMoreButtonTemplate\" kendoTreeViewLoadMoreButtonTemplate let-dataItem=\"dataItem\">\n <ng-container [ngTemplateOutlet]=\"loadMoreButtonTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem \n }\">\n </ng-container>\n </ng-template>\n\n </kendo-treeview>\n\n <!-- TreeView without checkable functionality -->\n <kendo-treeview #treeViewElement *ngSwitchDefault kendoTreeViewHierarchyBinding kendoTreeViewExpandable\n kendoTreeViewDragAndDrop kendoTreeViewDragAndDropEditing [nodes]=\"data\" [textField]=\"textField\"\n [childrenField]=\"childrenField\" [filterable]=\"filterable\" [expandBy]=\"expandBy\" [(expandedKeys)]=\"expandedKeys\"\n [expandDisabledNodes]=\"expandDisabledNodes\" (selectionChange)=\"onSelectionChange($event)\"\n (checkedChange)=\"onCheckedChange($event)\" (expand)=\"onExpand($event)\" (collapse)=\"onCollapse($event)\"\n (nodeClick)=\"onNodeClick($event)\" (expandedKeysChange)=\"onExpandedKeysChange($event)\"\n (nodeDragStart)=\"onDragStart($event)\" (nodeDrag)=\"onNodeDrag($event)\" (nodeDrop)=\"handleDrop($event)\"\n (addItem)=\"log('addItem', $event)\" (removeItem)=\"log('removeItem', $event)\"\n (nodeDragEnd)=\"log('nodeDragEnd', $event)\" class=\"lib-tree-view__kendo-tree\"\n [kendoTreeViewSelectable]=\"selectable\" [size]=\"size\" [navigable]=\"navigable\" [loadOnDemand]=\"loadOnDemand\"\n [trackBy]=\"trackBy\" [hasChildren]=\"hasChildren\" [(selectedKeys)]=\"selectedKeys\"\n (filterChange)=\"onFilterChange($event)\">\n\n <!-- Custom Node Template -->\n <ng-template *ngIf=\"nodeTemplate\" kendoTreeViewNodeTemplate let-dataItem=\"dataItem\" let-index=\"index\">\n <ng-container [ngTemplateOutlet]=\"nodeTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem, \n index: index \n }\">\n </ng-container>\n </ng-template>\n\n <!-- Load More Button Template -->\n <ng-template *ngIf=\"loadMoreButtonTemplate\" kendoTreeViewLoadMoreButtonTemplate let-dataItem=\"dataItem\">\n <ng-container [ngTemplateOutlet]=\"loadMoreButtonTemplate\" [ngTemplateOutletContext]=\"{ \n $implicit: dataItem, \n dataItem: dataItem \n }\">\n </ng-container>\n </ng-template>\n\n </kendo-treeview>\n </ng-container>\n\n <!-- Loading indicator -->\n <div *ngIf=\"loading\" class=\"lib-tree-view__loading\">\n <lib-loader size=\"medium\" type=\"pulsing\" themeColor=\"primary\"></lib-loader>\n </div>\n </div>\n", styles: [".lib-tree-view{position:relative;width:100%}.lib-tree-view__loading{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background-color:#fffc}\n"] }]
|
|
4982
|
+
}], propDecorators: { treeViewElement: [{
|
|
4983
|
+
type: ViewChild,
|
|
4984
|
+
args: ['treeViewElement', { static: false }]
|
|
4985
|
+
}], data: [{
|
|
4986
|
+
type: Input
|
|
4987
|
+
}], selectable: [{
|
|
4988
|
+
type: Input
|
|
4989
|
+
}], filterable: [{
|
|
4990
|
+
type: Input
|
|
4991
|
+
}], checkboxes: [{
|
|
4992
|
+
type: Input
|
|
4993
|
+
}], checkable: [{
|
|
4994
|
+
type: Input
|
|
4995
|
+
}], dragAndDrop: [{
|
|
4996
|
+
type: Input
|
|
4997
|
+
}], expandable: [{
|
|
4998
|
+
type: Input
|
|
4999
|
+
}], loading: [{
|
|
5000
|
+
type: Input
|
|
5001
|
+
}], animate: [{
|
|
5002
|
+
type: Input
|
|
5003
|
+
}], size: [{
|
|
5004
|
+
type: Input
|
|
5005
|
+
}], textField: [{
|
|
5006
|
+
type: Input
|
|
5007
|
+
}], childrenField: [{
|
|
5008
|
+
type: Input
|
|
5009
|
+
}], hasChildrenField: [{
|
|
5010
|
+
type: Input
|
|
5011
|
+
}], expandedField: [{
|
|
5012
|
+
type: Input
|
|
5013
|
+
}], selectedField: [{
|
|
5014
|
+
type: Input
|
|
5015
|
+
}], disabledField: [{
|
|
5016
|
+
type: Input
|
|
5017
|
+
}], checkedField: [{
|
|
5018
|
+
type: Input
|
|
5019
|
+
}], iconClassField: [{
|
|
5020
|
+
type: Input
|
|
5021
|
+
}], iconField: [{
|
|
5022
|
+
type: Input
|
|
5023
|
+
}], imageUrlField: [{
|
|
5024
|
+
type: Input
|
|
5025
|
+
}], spriteCssClassField: [{
|
|
5026
|
+
type: Input
|
|
5027
|
+
}], disabledKeys: [{
|
|
5028
|
+
type: Input
|
|
5029
|
+
}], expandBy: [{
|
|
5030
|
+
type: Input
|
|
5031
|
+
}], expandedKeys: [{
|
|
5032
|
+
type: Input
|
|
5033
|
+
}], selectedKeys: [{
|
|
5034
|
+
type: Input
|
|
5035
|
+
}], checkedKeys: [{
|
|
5036
|
+
type: Input
|
|
5037
|
+
}], expandDisabledNodes: [{
|
|
5038
|
+
type: Input
|
|
5039
|
+
}], disableNodes: [{
|
|
5040
|
+
type: Input
|
|
5041
|
+
}], enableCheck: [{
|
|
5042
|
+
type: Input
|
|
5043
|
+
}], checkChildren: [{
|
|
5044
|
+
type: Input
|
|
5045
|
+
}], checkDisabledChildren: [{
|
|
5046
|
+
type: Input
|
|
5047
|
+
}], checkParents: [{
|
|
5048
|
+
type: Input
|
|
5049
|
+
}], checkOnClick: [{
|
|
5050
|
+
type: Input
|
|
5051
|
+
}], uncheckCollapsedChildren: [{
|
|
5052
|
+
type: Input
|
|
5053
|
+
}], checkMode: [{
|
|
5054
|
+
type: Input
|
|
5055
|
+
}], fetchChildren: [{
|
|
5056
|
+
type: Input
|
|
5057
|
+
}], isChecked: [{
|
|
5058
|
+
type: Input
|
|
5059
|
+
}], isDisabled: [{
|
|
5060
|
+
type: Input
|
|
5061
|
+
}], isExpanded: [{
|
|
5062
|
+
type: Input
|
|
5063
|
+
}], isSelected: [{
|
|
5064
|
+
type: Input
|
|
5065
|
+
}], isVisible: [{
|
|
5066
|
+
type: Input
|
|
5067
|
+
}], nodeTemplate: [{
|
|
5068
|
+
type: Input
|
|
5069
|
+
}], loadMoreButtonTemplate: [{
|
|
5070
|
+
type: Input
|
|
5071
|
+
}], loadMoreService: [{
|
|
5072
|
+
type: Input
|
|
5073
|
+
}], pageSize: [{
|
|
5074
|
+
type: Input
|
|
5075
|
+
}], loadOnDemand: [{
|
|
5076
|
+
type: Input
|
|
5077
|
+
}], filter: [{
|
|
5078
|
+
type: Input
|
|
5079
|
+
}], filterSettings: [{
|
|
5080
|
+
type: Input
|
|
5081
|
+
}], navigable: [{
|
|
5082
|
+
type: Input
|
|
5083
|
+
}], trackBy: [{
|
|
5084
|
+
type: Input
|
|
5085
|
+
}], selectionChange: [{
|
|
5086
|
+
type: Output
|
|
5087
|
+
}], expand: [{
|
|
5088
|
+
type: Output
|
|
5089
|
+
}], collapse: [{
|
|
5090
|
+
type: Output
|
|
5091
|
+
}], checkedChange: [{
|
|
5092
|
+
type: Output
|
|
5093
|
+
}], nodeClick: [{
|
|
5094
|
+
type: Output
|
|
5095
|
+
}], nodeDblClick: [{
|
|
5096
|
+
type: Output
|
|
5097
|
+
}], nodeDragStart: [{
|
|
5098
|
+
type: Output
|
|
5099
|
+
}], nodeDrag: [{
|
|
5100
|
+
type: Output
|
|
5101
|
+
}], nodeDrop: [{
|
|
5102
|
+
type: Output
|
|
5103
|
+
}], nodeDragEnd: [{
|
|
5104
|
+
type: Output
|
|
5105
|
+
}], addItem: [{
|
|
5106
|
+
type: Output
|
|
5107
|
+
}], removeItem: [{
|
|
5108
|
+
type: Output
|
|
5109
|
+
}], expandedKeysChange: [{
|
|
5110
|
+
type: Output
|
|
5111
|
+
}], selectedKeysChange: [{
|
|
5112
|
+
type: Output
|
|
5113
|
+
}], checkedKeysChange: [{
|
|
5114
|
+
type: Output
|
|
5115
|
+
}], filterChange: [{
|
|
5116
|
+
type: Output
|
|
5117
|
+
}], loadMore: [{
|
|
5118
|
+
type: Output
|
|
5119
|
+
}], childrenLoaded: [{
|
|
5120
|
+
type: Output
|
|
5121
|
+
}] } });
|
|
5122
|
+
|
|
5123
|
+
class TreeViewModule {
|
|
5124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5125
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TreeViewModule, imports: [TreeViewComponent,
|
|
5126
|
+
CommonModule,
|
|
5127
|
+
TreeViewModule$1,
|
|
5128
|
+
IconsModule,
|
|
5129
|
+
ButtonModule,
|
|
5130
|
+
IconModule,
|
|
5131
|
+
LoaderModule], exports: [TreeViewComponent] }); }
|
|
5132
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeViewModule, imports: [TreeViewComponent,
|
|
5133
|
+
CommonModule,
|
|
5134
|
+
TreeViewModule$1,
|
|
5135
|
+
IconsModule,
|
|
5136
|
+
ButtonModule,
|
|
5137
|
+
IconModule,
|
|
5138
|
+
LoaderModule] }); }
|
|
5139
|
+
}
|
|
5140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TreeViewModule, decorators: [{
|
|
5141
|
+
type: NgModule,
|
|
5142
|
+
args: [{
|
|
5143
|
+
imports: [
|
|
5144
|
+
TreeViewComponent,
|
|
5145
|
+
CommonModule,
|
|
5146
|
+
TreeViewModule$1,
|
|
5147
|
+
IconsModule,
|
|
5148
|
+
ButtonModule,
|
|
5149
|
+
IconModule,
|
|
5150
|
+
LoaderModule
|
|
5151
|
+
],
|
|
5152
|
+
exports: [
|
|
5153
|
+
TreeViewComponent
|
|
5154
|
+
]
|
|
5155
|
+
}]
|
|
5156
|
+
}] });
|
|
5157
|
+
|
|
4150
5158
|
class UploaderComponent {
|
|
4151
5159
|
constructor(renderer, elRef) {
|
|
4152
5160
|
this.renderer = renderer;
|
|
@@ -4456,6 +5464,8 @@ class AtomsModule {
|
|
|
4456
5464
|
TimePickerModule,
|
|
4457
5465
|
TimeschedulerModule,
|
|
4458
5466
|
TooltipModule,
|
|
5467
|
+
TreeListModule,
|
|
5468
|
+
TreeViewModule,
|
|
4459
5469
|
TypographyModule,
|
|
4460
5470
|
UploaderModule], exports: [AlertModule,
|
|
4461
5471
|
AngularPopupModule,
|
|
@@ -4494,6 +5504,8 @@ class AtomsModule {
|
|
|
4494
5504
|
TimePickerModule,
|
|
4495
5505
|
TimeschedulerModule,
|
|
4496
5506
|
TooltipModule,
|
|
5507
|
+
TreeListModule,
|
|
5508
|
+
TreeViewModule,
|
|
4497
5509
|
TypographyModule,
|
|
4498
5510
|
UploaderModule] }); }
|
|
4499
5511
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: AtomsModule, imports: [CommonModule,
|
|
@@ -4536,6 +5548,8 @@ class AtomsModule {
|
|
|
4536
5548
|
TimePickerModule,
|
|
4537
5549
|
TimeschedulerModule,
|
|
4538
5550
|
TooltipModule,
|
|
5551
|
+
TreeListModule,
|
|
5552
|
+
TreeViewModule,
|
|
4539
5553
|
TypographyModule,
|
|
4540
5554
|
UploaderModule, AlertModule,
|
|
4541
5555
|
AngularPopupModule,
|
|
@@ -4574,6 +5588,8 @@ class AtomsModule {
|
|
|
4574
5588
|
TimePickerModule,
|
|
4575
5589
|
TimeschedulerModule,
|
|
4576
5590
|
TooltipModule,
|
|
5591
|
+
TreeListModule,
|
|
5592
|
+
TreeViewModule,
|
|
4577
5593
|
TypographyModule,
|
|
4578
5594
|
UploaderModule] }); }
|
|
4579
5595
|
}
|
|
@@ -4621,6 +5637,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
4621
5637
|
TimePickerModule,
|
|
4622
5638
|
TimeschedulerModule,
|
|
4623
5639
|
TooltipModule,
|
|
5640
|
+
TreeListModule,
|
|
5641
|
+
TreeViewModule,
|
|
4624
5642
|
TypographyModule,
|
|
4625
5643
|
UploaderModule
|
|
4626
5644
|
],
|
|
@@ -4662,6 +5680,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
4662
5680
|
TimePickerModule,
|
|
4663
5681
|
TimeschedulerModule,
|
|
4664
5682
|
TooltipModule,
|
|
5683
|
+
TreeListModule,
|
|
5684
|
+
TreeViewModule,
|
|
4665
5685
|
TypographyModule,
|
|
4666
5686
|
UploaderModule
|
|
4667
5687
|
]
|
|
@@ -4852,7 +5872,7 @@ class DialogComponent {
|
|
|
4852
5872
|
}
|
|
4853
5873
|
}
|
|
4854
5874
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4855
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: DialogComponent, isStandalone: true, selector: "lib-dialog", inputs: { width: "width", height: "height", minWidth: "minWidth", maxWidth: "maxWidth", minHeight: "minHeight", maxHeight: "maxHeight", opened: "opened" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["contentRef"], descendants: true }, { propertyName: "dialogRef", first: true, predicate: ["dialogRef"], descendants: true }], ngImport: i0, template: "<div #dialogRef>\n <kendo-dialog\n *ngIf=\"opened\"\n [width]=\"width\"\n [height]=\"height\"\n [minWidth]=\"minWidth\"\n [maxWidth]=\"maxWidth\"\n [minHeight]=\"minHeight\"\n [maxHeight]=\"maxHeight\">\n <div #contentRef>\n <ng-content></ng-content>\n </div>\n </kendo-dialog>\n</div>\n", styles: [":host ::ng-deep .dialog-title .k-dialog-titlebar-action{display:none!important}:host ::ng-deep .k-window-content,:host ::ng-deep .k-prompt-container{padding:1.5rem}:host ::ng-deep .k-window-titlebar{padding:1rem 1.5rem}:host ::ng-deep .k-window-actions{margin:0;border-width:1px 0 0;padding:1rem 1.5rem;position:sticky;z-index:100;gap:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogsModule }, { kind: "component", type: i2$
|
|
5875
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: DialogComponent, isStandalone: true, selector: "lib-dialog", inputs: { width: "width", height: "height", minWidth: "minWidth", maxWidth: "maxWidth", minHeight: "minHeight", maxHeight: "maxHeight", opened: "opened" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["contentRef"], descendants: true }, { propertyName: "dialogRef", first: true, predicate: ["dialogRef"], descendants: true }], ngImport: i0, template: "<div #dialogRef>\n <kendo-dialog\n *ngIf=\"opened\"\n [width]=\"width\"\n [height]=\"height\"\n [minWidth]=\"minWidth\"\n [maxWidth]=\"maxWidth\"\n [minHeight]=\"minHeight\"\n [maxHeight]=\"maxHeight\">\n <div #contentRef>\n <ng-content></ng-content>\n </div>\n </kendo-dialog>\n</div>\n", styles: [":host ::ng-deep .dialog-title .k-dialog-titlebar-action{display:none!important}:host ::ng-deep .k-window-content,:host ::ng-deep .k-prompt-container{padding:1.5rem}:host ::ng-deep .k-window-titlebar{padding:1rem 1.5rem}:host ::ng-deep .k-window-actions{margin:0;border-width:1px 0 0;padding:1rem 1.5rem;position:sticky;z-index:100;gap:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogsModule }, { kind: "component", type: i2$9.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "ngmodule", type: IconsModule }] }); }
|
|
4856
5876
|
}
|
|
4857
5877
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DialogComponent, decorators: [{
|
|
4858
5878
|
type: Component,
|
|
@@ -4899,7 +5919,7 @@ class DialogTitlebarComponent {
|
|
|
4899
5919
|
return this.hideCloseIcon ? 'dialog-title' : undefined;
|
|
4900
5920
|
}
|
|
4901
5921
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DialogTitlebarComponent, deps: [{ token: DialogComponent }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4902
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.17", type: DialogTitlebarComponent, isStandalone: true, selector: "lib-dialog-titlebar", inputs: { title: "title", titleFont: "titleFont", hideCloseIcon: ["hideCloseIcon", "hideCloseIcon", (value) => value === true || value === 'true'] }, outputs: { closeDialog: "closeDialog" }, ngImport: i0, template: "<kendo-dialog-titlebar (close)=\"close()\" [ngClass]=\"closeBtn()\">\n <lib-typography\n [defaultText]=\"title\"\n [type]=\"titleFont\"\n ></lib-typography>\n</kendo-dialog-titlebar>\n", styles: [".random-css-to-not-keep-this-file-empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DialogModule$1 }, { kind: "component", type: i2$
|
|
5922
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.17", type: DialogTitlebarComponent, isStandalone: true, selector: "lib-dialog-titlebar", inputs: { title: "title", titleFont: "titleFont", hideCloseIcon: ["hideCloseIcon", "hideCloseIcon", (value) => value === true || value === 'true'] }, outputs: { closeDialog: "closeDialog" }, ngImport: i0, template: "<kendo-dialog-titlebar (close)=\"close()\" [ngClass]=\"closeBtn()\">\n <lib-typography\n [defaultText]=\"title\"\n [type]=\"titleFont\"\n ></lib-typography>\n</kendo-dialog-titlebar>\n", styles: [".random-css-to-not-keep-this-file-empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DialogModule$1 }, { kind: "component", type: i2$9.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "ngmodule", type: IconsModule }, { kind: "component", type: TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }] }); }
|
|
4903
5923
|
}
|
|
4904
5924
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DialogTitlebarComponent, decorators: [{
|
|
4905
5925
|
type: Component,
|
|
@@ -4925,7 +5945,7 @@ class DialogActionsComponent {
|
|
|
4925
5945
|
this.buttonLayout = 'start';
|
|
4926
5946
|
}
|
|
4927
5947
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DialogActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4928
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: DialogActionsComponent, isStandalone: true, selector: "lib-dialog-actions", inputs: { buttonLayout: "buttonLayout" }, ngImport: i0, template: "<kendo-dialog-actions [layout]=\"buttonLayout\">\n <ng-content></ng-content>\n</kendo-dialog-actions>\n", styles: [".random-css-to-not-keep-this-file-empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule$1 }, { kind: "component", type: i2$
|
|
5948
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: DialogActionsComponent, isStandalone: true, selector: "lib-dialog-actions", inputs: { buttonLayout: "buttonLayout" }, ngImport: i0, template: "<kendo-dialog-actions [layout]=\"buttonLayout\">\n <ng-content></ng-content>\n</kendo-dialog-actions>\n", styles: [".random-css-to-not-keep-this-file-empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: DialogModule$1 }, { kind: "component", type: i2$9.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] }); }
|
|
4929
5949
|
}
|
|
4930
5950
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: DialogActionsComponent, decorators: [{
|
|
4931
5951
|
type: Component,
|
|
@@ -5173,7 +6193,7 @@ class GridFormComponent {
|
|
|
5173
6193
|
this.formGroup = undefined;
|
|
5174
6194
|
}
|
|
5175
6195
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: GridFormComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.17", type: GridFormComponent, isStandalone: true, selector: "lib-grid-form", inputs: { showToolbar: ["showToolbar", "showToolbar", (value) => value === true || value === 'true'], noRecordsContent: "noRecordsContent", gridData: "gridData", columnData: "columnData", controls: "controls" }, outputs: { addOrUpdateRow: "addOrUpdateRow", deletedRow: "deletedRow", removeRow: "removeRow", saveRow: "saveRow" }, queries: [{ propertyName: "templateRef1", first: true, predicate: ["tmp1"], descendants: true }, { propertyName: "templateRef2", first: true, predicate: ["tmp2"], descendants: true }], ngImport: i0, template: "<kendo-grid [kendoGridBinding]=\"gridData\" (dataStateChange)=\"onStateChange($event)\" (edit)=\"editHandler($event)\"\n (cancel)=\"cancelHandler($event)\" (save)=\"saveHandler($event)\" (remove)=\"removeHandler($event)\"\n (add)=\"addHandler($event)\" [navigable]=\"true\">\n <ng-template kendoGridToolbarTemplate>\n <ng-content select=\"header\"></ng-content>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <button kendoGridAddCommand themeColor=\"primary\">\n <ng-content select=\"div.header-add-btn\"></ng-content>\n </button>\n </ng-template>\n <ng-template *ngIf=\"!showColumns\" kendoGridNoRecordsTemplate>\n <lib-typography [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n </ng-template>\n <ng-container *ngIf=\"showColumns\">\n <kendo-grid-column *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\" [editor]=\"item.editor\">\n <ng-template *ngIf=\"item.custom\" kendoGridEditTemplate let-dataItem=\"dataItem\" let-formGroup=\"formGroup\">\n <ng-container\n *ngTemplateOutlet=\"templateRef1; context: {$implicit: dataItem, formGroup: formGroup}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef2; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-command-column [width]=\"120\">\n <ng-template kendoGridCellTemplate let-isNew=\"isNew\">\n <div class=\"command-column\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Edit</div>\n <button kendoGridEditCommand fillMode=\"clear\" themeColor=\"primary\">\n <kendo-icon name=\"pencil\"></kendo-icon>\n </button>\n </lib-tooltip>\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Remove</div>\n <button kendoGridRemoveCommand fillMode=\"clear\" themeColor=\"error\">\n <kendo-icon name=\"trash\"></kendo-icon>\n </button>\n </lib-tooltip>\n </div>\n <div class=\"command-column\">\n <button kendoGridSaveCommand [disabled]=\"formGroup && formGroup.invalid\" fillMode=\"clear\" themeColor=\"primary\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Save</div>\n <kendo-icon name=\"save\"></kendo-icon>\n </lib-tooltip>\n </button>\n <button kendoGridCancelCommand fillMode=\"clear\" themeColor=\"error\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Cancel</div>\n <lib-icon name=\"close\" [fontSize]=\"20\"></lib-icon>\n </lib-tooltip>\n </button>\n </div>\n </ng-template>\n </kendo-grid-command-column>\n </ng-container>\n</kendo-grid>\n", styles: [".command-column{display:flex;justify-content:space-between}::ng-deep .k-grid-header{border-bottom-width:0px}\n"], dependencies: [{ kind: "ngmodule", type: GridModule }, { kind: "component", type: i1$6.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i1$6.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i1$6.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "directive", type: i1$6.GridToolbarFocusableDirective, selector: " [kendoGridToolbarFocusable], [kendoGridAddCommand], [kendoGridCancelCommand], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridExcelCommand], [kendoGridPDFCommand] " }, { kind: "component", type: i1$6.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i1$6.FocusableDirective, selector: "[kendoGridFocusable], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridCancelCommand], [kendoGridSelectionCheckbox] ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: i1$6.CommandColumnComponent, selector: "kendo-grid-command-column" }, { kind: "directive", type: i1$6.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i1$6.EditTemplateDirective, selector: "[kendoGridEditTemplate]" }, { kind: "directive", type: i1$6.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "component", type: i1$6.EditCommandDirective, selector: "[kendoGridEditCommand]" }, { kind: "component", type: i1$6.CancelCommandDirective, selector: "[kendoGridCancelCommand]" }, { kind: "component", type: i1$6.SaveCommandDirective, selector: "[kendoGridSaveCommand]" }, { kind: "component", type: i1$6.RemoveCommandDirective, selector: "[kendoGridRemoveCommand]" }, { kind: "component", type: i1$6.AddCommandDirective, selector: "[kendoGridAddCommand]" }, { kind: "ngmodule", type: IconsModule }, { kind: "component", type: i2$
|
|
6196
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.17", type: GridFormComponent, isStandalone: true, selector: "lib-grid-form", inputs: { showToolbar: ["showToolbar", "showToolbar", (value) => value === true || value === 'true'], noRecordsContent: "noRecordsContent", gridData: "gridData", columnData: "columnData", controls: "controls" }, outputs: { addOrUpdateRow: "addOrUpdateRow", deletedRow: "deletedRow", removeRow: "removeRow", saveRow: "saveRow" }, queries: [{ propertyName: "templateRef1", first: true, predicate: ["tmp1"], descendants: true }, { propertyName: "templateRef2", first: true, predicate: ["tmp2"], descendants: true }], ngImport: i0, template: "<kendo-grid [kendoGridBinding]=\"gridData\" (dataStateChange)=\"onStateChange($event)\" (edit)=\"editHandler($event)\"\n (cancel)=\"cancelHandler($event)\" (save)=\"saveHandler($event)\" (remove)=\"removeHandler($event)\"\n (add)=\"addHandler($event)\" [navigable]=\"true\">\n <ng-template kendoGridToolbarTemplate>\n <ng-content select=\"header\"></ng-content>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <button kendoGridAddCommand themeColor=\"primary\">\n <ng-content select=\"div.header-add-btn\"></ng-content>\n </button>\n </ng-template>\n <ng-template *ngIf=\"!showColumns\" kendoGridNoRecordsTemplate>\n <lib-typography [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n </ng-template>\n <ng-container *ngIf=\"showColumns\">\n <kendo-grid-column *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\" [editor]=\"item.editor\">\n <ng-template *ngIf=\"item.custom\" kendoGridEditTemplate let-dataItem=\"dataItem\" let-formGroup=\"formGroup\">\n <ng-container\n *ngTemplateOutlet=\"templateRef1; context: {$implicit: dataItem, formGroup: formGroup}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef2; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-command-column [width]=\"120\">\n <ng-template kendoGridCellTemplate let-isNew=\"isNew\">\n <div class=\"command-column\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Edit</div>\n <button kendoGridEditCommand fillMode=\"clear\" themeColor=\"primary\">\n <kendo-icon name=\"pencil\"></kendo-icon>\n </button>\n </lib-tooltip>\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Remove</div>\n <button kendoGridRemoveCommand fillMode=\"clear\" themeColor=\"error\">\n <kendo-icon name=\"trash\"></kendo-icon>\n </button>\n </lib-tooltip>\n </div>\n <div class=\"command-column\">\n <button kendoGridSaveCommand [disabled]=\"formGroup && formGroup.invalid\" fillMode=\"clear\" themeColor=\"primary\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Save</div>\n <kendo-icon name=\"save\"></kendo-icon>\n </lib-tooltip>\n </button>\n <button kendoGridCancelCommand fillMode=\"clear\" themeColor=\"error\">\n <lib-tooltip position=\"top\" showOn=\"hover\">\n <div class=\"tooltip-content\">Cancel</div>\n <lib-icon name=\"close\" [fontSize]=\"20\"></lib-icon>\n </lib-tooltip>\n </button>\n </div>\n </ng-template>\n </kendo-grid-command-column>\n </ng-container>\n</kendo-grid>\n", styles: [".command-column{display:flex;justify-content:space-between}::ng-deep .k-grid-header{border-bottom-width:0px}\n"], dependencies: [{ kind: "ngmodule", type: GridModule }, { kind: "component", type: i1$6.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i1$6.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i1$6.DataBindingDirective, selector: "[kendoGridBinding]", inputs: ["skip", "sort", "filter", "pageSize", "group", "kendoGridBinding"], exportAs: ["kendoGridBinding"] }, { kind: "directive", type: i1$6.GridToolbarFocusableDirective, selector: " [kendoGridToolbarFocusable], [kendoGridAddCommand], [kendoGridCancelCommand], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridExcelCommand], [kendoGridPDFCommand] " }, { kind: "component", type: i1$6.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i1$6.FocusableDirective, selector: "[kendoGridFocusable], [kendoGridEditCommand], [kendoGridRemoveCommand], [kendoGridSaveCommand], [kendoGridCancelCommand], [kendoGridSelectionCheckbox] ", inputs: ["kendoGridFocusable"] }, { kind: "component", type: i1$6.CommandColumnComponent, selector: "kendo-grid-command-column" }, { kind: "directive", type: i1$6.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i1$6.EditTemplateDirective, selector: "[kendoGridEditTemplate]" }, { kind: "directive", type: i1$6.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "component", type: i1$6.EditCommandDirective, selector: "[kendoGridEditCommand]" }, { kind: "component", type: i1$6.CancelCommandDirective, selector: "[kendoGridCancelCommand]" }, { kind: "component", type: i1$6.SaveCommandDirective, selector: "[kendoGridSaveCommand]" }, { kind: "component", type: i1$6.RemoveCommandDirective, selector: "[kendoGridRemoveCommand]" }, { kind: "component", type: i1$6.AddCommandDirective, selector: "[kendoGridAddCommand]" }, { kind: "ngmodule", type: IconsModule }, { kind: "component", type: i2$a.IconComponent, selector: "kendo-icon", inputs: ["name"], exportAs: ["kendoIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["name", "projectedIcon", "fontSize", "type"] }, { kind: "component", type: TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: GridPaginationSpacerComponent, selector: "lib-grid-pagination-spacer" }] }); }
|
|
5177
6197
|
}
|
|
5178
6198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: GridFormComponent, decorators: [{
|
|
5179
6199
|
type: Component,
|
|
@@ -5870,7 +6890,7 @@ class GridPaginationComponent {
|
|
|
5870
6890
|
if (value === undefined || value === null)
|
|
5871
6891
|
return 56;
|
|
5872
6892
|
return typeof value === 'string' ? parseInt(value, 10) || 56 : value;
|
|
5873
|
-
}], sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: ["loading", "loading", (value) => value === true || value === 'true'], loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell", columnContentNoWrap: "columnContentNoWrap", infiniteScrollLoader: "infiniteScrollLoader", isInfiniteScrollGrid: ["isInfiniteScrollGrid", "isInfiniteScrollGrid", (value) => value === true || value === 'true'], gridLoading: ["gridLoading", "gridLoading", (value) => value === true || value === 'true'], minResizableWidth: "minResizableWidth", showRefresh: "showRefresh", isKebabColumnSticky: "isKebabColumnSticky", isCheckBoxColumnSticky: "isCheckBoxColumnSticky", isDeleteColumnSticky: "isDeleteColumnSticky", isSelectAllCheckboxRequired: "isSelectAllCheckboxRequired" }, outputs: { onSelectAllAcrossPages: "onSelectAllAcrossPages", selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData", onscrollBottom: "onscrollBottom", emitRefreshEvt: "emitRefreshEvt" }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }, { propertyName: "columnTemplates", predicate: CustomColumnTemplate }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "selectAllMessageElement", first: true, predicate: ["selectAllMessageElement"], descendants: true }], ngImport: i0, template: "<div #gridElement [ngClass]=\"columnContentNoWrap ? 'column-content-nowrap' : ''\">\n <kendo-grid [data]=\"_gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [loading]=\"gridLoading\" [groupable]=\"groupable\"\n [reorderable]=\"reorderable\" [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\"\n [height]=\"gridHeight\" (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"_preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\"\n [sort]=\"sort\" (sortChange)=\"sortChange($event)\" (scrollBottom)=\"scrollBottom()\" [ngClass]=\"getHeaderHeight()\"\n id=\"lib-grid\" [rowClass]=\"rowClass\">\n <div #selectAllMessageElement>\n <div class=\"lib-grid-select-all-message-container\"\n *ngIf=\"((selectedItemCount < _gridView.total) || allPagesSelected)\">\n <div *ngIf=\"(selectedItemCount < _gridView.total)\" class=\"lib-grid-select-all-message\">\n <lib-typography [defaultText]=\"'All '+selectedItemCount+' '+itemName+' on this page are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(true)\" class=\"select-all-handler\"\n [defaultText]=\"'Select all '+_gridView.total+' '+itemName+' from all pages'\"\n type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n <div *ngIf=\"allPagesSelected\" class=\"lib-grid-select-all-message\">\n <lib-icon name=\"circle-checked\" class=\"all-selected-icon\"></lib-icon>\n <lib-typography [defaultText]=\"'All '+_gridView.total+' '+itemName+' across all pages are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(false)\" class=\"select-all-handler\"\n [defaultText]=\"'Clear selection'\" type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n </div>\n </div>\n <ng-template kendoGridToolbarTemplate [position]=\"getPosition()\" let-position=\"position\">\n <ng-container *ngIf=\"showToolbar && position === 'top'\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"showRefresh\">\n <ng-container *ngTemplateOutlet=\"showRefreshTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"infiniteScrollLoader && position === 'bottom'\">\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n </ng-container>\n </ng-template>\n\n <ng-template #showRefreshTemplate>\n <lib-tooltip position=\"top\" showOn=\"hover\" [tooltipWidth]=\"68\" [callout]=\"true\" [closable]=\"false\">\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Refresh\"></lib-typography>\n </div>\n <lib-button size=\"small\" width=\"2.4rem\" rounded=\"small\" fillMode=\"solid\" themeColor=\"primary\" iconName=\"reset\"\n [toggleable]=\"false\" (buttonClick)=\"refreshGridData()\" [iconButton]=\"true\" [iconFontSize]=\"13\"></lib-button>\n </lib-tooltip>\n </ng-template>\n\n <ng-template kendoGridLoadingTemplate>\n <div class=\"k-loading-color\"></div>\n <div class=\"loading-container\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n\n <ng-template *ngIf=\"this._gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n <ng-container *ngIf=\"this._gridView.total > 0\">\n <kendo-grid-checkbox-column #selectAllCheckbox headerClass=\"select-all-header\" *ngIf=\"checkBoxRequired\"\n [width]=\"checkBoxWidth\" [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n class=\"checkbox-column\" [sticky]=\"isCheckBoxColumnSticky && !customExpandRowColumn\"\n [showSelectAll]=\"isSelectAllCheckboxRequired\">\n <ng-template kendoGridHeaderTemplate *ngIf=\"isSelectAllCheckboxRequired\">\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [minResizableWidth]=\"minResizableWidth\" [sortable]=\"item.sortable\"\n [editor]=\"item.editor\" [class]=\"item.class\" [sticky]=\"item.columnSticky && !customExpandRowColumn\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.customColumn\" kendoGridCellTemplate let-dataItem>\n <ng-container [ngTemplateOutlet]=\"columnTemplateDict[item.type]\"\n [ngTemplateOutletContext]=\"{$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\"\n [sticky]=\"isDeleteColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\"\n [sticky]=\"isKebabColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n\n <!-- Limitation: detail template and sticky columns do not co-exist-->\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <button kendoButton *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </button>\n <button kendoButton *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </button>\n </div>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <!-- Detail template must be outside ng-container to work properly -->\n <ng-template kendoGridDetailTemplate let-dataItem *ngIf=\"customExpandRowColumn\">\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <div class=\"pagination-wrapper\" [ngClass]=\"allPagesSelected ? 'pagination-disabled' : ''\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"_pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </div>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: [".loading-container{height:100%;display:flex;justify-content:center;align-items:center}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}\n"], dependencies: [{ kind: "ngmodule", type: GridModule }, { kind: "component", type: i1$6.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i1$6.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i1$6.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i1$6.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i1$6.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i1$6.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll", "showDisabledCheckbox"] }, { kind: "directive", type: i1$6.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i1$6.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i1$6.LoadingTemplateDirective, selector: "[kendoGridLoadingTemplate]" }, { kind: "directive", type: i1$6.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i1$6.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i2$9.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i2$9.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i2$9.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i2$9.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i2$9.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i2$9.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "ngmodule", type: ButtonModule$1 }, { kind: "component", type: i3$1.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"] }, { kind: "ngmodule", type: DropDownButtonModule }, { kind: "component", type: i3$1.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DropDownsModule }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: i2$2.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "component", type: TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["name", "projectedIcon", "fontSize", "type"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["size", "rounded", "fillMode", "themeColor", "label", "iconName", "disabled", "toggleable", "iconPosition", "fontType", "width", "iconButton", "projectedIcon", "formatFn", "iconFontSize"], outputs: ["buttonClick"] }, { kind: "component", type: LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "component", type: TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "pipe", type: KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
|
|
6893
|
+
}], sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: ["loading", "loading", (value) => value === true || value === 'true'], loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell", columnContentNoWrap: "columnContentNoWrap", infiniteScrollLoader: "infiniteScrollLoader", isInfiniteScrollGrid: ["isInfiniteScrollGrid", "isInfiniteScrollGrid", (value) => value === true || value === 'true'], gridLoading: ["gridLoading", "gridLoading", (value) => value === true || value === 'true'], minResizableWidth: "minResizableWidth", showRefresh: "showRefresh", isKebabColumnSticky: "isKebabColumnSticky", isCheckBoxColumnSticky: "isCheckBoxColumnSticky", isDeleteColumnSticky: "isDeleteColumnSticky", isSelectAllCheckboxRequired: "isSelectAllCheckboxRequired" }, outputs: { onSelectAllAcrossPages: "onSelectAllAcrossPages", selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData", onscrollBottom: "onscrollBottom", emitRefreshEvt: "emitRefreshEvt" }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }, { propertyName: "columnTemplates", predicate: CustomColumnTemplate }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }, { propertyName: "selectAllCheckbox", first: true, predicate: ["selectAllCheckbox"], descendants: true }, { propertyName: "selectAllMessageElement", first: true, predicate: ["selectAllMessageElement"], descendants: true }], ngImport: i0, template: "<div #gridElement [ngClass]=\"columnContentNoWrap ? 'column-content-nowrap' : ''\">\n <kendo-grid [data]=\"_gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [loading]=\"gridLoading\" [groupable]=\"groupable\"\n [reorderable]=\"reorderable\" [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\"\n [height]=\"gridHeight\" (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"_preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\"\n [sort]=\"sort\" (sortChange)=\"sortChange($event)\" (scrollBottom)=\"scrollBottom()\" [ngClass]=\"getHeaderHeight()\"\n id=\"lib-grid\" [rowClass]=\"rowClass\">\n <div #selectAllMessageElement>\n <div class=\"lib-grid-select-all-message-container\"\n *ngIf=\"((selectedItemCount < _gridView.total) || allPagesSelected)\">\n <div *ngIf=\"(selectedItemCount < _gridView.total)\" class=\"lib-grid-select-all-message\">\n <lib-typography [defaultText]=\"'All '+selectedItemCount+' '+itemName+' on this page are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(true)\" class=\"select-all-handler\"\n [defaultText]=\"'Select all '+_gridView.total+' '+itemName+' from all pages'\"\n type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n <div *ngIf=\"allPagesSelected\" class=\"lib-grid-select-all-message\">\n <lib-icon name=\"circle-checked\" class=\"all-selected-icon\"></lib-icon>\n <lib-typography [defaultText]=\"'All '+_gridView.total+' '+itemName+' across all pages are selected.'\"\n type=\"BODY_SMALL\"></lib-typography>\n <u><lib-typography (click)=\"selectAcrossPages(false)\" class=\"select-all-handler\"\n [defaultText]=\"'Clear selection'\" type=\"BODY_SMALL\"></lib-typography></u>\n </div>\n </div>\n </div>\n <ng-template kendoGridToolbarTemplate [position]=\"getPosition()\" let-position=\"position\">\n <ng-container *ngIf=\"showToolbar && position === 'top'\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"showRefresh\">\n <ng-container *ngTemplateOutlet=\"showRefreshTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"infiniteScrollLoader && position === 'bottom'\">\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n <lib-grid-pagination-spacer></lib-grid-pagination-spacer>\n </ng-container>\n </ng-template>\n\n <ng-template #showRefreshTemplate>\n <lib-tooltip position=\"top\" showOn=\"hover\" [tooltipWidth]=\"68\" [callout]=\"true\" [closable]=\"false\">\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Refresh\"></lib-typography>\n </div>\n <lib-button size=\"small\" width=\"2.4rem\" rounded=\"small\" fillMode=\"solid\" themeColor=\"primary\" iconName=\"reset\"\n [toggleable]=\"false\" (buttonClick)=\"refreshGridData()\" [iconButton]=\"true\" [iconFontSize]=\"13\"></lib-button>\n </lib-tooltip>\n </ng-template>\n\n <ng-template kendoGridLoadingTemplate>\n <div class=\"k-loading-color\"></div>\n <div class=\"loading-container\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n\n <ng-template *ngIf=\"this._gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n <ng-container *ngIf=\"this._gridView.total > 0\">\n <kendo-grid-checkbox-column #selectAllCheckbox headerClass=\"select-all-header\" *ngIf=\"checkBoxRequired\"\n [width]=\"checkBoxWidth\" [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\"\n class=\"checkbox-column\" [sticky]=\"isCheckBoxColumnSticky && !customExpandRowColumn\"\n [showSelectAll]=\"isSelectAllCheckboxRequired\">\n <ng-template kendoGridHeaderTemplate *ngIf=\"isSelectAllCheckboxRequired\">\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n\n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [minResizableWidth]=\"minResizableWidth\" [sortable]=\"item.sortable\"\n [editor]=\"item.editor\" [class]=\"item.class\" [sticky]=\"item.columnSticky && !customExpandRowColumn\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.customColumn\" kendoGridCellTemplate let-dataItem>\n <ng-container [ngTemplateOutlet]=\"columnTemplateDict[item.type]\"\n [ngTemplateOutletContext]=\"{$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\"\n [sticky]=\"isDeleteColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\"\n [sticky]=\"isKebabColumnSticky && !customExpandRowColumn\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n\n <!-- Limitation: detail template and sticky columns do not co-exist-->\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <button kendoButton *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </button>\n <button kendoButton *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </button>\n </div>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <!-- Detail template must be outside ng-container to work properly -->\n <ng-template kendoGridDetailTemplate let-dataItem *ngIf=\"customExpandRowColumn\">\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <div class=\"pagination-wrapper\" [ngClass]=\"allPagesSelected ? 'pagination-disabled' : ''\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"_pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </div>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: [".loading-container{height:100%;display:flex;justify-content:center;align-items:center}::ng-deep .k-grid tr{height:50px}::ng-deep .pagination-wrapper{display:flex;width:100%}::ng-deep .pagination-disabled{color:#6c6f72!important;pointer-events:none}::ng-deep .lib-grid-select-all-message-container{height:2rem;display:none;gap:.25rem;justify-content:center;align-items:center;background-color:#eceff5!important;font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .lib-grid-select-all-message-container .select-all-handler{cursor:pointer}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message{display:flex;gap:.25rem}::ng-deep .lib-grid-select-all-message-container .lib-grid-select-all-message .all-selected-icon{color:#198038}::ng-deep .disabled{cursor:none!important;pointer-events:none;opacity:.5}::ng-deep .lib-grid-select-all-message-show{display:flex!important}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important;cursor:default!important}::ng-deep .k-grid .k-table-th .k-cell-inner,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner{padding-right:.5rem;border-right:2px solid #C2D2F3!important}::ng-deep .k-grid .k-table-th .k-cell-inner .k-link,::ng-deep .k-grid .k-table-th.k-sorted .k-cell-inner .k-link{cursor:default!important}::ng-deep .k-grid .k-table-th:focus,::ng-deep .k-grid .k-table-th.k-sorted:focus{box-shadow:none!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-row.k-disabled>.k-table-td{background-color:#fff!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid td,::ng-deep .k-grid .k-table-td{white-space:nowrap!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-input-value-text{overflow:unset!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:.5rem}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{background-color:#f4f8fa!important;padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grouping-header{background-color:#eceff5!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:54px;background-color:#eceff5!important}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}::ng-deep .column-content-nowrap .k-grid .k-table-th,::ng-deep .column-content-nowrap .k-grid td,::ng-deep .column-content-nowrap .k-grid .k-table-td{white-space:nowrap;text-overflow:clip}::ng-deep kendo-grid.k-grid .k-table-alt-row .k-grid-content-sticky,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row td,::ng-deep kendo-grid.k-grid .k-grid-row-sticky.k-table-alt-row .k-table-td,::ng-deep .k-master-row.k-table-alt-row .k-grid-content-sticky,::ng-deep .k-master-row.k-table-alt-row .k-grid-row-sticky{background-color:#fff}::ng-deep kendo-grid.k-grid .k-grid-content-sticky:hover,::ng-deep kendo-grid.k-grid .k-grid-content-sticky.k-hover,::ng-deep kendo-grid.k-grid .k-table-row:hover .k-grid-content-sticky{background-color:#d0dcf5!important}\n"], dependencies: [{ kind: "ngmodule", type: GridModule }, { kind: "component", type: i1$6.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i1$6.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i1$6.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i1$6.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i1$6.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i1$6.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll", "showDisabledCheckbox"] }, { kind: "directive", type: i1$6.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i1$6.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i1$6.LoadingTemplateDirective, selector: "[kendoGridLoadingTemplate]" }, { kind: "directive", type: i1$6.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i1$6.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i2$b.PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: i2$b.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: i2$b.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: i2$b.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: i2$b.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "directive", type: i2$b.PagerTemplateDirective, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]" }, { kind: "ngmodule", type: ButtonModule$1 }, { kind: "component", type: i3$1.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"] }, { kind: "ngmodule", type: DropDownButtonModule }, { kind: "component", type: i3$1.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DropDownsModule }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: i2$2.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "component", type: TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["name", "projectedIcon", "fontSize", "type"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["size", "rounded", "fillMode", "themeColor", "label", "iconName", "disabled", "toggleable", "iconPosition", "fontType", "width", "iconButton", "projectedIcon", "formatFn", "iconFontSize"], outputs: ["buttonClick"] }, { kind: "component", type: LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "component", type: TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "pipe", type: KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
|
|
5874
6894
|
}
|
|
5875
6895
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: GridPaginationComponent, decorators: [{
|
|
5876
6896
|
type: Component,
|
|
@@ -6371,11 +7391,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
|
|
|
6371
7391
|
}]
|
|
6372
7392
|
}] });
|
|
6373
7393
|
|
|
7394
|
+
/**
|
|
7395
|
+
* Service for rendering markdown content to safe HTML
|
|
7396
|
+
* Handles configuration of the marked library and sanitization
|
|
7397
|
+
*/
|
|
7398
|
+
class MarkdownDisplayService {
|
|
7399
|
+
constructor(sanitizer) {
|
|
7400
|
+
this.sanitizer = sanitizer;
|
|
7401
|
+
this.configureMarked();
|
|
7402
|
+
}
|
|
7403
|
+
/**
|
|
7404
|
+
* Configure marked options for GitHub-flavored markdown rendering
|
|
7405
|
+
* @private
|
|
7406
|
+
*/
|
|
7407
|
+
configureMarked() {
|
|
7408
|
+
// Configure marked options for basic rendering
|
|
7409
|
+
marked.setOptions({
|
|
7410
|
+
gfm: true, // GitHub Flavored Markdown
|
|
7411
|
+
breaks: true // Convert line breaks to <br>
|
|
7412
|
+
});
|
|
7413
|
+
}
|
|
7414
|
+
/**
|
|
7415
|
+
* Render markdown content to safe HTML
|
|
7416
|
+
* @param content - The markdown content to render
|
|
7417
|
+
* @returns Promise resolving to sanitized HTML string or empty string if no content
|
|
7418
|
+
*/
|
|
7419
|
+
async renderMarkdown(content) {
|
|
7420
|
+
if (!content) {
|
|
7421
|
+
return '';
|
|
7422
|
+
}
|
|
7423
|
+
try {
|
|
7424
|
+
const html = await marked.parse(content);
|
|
7425
|
+
return this.sanitizer.sanitize(SecurityContext.HTML, html) || '';
|
|
7426
|
+
}
|
|
7427
|
+
catch (error) {
|
|
7428
|
+
console.error('Error rendering markdown:', error);
|
|
7429
|
+
const errorHtml = `<div class="readme-error">Error rendering markdown content</div>`;
|
|
7430
|
+
return this.sanitizer.sanitize(SecurityContext.HTML, errorHtml) || '';
|
|
7431
|
+
}
|
|
7432
|
+
}
|
|
7433
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayService, deps: [{ token: i1$7.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7434
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayService, providedIn: 'root' }); }
|
|
7435
|
+
}
|
|
7436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayService, decorators: [{
|
|
7437
|
+
type: Injectable,
|
|
7438
|
+
args: [{
|
|
7439
|
+
providedIn: 'root'
|
|
7440
|
+
}]
|
|
7441
|
+
}], ctorParameters: () => [{ type: i1$7.DomSanitizer }] });
|
|
7442
|
+
|
|
7443
|
+
/**
|
|
7444
|
+
* Component for displaying markdown files with rendering
|
|
7445
|
+
* Uses the MarkdownDisplayService to convert markdown to HTML
|
|
7446
|
+
*
|
|
7447
|
+
* @example
|
|
7448
|
+
* <!-- Display markdown content from string -->
|
|
7449
|
+
* <lib-markdown-display [content]="markdownContent"></lib-markdown-display>
|
|
7450
|
+
*/
|
|
7451
|
+
class MarkdownDisplayComponent {
|
|
7452
|
+
constructor(markdownDisplayService) {
|
|
7453
|
+
this.markdownDisplayService = markdownDisplayService;
|
|
7454
|
+
this.content = '';
|
|
7455
|
+
this.renderedContent = '';
|
|
7456
|
+
}
|
|
7457
|
+
ngOnInit() {
|
|
7458
|
+
this.renderMarkdown();
|
|
7459
|
+
}
|
|
7460
|
+
ngOnChanges(changes) {
|
|
7461
|
+
if (changes['content'] && this.content) {
|
|
7462
|
+
this.renderMarkdown();
|
|
7463
|
+
}
|
|
7464
|
+
}
|
|
7465
|
+
async renderMarkdown() {
|
|
7466
|
+
this.renderedContent = await this.markdownDisplayService.renderMarkdown(this.content);
|
|
7467
|
+
}
|
|
7468
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayComponent, deps: [{ token: MarkdownDisplayService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7469
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: MarkdownDisplayComponent, isStandalone: true, selector: "lib-markdown-display", inputs: { content: "content" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"markdown-display\" [innerHTML]=\"renderedContent\"></div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
7470
|
+
}
|
|
7471
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayComponent, decorators: [{
|
|
7472
|
+
type: Component,
|
|
7473
|
+
args: [{ standalone: true, selector: 'lib-markdown-display', imports: [CommonModule], template: "<div class=\"markdown-display\" [innerHTML]=\"renderedContent\"></div>\n" }]
|
|
7474
|
+
}], ctorParameters: () => [{ type: MarkdownDisplayService }], propDecorators: { content: [{
|
|
7475
|
+
type: Input
|
|
7476
|
+
}] } });
|
|
7477
|
+
|
|
7478
|
+
class MarkdownDisplayModule {
|
|
7479
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7480
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayModule, imports: [CommonModule,
|
|
7481
|
+
MarkdownDisplayComponent], exports: [CommonModule,
|
|
7482
|
+
MarkdownDisplayComponent] }); }
|
|
7483
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayModule, imports: [CommonModule,
|
|
7484
|
+
MarkdownDisplayComponent, CommonModule] }); }
|
|
7485
|
+
}
|
|
7486
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: MarkdownDisplayModule, decorators: [{
|
|
7487
|
+
type: NgModule,
|
|
7488
|
+
args: [{
|
|
7489
|
+
imports: [
|
|
7490
|
+
CommonModule,
|
|
7491
|
+
MarkdownDisplayComponent
|
|
7492
|
+
],
|
|
7493
|
+
exports: [
|
|
7494
|
+
CommonModule,
|
|
7495
|
+
MarkdownDisplayComponent
|
|
7496
|
+
]
|
|
7497
|
+
}]
|
|
7498
|
+
}] });
|
|
7499
|
+
|
|
6374
7500
|
/** --------------- modules ----------------------- **/
|
|
6375
7501
|
|
|
6376
7502
|
/**
|
|
6377
7503
|
* Generated bundle index. Do not edit.
|
|
6378
7504
|
*/
|
|
6379
7505
|
|
|
6380
|
-
export { ALERT_TYPE, AlertComponent, AlertModule, AngularPopupComponent, AngularPopupModule, AtomsModule, AvatarComponent, AvatarModule, BreadcrumbComponent, BreadcrumbModule, ButtonComponent, ButtonGroupComponent, ButtonGroupModule, ButtonModule, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardModule, CheckboxComponent, CheckboxModule, ChipComponent, ChipListComponent, ChipListModule, ChipModule, ClipboardComponent, ClipboardModule, ConfirmationDialogComponent, ContainerComponent, ContainerModule, CustomColumnTemplate, DateRangeComponent, DateRangeModule, DatepickerComponent, DatepickerModule, DialogActionsComponent, DialogComponent, DialogModule, DialogTitlebarComponent, DragAndDropComponent, DragAndDropModule, DropdownButtonComponent, DropdownButtonModule, DropdownComponent, DropdownModule, DropdowntreeComponent, DropdowntreeModule, ExpansionPanelComponent, ExpansionPanelModule, GridFormComponent, GridFormModule, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, GridPaginationComponent, GridPaginationModule, GridPaginationSpacerComponent, IconComponent, IconModule, KebabMenuFilterPipe, LabelComponent, LabelsModule, ListViewComponent, ListViewsModule, LoaderComponent, LoaderModule, LoaderSize, LoaderThemeColor, LoaderType, LoadingSpinnerComponent, LoadingSpinnerModule, MoleculesModule, MultiSelectDropdownComponent, MultiSelectDropdownModule, NotificationComponent, NotificationModule, NumericTextboxComponent, NumericTextboxModule, ProgressBarComponent, ProgressBarsModule, RadioButtonComponent, RadioButtonModule, SearchBoxComponent, SearchBoxModule, SharedComponent, SharedModule, SliderComponent, SliderModule, StepperComponent, StepperModule, SwitchComponent, SwitchModule, TabstripComponent, TabstripModule, TabstripTabComponent, TextAreaModule, TextareaComponent, TextboxComponent, TextboxModule, TimePickerComponent, TimePickerModule, TimeschedulerComponent, TimeschedulerModule, TooltipComponent, TooltipModule, Type, TypographyComponent, TypographyModule, UploaderComponent, UploaderModule };
|
|
7506
|
+
export { ALERT_TYPE, AlertComponent, AlertModule, AngularPopupComponent, AngularPopupModule, AtomsModule, AvatarComponent, AvatarModule, BreadcrumbComponent, BreadcrumbModule, ButtonComponent, ButtonGroupComponent, ButtonGroupModule, ButtonModule, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardModule, CheckboxComponent, CheckboxModule, ChipComponent, ChipListComponent, ChipListModule, ChipModule, ClipboardComponent, ClipboardModule, ConfirmationDialogComponent, ContainerComponent, ContainerModule, CustomColumnTemplate, DateRangeComponent, DateRangeModule, DatepickerComponent, DatepickerModule, DialogActionsComponent, DialogComponent, DialogModule, DialogTitlebarComponent, DragAndDropComponent, DragAndDropModule, DropdownButtonComponent, DropdownButtonModule, DropdownComponent, DropdownModule, DropdowntreeComponent, DropdowntreeModule, ExpansionPanelComponent, ExpansionPanelModule, GridFormComponent, GridFormModule, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, GridPaginationComponent, GridPaginationModule, GridPaginationSpacerComponent, IconComponent, IconModule, KebabMenuFilterPipe, LabelComponent, LabelsModule, ListViewComponent, ListViewsModule, LoaderComponent, LoaderModule, LoaderSize, LoaderThemeColor, LoaderType, LoadingSpinnerComponent, LoadingSpinnerModule, MarkdownDisplayComponent, MarkdownDisplayModule, MoleculesModule, MultiSelectDropdownComponent, MultiSelectDropdownModule, NotificationComponent, NotificationModule, NumericTextboxComponent, NumericTextboxModule, ProgressBarComponent, ProgressBarsModule, RadioButtonComponent, RadioButtonModule, SearchBoxComponent, SearchBoxModule, SharedComponent, SharedModule, SliderComponent, SliderModule, StepperComponent, StepperModule, SwitchComponent, SwitchModule, TabstripComponent, TabstripModule, TabstripTabComponent, TextAreaModule, TextareaComponent, TextboxComponent, TextboxModule, TimePickerComponent, TimePickerModule, TimeschedulerComponent, TimeschedulerModule, TooltipComponent, TooltipModule, TreeListComponent, TreeListModule, TreeViewComponent, TreeViewModule, Type, TypographyComponent, TypographyModule, UploaderComponent, UploaderModule };
|
|
6381
7507
|
//# sourceMappingURL=progress-chef-platform-shared-components.mjs.map
|