qms-angular 1.0.60 → 1.0.64
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/bundles/qms-angular.umd.js +203 -67
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +9 -1
- package/esm2015/lib/components/breadcrumb/breadcrumb.js +43 -29
- package/esm2015/lib/components/comment/comment.js +1 -5
- package/esm2015/lib/components/related/list-other-related/list-related.component.js +2 -2
- package/esm2015/lib/components/related/model/selected-node.model.js +1 -1
- package/esm2015/lib/components/related/popup/related-popup.component.js +113 -22
- package/esm2015/lib/components/tree/model/tree.model.js +1 -1
- package/esm2015/lib/components/tree/tree.component.js +31 -6
- package/fesm2015/qms-angular.js +194 -60
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +1 -0
- package/lib/components/breadcrumb/breadcrumb.d.ts +4 -1
- package/lib/components/related/model/selected-node.model.d.ts +3 -0
- package/lib/components/related/popup/related-popup.component.d.ts +16 -6
- package/lib/components/tree/model/tree.model.d.ts +1 -0
- package/lib/components/tree/tree.component.d.ts +2 -0
- package/package.json +1 -1
- package/qms-angular.metadata.json +1 -1
package/fesm2015/qms-angular.js
CHANGED
@@ -639,21 +639,17 @@ class QMSComment {
|
|
639
639
|
const changedProp = changes[propName];
|
640
640
|
const to = JSON.stringify(changedProp.currentValue);
|
641
641
|
if (changedProp.isFirstChange()) {
|
642
|
-
console.log('Initial value of');
|
643
642
|
}
|
644
643
|
else {
|
645
644
|
const from = JSON.stringify(changedProp.previousValue);
|
646
|
-
console.log('changed from');
|
647
645
|
}
|
648
646
|
}
|
649
|
-
console.log('value changed', changes.sourceLog.currentValue);
|
650
647
|
// this.sourceLog = changes.sourceLog.currentValue;
|
651
648
|
}
|
652
649
|
ngOnInit() {
|
653
650
|
this.trans.getLanguageSubject$.pipe().subscribe((res) => {
|
654
651
|
if (res) {
|
655
652
|
this.LANG = this.trans.getObjectLang(res);
|
656
|
-
console.log(this.LANG);
|
657
653
|
}
|
658
654
|
});
|
659
655
|
}
|
@@ -3609,6 +3605,14 @@ class QMSBreadcrumbItemDirective {
|
|
3609
3605
|
}
|
3610
3606
|
}
|
3611
3607
|
}
|
3608
|
+
ngOnChanges() {
|
3609
|
+
if (this.isLastItem) {
|
3610
|
+
this.ele.nativeElement.classList.add('qms-breadcrumb-last-item');
|
3611
|
+
}
|
3612
|
+
else {
|
3613
|
+
this.ele.nativeElement.classList.remove('qms-breadcrumb-last-item');
|
3614
|
+
}
|
3615
|
+
}
|
3612
3616
|
ngOnInit() {
|
3613
3617
|
if (this.ele) {
|
3614
3618
|
this.ele.nativeElement.classList.add('qms-breadcrumb-item');
|
@@ -3657,34 +3661,7 @@ class QMSBreadcrumb {
|
|
3657
3661
|
iconRegistry.addSvgIconLiteral('breadcrumb_dropdown', sanitizer.bypassSecurityTrustHtml(BREADCRUMB_DROPDOWN_ICON));
|
3658
3662
|
}
|
3659
3663
|
ngAfterViewInit() {
|
3660
|
-
|
3661
|
-
if (!this.maxLine || this.maxLine < 2) {
|
3662
|
-
this.checkOverflow(this.ele.nativeElement.offsetWidth);
|
3663
|
-
}
|
3664
|
-
else {
|
3665
|
-
this.checkOverflow(this.ele.nativeElement.offsetWidth * 1.7);
|
3666
|
-
}
|
3667
|
-
}
|
3668
|
-
//show number Items after 3 dot icon
|
3669
|
-
if (+this.numDisplayItem > 0 && this.itemNodes.length >= 2) {
|
3670
|
-
this.dropdownNodes = [];
|
3671
|
-
this.dropdownNodes = this.itemNodes.slice(0, -this.numDisplayItem).reverse();
|
3672
|
-
this.itemNodes = [...[], ...this.itemNodes.slice(-this.numDisplayItem)];
|
3673
|
-
this.isOverflow = true;
|
3674
|
-
this.cdRef.detectChanges();
|
3675
|
-
}
|
3676
|
-
//just show 1 item for mobile
|
3677
|
-
if (this.onlyItem) {
|
3678
|
-
this.isOverflow = true;
|
3679
|
-
this.dropdownNodes = [];
|
3680
|
-
let itemNodes = [...this.itemNodes];
|
3681
|
-
let lastItem = itemNodes.pop();
|
3682
|
-
this.dropdownNodes = [...itemNodes].reverse();
|
3683
|
-
this.dropdownNodes.push(this.homeNode);
|
3684
|
-
this.itemNodes = [];
|
3685
|
-
this.itemNodes = [lastItem];
|
3686
|
-
this.cdRef.detectChanges();
|
3687
|
-
}
|
3664
|
+
this.buildBreadcrumb();
|
3688
3665
|
}
|
3689
3666
|
checkOverflow(width) {
|
3690
3667
|
const nodeWidths = this.breadCrumbNodes.map(x => x.ele.nativeElement.offsetWidth);
|
@@ -3718,8 +3695,18 @@ class QMSBreadcrumb {
|
|
3718
3695
|
this.dropdownNodes = this.dropdownNodes.reverse();
|
3719
3696
|
}
|
3720
3697
|
}
|
3698
|
+
ngOnChanges(changes) {
|
3699
|
+
if (changes.nodes && this.breadCrumbNodes && JSON.stringify(changes.nodes.currentValue) !== JSON.stringify(changes.nodes.previousValue)) {
|
3700
|
+
this.nodes = [...changes.nodes.currentValue];
|
3701
|
+
this.initBreadCrumb();
|
3702
|
+
this.buildBreadcrumb();
|
3703
|
+
}
|
3704
|
+
}
|
3721
3705
|
ngOnInit() {
|
3722
3706
|
this.itemIconType = ItemIconType;
|
3707
|
+
this.initBreadCrumb();
|
3708
|
+
}
|
3709
|
+
initBreadCrumb() {
|
3723
3710
|
if (this.nodes && this.nodes.length > 0) {
|
3724
3711
|
this.nodes.forEach(ele => {
|
3725
3712
|
ele.isOverflow = ele.isOverflow ? ele.isOverflow : false;
|
@@ -3743,6 +3730,37 @@ class QMSBreadcrumb {
|
|
3743
3730
|
this.ele.nativeElement.classList.add('qms-breadcrumb__multi-line');
|
3744
3731
|
}
|
3745
3732
|
}
|
3733
|
+
buildBreadcrumb() {
|
3734
|
+
if (!this.isMobileType && this.ele.nativeElement.offsetWidth) {
|
3735
|
+
this.dropdownNodes = [];
|
3736
|
+
if (!this.maxLine || this.maxLine < 2) {
|
3737
|
+
this.checkOverflow(this.ele.nativeElement.offsetWidth);
|
3738
|
+
}
|
3739
|
+
else {
|
3740
|
+
this.checkOverflow(this.ele.nativeElement.offsetWidth * 1.7);
|
3741
|
+
}
|
3742
|
+
}
|
3743
|
+
//show number Items after 3 dot icon
|
3744
|
+
if (+this.numDisplayItem > 0 && this.itemNodes.length >= 2) {
|
3745
|
+
this.dropdownNodes = [];
|
3746
|
+
this.dropdownNodes = this.itemNodes.slice(0, -this.numDisplayItem).reverse();
|
3747
|
+
this.itemNodes = [...[], ...this.itemNodes.slice(-this.numDisplayItem)];
|
3748
|
+
this.isOverflow = true;
|
3749
|
+
this.cdRef.detectChanges();
|
3750
|
+
}
|
3751
|
+
//just show 1 item for mobile
|
3752
|
+
if (this.onlyItem) {
|
3753
|
+
this.isOverflow = true;
|
3754
|
+
this.dropdownNodes = [];
|
3755
|
+
let itemNodes = [...this.itemNodes];
|
3756
|
+
let lastItem = itemNodes.pop();
|
3757
|
+
this.dropdownNodes = [...itemNodes].reverse();
|
3758
|
+
this.dropdownNodes.push(this.homeNode);
|
3759
|
+
this.itemNodes = [];
|
3760
|
+
this.itemNodes = [lastItem];
|
3761
|
+
this.cdRef.detectChanges();
|
3762
|
+
}
|
3763
|
+
}
|
3746
3764
|
getItemIconType(treeConfig) {
|
3747
3765
|
if (treeConfig.itemIcon)
|
3748
3766
|
return ItemIconType.name;
|
@@ -3969,6 +3987,9 @@ const TreeFunctions = {
|
|
3969
3987
|
findChild: findChild$1
|
3970
3988
|
};
|
3971
3989
|
|
3990
|
+
class TreeFlatNode {
|
3991
|
+
}
|
3992
|
+
|
3972
3993
|
class TreeComponent {
|
3973
3994
|
constructor(cdRef, domSanitizer, iconRegistry, appIconService) {
|
3974
3995
|
this.cdRef = cdRef;
|
@@ -3986,6 +4007,7 @@ class TreeComponent {
|
|
3986
4007
|
this.childCheckedEvent = new EventEmitter();
|
3987
4008
|
this.nodeExpandEvent = new EventEmitter();
|
3988
4009
|
this.getChildNodeSelectOne = new EventEmitter();
|
4010
|
+
this.treeControlNodes = new EventEmitter();
|
3989
4011
|
this.listParentObj = {};
|
3990
4012
|
this.filterData = [];
|
3991
4013
|
this.arrIndex = [];
|
@@ -4156,13 +4178,22 @@ class TreeComponent {
|
|
4156
4178
|
this.checkSelected(selectedData);
|
4157
4179
|
this.checkBoxEvent.emit(selectedData);
|
4158
4180
|
}
|
4159
|
-
|
4181
|
+
// keep expand
|
4182
|
+
if (this.parentNodeOnClick && Object.keys(this.parentNodeOnClick).length) {
|
4183
|
+
let tempParent = [];
|
4184
|
+
let root = new TreeFlatNode();
|
4160
4185
|
for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
|
4161
4186
|
const tree = this.treeControl.dataNodes[i];
|
4162
|
-
if (this.parentNodeOnClick.parentId === tree.
|
4163
|
-
this.
|
4187
|
+
if (this.parentNodeOnClick.parentId === tree.parentId && this.parentNodeOnClick.id === tree.id
|
4188
|
+
|| this.parentNodeOnClick.parentId === tree.id) {
|
4189
|
+
tempParent = [...tempParent, this.getParent(tree)];
|
4190
|
+
root = tree;
|
4164
4191
|
}
|
4165
4192
|
}
|
4193
|
+
tempParent.push(root);
|
4194
|
+
tempParent.forEach(x => {
|
4195
|
+
this.treeControl.expand(x);
|
4196
|
+
});
|
4166
4197
|
}
|
4167
4198
|
}
|
4168
4199
|
getParent(node) {
|
@@ -4175,7 +4206,6 @@ class TreeComponent {
|
|
4175
4206
|
for (let i = index; i >= 0; i--) {
|
4176
4207
|
const currentNode = treeControl.dataNodes[i];
|
4177
4208
|
if (treeControl.getLevel(currentNode) < currentLevel) {
|
4178
|
-
treeControl.expand(currentNode);
|
4179
4209
|
return currentNode;
|
4180
4210
|
}
|
4181
4211
|
}
|
@@ -4413,6 +4443,19 @@ class TreeComponent {
|
|
4413
4443
|
this.checkBoxEvent.emit(this.checklistSelection.selected);
|
4414
4444
|
}
|
4415
4445
|
todoItemSelection(nodes) {
|
4446
|
+
nodes.forEach(node => {
|
4447
|
+
for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
|
4448
|
+
if (this.treeControl.dataNodes[i].id === node.id &&
|
4449
|
+
this.treeControl.dataNodes[i].parentId === node.parentId &&
|
4450
|
+
!this.treeControl.dataNodes[i].disabled && !this.treeControl.dataNodes[i].expandable) {
|
4451
|
+
if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))
|
4452
|
+
this.checklistSelection.toggle(this.treeControl.dataNodes[i]);
|
4453
|
+
}
|
4454
|
+
}
|
4455
|
+
});
|
4456
|
+
this.checkBoxEvent.emit(this.checklistSelection.selected);
|
4457
|
+
}
|
4458
|
+
todoItemSelectionProcessDocument(nodes) {
|
4416
4459
|
nodes.forEach(node => {
|
4417
4460
|
for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
|
4418
4461
|
if (this.treeControl.dataNodes[i].id === node.id &&
|
@@ -4425,6 +4468,7 @@ class TreeComponent {
|
|
4425
4468
|
});
|
4426
4469
|
setTimeout(() => {
|
4427
4470
|
this.checkBoxEvent.emit(this.checklistSelection.selected);
|
4471
|
+
this.treeControlNodes.emit(this.treeControl);
|
4428
4472
|
}, 500);
|
4429
4473
|
}
|
4430
4474
|
todoFolderSelection(nodes) {
|
@@ -4711,7 +4755,8 @@ TreeComponent.propDecorators = {
|
|
4711
4755
|
checkBoxEvent: [{ type: Output }],
|
4712
4756
|
childCheckedEvent: [{ type: Output }],
|
4713
4757
|
nodeExpandEvent: [{ type: Output }],
|
4714
|
-
getChildNodeSelectOne: [{ type: Output }]
|
4758
|
+
getChildNodeSelectOne: [{ type: Output }],
|
4759
|
+
treeControlNodes: [{ type: Output }]
|
4715
4760
|
};
|
4716
4761
|
|
4717
4762
|
class QMSTreeModule {
|
@@ -4886,7 +4931,7 @@ class RelatedListComponent {
|
|
4886
4931
|
RelatedListComponent.decorators = [
|
4887
4932
|
{ type: Component, args: [{
|
4888
4933
|
selector: 'qms-related-list',
|
4889
|
-
template: "<div class=\"container list-related\">\r\n <div class=\"list-related__title\">\r\n <strong>{{ title }}</strong>\r\n </div>\r\n <div\r\n class=\"list-related__body\"\r\n *ngFor=\"let item of relatedData; let i = index\"\r\n >\r\n <div class=\"list-related__body-parent\">\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(item)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"subtitle\"\r\n class=\"search__option-name\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <div class=\"caption\" *ngIf=\"canShowParent(item)\">\r\n {{ item?.parentName }}\r\n </div>\r\n <span class=\"cursor\">{{ item.itemName }}</span>\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"item.breadcumbs && item.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"item.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"item?.displayId\">\r\n <span class=\"material-icons-outlined\"> local_offer </span> ID:\r\n
|
4934
|
+
template: "<div class=\"container list-related\">\r\n <div class=\"list-related__title\">\r\n <strong>{{ title }}</strong>\r\n </div>\r\n <div\r\n class=\"list-related__body\"\r\n *ngFor=\"let item of relatedData; let i = index\"\r\n >\r\n <div class=\"list-related__body-parent\">\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(item)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"subtitle\"\r\n class=\"search__option-name\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <div class=\"caption\" *ngIf=\"canShowParent(item)\">\r\n {{ item?.parentName }}\r\n </div>\r\n <span class=\"cursor\">{{ item.itemName }}</span>\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"item.breadcumbs && item.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"item.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"item?.displayId\">\r\n <ng-container *ngIf=\"item?.displayId\">\r\n <span class=\"material-icons-outlined\"> local_offer </span> ID:\r\n {{ item?.displayId }}\r\n </ng-container>\r\n <ng-container *ngIf=\"item.statusName\">\r\n {{ getItemStatus(item) }}</ng-container\r\n >\r\n </div>\r\n </qms-list-item>\r\n <div class=\"block\" *ngIf=\"!isNotEditedItem\">\r\n <button qms-btn-icon color=\"light\" mode=\"dark\" (click)=\"removeItem(i)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
4890
4935
|
encapsulation: ViewEncapsulation.None,
|
4891
4936
|
styles: ["@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format(\"woff2\");unicode-range:U+1f??}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format(\"woff2\");unicode-range:U+0370-03ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFW50bbck.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVZ0b.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}.list-related{font-family:Open Sans;font-style:normal;font-weight:400;color:#323232}.list-related .list-related__title{font-weight:600;font-size:.875rem;line-height:22px;margin-bottom:1rem}.list-related .list-related__body .list-related__body-parent{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-related .list-related__body .list-related__body-parent .qms-list-item.mat-2-line.image-item{height:auto}.list-related .list-related__body .list-related__body-parent .qms-list-item.image-item .qms-list-item-content{margin:0}.list-related .list-related__body .list-related__body-parent .wrap-image.image-square,.list-related .list-related__body .list-related__body-parent .wrap-image.image-square img{background:transparent;margin:auto;height:24px;width:24px}.list-related .list-related__body .list-related__body-parent .qms-list-item.image-item .qms-list-text,.list-related .list-related__body .list-related__body-parent .qms-list-item.image-item .trailing-box{margin-left:1.5rem;border-bottom:none;padding-bottom:7px;padding-top:7px}.list-related .list-related__body .list-related__body-parent .qms-list-item.image-item .qms-list-text .material-icons-outlined,.list-related .list-related__body .list-related__body-parent .qms-list-item.image-item .trailing-box .material-icons-outlined{font-size:13px}.list-related .list-related__body .list-related__body-parent .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}.list-related .list-related__body .list-related__body-parent .block{font-weight:400;font-size:1rem;line-height:28px;display:flex;align-items:center}.list-related .list-related__body .list-related__body-parent .block .title{margin-left:1.5rem;padding-top:5px;padding-bottom:5px}.list-related .list-related__body .list-related__body-parent .block .title .caption{color:rgba(0,0,0,.6);font-size:.75rem;line-height:22px}.list-related .list-related__body .list-related__body-parent .block mat-icon{color:rgba(0,0,0,.6);padding:0}.list-related .list-related__body .list-related__body-parent .block button.qms-btn-icon{width:40px;height:40px;line-height:40px}.list-related .list-related__body .list-related__body-child{font-weight:400;font-size:.875rem;line-height:22px}.list-related .list-related__body .list-related__body-child .default{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-related .list-related__body .list-related__body-child .default .title{margin-left:3rem}.list-related .list-related__body .list-related__body-child .default .group-button{margin-right:2rem;display:flex}.list-related .list-related__body .remain{font-weight:600;font-size:.875rem;line-height:22px;display:flex;align-items:center;justify-content:space-between;background-color:#fafafa;color:#1954a9;min-height:48px;border-bottom:1px solid #ddd}.list-related .list-related__body .remain .title{margin-left:3rem}.label-green,.label-red,.label-yellow{font-family:Open Sans;font-style:normal;font-weight:600;display:inline-block;text-align:center;margin-left:1rem;width:24px;height:24px;font-size:.75rem;border-radius:1px}.label-red{background-color:#9e360f;color:#fff}.label-yellow{background-color:#e4cf53;color:rgba(0,0,0,.87)}.label-green{background-color:#00804c;color:#fff}.cursor{cursor:pointer}"]
|
4892
4937
|
},] }
|
@@ -4904,6 +4949,9 @@ RelatedListComponent.propDecorators = {
|
|
4904
4949
|
onItemSelect: [{ type: Output }]
|
4905
4950
|
};
|
4906
4951
|
|
4952
|
+
class TreeModel {
|
4953
|
+
}
|
4954
|
+
|
4907
4955
|
var ModuleType$1;
|
4908
4956
|
(function (ModuleType) {
|
4909
4957
|
ModuleType[ModuleType["documentProcess"] = 1] = "documentProcess";
|
@@ -4944,9 +4992,6 @@ class SearchRelatedItemsToChecklist {
|
|
4944
4992
|
class SearchRelatedItemsToRisk {
|
4945
4993
|
}
|
4946
4994
|
|
4947
|
-
class TreeModel {
|
4948
|
-
}
|
4949
|
-
|
4950
4995
|
class QMSRelatedGlobalService {
|
4951
4996
|
constructor() {
|
4952
4997
|
this.searchRelated = new BehaviorSubject([]);
|
@@ -4965,9 +5010,6 @@ QMSRelatedGlobalService.decorators = [
|
|
4965
5010
|
];
|
4966
5011
|
QMSRelatedGlobalService.ctorParameters = () => [];
|
4967
5012
|
|
4968
|
-
class TreeFlatNode {
|
4969
|
-
}
|
4970
|
-
|
4971
5013
|
class RelatedPopupComponent {
|
4972
5014
|
constructor(cdRef, translate, dialogRef, globalService, iconRegistry, sanitizer, appIconService, elem, data) {
|
4973
5015
|
this.cdRef = cdRef;
|
@@ -5042,7 +5084,7 @@ class RelatedPopupComponent {
|
|
5042
5084
|
}
|
5043
5085
|
onMessage(event) {
|
5044
5086
|
if (event.data === RelatedConst.HIDE_SEARCH_RESULT) {
|
5045
|
-
this.autoComplete.closePanel();
|
5087
|
+
// this.autoComplete.closePanel();
|
5046
5088
|
}
|
5047
5089
|
}
|
5048
5090
|
ngOnInit() {
|
@@ -5084,6 +5126,7 @@ class RelatedPopupComponent {
|
|
5084
5126
|
newNodeDocs.rootName = item === null || item === void 0 ? void 0 : item.parentName;
|
5085
5127
|
newNodeDocs.subName = null;
|
5086
5128
|
newNodeDocs.statusId = item.status;
|
5129
|
+
newNodeDocs.statusName = item.statusName;
|
5087
5130
|
listNodeDocs.push(newNodeDocs);
|
5088
5131
|
}
|
5089
5132
|
});
|
@@ -5143,14 +5186,13 @@ class RelatedPopupComponent {
|
|
5143
5186
|
this.searchOrder = this.getSearchOrder();
|
5144
5187
|
}
|
5145
5188
|
ngAfterViewChecked() {
|
5146
|
-
this.cdRef.detectChanges();
|
5147
|
-
if (this.filteredOptions && this.filteredOptions.length) {
|
5148
|
-
|
5149
|
-
|
5150
|
-
}
|
5151
|
-
|
5152
|
-
|
5153
|
-
}
|
5189
|
+
// this.cdRef.detectChanges();
|
5190
|
+
// if (this.filteredOptions && this.filteredOptions.length) {
|
5191
|
+
// this.autoComplete.openPanel();
|
5192
|
+
// this.setResultHeight();
|
5193
|
+
// } else if (this.autoComplete) {
|
5194
|
+
// this.autoComplete.closePanel();
|
5195
|
+
// }
|
5154
5196
|
}
|
5155
5197
|
getDataTypeId(moduleId) {
|
5156
5198
|
let itemType;
|
@@ -5241,6 +5283,7 @@ class RelatedPopupComponent {
|
|
5241
5283
|
this.filteredOptions = [];
|
5242
5284
|
if (typeof (_val) === 'object') {
|
5243
5285
|
this.myControl.setValue('');
|
5286
|
+
this.isInputValue = false;
|
5244
5287
|
}
|
5245
5288
|
else if (typeof (_val) === 'string') {
|
5246
5289
|
if (!!_val) {
|
@@ -5263,7 +5306,7 @@ class RelatedPopupComponent {
|
|
5263
5306
|
return this.filteredOptions.filter(x => x.itemType === moduleId);
|
5264
5307
|
}
|
5265
5308
|
showSearchResult() {
|
5266
|
-
this.autoComplete.openPanel();
|
5309
|
+
// this.autoComplete.openPanel();
|
5267
5310
|
}
|
5268
5311
|
displayRelated(related) {
|
5269
5312
|
return related ? related.itemName : undefined;
|
@@ -5286,7 +5329,13 @@ class RelatedPopupComponent {
|
|
5286
5329
|
let node;
|
5287
5330
|
let typeId;
|
5288
5331
|
if (item.itemType === this.dataType.document) {
|
5289
|
-
// document
|
5332
|
+
// document
|
5333
|
+
const isExistInDisabled = this.disabledList2.findIndex(x => {
|
5334
|
+
return x.id && x.id.toLowerCase() === item.id.toLowerCase();
|
5335
|
+
});
|
5336
|
+
if (isExistInDisabled >= 0) {
|
5337
|
+
return;
|
5338
|
+
}
|
5290
5339
|
position = this.treeData2.findIndex(x => {
|
5291
5340
|
return x.childId === item.id;
|
5292
5341
|
});
|
@@ -5299,7 +5348,7 @@ class RelatedPopupComponent {
|
|
5299
5348
|
children: [],
|
5300
5349
|
parentId: node.rootId
|
5301
5350
|
};
|
5302
|
-
this.dataTrees.toArray()[1].
|
5351
|
+
this.dataTrees.toArray()[1].todoItemSelectionProcessDocument([treeNode]);
|
5303
5352
|
}
|
5304
5353
|
else {
|
5305
5354
|
let newNodeDocs = new TreeModel();
|
@@ -5310,6 +5359,7 @@ class RelatedPopupComponent {
|
|
5310
5359
|
newNodeDocs.childId = item.id;
|
5311
5360
|
newNodeDocs.childName = item.itemName;
|
5312
5361
|
newNodeDocs.statusId = item === null || item === void 0 ? void 0 : item['itemStatus'];
|
5362
|
+
newNodeDocs.statusName = item === null || item === void 0 ? void 0 : item['statusName'];
|
5313
5363
|
newNodeDocs.displayId = +item.itemNumberId;
|
5314
5364
|
this.treeData2 = [...this.treeData2, newNodeDocs];
|
5315
5365
|
let newSelectedDocs = new TreeFlatNode();
|
@@ -5370,7 +5420,7 @@ class RelatedPopupComponent {
|
|
5370
5420
|
children: [],
|
5371
5421
|
parentId: newNodeDocs.rootId
|
5372
5422
|
};
|
5373
|
-
this.dataTrees.toArray()[1].
|
5423
|
+
this.dataTrees.toArray()[1].todoItemSelectionProcessDocument([treeNode]);
|
5374
5424
|
}, 500);
|
5375
5425
|
}
|
5376
5426
|
}
|
@@ -5478,6 +5528,12 @@ class RelatedPopupComponent {
|
|
5478
5528
|
}
|
5479
5529
|
}
|
5480
5530
|
else {
|
5531
|
+
const isExistInDisabled = this.disabledList.findIndex(x => {
|
5532
|
+
return x.id && x.id.toLowerCase() === item.id.toLowerCase();
|
5533
|
+
});
|
5534
|
+
if (isExistInDisabled >= 0) {
|
5535
|
+
return;
|
5536
|
+
}
|
5481
5537
|
position = this.treeData1.findIndex(x => {
|
5482
5538
|
return x.childId && x.childId.toLowerCase() === item.id.toLowerCase();
|
5483
5539
|
});
|
@@ -5490,7 +5546,7 @@ class RelatedPopupComponent {
|
|
5490
5546
|
children: [],
|
5491
5547
|
parentId: node.rootId
|
5492
5548
|
};
|
5493
|
-
this.dataTrees.toArray()[0].
|
5549
|
+
this.dataTrees.toArray()[0].todoItemSelectionProcessDocument([treeNode]);
|
5494
5550
|
}
|
5495
5551
|
else {
|
5496
5552
|
let newNodeProcess = new TreeModel();
|
@@ -5561,7 +5617,7 @@ class RelatedPopupComponent {
|
|
5561
5617
|
children: [],
|
5562
5618
|
parentId: newNodeProcess.rootId
|
5563
5619
|
};
|
5564
|
-
this.dataTrees.toArray()[0].
|
5620
|
+
this.dataTrees.toArray()[0].todoItemSelectionProcessDocument([treeNode]);
|
5565
5621
|
}, 500);
|
5566
5622
|
}
|
5567
5623
|
}
|
@@ -5775,12 +5831,90 @@ class RelatedPopupComponent {
|
|
5775
5831
|
// if (this.treeConfig1.showCheckBox) {
|
5776
5832
|
this.selectedFolder = null;
|
5777
5833
|
this.itemInSplitview = [];
|
5834
|
+
this.checkedNodeList.forEach(element => {
|
5835
|
+
if (element.itemType === DataType$1.document) {
|
5836
|
+
element.status = this.getStatusDocs(element.id);
|
5837
|
+
element.breadcumbs = this.getBreadcumbAllParentDocs(element.id).slice(1).reverse();
|
5838
|
+
element.statusName = this.getStatusName(element.id);
|
5839
|
+
}
|
5840
|
+
if (element.itemType === DataType$1.process) {
|
5841
|
+
element.status = this.getStatusProcess(element.id);
|
5842
|
+
element.breadcumbs = this.getBreadcumbAllParentProcess(element.id).slice(1).reverse();
|
5843
|
+
}
|
5844
|
+
});
|
5778
5845
|
this.dialogRef.close(this.checkedNodeList);
|
5779
5846
|
// }
|
5780
5847
|
// else {
|
5781
5848
|
// this.dialogRef.close(this.selectedNode);
|
5782
5849
|
// }
|
5783
5850
|
}
|
5851
|
+
getStatusName(id) {
|
5852
|
+
let statusName = '';
|
5853
|
+
this.treeData2.forEach(x => {
|
5854
|
+
if (id.toString() === x.childId) {
|
5855
|
+
statusName = x.statusName;
|
5856
|
+
}
|
5857
|
+
});
|
5858
|
+
return statusName;
|
5859
|
+
}
|
5860
|
+
getBreadcumbAllParentProcess(id) {
|
5861
|
+
let tempParent = [];
|
5862
|
+
this.checkBreadcumbProcess(id, tempParent, function (arr) {
|
5863
|
+
tempParent = [...arr];
|
5864
|
+
});
|
5865
|
+
return tempParent;
|
5866
|
+
}
|
5867
|
+
getBreadcumbAllParentDocs(id) {
|
5868
|
+
let tempParent = [];
|
5869
|
+
this.checkBreadcumbDocument(id, tempParent, function (arr) {
|
5870
|
+
tempParent = [...arr];
|
5871
|
+
});
|
5872
|
+
return tempParent;
|
5873
|
+
}
|
5874
|
+
checkBreadcumbProcess(id, breadcumbs, callback) {
|
5875
|
+
for (let i = 0; i < this.treeControlNodeProcess.dataNodes.length; i++) {
|
5876
|
+
const tree = this.treeControlNodeProcess.dataNodes[i];
|
5877
|
+
if (id == tree.id) {
|
5878
|
+
breadcumbs = [...breadcumbs, tree];
|
5879
|
+
if (tree.parentId) {
|
5880
|
+
this.checkBreadcumbProcess(tree.parentId, breadcumbs, callback);
|
5881
|
+
}
|
5882
|
+
else {
|
5883
|
+
callback(breadcumbs);
|
5884
|
+
}
|
5885
|
+
}
|
5886
|
+
}
|
5887
|
+
}
|
5888
|
+
checkBreadcumbDocument(id, breadcumbs, callback) {
|
5889
|
+
for (let i = 0; i < this.treeControlNodeDocument.dataNodes.length; i++) {
|
5890
|
+
const tree = this.treeControlNodeDocument.dataNodes[i];
|
5891
|
+
if (id == tree.id) {
|
5892
|
+
breadcumbs = [...breadcumbs, tree];
|
5893
|
+
if (tree.parentId) {
|
5894
|
+
this.checkBreadcumbDocument(tree.parentId, breadcumbs, callback);
|
5895
|
+
}
|
5896
|
+
else {
|
5897
|
+
callback(breadcumbs);
|
5898
|
+
}
|
5899
|
+
}
|
5900
|
+
}
|
5901
|
+
}
|
5902
|
+
selectTreeControlNodeDocument(treeNodes) {
|
5903
|
+
this.treeControlNodeDocument = null;
|
5904
|
+
this.treeControlNodeDocument = treeNodes;
|
5905
|
+
this.treeControlNodeDocument.dataNodes = this.treeControlNodeDocument.dataNodes.filter(x => x.name !== null && x.name !== '');
|
5906
|
+
}
|
5907
|
+
selectTreeControlNodeProcess(treeNodes) {
|
5908
|
+
this.treeControlNodeProcess = null;
|
5909
|
+
this.treeControlNodeProcess = treeNodes;
|
5910
|
+
this.treeControlNodeProcess.dataNodes = this.treeControlNodeProcess.dataNodes.filter(x => x.name !== null && x.name !== '');
|
5911
|
+
}
|
5912
|
+
getStatusDocs(id) {
|
5913
|
+
return this.treeData2.filter(x => x.childId === id)[0].statusId;
|
5914
|
+
}
|
5915
|
+
getStatusProcess(id) {
|
5916
|
+
return this.treeData1.filter(x => x.childId === id)[0].statusId;
|
5917
|
+
}
|
5784
5918
|
getOffsetHeight(element, includeMargin) {
|
5785
5919
|
let elmHeight = 0, elmMargin = 0;
|
5786
5920
|
elmHeight = element.offsetHeight;
|
@@ -5986,7 +6120,7 @@ class RelatedPopupComponent {
|
|
5986
6120
|
RelatedPopupComponent.decorators = [
|
5987
6121
|
{ type: Component, args: [{
|
5988
6122
|
selector: 'qms-related-popup',
|
5989
|
-
template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName | uppercase }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"canShowSearchOption(type.value)\"\r\n >\r\n <span class=\"search__module-title\">{{ getTitle(type.value) }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(type.value)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length,\r\n 'col-6': splitView,\r\n 'col-12': !splitView\r\n }\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title *ngIf=\"moduleId === module.documentProcess\">\r\n {{ LANG.PROCESSES | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.deviation\">\r\n {{ LANG.DEVIATION | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.checklist\">\r\n {{ LANG.CHECKLIST | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.risk\">\r\n {{ LANG.ASSESSMENT | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isCommonExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n\r\n <div\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n class=\"line__divider\"\r\n ></div>\r\n\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n id=\"qmslib_related_popup_document_001\"\r\n [expanded]=\"isDocumentExpanded\"\r\n (opened)=\"isDocumentExpanded = true\"\r\n (closed)=\"isDocumentExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title> {{ LANG.DOCUMENTS | uppercase }} </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isDocumentExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_document_002\">\r\n <qms-tree\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (checkBoxEvent)=\"getDocumentCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n <div\r\n *ngIf=\"splitView\"\r\n class=\"\r\n qms-scrollbar\r\n qmslib-related-popup-splitview qmslib_related_popup_content\r\n col-6\r\n \"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <div class=\"splitview-header\" *ngIf=\"selectedFolder\">\r\n {{ splitViewTitle }}\r\n </div>\r\n <div class=\"expand-node\" *ngFor=\"let node of itemInSplitview\">\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n [checked]=\"isNodeSelected(node)\"\r\n (change)=\"toggleSelectItem(node)\"\r\n ></mat-checkbox>\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.itemName }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon\r\n *ngIf=\"!(treeConfig1?.selectOne || treeConfig2?.selectOne)\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
|
6123
|
+
template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName | uppercase }}</span>\r\n </div>\r\n </div>\r\n\r\n <div id=\"qmslib_related_popup_search\" class=\"input__field\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n [class.related-viewport]=\"isInputValue\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"canShowSearchOption(type.value)\"\r\n >\r\n <span class=\"search__module-title\">{{ getTitle(type.value) }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(type.value)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length,\r\n 'col-6': splitView,\r\n 'col-12': !splitView\r\n }\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title *ngIf=\"moduleId === module.documentProcess\">\r\n {{ LANG.PROCESSES | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.deviation\">\r\n {{ LANG.DEVIATION | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.checklist\">\r\n {{ LANG.CHECKLIST | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.risk\">\r\n {{ LANG.ASSESSMENT | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isCommonExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeProcess($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n\r\n <div\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n class=\"line__divider\"\r\n ></div>\r\n\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n id=\"qmslib_related_popup_document_001\"\r\n [expanded]=\"isDocumentExpanded\"\r\n (opened)=\"isDocumentExpanded = true\"\r\n (closed)=\"isDocumentExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title> {{ LANG.DOCUMENTS | uppercase }} </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isDocumentExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_document_002\">\r\n <qms-tree\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (checkBoxEvent)=\"getDocumentCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeDocument($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n <div\r\n *ngIf=\"splitView\"\r\n class=\"\r\n qms-scrollbar\r\n qmslib-related-popup-splitview qmslib_related_popup_content\r\n col-6\r\n \"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <div class=\"splitview-header\" *ngIf=\"selectedFolder\">\r\n {{ splitViewTitle }}\r\n </div>\r\n <div class=\"expand-node\" *ngFor=\"let node of itemInSplitview\">\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n [checked]=\"isNodeSelected(node)\"\r\n (change)=\"toggleSelectItem(node)\"\r\n ></mat-checkbox>\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.itemName }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon\r\n *ngIf=\"!(treeConfig1?.selectOne || treeConfig2?.selectOne)\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
|
5990
6124
|
encapsulation: ViewEncapsulation.None,
|
5991
6125
|
styles: [".qms-scrollbar::-webkit-scrollbar{width:12px}.qms-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-scrollbar.none-scroll-bg::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:#fff;padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:#9e360f;margin-left:10px}.qms__danger .yellow{background-color:#e4cf53;margin-left:10px;color:#323232}.qms__danger .green{background-color:#00804c;margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:#f8f9f9}.confirm__button__groups .confirm:hover{background:#001983;color:#fff}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:#f8f9f9}.confirm__button__groups .cancel:hover{background:#001983;color:#fff}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:#eee}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:#e5e5e5;max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:#8e8e8e;font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:278px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
|
5992
6126
|
},] }
|