qms-angular 1.0.62 → 1.0.66

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.
Files changed (75) hide show
  1. package/bundles/qms-angular.umd.js +2127 -120
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/common/enum/data-type.enum.js +14 -0
  4. package/esm2015/lib/common/enum/document-node-type.enum.js +12 -0
  5. package/esm2015/lib/common/enum/module-type.enum.js +8 -0
  6. package/esm2015/lib/common/related.const.js +6 -0
  7. package/esm2015/lib/components/breadcrumb/breadcrumb.js +1 -1
  8. package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +3 -3
  9. package/esm2015/lib/components/related/list-other-related/list-related.component.js +2 -2
  10. package/esm2015/lib/components/related/model/related-data.model.js +3 -1
  11. package/esm2015/lib/components/related/popup/related-popup.component.js +42 -10
  12. package/esm2015/lib/components/related/risk/analysis/analysis.component.js +1 -3
  13. package/esm2015/lib/components/select-include-children/select-include-children.component.js +7 -8
  14. package/esm2015/lib/components/select-one/select-one.component.js +10 -2
  15. package/esm2015/lib/components/select-process-document/index.js +2 -0
  16. package/esm2015/lib/components/select-process-document/models/pop-up-data.model.js +13 -0
  17. package/esm2015/lib/components/select-process-document/models/qms-process-document-item.model.js +3 -0
  18. package/esm2015/lib/components/select-process-document/models/selected-process-document-item.model.js +3 -0
  19. package/esm2015/lib/components/select-process-document/public_api.js +7 -0
  20. package/esm2015/lib/components/select-process-document/select-process-document.component.js +847 -0
  21. package/esm2015/lib/components/select-process-document/select-process-document.module.js +59 -0
  22. package/esm2015/lib/components/select-process-document/services/select-process-document-global.service.js +29 -0
  23. package/esm2015/lib/components/tree/model/tree-config.model.js +1 -1
  24. package/esm2015/lib/components/tree/model/tree.model.js +1 -1
  25. package/esm2015/lib/components/tree/tree.component.js +33 -28
  26. package/esm2015/lib/components/treeNew/index.js +2 -0
  27. package/esm2015/lib/components/treeNew/model/tree-node.model.js +3 -0
  28. package/esm2015/lib/components/treeNew/model/tree.model.js +3 -0
  29. package/esm2015/lib/components/treeNew/public-api.js +5 -0
  30. package/esm2015/lib/components/treeNew/tree.component.js +785 -0
  31. package/esm2015/lib/components/treeNew/tree.function.js +97 -0
  32. package/esm2015/lib/components/treeNew/tree.module.js +51 -0
  33. package/esm2015/lib/model/en.js +3 -3
  34. package/esm2015/lib/model/no.js +3 -3
  35. package/esm2015/public-api.js +7 -1
  36. package/fesm2015/qms-angular.js +2103 -205
  37. package/fesm2015/qms-angular.js.map +1 -1
  38. package/lib/common/enum/data-type.enum.d.ts +12 -0
  39. package/lib/common/enum/document-node-type.enum.d.ts +10 -0
  40. package/lib/common/enum/module-type.enum.d.ts +6 -0
  41. package/lib/common/related.const.d.ts +5 -0
  42. package/lib/components/related/model/related-data.model.d.ts +3 -0
  43. package/lib/components/related/popup/related-popup.component.d.ts +8 -3
  44. package/lib/components/select-include-children/select-include-children.component.d.ts +8 -9
  45. package/lib/components/select-one/select-one.component.d.ts +1 -0
  46. package/lib/components/select-process-document/index.d.ts +1 -0
  47. package/lib/components/select-process-document/models/pop-up-data.model.d.ts +17 -0
  48. package/lib/components/select-process-document/models/qms-process-document-item.model.d.ts +13 -0
  49. package/lib/components/select-process-document/models/selected-process-document-item.model.d.ts +16 -0
  50. package/lib/components/select-process-document/public_api.d.ts +6 -0
  51. package/lib/components/select-process-document/select-process-document.component.d.ts +120 -0
  52. package/lib/components/select-process-document/select-process-document.module.d.ts +2 -0
  53. package/lib/components/select-process-document/services/select-process-document-global.service.d.ts +14 -0
  54. package/lib/components/tree/model/tree-config.model.d.ts +2 -2
  55. package/lib/components/tree/model/tree.model.d.ts +1 -0
  56. package/lib/components/tree/tree.component.d.ts +1 -2
  57. package/lib/components/treeNew/index.d.ts +1 -0
  58. package/lib/components/treeNew/model/tree-node.model.d.ts +8 -0
  59. package/lib/components/treeNew/model/tree.model.d.ts +11 -0
  60. package/lib/components/treeNew/public-api.d.ts +4 -0
  61. package/lib/components/treeNew/tree.component.d.ts +135 -0
  62. package/lib/components/treeNew/tree.function.d.ts +13 -0
  63. package/lib/components/treeNew/tree.module.d.ts +2 -0
  64. package/package.json +1 -1
  65. package/public-api.d.ts +6 -0
  66. package/qms-angular.metadata.json +1 -1
  67. package/src/assets/qms-ckeditor-plugin/package-lock.json +12177 -9
  68. package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
  69. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +87 -0
  70. package/src/lib/components/breadcrumb/breadcrumb.scss +1 -1
  71. package/src/lib/components/qms-app-bar/qms-app-bar.component.scss +16 -2
  72. package/src/lib/components/related/popup/related-popup.component.scss +22 -1
  73. package/src/lib/components/select-process-document/select-process-document.component.scss +300 -0
  74. package/src/lib/components/tree/tree.component.scss +4 -6
  75. package/src/lib/components/treeNew/tree.component.scss +175 -0
@@ -46,6 +46,7 @@ import { MatToolbarModule } from '@angular/material/toolbar';
46
46
  import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
47
47
  import { MatStepperModule } from '@angular/material/stepper';
48
48
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
49
+ import { QMSNewTreeModule as QMSNewTreeModule$1 } from 'projects/qms-angular/src/public-api';
49
50
 
50
51
  class QmsAngularService {
51
52
  constructor() { }
@@ -85,8 +86,8 @@ const en = {
85
86
  "CAPTION_TITLE": "In causal assessments, all causes related to the event are automatically added.",
86
87
  "CAUSAL_ANALYZES": "Selected Assessments",
87
88
  "FINISHED": "Finished",
88
- "PROCESS_ID": "Process ID",
89
- "DOCUMENT_ID": "Document ID",
89
+ "PROCESS_ID": "ID",
90
+ "DOCUMENT_ID": "ID",
90
91
  "PROCESS_AREA": "Process area",
91
92
  "FOLDER": "Folder",
92
93
  "DEVIATION_TYPE": "Deviation type",
@@ -347,8 +348,8 @@ const no = {
347
348
  "CAPTION_TITLE": "I årsaksanalyser blir automatisk alle årsaker knyttet til hendelsen lagt til.",
348
349
  "CAUSAL_ANALYZES": "Valgte Analyser",
349
350
  "FINISHED": "Ferdig",
350
- "PROCESS_ID": "Prosess ID",
351
- "DOCUMENT_ID": "Dokument ID",
351
+ "PROCESS_ID": "ID",
352
+ "DOCUMENT_ID": "ID",
352
353
  "PROCESS_AREA": "Prosessområder",
353
354
  "FOLDER": "Mappe",
354
355
  "DEVIATION_TYPE": "Sakstype",
@@ -3791,7 +3792,7 @@ QMSBreadcrumb.decorators = [
3791
3792
  selector: 'qms-breadcrumb',
3792
3793
  template: "<div>\r\n <div class=\"breadcrumb-container\" *ngIf=\"!isMobileType\">\r\n <!-- Home -->\r\n <span\r\n qms-breadcrumb-item\r\n *ngIf=\"!isOverflow || type=='table'\"\r\n [(showTooltip)]=\"homeNode.isOverflow\"\r\n >\r\n <mat-icon\r\n *ngIf=\"homeNode.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ homeNode.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"homeNode.displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"homeNode.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"homeNode.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"homeNode.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"homeNode.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(homeNode)\"\r\n />\r\n <div\r\n [qms-tool-tip]=\"homeNode.name\"\r\n [showToolTip]=\"homeNode.isOverflow\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n (click)=\"onItemSelect(homeNode)\"\r\n >\r\n {{homeNode.name}}\r\n </div>\r\n <mat-icon *ngIf=\"!isOverflow && type !=='table'\">keyboard_arrow_right</mat-icon>\r\n <span\r\n *ngIf=\"itemNodes.length && type=='table'\"\r\n qms-breadcrumb-direction-icon\r\n >\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </span>\r\n\r\n <!-- Dropdown not table -->\r\n <span qms-breadcrumb-item *ngIf=\"isOverflow && type!='table'\">\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n class=\"breadcrumb__dropdown-btn\"\r\n [matMenuTriggerFor]=\"bodyMediumMenu\"\r\n >\r\n <mat-icon svgIcon=\"breadcrumb_dropdown\"></mat-icon>\r\n </button>\r\n <mat-menu\r\n #bodyMediumMenu=\"matMenu\"\r\n yPosition=\"below\"\r\n class=\"qms-breadcrumb-menu\"\r\n >\r\n <div (click)=\"$event.stopPropagation()\">\r\n <div\r\n qms-menu-item\r\n mat-menu-item\r\n disableRipple\r\n *ngFor=\"let item of dropdownNodes\"\r\n (keydown.enter)=\"onKeyPressed($event)\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <div #menuItemContent qms-expansion-header>\r\n <div qms-list-header>\r\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </span>\r\n\r\n <!-- Dropdown table -->\r\n <span qms-breadcrumb-item *ngIf=\"isOverflow && type=='table'\">\r\n <button qms-btn-icon color=\"light\" [matMenuTriggerFor]=\"bodyMediumMenu\">\r\n <mat-icon>more_horiz</mat-icon>\r\n </button>\r\n <mat-menu\r\n #bodyMediumMenu=\"matMenu\"\r\n yPosition=\"below\"\r\n class=\"qms-breadcrumb-menu\"\r\n >\r\n <div (click)=\"$event.stopPropagation()\">\r\n <div\r\n qms-menu-item\r\n mat-menu-item\r\n disableRipple\r\n *ngFor=\"let item of dropdownNodes\"\r\n (keydown.enter)=\"onKeyPressed($event)\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <div #menuItemContent qms-expansion-header>\r\n <div qms-list-header>\r\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </span>\r\n <!-- Item list -->\r\n <span\r\n qms-breadcrumb-item\r\n *ngFor=\"let item of itemNodes;let i=index\"\r\n [isLastItem]=\"i === itemNodes.length - 1\"\r\n [(showTooltip)]=\"item.isOverflow\"\r\n >\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.name && item.isShow\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ item.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.svg && item.isShow\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"item.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.path && item.isShow\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"item.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.base64 && item.isShow\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(item)\"\r\n />\r\n <div\r\n [qms-tool-tip]=\"item.name\"\r\n [showToolTip]=\"item.isOverflow\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n *ngIf=\"item.isShow\"\r\n (click)=\"onItemSelect(item, i == itemNodes.length - 1);\"\r\n >\r\n {{item.name}}\r\n </div>\r\n <span\r\n qms-breadcrumb-direction-icon\r\n *ngIf=\"item.isShow && i !== itemNodes.length - 1\"\r\n >\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </span>\r\n </div>\r\n\r\n <div class=\"breadcrumb-container\" *ngIf=\"isMobileType\">\r\n <!-- Home -->\r\n <span qms-breadcrumb-item [(showTooltip)]=\"previousNode.isOverflow\">\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_backspace</mat-icon>\r\n </span>\r\n <mat-icon\r\n *ngIf=\"previousNode.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ previousNode.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"previousNode.displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"previousNode.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"previousNode.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"previousNode.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"previousNode.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(previousNode)\"\r\n />\r\n <div\r\n [qms-tool-tip]=\"previousNode.name\"\r\n [showToolTip]=\"previousNode.isOverflow\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n (click)=\"onItemSelect(previousNode)\"\r\n >\r\n {{previousNode.name}}\r\n </div>\r\n </span>\r\n </div>\r\n</div>\r\n",
3793
3794
  encapsulation: ViewEncapsulation.None,
3794
- styles: [".breadcrumb-container{display:flex;font-family:Open Sans;font-size:14px;font-weight:600;color:#323232}.breadcrumb-container .qms-breadcrumb-direction-icon,.breadcrumb-container .qms-breadcrumb-item{display:flex;align-items:center;padding:3px 0 2px}.breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:18px;height:18px;font-size:18px;margin-left:.5rem;margin-right:.5rem}.breadcrumb-container .item-icon{margin-right:2px}.breadcrumb-container .qms-breadcrumb-item{cursor:pointer}.breadcrumb-container .qms-breadcrumb-item .qms-btn-icon{width:1.5rem;height:1.5rem;line-height:2rem}.breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-text{max-width:240px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn{width:2rem;height:2rem}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn svg{display:block}.breadcrumb-container .qms-breadcrumb-last-item{color:rgba(0,0,0,.6);font-weight:400;cursor:not-allowed}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:12px;height:12px;font-size:12px;margin-left:.25rem;margin-right:.25rem;color:rgba(0,0,0,.6)}.qms-breadcrumb-table .breadcrumb-container .item-icon{margin-right:1px}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-text{max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:12px;font-weight:400;color:rgba(0,0,0,.6)}.qms-breadcrumb__multi-line .breadcrumb-container{flex-wrap:wrap}.qms-breadcrumb-menu .qms-dropdown-menu-item{border:none}"]
3795
+ styles: [".breadcrumb-container{display:flex;font-family:Open Sans;font-size:14px;font-weight:600;color:#323232}.breadcrumb-container .qms-breadcrumb-direction-icon,.breadcrumb-container .qms-breadcrumb-item{display:flex;align-items:center;padding:3px 0 2px}.breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:18px;height:18px;font-size:18px;margin-left:.5rem;margin-right:.5rem}.breadcrumb-container .item-icon{margin-right:2px}.breadcrumb-container .qms-breadcrumb-item{cursor:inherit}.breadcrumb-container .qms-breadcrumb-item .qms-btn-icon{width:1.5rem;height:1.5rem;line-height:2rem}.breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-text{max-width:240px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn{width:2rem;height:2rem}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn svg{display:block}.breadcrumb-container .qms-breadcrumb-last-item{color:rgba(0,0,0,.6);font-weight:400;cursor:not-allowed}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:12px;height:12px;font-size:12px;margin-left:.25rem;margin-right:.25rem;color:rgba(0,0,0,.6)}.qms-breadcrumb-table .breadcrumb-container .item-icon{margin-right:1px}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-text{max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:12px;font-weight:400;color:rgba(0,0,0,.6)}.qms-breadcrumb__multi-line .breadcrumb-container{flex-wrap:wrap}.qms-breadcrumb-menu .qms-dropdown-menu-item{border:none}"]
3795
3796
  },] }
3796
3797
  ];
3797
3798
  QMSBreadcrumb.ctorParameters = () => [
@@ -3858,7 +3859,7 @@ QMSBreadcrumbModule.decorators = [
3858
3859
  },] }
3859
3860
  ];
3860
3861
 
3861
- var DataType$1;
3862
+ var DataType$2;
3862
3863
  (function (DataType) {
3863
3864
  DataType[DataType["process"] = 2] = "process";
3864
3865
  DataType[DataType["document"] = 1] = "document";
@@ -3870,9 +3871,9 @@ var DataType$1;
3870
3871
  DataType[DataType["deviationType"] = 8] = "deviationType";
3871
3872
  DataType[DataType["checklistCategory"] = 9] = "checklistCategory";
3872
3873
  DataType[DataType["riskFolder"] = 10] = "riskFolder";
3873
- })(DataType$1 || (DataType$1 = {}));
3874
+ })(DataType$2 || (DataType$2 = {}));
3874
3875
 
3875
- var DocumentNodeType$1;
3876
+ var DocumentNodeType$2;
3876
3877
  (function (DocumentNodeType) {
3877
3878
  DocumentNodeType[DocumentNodeType["Document"] = 1] = "Document";
3878
3879
  DocumentNodeType[DocumentNodeType["LinkDocument"] = 2] = "LinkDocument";
@@ -3882,24 +3883,24 @@ var DocumentNodeType$1;
3882
3883
  DocumentNodeType[DocumentNodeType["TopFolder"] = 6] = "TopFolder";
3883
3884
  DocumentNodeType[DocumentNodeType["DepartmentFolder"] = 7] = "DepartmentFolder";
3884
3885
  DocumentNodeType[DocumentNodeType["RegionalFolder"] = 8] = "RegionalFolder";
3885
- })(DocumentNodeType$1 || (DocumentNodeType$1 = {}));
3886
+ })(DocumentNodeType$2 || (DocumentNodeType$2 = {}));
3886
3887
 
3887
- class RelatedConst {
3888
+ class RelatedConst$1 {
3888
3889
  }
3889
- RelatedConst.IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';
3890
- RelatedConst.HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';
3891
- RelatedConst.SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';
3890
+ RelatedConst$1.IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';
3891
+ RelatedConst$1.HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';
3892
+ RelatedConst$1.SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';
3892
3893
 
3893
3894
  class TreeNode$1 {
3894
3895
  }
3895
3896
 
3896
- let objData$1 = {};
3897
- let json = JSON;
3898
- function buildArrayTree$1(obj, level) {
3897
+ let objData$2 = {};
3898
+ let json$1 = JSON;
3899
+ function buildArrayTree$2(obj, level) {
3899
3900
  return Object.keys(obj).reduce((accumulator, key) => {
3900
3901
  const value = obj[key];
3901
3902
  const node = new TreeNode$1();
3902
- const keyObj = json.parse(key);
3903
+ const keyObj = json$1.parse(key);
3903
3904
  node.id = keyObj["id"];
3904
3905
  node.name = keyObj["name"];
3905
3906
  node.parentId = keyObj["parentId"];
@@ -3915,8 +3916,8 @@ function buildArrayTree$1(obj, level) {
3915
3916
  return accumulator.concat(node);
3916
3917
  }, []);
3917
3918
  }
3918
- function buildObjectTree$1(arr) {
3919
- objData$1 = {};
3919
+ function buildObjectTree$2(arr) {
3920
+ objData$2 = {};
3920
3921
  let objTreeData;
3921
3922
  const root = arr.filter((x) => {
3922
3923
  return x.parentId === '';
@@ -3926,7 +3927,7 @@ function buildObjectTree$1(arr) {
3926
3927
  });
3927
3928
  return objTreeData;
3928
3929
  }
3929
- function findParent$1(id, array) {
3930
+ function findParent$2(id, array) {
3930
3931
  const objParent = {};
3931
3932
  const parent = array.filter((x) => {
3932
3933
  return x.rootId === id;
@@ -3938,7 +3939,7 @@ function findParent$1(id, array) {
3938
3939
  parentId: item.rootId,
3939
3940
  levelType: item.levelType
3940
3941
  };
3941
- objParent[json.stringify(parentKey)] = null;
3942
+ objParent[json$1.stringify(parentKey)] = null;
3942
3943
  });
3943
3944
  // find child
3944
3945
  const child = array.filter((x) => {
@@ -3954,10 +3955,10 @@ function findParent$1(id, array) {
3954
3955
  levelType: parent[0].levelType
3955
3956
  };
3956
3957
  // add node to tree
3957
- objData$1[json.stringify(key)] = objParent;
3958
- return objData$1;
3958
+ objData$2[json$1.stringify(key)] = objParent;
3959
+ return objData$2;
3959
3960
  }
3960
- function findChild$1(id, objParent, array) {
3961
+ function findChild$2(id, objParent, array) {
3961
3962
  const subNode = array.filter((x) => {
3962
3963
  return x.parentId === id;
3963
3964
  });
@@ -3969,7 +3970,7 @@ function findChild$1(id, objParent, array) {
3969
3970
  parentId: item.rootId,
3970
3971
  levelType: item.levelType
3971
3972
  };
3972
- processNode[json.stringify(nodeKey)] = null;
3973
+ processNode[json$1.stringify(nodeKey)] = null;
3973
3974
  this.findChild(item.rootId, processNode, array);
3974
3975
  let key = {
3975
3976
  id: item.rootId,
@@ -3977,14 +3978,14 @@ function findChild$1(id, objParent, array) {
3977
3978
  parentId: id,
3978
3979
  levelType: item.levelType
3979
3980
  };
3980
- objParent[json.stringify(key)] = Object.assign(Object.assign({}, objParent[json.stringify(key)]), processNode);
3981
+ objParent[json$1.stringify(key)] = Object.assign(Object.assign({}, objParent[json$1.stringify(key)]), processNode);
3981
3982
  });
3982
3983
  }
3983
- const TreeFunctions = {
3984
- buildArrayTree: buildArrayTree$1,
3985
- buildObjectTree: buildObjectTree$1,
3986
- findParent: findParent$1,
3987
- findChild: findChild$1
3984
+ const TreeFunctions$1 = {
3985
+ buildArrayTree: buildArrayTree$2,
3986
+ buildObjectTree: buildObjectTree$2,
3987
+ findParent: findParent$2,
3988
+ findChild: findChild$2
3988
3989
  };
3989
3990
 
3990
3991
  class TreeFlatNode {
@@ -4013,8 +4014,6 @@ class TreeComponent {
4013
4014
  this.arrIndex = [];
4014
4015
  this.checkedNodeList = [];
4015
4016
  this.useExpandFeature = true;
4016
- this.allowSelectFolder = false;
4017
- this.areaOfCurrentProcess = '';
4018
4017
  this.showCheckBox = false;
4019
4018
  this.allowMultipleCheck = true;
4020
4019
  this.singleSelectedNode = false;
@@ -4038,7 +4037,7 @@ class TreeComponent {
4038
4037
  this.isChecked = false;
4039
4038
  this.idCheckIcon = '';
4040
4039
  this.listChildNode = [];
4041
- this.dataType = DataType$1;
4040
+ this.dataType = DataType$2;
4042
4041
  this.transformer = (node, level) => {
4043
4042
  let checkHasChild = true;
4044
4043
  if (!node.children) {
@@ -4052,7 +4051,7 @@ class TreeComponent {
4052
4051
  node.children.length &&
4053
4052
  node.children.length === 1 &&
4054
4053
  !node.children[0].name &&
4055
- node.id.toString() === this.areaOfCurrentProcess) {
4054
+ node.id.toString() === '') {
4056
4055
  checkHasChild = false;
4057
4056
  }
4058
4057
  if (!(this.listParentObj[node.id] === 1)) {
@@ -4099,10 +4098,11 @@ class TreeComponent {
4099
4098
  (changes.selectedData.currentValue.length > 0 ||
4100
4099
  JSON.stringify(changes.selectedData.currentValue) !==
4101
4100
  JSON.stringify(changes.selectedData.previousValue))) {
4102
- if (changes.selectedData.currentValue) {
4101
+ if (changes.selectedData.currentValue && changes.selectedData.currentValue[0] !== null) {
4103
4102
  this.checkSelected(changes.selectedData.currentValue);
4104
4103
  }
4105
4104
  else {
4105
+ this.idCheckIcon = '';
4106
4106
  for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
4107
4107
  this.checklistSelection.deselect(this.treeControl.dataNodes[i]);
4108
4108
  }
@@ -4120,7 +4120,7 @@ class TreeComponent {
4120
4120
  // this.initTreeData();
4121
4121
  }
4122
4122
  initTreeData() {
4123
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
4123
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
4124
4124
  this.treeData.forEach(item => {
4125
4125
  if (!!item.parentId && item.parentId.length > 0) {
4126
4126
  this.listParentObj[item.parentId] = 1;
@@ -4130,30 +4130,28 @@ class TreeComponent {
4130
4130
  }
4131
4131
  });
4132
4132
  this.filterData = this.treeData;
4133
- this.treeObject = TreeFunctions.buildObjectTree(this.filterData);
4134
- this.dataSource.data = TreeFunctions.buildArrayTree(this.treeObject || {}, 0).map(element => {
4133
+ this.treeObject = TreeFunctions$1.buildObjectTree(this.filterData);
4134
+ this.dataSource.data = TreeFunctions$1.buildArrayTree(this.treeObject || {}, 0).map(element => {
4135
4135
  const item = this.sortDataTree(element);
4136
4136
  element = null;
4137
4137
  element = Object.assign({}, item);
4138
4138
  return element;
4139
4139
  });
4140
4140
  this.useExpandFeature = !((_a = this.treeConfig) === null || _a === void 0 ? void 0 : _a.showCheckBox);
4141
- this.allowSelectFolder = (_b = this.treeConfig) === null || _b === void 0 ? void 0 : _b.allowSelectFolder;
4142
- this.areaOfCurrentProcess = (_c = this.treeConfig) === null || _c === void 0 ? void 0 : _c.areaOfCurrentProcess;
4143
- this.showCheckBox = (_d = this.treeConfig) === null || _d === void 0 ? void 0 : _d.showCheckBox;
4144
- this.onlyCheckBoxForChild = (_e = this.treeConfig) === null || _e === void 0 ? void 0 : _e.onlyCheckBoxForChild;
4145
- this.moduleId = (_f = this.treeConfig) === null || _f === void 0 ? void 0 : _f.moduleId;
4146
- this.openIcon = (_g = this.treeConfig) === null || _g === void 0 ? void 0 : _g.openIcon;
4147
- this.openIconColor = ((_h = this.treeConfig) === null || _h === void 0 ? void 0 : _h.openIconColor) ? (_j = this.treeConfig) === null || _j === void 0 ? void 0 : _j.openIconColor : this.openIconColor;
4148
- this.closeIcon = (_k = this.treeConfig) === null || _k === void 0 ? void 0 : _k.closeIcon;
4149
- this.closeIconColor = ((_l = this.treeConfig) === null || _l === void 0 ? void 0 : _l.closeIconColor) ? (_m = this.treeConfig) === null || _m === void 0 ? void 0 : _m.closeIconColor : this.closeIconColor;
4150
- this.itemIcon = (_o = this.treeConfig) === null || _o === void 0 ? void 0 : _o.itemIcon;
4151
- this.itemIconSvg = (_p = this.treeConfig) === null || _p === void 0 ? void 0 : _p.itemIconSvg;
4152
- this.itemIconPath = (_q = this.treeConfig) === null || _q === void 0 ? void 0 : _q.itemIconPath;
4153
- this.itemIconBase64 = this.domSanitizer.bypassSecurityTrustResourceUrl((_r = this.treeConfig) === null || _r === void 0 ? void 0 : _r.itemIconBase64);
4154
- this.allowMultipleCheck = (_s = this.treeConfig) === null || _s === void 0 ? void 0 : _s.allowMultipleCheck;
4155
- this.singleSelectedNode = (_t = this.treeConfig) === null || _t === void 0 ? void 0 : _t.singleSelectedNode;
4156
- this.onlyFolder = (_u = this.treeConfig) === null || _u === void 0 ? void 0 : _u.onlyFolder;
4141
+ this.showCheckBox = (_b = this.treeConfig) === null || _b === void 0 ? void 0 : _b.showCheckBox;
4142
+ this.onlyCheckBoxForChild = (_c = this.treeConfig) === null || _c === void 0 ? void 0 : _c.onlyCheckBoxForChild;
4143
+ this.moduleId = (_d = this.treeConfig) === null || _d === void 0 ? void 0 : _d.moduleId;
4144
+ this.openIcon = (_e = this.treeConfig) === null || _e === void 0 ? void 0 : _e.openIcon;
4145
+ this.openIconColor = ((_f = this.treeConfig) === null || _f === void 0 ? void 0 : _f.openIconColor) ? (_g = this.treeConfig) === null || _g === void 0 ? void 0 : _g.openIconColor : this.openIconColor;
4146
+ this.closeIcon = (_h = this.treeConfig) === null || _h === void 0 ? void 0 : _h.closeIcon;
4147
+ this.closeIconColor = ((_j = this.treeConfig) === null || _j === void 0 ? void 0 : _j.closeIconColor) ? (_k = this.treeConfig) === null || _k === void 0 ? void 0 : _k.closeIconColor : this.closeIconColor;
4148
+ this.itemIcon = (_l = this.treeConfig) === null || _l === void 0 ? void 0 : _l.itemIcon;
4149
+ this.itemIconSvg = (_m = this.treeConfig) === null || _m === void 0 ? void 0 : _m.itemIconSvg;
4150
+ this.itemIconPath = (_o = this.treeConfig) === null || _o === void 0 ? void 0 : _o.itemIconPath;
4151
+ this.itemIconBase64 = this.domSanitizer.bypassSecurityTrustResourceUrl((_p = this.treeConfig) === null || _p === void 0 ? void 0 : _p.itemIconBase64);
4152
+ this.allowMultipleCheck = (_q = this.treeConfig) === null || _q === void 0 ? void 0 : _q.allowMultipleCheck;
4153
+ this.singleSelectedNode = (_r = this.treeConfig) === null || _r === void 0 ? void 0 : _r.singleSelectedNode;
4154
+ this.onlyFolder = (_s = this.treeConfig) === null || _s === void 0 ? void 0 : _s.onlyFolder;
4157
4155
  this.checklistSelection = new SelectionModel(this.allowMultipleCheck); /* true: multiple */
4158
4156
  this.displayType = this.getItemIconType(this.treeConfig);
4159
4157
  // Expand child node tree
@@ -4219,7 +4217,7 @@ class TreeComponent {
4219
4217
  return;
4220
4218
  }
4221
4219
  let itemMarkChecked = this.expandToChildNode[this.expandToChildNode.length - 1].toUpperCase();
4222
- this.idCheckIcon = itemMarkChecked;
4220
+ let parentItem = '';
4223
4221
  // get all children nodes on same level
4224
4222
  let listChildNodeSameLevel = this.findChildNode(itemMarkChecked, this.dataSource.data);
4225
4223
  // get all children in all level
@@ -4228,6 +4226,7 @@ class TreeComponent {
4228
4226
  this.getChildNodeSelectOne.emit(this.listChildNode);
4229
4227
  for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
4230
4228
  if (itemMarkChecked === this.treeControl.dataNodes[i].id) {
4229
+ parentItem = this.treeControl.dataNodes[i].parentId;
4231
4230
  this.selectNodeEvent.emit(this.treeControl.dataNodes[i]);
4232
4231
  }
4233
4232
  this.expandToChildNode.forEach(el => {
@@ -4236,6 +4235,7 @@ class TreeComponent {
4236
4235
  }
4237
4236
  });
4238
4237
  }
4238
+ this.idCheckIcon = this.idToCheckSelectOne(itemMarkChecked, parentItem);
4239
4239
  }
4240
4240
  }
4241
4241
  checkDisabledList() {
@@ -4254,7 +4254,7 @@ class TreeComponent {
4254
4254
  //Selected node with select one
4255
4255
  if (this.disabledList.length && this.treeConfig.selectOne) {
4256
4256
  let itemMarkChecked = this.disabledList[this.disabledList.length - 1].toUpperCase();
4257
- this.idCheckIcon = itemMarkChecked;
4257
+ let parentItem = '';
4258
4258
  // get all children nodes on same level
4259
4259
  let listChildNodeSameLevel = this.findChildNode(itemMarkChecked, this.dataSource.data);
4260
4260
  // get all children in all level
@@ -4263,6 +4263,7 @@ class TreeComponent {
4263
4263
  this.getChildNodeSelectOne.emit(this.listChildNode);
4264
4264
  for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
4265
4265
  if (itemMarkChecked === this.treeControl.dataNodes[i].id) {
4266
+ parentItem = this.treeControl.dataNodes[i].parentId;
4266
4267
  this.selectNodeEvent.emit(this.treeControl.dataNodes[i]);
4267
4268
  }
4268
4269
  this.disabledList.forEach(el => {
@@ -4278,6 +4279,7 @@ class TreeComponent {
4278
4279
  }
4279
4280
  });
4280
4281
  }
4282
+ this.idCheckIcon = this.idToCheckSelectOne(itemMarkChecked, parentItem);
4281
4283
  }
4282
4284
  else {
4283
4285
  this.idCheckIcon = '';
@@ -4485,23 +4487,23 @@ class TreeComponent {
4485
4487
  this.checkBoxEvent.emit(this.checklistSelection.selected);
4486
4488
  }
4487
4489
  selectNode(node) {
4488
- if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {
4489
- window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');
4490
+ if (window[RelatedConst$1.IS_DISPLAY_SEARCH_RESULT]) {
4491
+ window.postMessage(RelatedConst$1.HIDE_SEARCH_RESULT, '*');
4490
4492
  }
4491
4493
  if (this.treeConfig.selectOne) {
4492
4494
  node.itemType = this.checkDataTypeSelectNode(node);
4493
- this.idCheckIcon = node.id;
4495
+ this.idCheckIcon = this.idToCheckSelectOne(node.id, node.parentId);
4494
4496
  this.selectNodeEvent.emit(node);
4495
4497
  }
4496
4498
  }
4497
4499
  checkDataTypeSelectNode(node) {
4498
4500
  let itemType = -1;
4499
4501
  switch (this.moduleId) {
4500
- case DataType$1.process:
4501
- itemType = node.expandable ? DataType$1.area : DataType$1.process;
4502
+ case DataType$2.process:
4503
+ itemType = node.expandable ? DataType$2.area : DataType$2.process;
4502
4504
  break;
4503
- case DataType$1.document:
4504
- itemType = node.expandable ? DataType$1.folder : DataType$1.document;
4505
+ case DataType$2.document:
4506
+ itemType = node.expandable ? DataType$2.folder : DataType$2.document;
4505
4507
  break;
4506
4508
  default:
4507
4509
  itemType = this.moduleId;
@@ -4519,12 +4521,13 @@ class TreeComponent {
4519
4521
  // node.parentId === this.disabledList[this.disabledList.length - 1].toUpperCase())) {
4520
4522
  // return;
4521
4523
  // }
4522
- this.idCheckIcon = node.id;
4524
+ this.idCheckIcon = this.idToCheckSelectOne(node.id, node.parentId);
4523
4525
  node.itemType = this.checkDataTypeSelectNode(node);
4524
4526
  this.selectNodeEvent.emit(node);
4527
+ return;
4525
4528
  }
4526
- if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {
4527
- window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');
4529
+ if (window[RelatedConst$1.IS_DISPLAY_SEARCH_RESULT]) {
4530
+ window.postMessage(RelatedConst$1.HIDE_SEARCH_RESULT, '*');
4528
4531
  }
4529
4532
  // set useExpandFeature = true to improve performance of tree loading
4530
4533
  if (!isExpandNode || !this.useExpandFeature) {
@@ -4659,17 +4662,17 @@ class TreeComponent {
4659
4662
  return this.treeControl.isExpanded(node) ? this.openIcon : this.closeIcon;
4660
4663
  }
4661
4664
  switch (this.moduleId) {
4662
- case DataType$1.document: {
4665
+ case DataType$2.document: {
4663
4666
  const nodeData = this.treeData.filter(x => { return x.rootId === node.id; });
4664
4667
  if (nodeData.length > 0) {
4665
4668
  switch (nodeData[0].levelType) {
4666
- case DocumentNodeType$1.DepartmentFolder:
4669
+ case DocumentNodeType$2.DepartmentFolder:
4667
4670
  return this.treeControl.isExpanded(node) ? 'department_folder_outlined' : 'department_folder';
4668
- case DocumentNodeType$1.RegionalFolder:
4671
+ case DocumentNodeType$2.RegionalFolder:
4669
4672
  return this.treeControl.isExpanded(node) ? 'regional_folder_outlined' : 'regional_folder';
4670
- case DocumentNodeType$1.TopFolder:
4673
+ case DocumentNodeType$2.TopFolder:
4671
4674
  return this.treeControl.isExpanded(node) ? 'enterprise_folder_outlined' : 'enterprise_folder';
4672
- case DocumentNodeType$1.Folder:
4675
+ case DocumentNodeType$2.Folder:
4673
4676
  return this.treeControl.isExpanded(node) ? 'local_folder_outlined' : 'local_folder';
4674
4677
  default:
4675
4678
  return this.treeControl.isExpanded(node) ? 'folder_outlined' : 'folder';
@@ -4677,7 +4680,7 @@ class TreeComponent {
4677
4680
  }
4678
4681
  return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';
4679
4682
  }
4680
- case DataType$1.process:
4683
+ case DataType$2.process:
4681
4684
  return this.treeControl.isExpanded(node) ? 'process_area_outlined' : 'process_area';
4682
4685
  default:
4683
4686
  return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';
@@ -4685,26 +4688,26 @@ class TreeComponent {
4685
4688
  }
4686
4689
  getItemIcon(node) {
4687
4690
  switch (this.moduleId) {
4688
- case DataType$1.document:
4691
+ case DataType$2.document:
4689
4692
  switch (node.levelType) {
4690
- case DocumentNodeType$1.DepartmentFolder:
4693
+ case DocumentNodeType$2.DepartmentFolder:
4691
4694
  return 'document_department';
4692
- case DocumentNodeType$1.RegionalFolder:
4695
+ case DocumentNodeType$2.RegionalFolder:
4693
4696
  return 'document_regional';
4694
- case DocumentNodeType$1.TopFolder:
4697
+ case DocumentNodeType$2.TopFolder:
4695
4698
  return 'document_enterprise';
4696
- case DocumentNodeType$1.Folder:
4699
+ case DocumentNodeType$2.Folder:
4697
4700
  return 'document_local';
4698
4701
  default:
4699
4702
  return 'document';
4700
4703
  }
4701
- case DataType$1.process:
4704
+ case DataType$2.process:
4702
4705
  return 'process';
4703
- case DataType$1.checklist:
4706
+ case DataType$2.checklist:
4704
4707
  return 'checklist';
4705
- case DataType$1.deviation:
4708
+ case DataType$2.deviation:
4706
4709
  return 'deviation';
4707
- case DataType$1.risk:
4710
+ case DataType$2.risk:
4708
4711
  return 'risk';
4709
4712
  default:
4710
4713
  return 'document';
@@ -4726,13 +4729,16 @@ class TreeComponent {
4726
4729
  expandNode(node) {
4727
4730
  this.treeControl.expand(node);
4728
4731
  }
4732
+ idToCheckSelectOne(id, parentId) {
4733
+ return `${id}-${parentId}`;
4734
+ }
4729
4735
  }
4730
4736
  TreeComponent.decorators = [
4731
4737
  { type: Component, args: [{
4732
4738
  selector: 'qms-tree',
4733
- template: "<mat-tree\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"tree__container\"\r\n>\r\n <mat-tree-node\r\n class=\"tree-branch\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <!-- form thu 1 - child -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n >\r\n </mat-checkbox>\r\n\r\n <!-- form thu 2 -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"ml-10 checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <div\r\n class=\"expand-node\"\r\n *ngIf=\"node.name && !onlyFolder\"\r\n [class.bgSelected]=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n (click)=\"selectNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <div class=\"expand-node__text\">\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.name && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n >\r\n {{ itemIcon }}\r\n </mat-icon>\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.svg && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"itemIconSvg\"\r\n >\r\n </mat-icon>\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.path && !onlyCheckBoxForChild\"\r\n class=\"mat-icon\"\r\n [src]=\"itemIconPath\"\r\n />\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.base64 && !onlyCheckBoxForChild\"\r\n class=\"mat-icon image-base64\"\r\n [src]=\"getImagePath()\"\r\n />\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.none && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getItemIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.name }}</span>\r\n </div>\r\n <mat-icon\r\n class=\"icon-check\"\r\n *ngIf=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n >done</mat-icon\r\n >\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\r\n <!-- form thu 1 - parent -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild\"\r\n [checked]=\"descendantsAllSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [disableRipple]=\"!node.hasChild\"\r\n [attr.aria-label]=\"'toggle ' + node.filename\"\r\n *ngIf=\"node.name\"\r\n >\r\n <mat-icon\r\n *ngIf=\"openIcon && closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : closeIconColor\r\n }\"\r\n >{{ getNodeIcon(node) }}</mat-icon\r\n >\r\n <mat-icon\r\n *ngIf=\"!openIcon || !closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngClass]=\"{\r\n 'open-icon': treeControl.isExpanded(node),\r\n 'not-department-icon': moduleId !== dataType.document\r\n }\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n *ngIf=\"expandOnTitleClick\"\r\n matTreeNodeToggle\r\n class=\"text-node-parent\"\r\n style=\"cursor: pointer\"\r\n (click)=\"onExpandNode(node)\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : '#000000'\r\n }\"\r\n >\r\n <span>{{ node.name }}</span>\r\n <mat-icon\r\n class=\"icon-check\"\r\n *ngIf=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n >done</mat-icon\r\n >\r\n </span>\r\n <span\r\n *ngIf=\"!expandOnTitleClick\"\r\n class=\"text-node-parent\"\r\n (click)=\"selectFolderNode(node)\"\r\n style=\"cursor: pointer\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <span>{{ node.name }}</span>\r\n <mat-icon\r\n class=\"icon-check\"\r\n *ngIf=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n >done</mat-icon\r\n >\r\n </span>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
4739
+ template: "<mat-tree\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"tree__container\"\r\n>\r\n <mat-tree-node\r\n class=\"tree-branch\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <!-- form thu 1 - child -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n >\r\n </mat-checkbox>\r\n\r\n <!-- form thu 2 -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"ml-10 checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <div\r\n class=\"expand-node\"\r\n *ngIf=\"node.name && !onlyFolder\"\r\n [class.bgSelected]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n (click)=\"selectNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <div class=\"expand-node__text\">\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.name && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n >\r\n {{ itemIcon }}\r\n </mat-icon>\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.svg && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"itemIconSvg\"\r\n >\r\n </mat-icon>\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.path && !onlyCheckBoxForChild\"\r\n class=\"mat-icon\"\r\n [src]=\"itemIconPath\"\r\n />\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.base64 && !onlyCheckBoxForChild\"\r\n class=\"mat-icon image-base64\"\r\n [src]=\"getImagePath()\"\r\n />\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.none && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getItemIcon(node)\"\r\n ></mat-icon>\r\n <span\r\n class=\"text-node\"\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n </div>\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\r\n <!-- form thu 1 - parent -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild\"\r\n [checked]=\"descendantsAllSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [disableRipple]=\"!node.hasChild\"\r\n [attr.aria-label]=\"'toggle ' + node.filename\"\r\n *ngIf=\"node.name\"\r\n >\r\n <mat-icon\r\n *ngIf=\"openIcon && closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : closeIconColor\r\n }\"\r\n >{{ getNodeIcon(node) }}</mat-icon\r\n >\r\n <mat-icon\r\n *ngIf=\"!openIcon || !closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngClass]=\"{\r\n 'open-icon': treeControl.isExpanded(node),\r\n 'not-department-icon': moduleId !== dataType.document\r\n }\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n *ngIf=\"expandOnTitleClick\"\r\n matTreeNodeToggle\r\n class=\"text-node-parent\"\r\n style=\"cursor: pointer\"\r\n (click)=\"onExpandNode(node)\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : '#000000'\r\n }\"\r\n >\r\n <span>{{ node.name }}</span>\r\n </span>\r\n <span\r\n *ngIf=\"!expandOnTitleClick\"\r\n class=\"text-node-parent\"\r\n (click)=\"selectFolderNode(node)\"\r\n style=\"cursor: pointer\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <span\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </span>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
4734
4740
  encapsulation: ViewEncapsulation.None,
4735
- 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}.tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:#323232}.tree__container .mat-tree-node{color:#000;min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .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}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .icon-check{color:#1954a9}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent.bgSelected .icon-check{color:#1954a9}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:#e5eefb}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}"]
4741
+ 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}.tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:#323232}.tree__container .mat-tree-node{color:#000;min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .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}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .select-one-checked{color:#1954a9}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent .select-one-checked{color:#1954a9}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:#e5eefb}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}"]
4736
4742
  },] }
4737
4743
  ];
4738
4744
  TreeComponent.ctorParameters = () => [
@@ -4794,7 +4800,7 @@ QMSTreeModule.decorators = [
4794
4800
  class RelatedContentComponent {
4795
4801
  constructor() {
4796
4802
  this.contents = [];
4797
- this.dataType = DataType$1;
4803
+ this.dataType = DataType$2;
4798
4804
  this.imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';
4799
4805
  }
4800
4806
  ngOnInit() {
@@ -4828,7 +4834,7 @@ class RelatedListComponent {
4828
4834
  this.iconRegistry = iconRegistry;
4829
4835
  this.appIconService = appIconService;
4830
4836
  this.relatedData = [];
4831
- this.dataType = DataType$1;
4837
+ this.dataType = DataType$2;
4832
4838
  // imageProcess = '../qms-angular/src/assets/images/union.svg';
4833
4839
  this.imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';
4834
4840
  this.updateData = new EventEmitter();
@@ -4882,43 +4888,43 @@ class RelatedListComponent {
4882
4888
  }
4883
4889
  getNodeIcon(item) {
4884
4890
  switch (item.itemType) {
4885
- case DataType$1.folder: {
4891
+ case DataType$2.folder: {
4886
4892
  switch (item.levelType) {
4887
- case DocumentNodeType$1.DepartmentFolder:
4893
+ case DocumentNodeType$2.DepartmentFolder:
4888
4894
  return 'department_folder_outlined';
4889
- case DocumentNodeType$1.RegionalFolder:
4895
+ case DocumentNodeType$2.RegionalFolder:
4890
4896
  return 'regional_folder_outlined';
4891
- case DocumentNodeType$1.TopFolder:
4897
+ case DocumentNodeType$2.TopFolder:
4892
4898
  return 'enterprise_folder_outlined';
4893
- case DocumentNodeType$1.Folder:
4899
+ case DocumentNodeType$2.Folder:
4894
4900
  return 'local_folder_outlined';
4895
4901
  default:
4896
4902
  return 'folder_outlined';
4897
4903
  }
4898
4904
  }
4899
- case DataType$1.document: {
4905
+ case DataType$2.document: {
4900
4906
  switch (item.levelType) {
4901
- case DocumentNodeType$1.DepartmentFolder:
4907
+ case DocumentNodeType$2.DepartmentFolder:
4902
4908
  return 'document_department';
4903
- case DocumentNodeType$1.RegionalFolder:
4909
+ case DocumentNodeType$2.RegionalFolder:
4904
4910
  return 'document_regional';
4905
- case DocumentNodeType$1.TopFolder:
4911
+ case DocumentNodeType$2.TopFolder:
4906
4912
  return 'document_enterprise';
4907
- case DocumentNodeType$1.Folder:
4913
+ case DocumentNodeType$2.Folder:
4908
4914
  return 'document_local';
4909
4915
  default:
4910
4916
  return 'document';
4911
4917
  }
4912
4918
  }
4913
- case DataType$1.area:
4919
+ case DataType$2.area:
4914
4920
  return 'process_area_outlined';
4915
- case DataType$1.process:
4921
+ case DataType$2.process:
4916
4922
  return 'process';
4917
- case DataType$1.deviation:
4923
+ case DataType$2.deviation:
4918
4924
  return 'deviation';
4919
- case DataType$1.checklist:
4925
+ case DataType$2.checklist:
4920
4926
  return 'checklist';
4921
- case DataType$1.risk:
4927
+ case DataType$2.risk:
4922
4928
  return 'risk';
4923
4929
  default:
4924
4930
  return 'folder_outlined';
@@ -4931,7 +4937,7 @@ class RelatedListComponent {
4931
4937
  RelatedListComponent.decorators = [
4932
4938
  { type: Component, args: [{
4933
4939
  selector: 'qms-related-list',
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\r\n qms-line\r\n color=\"default-subtitle\"\r\n *ngIf=\"item?.displayId || item.statusName\"\r\n >\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",
4940
+ 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",
4935
4941
  encapsulation: ViewEncapsulation.None,
4936
4942
  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}"]
4937
4943
  },] }
@@ -4952,13 +4958,13 @@ RelatedListComponent.propDecorators = {
4952
4958
  class TreeModel {
4953
4959
  }
4954
4960
 
4955
- var ModuleType$1;
4961
+ var ModuleType$2;
4956
4962
  (function (ModuleType) {
4957
4963
  ModuleType[ModuleType["documentProcess"] = 1] = "documentProcess";
4958
4964
  ModuleType[ModuleType["deviation"] = 2] = "deviation";
4959
4965
  ModuleType[ModuleType["checklist"] = 3] = "checklist";
4960
4966
  ModuleType[ModuleType["risk"] = 4] = "risk";
4961
- })(ModuleType$1 || (ModuleType$1 = {}));
4967
+ })(ModuleType$2 || (ModuleType$2 = {}));
4962
4968
 
4963
4969
  class PopupData {
4964
4970
  constructor() {
@@ -4977,6 +4983,8 @@ class RelatedItem {
4977
4983
  }
4978
4984
  class IRelated {
4979
4985
  }
4986
+ class RelatedOption extends IRelated {
4987
+ }
4980
4988
  class RelatedData {
4981
4989
  constructor() {
4982
4990
  this.title = '';
@@ -5034,8 +5042,8 @@ class RelatedPopupComponent {
5034
5042
  this.documentCheckedList = [];
5035
5043
  this.singleProcessList = [];
5036
5044
  this.singleDocumentList = [];
5037
- this.module = ModuleType$1;
5038
- this.dataType = DataType$1;
5045
+ this.module = ModuleType$2;
5046
+ this.dataType = DataType$2;
5039
5047
  this.itemType = 0;
5040
5048
  this.selectedRiskData = [];
5041
5049
  this.disabledList = [];
@@ -5083,8 +5091,8 @@ class RelatedPopupComponent {
5083
5091
  this.globalService.setSplitviewValue([]);
5084
5092
  }
5085
5093
  onMessage(event) {
5086
- if (event.data === RelatedConst.HIDE_SEARCH_RESULT) {
5087
- this.autoComplete.closePanel();
5094
+ if (event.data === RelatedConst$1.HIDE_SEARCH_RESULT) {
5095
+ // this.autoComplete.closePanel();
5088
5096
  }
5089
5097
  }
5090
5098
  ngOnInit() {
@@ -5095,7 +5103,7 @@ class RelatedPopupComponent {
5095
5103
  });
5096
5104
  this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
5097
5105
  if (res && res.length) {
5098
- this.filteredOptions = res;
5106
+ this.filteredOptions = this.toRelatedOptions(res);
5099
5107
  }
5100
5108
  });
5101
5109
  this.globalService.splitViewValue.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
@@ -5104,7 +5112,7 @@ class RelatedPopupComponent {
5104
5112
  let listNodeProcess = [];
5105
5113
  let listNodeDocs = [];
5106
5114
  res.forEach(item => {
5107
- if (item.itemType === DataType$1.process) {
5115
+ if (item.itemType === DataType$2.process) {
5108
5116
  let newNodeProcess = new TreeModel();
5109
5117
  newNodeProcess.childId = item.id;
5110
5118
  newNodeProcess.childName = item.itemName;
@@ -5126,6 +5134,7 @@ class RelatedPopupComponent {
5126
5134
  newNodeDocs.rootName = item === null || item === void 0 ? void 0 : item.parentName;
5127
5135
  newNodeDocs.subName = null;
5128
5136
  newNodeDocs.statusId = item.status;
5137
+ newNodeDocs.statusName = item.statusName;
5129
5138
  listNodeDocs.push(newNodeDocs);
5130
5139
  }
5131
5140
  });
@@ -5139,13 +5148,13 @@ class RelatedPopupComponent {
5139
5148
  let selectProcess = [];
5140
5149
  let selectDocument = [];
5141
5150
  this.checkedNodeList.forEach(x => {
5142
- if (x.itemType === DataType$1.area || x.itemType === DataType$1.process) {
5151
+ if (x.itemType === DataType$2.area || x.itemType === DataType$2.process) {
5143
5152
  this.treeData1.forEach(item => {
5144
5153
  if (item.childId && x.id === item.childId || !item.childId && (x.id === item.rootId)) {
5145
5154
  selectProcess.push({
5146
5155
  disabled: false,
5147
- expandable: x.itemType == DataType$1.area ? true : false,
5148
- hasChild: x.itemType == DataType$1.area ? true : false,
5156
+ expandable: x.itemType == DataType$2.area ? true : false,
5157
+ hasChild: x.itemType == DataType$2.area ? true : false,
5149
5158
  id: x.id,
5150
5159
  level: 0,
5151
5160
  levelType: undefined,
@@ -5160,8 +5169,8 @@ class RelatedPopupComponent {
5160
5169
  if (item.childId && x.id === item.childId || !item.childId && (x.id === item.rootId)) {
5161
5170
  selectDocument.push({
5162
5171
  disabled: false,
5163
- expandable: x.itemType == DataType$1.folder ? true : false,
5164
- hasChild: x.itemType == DataType$1.folder ? true : false,
5172
+ expandable: x.itemType == DataType$2.folder ? true : false,
5173
+ hasChild: x.itemType == DataType$2.folder ? true : false,
5165
5174
  id: x.id,
5166
5175
  level: 0,
5167
5176
  levelType: undefined,
@@ -5187,26 +5196,26 @@ class RelatedPopupComponent {
5187
5196
  ngAfterViewChecked() {
5188
5197
  this.cdRef.detectChanges();
5189
5198
  if (this.filteredOptions && this.filteredOptions.length) {
5190
- this.autoComplete.openPanel();
5199
+ // this.autoComplete.openPanel();
5191
5200
  this.setResultHeight();
5192
5201
  }
5193
- else if (this.autoComplete) {
5194
- this.autoComplete.closePanel();
5195
- }
5202
+ // else if (this.autoComplete) {
5203
+ // this.autoComplete.closePanel();
5204
+ // }
5196
5205
  }
5197
5206
  getDataTypeId(moduleId) {
5198
5207
  let itemType;
5199
5208
  switch (moduleId) {
5200
- case ModuleType$1.documentProcess:
5209
+ case ModuleType$2.documentProcess:
5201
5210
  itemType = this.dataType.process;
5202
5211
  break;
5203
- case ModuleType$1.deviation:
5212
+ case ModuleType$2.deviation:
5204
5213
  itemType = this.dataType.deviation;
5205
5214
  break;
5206
- case ModuleType$1.checklist:
5215
+ case ModuleType$2.checklist:
5207
5216
  itemType = this.dataType.checklist;
5208
5217
  break;
5209
- case ModuleType$1.risk:
5218
+ case ModuleType$2.risk:
5210
5219
  itemType = this.dataType.risk;
5211
5220
  break;
5212
5221
  default:
@@ -5255,6 +5264,8 @@ class RelatedPopupComponent {
5255
5264
  });
5256
5265
  this.singleDocumentList = newSelectDocumentList;
5257
5266
  this.selectedData2 = [...tempArrDocument];
5267
+ // when remove check node list, related options need refresh disabled options
5268
+ this.refreshRelatedOptions();
5258
5269
  }
5259
5270
  isMatchTrue(arr, arr2) {
5260
5271
  return arr.every((i) => {
@@ -5283,6 +5294,7 @@ class RelatedPopupComponent {
5283
5294
  this.filteredOptions = [];
5284
5295
  if (typeof (_val) === 'object') {
5285
5296
  this.myControl.setValue('');
5297
+ this.isInputValue = false;
5286
5298
  }
5287
5299
  else if (typeof (_val) === 'string') {
5288
5300
  if (!!_val) {
@@ -5305,7 +5317,7 @@ class RelatedPopupComponent {
5305
5317
  return this.filteredOptions.filter(x => x.itemType === moduleId);
5306
5318
  }
5307
5319
  showSearchResult() {
5308
- this.autoComplete.openPanel();
5320
+ // this.autoComplete.openPanel();
5309
5321
  }
5310
5322
  displayRelated(related) {
5311
5323
  return related ? related.itemName : undefined;
@@ -5358,6 +5370,7 @@ class RelatedPopupComponent {
5358
5370
  newNodeDocs.childId = item.id;
5359
5371
  newNodeDocs.childName = item.itemName;
5360
5372
  newNodeDocs.statusId = item === null || item === void 0 ? void 0 : item['itemStatus'];
5373
+ newNodeDocs.statusName = item === null || item === void 0 ? void 0 : item['statusName'];
5361
5374
  newNodeDocs.displayId = +item.itemNumberId;
5362
5375
  this.treeData2 = [...this.treeData2, newNodeDocs];
5363
5376
  let newSelectedDocs = new TreeFlatNode();
@@ -5375,13 +5388,13 @@ class RelatedPopupComponent {
5375
5388
  let selectDocument = [];
5376
5389
  if (this.checkedNodeList.length) {
5377
5390
  this.checkedNodeList.forEach(x => {
5378
- if (x.itemType === DataType$1.area || x.itemType === DataType$1.process) {
5391
+ if (x.itemType === DataType$2.area || x.itemType === DataType$2.process) {
5379
5392
  this.treeData1.forEach(item => {
5380
5393
  if (item.childId && x.id === item.childId || !item.childId && (x.id === item.rootId)) {
5381
5394
  selectProcess.push({
5382
5395
  disabled: false,
5383
- expandable: x.itemType == DataType$1.area ? true : false,
5384
- hasChild: x.itemType == DataType$1.area ? true : false,
5396
+ expandable: x.itemType == DataType$2.area ? true : false,
5397
+ hasChild: x.itemType == DataType$2.area ? true : false,
5385
5398
  id: x.id,
5386
5399
  level: 0,
5387
5400
  levelType: undefined,
@@ -5396,8 +5409,8 @@ class RelatedPopupComponent {
5396
5409
  if (item.childId && x.id === item.childId || !item.childId && (x.id === item.rootId)) {
5397
5410
  selectDocument.push({
5398
5411
  disabled: false,
5399
- expandable: x.itemType == DataType$1.folder ? true : false,
5400
- hasChild: x.itemType == DataType$1.folder ? true : false,
5412
+ expandable: x.itemType == DataType$2.folder ? true : false,
5413
+ hasChild: x.itemType == DataType$2.folder ? true : false,
5401
5414
  id: x.id,
5402
5415
  level: 0,
5403
5416
  levelType: undefined,
@@ -5572,13 +5585,13 @@ class RelatedPopupComponent {
5572
5585
  let selectDocument = [];
5573
5586
  if (this.checkedNodeList.length) {
5574
5587
  this.checkedNodeList.forEach(x => {
5575
- if (x.itemType === DataType$1.area || x.itemType === DataType$1.process) {
5588
+ if (x.itemType === DataType$2.area || x.itemType === DataType$2.process) {
5576
5589
  this.treeData1.forEach(item => {
5577
5590
  if (item.childId && x.id === item.childId || !item.childId && (x.id === item.rootId)) {
5578
5591
  selectProcess.push({
5579
5592
  disabled: false,
5580
- expandable: x.itemType == DataType$1.area ? true : false,
5581
- hasChild: x.itemType == DataType$1.area ? true : false,
5593
+ expandable: x.itemType == DataType$2.area ? true : false,
5594
+ hasChild: x.itemType == DataType$2.area ? true : false,
5582
5595
  id: x.id,
5583
5596
  level: 0,
5584
5597
  levelType: undefined,
@@ -5593,8 +5606,8 @@ class RelatedPopupComponent {
5593
5606
  if (item.childId && x.id === item.childId || !item.childId && (x.id === item.rootId)) {
5594
5607
  selectDocument.push({
5595
5608
  disabled: false,
5596
- expandable: x.itemType == DataType$1.folder ? true : false,
5597
- hasChild: x.itemType == DataType$1.folder ? true : false,
5609
+ expandable: x.itemType == DataType$2.folder ? true : false,
5610
+ hasChild: x.itemType == DataType$2.folder ? true : false,
5598
5611
  id: x.id,
5599
5612
  level: 0,
5600
5613
  levelType: undefined,
@@ -5830,11 +5843,12 @@ class RelatedPopupComponent {
5830
5843
  this.selectedFolder = null;
5831
5844
  this.itemInSplitview = [];
5832
5845
  this.checkedNodeList.forEach(element => {
5833
- if (element.itemType === DataType$1.document) {
5846
+ if (element.itemType === DataType$2.document) {
5834
5847
  element.status = this.getStatusDocs(element.id);
5835
5848
  element.breadcumbs = this.getBreadcumbAllParentDocs(element.id).slice(1).reverse();
5849
+ element.statusName = this.getStatusName(element.id);
5836
5850
  }
5837
- if (element.itemType === DataType$1.process) {
5851
+ if (element.itemType === DataType$2.process) {
5838
5852
  element.status = this.getStatusProcess(element.id);
5839
5853
  element.breadcumbs = this.getBreadcumbAllParentProcess(element.id).slice(1).reverse();
5840
5854
  }
@@ -5845,6 +5859,15 @@ class RelatedPopupComponent {
5845
5859
  // this.dialogRef.close(this.selectedNode);
5846
5860
  // }
5847
5861
  }
5862
+ getStatusName(id) {
5863
+ let statusName = '';
5864
+ this.treeData2.forEach(x => {
5865
+ if (id.toString() === x.childId) {
5866
+ statusName = x.statusName;
5867
+ }
5868
+ });
5869
+ return statusName;
5870
+ }
5848
5871
  getBreadcumbAllParentProcess(id) {
5849
5872
  let tempParent = [];
5850
5873
  this.checkBreadcumbProcess(id, tempParent, function (arr) {
@@ -5913,7 +5936,7 @@ class RelatedPopupComponent {
5913
5936
  return (elmHeight + elmMargin);
5914
5937
  }
5915
5938
  getItemChipName(item) {
5916
- if (item.itemType === DataType$1.checklist || item.itemType === DataType$1.deviation) {
5939
+ if (item.itemType === DataType$2.checklist || item.itemType === DataType$2.deviation) {
5917
5940
  return (item.parentName && item.itemName !== item.parentName) ? `${item.parentName}/${item.itemName}` : item.itemName;
5918
5941
  }
5919
5942
  return item.itemName;
@@ -5923,43 +5946,43 @@ class RelatedPopupComponent {
5923
5946
  }
5924
5947
  getNodeIcon(item) {
5925
5948
  switch (item.itemType) {
5926
- case DataType$1.folder: {
5949
+ case DataType$2.folder: {
5927
5950
  switch (item.levelType) {
5928
- case DocumentNodeType$1.DepartmentFolder:
5951
+ case DocumentNodeType$2.DepartmentFolder:
5929
5952
  return 'department_folder_outlined';
5930
- case DocumentNodeType$1.RegionalFolder:
5953
+ case DocumentNodeType$2.RegionalFolder:
5931
5954
  return 'regional_folder_outlined';
5932
- case DocumentNodeType$1.TopFolder:
5955
+ case DocumentNodeType$2.TopFolder:
5933
5956
  return 'enterprise_folder_outlined';
5934
- case DocumentNodeType$1.Folder:
5957
+ case DocumentNodeType$2.Folder:
5935
5958
  return 'local_folder_outlined';
5936
5959
  default:
5937
5960
  return 'folder_outlined';
5938
5961
  }
5939
5962
  }
5940
- case DataType$1.document: {
5963
+ case DataType$2.document: {
5941
5964
  switch (item.levelType) {
5942
- case DocumentNodeType$1.DepartmentFolder:
5965
+ case DocumentNodeType$2.DepartmentFolder:
5943
5966
  return 'document_department';
5944
- case DocumentNodeType$1.RegionalFolder:
5967
+ case DocumentNodeType$2.RegionalFolder:
5945
5968
  return 'document_regional';
5946
- case DocumentNodeType$1.TopFolder:
5969
+ case DocumentNodeType$2.TopFolder:
5947
5970
  return 'document_enterprise';
5948
- case DocumentNodeType$1.Folder:
5971
+ case DocumentNodeType$2.Folder:
5949
5972
  return 'document_local';
5950
5973
  default:
5951
5974
  return 'document';
5952
5975
  }
5953
5976
  }
5954
- case DataType$1.area:
5977
+ case DataType$2.area:
5955
5978
  return 'process_area_outlined';
5956
- case DataType$1.process:
5979
+ case DataType$2.process:
5957
5980
  return 'process';
5958
- case DataType$1.deviation:
5981
+ case DataType$2.deviation:
5959
5982
  return 'deviation';
5960
- case DataType$1.checklist:
5983
+ case DataType$2.checklist:
5961
5984
  return 'checklist';
5962
- case DataType$1.risk:
5985
+ case DataType$2.risk:
5963
5986
  return 'risk';
5964
5987
  default:
5965
5988
  return 'folder_outlined';
@@ -5973,25 +5996,25 @@ class RelatedPopupComponent {
5973
5996
  }
5974
5997
  getTitle(type) {
5975
5998
  switch (type) {
5976
- case DataType$1.process:
5999
+ case DataType$2.process:
5977
6000
  return this.LANG.PROCESSES;
5978
- case DataType$1.area:
6001
+ case DataType$2.area:
5979
6002
  return this.LANG.PROCESS_AREA;
5980
- case DataType$1.document:
6003
+ case DataType$2.document:
5981
6004
  return this.LANG.DOCUMENTS;
5982
- case DataType$1.folder:
6005
+ case DataType$2.folder:
5983
6006
  return this.LANG.FOLDER;
5984
- case DataType$1.deviation:
6007
+ case DataType$2.deviation:
5985
6008
  return this.LANG.DEVIATION;
5986
- case DataType$1.deviationType:
6009
+ case DataType$2.deviationType:
5987
6010
  return this.LANG.DEVIATION_TYPE;
5988
- case DataType$1.checklist:
6011
+ case DataType$2.checklist:
5989
6012
  return this.LANG.CHECKLIST;
5990
- case DataType$1.checklistCategory:
6013
+ case DataType$2.checklistCategory:
5991
6014
  return this.LANG.CHECKLIST_CATEGORY;
5992
- case DataType$1.risk:
6015
+ case DataType$2.risk:
5993
6016
  return this.LANG.ASSESSMENT;
5994
- case DataType$1.riskFolder:
6017
+ case DataType$2.riskFolder:
5995
6018
  return this.LANG.FOLDER;
5996
6019
  }
5997
6020
  }
@@ -6059,11 +6082,11 @@ class RelatedPopupComponent {
6059
6082
  }
6060
6083
  canShowSearchOption(moduleId) {
6061
6084
  if (this.canOnlySelectItem &&
6062
- (moduleId === DataType$1.checklistCategory
6063
- || moduleId === DataType$1.riskFolder
6064
- || moduleId === DataType$1.deviationType
6065
- || (moduleId === DataType$1.area && this.treeConfig1 && !this.treeConfig1.singleSelectedNode)
6066
- || (moduleId === DataType$1.folder && this.treeConfig2 && !this.treeConfig2.singleSelectedNode))) {
6085
+ (moduleId === DataType$2.checklistCategory
6086
+ || moduleId === DataType$2.riskFolder
6087
+ || moduleId === DataType$2.deviationType
6088
+ || (moduleId === DataType$2.area && this.treeConfig1 && !this.treeConfig1.singleSelectedNode)
6089
+ || (moduleId === DataType$2.folder && this.treeConfig2 && !this.treeConfig2.singleSelectedNode))) {
6067
6090
  return false;
6068
6091
  }
6069
6092
  return this.getModuleFilteredOptions(moduleId).length > 0;
@@ -6076,7 +6099,7 @@ class RelatedPopupComponent {
6076
6099
  let position = -1;
6077
6100
  let parentName = '';
6078
6101
  let itemNumberId = '';
6079
- if (node.itemType == DataType$1.folder || node.itemType == DataType$1.document) {
6102
+ if (node.itemType == DataType$2.folder || node.itemType == DataType$2.document) {
6080
6103
  position = !node.expandable ? this.treeData2.findIndex(p => p.childId === node.id && p.rootId === node.parentId) :
6081
6104
  this.treeData2.findIndex(p => p.rootId === node.id);
6082
6105
  parentName = this.treeData2[position].parentId ? this.treeData2[position].subName : this.treeData2[position].rootName;
@@ -6104,13 +6127,30 @@ class RelatedPopupComponent {
6104
6127
  this.listChildrenSelectOne = [];
6105
6128
  this.listChildrenSelectOne = listChildren;
6106
6129
  }
6130
+ hasSelected(related) {
6131
+ const arrDisabledList = this.disabledList.concat(this.disabledList2);
6132
+ return arrDisabledList.some(node => node.id.toUpperCase() === related.id.toUpperCase());
6133
+ }
6134
+ toRelatedOptions(relateds) {
6135
+ const results = [];
6136
+ for (const related of relateds) {
6137
+ results.push(Object.assign(Object.assign({}, related), { disabled: this.hasSelected(related) }));
6138
+ }
6139
+ return results;
6140
+ }
6141
+ displayWhenSelectRelatedOption($event) {
6142
+ return '';
6143
+ }
6144
+ refreshRelatedOptions() {
6145
+ this.filteredOptions = this.toRelatedOptions(this.filteredOptions);
6146
+ }
6107
6147
  }
6108
6148
  RelatedPopupComponent.decorators = [
6109
6149
  { type: Component, args: [{
6110
6150
  selector: 'qms-related-popup',
6111
- 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 (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",
6151
+ 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 (optionSelected)=\"selectRelated($event.option.value)\"\r\n [displayWith]=\"displayWhenSelectRelatedOption\"\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 [disabled]=\"option.disabled\"\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",
6112
6152
  encapsulation: ViewEncapsulation.None,
6113
- 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}"]
6153
+ 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 .mat-option[aria-disabled=true] .breadcrumb-containe .qms-breadcrumb-item-text,cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .breadcrumb-containe .qms-breadcrumb-item .mat-icon,cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .subtitle{color:rgba(0,0,0,.38)}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:300px}"]
6114
6154
  },] }
6115
6155
  ];
6116
6156
  RelatedPopupComponent.ctorParameters = () => [
@@ -6174,12 +6214,10 @@ class RiskAnalysisComponent {
6174
6214
  });
6175
6215
  }
6176
6216
  this.riskConfig = {
6177
- allowSelectFolder: false,
6178
- areaOfCurrentProcess: '',
6179
6217
  showCheckBox: true,
6180
6218
  allowMultipleCheck: true,
6181
6219
  onlyCheckBoxForChild: false,
6182
- moduleId: DataType$1.risk,
6220
+ moduleId: DataType$2.risk,
6183
6221
  openIcon: 'keyboard_arrow_up',
6184
6222
  openIconColor: '#1954A9',
6185
6223
  closeIcon: 'keyboard_arrow_down',
@@ -7130,8 +7168,8 @@ var QMSCKEditorDocumentType;
7130
7168
  class TreeNode {
7131
7169
  }
7132
7170
 
7133
- let objData = {};
7134
- function buildArrayTree(obj, level) {
7171
+ let objData$1 = {};
7172
+ function buildArrayTree$1(obj, level) {
7135
7173
  return Object.keys(obj).reduce((accumulator, key) => {
7136
7174
  const value = obj[key];
7137
7175
  const node = new TreeNode();
@@ -7149,8 +7187,8 @@ function buildArrayTree(obj, level) {
7149
7187
  return accumulator.concat(node);
7150
7188
  }, []);
7151
7189
  }
7152
- function buildObjectTree(arr) {
7153
- objData = {};
7190
+ function buildObjectTree$1(arr) {
7191
+ objData$1 = {};
7154
7192
  let objTreeData;
7155
7193
  const root = arr.filter((x) => {
7156
7194
  return x.parentId === '';
@@ -7160,7 +7198,7 @@ function buildObjectTree(arr) {
7160
7198
  });
7161
7199
  return objTreeData;
7162
7200
  }
7163
- function findParent(id, array) {
7201
+ function findParent$1(id, array) {
7164
7202
  const objParent = {};
7165
7203
  const parent = array.filter((x) => {
7166
7204
  return x.rootId === id;
@@ -7176,10 +7214,10 @@ function findParent(id, array) {
7176
7214
  this.findChild(id, objParent, array);
7177
7215
  }
7178
7216
  // add node to tree
7179
- objData[`${parent[0].rootId}_${parent[0].rootName}`] = objParent;
7180
- return objData;
7217
+ objData$1[`${parent[0].rootId}_${parent[0].rootName}`] = objParent;
7218
+ return objData$1;
7181
7219
  }
7182
- function findChild(id, objParent, array) {
7220
+ function findChild$1(id, objParent, array) {
7183
7221
  const subNode = array.filter((x) => {
7184
7222
  return x.parentId === id;
7185
7223
  });
@@ -7187,14 +7225,14 @@ function findChild(id, objParent, array) {
7187
7225
  const processNode = {};
7188
7226
  processNode[`${item.childId}_${item.childName}`] = null;
7189
7227
  objParent[`${item.rootId}_${item.subName}`] = processNode;
7190
- findChild(item.rootId, processNode, array);
7228
+ findChild$1(item.rootId, processNode, array);
7191
7229
  });
7192
7230
  }
7193
7231
  const QMSCKEditorTreeFunctions = {
7194
- buildArrayTree,
7195
- buildObjectTree,
7196
- findParent,
7197
- findChild
7232
+ buildArrayTree: buildArrayTree$1,
7233
+ buildObjectTree: buildObjectTree$1,
7234
+ findParent: findParent$1,
7235
+ findChild: findChild$1
7198
7236
  };
7199
7237
 
7200
7238
  class QMSCKEditorTreeService extends QMSCKEditorBaseService {
@@ -15600,8 +15638,8 @@ class QmsAppBarComponent {
15600
15638
  QmsAppBarComponent.decorators = [
15601
15639
  { type: Component, args: [{
15602
15640
  selector: 'app-qms-app-bar',
15603
- template: "<div class=\"qms-app-bar-container\">\r\n <mat-toolbar class=\"bar-container\" *ngIf=\"!isNomalType\">\r\n <span class=\"w-100\">\r\n <span class=\"col-4 d-inline-flex align-items-lg-center\">\r\n <div *ngIf=\"hideMenuDropdown\" class=\"border align-self-center\">\r\n <div *ngIf=\"logoSvgPath\" class=\"logo-container\">\r\n <img [src]=\"logoSvgPath\" alt=\"\" />\r\n </div>\r\n </div>\r\n <div *ngIf=\"!hideMenuDropdown\">\r\n <button #menu class=\"collapse-icon\" mat-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror\" (click)=\"onMenuClicked()\">\r\n menu\r\n </mat-icon>\r\n </button>\r\n <img [src]=\"logoSvgPath\" alt=\"\" />\r\n </div>\r\n <span class=\"p-3\">{{title}}</span>\r\n <div class=\"spacer\"></div>\r\n </span>\r\n <span class=\"align-items-sm-center col-4 d-inline-flex justify-content-center\">\r\n <div *ngIf=\"imgSvgPath\" class=\"img-container\" [class.bg-transparent]=\"isImgSvgTransparent\">\r\n <img [src]=\"imgSvgPath\" alt=\"\" />\r\n </div>\r\n </span>\r\n <span class=\"col-4 d-inline-flex justify-content-end\">\r\n <button (click)=\"onRightIconClicked(item.icon)\" *ngFor=\"let item of rightIcons\" class=\"menu-item-icon\"\r\n mat-button>\r\n <mat-icon *ngIf=\"item.icon == 'notifications_none'\" matBadge=\"{{notifications}}\"\r\n matBadgeColor=\"warn\">\r\n {{item.icon}}\r\n </mat-icon>\r\n <mat-icon *ngIf=\"item.icon != 'notifications_none'\"\r\n class=\"material-icons-outlined mat-icon-rtl-mirror\">\r\n {{item.icon}}\r\n </mat-icon>\r\n <span class=\"mg-l-3\">{{item.tooltip}}</span>\r\n </button>\r\n </span>\r\n </span>\r\n </mat-toolbar>\r\n <mat-toolbar class=\"bar-prv-container\" *ngIf=\"isNomalType\">\r\n <button class=\"icon-title\" #menu qms-btn-text (click)=\"onClickLeftFirstIcon()\">\r\n <mat-icon class=\"cusor-pointer\">\r\n {{leftFirstIcon}}\r\n </mat-icon>\r\n </button>\r\n <span class=\"content-title\">{{title}}</span>\r\n <div class=\"spacer\"></div>\r\n <div class=\"right-content\">\r\n <button qms-btn-text (click)=\"onCancel()\" class=\"cusor-pointer mr-22\" *ngIf=\"cancelTitle\">\r\n {{cancelTitle}}\r\n </button>\r\n <button qms-btn [disabled]=\"disabledConfirmAction\" class=\"cusor-pointer\" (click)=\"onConfirm()\" *ngIf=\"confirmTitle\">\r\n {{confirmTitle}}\r\n </button>\r\n </div>\r\n </mat-toolbar>\r\n</div>",
15604
- styles: [".qms-app-bar-container{height:56px}.qms-app-bar-container .spacer{flex:1 1 auto}.qms-app-bar-container .mat-toolbar{background:#00324e;color:#fff;height:56px}.qms-app-bar-container .bar-prv-container{background:#e4e4e4}.qms-app-bar-container .bar-prv-container .close-icon,.qms-app-bar-container .bar-prv-container .title-icon{color:#323232}.qms-app-bar-container .bar-prv-container .right-content .mr-22{margin-right:22px}.qms-app-bar-container .bar-prv-container button:first-child:hover{background-color:rgba(0,0,0,.08)}.qms-app-bar-container .bar-prv-container .icon-title{color:#666;padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.qms-app-bar-container .bar-prv-container .content-title{font-family:Raleway;font-size:18px;font-style:normal;font-weight:600;line-height:21px;letter-spacing:0;text-align:left;color:#323232}.qms-app-bar-container .bar-container{padding:0!important}.qms-app-bar-container .bar-container .logo-container{background:#fff;padding:12px;height:56px}.qms-app-bar-container .bar-container .img-container{height:40px;background:#fff;padding:2px}.qms-app-bar-container .bar-container .bg-transparent{background:transparent;height:40px;padding:2px}"]
15641
+ template: "<div class=\"qms-app-bar-container\">\r\n <mat-toolbar class=\"bar-container\" *ngIf=\"!isNomalType\">\r\n <span class=\"w-100\">\r\n <span class=\"col-4 d-inline-flex align-items-lg-center\">\r\n <div *ngIf=\"hideMenuDropdown\" class=\"border align-self-center\">\r\n <div *ngIf=\"logoSvgPath\" class=\"logo-container\">\r\n <img [src]=\"logoSvgPath\" alt=\"\" />\r\n </div>\r\n </div>\r\n <div *ngIf=\"!hideMenuDropdown\">\r\n <button #menu class=\"collapse-icon\" mat-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror\" (click)=\"onMenuClicked()\">\r\n menu\r\n </mat-icon>\r\n </button>\r\n <img [src]=\"logoSvgPath\" alt=\"\" />\r\n </div>\r\n <div class=\"pr-8\"></div>\r\n <span class=\"content-title\">{{title}}</span>\r\n <div class=\"spacer\"></div>\r\n </span>\r\n <span class=\"align-items-sm-center col-4 d-inline-flex justify-content-center\">\r\n <div *ngIf=\"imgSvgPath\" class=\"img-container\" [class.bg-transparent]=\"isImgSvgTransparent\">\r\n <img [src]=\"imgSvgPath\" alt=\"\" />\r\n </div>\r\n </span>\r\n <span class=\"col-4 d-inline-flex justify-content-end right-icon\">\r\n <button (click)=\"onRightIconClicked(item.icon)\" *ngFor=\"let item of rightIcons\" class=\"menu-item-icon\"\r\n mat-button>\r\n <mat-icon *ngIf=\"item.icon == 'notifications_none'\" matBadge=\"{{notifications}}\"\r\n matBadgeColor=\"warn\">\r\n {{item.icon}}\r\n </mat-icon>\r\n <mat-icon *ngIf=\"item.icon != 'notifications_none'\"\r\n class=\"material-icons-outlined mat-icon-rtl-mirror\">\r\n {{item.icon}}\r\n </mat-icon>\r\n <span class=\"mg-l-3\">{{item.tooltip}}</span>\r\n </button>\r\n </span>\r\n </span>\r\n </mat-toolbar>\r\n <mat-toolbar class=\"bar-prv-container\" *ngIf=\"isNomalType\">\r\n <button class=\"icon-title\" #menu qms-btn-text (click)=\"onClickLeftFirstIcon()\">\r\n <mat-icon class=\"cusor-pointer\">\r\n {{leftFirstIcon}}\r\n </mat-icon>\r\n </button>\r\n <span class=\"content-title\">{{title}}</span>\r\n <div class=\"spacer\"></div>\r\n <div class=\"right-content\">\r\n <button qms-btn-text (click)=\"onCancel()\" class=\"cusor-pointer mr-10\" *ngIf=\"cancelTitle\">\r\n {{cancelTitle}}\r\n </button>\r\n <button qms-btn [disabled]=\"disabledConfirmAction\" class=\"cusor-pointer\" (click)=\"onConfirm()\" *ngIf=\"confirmTitle\">\r\n {{confirmTitle}}\r\n </button>\r\n </div>\r\n </mat-toolbar>\r\n</div>",
15642
+ styles: [".qms-app-bar-container{height:56px}.qms-app-bar-container .spacer{flex:1 1 auto}.qms-app-bar-container .mat-toolbar{background:#00324e;color:#fff;height:56px}.qms-app-bar-container .bar-prv-container{background:#e4e4e4}.qms-app-bar-container .bar-prv-container .close-icon,.qms-app-bar-container .bar-prv-container .title-icon{color:#323232}.qms-app-bar-container .bar-prv-container .right-content button{line-height:16px!important}.qms-app-bar-container .bar-prv-container .right-content .mr-10{margin-right:10px}.qms-app-bar-container .bar-prv-container button:first-child:hover{background-color:rgba(0,0,0,.08)}.qms-app-bar-container .bar-prv-container .icon-title{color:#666;padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%;margin-right:11px}.qms-app-bar-container .bar-prv-container .content-title{font-family:Raleway;font-size:18px;font-style:normal;font-weight:600;line-height:21px;letter-spacing:0;text-align:left;color:#323232}.qms-app-bar-container .bar-container{padding:0!important}.qms-app-bar-container .bar-container .logo-container{background:#fff;padding:12px;height:56px}.qms-app-bar-container .bar-container .img-container{height:40px;background:#fff;padding:2px}.qms-app-bar-container .bar-container .bg-transparent{background:transparent;height:40px;padding:2px}.qms-app-bar-container .bar-container .right-icon button:last-child{min-width:unset!important}.qms-app-bar-container .bar-container ::ng-deep .mat-badge-warn .mat-badge-content{background-color:#9e360f!important}.qms-app-bar-container .pr-8{padding-right:8px}"]
15605
15643
  },] }
15606
15644
  ];
15607
15645
  QmsAppBarComponent.ctorParameters = () => [];
@@ -15924,6 +15962,46 @@ QMSTableModule.decorators = [
15924
15962
  class BreadcrumbNode {
15925
15963
  }
15926
15964
 
15965
+ class RelatedConst {
15966
+ }
15967
+ RelatedConst.IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';
15968
+ RelatedConst.HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';
15969
+ RelatedConst.SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';
15970
+
15971
+ var DataType$1;
15972
+ (function (DataType) {
15973
+ DataType[DataType["process"] = 2] = "process";
15974
+ DataType[DataType["document"] = 1] = "document";
15975
+ DataType[DataType["area"] = 3] = "area";
15976
+ DataType[DataType["folder"] = 4] = "folder";
15977
+ DataType[DataType["deviation"] = 5] = "deviation";
15978
+ DataType[DataType["checklist"] = 6] = "checklist";
15979
+ DataType[DataType["risk"] = 7] = "risk";
15980
+ DataType[DataType["deviationType"] = 8] = "deviationType";
15981
+ DataType[DataType["checklistCategory"] = 9] = "checklistCategory";
15982
+ DataType[DataType["riskFolder"] = 10] = "riskFolder";
15983
+ })(DataType$1 || (DataType$1 = {}));
15984
+
15985
+ var DocumentNodeType$1;
15986
+ (function (DocumentNodeType) {
15987
+ DocumentNodeType[DocumentNodeType["Document"] = 1] = "Document";
15988
+ DocumentNodeType[DocumentNodeType["LinkDocument"] = 2] = "LinkDocument";
15989
+ DocumentNodeType[DocumentNodeType["FileDocument"] = 3] = "FileDocument";
15990
+ DocumentNodeType[DocumentNodeType["ShortcutDocument"] = 4] = "ShortcutDocument";
15991
+ DocumentNodeType[DocumentNodeType["Folder"] = 5] = "Folder";
15992
+ DocumentNodeType[DocumentNodeType["TopFolder"] = 6] = "TopFolder";
15993
+ DocumentNodeType[DocumentNodeType["DepartmentFolder"] = 7] = "DepartmentFolder";
15994
+ DocumentNodeType[DocumentNodeType["RegionalFolder"] = 8] = "RegionalFolder";
15995
+ })(DocumentNodeType$1 || (DocumentNodeType$1 = {}));
15996
+
15997
+ var ModuleType$1;
15998
+ (function (ModuleType) {
15999
+ ModuleType[ModuleType["documentProcess"] = 1] = "documentProcess";
16000
+ ModuleType[ModuleType["deviation"] = 2] = "deviation";
16001
+ ModuleType[ModuleType["checklist"] = 3] = "checklist";
16002
+ ModuleType[ModuleType["risk"] = 4] = "risk";
16003
+ })(ModuleType$1 || (ModuleType$1 = {}));
16004
+
15927
16005
  class StepModel {
15928
16006
  constructor(id, name, disabled, selected) {
15929
16007
  this.id = id;
@@ -16094,6 +16172,16 @@ class InformationCoverItem {
16094
16172
  }
16095
16173
  }
16096
16174
 
16175
+ var SelectOptionTypes;
16176
+ (function (SelectOptionTypes) {
16177
+ SelectOptionTypes[SelectOptionTypes["SelectOne"] = 1] = "SelectOne";
16178
+ SelectOptionTypes[SelectOptionTypes["IncludeChildren"] = 2] = "IncludeChildren";
16179
+ SelectOptionTypes[SelectOptionTypes["Children"] = 3] = "Children";
16180
+ })(SelectOptionTypes || (SelectOptionTypes = {}));
16181
+
16182
+ class SelectOption {
16183
+ }
16184
+
16097
16185
  class SelectPopupData {
16098
16186
  constructor() {
16099
16187
  this.treeData = [];
@@ -16103,8 +16191,11 @@ class SelectPopupData {
16103
16191
  }
16104
16192
  }
16105
16193
 
16106
- class SelectOption {
16107
- }
16194
+ class SelectConst {
16195
+ }
16196
+ SelectConst.IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';
16197
+ SelectConst.HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';
16198
+ SelectConst.SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';
16108
16199
 
16109
16200
  class QMSSelectGlobalService {
16110
16201
  constructor() {
@@ -16120,19 +16211,6 @@ QMSSelectGlobalService.decorators = [
16120
16211
  ];
16121
16212
  QMSSelectGlobalService.ctorParameters = () => [];
16122
16213
 
16123
- class SelectConst {
16124
- }
16125
- SelectConst.IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';
16126
- SelectConst.HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';
16127
- SelectConst.SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';
16128
-
16129
- var SelectOptionTypes;
16130
- (function (SelectOptionTypes) {
16131
- SelectOptionTypes[SelectOptionTypes["SelectOne"] = 1] = "SelectOne";
16132
- SelectOptionTypes[SelectOptionTypes["IncludeChildren"] = 2] = "IncludeChildren";
16133
- SelectOptionTypes[SelectOptionTypes["Children"] = 3] = "Children";
16134
- })(SelectOptionTypes || (SelectOptionTypes = {}));
16135
-
16136
16214
  class SelectIncludeChildrenPopUpComponent {
16137
16215
  constructor(cdRef, translate, dialogRef, globalService, iconRegistry, domSanitizer, appIconService, elem, data) {
16138
16216
  this.cdRef = cdRef;
@@ -17213,11 +17291,19 @@ class SelectOneDialog {
17213
17291
  this.listChildrenSelectOne = [];
17214
17292
  this.listChildrenSelectOne = listChildren;
17215
17293
  }
17294
+ removeCheckedNodeList() {
17295
+ const item = null;
17296
+ this.checkedNodeList = [];
17297
+ this.selectedData = [...[], item];
17298
+ setTimeout(() => {
17299
+ this.selectedData = [];
17300
+ }, 500);
17301
+ }
17216
17302
  }
17217
17303
  SelectOneDialog.decorators = [
17218
17304
  { type: Component, args: [{
17219
17305
  selector: 'qms-select-one',
17220
- 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 }}</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 <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n (click)=\"selectItemSearched(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 </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar col-12 qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\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 <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"true\"\r\n [expandToChildNode]=\"expandToChildNode\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\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 </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",
17306
+ 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 }}</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 <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n (click)=\"selectItemSearched(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 </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar col-12 qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\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 <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"false\"\r\n [expandToChildNode]=\"expandToChildNode\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\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 (click)=\"removeCheckedNodeList()\">cancel</mat-icon>\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",
17221
17307
  encapsulation: ViewEncapsulation.None,
17222
17308
  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:320px}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}"]
17223
17309
  },] }
@@ -17274,6 +17360,1818 @@ QMSSelectOneModule.decorators = [
17274
17360
  class ISelectOneItem {
17275
17361
  }
17276
17362
 
17363
+ class NewTreeModel {
17364
+ }
17365
+
17366
+ class NewTreeNode {
17367
+ }
17368
+
17369
+ let objData = {};
17370
+ let json = JSON;
17371
+ function buildArrayTree(obj, level) {
17372
+ return Object.keys(obj).reduce((accumulator, key) => {
17373
+ const value = obj[key];
17374
+ const node = new NewTreeNode();
17375
+ const keyObj = json.parse(key);
17376
+ node.id = keyObj["id"];
17377
+ node.name = keyObj["name"];
17378
+ node.parentId = keyObj["parentId"];
17379
+ node.levelType = keyObj["levelType"];
17380
+ node.expandable = keyObj["expandable"];
17381
+ if (value != null) {
17382
+ if (typeof value === 'object') {
17383
+ node.children = this.buildArrayTree(value, level + 1);
17384
+ }
17385
+ else {
17386
+ node.name = value;
17387
+ }
17388
+ }
17389
+ return accumulator.concat(node);
17390
+ }, []);
17391
+ }
17392
+ function buildObjectTree(arr) {
17393
+ objData = {};
17394
+ let objTreeData;
17395
+ const root = arr.filter((x) => {
17396
+ return x.parentId === '';
17397
+ });
17398
+ root.forEach((item) => {
17399
+ objTreeData = this.findParent(item, arr);
17400
+ });
17401
+ return objTreeData;
17402
+ }
17403
+ function findParent(item, array) {
17404
+ if (item) {
17405
+ const objParent = {};
17406
+ // find child
17407
+ const childFolder = array.filter((x) => {
17408
+ return x.parentId === item.id && x.expandable;
17409
+ });
17410
+ if (childFolder.length > 0) {
17411
+ this.findChild(item.id, objParent, array);
17412
+ }
17413
+ const items = array.filter((x) => {
17414
+ return x.parentId === item.id && !x.expandable;
17415
+ });
17416
+ items.forEach((item) => {
17417
+ let parentKey = {
17418
+ id: item.id,
17419
+ name: item.name,
17420
+ parentId: item.parentId,
17421
+ levelType: item.levelType,
17422
+ expandable: item.expandable
17423
+ };
17424
+ objParent[json.stringify(parentKey)] = null;
17425
+ });
17426
+ let key = {
17427
+ id: item.id,
17428
+ name: item.name,
17429
+ parentId: '',
17430
+ levelType: item.levelType,
17431
+ expandable: item.expandable
17432
+ };
17433
+ // add node to tree
17434
+ objData[json.stringify(key)] = objParent;
17435
+ }
17436
+ return objData;
17437
+ }
17438
+ function findChild(id, objParent, array) {
17439
+ const subNode = array.filter((x) => {
17440
+ return x.parentId === id;
17441
+ });
17442
+ subNode.forEach((item) => {
17443
+ const processNode = {};
17444
+ if (item.expandable) {
17445
+ this.findChild(item.id, processNode, array);
17446
+ }
17447
+ let key = {
17448
+ id: item.id,
17449
+ name: item.name,
17450
+ parentId: id,
17451
+ levelType: item.levelType,
17452
+ expandable: item.expandable
17453
+ };
17454
+ objParent[json.stringify(key)] = Object.assign(Object.assign({}, objParent[json.stringify(key)]), processNode);
17455
+ });
17456
+ }
17457
+ const TreeFunctions = {
17458
+ buildArrayTree,
17459
+ buildObjectTree,
17460
+ findParent,
17461
+ findChild,
17462
+ };
17463
+
17464
+ class NewTreeComponent {
17465
+ constructor(cdRef, domSanitizer, iconRegistry, appIconService) {
17466
+ this.cdRef = cdRef;
17467
+ this.domSanitizer = domSanitizer;
17468
+ this.iconRegistry = iconRegistry;
17469
+ this.appIconService = appIconService;
17470
+ this.treeData = [];
17471
+ this.selectedData = [];
17472
+ this.selectedRiskData = [];
17473
+ this.disabledList = [];
17474
+ this.expandToChildNode = [];
17475
+ this.selectNodeEvent = new EventEmitter();
17476
+ this.selectFolderEvent = new EventEmitter();
17477
+ this.checkBoxEvent = new EventEmitter();
17478
+ this.childCheckedEvent = new EventEmitter();
17479
+ this.nodeExpandEvent = new EventEmitter();
17480
+ this.getChildNodeSelectOne = new EventEmitter();
17481
+ this.treeControlNodes = new EventEmitter();
17482
+ this.listParentObj = {};
17483
+ this.filterData = [];
17484
+ this.arrIndex = [];
17485
+ this.checkedNodeList = [];
17486
+ this.useExpandFeature = true;
17487
+ this.allowSelectFolder = false;
17488
+ this.areaOfCurrentProcess = '';
17489
+ this.showCheckBox = false;
17490
+ this.allowMultipleCheck = true;
17491
+ this.singleSelectedNode = false;
17492
+ this.onlyCheckBoxForChild = false;
17493
+ this.onlyFolder = false;
17494
+ this.itemIconType = ItemIconType;
17495
+ this.displayType = 1;
17496
+ this.openIcon = '';
17497
+ this.openIconColor = '#1954A9';
17498
+ this.closeIcon = '';
17499
+ this.closeIconColor = '#000000';
17500
+ this.itemIcon = '';
17501
+ this.itemIconSvg = '';
17502
+ this.itemIconPath = '';
17503
+ this.itemIconBase64 = '';
17504
+ this.treeControl = new FlatTreeControl((node) => {
17505
+ return node.level;
17506
+ }, (node) => {
17507
+ return node.expandable;
17508
+ });
17509
+ this.isChecked = false;
17510
+ this.idCheckIcon = '';
17511
+ this.listChildNode = [];
17512
+ this.dataType = DataType$2;
17513
+ this.transformer = (node, level) => {
17514
+ let checkHasChild = true;
17515
+ if (!node.children) {
17516
+ checkHasChild = false;
17517
+ }
17518
+ else if (node.expandable) {
17519
+ checkHasChild = false;
17520
+ }
17521
+ // tslint:disable-next-line:max-line-length
17522
+ else if (!!node.children &&
17523
+ node.children.length &&
17524
+ node.children.length === 1 &&
17525
+ !node.children[0].name &&
17526
+ node.id.toString() === this.areaOfCurrentProcess) {
17527
+ checkHasChild = false;
17528
+ }
17529
+ if (!(this.listParentObj[node.id] === 1)) {
17530
+ checkHasChild = false;
17531
+ }
17532
+ return {
17533
+ expandable: node.expandable,
17534
+ name: node.name,
17535
+ level,
17536
+ id: node.id,
17537
+ hasChild: checkHasChild,
17538
+ parentId: node.parentId,
17539
+ disabled: false,
17540
+ levelType: node.levelType
17541
+ };
17542
+ };
17543
+ this.treeFlattener = new MatTreeFlattener(this.transformer, (node) => {
17544
+ return node.level;
17545
+ }, (node) => {
17546
+ return node.expandable;
17547
+ }, (node) => {
17548
+ return node.children;
17549
+ });
17550
+ this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
17551
+ this.hasChild = (_, node) => {
17552
+ return node.expandable;
17553
+ };
17554
+ iconRegistry.addSvgIconLiteral('keyboard_up', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_UP_ICON));
17555
+ iconRegistry.addSvgIconLiteral('keyboard_down', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_DOWN_ICON));
17556
+ appIconService.registerProcessIcon(iconRegistry, domSanitizer);
17557
+ appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);
17558
+ appIconService.registerDocumentIcon(iconRegistry, domSanitizer);
17559
+ appIconService.registerFolderIcon(iconRegistry, domSanitizer);
17560
+ appIconService.registerDeviationIcon(iconRegistry, domSanitizer);
17561
+ appIconService.registerChecklistIcon(iconRegistry, domSanitizer);
17562
+ appIconService.registerRiskIcon(iconRegistry, domSanitizer);
17563
+ }
17564
+ ngOnChanges(changes) {
17565
+ if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {
17566
+ this.treeData = [...this.treeData, changes.treeData.currentValue];
17567
+ this.initTreeData();
17568
+ }
17569
+ if (changes.selectedData &&
17570
+ (changes.selectedData.currentValue.length > 0 ||
17571
+ JSON.stringify(changes.selectedData.currentValue) !==
17572
+ JSON.stringify(changes.selectedData.previousValue))) {
17573
+ if (changes.selectedData.currentValue) {
17574
+ this.checkSelected(changes.selectedData.currentValue);
17575
+ }
17576
+ else {
17577
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17578
+ this.checklistSelection.deselect(this.treeControl.dataNodes[i]);
17579
+ }
17580
+ }
17581
+ }
17582
+ if (changes.disabledList && JSON.stringify(changes.disabledList.currentValue) !== JSON.stringify(changes.disabledList.previousValue)) {
17583
+ this.checkDisabledList();
17584
+ }
17585
+ // expand all parent to show node
17586
+ if (changes.expandToChildNode && JSON.stringify(changes.expandToChildNode.currentValue) !== JSON.stringify(changes.expandToChildNode.previousValue)) {
17587
+ this.openExpandToChildNode();
17588
+ }
17589
+ }
17590
+ ngOnInit() {
17591
+ // this.initTreeData();
17592
+ }
17593
+ initTreeData() {
17594
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
17595
+ this.treeData.forEach(item => {
17596
+ if (!!item.parentId && item.parentId.length > 0) {
17597
+ this.listParentObj[item.parentId] = 1;
17598
+ }
17599
+ if (item.id && item.id.length > 0) {
17600
+ this.listParentObj[item.parentId] = 1;
17601
+ }
17602
+ });
17603
+ this.filterData = this.treeData;
17604
+ this.treeObject = TreeFunctions.buildObjectTree(this.filterData);
17605
+ this.dataSource.data = TreeFunctions.buildArrayTree(this.treeObject || {}, 0).map(element => {
17606
+ const item = this.sortDataTree(element);
17607
+ element = null;
17608
+ element = Object.assign({}, item);
17609
+ return element;
17610
+ });
17611
+ this.useExpandFeature = !((_a = this.treeConfig) === null || _a === void 0 ? void 0 : _a.showCheckBox);
17612
+ this.allowSelectFolder = (_b = this.treeConfig) === null || _b === void 0 ? void 0 : _b.allowSelectFolder;
17613
+ this.areaOfCurrentProcess = (_c = this.treeConfig) === null || _c === void 0 ? void 0 : _c.areaOfCurrentProcess;
17614
+ this.showCheckBox = (_d = this.treeConfig) === null || _d === void 0 ? void 0 : _d.showCheckBox;
17615
+ this.onlyCheckBoxForChild = (_e = this.treeConfig) === null || _e === void 0 ? void 0 : _e.onlyCheckBoxForChild;
17616
+ this.moduleId = (_f = this.treeConfig) === null || _f === void 0 ? void 0 : _f.moduleId;
17617
+ this.openIcon = (_g = this.treeConfig) === null || _g === void 0 ? void 0 : _g.openIcon;
17618
+ this.openIconColor = ((_h = this.treeConfig) === null || _h === void 0 ? void 0 : _h.openIconColor) ? (_j = this.treeConfig) === null || _j === void 0 ? void 0 : _j.openIconColor : this.openIconColor;
17619
+ this.closeIcon = (_k = this.treeConfig) === null || _k === void 0 ? void 0 : _k.closeIcon;
17620
+ this.closeIconColor = ((_l = this.treeConfig) === null || _l === void 0 ? void 0 : _l.closeIconColor) ? (_m = this.treeConfig) === null || _m === void 0 ? void 0 : _m.closeIconColor : this.closeIconColor;
17621
+ this.itemIcon = (_o = this.treeConfig) === null || _o === void 0 ? void 0 : _o.itemIcon;
17622
+ this.itemIconSvg = (_p = this.treeConfig) === null || _p === void 0 ? void 0 : _p.itemIconSvg;
17623
+ this.itemIconPath = (_q = this.treeConfig) === null || _q === void 0 ? void 0 : _q.itemIconPath;
17624
+ this.itemIconBase64 = this.domSanitizer.bypassSecurityTrustResourceUrl((_r = this.treeConfig) === null || _r === void 0 ? void 0 : _r.itemIconBase64);
17625
+ this.allowMultipleCheck = (_s = this.treeConfig) === null || _s === void 0 ? void 0 : _s.allowMultipleCheck;
17626
+ this.singleSelectedNode = (_t = this.treeConfig) === null || _t === void 0 ? void 0 : _t.singleSelectedNode;
17627
+ this.onlyFolder = (_u = this.treeConfig) === null || _u === void 0 ? void 0 : _u.onlyFolder;
17628
+ this.checklistSelection = new SelectionModel(this.allowMultipleCheck); /* true: multiple */
17629
+ this.displayType = this.getItemIconType(this.treeConfig);
17630
+ // Expand child node tree
17631
+ if (this.treeConfig.expandAll) {
17632
+ this.treeControl.expandAll();
17633
+ }
17634
+ //Disabled node
17635
+ if (this.disabledList.length) {
17636
+ this.checkDisabledList();
17637
+ }
17638
+ if (this.selectedData.length) {
17639
+ this.checkSelected(this.selectedData);
17640
+ }
17641
+ // Risk Tree
17642
+ if (this.selectedRiskData.length) {
17643
+ const selectedData = [];
17644
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17645
+ this.selectedRiskData.forEach(x => {
17646
+ const index = selectedData.findIndex(el => el.id === x.rootId);
17647
+ if (x.rootId === this.treeControl.dataNodes[i].id && index < 0) {
17648
+ selectedData.push(this.treeControl.dataNodes[i]);
17649
+ }
17650
+ });
17651
+ }
17652
+ this.checkSelected(selectedData);
17653
+ this.checkBoxEvent.emit(selectedData);
17654
+ }
17655
+ // keep expand
17656
+ if (this.parentNodeOnClick && Object.keys(this.parentNodeOnClick).length) {
17657
+ let tempParent = [];
17658
+ let root = new TreeFlatNode();
17659
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17660
+ const tree = this.treeControl.dataNodes[i];
17661
+ if (this.parentNodeOnClick.parentId === tree.parentId && this.parentNodeOnClick.id === tree.id
17662
+ || this.parentNodeOnClick.parentId === tree.id) {
17663
+ tempParent = [...tempParent, this.getParent(tree)];
17664
+ root = tree;
17665
+ }
17666
+ }
17667
+ tempParent.push(root);
17668
+ tempParent.forEach(x => {
17669
+ this.treeControl.expand(x);
17670
+ });
17671
+ }
17672
+ }
17673
+ getParent(node) {
17674
+ const { treeControl } = this;
17675
+ const currentLevel = treeControl.getLevel(node);
17676
+ if (currentLevel < 1) {
17677
+ return null;
17678
+ }
17679
+ const index = treeControl.dataNodes.indexOf(node) - 1;
17680
+ for (let i = index; i >= 0; i--) {
17681
+ const currentNode = treeControl.dataNodes[i];
17682
+ if (treeControl.getLevel(currentNode) < currentLevel) {
17683
+ return currentNode;
17684
+ }
17685
+ }
17686
+ }
17687
+ openExpandToChildNode() {
17688
+ if (this.expandToChildNode.length) {
17689
+ if (this.expandToChildNode[0] === '') {
17690
+ this.idCheckIcon = '';
17691
+ this.treeControl.collapseAll();
17692
+ this.cdRef.detectChanges();
17693
+ return;
17694
+ }
17695
+ let itemMarkChecked = this.expandToChildNode[this.expandToChildNode.length - 1].toUpperCase();
17696
+ this.idCheckIcon = itemMarkChecked;
17697
+ // get all children nodes on same level
17698
+ let listChildNodeSameLevel = this.findChildNode(itemMarkChecked, this.dataSource.data);
17699
+ // get all children in all level
17700
+ this.listChildNode = [];
17701
+ this.getChild(listChildNodeSameLevel);
17702
+ this.getChildNodeSelectOne.emit(this.listChildNode);
17703
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17704
+ if (itemMarkChecked === this.treeControl.dataNodes[i].id) {
17705
+ this.selectNodeEvent.emit(this.treeControl.dataNodes[i]);
17706
+ }
17707
+ this.expandToChildNode.forEach(el => {
17708
+ if (this.treeControl.dataNodes[i].id === el.toUpperCase()) {
17709
+ this.treeControl.expand(this.treeControl.dataNodes[i]);
17710
+ }
17711
+ });
17712
+ }
17713
+ }
17714
+ }
17715
+ checkDisabledList() {
17716
+ // Disable List
17717
+ if (this.disabledList.length) {
17718
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17719
+ this.disabledList.forEach(x => {
17720
+ var _a;
17721
+ if (x.id === this.treeControl.dataNodes[i].id
17722
+ && (!x.parentId || x.parentId === ((_a = this.treeControl.dataNodes[i]) === null || _a === void 0 ? void 0 : _a.parentId))) {
17723
+ this.treeControl.dataNodes[i].disabled = true;
17724
+ }
17725
+ });
17726
+ }
17727
+ }
17728
+ //Selected node with select one
17729
+ if (this.disabledList.length && this.treeConfig.selectOne) {
17730
+ let itemMarkChecked = this.disabledList[this.disabledList.length - 1].toUpperCase();
17731
+ this.idCheckIcon = itemMarkChecked;
17732
+ // get all children nodes on same level
17733
+ let listChildNodeSameLevel = this.findChildNode(itemMarkChecked, this.dataSource.data);
17734
+ // get all children in all level
17735
+ this.listChildNode = [];
17736
+ this.getChild(listChildNodeSameLevel);
17737
+ this.getChildNodeSelectOne.emit(this.listChildNode);
17738
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17739
+ if (itemMarkChecked === this.treeControl.dataNodes[i].id) {
17740
+ this.selectNodeEvent.emit(this.treeControl.dataNodes[i]);
17741
+ }
17742
+ this.disabledList.forEach(el => {
17743
+ if (this.treeControl.dataNodes[i].id === el.toUpperCase()) {
17744
+ this.treeControl.expand(this.treeControl.dataNodes[i]);
17745
+ }
17746
+ });
17747
+ // remove all children nodes when user dont need to show them
17748
+ this.listChildNode.forEach(el => {
17749
+ var _a;
17750
+ if (el.id && ((_a = this.treeControl.dataNodes[i]) === null || _a === void 0 ? void 0 : _a.id) === el.id) {
17751
+ this.treeControl.dataNodes.splice(i, 1);
17752
+ }
17753
+ });
17754
+ }
17755
+ }
17756
+ else {
17757
+ this.idCheckIcon = '';
17758
+ this.treeControl.collapseAll();
17759
+ this.cdRef.detectChanges();
17760
+ }
17761
+ }
17762
+ getChild(obj) {
17763
+ for (let i = 0; i < obj.children.length; i++) {
17764
+ if (obj.children[i].children) {
17765
+ this.getChild(obj.children[i]);
17766
+ delete obj.children[i].children;
17767
+ this.listChildNode.push(obj.children[i]);
17768
+ }
17769
+ else {
17770
+ this.listChildNode.push(obj.children[i]);
17771
+ }
17772
+ }
17773
+ }
17774
+ sortDataTree(obj) {
17775
+ if (obj.children) {
17776
+ let child = [];
17777
+ const leafNode = obj.children.filter(x => !x.children);
17778
+ const subFolderNode = obj.children.filter(x => x.children);
17779
+ // for(let index = subFolderNode.length - 1; index >= 0 ; index--){
17780
+ // let el = subFolderNode[index];
17781
+ // this.sortDataTree(el);
17782
+ // child.unshift(el);
17783
+ // }
17784
+ subFolderNode.forEach(element => {
17785
+ let el = element;
17786
+ this.sortDataTree(el);
17787
+ child.push(el);
17788
+ });
17789
+ leafNode.forEach(element => {
17790
+ let el = element;
17791
+ child.push(el);
17792
+ });
17793
+ obj.children = child;
17794
+ }
17795
+ return obj;
17796
+ }
17797
+ getImagePath() {
17798
+ return this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64);
17799
+ }
17800
+ checkSelected(itemSelected) {
17801
+ setTimeout(() => {
17802
+ if (!this.treeControl['dataNodes'])
17803
+ return;
17804
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17805
+ const tree = this.treeControl.dataNodes[i];
17806
+ this.checklistSelection.deselect(tree);
17807
+ for (let j = 0; j < itemSelected.length; j++) {
17808
+ const element = itemSelected[j];
17809
+ if (tree.id.toLocaleLowerCase() === element.id.toLocaleLowerCase() && (!element.parentId || tree.parentId.toLocaleLowerCase() === element.parentId.toLocaleLowerCase())) {
17810
+ this.checklistSelection.select(tree);
17811
+ }
17812
+ }
17813
+ }
17814
+ }, 500);
17815
+ }
17816
+ checkSelectedSameNode(itemSelected, flag) {
17817
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17818
+ const tree = this.treeControl.dataNodes[i];
17819
+ for (let j = 0; j < itemSelected.length; j++) {
17820
+ const element = itemSelected[j];
17821
+ if (element.id && tree.id === element.id
17822
+ && tree.parentId === element.parentId && !tree.disabled) {
17823
+ flag ? this.checklistSelection.select(tree) : this.checklistSelection.deselect(tree);
17824
+ }
17825
+ }
17826
+ }
17827
+ }
17828
+ getItemIconType(treeConfig) {
17829
+ if (treeConfig.itemIcon && treeConfig.itemIcon.length)
17830
+ return this.itemIconType.name;
17831
+ if (treeConfig.itemIconPath && treeConfig.itemIconPath.length)
17832
+ return this.itemIconType.path;
17833
+ if (treeConfig.itemIconBase64 && treeConfig.itemIconBase64.length)
17834
+ return this.itemIconType.base64;
17835
+ if (treeConfig.itemIconSvg && treeConfig.itemIconSvg.length)
17836
+ return this.itemIconType.svg;
17837
+ return this.itemIconType.none;
17838
+ }
17839
+ /** Whether all the descendants of the node are selected */
17840
+ descendantsAllSelected(node) {
17841
+ const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];
17842
+ if (!descendants.length) {
17843
+ return this.checklistSelection.isSelected(node);
17844
+ }
17845
+ const selected = this.checklistSelection.isSelected(node);
17846
+ const allSelected = descendants.every(child => this.checklistSelection.isSelected(child));
17847
+ if (!selected && allSelected) {
17848
+ this.checklistSelection.select(node);
17849
+ this.cdRef.markForCheck();
17850
+ }
17851
+ return allSelected;
17852
+ }
17853
+ /** Whether part of the descendants are selected */
17854
+ descendantsPartiallySelected(node) {
17855
+ const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];
17856
+ const result = descendants.some(child => this.checklistSelection.isSelected(child));
17857
+ return result && !this.descendantsAllSelected(node);
17858
+ }
17859
+ /** Toggle the to-do item selection. Select/deselect all the descendants node */
17860
+ todoItemSelectionToggle(node) {
17861
+ switch (this.moduleId) {
17862
+ case DataType$2.document:
17863
+ node.itemType = node.expandable ? DataType$2.folder : DataType$2.document;
17864
+ break;
17865
+ case DataType$2.process:
17866
+ node.itemType = node.expandable ? DataType$2.area : DataType$2.process;
17867
+ break;
17868
+ case DataType$2.checklist:
17869
+ node.itemType = node.expandable ? DataType$2.checklistCategory : DataType$2.checklist;
17870
+ break;
17871
+ case DataType$2.deviation:
17872
+ node.itemType = node.expandable ? DataType$2.deviationType : DataType$2.deviation;
17873
+ break;
17874
+ case DataType$2.risk:
17875
+ node.itemType = node.expandable ? DataType$2.riskFolder : DataType$2.risk;
17876
+ break;
17877
+ }
17878
+ this.selectNodeEvent.emit(node);
17879
+ // tree have duplicate node
17880
+ if (this.treeConfig.canHaveDupId) {
17881
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17882
+ if (this.treeControl.dataNodes[i].id === node.id
17883
+ && this.treeControl.dataNodes[i].parentId === node.parentId
17884
+ && !this.treeControl.dataNodes[i].disabled) {
17885
+ this.checklistSelection.toggle(this.treeControl.dataNodes[i]);
17886
+ }
17887
+ }
17888
+ }
17889
+ else {
17890
+ this.checklistSelection.toggle(node);
17891
+ }
17892
+ // process/ document single selected
17893
+ if (this.singleSelectedNode) {
17894
+ this.checkBoxEvent.emit(this.checklistSelection.selected);
17895
+ }
17896
+ else {
17897
+ const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);
17898
+ this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));
17899
+ !this.descendantsAllSelected(node)
17900
+ ? this.checklistSelection.select(...descendants)
17901
+ : this.checklistSelection.deselect(...descendants);
17902
+ this.cdRef.markForCheck();
17903
+ const allNodeIsParent = this.checklistSelection.selected.every(child => child.expandable);
17904
+ if (allNodeIsParent) {
17905
+ this.checklistSelection.selected.forEach(element => {
17906
+ this.checklistSelection.deselect(element);
17907
+ });
17908
+ }
17909
+ this.checkBoxEvent.emit(this.checklistSelection.selected);
17910
+ }
17911
+ }
17912
+ todoChildSelectionToggle(node) {
17913
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17914
+ if (this.treeControl.dataNodes[i].id === node.id
17915
+ && this.treeControl.dataNodes[i].parentId === node.parentId
17916
+ && !this.treeControl.dataNodes[i].disabled) {
17917
+ this.checklistSelection.toggle(this.treeControl.dataNodes[i]);
17918
+ }
17919
+ }
17920
+ // this.checklistSelection.toggle(node);
17921
+ this.cdRef.markForCheck();
17922
+ this.checkBoxEvent.emit(this.checklistSelection.selected);
17923
+ }
17924
+ todoItemSelection(nodes) {
17925
+ nodes.forEach(node => {
17926
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17927
+ if (this.treeControl.dataNodes[i].id === node.id &&
17928
+ this.treeControl.dataNodes[i].parentId === node.parentId &&
17929
+ !this.treeControl.dataNodes[i].disabled && !this.treeControl.dataNodes[i].expandable) {
17930
+ if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))
17931
+ this.checklistSelection.toggle(this.treeControl.dataNodes[i]);
17932
+ }
17933
+ }
17934
+ });
17935
+ this.checkBoxEvent.emit(this.checklistSelection.selected);
17936
+ }
17937
+ todoItemSelectionProcessDocument(nodes) {
17938
+ nodes.forEach(node => {
17939
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17940
+ if (this.treeControl.dataNodes[i].id === node.id &&
17941
+ this.treeControl.dataNodes[i].parentId === node.parentId &&
17942
+ !this.treeControl.dataNodes[i].disabled && !this.treeControl.dataNodes[i].expandable) {
17943
+ if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))
17944
+ this.checklistSelection.toggle(this.treeControl.dataNodes[i]);
17945
+ }
17946
+ }
17947
+ });
17948
+ setTimeout(() => {
17949
+ this.checkBoxEvent.emit(this.checklistSelection.selected);
17950
+ this.treeControlNodes.emit(this.treeControl);
17951
+ }, 500);
17952
+ }
17953
+ todoFolderSelection(nodes) {
17954
+ nodes.forEach(node => {
17955
+ for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
17956
+ if (this.treeControl.dataNodes[i].id === node.id &&
17957
+ this.treeControl.dataNodes[i].parentId === node.parentId &&
17958
+ !this.treeControl.dataNodes[i].disabled && this.treeControl.dataNodes[i].expandable) {
17959
+ if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))
17960
+ this.todoItemSelectionToggle(this.treeControl.dataNodes[i]);
17961
+ }
17962
+ }
17963
+ });
17964
+ this.checkBoxEvent.emit(this.checklistSelection.selected);
17965
+ }
17966
+ selectNode(node) {
17967
+ if (window[RelatedConst$1.IS_DISPLAY_SEARCH_RESULT]) {
17968
+ window.postMessage(RelatedConst$1.HIDE_SEARCH_RESULT, '*');
17969
+ }
17970
+ if (this.treeConfig.selectOne) {
17971
+ node.itemType = this.checkDataTypeSelectNode(node);
17972
+ this.idCheckIcon = node.id;
17973
+ this.selectNodeEvent.emit(node);
17974
+ }
17975
+ }
17976
+ checkDataTypeSelectNode(node) {
17977
+ let itemType = -1;
17978
+ switch (this.moduleId) {
17979
+ case DataType$2.process:
17980
+ itemType = node.expandable ? DataType$2.area : DataType$2.process;
17981
+ break;
17982
+ case DataType$2.document:
17983
+ itemType = node.expandable ? DataType$2.folder : DataType$2.document;
17984
+ break;
17985
+ default:
17986
+ itemType = this.moduleId;
17987
+ break;
17988
+ }
17989
+ return itemType;
17990
+ }
17991
+ selectFolder(node) {
17992
+ this.selectFolderEvent.emit(node);
17993
+ }
17994
+ onExpandNode(node, isExpandNode) {
17995
+ if (isExpandNode) {
17996
+ this.nodeExpandEvent.emit(node);
17997
+ }
17998
+ if (this.treeConfig.selectOne) {
17999
+ this.idCheckIcon = node.id;
18000
+ node.itemType = this.checkDataTypeSelectNode(node);
18001
+ this.selectNodeEvent.emit(node);
18002
+ }
18003
+ if (window[RelatedConst$1.IS_DISPLAY_SEARCH_RESULT]) {
18004
+ window.postMessage(RelatedConst$1.HIDE_SEARCH_RESULT, '*');
18005
+ }
18006
+ // set useExpandFeature = true to improve performance of tree loading
18007
+ if (!isExpandNode || !this.useExpandFeature) {
18008
+ for (let i = 0; i < this.arrIndex.length; i++) {
18009
+ if (this.arrIndex[i] === node.id) {
18010
+ this.arrIndex.splice(i, 1);
18011
+ }
18012
+ }
18013
+ return;
18014
+ }
18015
+ // get array index to expand node after refresh datasource
18016
+ let index = 0;
18017
+ let isChange = false;
18018
+ let isRemove = false;
18019
+ this.arrIndex.push(node.id);
18020
+ const childArray = this.treeData.filter((x) => {
18021
+ return x.parentId === node.id;
18022
+ });
18023
+ let rootId = '0';
18024
+ let parentElement;
18025
+ let childrenList;
18026
+ if (childArray.length === 0) {
18027
+ return;
18028
+ }
18029
+ childArray.forEach((item) => {
18030
+ if (item.parentId === rootId) {
18031
+ return;
18032
+ }
18033
+ // get child node from original datasource
18034
+ const child = this.getChildNode(item.parentId, childArray);
18035
+ rootId = item.parentId;
18036
+ index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);
18037
+ if (index > -1) {
18038
+ return;
18039
+ }
18040
+ // add child node to expand node
18041
+ parentElement = this.findChildNode(node.id, this.dataSource.data);
18042
+ if (parentElement) {
18043
+ // temporary remove all node without children => purpose to add node folder first
18044
+ if (!isRemove) {
18045
+ childrenList = [...parentElement.children];
18046
+ this.removeChildren(parentElement);
18047
+ isRemove = true;
18048
+ }
18049
+ // add node folder first
18050
+ parentElement.children.push(child);
18051
+ isChange = true;
18052
+ }
18053
+ });
18054
+ // add node without children again
18055
+ if (isRemove) {
18056
+ this.addChildren(parentElement, childrenList);
18057
+ }
18058
+ // refresh data and expand tree node from root node
18059
+ if (isChange) {
18060
+ this.refreshTreeData();
18061
+ this.arrIndex.forEach((item) => {
18062
+ index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);
18063
+ this.treeControl.expand(this.treeControl.dataNodes[index]);
18064
+ });
18065
+ isChange = false;
18066
+ }
18067
+ }
18068
+ removeChildren(parentElement) {
18069
+ if (parentElement.children) {
18070
+ parentElement.children.length = 0;
18071
+ }
18072
+ }
18073
+ addChildren(parentElement, childrenList) {
18074
+ if (childrenList) {
18075
+ childrenList.forEach((e) => {
18076
+ parentElement.children.push(e);
18077
+ });
18078
+ }
18079
+ }
18080
+ getNodeIndex(id, level, data) {
18081
+ if (level) {
18082
+ return data.findIndex((x) => {
18083
+ return x.id === id && x.level === level;
18084
+ });
18085
+ }
18086
+ return data.findIndex((x) => {
18087
+ return x.id === id;
18088
+ });
18089
+ }
18090
+ getChildNode(rootId, data) {
18091
+ const childArray = data.filter((x) => {
18092
+ return x.rootId === rootId;
18093
+ });
18094
+ const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] };
18095
+ childArray.forEach((item) => {
18096
+ child.children.push({ id: item.childId, name: item.childName, parentId: rootId, expandable: false });
18097
+ });
18098
+ return child;
18099
+ }
18100
+ findChildNode(id, data) {
18101
+ // eslint-disable-next-line no-restricted-syntax
18102
+ for (const currentFather of data) {
18103
+ if (currentFather.id === id) {
18104
+ return currentFather;
18105
+ }
18106
+ if (currentFather.children) {
18107
+ const currentChild = currentFather.children.find((x) => {
18108
+ return x.id === id;
18109
+ });
18110
+ if (currentChild) {
18111
+ return currentChild;
18112
+ }
18113
+ // eslint-disable-next-line no-restricted-syntax
18114
+ for (const currentChild1 of currentFather.children) {
18115
+ if (id !== currentChild1.id) {
18116
+ const result = this.findChildNode(id, currentFather.children);
18117
+ if (result !== false) {
18118
+ return result;
18119
+ }
18120
+ }
18121
+ }
18122
+ }
18123
+ }
18124
+ return false;
18125
+ }
18126
+ refreshTreeData() {
18127
+ const data = this.dataSource.data;
18128
+ this.dataSource.data = [];
18129
+ this.dataSource.data = data;
18130
+ }
18131
+ getNodeIcon(node) {
18132
+ if (this.openIcon && this.closeIcon) {
18133
+ return this.treeControl.isExpanded(node) ? this.openIcon : this.closeIcon;
18134
+ }
18135
+ switch (this.moduleId) {
18136
+ case DataType$2.document: {
18137
+ let nodeData = this.treeData.filter(x => { return x.id === node.id; });
18138
+ if (nodeData.length > 0) {
18139
+ switch (nodeData[0].levelType) {
18140
+ case DocumentNodeType$2.DepartmentFolder:
18141
+ return this.treeControl.isExpanded(node) ? 'department_folder_outlined' : 'department_folder';
18142
+ case DocumentNodeType$2.RegionalFolder:
18143
+ return this.treeControl.isExpanded(node) ? 'regional_folder_outlined' : 'regional_folder';
18144
+ case DocumentNodeType$2.TopFolder:
18145
+ return this.treeControl.isExpanded(node) ? 'enterprise_folder_outlined' : 'enterprise_folder';
18146
+ case DocumentNodeType$2.Folder:
18147
+ return this.treeControl.isExpanded(node) ? 'local_folder_outlined' : 'local_folder';
18148
+ default:
18149
+ return this.treeControl.isExpanded(node) ? 'folder_outlined' : 'folder';
18150
+ }
18151
+ }
18152
+ return this.treeControl.isExpanded(node) ? 'folder_outlined' : 'folder';
18153
+ }
18154
+ case DataType$2.process:
18155
+ return this.treeControl.isExpanded(node) ? 'process_area_outlined' : 'process_area';
18156
+ default:
18157
+ return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';
18158
+ }
18159
+ }
18160
+ getItemIcon(node) {
18161
+ switch (this.moduleId) {
18162
+ case DataType$2.document:
18163
+ const parent = this.treeData.filter(x => { return x.id === node.parentId; });
18164
+ if (parent.length > 0) {
18165
+ switch (parent[0].levelType) {
18166
+ case DocumentNodeType$2.DepartmentFolder:
18167
+ return 'document_department';
18168
+ case DocumentNodeType$2.RegionalFolder:
18169
+ return 'document_regional';
18170
+ case DocumentNodeType$2.TopFolder:
18171
+ return 'document_enterprise';
18172
+ case DocumentNodeType$2.Folder:
18173
+ return 'document_local';
18174
+ default:
18175
+ return 'document';
18176
+ }
18177
+ }
18178
+ return 'document';
18179
+ case DataType$2.process:
18180
+ return 'process';
18181
+ case DataType$2.checklist:
18182
+ return 'checklist';
18183
+ case DataType$2.deviation:
18184
+ return 'deviation';
18185
+ case DataType$2.risk:
18186
+ return 'risk';
18187
+ default:
18188
+ return 'document';
18189
+ }
18190
+ }
18191
+ getNodeId(node) {
18192
+ return `_${node.parentId ? node.parentId : ''}_${node.id}_${node.level}`;
18193
+ }
18194
+ getNodeByIdAndParentId(nodeId, parentId) {
18195
+ return this.treeControl.dataNodes.find(x => {
18196
+ return x.id === nodeId && x.parentId === parentId;
18197
+ });
18198
+ }
18199
+ expandNode(node) {
18200
+ this.treeControl.expand(node);
18201
+ }
18202
+ }
18203
+ NewTreeComponent.decorators = [
18204
+ { type: Component, args: [{
18205
+ selector: 'qms-tree-new',
18206
+ template: "<mat-tree\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"tree__container\"\r\n>\r\n <mat-tree-node\r\n class=\"tree-branch\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <!-- form thu 1 - child -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n >\r\n </mat-checkbox>\r\n\r\n <!-- form thu 2 -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"ml-10 checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <div\r\n class=\"expand-node\"\r\n *ngIf=\"node.name && !onlyFolder\"\r\n [class.bgSelected]=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n (click)=\"selectNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <div class=\"expand-node__text\">\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.name && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n >\r\n {{ itemIcon }}\r\n </mat-icon>\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.svg && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"itemIconSvg\"\r\n >\r\n </mat-icon>\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.path && !onlyCheckBoxForChild\"\r\n class=\"mat-icon\"\r\n [src]=\"itemIconPath\"\r\n />\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.base64 && !onlyCheckBoxForChild\"\r\n class=\"mat-icon image-base64\"\r\n [src]=\"getImagePath()\"\r\n />\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.none && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getItemIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.name }}</span>\r\n </div>\r\n <mat-icon\r\n class=\"icon-check\"\r\n *ngIf=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n >done</mat-icon\r\n >\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\r\n <!-- form thu 1 - parent -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild\"\r\n [checked]=\"descendantsAllSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [disableRipple]=\"!node.hasChild\"\r\n [attr.aria-label]=\"'toggle ' + node.filename\"\r\n *ngIf=\"node.name\"\r\n (click)=\"onExpandNode(node, treeControl.isExpanded(node))\"\r\n >\r\n <mat-icon\r\n *ngIf=\"openIcon && closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : closeIconColor\r\n }\"\r\n >{{ getNodeIcon(node) }}</mat-icon\r\n >\r\n <mat-icon\r\n *ngIf=\"!openIcon || !closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngClass]=\"{\r\n 'open-icon': treeControl.isExpanded(node),\r\n 'not-department-icon': moduleId !== dataType.document\r\n }\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n *ngIf=\"expandOnTitleClick\"\r\n matTreeNodeToggle\r\n class=\"text-node-parent\"\r\n style=\"cursor: pointer\"\r\n (click)=\"onExpandNode(node, treeControl.isExpanded(node))\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : '#000000'\r\n }\"\r\n >\r\n <span>{{ node.name }}</span>\r\n <mat-icon\r\n class=\"icon-check\"\r\n *ngIf=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n >done</mat-icon\r\n >\r\n </span>\r\n <span\r\n *ngIf=\"!expandOnTitleClick\"\r\n class=\"text-node-parent\"\r\n (click)=\"selectFolder(node)\"\r\n style=\"cursor: pointer\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <span>{{ node.name }}</span>\r\n <mat-icon\r\n class=\"icon-check\"\r\n *ngIf=\"treeConfig.selectOne && idCheckIcon == node.id\"\r\n >done</mat-icon\r\n >\r\n </span>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
18207
+ encapsulation: ViewEncapsulation.None,
18208
+ 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}.tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:#323232}.tree__container .mat-tree-node{color:#000;min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .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}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .icon-check{color:#1954a9}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent.bgSelected .icon-check{color:#1954a9}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:#e5eefb}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}"]
18209
+ },] }
18210
+ ];
18211
+ NewTreeComponent.ctorParameters = () => [
18212
+ { type: ChangeDetectorRef },
18213
+ { type: DomSanitizer },
18214
+ { type: MatIconRegistry },
18215
+ { type: QMSIconRegistryService }
18216
+ ];
18217
+ NewTreeComponent.propDecorators = {
18218
+ treeData: [{ type: Input }],
18219
+ treeConfig: [{ type: Input }],
18220
+ selectedData: [{ type: Input }],
18221
+ selectedRiskData: [{ type: Input }],
18222
+ disabledList: [{ type: Input }],
18223
+ expandOnTitleClick: [{ type: Input }],
18224
+ expandToChildNode: [{ type: Input }],
18225
+ parentNodeOnClick: [{ type: Input }],
18226
+ selectNodeEvent: [{ type: Output }],
18227
+ selectFolderEvent: [{ type: Output }],
18228
+ checkBoxEvent: [{ type: Output }],
18229
+ childCheckedEvent: [{ type: Output }],
18230
+ nodeExpandEvent: [{ type: Output }],
18231
+ getChildNodeSelectOne: [{ type: Output }],
18232
+ treeControlNodes: [{ type: Output }]
18233
+ };
18234
+
18235
+ class QMSNewTreeModule {
18236
+ }
18237
+ QMSNewTreeModule.decorators = [
18238
+ { type: NgModule, args: [{
18239
+ declarations: [
18240
+ NewTreeComponent,
18241
+ ],
18242
+ imports: [
18243
+ CommonModule,
18244
+ MatTreeModule,
18245
+ MatFormFieldModule,
18246
+ MatIconModule,
18247
+ MatButtonModule,
18248
+ MatCheckboxModule,
18249
+ MatAutocompleteModule,
18250
+ ReactiveFormsModule,
18251
+ ScrollingModule,
18252
+ MatCardModule,
18253
+ MatSidenavModule,
18254
+ MatListModule,
18255
+ SharedMaterialModule,
18256
+ QMSListModule,
18257
+ QmsAngularModule,
18258
+ QMSBreadcrumbModule,
18259
+ QMSAppIconModule
18260
+ ],
18261
+ exports: [
18262
+ NewTreeComponent,
18263
+ ]
18264
+ },] }
18265
+ ];
18266
+
18267
+ class SelectProcessDocumentPopupData {
18268
+ constructor() {
18269
+ this.moduleId = 0;
18270
+ this.moduleName = '';
18271
+ this.treeData1 = [];
18272
+ this.treeData2 = [];
18273
+ this.selectedNode = [];
18274
+ this.disabledList = [];
18275
+ this.disabledList2 = [];
18276
+ this.splitView = false;
18277
+ }
18278
+ }
18279
+
18280
+ class QMSProcessDocumentItem {
18281
+ }
18282
+
18283
+ class QMSSelectProcessDocumentGlobalService {
18284
+ constructor() {
18285
+ this.searchRelated = new BehaviorSubject([]);
18286
+ this.splitViewValue = new BehaviorSubject([]);
18287
+ this.getProcessAreaChildren = new BehaviorSubject([]);
18288
+ this.getFolderChildren = new BehaviorSubject([]);
18289
+ }
18290
+ setSearchRelated(result) {
18291
+ this.searchRelated.next(result);
18292
+ }
18293
+ setSplitviewValue(result) {
18294
+ this.splitViewValue.next(result);
18295
+ }
18296
+ setProcessAreaChildren(result) {
18297
+ this.getProcessAreaChildren.next(result);
18298
+ }
18299
+ setFolderChildren(result) {
18300
+ this.getFolderChildren.next(result);
18301
+ }
18302
+ }
18303
+ QMSSelectProcessDocumentGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectProcessDocumentGlobalService_Factory() { return new QMSSelectProcessDocumentGlobalService(); }, token: QMSSelectProcessDocumentGlobalService, providedIn: "root" });
18304
+ QMSSelectProcessDocumentGlobalService.decorators = [
18305
+ { type: Injectable, args: [{ providedIn: 'root' },] }
18306
+ ];
18307
+ QMSSelectProcessDocumentGlobalService.ctorParameters = () => [];
18308
+
18309
+ class SelectProcessDocumentPopupComponent {
18310
+ constructor(cdRef, translate, dialogRef, globalService, iconRegistry, sanitizer, appIconService, elem, data) {
18311
+ this.cdRef = cdRef;
18312
+ this.translate = translate;
18313
+ this.dialogRef = dialogRef;
18314
+ this.globalService = globalService;
18315
+ this.iconRegistry = iconRegistry;
18316
+ this.sanitizer = sanitizer;
18317
+ this.appIconService = appIconService;
18318
+ this.elem = elem;
18319
+ this.data = data;
18320
+ this.ngUnsubscribe = new Subject();
18321
+ this.moduleId = 0;
18322
+ this.moduleName = '';
18323
+ this.treeData1 = [];
18324
+ this.treeData2 = [];
18325
+ this.checkedNodeList = [];
18326
+ this.selectedNode = [];
18327
+ this.selectedData = [];
18328
+ this.selectedData2 = [];
18329
+ this.commonCheckedList = [];
18330
+ this.documentCheckedList = [];
18331
+ this.singleProcessList = [];
18332
+ this.singleDocumentList = [];
18333
+ this.module = ModuleType$1;
18334
+ this.dataType = DataType$1;
18335
+ this.itemType = 0;
18336
+ this.selectedRiskData = [];
18337
+ this.disabledList = [];
18338
+ this.disabledList2 = [];
18339
+ this.isDocumentExpanded = true;
18340
+ this.isCommonExpanded = true;
18341
+ this.singleSelectedNode = false;
18342
+ this.searchOrder = [];
18343
+ this.myControl = new FormControl();
18344
+ this.filteredOptions = [];
18345
+ this.isInputValue = false;
18346
+ this.itemInSplitview = [];
18347
+ this.selectedFolder = null;
18348
+ this.splitViewTitle = null;
18349
+ this.listChildrenSelectOne = [];
18350
+ this.onSearch = new EventEmitter();
18351
+ this.onSelectFolderItem = new EventEmitter();
18352
+ this.onExpandProcessArea = new EventEmitter();
18353
+ this.onExpandFolder = new EventEmitter();
18354
+ this.parentNodeSelected = new TreeFlatNode();
18355
+ this.moduleId = data.moduleId;
18356
+ this.moduleName = data.moduleName;
18357
+ this.treeData1 = data.treeData1;
18358
+ this.treeData2 = data.treeData2;
18359
+ this.treeConfig1 = data.treeConfig1;
18360
+ this.treeConfig2 = data.treeConfig2;
18361
+ this.selectedRiskData = (data === null || data === void 0 ? void 0 : data.selectedNode) || [];
18362
+ this.singleSelectedNode = data.treeConfig1.singleSelectedNode;
18363
+ this.disabledList = data.disabledList || [];
18364
+ this.disabledList2 = data.disabledList2 || [];
18365
+ this.splitView = data.splitView;
18366
+ this.isSelectOne = data.isSelectOne;
18367
+ this.canOnlySelectItem = data.canOnlySelectItem;
18368
+ appIconService.registerProcessIcon(iconRegistry, sanitizer);
18369
+ appIconService.registerProcessAreaIcon(iconRegistry, sanitizer);
18370
+ appIconService.registerDocumentIcon(iconRegistry, sanitizer);
18371
+ appIconService.registerFolderIcon(iconRegistry, sanitizer);
18372
+ }
18373
+ ngOnDestroy() {
18374
+ this.ngUnsubscribe.next();
18375
+ this.ngUnsubscribe.complete();
18376
+ this.globalService.setSearchRelated([]);
18377
+ this.selectedFolder = null;
18378
+ this.globalService.setSplitviewValue([]);
18379
+ }
18380
+ onMessage(event) {
18381
+ if (event.data === RelatedConst.HIDE_SEARCH_RESULT) {
18382
+ // this.autoComplete.closePanel();
18383
+ }
18384
+ }
18385
+ ngOnInit() {
18386
+ this.translate.getLanguageSubject$.pipe().subscribe((res) => {
18387
+ if (res) {
18388
+ this.LANG = this.translate.getObjectLang(res);
18389
+ }
18390
+ });
18391
+ this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
18392
+ if (res && res.length) {
18393
+ this.filteredOptions = res;
18394
+ }
18395
+ });
18396
+ this.globalService.splitViewValue.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
18397
+ this.itemInSplitview = res;
18398
+ if (res.length) {
18399
+ let listNodeProcess = [];
18400
+ let listNodeDocs = [];
18401
+ res.forEach(item => {
18402
+ let newNodeProcess = new NewTreeModel();
18403
+ newNodeProcess.id = item.id;
18404
+ newNodeProcess.name = item.itemName;
18405
+ newNodeProcess.displayId = +item.itemNumberId;
18406
+ newNodeProcess.parentId = item.parentId;
18407
+ newNodeProcess.statusId = item.status;
18408
+ if (item.itemType === DataType$1.process) {
18409
+ listNodeProcess.push(newNodeProcess);
18410
+ }
18411
+ else {
18412
+ let newNodeDocs = new NewTreeModel();
18413
+ newNodeDocs.statusName = item.statusName;
18414
+ listNodeDocs.push(newNodeDocs);
18415
+ }
18416
+ });
18417
+ if (this.checkedNodeList.length) {
18418
+ this.selectedData = [];
18419
+ this.selectedData2 = [];
18420
+ let selectProcess = [];
18421
+ let selectDocument = [];
18422
+ this.checkedNodeList.forEach(x => {
18423
+ const newNode = {
18424
+ disabled: false,
18425
+ expandable: (x.itemType == DataType$1.area || x.itemType == DataType$1.folder) ? true : false,
18426
+ hasChild: (x.itemType == DataType$1.area || x.itemType == DataType$1.folder) ? true : false,
18427
+ id: x.id,
18428
+ level: 0,
18429
+ levelType: undefined,
18430
+ name: x.itemName,
18431
+ parentId: x.parentId
18432
+ };
18433
+ if (x.itemType === DataType$1.area || x.itemType === DataType$1.process) {
18434
+ this.treeData1.forEach(item => {
18435
+ if (item.id && x.id === item.id) {
18436
+ selectProcess.push(newNode);
18437
+ }
18438
+ });
18439
+ }
18440
+ else {
18441
+ this.treeData2.forEach(item => {
18442
+ if (item.id && x.id === item.id) {
18443
+ selectDocument.push(newNode);
18444
+ }
18445
+ });
18446
+ }
18447
+ });
18448
+ this.selectedData = [...this.selectedData, ...selectProcess];
18449
+ this.selectedData2 = [...this.selectedData2, ...selectDocument];
18450
+ }
18451
+ }
18452
+ });
18453
+ this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {
18454
+ this.isInputValue = true;
18455
+ this.onSearchRelated(val);
18456
+ });
18457
+ this.globalService.getProcessAreaChildren.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
18458
+ if (res.length > 0 && this.dataTrees) {
18459
+ let notShownChildren = [];
18460
+ res.forEach(x => {
18461
+ const index = this.treeData1.findIndex(item => item.id === x.id && item.parentId === x.parentId && x.expandable == item.expandable);
18462
+ if (index < 0) {
18463
+ notShownChildren.push(x);
18464
+ }
18465
+ });
18466
+ this.treeData1 = [...this.treeData1, ...notShownChildren];
18467
+ }
18468
+ });
18469
+ this.globalService.getFolderChildren.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
18470
+ if (res.length > 0 && this.dataTrees) {
18471
+ let notShownChildren = [];
18472
+ res.forEach(x => {
18473
+ const index = this.treeData2.findIndex(item => item.id === x.id && item.parentId === x.parentId && x.expandable == item.expandable);
18474
+ if (index < 0) {
18475
+ notShownChildren.push(x);
18476
+ }
18477
+ });
18478
+ this.treeData2 = [...this.treeData2, ...notShownChildren];
18479
+ }
18480
+ });
18481
+ this.itemType = this.dataType.process;
18482
+ this.searchOrder = this.getSearchOrder();
18483
+ }
18484
+ ngAfterViewChecked() {
18485
+ }
18486
+ removeCheckedNodeList(item) {
18487
+ this.selectedData = [];
18488
+ this.selectedData2 = [];
18489
+ this.checkedNodeList = this.checkedNodeList.filter(x => (x.id.toLowerCase() !== item.id.toLowerCase() || x.parentId.toLowerCase() !== item.parentId.toLowerCase()));
18490
+ const tempArr = [];
18491
+ const tempArrDocument = [];
18492
+ const newSelectProcessList = [];
18493
+ const newSelectDocumentList = [];
18494
+ this.commonCheckedList.forEach(element => {
18495
+ this.checkedNodeList.forEach(x => {
18496
+ if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {
18497
+ tempArr.push(element);
18498
+ }
18499
+ });
18500
+ });
18501
+ this.singleProcessList.forEach(element => {
18502
+ this.checkedNodeList.forEach(x => {
18503
+ if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {
18504
+ newSelectProcessList.push(element);
18505
+ }
18506
+ });
18507
+ });
18508
+ this.singleProcessList = newSelectProcessList;
18509
+ if (tempArr.length > 0) {
18510
+ this.selectedData = [...tempArr];
18511
+ }
18512
+ this.documentCheckedList.forEach(element => {
18513
+ this.checkedNodeList.forEach(x => {
18514
+ if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {
18515
+ tempArrDocument.push(element);
18516
+ }
18517
+ });
18518
+ });
18519
+ this.singleDocumentList.forEach(element => {
18520
+ this.checkedNodeList.forEach(x => {
18521
+ if (element.id.toLowerCase() === x.id.toLowerCase() && element.parentId.toLowerCase() === x.parentId.toLowerCase()) {
18522
+ newSelectDocumentList.push(element);
18523
+ }
18524
+ });
18525
+ });
18526
+ this.singleDocumentList = newSelectDocumentList;
18527
+ if (tempArrDocument.length > 0) {
18528
+ this.selectedData2 = [...tempArrDocument];
18529
+ }
18530
+ }
18531
+ setResultHeight(arr) {
18532
+ let maxHeight = 484;
18533
+ const popup_content = document.getElementsByClassName('qmslib_related_popup_content')[0];
18534
+ const line__divider = document.getElementsByClassName('line__divider')[0];
18535
+ if (popup_content && line__divider) {
18536
+ maxHeight = this.getOffsetHeight(popup_content, true) + this.getOffsetHeight(line__divider, true) * 2;
18537
+ }
18538
+ const contentResult = document.getElementsByClassName('cdk-virtual-scroll-content-wrapper')[0];
18539
+ const viewreports = document.getElementsByClassName('related-viewport')[0];
18540
+ if (viewreports) {
18541
+ if (contentResult.offsetHeight <= maxHeight) {
18542
+ viewreports.style.height = `${contentResult.offsetHeight}px`;
18543
+ }
18544
+ else {
18545
+ viewreports.style.height = `${maxHeight}px`;
18546
+ }
18547
+ }
18548
+ }
18549
+ onSearchRelated(_val) {
18550
+ this.filteredOptions = [];
18551
+ if (typeof (_val) === 'object') {
18552
+ this.myControl.setValue('');
18553
+ this.isInputValue = false;
18554
+ }
18555
+ else if (typeof (_val) === 'string') {
18556
+ if (!!_val) {
18557
+ this.onSearch.emit(_val);
18558
+ }
18559
+ }
18560
+ }
18561
+ getModuleFilteredOptions(moduleId) {
18562
+ if (this.listChildrenSelectOne.length) {
18563
+ for (let index = 0; index < this.listChildrenSelectOne.length; index++) {
18564
+ const firstEl = this.listChildrenSelectOne[index];
18565
+ for (let j = 0; j < this.filteredOptions.length; j++) {
18566
+ const secondEl = this.filteredOptions[j];
18567
+ if (firstEl.id === secondEl.id) {
18568
+ this.filteredOptions.splice(j, 1);
18569
+ }
18570
+ }
18571
+ }
18572
+ }
18573
+ return this.filteredOptions.filter(x => x.itemType === moduleId);
18574
+ }
18575
+ showSearchResult() {
18576
+ // this.autoComplete.openPanel();
18577
+ }
18578
+ displayRelated(related) {
18579
+ return related ? related.itemName : undefined;
18580
+ }
18581
+ selectRelated(item) {
18582
+ let index = -1;
18583
+ this.selectedNode = [];
18584
+ if (this.treeConfig1.showCheckBox) {
18585
+ index = this.checkedNodeList.findIndex(x => {
18586
+ return x.id === item.id && x.parentId === item.parentId;
18587
+ });
18588
+ }
18589
+ if (index < 0) {
18590
+ let position = -1;
18591
+ let node;
18592
+ let typeId;
18593
+ if (item.itemType === this.dataType.document) {
18594
+ // document
18595
+ const isExistInDisabled = this.disabledList2.findIndex(x => {
18596
+ return x.id && x.id.toLowerCase() === item.id.toLowerCase();
18597
+ });
18598
+ if (isExistInDisabled >= 0) {
18599
+ return;
18600
+ }
18601
+ position = this.treeData2.findIndex(x => {
18602
+ return x.id === item.id && x.parentId === item.parentId && !x.expandable;
18603
+ });
18604
+ if (position >= 0) {
18605
+ this.addToChecklistNodeAndSelectedData(item);
18606
+ node = this.treeData2[position];
18607
+ typeId = this.dataType.document;
18608
+ const treeNode = {
18609
+ id: node.childId,
18610
+ name: node.childName,
18611
+ children: [],
18612
+ parentId: node.rootId,
18613
+ expandable: false
18614
+ };
18615
+ this.dataTrees.toArray()[1].todoItemSelectionProcessDocument([treeNode]);
18616
+ }
18617
+ else {
18618
+ this.addNodeToTree(item);
18619
+ this.addToChecklistNodeAndSelectedData(item);
18620
+ setTimeout(() => {
18621
+ const treeNode = {
18622
+ id: item.id,
18623
+ name: item.itemName,
18624
+ children: [],
18625
+ parentId: item.parentId,
18626
+ expandable: false
18627
+ };
18628
+ this.dataTrees.toArray()[1].todoItemSelectionProcessDocument([treeNode]);
18629
+ }, 500);
18630
+ }
18631
+ }
18632
+ else if (item.itemType === this.dataType.folder) {
18633
+ position = this.treeData2.findIndex(x => {
18634
+ return x.id.toLowerCase() === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase());
18635
+ });
18636
+ typeId = item.itemType;
18637
+ if (position >= 0) {
18638
+ node = this.treeData2[position];
18639
+ const treeNode = {
18640
+ id: node.id,
18641
+ name: node.name,
18642
+ children: [],
18643
+ parentId: node.parentId,
18644
+ expandable: true,
18645
+ };
18646
+ this.dataTrees.toArray()[1].todoFolderSelection([treeNode]);
18647
+ }
18648
+ else {
18649
+ this.addNodeToTree(item);
18650
+ this.addToChecklistNodeAndSelectedData(item);
18651
+ }
18652
+ return;
18653
+ }
18654
+ else if (item.itemType === this.dataType.area) {
18655
+ position = this.treeData1.findIndex(x => {
18656
+ return x.id.toLowerCase() === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase()) && x.expandable;
18657
+ });
18658
+ typeId = item.itemType;
18659
+ if (position >= 0) {
18660
+ node = this.treeData1[position];
18661
+ const treeNode = {
18662
+ id: node.id,
18663
+ name: node.name,
18664
+ children: [],
18665
+ parentId: node.parentId,
18666
+ expandable: true
18667
+ };
18668
+ this.dataTrees.toArray()[0].todoFolderSelection([treeNode]);
18669
+ }
18670
+ else {
18671
+ this.addNodeToTree(item);
18672
+ this.addToChecklistNodeAndSelectedData(item);
18673
+ }
18674
+ return;
18675
+ }
18676
+ else {
18677
+ const isExistInDisabled = this.disabledList.findIndex(x => {
18678
+ return x.id.toLowerCase() === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase());
18679
+ });
18680
+ if (isExistInDisabled >= 0) {
18681
+ return;
18682
+ }
18683
+ position = this.treeData1.findIndex(x => {
18684
+ return x.id.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase() && !x.expandable;
18685
+ });
18686
+ if (position >= 0) {
18687
+ node = this.treeData1[position];
18688
+ typeId = this.itemType;
18689
+ const treeNode = {
18690
+ id: node.childId,
18691
+ name: node.childName,
18692
+ children: [],
18693
+ parentId: node.rootId,
18694
+ expandable: false
18695
+ };
18696
+ this.addToChecklistNodeAndSelectedData(item);
18697
+ this.dataTrees.toArray()[0].todoItemSelectionProcessDocument([treeNode]);
18698
+ }
18699
+ else {
18700
+ this.addNodeToTree(item);
18701
+ this.addToChecklistNodeAndSelectedData(item);
18702
+ setTimeout(() => {
18703
+ const treeNode = {
18704
+ id: item.id,
18705
+ name: item.itemName,
18706
+ children: [],
18707
+ parentId: item.parentId,
18708
+ expandable: false
18709
+ };
18710
+ this.dataTrees.toArray()[0].todoItemSelectionProcessDocument([treeNode]);
18711
+ }, 500);
18712
+ }
18713
+ }
18714
+ }
18715
+ }
18716
+ addNodeToTree(item) {
18717
+ let newNodeDocs = new NewTreeModel();
18718
+ newNodeDocs.id = item.id;
18719
+ newNodeDocs.name = item.itemName;
18720
+ newNodeDocs.parentId = item.parentId;
18721
+ newNodeDocs.statusId = item === null || item === void 0 ? void 0 : item['itemStatus'];
18722
+ newNodeDocs.statusName = item === null || item === void 0 ? void 0 : item['statusName'];
18723
+ newNodeDocs.displayId = +item.itemNumberId;
18724
+ newNodeDocs.expandable = item.itemType == DataType$1.folder || item.itemType == DataType$1.area ? true : false;
18725
+ if (item.itemType == DataType$1.folder || item.itemType == DataType$1.document) {
18726
+ if (this.treeData2.findIndex(x => x.id.toLowerCase() === newNodeDocs.id.toLowerCase() &&
18727
+ (!newNodeDocs.parentId || x.parentId.toLowerCase() === newNodeDocs.parentId.toLowerCase()) && x.expandable === newNodeDocs.expandable) >= 0) {
18728
+ this.treeData2 = [...this.treeData2, newNodeDocs];
18729
+ }
18730
+ }
18731
+ else {
18732
+ if (this.treeData1.findIndex(x => x.id.toLowerCase() === newNodeDocs.id.toLowerCase() &&
18733
+ (!newNodeDocs.parentId || x.parentId.toLowerCase() === newNodeDocs.parentId.toLowerCase()) && x.expandable === newNodeDocs.expandable) >= 0) {
18734
+ this.treeData1 = [...this.treeData1, newNodeDocs];
18735
+ }
18736
+ }
18737
+ }
18738
+ addToChecklistNode(item) {
18739
+ let newNodeDocs = new NewTreeModel();
18740
+ newNodeDocs.id = item.id;
18741
+ newNodeDocs.name = item.itemName;
18742
+ newNodeDocs.parentId = item.parentId;
18743
+ newNodeDocs.statusId = item === null || item === void 0 ? void 0 : item['itemStatus'];
18744
+ newNodeDocs.statusName = item === null || item === void 0 ? void 0 : item['statusName'];
18745
+ newNodeDocs.displayId = +item.itemNumberId;
18746
+ newNodeDocs.expandable = item.itemType == DataType$1.folder || item.itemType == DataType$1.area ? true : false;
18747
+ if (this.isSelectOne) {
18748
+ this.checkedNodeList = [];
18749
+ this.documentCheckedList = [];
18750
+ this.commonCheckedList = [];
18751
+ }
18752
+ const index = this.checkedNodeList.findIndex(x => x.id.toLowerCase() === newNodeDocs.id.toLowerCase() &&
18753
+ (!newNodeDocs.parentId || x.parentId.toLowerCase() === newNodeDocs.parentId.toLowerCase()) && x.expandable === newNodeDocs.expandable);
18754
+ if (index < 0) {
18755
+ if (item.itemType == DataType$1.folder || item.itemType == DataType$1.document) {
18756
+ this.documentCheckedList.push({
18757
+ id: newNodeDocs.id,
18758
+ name: newNodeDocs.name,
18759
+ itemType: item.itemType,
18760
+ parentId: newNodeDocs.parentId,
18761
+ levelType: newNodeDocs.levelType,
18762
+ level: 0,
18763
+ disabled: false,
18764
+ expandable: newNodeDocs.expandable,
18765
+ hasChild: newNodeDocs.expandable
18766
+ });
18767
+ }
18768
+ else {
18769
+ this.commonCheckedList.push({
18770
+ id: newNodeDocs.id,
18771
+ name: newNodeDocs.name,
18772
+ itemType: item.itemType,
18773
+ parentId: newNodeDocs.parentId,
18774
+ levelType: newNodeDocs.levelType,
18775
+ level: 0,
18776
+ disabled: false,
18777
+ expandable: newNodeDocs.expandable,
18778
+ hasChild: newNodeDocs.expandable
18779
+ });
18780
+ }
18781
+ this.checkedNodeList.push({
18782
+ moduleId: this.moduleId,
18783
+ id: item.id,
18784
+ itemName: newNodeDocs.name,
18785
+ itemType: item.itemType,
18786
+ parentId: newNodeDocs.parentId,
18787
+ parentName: item.parentName,
18788
+ itemNumberId: item.itemNumberId,
18789
+ levelType: item.levelType,
18790
+ expandable: newNodeDocs.expandable
18791
+ });
18792
+ }
18793
+ }
18794
+ addSelectedData(item) {
18795
+ const selectProcess = [];
18796
+ const selectDocument = [];
18797
+ this.selectedData = [];
18798
+ this.selectedData2 = [];
18799
+ if (this.checkedNodeList.length) {
18800
+ this.checkedNodeList.forEach(x => {
18801
+ const node = {
18802
+ disabled: false,
18803
+ expandable: x.itemType == DataType$1.area || x.itemType == DataType$1.folder ? true : false,
18804
+ hasChild: x.itemType == DataType$1.area || x.itemType == DataType$1.folder ? true : false,
18805
+ id: x.id,
18806
+ level: 0,
18807
+ levelType: undefined,
18808
+ name: x.itemName,
18809
+ parentId: x.parentId
18810
+ };
18811
+ if (x.itemType === DataType$1.area || x.itemType === DataType$1.process) {
18812
+ this.treeData1.forEach(item => {
18813
+ if (item.id && x.id.toLowerCase() === item.id.toLowerCase() &&
18814
+ (!x.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase())) {
18815
+ selectProcess.push(node);
18816
+ }
18817
+ });
18818
+ }
18819
+ else {
18820
+ this.treeData2.forEach(item => {
18821
+ if (item.id && x.id.toLowerCase() === item.id.toLowerCase() &&
18822
+ (!x.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase())) {
18823
+ selectDocument.push(node);
18824
+ }
18825
+ });
18826
+ }
18827
+ });
18828
+ }
18829
+ if (!this.isSelectOne) {
18830
+ this.selectedData = [...this.selectedData, ...selectProcess];
18831
+ this.selectedData2 = [...this.selectedData2, ...selectDocument];
18832
+ }
18833
+ if (item.itemType === DataType$1.folder || item.itemType === DataType$1.document) {
18834
+ if (this.selectedData2.findIndex(x => x.id.toLowerCase() === item.id.toLowerCase() &&
18835
+ (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase()) && x.expandable === item.expandable) < 0) {
18836
+ this.selectedData2 = [...this.selectedData2, item];
18837
+ }
18838
+ }
18839
+ else {
18840
+ if (this.selectedData.findIndex(x => x.id.toLowerCase() === item.id.toLowerCase() &&
18841
+ (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase()) && x.expandable === item.expandable) < 0) {
18842
+ this.selectedData = [...this.selectedData, item];
18843
+ }
18844
+ }
18845
+ }
18846
+ addToChecklistNodeAndSelectedData(item) {
18847
+ this.addToChecklistNode(item);
18848
+ this.addSelectedData({
18849
+ id: item.id,
18850
+ name: item.itemName,
18851
+ expandable: item.itemType == DataType$1.area || item.itemType == DataType$1.folder,
18852
+ level: 0,
18853
+ disabled: false,
18854
+ hasChild: item.itemType == DataType$1.area || item.itemType == DataType$1.folder,
18855
+ });
18856
+ }
18857
+ setTypeProcess(expand) {
18858
+ return expand ? this.dataType.area : this.dataType.process;
18859
+ }
18860
+ onCloseClick() {
18861
+ this.selectedFolder = null;
18862
+ this.itemInSplitview = [];
18863
+ this.dialogRef.close();
18864
+ }
18865
+ ;
18866
+ onAddClick() {
18867
+ // if (this.treeConfig1.showCheckBox) {
18868
+ this.selectedFolder = null;
18869
+ this.itemInSplitview = [];
18870
+ this.dialogRef.close(this.checkedNodeList);
18871
+ }
18872
+ getStatusName(id) {
18873
+ let statusName = '';
18874
+ this.treeData2.forEach(x => {
18875
+ if (id.toString() === x.id) {
18876
+ statusName = x.statusName;
18877
+ }
18878
+ });
18879
+ return statusName;
18880
+ }
18881
+ getBreadcumbAllParentProcess(id) {
18882
+ let tempParent = [];
18883
+ this.checkBreadcumbProcess(id, tempParent, function (arr) {
18884
+ tempParent = [...arr];
18885
+ });
18886
+ return tempParent;
18887
+ }
18888
+ getBreadcumbAllParentDocs(id) {
18889
+ let tempParent = [];
18890
+ this.checkBreadcumbDocument(id, tempParent, function (arr) {
18891
+ tempParent = [...arr];
18892
+ });
18893
+ return tempParent;
18894
+ }
18895
+ checkBreadcumbProcess(id, breadcumbs, callback) {
18896
+ for (let i = 0; i < this.treeControlNodeProcess.dataNodes.length; i++) {
18897
+ const tree = this.treeControlNodeProcess.dataNodes[i];
18898
+ if (id == tree.id) {
18899
+ breadcumbs = [...breadcumbs, tree];
18900
+ if (tree.parentId) {
18901
+ this.checkBreadcumbProcess(tree.parentId, breadcumbs, callback);
18902
+ }
18903
+ else {
18904
+ callback(breadcumbs);
18905
+ }
18906
+ }
18907
+ }
18908
+ }
18909
+ checkBreadcumbDocument(id, breadcumbs, callback) {
18910
+ for (let i = 0; i < this.treeControlNodeDocument.dataNodes.length; i++) {
18911
+ const tree = this.treeControlNodeDocument.dataNodes[i];
18912
+ if (id == tree.id) {
18913
+ breadcumbs = [...breadcumbs, tree];
18914
+ if (tree.parentId) {
18915
+ this.checkBreadcumbDocument(tree.parentId, breadcumbs, callback);
18916
+ }
18917
+ else {
18918
+ callback(breadcumbs);
18919
+ }
18920
+ }
18921
+ }
18922
+ }
18923
+ selectTreeControlNodeDocument(treeNodes) {
18924
+ this.treeControlNodeDocument = null;
18925
+ this.treeControlNodeDocument = treeNodes;
18926
+ this.treeControlNodeDocument.dataNodes = this.treeControlNodeDocument.dataNodes.filter(x => x.name !== null && x.name !== '');
18927
+ }
18928
+ selectTreeControlNodeProcess(treeNodes) {
18929
+ this.treeControlNodeProcess = null;
18930
+ this.treeControlNodeProcess = treeNodes;
18931
+ this.treeControlNodeProcess.dataNodes = this.treeControlNodeProcess.dataNodes.filter(x => x.name !== null && x.name !== '');
18932
+ }
18933
+ getStatusDocs(id) {
18934
+ return this.treeData2.filter(x => x.id === id)[0].statusId;
18935
+ }
18936
+ getStatusProcess(id) {
18937
+ return this.treeData1.filter(x => x.id === id)[0].statusId;
18938
+ }
18939
+ getOffsetHeight(element, includeMargin) {
18940
+ let elmHeight = 0, elmMargin = 0;
18941
+ elmHeight = element.offsetHeight;
18942
+ if (includeMargin) {
18943
+ const style = window.getComputedStyle(element);
18944
+ elmMargin = parseFloat(style.marginTop.replace('px', '')) + parseFloat(style.marginBottom.replace('px', ''));
18945
+ }
18946
+ return (elmHeight + elmMargin);
18947
+ }
18948
+ getItemChipName(item) {
18949
+ return item.itemName;
18950
+ }
18951
+ isEllipsisActive(e) {
18952
+ return e ? (e.clientWidth < e.scrollWidth) : false;
18953
+ }
18954
+ getNodeIcon(item) {
18955
+ switch (item.itemType) {
18956
+ case DataType$1.folder: {
18957
+ switch (item.levelType) {
18958
+ case DocumentNodeType$1.DepartmentFolder:
18959
+ return 'department_folder_outlined';
18960
+ case DocumentNodeType$1.RegionalFolder:
18961
+ return 'regional_folder_outlined';
18962
+ case DocumentNodeType$1.TopFolder:
18963
+ return 'enterprise_folder_outlined';
18964
+ case DocumentNodeType$1.Folder:
18965
+ return 'local_folder_outlined';
18966
+ default:
18967
+ return 'folder_outlined';
18968
+ }
18969
+ }
18970
+ case DataType$1.document: {
18971
+ switch (item.levelType) {
18972
+ case DocumentNodeType$1.DepartmentFolder:
18973
+ return 'document_department';
18974
+ case DocumentNodeType$1.RegionalFolder:
18975
+ return 'document_regional';
18976
+ case DocumentNodeType$1.TopFolder:
18977
+ return 'document_enterprise';
18978
+ case DocumentNodeType$1.Folder:
18979
+ return 'document_local';
18980
+ default:
18981
+ return 'document';
18982
+ }
18983
+ }
18984
+ case DataType$1.area:
18985
+ return 'process_area_outlined';
18986
+ case DataType$1.process:
18987
+ return 'process';
18988
+ default:
18989
+ return 'folder_outlined';
18990
+ }
18991
+ }
18992
+ getSearchOrder() {
18993
+ let searchTypes = Object.keys(this.dataType)
18994
+ .map(key => ({ value: this.dataType[key], key: key }));
18995
+ searchTypes = searchTypes.slice(searchTypes.length / 2);
18996
+ return searchTypes;
18997
+ }
18998
+ getTitle(type) {
18999
+ switch (type) {
19000
+ case DataType$1.process:
19001
+ return this.LANG.PROCESSES;
19002
+ case DataType$1.area:
19003
+ return this.LANG.PROCESS_AREA;
19004
+ case DataType$1.document:
19005
+ return this.LANG.DOCUMENTS;
19006
+ case DataType$1.folder:
19007
+ return this.LANG.FOLDER;
19008
+ }
19009
+ }
19010
+ getItemId(item) {
19011
+ if (item.itemType === this.dataType.process) {
19012
+ return `${this.LANG.PROCESS_ID}: ${item.itemNumberId}; ${item.statusName}`;
19013
+ }
19014
+ else if (item.itemType === this.dataType.document) {
19015
+ return `${this.LANG.DOCUMENT_ID}: ${item.itemNumberId}; ${item.statusName}`;
19016
+ }
19017
+ return null;
19018
+ }
19019
+ toggleSelectItem(node) {
19020
+ const selectedNode = this.checkedNodeList.find(x => (x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase()));
19021
+ if (selectedNode) {
19022
+ this.removeCheckedNodeList({
19023
+ id: selectedNode.id,
19024
+ name: node.itemName,
19025
+ parentId: selectedNode.parentId,
19026
+ hasChild: false,
19027
+ expandable: false,
19028
+ level: 0,
19029
+ disabled: false,
19030
+ });
19031
+ }
19032
+ else {
19033
+ this.selectRelated(node);
19034
+ }
19035
+ }
19036
+ isNodeSelected(node) {
19037
+ return this.checkedNodeList.filter(x => (x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase())).length > 0;
19038
+ }
19039
+ getChildrenOfFolder(node, type) {
19040
+ let item = new QMSProcessDocumentItem();
19041
+ item.id = node.id;
19042
+ item.itemType = type;
19043
+ item.itemName = node.name;
19044
+ item.levelType = node.levelType;
19045
+ this.selectedFolder = node;
19046
+ this.parentNodeSelected = new TreeFlatNode();
19047
+ this.parentNodeSelected = Object.assign({}, node);
19048
+ if (item.itemType == DataType$1.area)
19049
+ this.onExpandProcessArea.emit(item);
19050
+ else
19051
+ this.onExpandFolder.emit(item);
19052
+ }
19053
+ canShowSearchOption(moduleId) {
19054
+ return this.getModuleFilteredOptions(moduleId).length > 0;
19055
+ }
19056
+ selectNodeTreeEvent(node) {
19057
+ if (!node.itemType) {
19058
+ return;
19059
+ }
19060
+ const index = this.checkedNodeList.findIndex(x => x.id.toLowerCase() === node.id.toLowerCase()
19061
+ && (!node.parentId || x.parentId.toLowerCase() === node.parentId.toLowerCase()) && x.expandable == node.expandable);
19062
+ if (index >= 0) {
19063
+ this.removeCheckedNodeList(node);
19064
+ return;
19065
+ }
19066
+ else {
19067
+ this.addToChecklistNode({
19068
+ id: node.id,
19069
+ itemName: node.name,
19070
+ parentId: node.parentId,
19071
+ breadcumbs: [],
19072
+ itemType: node.itemType,
19073
+ statusName: '',
19074
+ parentName: ''
19075
+ });
19076
+ this.addSelectedData(node);
19077
+ }
19078
+ }
19079
+ getChildNodeSelectOne(listChildren) {
19080
+ this.listChildrenSelectOne = [];
19081
+ this.listChildrenSelectOne = listChildren;
19082
+ }
19083
+ getItemOfFolder(node, type) {
19084
+ if (this.splitView) {
19085
+ const parentTexts = this.elem.nativeElement.querySelectorAll('.text-node-parent');
19086
+ [].forEach.call(parentTexts, (el) => {
19087
+ el.classList.remove('active-item');
19088
+ });
19089
+ const itemElement = document.querySelectorAll(`#_${node.parentId ? node.parentId : ''}_${node.id}_${node.level}`);
19090
+ [].forEach.call(itemElement, (el) => {
19091
+ el.classList.add('active-item');
19092
+ });
19093
+ if (type === this.dataType.folder) {
19094
+ this.splitViewTitle = `${this.LANG.MESSAGE.DOCUMENTS_IN.toUpperCase()} "${node.name}"`;
19095
+ }
19096
+ else if (type === this.dataType.area) {
19097
+ this.splitViewTitle = `${this.LANG.MESSAGE.PROCESSES_IN.toUpperCase()} "${node.name}"`;
19098
+ }
19099
+ let item = new QMSProcessDocumentItem();
19100
+ item.id = node.id;
19101
+ item.itemType = type;
19102
+ item.itemName = node.name;
19103
+ item.levelType = node.levelType;
19104
+ this.selectedFolder = node;
19105
+ this.parentNodeSelected = new TreeFlatNode();
19106
+ this.parentNodeSelected = Object.assign({}, node);
19107
+ this.onSelectFolderItem.emit(item);
19108
+ }
19109
+ }
19110
+ }
19111
+ SelectProcessDocumentPopupComponent.decorators = [
19112
+ { type: Component, args: [{
19113
+ selector: 'qms-select-process-document',
19114
+ 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 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 <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-new\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.area)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeProcess($event)\"\r\n ></qms-tree-new>\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-new\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.folder)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeDocument($event)\"\r\n ></qms-tree-new>\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 ",
19115
+ encapsulation: ViewEncapsulation.None,
19116
+ 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}"]
19117
+ },] }
19118
+ ];
19119
+ SelectProcessDocumentPopupComponent.ctorParameters = () => [
19120
+ { type: ChangeDetectorRef },
19121
+ { type: TranslateLibraryService },
19122
+ { type: MatDialogRef },
19123
+ { type: QMSSelectProcessDocumentGlobalService },
19124
+ { type: MatIconRegistry },
19125
+ { type: DomSanitizer },
19126
+ { type: QMSIconRegistryService },
19127
+ { type: ElementRef },
19128
+ { type: SelectProcessDocumentPopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
19129
+ ];
19130
+ SelectProcessDocumentPopupComponent.propDecorators = {
19131
+ dataTrees: [{ type: ViewChildren, args: [NewTreeComponent, {},] }],
19132
+ autoComplete: [{ type: ViewChild, args: ['autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true },] }],
19133
+ onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
19134
+ };
19135
+
19136
+ class QMSSelectProcessDocumentModule {
19137
+ }
19138
+ QMSSelectProcessDocumentModule.decorators = [
19139
+ { type: NgModule, args: [{
19140
+ declarations: [
19141
+ SelectProcessDocumentPopupComponent
19142
+ ],
19143
+ imports: [
19144
+ CommonModule,
19145
+ MatTreeModule,
19146
+ MatIconModule,
19147
+ MatButtonModule,
19148
+ MatCheckboxModule,
19149
+ MatExpansionModule,
19150
+ MatAutocompleteModule,
19151
+ ReactiveFormsModule,
19152
+ ScrollingModule,
19153
+ MatCardModule,
19154
+ MatSidenavModule,
19155
+ MatListModule,
19156
+ SharedMaterialModule,
19157
+ QMSListModule,
19158
+ QmsAngularModule,
19159
+ QMSBreadcrumbModule,
19160
+ QMSAppIconModule,
19161
+ QMSTreeModule,
19162
+ QMSButtonModule,
19163
+ MatSlideToggleModule,
19164
+ QMSNewTreeModule$1
19165
+ ],
19166
+ exports: [
19167
+ SelectProcessDocumentPopupComponent
19168
+ ]
19169
+ },] }
19170
+ ];
19171
+
19172
+ class SelectedProcessDocumentItem {
19173
+ }
19174
+
17277
19175
  /*
17278
19176
  * Public API Surface of qms-angular
17279
19177
  */
@@ -17282,5 +19180,5 @@ class ISelectOneItem {
17282
19180
  * Generated bundle index. Do not edit.
17283
19181
  */
17284
19182
 
17285
- export { AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DateFormatPipe, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, FileErrorType, FlowChartConst, FlowchartViewMode, ISelectOneItem, IconModel, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PopupData, ProtocolType, ProtocolTypeName, QMSAnchor, QMSAppIconModule, QMSAttachmentListDirective, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropWDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSComment, QMSConfirmDialog, QMSDialogConfig, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTableAction, QMSTableActionBlock, QMSTableModule, QMSTextBlockDirective, QMSTextBlockLine, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, SelectConst, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectedOption, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, StepModel, TargetType, TargetTypeName, TestOnlyComponent, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeNode$1 as TreeNode, UploadErrorData, en, mixinColor, no, notExceedSize, requiredFileType, ɵ1, SharedMaterialModule as ɵa, QMSCKEditorTemplateComponent as ɵb, QMSCKEditorTreeService as ɵc, LinkAttachmentComponent as ɵd, QMSCKEditorTooltipComponent as ɵe, QMSCKEditorTooltip as ɵf, QMSCKEditorImageMapComponent as ɵg, QMSCKEditorImageMap as ɵh };
19183
+ export { AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DataType$1 as DataType, DateFormatPipe, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, FileErrorType, FlowChartConst, FlowchartViewMode, ISelectOneItem, IconModel, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NewTreeComponent, NewTreeModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PopupData, ProtocolType, ProtocolTypeName, QMSAnchor, QMSAppIconModule, QMSAttachmentListDirective, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropWDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSComment, QMSConfirmDialog, QMSDialogConfig, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSNewTreeModule, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTableAction, QMSTableActionBlock, QMSTableModule, QMSTextBlockDirective, QMSTextBlockLine, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedConst, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, SelectConst, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, StepModel, TargetType, TargetTypeName, TestOnlyComponent, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeNode$1 as TreeNode, UploadErrorData, en, mixinColor, no, notExceedSize, requiredFileType, ɵ1, SharedMaterialModule as ɵa, QMSCKEditorTemplateComponent as ɵb, QMSCKEditorTreeService as ɵc, LinkAttachmentComponent as ɵd, QMSCKEditorTooltipComponent as ɵe, QMSCKEditorTooltip as ɵf, QMSCKEditorImageMapComponent as ɵg, QMSCKEditorImageMap as ɵh };
17286
19184
  //# sourceMappingURL=qms-angular.js.map