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.
@@ -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
- if (!this.isMobileType && this.ele.nativeElement.offsetWidth) {
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
- if (this.parentNodeOnClick) {
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.id || this.parentNodeOnClick.id === tree.id) {
4163
- this.getParent(tree);
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 {{ item?.displayId }} {{ getItemStatus(item) }}\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",
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
- this.autoComplete.openPanel();
5149
- this.setResultHeight();
5150
- }
5151
- else if (this.autoComplete) {
5152
- this.autoComplete.closePanel();
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].todoItemSelection([treeNode]);
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].todoItemSelection([treeNode]);
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].todoItemSelection([treeNode]);
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].todoItemSelection([treeNode]);
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
  },] }