@c10t/nice-component-library 0.0.27-a → 0.0.27-b
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
2
|
-
import {
|
|
2
|
+
import { ChangeDetectorRef, EventEmitter, Injector, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
3
3
|
import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
|
|
4
4
|
import { AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms';
|
|
5
5
|
import { TranslateService } from '@ngx-translate/core';
|
|
@@ -8,7 +8,7 @@ import { FlatTreeNodeModel } from '../../models/components/flat-tree-node.model'
|
|
|
8
8
|
import { ValidatorService } from '../../services/validator.service';
|
|
9
9
|
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnInit,
|
|
11
|
+
export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnInit, OnChanges {
|
|
12
12
|
private translateService;
|
|
13
13
|
private injector;
|
|
14
14
|
private cdr;
|
|
@@ -32,9 +32,9 @@ export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnIni
|
|
|
32
32
|
treeConfig?: FlatTreeConfigModel;
|
|
33
33
|
isSearchOutSide: boolean;
|
|
34
34
|
searchTextOutSide: string;
|
|
35
|
-
searchText: string;
|
|
36
35
|
errorMessages: Map<string, (e?: any) => string>;
|
|
37
36
|
fullDatasource: FlatTreeNodeModel[];
|
|
37
|
+
searchText: string;
|
|
38
38
|
filterDatasource: FlatTreeNodeModel[];
|
|
39
39
|
treeControl: FlatTreeControl<FlatTreeNodeModel>;
|
|
40
40
|
treeFlattener: MatTreeFlattener<FlatTreeNodeModel, FlatTreeNodeModel>;
|
|
@@ -60,7 +60,6 @@ export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnIni
|
|
|
60
60
|
setSelectedNode(): void;
|
|
61
61
|
setDataSourceOrigin(): void;
|
|
62
62
|
ngOnInit(): void;
|
|
63
|
-
ngAfterViewInit(): void;
|
|
64
63
|
getDisplayInputFunc(node: FlatTreeNodeModel): boolean;
|
|
65
64
|
getDisabledInputFunc(node: FlatTreeNodeModel): boolean;
|
|
66
65
|
checkDisabledNode(node: FlatTreeNodeModel): boolean;
|
|
@@ -81,8 +80,6 @@ export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnIni
|
|
|
81
80
|
selectedTreeChange(node: FlatTreeNodeModel): void;
|
|
82
81
|
checkLeafNode(checked: boolean, node: FlatTreeNodeModel, isSelectedChange?: boolean): void;
|
|
83
82
|
getRootNode(node: FlatTreeNodeModel): FlatTreeNodeModel | null;
|
|
84
|
-
deSelect(node: FlatTreeNodeModel): void;
|
|
85
|
-
deSelectParent(node: FlatTreeNodeModel): void;
|
|
86
83
|
toggleTreeControl(treeControl: FlatTreeControl<FlatTreeNodeModel>, node: FlatTreeNodeModel): void;
|
|
87
84
|
toggleSelectedTree(node?: FlatTreeNodeModel): void;
|
|
88
85
|
onChangeSearchText(): void;
|
|
@@ -92,6 +89,7 @@ export declare class CvaFlatTreeComponent implements ControlValueAccessor, OnIni
|
|
|
92
89
|
onLeafNodeClick(node: FlatTreeNodeModel): void;
|
|
93
90
|
onParentNodeClick(node: FlatTreeNodeModel): void;
|
|
94
91
|
toggleNodeCheck(node: FlatTreeNodeModel, checked: boolean): void;
|
|
92
|
+
getTotalSelected(nodes: FlatTreeNodeModel[]): number;
|
|
95
93
|
private _getLevel;
|
|
96
94
|
private _isExpandable;
|
|
97
95
|
private _getChildren;
|
|
@@ -8092,9 +8092,9 @@ class CvaFlatTreeComponent {
|
|
|
8092
8092
|
treeConfig;
|
|
8093
8093
|
isSearchOutSide = false;
|
|
8094
8094
|
searchTextOutSide = '';
|
|
8095
|
-
searchText = '';
|
|
8096
8095
|
errorMessages = new Map();
|
|
8097
8096
|
fullDatasource = [];
|
|
8097
|
+
searchText = '';
|
|
8098
8098
|
filterDatasource = [];
|
|
8099
8099
|
treeControl;
|
|
8100
8100
|
treeFlattener;
|
|
@@ -8156,9 +8156,6 @@ class CvaFlatTreeComponent {
|
|
|
8156
8156
|
ngOnInit() {
|
|
8157
8157
|
this.callValidator();
|
|
8158
8158
|
}
|
|
8159
|
-
ngAfterViewInit() {
|
|
8160
|
-
// this.onChangeSearchText();
|
|
8161
|
-
}
|
|
8162
8159
|
getDisplayInputFunc(node) {
|
|
8163
8160
|
return typeof (node._displayFuncInput) === 'function' ? node._displayFuncInput(node) : !!node._displayFuncInput;
|
|
8164
8161
|
}
|
|
@@ -8281,13 +8278,8 @@ class CvaFlatTreeComponent {
|
|
|
8281
8278
|
this.propagateChange(fn);
|
|
8282
8279
|
}
|
|
8283
8280
|
writeValue(obj) {
|
|
8284
|
-
// if (this.multiple && !obj) {
|
|
8285
|
-
// obj = [];
|
|
8286
|
-
// }
|
|
8287
8281
|
if (obj) {
|
|
8288
|
-
// if (this.multiple) {
|
|
8289
8282
|
this.value = obj;
|
|
8290
|
-
// }
|
|
8291
8283
|
this.mapIndexes = new Map();
|
|
8292
8284
|
for (let i = 0; i < this.fullDataTreeControl.dataNodes.length; i++) {
|
|
8293
8285
|
this.mapIndexes.set(this.fullDataTreeControl.dataNodes[i].value, i);
|
|
@@ -8466,12 +8458,6 @@ class CvaFlatTreeComponent {
|
|
|
8466
8458
|
}
|
|
8467
8459
|
return node;
|
|
8468
8460
|
}
|
|
8469
|
-
deSelect(node) {
|
|
8470
|
-
this.checkLeafNode(false, node, true);
|
|
8471
|
-
}
|
|
8472
|
-
deSelectParent(node) {
|
|
8473
|
-
this.checkParentNode(false, node, true);
|
|
8474
|
-
}
|
|
8475
8461
|
toggleTreeControl(treeControl, node) {
|
|
8476
8462
|
treeControl.toggle(node);
|
|
8477
8463
|
const orgNode = this.fullDataTreeControl.dataNodes.find(n => n.value === node.value);
|
|
@@ -8621,10 +8607,44 @@ class CvaFlatTreeComponent {
|
|
|
8621
8607
|
this.value.splice(index, 1);
|
|
8622
8608
|
}
|
|
8623
8609
|
}
|
|
8610
|
+
if (isLeaf) {
|
|
8611
|
+
const parentNode = this.getRootNode(node);
|
|
8612
|
+
if (parentNode && FlatTreeService.hasChild(parentNode)) {
|
|
8613
|
+
const allChild = this.getAllChildNode(this.fullDataTreeControl, parentNode);
|
|
8614
|
+
// Kiểm tra còn node con nào trong value không
|
|
8615
|
+
const hasChildInValue = allChild.some(child => this.value.includes(child.value));
|
|
8616
|
+
if (!hasChildInValue) {
|
|
8617
|
+
const parentIndex = this.value.indexOf(parentNode.value);
|
|
8618
|
+
if (parentIndex >= 0) {
|
|
8619
|
+
this.value.splice(parentIndex, 1);
|
|
8620
|
+
}
|
|
8621
|
+
}
|
|
8622
|
+
}
|
|
8623
|
+
}
|
|
8624
8624
|
// Gọi writeValue để cập nhật cho FormControl
|
|
8625
8625
|
this.writeValue(this.value);
|
|
8626
8626
|
this.cdr.detectChanges();
|
|
8627
8627
|
}
|
|
8628
|
+
getTotalSelected(nodes) {
|
|
8629
|
+
let count = 0;
|
|
8630
|
+
for (const node of nodes) {
|
|
8631
|
+
const isLeaf = !FlatTreeService.hasChild(node);
|
|
8632
|
+
if (isLeaf) {
|
|
8633
|
+
if (this.value.includes(node.value)) {
|
|
8634
|
+
count += 1;
|
|
8635
|
+
}
|
|
8636
|
+
}
|
|
8637
|
+
else if (node.children && node.children.length > 0) {
|
|
8638
|
+
const childChecked = this.getTotalSelected(node.children);
|
|
8639
|
+
// Nếu tất cả các con được checked đồng nghĩa cha được checked thì mới cộng
|
|
8640
|
+
if (childChecked === node.children.length) {
|
|
8641
|
+
count += 1;
|
|
8642
|
+
}
|
|
8643
|
+
count += childChecked;
|
|
8644
|
+
}
|
|
8645
|
+
}
|
|
8646
|
+
return count;
|
|
8647
|
+
}
|
|
8628
8648
|
_getLevel = (node) => node.level;
|
|
8629
8649
|
_isExpandable = (node) => FlatTreeService.hasChild(node);
|
|
8630
8650
|
_getChildren = (node) => of(node.children ? node.children : []);
|
|
@@ -8690,7 +8710,7 @@ class CvaFlatTreeComponent {
|
|
|
8690
8710
|
*ngIf="!isDisplayChooseTreeOnly"
|
|
8691
8711
|
fxLayout="column" fxFlex="1 1 {{checkIsView(isView) ? '100%' : '50%'}}" fxFlex.lt-sm="100%">
|
|
8692
8712
|
<div class="header-area" *ngIf="!isView">
|
|
8693
|
-
<label>{{ selectedLabelTitle | translate }}{{ '(' + (
|
|
8713
|
+
<label>{{ selectedLabelTitle | translate }}{{ '(' + getTotalSelected(fullDataDataSource.data) + ')' }}</label>
|
|
8694
8714
|
<div class="collapse-expand-all" (click)="toggleSelectedTree()">
|
|
8695
8715
|
{{ (isCollapseSelected ? 'common.selected.tree.expandAll' : 'common.selected.tree.collapse') | translate }}
|
|
8696
8716
|
<i class="fa {{isCollapseSelected ? 'fa-chevron-down' : 'fa-chevron-up'}}"></i>
|
|
@@ -8707,8 +8727,8 @@ class CvaFlatTreeComponent {
|
|
|
8707
8727
|
[node]="node"
|
|
8708
8728
|
[isView]="isView"
|
|
8709
8729
|
(toggle)="toggleSelectedTree(node)"
|
|
8710
|
-
(deSelectLeafNode)="
|
|
8711
|
-
(deSelectParentNode)="
|
|
8730
|
+
(deSelectLeafNode)="toggleNodeCheck(node, false)"
|
|
8731
|
+
(deSelectParentNode)="toggleNodeCheck(node, false)">
|
|
8712
8732
|
</cva-flat-tree-node-right>
|
|
8713
8733
|
</ng-container>
|
|
8714
8734
|
</cdk-virtual-scroll-viewport>
|
|
@@ -8787,7 +8807,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
8787
8807
|
*ngIf="!isDisplayChooseTreeOnly"
|
|
8788
8808
|
fxLayout="column" fxFlex="1 1 {{checkIsView(isView) ? '100%' : '50%'}}" fxFlex.lt-sm="100%">
|
|
8789
8809
|
<div class="header-area" *ngIf="!isView">
|
|
8790
|
-
<label>{{ selectedLabelTitle | translate }}{{ '(' + (
|
|
8810
|
+
<label>{{ selectedLabelTitle | translate }}{{ '(' + getTotalSelected(fullDataDataSource.data) + ')' }}</label>
|
|
8791
8811
|
<div class="collapse-expand-all" (click)="toggleSelectedTree()">
|
|
8792
8812
|
{{ (isCollapseSelected ? 'common.selected.tree.expandAll' : 'common.selected.tree.collapse') | translate }}
|
|
8793
8813
|
<i class="fa {{isCollapseSelected ? 'fa-chevron-down' : 'fa-chevron-up'}}"></i>
|
|
@@ -8804,8 +8824,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
8804
8824
|
[node]="node"
|
|
8805
8825
|
[isView]="isView"
|
|
8806
8826
|
(toggle)="toggleSelectedTree(node)"
|
|
8807
|
-
(deSelectLeafNode)="
|
|
8808
|
-
(deSelectParentNode)="
|
|
8827
|
+
(deSelectLeafNode)="toggleNodeCheck(node, false)"
|
|
8828
|
+
(deSelectParentNode)="toggleNodeCheck(node, false)">
|
|
8809
8829
|
</cva-flat-tree-node-right>
|
|
8810
8830
|
</ng-container>
|
|
8811
8831
|
</cdk-virtual-scroll-viewport>
|