@c10t/nice-component-library 0.0.11 → 0.0.12

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.
@@ -52,12 +52,13 @@ export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnIni
52
52
  formControl: AbstractControl | undefined;
53
53
  chooseVirtualScroll?: CdkVirtualScrollViewport;
54
54
  selectedVirtualScroll?: CdkVirtualScrollViewport;
55
- get NsValiator(): typeof ValidatorService;
56
55
  constructor(translateService: TranslateService, injector: Injector, cdr: ChangeDetectorRef, ngControl: NgControl);
56
+ get NsValiator(): typeof ValidatorService;
57
57
  setSelectedNode(): void;
58
58
  setDataSourceOrigin(): void;
59
59
  ngOnInit(): void;
60
60
  ngAfterViewInit(): void;
61
+ trackByValue(index: number, node: FlatTreeNodeModel): any;
61
62
  getDisplayInputFunc(node: FlatTreeNodeModel): boolean;
62
63
  getDisabledInputFunc(node: FlatTreeNodeModel): boolean;
63
64
  checkDisabledNode(node: FlatTreeNodeModel): boolean;
@@ -66,15 +67,13 @@ export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnIni
66
67
  checkIsView(isView: boolean | (() => boolean)): boolean;
67
68
  ngOnChanges(simpleChanges: SimpleChanges): void;
68
69
  transformer: (node: FlatTreeNodeModel, level: number) => FlatTreeNodeModel;
69
- private _getLevel;
70
- private _isExpandable;
71
- private _getChildren;
72
70
  propagateChange: (_: any) => void;
73
71
  registerOnChange(fn: any): void;
74
72
  registerOnTouched(fn: any): void;
75
73
  writeValue(obj: any): void;
76
74
  updateSelectedTree(): void;
77
75
  checkedDefaultValue(): void;
76
+ bulkSelectedTreeChange(nodes: FlatTreeNodeModel[]): void;
78
77
  getAllChildNode(treeControl: FlatTreeControl<FlatTreeNodeModel>, node: FlatTreeNodeModel): FlatTreeNodeModel[];
79
78
  updateSelectAll(childrenNode?: FlatTreeNodeModel[]): void;
80
79
  checkParentNode(checked: boolean, node: FlatTreeNodeModel, isSelectedChange?: boolean): void;
@@ -91,6 +90,9 @@ export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnIni
91
90
  expandTreeDataSource(treeControl: FlatTreeControl<FlatTreeNodeModel>, expandProperty: 'isExpanded' | 'isFilterExpanded'): void;
92
91
  onLeafNodeClick(node: FlatTreeNodeModel): void;
93
92
  onParentNodeClick(node: FlatTreeNodeModel): void;
93
+ private _getLevel;
94
+ private _isExpandable;
95
+ private _getChildren;
94
96
  static ɵfac: i0.ɵɵFactoryDeclaration<CvaFlatTreeComponent, [null, null, null, { optional: true; self: true; }]>;
95
97
  static ɵcmp: i0.ɵɵComponentDeclaration<CvaFlatTreeComponent, "cva-flat-tree", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "value": { "alias": "value"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isView": { "alias": "isView"; "required": false; }; "isDisplayChooseTreeOnly": { "alias": "isDisplayChooseTreeOnly"; "required": false; }; "isHideCheckbox": { "alias": "isHideCheckbox"; "required": false; }; "isCollapseSelected": { "alias": "isCollapseSelected"; "required": false; }; "selectedLabelTitle": { "alias": "selectedLabelTitle"; "required": false; }; "viewHeight": { "alias": "viewHeight"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "percentOfLabelOutside": { "alias": "percentOfLabelOutside"; "required": false; }; "treeConfig": { "alias": "treeConfig"; "required": false; }; "isSearchOutSide": { "alias": "isSearchOutSide"; "required": false; }; "searchTextOutSide": { "alias": "searchTextOutSide"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "fullDatasource": { "alias": "fullDatasource"; "required": false; }; "isFormControl": { "alias": "isFormControl"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, never, false, never>;
96
98
  }
@@ -7383,9 +7383,6 @@ class CvaFlatTreeComponent {
7383
7383
  formControl;
7384
7384
  chooseVirtualScroll;
7385
7385
  selectedVirtualScroll;
7386
- get NsValiator() {
7387
- return ValidatorService;
7388
- }
7389
7386
  constructor(translateService, injector, cdr, ngControl) {
7390
7387
  this.translateService = translateService;
7391
7388
  this.injector = injector;
@@ -7406,6 +7403,9 @@ class CvaFlatTreeComponent {
7406
7403
  this.selectedDataSource = new MatTreeFlatDataSource(this.selectedTreeControl, this.selectedTreeFlattener);
7407
7404
  this.setSelectedNode();
7408
7405
  }
7406
+ get NsValiator() {
7407
+ return ValidatorService;
7408
+ }
7409
7409
  setSelectedNode() {
7410
7410
  this.selectedDataSource.data = this.selectedFullDataSource;
7411
7411
  if (this.selectedVirtualScroll) {
@@ -7425,6 +7425,9 @@ class CvaFlatTreeComponent {
7425
7425
  ngAfterViewInit() {
7426
7426
  // this.onChangeSearchText();
7427
7427
  }
7428
+ trackByValue(index, node) {
7429
+ return node.value;
7430
+ }
7428
7431
  getDisplayInputFunc(node) {
7429
7432
  return typeof (node._displayFuncInput) === 'function' ? node._displayFuncInput(node) : !!node._displayFuncInput;
7430
7433
  }
@@ -7537,9 +7540,6 @@ class CvaFlatTreeComponent {
7537
7540
  node.checked = !!node.checked;
7538
7541
  return node;
7539
7542
  };
7540
- _getLevel = (node) => node.level;
7541
- _isExpandable = (node) => FlatTreeService.hasChild(node);
7542
- _getChildren = (node) => of(node.children ? node.children : []);
7543
7543
  propagateChange = (_) => {
7544
7544
  /*NON-EMPTY FOR COMPILE*/
7545
7545
  };
@@ -7550,21 +7550,17 @@ class CvaFlatTreeComponent {
7550
7550
  this.propagateChange(fn);
7551
7551
  }
7552
7552
  writeValue(obj) {
7553
- // if (this.multiple && !obj) {
7554
- // obj = [];
7555
- // }
7556
7553
  if (obj) {
7557
- // if (this.multiple) {
7558
7554
  this.value = obj;
7559
- // }
7560
7555
  this.checkedDefaultValue();
7561
7556
  this.updateSelectAll();
7562
7557
  this.updateSelectedTree();
7563
7558
  this.propagateChange(this.value);
7564
7559
  this.callValidator();
7565
7560
  if (this.isView) {
7566
- this.selectedTreeControl.expandAll();
7561
+ requestAnimationFrame(() => this.selectedTreeControl.expandAll());
7567
7562
  }
7563
+ this.cdr.detectChanges();
7568
7564
  this.selectionChange.emit(Array.from(this.valueObjRef.values()));
7569
7565
  }
7570
7566
  }
@@ -7575,38 +7571,38 @@ class CvaFlatTreeComponent {
7575
7571
  this.expandTreeDataSource(this.selectedTreeControl, 'isExpanded');
7576
7572
  }
7577
7573
  checkedDefaultValue() {
7578
- let allChildNode;
7579
- for (const rootNode of this.fullDataDataSource.data) {
7580
- if (!FlatTreeService.hasChild(rootNode)) {
7581
- if (this.value.includes(rootNode.value)) {
7582
- rootNode.checked = true;
7583
- if (!this.valueObjRef.has(rootNode.value)) {
7584
- this.valueObjRef.set(rootNode.value, rootNode);
7585
- }
7586
- this.selectedTreeChange(rootNode);
7587
- }
7588
- else {
7589
- rootNode.checked = false;
7590
- if (this.valueObjRef.has(rootNode.value)) {
7591
- this.valueObjRef.delete(rootNode.value);
7592
- }
7593
- this.selectedTreeChange(rootNode);
7594
- }
7595
- continue;
7596
- }
7597
- allChildNode = this.getAllChildNode(this.fullDataTreeControl, rootNode);
7598
- allChildNode.forEach(childNode => {
7599
- if (!FlatTreeService.hasChild(childNode)) {
7600
- childNode.checked = this.value.includes(childNode.value);
7601
- if (!this.valueObjRef.has(childNode.value) && childNode.checked) {
7602
- this.valueObjRef.set(childNode.value, childNode);
7603
- }
7604
- else if (this.valueObjRef.has(childNode.value) && !childNode.checked) {
7605
- this.valueObjRef.delete(childNode.value);
7574
+ const selectedSet = new Set(this.value);
7575
+ const selectedNodes = [];
7576
+ for (const node of this.fullDataTreeControl.dataNodes) {
7577
+ const isLeaf = !FlatTreeService.hasChild(node);
7578
+ node.checked = selectedSet.has(node.value);
7579
+ if (isLeaf && node.checked) {
7580
+ this.valueObjRef.set(node.value, node);
7581
+ selectedNodes.push(node);
7582
+ }
7583
+ else if (isLeaf && !node.checked && this.valueObjRef.has(node.value)) {
7584
+ this.valueObjRef.delete(node.value);
7585
+ }
7586
+ }
7587
+ this.bulkSelectedTreeChange(selectedNodes);
7588
+ }
7589
+ bulkSelectedTreeChange(nodes) {
7590
+ const selectedRoot = new Set();
7591
+ for (const node of nodes) {
7592
+ if (node.level < 1) {
7593
+ this.selectedFullValues.set(node.value, node.value);
7594
+ this.selectedTreeControl.expandDescendants(node);
7595
+ }
7596
+ else {
7597
+ const rootNode = this.getRootNode(node);
7598
+ if (rootNode && !selectedRoot.has(rootNode.value)) {
7599
+ this.selectedFullValues.set(rootNode.value, rootNode.value);
7600
+ if (rootNode.checked) {
7601
+ this.selectedTreeControl.expandDescendants(rootNode);
7606
7602
  }
7607
- this.selectedTreeChange(childNode);
7603
+ selectedRoot.add(rootNode.value);
7608
7604
  }
7609
- });
7605
+ }
7610
7606
  }
7611
7607
  }
7612
7608
  getAllChildNode(treeControl, node) {
@@ -7887,6 +7883,9 @@ class CvaFlatTreeComponent {
7887
7883
  this.checkParentNode(true, node);
7888
7884
  }
7889
7885
  }
7886
+ _getLevel = (node) => node.level;
7887
+ _isExpandable = (node) => FlatTreeService.hasChild(node);
7888
+ _getChildren = (node) => of(node.children ? node.children : []);
7890
7889
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: CvaFlatTreeComponent, deps: [{ token: i1.TranslateService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
7891
7890
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: CvaFlatTreeComponent, isStandalone: false, selector: "cva-flat-tree", inputs: { label: "label", required: "required", value: "value", multiple: "multiple", disabled: "disabled", isView: "isView", isDisplayChooseTreeOnly: "isDisplayChooseTreeOnly", isHideCheckbox: "isHideCheckbox", isCollapseSelected: "isCollapseSelected", selectedLabelTitle: "selectedLabelTitle", viewHeight: "viewHeight", itemSize: "itemSize", percentOfLabelOutside: "percentOfLabelOutside", treeConfig: "treeConfig", isSearchOutSide: "isSearchOutSide", searchTextOutSide: "searchTextOutSide", errorMessages: "errorMessages", fullDatasource: "fullDatasource", isFormControl: "isFormControl" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "chooseVirtualScroll", first: true, predicate: ["chooseAreaScrollViewport"], descendants: true }, { propertyName: "selectedVirtualScroll", first: true, predicate: ["selectedScrollViewport"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
7892
7891
  <div class="cva-flat-tree labelOutside"
@@ -7926,7 +7925,7 @@ class CvaFlatTreeComponent {
7926
7925
  </div>
7927
7926
  <cdk-virtual-scroll-viewport #chooseAreaScrollViewport itemSize="{{itemSize}}"
7928
7927
  [ngStyle]="{height: viewHeight + 'px'}">
7929
- <ng-container *cdkVirtualFor="let node of dataSource">
7928
+ <ng-container *cdkVirtualFor="let node of dataSource; trackBy: trackByValue">
7930
7929
  <cva-flat-tree-node-left [style.padding-left]="node.level * paddingLeft + 'px'"
7931
7930
  [attr.aria-level]="node.level"
7932
7931
  [treeControl]="treeControl"
@@ -7954,7 +7953,7 @@ class CvaFlatTreeComponent {
7954
7953
  <cdk-virtual-scroll-viewport #selectedScrollViewport
7955
7954
  *ngIf="!isCollapseSelected"
7956
7955
  itemSize="{{itemSize}}" [ngStyle]="{height: viewHeight + 'px'}">
7957
- <ng-container *cdkVirtualFor="let node of selectedDataSource">
7956
+ <ng-container *cdkVirtualFor="let node of selectedDataSource; trackBy: trackByValue">
7958
7957
  <cva-flat-tree-node-right [style.padding-left]="node.level * paddingLeft + 'px'"
7959
7958
  [attr.aria-level]="node.level"
7960
7959
  [treeControl]="selectedTreeControl"
@@ -8018,7 +8017,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
8018
8017
  </div>
8019
8018
  <cdk-virtual-scroll-viewport #chooseAreaScrollViewport itemSize="{{itemSize}}"
8020
8019
  [ngStyle]="{height: viewHeight + 'px'}">
8021
- <ng-container *cdkVirtualFor="let node of dataSource">
8020
+ <ng-container *cdkVirtualFor="let node of dataSource; trackBy: trackByValue">
8022
8021
  <cva-flat-tree-node-left [style.padding-left]="node.level * paddingLeft + 'px'"
8023
8022
  [attr.aria-level]="node.level"
8024
8023
  [treeControl]="treeControl"
@@ -8046,7 +8045,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
8046
8045
  <cdk-virtual-scroll-viewport #selectedScrollViewport
8047
8046
  *ngIf="!isCollapseSelected"
8048
8047
  itemSize="{{itemSize}}" [ngStyle]="{height: viewHeight + 'px'}">
8049
- <ng-container *cdkVirtualFor="let node of selectedDataSource">
8048
+ <ng-container *cdkVirtualFor="let node of selectedDataSource; trackBy: trackByValue">
8050
8049
  <cva-flat-tree-node-right [style.padding-left]="node.level * paddingLeft + 'px'"
8051
8050
  [attr.aria-level]="node.level"
8052
8051
  [treeControl]="selectedTreeControl"