@ali-hm/angular-tree-component 21.0.0 → 21.0.3

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/README.md CHANGED
@@ -36,7 +36,7 @@ angular-tree-component supports angular 12+ versions, and AoT compilation.
36
36
 
37
37
  versioning has been change to align with supported Angular version.
38
38
  so:\
39
- v21.\*.\* = Angular 21
39
+ v21.\*.\* = Angular 21 \
40
40
  v20.\*.\* = Angular 20
41
41
  v19.\*.\* = Angular 19
42
42
  v18.\*.\* = Angular 18
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, effect, Injectable, inject, input, ViewEncapsulation, Component, ElementRef, Injector, Renderer2, afterNextRender, output, HostListener, Directive, computed, TemplateRef, ViewContainerRef, forwardRef, EventEmitter, Output, Input, ViewChild, ContentChild, NgModule } from '@angular/core';
2
+ import { signal, effect, Injectable, inject, input, ViewEncapsulation, Component, ElementRef, Injector, Renderer2, computed, afterNextRender, output, HostListener, Directive, TemplateRef, ViewContainerRef, forwardRef, EventEmitter, Output, Input, ViewChild, ContentChild, NgModule } from '@angular/core';
3
3
  import { NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
 
5
5
  const KEYS = {
@@ -244,7 +244,7 @@ class TreeNode {
244
244
  return this.options.allowDragoverStyling;
245
245
  };
246
246
  if (this.id === undefined || this.id === null) {
247
- this.id = uuid();
247
+ this.id = this.treeModel.uuid();
248
248
  } // Make sure there's a unique id without overriding existing ids to work with immutable data structures
249
249
  this.index = index;
250
250
  if (this.getField('children')) {
@@ -524,9 +524,6 @@ class TreeNode {
524
524
  .map((c, index) => new TreeNode(c, this, this.treeModel, index));
525
525
  }
526
526
  }
527
- function uuid() {
528
- return Math.floor(Math.random() * 10000000000000);
529
- }
530
527
 
531
528
  class TreeModel {
532
529
  constructor() {
@@ -538,10 +535,12 @@ class TreeModel {
538
535
  this._selectedLeafNodeIds = signal({}, ...(ngDevMode ? [{ debugName: "_selectedLeafNodeIds" }] : []));
539
536
  this._activeNodeIds = signal({}, ...(ngDevMode ? [{ debugName: "_activeNodeIds" }] : []));
540
537
  this._hiddenNodeIds = signal({}, ...(ngDevMode ? [{ debugName: "_hiddenNodeIds" }] : []));
538
+ this._hiddenNodes = signal([], ...(ngDevMode ? [{ debugName: "_hiddenNodes" }] : []));
541
539
  this._focusedNodeId = signal(null, ...(ngDevMode ? [{ debugName: "_focusedNodeId" }] : []));
542
540
  this._virtualRoot = signal(undefined, ...(ngDevMode ? [{ debugName: "_virtualRoot" }] : []));
543
541
  this.firstUpdate = true;
544
542
  this.subscriptions = [];
543
+ this.generatedIds = {};
545
544
  }
546
545
  static { this.focusedTree = null; }
547
546
  // Public getters/setters to maintain API compatibility
@@ -567,11 +566,7 @@ class TreeModel {
567
566
  return nodes.filter(Boolean);
568
567
  }
569
568
  get hiddenNodes() {
570
- const ids = this._hiddenNodeIds();
571
- const nodes = Object.keys(ids)
572
- .filter((id) => ids[id])
573
- .map((id) => this.getNodeById(id));
574
- return nodes.filter(Boolean);
569
+ return this._hiddenNodes();
575
570
  }
576
571
  get selectedLeafNodes() {
577
572
  const ids = this._selectedLeafNodeIds();
@@ -840,12 +835,15 @@ class TreeModel {
840
835
  return;
841
836
  }
842
837
  const ids = {};
843
- this.roots.forEach((node) => this._filterNode(ids, node, filterFn, autoShow));
838
+ var hiddenNodes = [];
839
+ this.roots.forEach((node) => this._filterNode(ids, node, filterFn, autoShow, hiddenNodes));
844
840
  this._hiddenNodeIds.set(ids);
841
+ this._hiddenNodes.set(hiddenNodes);
845
842
  this.fireEvent({ eventName: TREE_EVENTS.changeFilter });
846
843
  }
847
844
  clearFilter() {
848
845
  this._hiddenNodeIds.set({});
846
+ this._hiddenNodes.set([]);
849
847
  this.fireEvent({ eventName: TREE_EVENTS.changeFilter });
850
848
  }
851
849
  moveNode(node, to) {
@@ -924,13 +922,13 @@ class TreeModel {
924
922
  this._calculateExpandedNodes();
925
923
  }
926
924
  // private methods
927
- _filterNode(ids, node, filterFn, autoShow) {
925
+ _filterNode(ids, node, filterFn, autoShow, hiddenNodes) {
928
926
  // if node passes function then it's visible
929
927
  let isVisible = filterFn(node);
930
928
  if (node.children) {
931
929
  // if one of node's children passes filter then this node is also visible
932
930
  node.children.forEach((child) => {
933
- if (this._filterNode(ids, child, filterFn, autoShow)) {
931
+ if (this._filterNode(ids, child, filterFn, autoShow, hiddenNodes)) {
934
932
  isVisible = true;
935
933
  }
936
934
  });
@@ -938,6 +936,7 @@ class TreeModel {
938
936
  // mark node as hidden
939
937
  if (!isVisible) {
940
938
  ids[node.id] = true;
939
+ hiddenNodes.push(node);
941
940
  }
942
941
  // auto expand parents to make sure the filtered nodes are visible
943
942
  if (autoShow && isVisible) {
@@ -972,10 +971,18 @@ class TreeModel {
972
971
  _setActiveNodeMulti(node, value) {
973
972
  this._activeNodeIds.update(ids => ({ ...ids, [node.id]: value }));
974
973
  }
975
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeModel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
976
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeModel }); }
974
+ uuid() {
975
+ var res = Math.floor(Math.random() * 10000000000000);
976
+ while (this.generatedIds[res]) {
977
+ res = Math.floor(Math.random() * 10000000000000);
978
+ }
979
+ this.generatedIds[res] = true;
980
+ return res;
981
+ }
982
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeModel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
983
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeModel }); }
977
984
  }
978
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeModel, decorators: [{
985
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeModel, decorators: [{
979
986
  type: Injectable
980
987
  }] });
981
988
 
@@ -992,10 +999,10 @@ class TreeDraggedElement {
992
999
  isDragging() {
993
1000
  return !!this.get();
994
1001
  }
995
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeDraggedElement, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
996
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeDraggedElement, providedIn: 'root' }); }
1002
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeDraggedElement, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1003
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeDraggedElement, providedIn: 'root' }); }
997
1004
  }
998
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeDraggedElement, decorators: [{
1005
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeDraggedElement, decorators: [{
999
1006
  type: Injectable,
1000
1007
  args: [{
1001
1008
  providedIn: 'root'
@@ -1043,19 +1050,21 @@ class TreeVirtualScroll {
1043
1050
  const totalHeight = this.totalHeight;
1044
1051
  const viewportHeight = this._viewportHeight();
1045
1052
  this.fixScroll();
1046
- }, ...(ngDevMode ? [{ debugName: "fixScrollEffect", injector }] : [{ injector }]));
1053
+ }, { ...(ngDevMode ? { debugName: "fixScrollEffect" } : {}), injector });
1047
1054
  const rootsEffect = effect(() => {
1048
1055
  const roots = this.treeModel.roots;
1049
- fn();
1050
- }, ...(ngDevMode ? [{ debugName: "rootsEffect", injector }] : [{ injector }]));
1056
+ if (roots) {
1057
+ fn();
1058
+ }
1059
+ }, { ...(ngDevMode ? { debugName: "rootsEffect" } : {}), injector });
1051
1060
  const expandedEffect = effect(() => {
1052
- const expandedNodes = this.treeModel.expandedNodes;
1061
+ const expandedIds = this.treeModel['_expandedNodeIds']();
1053
1062
  fn();
1054
- }, ...(ngDevMode ? [{ debugName: "expandedEffect", injector }] : [{ injector }]));
1063
+ }, { ...(ngDevMode ? { debugName: "expandedEffect" } : {}), injector });
1055
1064
  const hiddenEffect = effect(() => {
1056
- const hiddenNodes = this.treeModel.hiddenNodes;
1065
+ const hiddenIds = this.treeModel['_hiddenNodeIds']();
1057
1066
  fn();
1058
- }, ...(ngDevMode ? [{ debugName: "hiddenEffect", injector }] : [{ injector }]));
1067
+ }, { ...(ngDevMode ? { debugName: "hiddenEffect" } : {}), injector });
1059
1068
  this._dispose = [
1060
1069
  () => fixScrollEffect.destroy(),
1061
1070
  () => rootsEffect.destroy(),
@@ -1072,7 +1081,9 @@ class TreeVirtualScroll {
1072
1081
  recalcPositions() {
1073
1082
  const vRoot = this.treeModel['_virtualRoot']();
1074
1083
  if (vRoot) {
1075
- vRoot.height = this._getPositionAfter(this.treeModel.getVisibleRoots(), 0);
1084
+ const visibleRoots = this.treeModel.getVisibleRoots();
1085
+ const newHeight = this._getPositionAfter(visibleRoots, 0);
1086
+ vRoot.height = newHeight;
1076
1087
  }
1077
1088
  }
1078
1089
  _getPositionAfter(nodes, startPos) {
@@ -1086,7 +1097,8 @@ class TreeVirtualScroll {
1086
1097
  _getPositionAfterNode(node, startPos) {
1087
1098
  let position = node.getSelfHeight() + startPos;
1088
1099
  if (node.children && node.isExpanded) { // TBD: consider loading component as well
1089
- position = this._getPositionAfter(node.visibleChildren, position);
1100
+ const visibleChildren = node.visibleChildren;
1101
+ position = this._getPositionAfter(visibleChildren, position);
1090
1102
  }
1091
1103
  node.height = position - startPos;
1092
1104
  return position;
@@ -1169,10 +1181,10 @@ class TreeVirtualScroll {
1169
1181
  if (this.y > maxY)
1170
1182
  this._setYBlocks(maxY / Y_EPSILON);
1171
1183
  }
1172
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1173
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeVirtualScroll }); }
1184
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1185
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeVirtualScroll }); }
1174
1186
  }
1175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeVirtualScroll, decorators: [{
1187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeVirtualScroll, decorators: [{
1176
1188
  type: Injectable
1177
1189
  }], ctorParameters: () => [] });
1178
1190
  function binarySearch(nodes, condition, firstIndex = 0) {
@@ -1198,8 +1210,8 @@ class LoadingComponent {
1198
1210
  this.template = input(undefined, ...(ngDevMode ? [{ debugName: "template" }] : []));
1199
1211
  this.node = input(undefined, ...(ngDevMode ? [{ debugName: "node" }] : []));
1200
1212
  }
1201
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1202
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: LoadingComponent, isStandalone: true, selector: "tree-loading-component", inputs: { template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1213
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1214
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: LoadingComponent, isStandalone: true, selector: "tree-loading-component", inputs: { template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1203
1215
  @if (!template()) {
1204
1216
  <span>loading...</span>
1205
1217
  }
@@ -1210,7 +1222,7 @@ class LoadingComponent {
1210
1222
  </ng-container>
1211
1223
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
1212
1224
  }
1213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: LoadingComponent, decorators: [{
1225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LoadingComponent, decorators: [{
1214
1226
  type: Component,
1215
1227
  args: [{
1216
1228
  encapsulation: ViewEncapsulation.None,
@@ -1235,6 +1247,13 @@ class TreeViewportComponent {
1235
1247
  this.virtualScroll = inject(TreeVirtualScroll);
1236
1248
  this.injector = inject(Injector);
1237
1249
  this.renderer = inject(Renderer2);
1250
+ // Computed signal for total height - ensures reactive updates
1251
+ this.totalHeight = computed(() => {
1252
+ if (!this.virtualScroll.isEnabled()) {
1253
+ return 'auto';
1254
+ }
1255
+ return this.virtualScroll.totalHeight + 'px';
1256
+ }, ...(ngDevMode ? [{ debugName: "totalHeight" }] : []));
1238
1257
  this.setViewport = this.throttle(() => {
1239
1258
  this.virtualScroll.setViewport(this.elementRef.nativeElement);
1240
1259
  }, 17);
@@ -1258,11 +1277,6 @@ class TreeViewportComponent {
1258
1277
  this.removeScrollListener?.();
1259
1278
  this.removeScrollListener = null;
1260
1279
  }
1261
- getTotalHeight() {
1262
- return ((this.virtualScroll.isEnabled() &&
1263
- this.virtualScroll.totalHeight + 'px') ||
1264
- 'auto');
1265
- }
1266
1280
  throttle(func, timeFrame) {
1267
1281
  let lastTime = 0;
1268
1282
  return function () {
@@ -1273,17 +1287,17 @@ class TreeViewportComponent {
1273
1287
  }
1274
1288
  };
1275
1289
  }
1276
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeViewportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1277
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: TreeViewportComponent, isStandalone: true, selector: "tree-viewport", providers: [TreeVirtualScroll], ngImport: i0, template: `
1278
- <div [style.height]="getTotalHeight()">
1290
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeViewportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1291
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.3", type: TreeViewportComponent, isStandalone: true, selector: "tree-viewport", providers: [TreeVirtualScroll], ngImport: i0, template: `
1292
+ <div [style.height]="totalHeight()">
1279
1293
  <ng-content></ng-content>
1280
1294
  </div>
1281
1295
  `, isInline: true }); }
1282
1296
  }
1283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeViewportComponent, decorators: [{
1297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeViewportComponent, decorators: [{
1284
1298
  type: Component,
1285
1299
  args: [{ selector: 'tree-viewport', providers: [TreeVirtualScroll], template: `
1286
- <div [style.height]="getTotalHeight()">
1300
+ <div [style.height]="totalHeight()">
1287
1301
  <ng-content></ng-content>
1288
1302
  </div>
1289
1303
  `, imports: [] }]
@@ -1389,10 +1403,10 @@ class TreeDropDirective {
1389
1403
  removeDisabledClass() {
1390
1404
  this.renderer.removeClass(this.el.nativeElement, DRAG_DISABLED_CLASS);
1391
1405
  }
1392
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1393
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: TreeDropDirective, isStandalone: true, selector: "[treeDrop]", inputs: { allowDragoverStyling: { classPropertyName: "allowDragoverStyling", publicName: "allowDragoverStyling", isSignal: true, isRequired: false, transformFunction: null }, treeAllowDrop: { classPropertyName: "treeAllowDrop", publicName: "treeAllowDrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDropCallback: "treeDrop", onDragOverCallback: "treeDropDragOver", onDragLeaveCallback: "treeDropDragLeave", onDragEnterCallback: "treeDropDragEnter" }, host: { listeners: { "drop": "onDrop($event)" } }, ngImport: i0 }); }
1406
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1407
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.3", type: TreeDropDirective, isStandalone: true, selector: "[treeDrop]", inputs: { allowDragoverStyling: { classPropertyName: "allowDragoverStyling", publicName: "allowDragoverStyling", isSignal: true, isRequired: false, transformFunction: null }, treeAllowDrop: { classPropertyName: "treeAllowDrop", publicName: "treeAllowDrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDropCallback: "treeDrop", onDragOverCallback: "treeDropDragOver", onDragLeaveCallback: "treeDropDragLeave", onDragEnterCallback: "treeDropDragEnter" }, host: { listeners: { "drop": "onDrop($event)" } }, ngImport: i0 }); }
1394
1408
  }
1395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeDropDirective, decorators: [{
1409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeDropDirective, decorators: [{
1396
1410
  type: Directive,
1397
1411
  args: [{ selector: '[treeDrop]' }]
1398
1412
  }], ctorParameters: () => [], propDecorators: { allowDragoverStyling: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowDragoverStyling", required: false }] }], treeAllowDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeAllowDrop", required: false }] }], onDropCallback: [{ type: i0.Output, args: ["treeDrop"] }], onDragOverCallback: [{ type: i0.Output, args: ["treeDropDragOver"] }], onDragLeaveCallback: [{ type: i0.Output, args: ["treeDropDragLeave"] }], onDragEnterCallback: [{ type: i0.Output, args: ["treeDropDragEnter"] }], onDrop: [{
@@ -1414,8 +1428,8 @@ class TreeNodeDropSlot {
1414
1428
  allowDrop(element, $event) {
1415
1429
  return this.node().options.allowDrop(element, { parent: this.node(), index: this.dropIndex() }, $event);
1416
1430
  }
1417
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeDropSlot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1418
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: TreeNodeDropSlot, isStandalone: true, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, dropIndex: { classPropertyName: "dropIndex", publicName: "dropIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1431
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeDropSlot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1432
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.3", type: TreeNodeDropSlot, isStandalone: true, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, dropIndex: { classPropertyName: "dropIndex", publicName: "dropIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1419
1433
  <div
1420
1434
  class="node-drop-slot"
1421
1435
  (treeDrop)="onDrop($event)"
@@ -1424,7 +1438,7 @@ class TreeNodeDropSlot {
1424
1438
  ></div>
1425
1439
  `, isInline: true, dependencies: [{ kind: "directive", type: TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }], encapsulation: i0.ViewEncapsulation.None }); }
1426
1440
  }
1427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeDropSlot, decorators: [{
1441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeDropSlot, decorators: [{
1428
1442
  type: Component,
1429
1443
  args: [{ selector: 'TreeNodeDropSlot, tree-node-drop-slot', encapsulation: ViewEncapsulation.None, template: `
1430
1444
  <div
@@ -1440,8 +1454,8 @@ class TreeNodeCheckboxComponent {
1440
1454
  constructor() {
1441
1455
  this.node = input(undefined, ...(ngDevMode ? [{ debugName: "node" }] : []));
1442
1456
  }
1443
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1444
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: TreeNodeCheckboxComponent, isStandalone: true, selector: "tree-node-checkbox", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1457
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1458
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.3", type: TreeNodeCheckboxComponent, isStandalone: true, selector: "tree-node-checkbox", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1445
1459
  <input
1446
1460
  class="tree-node-checkbox"
1447
1461
  type="checkbox"
@@ -1451,7 +1465,7 @@ class TreeNodeCheckboxComponent {
1451
1465
  />
1452
1466
  `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
1453
1467
  }
1454
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeCheckboxComponent, decorators: [{
1468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeCheckboxComponent, decorators: [{
1455
1469
  type: Component,
1456
1470
  args: [{ selector: 'tree-node-checkbox', encapsulation: ViewEncapsulation.None, template: `
1457
1471
  <input
@@ -1469,8 +1483,8 @@ class TreeNodeExpanderComponent {
1469
1483
  this.node = input(...(ngDevMode ? [undefined, { debugName: "node" }] : []));
1470
1484
  this.hasChildren = computed(() => this.node().hasChildren, ...(ngDevMode ? [{ debugName: "hasChildren" }] : []));
1471
1485
  }
1472
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeExpanderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1473
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: TreeNodeExpanderComponent, isStandalone: true, selector: "tree-node-expander", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1486
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeExpanderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1487
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: TreeNodeExpanderComponent, isStandalone: true, selector: "tree-node-expander", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1474
1488
  @if (hasChildren()) {
1475
1489
  <span
1476
1490
  [class.toggle-children-wrapper-expanded]="node().isExpanded"
@@ -1485,7 +1499,7 @@ class TreeNodeExpanderComponent {
1485
1499
  }
1486
1500
  `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
1487
1501
  }
1488
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeExpanderComponent, decorators: [{
1502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeExpanderComponent, decorators: [{
1489
1503
  type: Component,
1490
1504
  args: [{ selector: 'tree-node-expander', encapsulation: ViewEncapsulation.None, template: `
1491
1505
  @if (hasChildren()) {
@@ -1508,7 +1522,7 @@ class TreeDragDirective {
1508
1522
  this.el = inject(ElementRef);
1509
1523
  this.renderer = inject(Renderer2);
1510
1524
  this.treeDraggedElement = inject(TreeDraggedElement);
1511
- this.draggedElement = input(undefined, ...(ngDevMode ? [{ debugName: "draggedElement", alias: "treeDrag" }] : [{ alias: "treeDrag" }]));
1525
+ this.draggedElement = input(undefined, { ...(ngDevMode ? { debugName: "draggedElement" } : {}), alias: "treeDrag" });
1512
1526
  this.treeDragEnabled = input(undefined, ...(ngDevMode ? [{ debugName: "treeDragEnabled" }] : []));
1513
1527
  this.dragUnlisten = null;
1514
1528
  this.dragEventHandler = this.onDrag.bind(this);
@@ -1546,10 +1560,10 @@ class TreeDragDirective {
1546
1560
  }
1547
1561
  this.treeDraggedElement.set(null);
1548
1562
  }
1549
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeDragDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1550
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: TreeDragDirective, isStandalone: true, selector: "[treeDrag]", inputs: { draggedElement: { classPropertyName: "draggedElement", publicName: "treeDrag", isSignal: true, isRequired: false, transformFunction: null }, treeDragEnabled: { classPropertyName: "treeDragEnabled", publicName: "treeDragEnabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd()" } }, ngImport: i0 }); }
1563
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeDragDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1564
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.3", type: TreeDragDirective, isStandalone: true, selector: "[treeDrag]", inputs: { draggedElement: { classPropertyName: "draggedElement", publicName: "treeDrag", isSignal: true, isRequired: false, transformFunction: null }, treeDragEnabled: { classPropertyName: "treeDragEnabled", publicName: "treeDragEnabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd()" } }, ngImport: i0 }); }
1551
1565
  }
1552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeDragDirective, decorators: [{
1566
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeDragDirective, decorators: [{
1553
1567
  type: Directive,
1554
1568
  args: [{ selector: '[treeDrag]' }]
1555
1569
  }], ctorParameters: () => [], propDecorators: { draggedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeDrag", required: false }] }], treeDragEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeDragEnabled", required: false }] }], onDragStart: [{
@@ -1566,8 +1580,8 @@ class TreeNodeContent {
1566
1580
  this.index = input(undefined, ...(ngDevMode ? [{ debugName: "index" }] : []));
1567
1581
  this.template = input(undefined, ...(ngDevMode ? [{ debugName: "template" }] : []));
1568
1582
  }
1569
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1570
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: TreeNodeContent, isStandalone: true, selector: "tree-node-content", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1583
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1584
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: TreeNodeContent, isStandalone: true, selector: "tree-node-content", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1571
1585
  @if (!template()) {
1572
1586
  <span>{{ node().displayField }}</span>
1573
1587
  }
@@ -1582,7 +1596,7 @@ class TreeNodeContent {
1582
1596
  </ng-container>
1583
1597
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
1584
1598
  }
1585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeContent, decorators: [{
1599
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeContent, decorators: [{
1586
1600
  type: Component,
1587
1601
  args: [{
1588
1602
  selector: 'tree-node-content',
@@ -1612,8 +1626,8 @@ class TreeNodeWrapperComponent {
1612
1626
  this.templates = input(...(ngDevMode ? [undefined, { debugName: "templates" }] : []));
1613
1627
  this.treeNodeWrapperTemplate = computed(() => this.templates().treeNodeWrapperTemplate, ...(ngDevMode ? [{ debugName: "treeNodeWrapperTemplate" }] : []));
1614
1628
  }
1615
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1616
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: TreeNodeWrapperComponent, isStandalone: true, selector: "tree-node-wrapper", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1629
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1630
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: TreeNodeWrapperComponent, isStandalone: true, selector: "tree-node-wrapper", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1617
1631
  @if (!treeNodeWrapperTemplate()) {
1618
1632
  <div class="node-wrapper" [style.padding-left]="node().getNodePadding()">
1619
1633
  @if (node().options.useCheckbox) {
@@ -1659,7 +1673,7 @@ class TreeNodeWrapperComponent {
1659
1673
  </ng-container>
1660
1674
  `, isInline: true, dependencies: [{ kind: "component", type: TreeNodeCheckboxComponent, selector: "tree-node-checkbox", inputs: ["node"] }, { kind: "component", type: TreeNodeExpanderComponent, selector: "tree-node-expander", inputs: ["node"] }, { kind: "directive", type: TreeDragDirective, selector: "[treeDrag]", inputs: ["treeDrag", "treeDragEnabled"] }, { kind: "directive", type: TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }, { kind: "component", type: TreeNodeContent, selector: "tree-node-content", inputs: ["node", "index", "template"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
1661
1675
  }
1662
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeWrapperComponent, decorators: [{
1676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeWrapperComponent, decorators: [{
1663
1677
  type: Component,
1664
1678
  args: [{ selector: 'tree-node-wrapper', encapsulation: ViewEncapsulation.None, template: `
1665
1679
  @if (!treeNodeWrapperTemplate()) {
@@ -1721,16 +1735,10 @@ class TreeAnimateOpenDirective {
1721
1735
  this.renderer = inject(Renderer2);
1722
1736
  this.templateRef = inject(TemplateRef);
1723
1737
  this.viewContainerRef = inject(ViewContainerRef);
1724
- this.isOpen = input(undefined, ...(ngDevMode ? [{ debugName: "isOpen", alias: 'treeAnimateOpen' }] : [{ alias: 'treeAnimateOpen' }]));
1725
- this.animateSpeed = input(undefined, ...(ngDevMode ? [{ debugName: "animateSpeed", alias: 'treeAnimateOpenSpeed' }] : [{
1726
- alias: 'treeAnimateOpenSpeed'
1727
- }]));
1728
- this.animateAcceleration = input(undefined, ...(ngDevMode ? [{ debugName: "animateAcceleration", alias: 'treeAnimateOpenAcceleration' }] : [{
1729
- alias: 'treeAnimateOpenAcceleration'
1730
- }]));
1731
- this.isEnabled = input(undefined, ...(ngDevMode ? [{ debugName: "isEnabled", alias: 'treeAnimateOpenEnabled' }] : [{
1732
- alias: 'treeAnimateOpenEnabled'
1733
- }]));
1738
+ this.isOpen = input(undefined, { ...(ngDevMode ? { debugName: "isOpen" } : {}), alias: 'treeAnimateOpen' });
1739
+ this.animateSpeed = input(undefined, { ...(ngDevMode ? { debugName: "animateSpeed" } : {}), alias: 'treeAnimateOpenSpeed' });
1740
+ this.animateAcceleration = input(undefined, { ...(ngDevMode ? { debugName: "animateAcceleration" } : {}), alias: 'treeAnimateOpenAcceleration' });
1741
+ this.isEnabled = input(undefined, { ...(ngDevMode ? { debugName: "isEnabled" } : {}), alias: 'treeAnimateOpenEnabled' });
1734
1742
  this.startOpenTimeout = null;
1735
1743
  this.openInterval = null;
1736
1744
  this.closeInterval = null;
@@ -1839,10 +1847,10 @@ class TreeAnimateOpenDirective {
1839
1847
  this.closeInterval = null;
1840
1848
  }
1841
1849
  }
1842
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeAnimateOpenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1843
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: TreeAnimateOpenDirective, isStandalone: true, selector: "[treeAnimateOpen]", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "treeAnimateOpen", isSignal: true, isRequired: false, transformFunction: null }, animateSpeed: { classPropertyName: "animateSpeed", publicName: "treeAnimateOpenSpeed", isSignal: true, isRequired: false, transformFunction: null }, animateAcceleration: { classPropertyName: "animateAcceleration", publicName: "treeAnimateOpenAcceleration", isSignal: true, isRequired: false, transformFunction: null }, isEnabled: { classPropertyName: "isEnabled", publicName: "treeAnimateOpenEnabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
1850
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeAnimateOpenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1851
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.3", type: TreeAnimateOpenDirective, isStandalone: true, selector: "[treeAnimateOpen]", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "treeAnimateOpen", isSignal: true, isRequired: false, transformFunction: null }, animateSpeed: { classPropertyName: "animateSpeed", publicName: "treeAnimateOpenSpeed", isSignal: true, isRequired: false, transformFunction: null }, animateAcceleration: { classPropertyName: "animateAcceleration", publicName: "treeAnimateOpenAcceleration", isSignal: true, isRequired: false, transformFunction: null }, isEnabled: { classPropertyName: "isEnabled", publicName: "treeAnimateOpenEnabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
1844
1852
  }
1845
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeAnimateOpenDirective, decorators: [{
1853
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeAnimateOpenDirective, decorators: [{
1846
1854
  type: Directive,
1847
1855
  args: [{ selector: '[treeAnimateOpen]' }]
1848
1856
  }], ctorParameters: () => [], propDecorators: { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeAnimateOpen", required: false }] }], animateSpeed: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeAnimateOpenSpeed", required: false }] }], animateAcceleration: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeAnimateOpenAcceleration", required: false }] }], isEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeAnimateOpenEnabled", required: false }] }] } });
@@ -1853,8 +1861,8 @@ class TreeNodeChildrenComponent {
1853
1861
  this.templates = input(undefined, ...(ngDevMode ? [{ debugName: "templates" }] : []));
1854
1862
  this.children = computed(() => this.node().children, ...(ngDevMode ? [{ debugName: "children" }] : []));
1855
1863
  }
1856
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeChildrenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1857
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: TreeNodeChildrenComponent, isStandalone: true, selector: "tree-node-children", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1864
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeChildrenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1865
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: TreeNodeChildrenComponent, isStandalone: true, selector: "tree-node-children", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1858
1866
  <div
1859
1867
  [class.tree-children]="true"
1860
1868
  [class.tree-children-no-padding]="node().options.levelPadding"
@@ -1883,7 +1891,7 @@ class TreeNodeChildrenComponent {
1883
1891
  </div>
1884
1892
  `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => TreeAnimateOpenDirective), selector: "[treeAnimateOpen]", inputs: ["treeAnimateOpen", "treeAnimateOpenSpeed", "treeAnimateOpenAcceleration", "treeAnimateOpenEnabled"] }, { kind: "component", type: i0.forwardRef(() => TreeNodeCollectionComponent), selector: "tree-node-collection", inputs: ["nodes", "treeModel", "templates"] }, { kind: "component", type: i0.forwardRef(() => LoadingComponent), selector: "tree-loading-component", inputs: ["template", "node"] }], encapsulation: i0.ViewEncapsulation.None }); }
1885
1893
  }
1886
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeChildrenComponent, decorators: [{
1894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeChildrenComponent, decorators: [{
1887
1895
  type: Component,
1888
1896
  args: [{ selector: 'tree-node-children', encapsulation: ViewEncapsulation.None, template: `
1889
1897
  <div
@@ -1945,7 +1953,7 @@ class TreeNodeCollectionComponent {
1945
1953
  const viewportNodes = this.virtualScroll.getViewportNodes(nodes);
1946
1954
  this.viewportNodes.set(viewportNodes);
1947
1955
  }
1948
- }, ...(ngDevMode ? [{ debugName: "viewportEffect", injector: this.injector }] : [{ injector: this.injector }]));
1956
+ }, { ...(ngDevMode ? { debugName: "viewportEffect" } : {}), injector: this.injector });
1949
1957
  this._disposeEffects = [() => viewportEffect.destroy()];
1950
1958
  }
1951
1959
  ngOnDestroy() {
@@ -1954,8 +1962,8 @@ class TreeNodeCollectionComponent {
1954
1962
  trackNode(index, node) {
1955
1963
  return node.id;
1956
1964
  }
1957
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1958
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: TreeNodeCollectionComponent, isStandalone: true, selector: "tree-node-collection", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, treeModel: { classPropertyName: "treeModel", publicName: "treeModel", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1965
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1966
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: TreeNodeCollectionComponent, isStandalone: true, selector: "tree-node-collection", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, treeModel: { classPropertyName: "treeModel", publicName: "treeModel", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1959
1967
  <div [style.margin-top]="marginTop()">
1960
1968
  @for (node of viewportNodes(); track trackNode(i, node); let i = $index) {
1961
1969
  <tree-node [node]="node" [index]="i" [templates]="templates()">
@@ -1964,7 +1972,7 @@ class TreeNodeCollectionComponent {
1964
1972
  </div>
1965
1973
  `, isInline: true, dependencies: [{ kind: "component", type: i0.forwardRef(() => TreeNodeComponent), selector: "TreeNode, tree-node", inputs: ["node", "index", "templates"] }], encapsulation: i0.ViewEncapsulation.None }); }
1966
1974
  }
1967
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeCollectionComponent, decorators: [{
1975
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeCollectionComponent, decorators: [{
1968
1976
  type: Component,
1969
1977
  args: [{
1970
1978
  selector: 'tree-node-collection',
@@ -1987,8 +1995,8 @@ class TreeNodeComponent {
1987
1995
  this.templates = input(...(ngDevMode ? [undefined, { debugName: "templates" }] : []));
1988
1996
  this.treeNodeFullTemplate = computed(() => this.templates().treeNodeFullTemplate, ...(ngDevMode ? [{ debugName: "treeNodeFullTemplate" }] : []));
1989
1997
  }
1990
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1991
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: TreeNodeComponent, isStandalone: true, selector: "TreeNode, tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1998
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1999
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: TreeNodeComponent, isStandalone: true, selector: "TreeNode, tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1992
2000
  @if (!treeNodeFullTemplate()) {
1993
2001
  <div
1994
2002
  [class]="node().getClass()"
@@ -2034,7 +2042,7 @@ class TreeNodeComponent {
2034
2042
  </ng-container>
2035
2043
  `, isInline: true, dependencies: [{ kind: "component", type: TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }, { kind: "component", type: TreeNodeWrapperComponent, selector: "tree-node-wrapper", inputs: ["node", "index", "templates"] }, { kind: "component", type: TreeNodeChildrenComponent, selector: "tree-node-children", inputs: ["node", "templates"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
2036
2044
  }
2037
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeNodeComponent, decorators: [{
2045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeNodeComponent, decorators: [{
2038
2046
  type: Component,
2039
2047
  args: [{ selector: 'TreeNode, tree-node', encapsulation: ViewEncapsulation.None, template: `
2040
2048
  @if (!treeNodeFullTemplate()) {
@@ -2145,8 +2153,8 @@ class TreeComponent {
2145
2153
  return obj;
2146
2154
  }, {});
2147
2155
  }
2148
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2149
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: TreeComponent, isStandalone: true, selector: "Tree, tree-root", inputs: { nodes: "nodes", options: "options", focused: "focused", state: "state" }, outputs: { toggleExpanded: "toggleExpanded", activate: "activate", deactivate: "deactivate", nodeActivate: "nodeActivate", nodeDeactivate: "nodeDeactivate", select: "select", deselect: "deselect", focus: "focus", blur: "blur", updateData: "updateData", initialized: "initialized", moveNode: "moveNode", copyNode: "copyNode", loadNodeChildren: "loadNodeChildren", changeFilter: "changeFilter", event: "event", stateChange: "stateChange" }, host: { listeners: { "body: keydown": "onKeydown($event)", "body: mousedown": "onMousedown($event)" } }, providers: [TreeModel], queries: [{ propertyName: "loadingTemplate", first: true, predicate: ["loadingTemplate"], descendants: true }, { propertyName: "treeNodeTemplate", first: true, predicate: ["treeNodeTemplate"], descendants: true }, { propertyName: "treeNodeWrapperTemplate", first: true, predicate: ["treeNodeWrapperTemplate"], descendants: true }, { propertyName: "treeNodeFullTemplate", first: true, predicate: ["treeNodeFullTemplate"], descendants: true }], viewQueries: [{ propertyName: "viewportComponent", first: true, predicate: ["viewport"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2156
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2157
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: TreeComponent, isStandalone: true, selector: "Tree, tree-root", inputs: { nodes: "nodes", options: "options", focused: "focused", state: "state" }, outputs: { toggleExpanded: "toggleExpanded", activate: "activate", deactivate: "deactivate", nodeActivate: "nodeActivate", nodeDeactivate: "nodeDeactivate", select: "select", deselect: "deselect", focus: "focus", blur: "blur", updateData: "updateData", initialized: "initialized", moveNode: "moveNode", copyNode: "copyNode", loadNodeChildren: "loadNodeChildren", changeFilter: "changeFilter", event: "event", stateChange: "stateChange" }, host: { listeners: { "body: keydown": "onKeydown($event)", "body: mousedown": "onMousedown($event)" } }, providers: [TreeModel], queries: [{ propertyName: "loadingTemplate", first: true, predicate: ["loadingTemplate"], descendants: true }, { propertyName: "treeNodeTemplate", first: true, predicate: ["treeNodeTemplate"], descendants: true }, { propertyName: "treeNodeWrapperTemplate", first: true, predicate: ["treeNodeWrapperTemplate"], descendants: true }, { propertyName: "treeNodeFullTemplate", first: true, predicate: ["treeNodeFullTemplate"], descendants: true }], viewQueries: [{ propertyName: "viewportComponent", first: true, predicate: ["viewport"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
2150
2158
  <tree-viewport #viewport>
2151
2159
  <div
2152
2160
  class="angular-tree-component"
@@ -2178,7 +2186,7 @@ class TreeComponent {
2178
2186
  </tree-viewport>
2179
2187
  `, isInline: true, dependencies: [{ kind: "component", type: TreeViewportComponent, selector: "tree-viewport" }, { kind: "component", type: TreeNodeCollectionComponent, selector: "tree-node-collection", inputs: ["nodes", "treeModel", "templates"] }, { kind: "component", type: TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }] }); }
2180
2188
  }
2181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeComponent, decorators: [{
2189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeComponent, decorators: [{
2182
2190
  type: Component,
2183
2191
  args: [{ selector: 'Tree, tree-root', providers: [TreeModel], template: `
2184
2192
  <tree-viewport #viewport>
@@ -2281,8 +2289,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
2281
2289
  }] } });
2282
2290
 
2283
2291
  class TreeModule {
2284
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2285
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: TreeModule, imports: [CommonModule, TreeComponent,
2292
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2293
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.3", ngImport: i0, type: TreeModule, imports: [CommonModule, TreeComponent,
2286
2294
  TreeNodeComponent,
2287
2295
  TreeNodeContent,
2288
2296
  LoadingComponent,
@@ -2309,9 +2317,9 @@ class TreeModule {
2309
2317
  TreeNodeWrapperComponent,
2310
2318
  TreeNodeCheckboxComponent,
2311
2319
  TreeAnimateOpenDirective] }); }
2312
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeModule, imports: [CommonModule] }); }
2320
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeModule, imports: [CommonModule] }); }
2313
2321
  }
2314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: TreeModule, decorators: [{
2322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: TreeModule, decorators: [{
2315
2323
  type: NgModule,
2316
2324
  args: [{
2317
2325
  declarations: [],