qms-angular 1.1.45 → 1.1.47

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 (42) hide show
  1. package/bundles/qms-angular.umd.js +1703 -37
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/select-process-data/index.js +2 -0
  4. package/esm2015/lib/components/select-process-data/public-api.js +3 -0
  5. package/esm2015/lib/components/select-process-data/select-process-data.component.js +275 -0
  6. package/esm2015/lib/components/select-process-data/select-process-data.module.js +64 -0
  7. package/esm2015/lib/components/select-process-data-tree/index.js +2 -0
  8. package/esm2015/lib/components/select-process-data-tree/public-api.js +3 -0
  9. package/esm2015/lib/components/select-process-data-tree/select-process-data-tree.component.js +1134 -0
  10. package/esm2015/lib/components/select-process-data-tree/select-process-data-tree.module.js +64 -0
  11. package/esm2015/lib/model/en.js +2 -1
  12. package/esm2015/lib/model/no.js +2 -1
  13. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +7 -4
  14. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +5 -4
  15. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +2 -2
  16. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +2 -2
  17. package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-imagemap.model.js +1 -1
  18. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +2 -1
  19. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-connection.service.js +3 -3
  20. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +13 -10
  21. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +4 -4
  22. package/esm2015/public-api.js +3 -1
  23. package/fesm2015/qms-angular.js +1507 -38
  24. package/fesm2015/qms-angular.js.map +1 -1
  25. package/lib/components/select-process-data/index.d.ts +1 -0
  26. package/lib/components/select-process-data/public-api.d.ts +2 -0
  27. package/lib/components/select-process-data/select-process-data.component.d.ts +120 -0
  28. package/lib/components/select-process-data/select-process-data.module.d.ts +2 -0
  29. package/lib/components/select-process-data-tree/index.d.ts +1 -0
  30. package/lib/components/select-process-data-tree/public-api.d.ts +2 -0
  31. package/lib/components/select-process-data-tree/select-process-data-tree.component.d.ts +196 -0
  32. package/lib/components/select-process-data-tree/select-process-data-tree.module.d.ts +2 -0
  33. package/lib/model/en.d.ts +1 -0
  34. package/lib/model/no.d.ts +1 -0
  35. package/lib/qms-ckeditor-components/models/qms-ckeditor-imagemap.model.d.ts +1 -0
  36. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-connection.service.d.ts +1 -1
  37. package/package.json +1 -1
  38. package/public-api.d.ts +2 -0
  39. package/qms-angular.metadata.json +1 -1
  40. package/src/assets/jointjs/scss/rappid.scss +12 -1
  41. package/src/lib/components/select-process-data/select-process-data.component.scss +241 -0
  42. package/src/lib/components/select-process-data-tree/select-process-data-tree.component.scss +634 -0
@@ -559,6 +559,7 @@ const en = {
559
559
  "LINK_TO_FOLDER": "Link to folder",
560
560
  "LINK_TO_DEVIATION": "Link to deviation",
561
561
  "LINK_TO_CHECKLIST": "Link to checklist",
562
+ "LINK_TO_INTERCONNECTED_PROCESS": "Link to Interconnected Process"
562
563
  },
563
564
  "QMSCKEDITOR_MESSAGE": {
564
565
  "CONFIRM_DELETE_TEMPLATE": "Are you sure you want to delete this template?",
@@ -1117,6 +1118,7 @@ const no = {
1117
1118
  "LINK_TO_FOLDER": "Lenke til mappe",
1118
1119
  "LINK_TO_DEVIATION": "Link to avvik",
1119
1120
  "LINK_TO_CHECKLIST": "Link to sjekkliste",
1121
+ "LINK_TO_INTERCONNECTED_PROCESS": " Lenke til Sammenkoblet Prosess"
1120
1122
  },
1121
1123
  "QMSCKEDITOR_MESSAGE": {
1122
1124
  "CONFIRM_DELETE_TEMPLATE": "Er du sikker på at du vil slette denne malen?",
@@ -4238,7 +4240,7 @@ QMSContentChangesDirective.propDecorators = {
4238
4240
  qmsContentChanges: [{ type: Input }]
4239
4241
  };
4240
4242
 
4241
- const ɵ0$6 = { appearance: 'fill' }, ɵ1$1 = { color: 'none' };
4243
+ const ɵ0$7 = { appearance: 'fill' }, ɵ1$1 = { color: 'none' };
4242
4244
  class QmsAngularModule {
4243
4245
  }
4244
4246
  QmsAngularModule.decorators = [
@@ -4364,7 +4366,7 @@ QmsAngularModule.decorators = [
4364
4366
  QMSContentChangesDirective
4365
4367
  ],
4366
4368
  providers: [
4367
- { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: ɵ0$6 },
4369
+ { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: ɵ0$7 },
4368
4370
  { provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: ɵ1$1 },
4369
4371
  QMSUploadingFileGuard
4370
4372
  ],
@@ -4664,7 +4666,7 @@ QMSListItem.propDecorators = {
4664
4666
  _lines: [{ type: ContentChildren, args: [QMSListLine, { descendants: true },] }]
4665
4667
  };
4666
4668
 
4667
- const ɵ0$5 = {
4669
+ const ɵ0$6 = {
4668
4670
  expandedHeight: '*',
4669
4671
  collapsedHeight: '*'
4670
4672
  };
@@ -4706,7 +4708,7 @@ QMSListModule.decorators = [
4706
4708
  providers: [
4707
4709
  {
4708
4710
  provide: MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,
4709
- useValue: ɵ0$5
4711
+ useValue: ɵ0$6
4710
4712
  }
4711
4713
  ],
4712
4714
  schemas: [
@@ -11102,16 +11104,16 @@ class QMSCKEditorTreeService extends QMSCKEditorBaseService {
11102
11104
  return new Promise((resolve) => {
11103
11105
  let getSearchResult = {};
11104
11106
  if (getSearchOption.isGetProcess) {
11105
- getSearchResult[DataType.process.toString()] = this.searchProcess(keyword);
11107
+ getSearchResult[DataType.process.toString()] = this.searchProcess(keyword, false);
11106
11108
  }
11107
11109
  if (getSearchOption.isGetDocument || getSearchOption.isGetFolder) {
11108
11110
  getSearchResult[DataType.document.toString()] = this.searchDocument(keyword);
11109
11111
  }
11110
11112
  if (getSearchOption.isGetInterconnected) {
11111
- getSearchResult[DataType.processInterconnected.toString()] = this.searchProcessInterconnected(keyword);
11113
+ getSearchResult[DataType.processInterconnected.toString()] = this.searchProcessInterconnected(keyword, false);
11112
11114
  }
11113
11115
  if (getSearchOption.isGetArea) {
11114
- getSearchResult[DataType.area.toString()] = this.searchProcessArea(keyword);
11116
+ getSearchResult[DataType.area.toString()] = this.searchProcessArea(keyword, false);
11115
11117
  }
11116
11118
  if (!Object.keys(getSearchResult).length)
11117
11119
  resolve(null);
@@ -11485,7 +11487,7 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
11485
11487
  data.moduleId = ModuleType$1.documentProcess;
11486
11488
  data.moduleName = this.LANG.QMSCKEDITOR.DOCUMENT_PROCESS;
11487
11489
  if (!isOnlyDocument) {
11488
- const treeProcessData = yield this.treeService.getProcessAreaContents().toPromise();
11490
+ const treeProcessData = yield this.treeService.getProcessAreaContents('', true, this.data.enabledInterconnected).toPromise();
11489
11491
  data.treeData1 = (treeProcessData === null || treeProcessData === void 0 ? void 0 : treeProcessData.areas.map((x) => {
11490
11492
  return {
11491
11493
  id: x.id,
@@ -15914,7 +15916,7 @@ class BpmnService {
15914
15916
  const inputs = InspectorFunction$1.getInspectorConfiguration(bpmn2, LANG, shapeImages);
15915
15917
  let freeTransform = null;
15916
15918
  if (!toolbarConfiguration)
15917
- toolbarConfig = ToolbarFunction$1.getToolbarConfiguration(this.LANG);
15919
+ toolbarConfig = ToolbarFunction$1.getToolbarConfiguration(LANG);
15918
15920
  else
15919
15921
  toolbarConfig = toolbarConfiguration;
15920
15922
  /* QMS-1404: Customization: Add template list */
@@ -16769,33 +16771,36 @@ class BpmnService {
16769
16771
  let connectionName = '';
16770
16772
  if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.Activity) {
16771
16773
  list[i][`style`].cursor = 'pointer';
16772
- connectionName = this.LANG.BPMN.LINK_TO_ACTIVITY;
16774
+ connectionName = LANG.BPMN.LINK_TO_ACTIVITY;
16773
16775
  }
16774
16776
  else if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.Link) {
16775
- connectionName = this.LANG.BPMN.LINK;
16777
+ connectionName = LANG.BPMN.LINK;
16776
16778
  }
16777
16779
  else if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.DocumentOrProcess) {
16778
16780
  // eslint-disable-next-line default-case
16779
16781
  switch (shapeDetail.documentModel.relatedItems[0].itemType) {
16780
16782
  case RelatedItemType.document:
16781
- connectionName = this.LANG.BPMN.LINK_TO_DOCUMENT;
16783
+ connectionName = LANG.BPMN.LINK_TO_DOCUMENT;
16782
16784
  break;
16783
16785
  case RelatedItemType.process:
16784
- connectionName = this.LANG.BPMN.LINK_TO_PROCESS;
16786
+ connectionName = LANG.BPMN.LINK_TO_PROCESS;
16785
16787
  break;
16786
16788
  case RelatedItemType.area:
16787
- connectionName = this.LANG.BPMN.LINK_TO_AREA;
16789
+ connectionName = LANG.BPMN.LINK_TO_AREA;
16788
16790
  break;
16789
16791
  case RelatedItemType.handbook:
16790
- connectionName = this.LANG.BPMN.LINK_TO_FOLDER;
16792
+ connectionName = LANG.BPMN.LINK_TO_FOLDER;
16793
+ break;
16794
+ case RelatedItemType.processInterconnected:
16795
+ connectionName = LANG.BPMN.LINK_TO_INTERCONNECTED_PROCESS;
16791
16796
  break;
16792
16797
  }
16793
16798
  }
16794
16799
  else if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.Deviation) {
16795
- connectionName = this.LANG.BPMN.LINK_TO_DEVIATION;
16800
+ connectionName = LANG.BPMN.LINK_TO_DEVIATION;
16796
16801
  }
16797
16802
  else if (shapeDetail.connectionTypeId === ShapeFlowChartConnectionType.Checklist) {
16798
- connectionName = this.LANG.BPMN.LINK_TO_CHECKLIST;
16803
+ connectionName = LANG.BPMN.LINK_TO_CHECKLIST;
16799
16804
  }
16800
16805
  if (shapeDetail.connectionTypeId !== ShapeFlowChartConnectionType.Activity) {
16801
16806
  list[i][`style`].cursor = 'pointer';
@@ -17798,8 +17803,8 @@ class QMSCKEditorBPMNConnectionService extends QMSCKEditorBaseService {
17798
17803
  getProcessAreasRootDetails(isOnlyApproved) {
17799
17804
  return this.get('processAreas/GetProcessAreasRootDetails', { isOnlyApproved });
17800
17805
  }
17801
- getAreaChildrenNode(areaId, showProcessesInTree, isOnlyApproved) {
17802
- return this.get('processAreas/GetProcessNodes', { areaId, showProcessesInTree, isOnlyApproved });
17806
+ getAreaChildrenNode(areaId, showProcessesInTree, isOnlyApproved, isInterconnectedProcess = false) {
17807
+ return this.get('processAreas/GetProcessNodes', { areaId, showProcessesInTree, isOnlyApproved, isInterconnectedProcess });
17803
17808
  }
17804
17809
  getParentFolders(itemId, itemType) {
17805
17810
  return this.get('Items/GetParentFolders', { itemId, itemType });
@@ -18279,7 +18284,7 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
18279
18284
  onlyFolder: false
18280
18285
  };
18281
18286
  this.loadingRelatedData = true;
18282
- forkJoin(this.relatedService.getAreaChildrenNode(null, !this.splitView, false), this.relatedService.getFolderChildren(null, !this.splitView, false)).pipe(takeUntil(this.ngUnsubcribe))
18287
+ forkJoin(this.relatedService.getAreaChildrenNode(null, !this.splitView, false, this.data.enabledInterconnected), this.relatedService.getFolderChildren(null, !this.splitView, false)).pipe(takeUntil(this.ngUnsubcribe))
18283
18288
  .subscribe(([res1, res2]) => {
18284
18289
  if (res1) {
18285
18290
  const areas = res1.map((x) => {
@@ -18339,7 +18344,7 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
18339
18344
  }));
18340
18345
  dialogRef.componentInstance.onExpandProcessArea.subscribe((folder) => {
18341
18346
  this.relatedService
18342
- .getAreaChildrenNode(folder.id, !this.splitView, false)
18347
+ .getAreaChildrenNode(folder.id, !this.splitView, false, this.data.enabledInterconnected)
18343
18348
  .pipe(takeUntil(this.ngUnsubcribe))
18344
18349
  .subscribe((res) => {
18345
18350
  if (res) {
@@ -18351,7 +18356,8 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
18351
18356
  expandable: x.type === ProcessNodeType.Area,
18352
18357
  statusId: x.status,
18353
18358
  statusName: x.statusName,
18354
- displayId: x.type === ProcessNodeType.Area ? 0 : x.itemNumberId
18359
+ displayId: x.type === ProcessNodeType.Area ? 0 : x.itemNumberId,
18360
+ itemType: x.type === ProcessNodeType.Area ? DataType.area : x.type === ProcessNodeType.Process ? DataType.process : DataType.processInterconnected
18355
18361
  };
18356
18362
  });
18357
18363
  this.selectProcessDocumentGlobalService.setProcessAreaChildren(areas);
@@ -18496,6 +18502,8 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
18496
18502
  case DataType.folder:
18497
18503
  shapeModel.relatedItem.linkUrl = `/folder/${shapeModel.relatedItem.displayId}`;
18498
18504
  break;
18505
+ case DataType.processInterconnected:
18506
+ shapeModel.relatedItem.linkUrl = `/process-interconnected/${shapeModel.relatedItem.displayId}`;
18499
18507
  default:
18500
18508
  break;
18501
18509
  }
@@ -20895,10 +20903,11 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
20895
20903
  this.naturalImageWidth = this.imageMapData.imageWidth;
20896
20904
  this.initFormControl();
20897
20905
  this.initSvgIcons(iconRegistry, sanitizer);
20906
+ this.selectedTarget = data.defaultTargetNewWindow ? TargetTypeName.new : TargetTypeName.same;
20898
20907
  }
20899
20908
  initDefaultValues() {
20900
20909
  this.selectedLinkType = LinkType.url;
20901
- this.selectedTarget = TargetTypeName.new;
20910
+ this.selectedTarget = this.data.defaultTargetNewWindow ? TargetTypeName.new : TargetTypeName.same;
20902
20911
  this.selectedProtocol = ProtocolTypeName.http;
20903
20912
  this.url = '';
20904
20913
  this.processedUrl = '';
@@ -21139,7 +21148,7 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
21139
21148
  this.myImageMap.areas[this.currentAreaId].aalt = this.anchorText;
21140
21149
  }
21141
21150
  else {
21142
- this.myImageMap.areas[this.currentAreaId].atarget = this.selectedTarget || TargetTypeName.new;
21151
+ this.myImageMap.areas[this.currentAreaId].atarget = this.selectedTarget || (this.data.defaultTargetNewWindow ? TargetTypeName.new : TargetTypeName.same);
21143
21152
  this.myImageMap.areas[this.currentAreaId].aalt = this.advisoryTitle;
21144
21153
  }
21145
21154
  this.myImageMap.areas[this.currentAreaId].ahref = ahref;
@@ -21243,7 +21252,7 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
21243
21252
  data.moduleId = ModuleType$1.documentProcess;
21244
21253
  data.moduleName = this.LANG.QMSCKEDITOR.DOCUMENT_PROCESS;
21245
21254
  if (!isOnlyDocument) {
21246
- const treeProcessData = yield this.treeService.getProcessAreaContents().toPromise();
21255
+ const treeProcessData = yield this.treeService.getProcessAreaContents('', true, this.data.enabledInterconnected).toPromise();
21247
21256
  data.treeData1 = (treeProcessData === null || treeProcessData === void 0 ? void 0 : treeProcessData.areas.map((x) => {
21248
21257
  return {
21249
21258
  id: x.id,
@@ -21543,7 +21552,7 @@ class QMSCKEditorTooltipComponent extends QMSCKEditorBaseComponent {
21543
21552
  this.language = res;
21544
21553
  }
21545
21554
  });
21546
- this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration('heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,link,anchor,|,timestamp,|,removeformat', this.LANG, this.language);
21555
+ this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration('heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,removeformat', this.LANG, this.language);
21547
21556
  }
21548
21557
  ngAfterViewChecked() {
21549
21558
  this.cdr.detectChanges();
@@ -21970,7 +21979,7 @@ var app;
21970
21979
  }
21971
21980
  app.Link = Link;
21972
21981
  })(app || (app = {}));
21973
- const ɵ0$4 = function (flags) {
21982
+ const ɵ0$5 = function (flags) {
21974
21983
  if (this.hasFlag(flags, 'RENDER')) {
21975
21984
  this.render();
21976
21985
  }
@@ -22005,7 +22014,7 @@ const NavigatorElementView = joint.dia.ElementView.extend({
22005
22014
  position: ['TRANSFORM'],
22006
22015
  angle: ['TRANSFORM']
22007
22016
  },
22008
- confirmUpdate: ɵ0$4,
22017
+ confirmUpdate: ɵ0$5,
22009
22018
  render: ɵ1,
22010
22019
  update: ɵ2
22011
22020
  });
@@ -22035,7 +22044,7 @@ var appShapes = /*#__PURE__*/Object.freeze({
22035
22044
  erd: erd,
22036
22045
  uml: uml,
22037
22046
  org: org,
22038
- 'ɵ0': ɵ0$4,
22047
+ 'ɵ0': ɵ0$5,
22039
22048
  'ɵ1': ɵ1,
22040
22049
  'ɵ2': ɵ2
22041
22050
  });
@@ -28604,6 +28613,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
28604
28613
  data.editorContent = this.qmsckContentInput;
28605
28614
  data.linkJavaScriptLinksAllowed = this.qmsckData.linkJavaScriptLinksAllowed;
28606
28615
  data.enabledInterconnected = this.qmsckData.enabledInterconnected;
28616
+ data.defaultTargetNewWindow = this.qmsckData.defaultTargetNewWindow;
28607
28617
  const dialogTemplate = this.dialog.open(QMSCKEditorImageMapComponent, {
28608
28618
  data,
28609
28619
  disableClose: true,
@@ -30024,7 +30034,7 @@ QmsStepperComponent.propDecorators = {
30024
30034
  selectionChangeEvent: [{ type: Output }]
30025
30035
  };
30026
30036
 
30027
- const ɵ0$3 = { displayDefaultIndicatorType: false };
30037
+ const ɵ0$4 = { displayDefaultIndicatorType: false };
30028
30038
  class QmsStepperModule {
30029
30039
  }
30030
30040
  QmsStepperModule.decorators = [
@@ -30045,7 +30055,7 @@ QmsStepperModule.decorators = [
30045
30055
  ],
30046
30056
  providers: [{
30047
30057
  provide: STEPPER_GLOBAL_OPTIONS,
30048
- useValue: ɵ0$3
30058
+ useValue: ɵ0$4
30049
30059
  }]
30050
30060
  },] }
30051
30061
  ];
@@ -32002,7 +32012,7 @@ var PaginationSize;
32002
32012
  PaginationSize["large"] = "large";
32003
32013
  PaginationSize["mobile"] = "mobile";
32004
32014
  })(PaginationSize || (PaginationSize = {}));
32005
- const ɵ0$2 = { overlayPanelClass: 'customCDKpanel' };
32015
+ const ɵ0$3 = { overlayPanelClass: 'customCDKpanel' };
32006
32016
  class QMSPaginatorComponent {
32007
32017
  constructor(trans) {
32008
32018
  this.trans = trans;
@@ -32189,7 +32199,7 @@ QMSPaginatorComponent.decorators = [
32189
32199
  providers: [
32190
32200
  {
32191
32201
  provide: MAT_SELECT_CONFIG,
32192
- useValue: ɵ0$2,
32202
+ useValue: ɵ0$3,
32193
32203
  },
32194
32204
  ],
32195
32205
  styles: ["::ng-deep .customCDKpanel{transform:none!important}::ng-deep .qms-paginator{display:block}::ng-deep .qms-paginator .qms-paginator-outer-container{display:flex}::ng-deep .qms-paginator .mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}::ng-deep .qms-paginator .mat-paginator-container .qms-btn-icon{width:40px;height:40px;line-height:40px}::ng-deep .qms-paginator .mat-paginator-container .mat-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-right:24px;margin-bottom:21px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-family:Open Sans;font-weight:400;font-size:14px;line-height:22px;color:rgba(0,0,0,.6)}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:14px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-page-size .mat-form-field-flex{width:80px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-select-page-size .mat-form-field-flex{width:51px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0;padding-bottom:0;height:25px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{display:flex;align-items:center;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .selected{background-color:#e5eefb;color:#1954a9}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .qms-3d{font-weight:600;font-size:14px;line-height:22px;color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions button:not(.qms-btn-disabled) .qms-btn-icon-wrapper{color:#323232}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result{margin-bottom:16px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result span{font-family:Open Sans;font-style:normal;font-weight:400;font-size:12px;line-height:16px;color:rgba(0,0,0,.6)}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:12px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-page-size .mat-form-field-flex{width:80px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-select-page-size .mat-form-field-flex{width:51px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0;padding-bottom:0;height:25px}::ng-deep .qms-paginator .size-small .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mr-b-size-small{margin-bottom:17px!important}"]
@@ -33871,7 +33881,7 @@ const SelectDepartmentAnimationTrigger = [
33871
33881
  ])
33872
33882
  ];
33873
33883
 
33874
- const ɵ0$1 = {
33884
+ const ɵ0$2 = {
33875
33885
  clickAction: 'noop'
33876
33886
  };
33877
33887
  class SelectDepartmentComponent {
@@ -34111,7 +34121,7 @@ SelectDepartmentComponent.decorators = [
34111
34121
  providers: [
34112
34122
  {
34113
34123
  provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
34114
- useValue: ɵ0$1
34124
+ useValue: ɵ0$2
34115
34125
  }
34116
34126
  ],
34117
34127
  animations: [SelectDepartmentAnimationTrigger],
@@ -34311,7 +34321,7 @@ class QMSSelectAccessDialog {
34311
34321
  }
34312
34322
  }
34313
34323
 
34314
- const ɵ0 = {
34324
+ const ɵ0$1 = {
34315
34325
  clickAction: 'noop'
34316
34326
  };
34317
34327
  class QMSSelectAccessDialogComponent {
@@ -34863,7 +34873,7 @@ QMSSelectAccessDialogComponent.decorators = [
34863
34873
  providers: [
34864
34874
  {
34865
34875
  provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
34866
- useValue: ɵ0
34876
+ useValue: ɵ0$1
34867
34877
  }
34868
34878
  ],
34869
34879
  encapsulation: ViewEncapsulation.None,
@@ -34926,6 +34936,1465 @@ QMSSelectAccessDialogModule.decorators = [
34926
34936
  class FilterPersonModel {
34927
34937
  }
34928
34938
 
34939
+ class SelectProcessDataTreeComponent {
34940
+ constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans, overlay, viewContainerRef, treeDepartmentService) {
34941
+ this.cdRef = cdRef;
34942
+ this.domSanitizer = domSanitizer;
34943
+ this.appIconService = appIconService;
34944
+ this.iconRegistry = iconRegistry;
34945
+ this.eleRef = eleRef;
34946
+ this.trans = trans;
34947
+ this.overlay = overlay;
34948
+ this.viewContainerRef = viewContainerRef;
34949
+ this.treeDepartmentService = treeDepartmentService;
34950
+ this.spinnerArr = new Array(12).fill(0);
34951
+ this.arrSkeleton = new Array(6).fill(0);
34952
+ this.height = '50vh';
34953
+ this.config = new QMSSelectDepartmentTreeConfig();
34954
+ this.isIncludeChildren = false;
34955
+ this.onSearchEvent = new EventEmitter();
34956
+ this.onPagingSearchEvent = new EventEmitter();
34957
+ this.onValueChangeEvent = new EventEmitter();
34958
+ this.selectionNodeChangeEvent = new EventEmitter();
34959
+ this.onCheckNodeEvent = new EventEmitter();
34960
+ this.onExpandNodeEvent = new EventEmitter();
34961
+ this.onLoadMoreEvent = new EventEmitter();
34962
+ this.onCheckItemSearchEvent = new EventEmitter();
34963
+ this.onCheckAllItemSearchEvent = new EventEmitter();
34964
+ this.toggleIncludeChildEvent = new EventEmitter();
34965
+ this.MODE_VIEW_ENUM = ModeDepartmentTreeeViewEnum;
34966
+ this.ITEM_SIZE = 50;
34967
+ this.ngUnsubscribe = new Subject();
34968
+ this.resultSearchSelected = [];
34969
+ this.resultSelected = [];
34970
+ this.getDataTree$ = new BehaviorSubject([]);
34971
+ this.searchDepartment$ = new BehaviorSubject(new QMSDepartmentPagingModel());
34972
+ this.resultSearch = [];
34973
+ this.getIndexView$ = new BehaviorSubject(0);
34974
+ this.scrollToNodeEvent$ = new Subject();
34975
+ this.getActiveNodeEvent$ = new Subject();
34976
+ this.activeNode = '';
34977
+ this.PAGINATION_SIZE = PaginationSize;
34978
+ this.PAGE_SIZE_OPTION = [5, 10, 15, 20, 25, 100];
34979
+ this.CURRENT_PAGESIZE = 10;
34980
+ this.nestedTreeNodeMap = new Map();
34981
+ this.flatTreeNodeMap = new Map();
34982
+ this.checkListSelection = new SelectionModel(true);
34983
+ this.checkListSelectionSearch = new SelectionModel(true);
34984
+ this._selectedList = [];
34985
+ this.selectedListAfterDataNodeChange$ = new Subject();
34986
+ this.formSearchControl = new FormControl('');
34987
+ this.getLoading$ = new BehaviorSubject(false);
34988
+ this.getLoadingMore$ = new BehaviorSubject(true);
34989
+ this.untilDestroyLoadMore$ = new Subject();
34990
+ this.onBeforeInitNodeSelected$ = new Subject();
34991
+ this.textSearchSubject$ = new BehaviorSubject('');
34992
+ this.itemIconType = ItemIconType;
34993
+ this._transformer = (node, level) => {
34994
+ const flatNode = this.convertToFlatNode(node) || new QMSFlatNodeTree();
34995
+ flatNode.id = node.id;
34996
+ flatNode.name = node.name;
34997
+ flatNode.expandable = (node.children && node.children.length > 0) || (!!node.childCount) || node.expandable;
34998
+ flatNode.level = level;
34999
+ flatNode.parentId = node.parentId;
35000
+ flatNode.markedGetChildren = node.children.length > 0;
35001
+ flatNode.itemIcon = node.itemIcon;
35002
+ flatNode.itemIconSvg = node.itemIconSvg;
35003
+ flatNode.isFile = node.isFile;
35004
+ flatNode.disabled = node.disabled;
35005
+ flatNode.isGroup = node.isGroup;
35006
+ flatNode.groupId = node.groupId;
35007
+ flatNode.externalName = node.externalName;
35008
+ flatNode.childCount = node.childCount;
35009
+ flatNode.selectedChildCount = node.selectedChildCount;
35010
+ flatNode.markedGetChildCountRecurrsive = node.markedGetChildCountRecurrsive;
35011
+ flatNode.isIncludeChildWhenChecked = node.isIncludeChildWhenChecked;
35012
+ this.flatTreeNodeMap.set(flatNode, node);
35013
+ this.nestedTreeNodeMap.set(node, flatNode);
35014
+ return flatNode;
35015
+ };
35016
+ this.getLevel = (node) => node === null || node === void 0 ? void 0 : node.level;
35017
+ this._getChild = (node) => node.children;
35018
+ this.isExpandable = (node) => node.expandable;
35019
+ this.hasChild = (_, node) => node.expandable;
35020
+ this._handlingLazyObject = {
35021
+ checkAllSearch: false,
35022
+ checkItemSearch: false,
35023
+ checkNode: false,
35024
+ expand: false
35025
+ };
35026
+ // Init tree data
35027
+ this.getDataTree$
35028
+ .pipe(takeUntil(this.ngUnsubscribe))
35029
+ .subscribe(data => {
35030
+ if (!this.dataSource)
35031
+ return;
35032
+ this.dataSource.data = data;
35033
+ this.cdRef.detectChanges();
35034
+ });
35035
+ // Register icon
35036
+ appIconService.registerProcessIcon(iconRegistry, domSanitizer);
35037
+ appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);
35038
+ appIconService.registerDocumentIcon(iconRegistry, domSanitizer);
35039
+ appIconService.registerFolderIcon(iconRegistry, domSanitizer);
35040
+ appIconService.registerDeviationIcon(iconRegistry, domSanitizer);
35041
+ appIconService.registerChecklistIcon(iconRegistry, domSanitizer);
35042
+ appIconService.registerRiskIcon(iconRegistry, domSanitizer);
35043
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
35044
+ if (res) {
35045
+ this.LANG = this.trans.getObjectLang(res);
35046
+ }
35047
+ });
35048
+ this._handleSearchEvent();
35049
+ this._handleActiveNodeEvent();
35050
+ this._handleItemSelectionChanged();
35051
+ this.getLoading$.pipe(takeUntil(this.ngUnsubscribe), tap(res => {
35052
+ res ? this.formSearchControl.disable() : this.formSearchControl.enable();
35053
+ })).subscribe();
35054
+ }
35055
+ set rowsSkeleton(value) {
35056
+ this.arrSkeleton = new Array(value).fill(0);
35057
+ }
35058
+ get departmentRoots() {
35059
+ if (!this.treeControl)
35060
+ return;
35061
+ return this.treeControl.dataNodes.filter(node => node.level === 0);
35062
+ }
35063
+ get isAllDepartmentSelected() {
35064
+ return !!this.treeControl && this.treeControl.dataNodes.every(node => this.isSelectedNode(node));
35065
+ }
35066
+ get isIndeterminateCheckboxAllTree() {
35067
+ return !this.isAllDepartmentSelected && this.checkListSelection.selected.length > 0;
35068
+ }
35069
+ get currentTreeData() {
35070
+ return this.getDataTree$.getValue();
35071
+ }
35072
+ get isSelectAllResultSearch() {
35073
+ return this.resultSearch.length && this.resultSearch.every(x => this.checkListSelectionSearch.isSelected(x));
35074
+ }
35075
+ get indeterminateSearchResult() {
35076
+ return !this.isSelectAllResultSearch && !!this.resultSearch.length && this.resultSearch.some(x => this.checkListSelectionSearch.isSelected(x));
35077
+ }
35078
+ ngAfterContentInit() {
35079
+ this.getLoadingMore$.next(false);
35080
+ this.cdRef.detectChanges();
35081
+ }
35082
+ ngAfterViewInit() {
35083
+ this.getIndexView$.pipe(takeUntil(merge(this.ngUnsubscribe, this.untilDestroyLoadMore$)), tap(_ => this.getLoadingMore$.next(this.config.lazy)), delay(700), tap(value => {
35084
+ this.getLoadingMore$.next(false);
35085
+ if (value === 0)
35086
+ this.cdkVirtualScrollViewport &&
35087
+ this.cdkVirtualScrollViewport.scrolledIndexChange
35088
+ .pipe(takeUntil(this.untilDestroyLoadMore$), map(_ => this.cdkVirtualScrollViewport.measureScrollOffset('bottom')), pairwise(), filter(([x1, x2]) => x1 > x2 && x2 < 140), throttleTime(200), tap(_ => {
35089
+ if (this.getLoadingMore$.value)
35090
+ return;
35091
+ if (!this.config.lazy) {
35092
+ this.onDestroyLoadMore();
35093
+ return;
35094
+ }
35095
+ this.onLoadMoreEvent.emit();
35096
+ this.getLoadingMore$.next(true);
35097
+ }))
35098
+ .subscribe();
35099
+ })).subscribe();
35100
+ this.onBeforeInitNodeSelected$.pipe(takeUntil(this.ngUnsubscribe), tap(_ => {
35101
+ this._handleListSelected();
35102
+ this.getLoadingMore$.next(false);
35103
+ })).subscribe();
35104
+ this.cdRef.detectChanges();
35105
+ }
35106
+ ngOnInit() {
35107
+ this.isIncludeChildren = this.config.isIncludeChildren;
35108
+ this._initTreeData();
35109
+ if (!this.config.lazy) {
35110
+ this._handleListSelected();
35111
+ return;
35112
+ }
35113
+ //action for lazy config
35114
+ this._initListSelected();
35115
+ this._handleAfterDataNodeChangeEvent();
35116
+ this.selectedListAfterDataNodeChange$.next(this.treeControl.dataNodes);
35117
+ }
35118
+ ngOnDestroy() {
35119
+ this.ngUnsubscribe.next();
35120
+ this.ngUnsubscribe.complete();
35121
+ }
35122
+ onDestroyLoadMore() {
35123
+ this.untilDestroyLoadMore$.next();
35124
+ this.untilDestroyLoadMore$.complete();
35125
+ }
35126
+ _initTreeData() {
35127
+ this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
35128
+ this.treeFlattener = new MatTreeFlattener(this._transformer, this.getLevel, this.isExpandable, this._getChild);
35129
+ this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
35130
+ const _treeDataInput = _.cloneDeep(this.config.treeData);
35131
+ if (!_treeDataInput.length)
35132
+ return;
35133
+ const treeData = this.treeDepartmentService.convertToTreeData(_treeDataInput);
35134
+ this.updateDataTree(treeData);
35135
+ this.getLoading$.next(false);
35136
+ }
35137
+ _handleListSelected() {
35138
+ if (!this.config.selectedList.length)
35139
+ return;
35140
+ const selectedList = this.config.selectedList.sort((x, y) => x.isGroup ? -1 : y.isGroup ? 1 : 0);
35141
+ for (let i = 0; i < selectedList.length; i++) {
35142
+ const item = selectedList[i];
35143
+ const node = this.getNodeById(item.id);
35144
+ if (node) {
35145
+ const nestedNode = this.convertToNestedNode(node);
35146
+ nestedNode.isGroup = item.isGroup;
35147
+ nestedNode.groupId = item.groupId;
35148
+ this.checkListSelection.select(node);
35149
+ this.handleCheckNode(node);
35150
+ this.onExpandAllParent(node);
35151
+ }
35152
+ }
35153
+ this.cdRef.detectChanges();
35154
+ }
35155
+ _initListSelected() {
35156
+ this._selectedList = this.treeDepartmentService.convertToTreeData(this.config.selectedList);
35157
+ //Convert array selectedList into nested array as 1 level form
35158
+ const indexRemove = [];
35159
+ for (let i = 0; i < this._selectedList.length; i++) {
35160
+ const item = this._selectedList[i];
35161
+ const result = this.treeDepartmentService.getDescendantsOfNode(item);
35162
+ item.children = result;
35163
+ const index = this._selectedList.findIndex(x => result.some(x1 => x1.id === x.id));
35164
+ if (index < 0)
35165
+ continue;
35166
+ indexRemove.push(index);
35167
+ }
35168
+ this._selectedList = this._selectedList.filter((_, index) => !indexRemove.includes(index));
35169
+ this.resultSelected.push(...this._selectedList);
35170
+ this.onValueChangeEvent.emit(this.resultSelected);
35171
+ }
35172
+ // handle selected list when data nodes change
35173
+ _handleAfterDataNodeChangeEvent() {
35174
+ if (this.config.lazy) {
35175
+ this.selectedListAfterDataNodeChange$
35176
+ .pipe(takeUntil(this.ngUnsubscribe), tap(data => {
35177
+ if (!this._selectedList.length)
35178
+ return;
35179
+ this._selectedList.forEach(item => {
35180
+ if (!item.parentId) {
35181
+ const node = this.getNodeById(item.id);
35182
+ if (node)
35183
+ item.parentId = node.parentId;
35184
+ }
35185
+ });
35186
+ for (let i = 0; i < data.length; i++) {
35187
+ const element = data[i];
35188
+ const item = this._selectedList.find(x => { var _a; return x.id === element.id || ((_a = x.children) === null || _a === void 0 ? void 0 : _a.some(x1 => x1.id === element.id)); });
35189
+ if (!!item) {
35190
+ const node = this.getNodeById(item.id);
35191
+ if (!node)
35192
+ continue;
35193
+ const nestedNode = this.convertToNestedNode(node);
35194
+ nestedNode.isGroup = item.isGroup;
35195
+ nestedNode.groupId = item.groupId;
35196
+ this.checkListSelection.select(node);
35197
+ const descendants = this.getListChildrenOfNode(node);
35198
+ if (node.markedGetChildren) {
35199
+ if (!item.children.length)
35200
+ continue;
35201
+ const itemSelect = descendants.filter(x => item.children.map(x1 => x1.id).includes(x.id));
35202
+ if (!itemSelect.length)
35203
+ continue;
35204
+ itemSelect.forEach(_item => {
35205
+ const _nestedNode = this.convertToNestedNode(_item);
35206
+ _nestedNode.groupId = item.children[0].groupId;
35207
+ _nestedNode.isGroup = false;
35208
+ });
35209
+ this.checkListSelection.select(...itemSelect);
35210
+ }
35211
+ }
35212
+ }
35213
+ }))
35214
+ .subscribe();
35215
+ }
35216
+ }
35217
+ /**
35218
+ * This method use for lazy mode, do some thing before init list node selected
35219
+ * @param callback
35220
+ * @returns
35221
+ */
35222
+ onBeforeInitNodeSelected(callback) {
35223
+ return __awaiter(this, void 0, void 0, function* () {
35224
+ if (!this.config.lazy)
35225
+ return;
35226
+ this.getLoadingMore$.next(true);
35227
+ if (!!callback)
35228
+ yield callback();
35229
+ this.onBeforeInitNodeSelected$.next();
35230
+ });
35231
+ }
35232
+ //Handle item selection changed
35233
+ _handleItemSelectionChanged() {
35234
+ this.checkListSelection.changed
35235
+ .pipe(takeUntil(this.ngUnsubscribe))
35236
+ .subscribe(({ added, removed }) => {
35237
+ const checkExistInResult = (node) => this.resultSelected.findIndex(x => x.id === node.id) > -1;
35238
+ if (added.length) {
35239
+ added.forEach(node => {
35240
+ const nestedNode = _.cloneDeep(this.convertToNestedNode(node));
35241
+ nestedNode.children = [];
35242
+ if (!this.config.lazy)
35243
+ nestedNode.childCount = this.getListChildrenOfNode(node).length;
35244
+ const existGroup = _.cloneDeep(this.getAllParentNode(node)
35245
+ .map(item => this.convertToNestedNode(item))
35246
+ .reverse()
35247
+ .find(x => x.isGroup));
35248
+ if (!!existGroup) {
35249
+ const flatExistGroup = this.getNodeById(existGroup.id);
35250
+ nestedNode.groupId = existGroup.id;
35251
+ const groupResult = this.resultSelected.find(x => x.id === existGroup.id);
35252
+ if (groupResult && !groupResult.children.some(x => x.id === nestedNode.id)) {
35253
+ groupResult.isGroup = existGroup.isGroup;
35254
+ groupResult.children.push(nestedNode);
35255
+ }
35256
+ this._onSelectionNodeChangeEvent('updated', [groupResult]);
35257
+ // re-filter result selected
35258
+ this.resultSelected = this.resultSelected.filter(item => !this.getListChildrenOfNode(flatExistGroup).map(x => x.id).includes(item.id));
35259
+ return;
35260
+ }
35261
+ if (checkExistInResult(node))
35262
+ return;
35263
+ this.resultSelected.push(nestedNode);
35264
+ this._onSelectionNodeChangeEvent('added', [nestedNode]);
35265
+ });
35266
+ }
35267
+ if (removed.length) {
35268
+ removed.forEach(node => {
35269
+ const nestedNode = this.convertToNestedNode(node);
35270
+ const children = this.getListChildrenOfNode(node);
35271
+ if (nestedNode.isGroup) {
35272
+ const _item = this.resultSelected.find(x => x.id === node.id);
35273
+ if (!_item)
35274
+ return;
35275
+ children.forEach(item => item.groupId = null);
35276
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
35277
+ this._onSelectionNodeChangeEvent('removed', [_item]);
35278
+ return;
35279
+ }
35280
+ const group = this.resultSelected.find(x => x.id === nestedNode.groupId);
35281
+ if (!group) {
35282
+ const _item = this.resultSelected.find(x => x.id === node.id);
35283
+ if (!_item)
35284
+ return;
35285
+ this.resultSelected.splice(this.resultSelected.indexOf(_item), 1);
35286
+ this._onSelectionNodeChangeEvent('removed', [_item]);
35287
+ return;
35288
+ }
35289
+ const childNodes = this.getListChildrenOfNode(node).concat(node);
35290
+ for (let i = 0; i < childNodes.length; i++) {
35291
+ const item = childNodes[i];
35292
+ const _node = this.getNodeById(item.id);
35293
+ if (group.children.some(x => x.id === _node.id) && !this.isSelectedNode(_node)) {
35294
+ const _item = group.children.find(x => x.id === item.id);
35295
+ if (!_item)
35296
+ return;
35297
+ group.children.splice(group.children.indexOf(_item), 1);
35298
+ this._onSelectionNodeChangeEvent('updated', [group]);
35299
+ }
35300
+ }
35301
+ });
35302
+ }
35303
+ this._mapToResultSearch();
35304
+ this.onValueChangeEvent.emit(this.resultSelected);
35305
+ });
35306
+ }
35307
+ _onSelectionNodeChangeEvent(state, data) {
35308
+ switch (state) {
35309
+ case 'removed':
35310
+ this.selectionNodeChangeEvent.emit({
35311
+ removed: data,
35312
+ added: [],
35313
+ updated: [],
35314
+ source: new SelectionModel(true, this.resultSelected)
35315
+ });
35316
+ break;
35317
+ case 'updated':
35318
+ this.selectionNodeChangeEvent.emit({
35319
+ removed: [],
35320
+ added: [],
35321
+ updated: data,
35322
+ source: new SelectionModel(true, this.resultSelected)
35323
+ });
35324
+ break;
35325
+ case 'added':
35326
+ this.selectionNodeChangeEvent.emit({
35327
+ removed: [],
35328
+ added: data,
35329
+ updated: [],
35330
+ source: new SelectionModel(true, this.resultSelected)
35331
+ });
35332
+ break;
35333
+ default:
35334
+ return;
35335
+ }
35336
+ }
35337
+ _handleSearchEvent() {
35338
+ this.searchDepartment$
35339
+ .pipe(takeUntil(this.ngUnsubscribe))
35340
+ .subscribe(result => {
35341
+ this.resultSearch = [];
35342
+ this.CURRENT_PAGESIZE = result.pageSize;
35343
+ this.getLoading$.next(false);
35344
+ if (result && result.length) {
35345
+ result.data.forEach(item => {
35346
+ var _a;
35347
+ const node = this.getNodeById(item.id);
35348
+ let location = [];
35349
+ if (this.config.lazy) {
35350
+ location = ((_a = item.path) === null || _a === void 0 ? void 0 : _a.map(x => ({ name: x }))) || [];
35351
+ }
35352
+ else {
35353
+ const parents = node ? this.getAllParentNode(node) : [];
35354
+ location = parents.length ? parents.map((x) => ({
35355
+ id: x.id,
35356
+ name: x.name,
35357
+ })).reverse() : [];
35358
+ }
35359
+ this.resultSearch.push(Object.assign(Object.assign({}, item), { disabled: !this.config.lazy && this.config.checkSearchMappingTree && !node, location: [
35360
+ ...location,
35361
+ {
35362
+ id: item.id,
35363
+ name: item.name,
35364
+ }
35365
+ ], isLoading: false }));
35366
+ });
35367
+ this.textSearchSubject$.next(this.formSearchControl.value);
35368
+ if (this.config.clearCheckListSelectionSearchWhenHandle)
35369
+ this.checkListSelectionSearch.clear();
35370
+ this._mapToResultSearch();
35371
+ this.setIndexView(1);
35372
+ }
35373
+ });
35374
+ }
35375
+ _handleActiveNodeEvent() {
35376
+ this.scrollToNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap((val) => {
35377
+ const delayTiming = this.getIndexView$.value === 1 ? 700 : 0;
35378
+ this.setIndexView(0);
35379
+ return of(val).pipe(delay(delayTiming), takeUntil(this.ngUnsubscribe));
35380
+ }))
35381
+ .subscribe(res => {
35382
+ this.onScrollIntoNode(res);
35383
+ });
35384
+ this.getActiveNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap(val => {
35385
+ this.activeNode = val;
35386
+ return timer(1500);
35387
+ }))
35388
+ .subscribe(_ => {
35389
+ this.activeNode = '';
35390
+ });
35391
+ }
35392
+ updateDataTree(data) {
35393
+ this.getDataTree$.next(data);
35394
+ }
35395
+ setLoadingStateNode(isLoading, nodeId) {
35396
+ const node = this.getNodeById(nodeId);
35397
+ if (!node)
35398
+ return;
35399
+ node.isLoading = isLoading;
35400
+ this.checkLoadingOfParent(node);
35401
+ }
35402
+ onExpandNode(node) {
35403
+ if (!(node === null || node === void 0 ? void 0 : node.expandable))
35404
+ return;
35405
+ this.treeControl.toggle(node);
35406
+ if (this.config.lazy && this.treeControl.isExpanded(node) && !node.markedGetChildren) {
35407
+ node.isLoading = true;
35408
+ this.checkLoadingOfParent(node);
35409
+ }
35410
+ this.onExpandNodeEvent.emit(node);
35411
+ }
35412
+ onOptionSearchSelected(value) {
35413
+ const flatNode = this.getNodeById(value.id);
35414
+ if (!flatNode)
35415
+ return;
35416
+ this.checkListSelection.select(flatNode);
35417
+ this.handleCheckNode(flatNode);
35418
+ this.onScrollIntoNode(flatNode.id);
35419
+ }
35420
+ onCheckAllRootTreeNode() {
35421
+ if (this.config.isSelectOne || !this.config.activeSelectAllNode)
35422
+ return;
35423
+ if (this.isAllDepartmentSelected) {
35424
+ this.treeControl.dataNodes.forEach(node => {
35425
+ const nestedNode = this.convertToNestedNode(node);
35426
+ nestedNode.isGroup = false;
35427
+ });
35428
+ this.checkListSelection.deselect(...this.treeControl.dataNodes);
35429
+ return;
35430
+ }
35431
+ ;
35432
+ this.departmentRoots.forEach(node => {
35433
+ if (!this.isIncludeChildren) {
35434
+ this.treeControl.dataNodes.filter(x => !this.isSelectedNode(x))
35435
+ .forEach(x => this.onCheckNode(x));
35436
+ return;
35437
+ }
35438
+ if (!this.isSelectedNode(node)) {
35439
+ this.onCheckNode(node);
35440
+ return;
35441
+ }
35442
+ const nestedNode = this.convertToNestedNode(node);
35443
+ if (nestedNode.isGroup && this.isCheckAll(node) || !node.expandable)
35444
+ return;
35445
+ this.getListChildrenOfNode(node)
35446
+ .filter(item => !this.isSelectedNode(item))
35447
+ .forEach(item => !this.isSelectedNode(item) && this.onCheckNode(item));
35448
+ if (!nestedNode.isGroup) {
35449
+ this.checkListSelection.deselect(node);
35450
+ this.onCheckNode(node);
35451
+ return;
35452
+ }
35453
+ });
35454
+ }
35455
+ onCheckNode(node, fireEventCheckNode = true) {
35456
+ if (!node)
35457
+ return;
35458
+ if (fireEventCheckNode)
35459
+ this.onCheckNodeEvent.emit(node);
35460
+ this.checkListSelection.toggle(node);
35461
+ if (this.config.isSelectOne) {
35462
+ this._handleSelectOne(node.id);
35463
+ return;
35464
+ }
35465
+ if (this.config.lazy && node.expandable && !node.markedGetChildren && fireEventCheckNode) {
35466
+ if (!this._handlingLazyObject.checkNode) {
35467
+ this.handleCheckNode(node);
35468
+ return;
35469
+ }
35470
+ node.isLoading = this.isIncludeChildren;
35471
+ const children = this.getListChildrenOfNode(node).filter(x => x.expandable && !x.markedGetChildren);
35472
+ children.forEach(x => x.isLoading = this.isIncludeChildren);
35473
+ return;
35474
+ }
35475
+ this.handleCheckNode(node);
35476
+ }
35477
+ _handleSelectOne(nodeId) {
35478
+ const nodeTree = this.treeControl.dataNodes.find(node => node.id === nodeId);
35479
+ const reSelectSelection = (...params) => {
35480
+ params.forEach(selection => {
35481
+ const selected = selection.selected.filter(x => x.id !== nodeId);
35482
+ selection.deselect(...selected);
35483
+ });
35484
+ };
35485
+ if (!nodeTree) {
35486
+ const item = this.checkListSelectionSearch.selected.find(x => x.id === nodeId);
35487
+ if (!item)
35488
+ return;
35489
+ this.resultSelected = [{
35490
+ id: item.id,
35491
+ parentId: item.parentId,
35492
+ name: item.name,
35493
+ externalName: item.externalName,
35494
+ children: []
35495
+ }];
35496
+ this._selectedList = [...this.resultSelected];
35497
+ this.onValueChangeEvent.emit(this.resultSelected);
35498
+ reSelectSelection(this.checkListSelection, this.checkListSelectionSearch);
35499
+ this.cdRef.detectChanges();
35500
+ return;
35501
+ }
35502
+ if (this.isSelectedNode(nodeTree)) {
35503
+ const nestedNode = this.convertToNestedNode(this.checkListSelection.selected[0]);
35504
+ this._selectedList = [...this.resultSelected];
35505
+ reSelectSelection(this.checkListSelection, this.checkListSelectionSearch);
35506
+ return;
35507
+ }
35508
+ this.resultSelected = [];
35509
+ this._selectedList = [];
35510
+ }
35511
+ onExpandAllParent(node) {
35512
+ const parents = this.getAllParentNode(node);
35513
+ if (parents === null || parents === void 0 ? void 0 : parents.length) {
35514
+ parents.forEach(parent => {
35515
+ if (!this.treeControl.isExpanded(parent))
35516
+ this.onExpandNode(parent);
35517
+ });
35518
+ }
35519
+ }
35520
+ onRemoveNode(nodeId) {
35521
+ const flatNode = this.getNodeById(nodeId);
35522
+ if (!flatNode) {
35523
+ const item = this._selectedList.find(x => x.id === nodeId);
35524
+ if (!item)
35525
+ return;
35526
+ this._updateSelectedList('remove', item, this._selectedList, this.resultSelected);
35527
+ this.cdRef.detectChanges();
35528
+ return;
35529
+ }
35530
+ this.checkListSelection.deselect(flatNode);
35531
+ this.handleCheckNode(flatNode);
35532
+ }
35533
+ onSelectNode(...nodeIds) {
35534
+ const nodes = this.treeControl.dataNodes.filter(x => nodeIds.includes(x.id));
35535
+ if (!nodes.length)
35536
+ return;
35537
+ this.checkListSelection.select(...nodes);
35538
+ }
35539
+ onDeselectNode(...nodeIds) {
35540
+ const nodes = this.treeControl.dataNodes.filter(x => nodeIds.includes(x.id));
35541
+ if (!nodes.length)
35542
+ return;
35543
+ this.checkListSelection.deselect(...nodes);
35544
+ }
35545
+ /**
35546
+ * Toggles a value between selected and deselected.
35547
+ * @param nodeId :id of node
35548
+ */
35549
+ onToggleNode(nodeId) {
35550
+ const node = this.getNodeById(nodeId);
35551
+ if (!node)
35552
+ return;
35553
+ this.checkListSelection.toggle(node);
35554
+ }
35555
+ isIndeterminate(node) {
35556
+ const childSelected = this.getListChildrenOfNode(node).filter(item => this.isSelectedNode(item));
35557
+ return (!!childSelected.length && !this.isSelectedNode(node));
35558
+ }
35559
+ isCheckAll(node) {
35560
+ const listCheck = [...this.getListChildrenOfNode(node), node];
35561
+ return listCheck.every(item => this.isSelectedNode(item));
35562
+ }
35563
+ /**
35564
+ * This function handle check node of tree
35565
+ * @param node node of tree
35566
+ * @param callback do something before handle check node
35567
+ * @returns
35568
+ */
35569
+ onBeforeCheckNode(node, callback) {
35570
+ return __awaiter(this, void 0, void 0, function* () {
35571
+ this._handlingLazyObject.checkNode = true;
35572
+ if (!!callback)
35573
+ yield callback(node);
35574
+ this.handleCheckNode(node);
35575
+ this._handlingLazyObject.checkNode = false;
35576
+ });
35577
+ }
35578
+ handleCheckNode(node) {
35579
+ const isSelected = this.isSelectedNode(node);
35580
+ const childSelected = this.getChildrenSelected(node);
35581
+ const nestedNode = this.convertToNestedNode(node);
35582
+ if (isSelected) {
35583
+ // Check existed group
35584
+ const existedGroup = this.getAllParentNode(node).find(x => this.convertToNestedNode(x).isGroup);
35585
+ if (!this.isIncludeChildren) {
35586
+ nestedNode.groupId = existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id;
35587
+ return;
35588
+ }
35589
+ const children = this.getListChildrenOfNode(node);
35590
+ nestedNode.isGroup = !existedGroup && !!children.length;
35591
+ if (!children.length)
35592
+ return;
35593
+ children.forEach(x => {
35594
+ const _node = this.convertToNestedNode(x);
35595
+ _node.groupId = existedGroup ? existedGroup.id : node.id;
35596
+ _node.isGroup = false;
35597
+ });
35598
+ this.updateDataTree(this.currentTreeData);
35599
+ this.checkListSelection.deselect(...childSelected.map(x => this.resetNode(x)));
35600
+ this.checkListSelection.select(...children.map(x => this.resetNode(x)));
35601
+ return;
35602
+ }
35603
+ const _selectedIndex = this._selectedList.findIndex(x => x.id === node.id);
35604
+ _selectedIndex > -1 && this._selectedList.splice(_selectedIndex, 1);
35605
+ const deselectNodes = (this.isIncludeChildren || nestedNode.isGroup) ? childSelected : [node];
35606
+ this.checkListSelection.deselect(...deselectNodes);
35607
+ nestedNode.isGroup = false;
35608
+ this.updateDataTree(this.currentTreeData);
35609
+ return;
35610
+ }
35611
+ resetNode(node) {
35612
+ node.isGroup = false;
35613
+ return node;
35614
+ }
35615
+ isSelectedNode(node) {
35616
+ return node && this.checkListSelection.isSelected(node);
35617
+ }
35618
+ getChildrenSelected(node) {
35619
+ return this.getListChildrenOfNode(node).filter(x => this.isSelectedNode(x));
35620
+ }
35621
+ /**
35622
+ * Gets a list of the data node's subtree of descendent data nodes.
35623
+ * @param node
35624
+ * @returns
35625
+ */
35626
+ getListChildrenOfNode(node) {
35627
+ const flatNode = this.getNodeById(node.id);
35628
+ if (!flatNode)
35629
+ return [];
35630
+ return this.treeControl.getDescendants(flatNode);
35631
+ }
35632
+ _mapToNestedListNode(flatNodeList) {
35633
+ return flatNodeList.map(item => this.convertToNestedNode(item));
35634
+ }
35635
+ convertToNestedNode(node) {
35636
+ return this.flatTreeNodeMap.get(node) || {};
35637
+ }
35638
+ convertToFlatNode(node) {
35639
+ return this.nestedTreeNodeMap.get(node);
35640
+ }
35641
+ getAllParentNode(node) {
35642
+ const listParent = [];
35643
+ let parent = this.getParentNode(node);
35644
+ while (parent) {
35645
+ listParent.push(parent);
35646
+ parent = this.getParentNode(parent);
35647
+ }
35648
+ return listParent;
35649
+ }
35650
+ getParentNode(node) {
35651
+ const currentLevel = this.getLevel(node);
35652
+ if (currentLevel < 1)
35653
+ return;
35654
+ const index = this.treeControl.dataNodes.indexOf(node) - 1;
35655
+ for (let i = index; i >= 0; i--) {
35656
+ const currentNode = this.treeControl.dataNodes[i];
35657
+ if (this.getLevel(currentNode) < currentLevel) {
35658
+ return currentNode;
35659
+ }
35660
+ }
35661
+ return;
35662
+ }
35663
+ getItemIconType(item) {
35664
+ if (!!item.itemMatIcon)
35665
+ return this.itemIconType.name;
35666
+ if (!!item.itemIconSvg)
35667
+ return this.itemIconType.svg;
35668
+ if (!!item.itemIcon)
35669
+ return this.itemIconType.path;
35670
+ return;
35671
+ }
35672
+ onScrollIntoNode(nodeId) {
35673
+ const flatNode = this.getNodeById(nodeId);
35674
+ if (!nodeId)
35675
+ return;
35676
+ this.onExpandNode(flatNode);
35677
+ this.onExpandAllParent(flatNode);
35678
+ const index = this.treeControl.dataNodes.findIndex(x => x.id === flatNode.id);
35679
+ if (!this.cdkVirtualScrollViewport)
35680
+ return;
35681
+ this.cdkVirtualScrollViewport.scrollToIndex(index, 'smooth');
35682
+ this.getActiveNodeEvent$.next(nodeId);
35683
+ }
35684
+ onSearch() {
35685
+ var _a;
35686
+ if (!this.formSearchControl.value || ((_a = this.formSearchControl.value) === null || _a === void 0 ? void 0 : _a.trim()) === '')
35687
+ return;
35688
+ this.getLoading$.next(true);
35689
+ this.setIndexView(1);
35690
+ this.onSearchEvent.emit(this.formSearchControl.value);
35691
+ if (!this.paginatorSearch)
35692
+ return;
35693
+ this.paginatorSearch.changePage(0);
35694
+ this.paginatorSearch.renderDisplayNumberOfpages();
35695
+ }
35696
+ setResultSearch(data) {
35697
+ this.searchDepartment$.next(data);
35698
+ }
35699
+ onClickResultItem(item) {
35700
+ const node = this.getNodeById(item.id);
35701
+ if (node) {
35702
+ this.scrollToNode(node.id);
35703
+ }
35704
+ }
35705
+ onBreadCrumbItemClick(item) {
35706
+ const node = this.getNodeById(item.id);
35707
+ if (node) {
35708
+ this.setIndexView(0);
35709
+ of(node.id).pipe(delay(700), takeUntil(this.ngUnsubscribe)).subscribe(res => {
35710
+ this.onScrollIntoNode(res);
35711
+ });
35712
+ }
35713
+ }
35714
+ onCheckItemSearchResult(item) {
35715
+ this.checkListSelectionSearch.toggle(item);
35716
+ if (this.config.isSelectOne) {
35717
+ this.checkListSelectionSearch.deselect(...this.checkListSelectionSearch.selected.filter(x => x.id != item.id));
35718
+ }
35719
+ this.onCheckItemSearchEvent.emit({
35720
+ state: this.checkListSelectionSearch.isSelected(item),
35721
+ item: item
35722
+ });
35723
+ if (this.config.lazy) {
35724
+ if (!this._handlingLazyObject.checkItemSearch) {
35725
+ this._handleCheckResutlSearch(item);
35726
+ return;
35727
+ }
35728
+ return;
35729
+ }
35730
+ this._handleCheckResutlSearch(item);
35731
+ this.onValueChangeEvent.emit(this.resultSelected);
35732
+ }
35733
+ onBeforeCheckItemSearch(item, callback) {
35734
+ return __awaiter(this, void 0, void 0, function* () {
35735
+ item.isLoading = true;
35736
+ this._handlingLazyObject.checkItemSearch = true;
35737
+ // hold state before call method callback to prevent lost it's state unexpected
35738
+ const isSelect = this.isSelectItemSearch(item.id);
35739
+ if (!!callback)
35740
+ yield callback(item);
35741
+ item.isLoading = false;
35742
+ this._handleCheckResutlSearch(item, isSelect);
35743
+ this.onValueChangeEvent.emit(this.resultSelected);
35744
+ this._handlingLazyObject.checkItemSearch = false;
35745
+ });
35746
+ }
35747
+ onBeforeCheckAllSearch(callback) {
35748
+ return __awaiter(this, void 0, void 0, function* () {
35749
+ this._handlingLazyObject.checkAllSearch = true;
35750
+ if (!!callback)
35751
+ yield callback(this.resultSearch);
35752
+ this._handlingLazyObject.checkAllSearch = false;
35753
+ if (!this.resultSearch.length)
35754
+ return;
35755
+ for (let i = 0; i < this.resultSearch.length; i++) {
35756
+ const item = this.resultSearch[i];
35757
+ this._handleCheckResutlSearch(item);
35758
+ }
35759
+ });
35760
+ }
35761
+ canHandleItemSearchResult(item) {
35762
+ if (!this.treeControl)
35763
+ return false;
35764
+ return this.treeControl.dataNodes.some(node => node.id === item.id) || this.config.lazy;
35765
+ }
35766
+ _mapToResultSearch() {
35767
+ if (!!this.resultSearch.length)
35768
+ this.resultSearch.forEach(item => {
35769
+ var _a;
35770
+ const isExistInResultSelected = (_a = this.resultSelected) === null || _a === void 0 ? void 0 : _a.some(x => { var _a; return x.id === item.id || ((_a = x.children) === null || _a === void 0 ? void 0 : _a.some(y => y.id === item.id)); });
35771
+ isExistInResultSelected ? this.checkListSelectionSearch.select(item) : this.checkListSelectionSearch.deselect(item);
35772
+ });
35773
+ }
35774
+ _handleCheckResutlSearch(item, state = this.isSelectItemSearch(item.id)) {
35775
+ item.isLoading = false;
35776
+ const currentNode = this.getNodeById(item.id.toString());
35777
+ if (!!currentNode) {
35778
+ if (state) {
35779
+ if (this.checkListSelection.isSelected(currentNode))
35780
+ return;
35781
+ if (this.checkListSelectionSearch.isSelected(item))
35782
+ this.checkListSelection.select(currentNode);
35783
+ }
35784
+ else {
35785
+ this.checkListSelection.deselect(currentNode);
35786
+ }
35787
+ this.config.isSelectOne ? this._handleSelectOne(currentNode.id) : this.handleCheckNode(currentNode);
35788
+ this.cdRef.detectChanges();
35789
+ return;
35790
+ }
35791
+ if (this.config.isSelectOne) {
35792
+ this._handleSelectOne(item.id);
35793
+ return;
35794
+ }
35795
+ this._updateSelectedList(state ? 'add' : 'remove', item, this._selectedList, this.resultSelected);
35796
+ }
35797
+ isSelectItemSearch(id) {
35798
+ return this.checkListSelectionSearch.selected.some(x => x.id === id);
35799
+ }
35800
+ _updateSelectedList(state, item, ...selectedLists) {
35801
+ if (!item)
35802
+ return;
35803
+ selectedLists.forEach(selectedList => {
35804
+ const itemExisted = selectedList.find(x => x.id === item.id);
35805
+ switch (state) {
35806
+ case 'add':
35807
+ if (item.groupId) {
35808
+ const group = selectedList.find(x => x.id === item.groupId);
35809
+ if (!group && !itemExisted) {
35810
+ selectedList.push(item);
35811
+ }
35812
+ !group.children.some(x => x.id === item.id) && group.children.push(item);
35813
+ return;
35814
+ }
35815
+ !itemExisted && selectedList.push(item);
35816
+ break;
35817
+ case 'remove':
35818
+ if (!itemExisted) {
35819
+ const group = selectedList.find(x => x.children.some(x1 => x1.id === item.id));
35820
+ if (!group)
35821
+ return;
35822
+ const index = group.children.findIndex(x => x.id === item.id);
35823
+ if (index < 0)
35824
+ return;
35825
+ group.children.splice(index, 1);
35826
+ return;
35827
+ }
35828
+ selectedList.splice(selectedList.indexOf(itemExisted), 1);
35829
+ const itemSelectionSearch = this.checkListSelectionSearch.selected.find(x => x.id === itemExisted.id);
35830
+ itemSelectionSearch && this.checkListSelectionSearch.deselect(itemSelectionSearch);
35831
+ break;
35832
+ default:
35833
+ break;
35834
+ }
35835
+ });
35836
+ }
35837
+ onSelectAllSearchResult(checked) {
35838
+ checked = !checked;
35839
+ if (!this.resultSearch.length)
35840
+ return;
35841
+ if (this.config.handleCheckAllItemSearch) {
35842
+ for (let i = 0; i < this.resultSearch.length; i++) {
35843
+ const item = this.resultSearch[i];
35844
+ if (checked) {
35845
+ const treeNode = this.treeControl.dataNodes.find(node => node.id === item.id);
35846
+ const canSelect = (!!treeNode || this.config.lazy);
35847
+ if (!canSelect)
35848
+ continue;
35849
+ !this.checkListSelectionSearch.isSelected(item) && this.checkListSelectionSearch.select(item);
35850
+ }
35851
+ else {
35852
+ const _itemSelections = this.checkListSelectionSearch.selected.filter(x => x.id === item.id);
35853
+ if (_itemSelections.length)
35854
+ this.checkListSelectionSearch.deselect(..._itemSelections);
35855
+ }
35856
+ if (!this.config.lazy || !this._handlingLazyObject.checkAllSearch)
35857
+ this._handleCheckResutlSearch(item, checked);
35858
+ }
35859
+ }
35860
+ this.onCheckAllItemSearchEvent.emit(checked);
35861
+ this.onValueChangeEvent.emit(this.resultSelected);
35862
+ }
35863
+ isDisableChecboxAllSearch() {
35864
+ return this.resultSearch && this.resultSearch.every(x => x.disabled);
35865
+ }
35866
+ onPagingSearchResult(val) {
35867
+ this.getLoading$.next(true);
35868
+ this.onPagingSearchEvent.emit(val);
35869
+ }
35870
+ scrollToNode(nodeId) {
35871
+ this.scrollToNodeEvent$.next(nodeId);
35872
+ }
35873
+ setIndexView(index) {
35874
+ if (index === 1 && this.config.resetToggleIncludeChildWhenChangeView) {
35875
+ this.isIncludeChildren = false;
35876
+ }
35877
+ this.getIndexView$.next(index);
35878
+ }
35879
+ canActiveNodeExternal(node) {
35880
+ const allParent = this.getAllParentNode(node);
35881
+ return !allParent || allParent.every(item => this.treeControl.isExpanded(item));
35882
+ }
35883
+ getHeightStyleRefNode(nodeId) {
35884
+ const nodeEle = this.eleRef.nativeElement.querySelector(`.mat-tree-node#mat-node-${nodeId}`);
35885
+ return `${(nodeEle === null || nodeEle === void 0 ? void 0 : nodeEle.clientHeight) || 0}px`;
35886
+ }
35887
+ getSelectedNodeStorage() {
35888
+ return JSON.parse(localStorage.getItem('selectedNode'));
35889
+ }
35890
+ setSelectedNodeStorage(node) {
35891
+ this.isIncludeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
35892
+ }
35893
+ setDefaultPaginatorSize(options) {
35894
+ this.PAGE_SIZE_OPTION = options;
35895
+ }
35896
+ trackBy(index, item) {
35897
+ return item;
35898
+ }
35899
+ /**
35900
+ * This function use for lazy load children of node
35901
+ * @param node node update. if node is null data auto insert as roots
35902
+ * @param data list children to update node.
35903
+ * @param mode default is update that replace current list children by new list children , if mode = 'insert' will insert new values to list children existed before.
35904
+ */
35905
+ updateChildOfNode(node, data = [], mode = 'update') {
35906
+ node.isLoading = false;
35907
+ this.checkLoadingOfParent(node);
35908
+ const nestedNode = this.convertToNestedNode(node);
35909
+ const dataNodes = this.treeDepartmentService.convertToTreeData(data).filter(x => x.parentId === node.id);
35910
+ if (!nestedNode)
35911
+ return;
35912
+ switch (mode) {
35913
+ case 'insert':
35914
+ nestedNode.children.push(...dataNodes);
35915
+ break;
35916
+ case 'update':
35917
+ nestedNode.children = dataNodes;
35918
+ break;
35919
+ }
35920
+ this.updateDataTree(this.currentTreeData);
35921
+ const _node = this.getNodeById(node.id);
35922
+ const nodes = this.treeControl.getDescendants(_node);
35923
+ for (let i = 0; i < this.resultSelected.length; i++) {
35924
+ const item = this.resultSelected[i];
35925
+ this._reUpdateSelectionNode(item.id);
35926
+ const descendants = this.treeDepartmentService.getDescendantsOfNode(item);
35927
+ if (!descendants.length)
35928
+ continue;
35929
+ for (let j = 0; j < descendants.length; j++) {
35930
+ const child = descendants[j];
35931
+ this._reUpdateSelectionNode(child.id);
35932
+ }
35933
+ }
35934
+ this.selectedListAfterDataNodeChange$.next([_node, ...nodes]);
35935
+ }
35936
+ //re-select when update children of node
35937
+ _reUpdateSelectionNode(nodeId) {
35938
+ const node = this.getNodeById(nodeId);
35939
+ if (!node || this.checkListSelection.isSelected(node))
35940
+ return;
35941
+ const existInSelection = this.checkListSelection.selected.find(x => x.id == node.id);
35942
+ if (existInSelection)
35943
+ this.checkListSelection.deselect(existInSelection);
35944
+ this.checkListSelection.select(node);
35945
+ }
35946
+ checkLoadingOfParent(node) {
35947
+ const allParent = this.getAllParentNode(node);
35948
+ if (!allParent.length)
35949
+ return;
35950
+ for (let i = 0; i < allParent.length; i++) {
35951
+ const parent = allParent[i];
35952
+ const descendants = this.treeControl.getDescendants(parent);
35953
+ parent.isLoading = descendants.some(x => x.isLoading);
35954
+ }
35955
+ }
35956
+ getNodeById(id) {
35957
+ return this.treeControl.dataNodes.find(node => node.id === id) || undefined;
35958
+ }
35959
+ getRootOfNode(node) {
35960
+ const allParent = this.getAllParentNode(node);
35961
+ if (!allParent.length)
35962
+ return undefined;
35963
+ return allParent.pop();
35964
+ }
35965
+ addRootTree(data = []) {
35966
+ this.getLoadingMore$.next(false);
35967
+ if (!data.length)
35968
+ return;
35969
+ const treeNodeData = this.treeDepartmentService.convertToTreeData(data);
35970
+ // re-check root was existed in tree
35971
+ for (let i = 0; i < treeNodeData.length; i++) {
35972
+ const item = treeNodeData[i];
35973
+ const node = this.getNodeById(item.id);
35974
+ if (!!node && node.expandable && !node.markedGetChildren) {
35975
+ const nestedNode = this.convertToNestedNode(node);
35976
+ nestedNode.children = item.children;
35977
+ nestedNode.markedGetChildren = true;
35978
+ return;
35979
+ }
35980
+ if (!node)
35981
+ this.currentTreeData.push(item);
35982
+ }
35983
+ this.updateDataTree(this.currentTreeData);
35984
+ this.selectedListAfterDataNodeChange$.next(data);
35985
+ }
35986
+ getCheckedStatusNode(node) {
35987
+ return this.isSelectedNode(node);
35988
+ }
35989
+ updateNodeInformation(node) {
35990
+ let nestedNode = this.convertToNestedNode(node);
35991
+ if (!nestedNode) {
35992
+ return;
35993
+ }
35994
+ nestedNode.childCount = node.childCount;
35995
+ nestedNode.name = node.name;
35996
+ nestedNode.itemIcon = node.itemIcon;
35997
+ nestedNode.itemIconSvg = node.itemIconSvg;
35998
+ nestedNode.selectedChildCount = node.selectedChildCount;
35999
+ nestedNode.markedGetChildCountRecurrsive = node.markedGetChildCountRecurrsive;
36000
+ nestedNode.isIncludeChildWhenChecked = node.isIncludeChildWhenChecked;
36001
+ }
36002
+ updateSelectedResultData(node) {
36003
+ const nodeResult = this.resultSelected.find((x) => x.id === node.id);
36004
+ if (nodeResult) {
36005
+ nodeResult.childCount = node.childCount;
36006
+ nodeResult.selectedChildCount = node.selectedChildCount;
36007
+ }
36008
+ }
36009
+ callCheckNodeOutside(node) {
36010
+ this.checkListSelection.toggle(node);
36011
+ //this.handleCheckNode(node);
36012
+ }
36013
+ }
36014
+ SelectProcessDataTreeComponent.decorators = [
36015
+ { type: Component, args: [{
36016
+ selector: 'qms-select-process-data-tree',
36017
+ template: "<div [ngClass]=\"['qms-select-department-tree-container', (config.customClass || '')]\">\n <div class=\"input-select-department\">\n <form (ngSubmit)=\"!getLoading$.value && onSearch()\" *ngIf=\"config.enableTreeSearch\" class=\"input-field\">\n <mat-form-field class=\"w100\" qms-form qms-search-field>\n <input [formControl]=\"formSearchControl\" type=\"text\" placeholder=\"Search\" matInput />\n <button *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\" matSuffix>\n <mat-icon>search</mat-icon>\n </button>\n <mat-progress-spinner [@inOutAnimation] matSuffix mode=\"indeterminate\" diameter=\"20\"\n *ngIf=\"getLoading$.value\"></mat-progress-spinner>\n <div *ngIf=\"!!formSearchControl.value && !getLoading$.value\" qms-input-clear matSuffix>\n <button qms-btn-icon color=\"light\" [@inOutAnimation] aria-label=\"Clear\" (click)=\"formSearchControl.reset()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </mat-form-field>\n </form>\n <div [@inOutAnimation] *ngIf=\"(getIndexView$ | async) === 1 && (textSearchSubject$ | async)\"\n class=\"sub-text ms-1 fw500\">\n {{LANG.RESULT_SEARCH_FOR}}<i><b>\"{{textSearchSubject$ | async}}\"</b></i>\n </div>\n <div [class.justify-content-between]=\"config.enableIncludeChild && !config.isSelectOne\"\n class=\"select__toggle-include toggle-include-child my-1 d-flex justify-content-end align-items-center\">\n <mat-slide-toggle *ngIf=\"config.enableIncludeChild && !config.isSelectOne\"\n [disabled]=\"(getIndexView$ | async) === 1 && config.disableToggleIncludeChildWhenChangeView\"\n [(ngModel)]=\"isIncludeChildren\" (ngModelChange)=\"toggleIncludeChildEvent.emit($event)\" color=\"default\"\n qms-group-options>\n <span class=\"text-label\">{{config.selectIncludeLabel || LANG.SELECT_INCLUDE_CHILD}}</span>\n </mat-slide-toggle>\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"(getIndexView$ | async) === 1 && config.enableTreeSearch\"\n (click)=\"setIndexView(0)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.BACK_TO_TREE\" mode=\"dark\"\n position=\"top\">\n <mat-icon>arrow_back</mat-icon>\n </button>\n <button class=\"btn-arrow\" [@inOutAnimation]\n *ngIf=\"(getIndexView$ | async) === 0 && config.enableTreeSearch && (textSearchSubject$ | async)\"\n (click)=\"setIndexView(1)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.GOTO_SEACH_RESULT\" mode=\"dark\"\n position=\"top\">\n <mat-icon>arrow_forward</mat-icon>\n </button>\n </div>\n </div>\n <div [@inOutAnimation]\n *ngIf=\"(getIndexView$ | async) === 0 && config.modeView === MODE_VIEW_ENUM.ExternalView && !!config.headerName\"\n class=\"header-view-tree\">\n <div class=\"header-view header-title\">\n {{config.headerName.treeName}}\n </div>\n <div class=\"header-view header-title\">\n {{config.headerName.externalName}}\n </div>\n </div>\n <mat-divider class=\"mx-auto\"></mat-divider>\n <div [@animateSlideView]=\"(getIndexView$ | async)\" [ngStyle]=\"{\n minHeight: height\n }\" class=\"tree-department-wrapper\">\n <div *ngIf=\"(getIndexView$ | async) === 0\" class=\"tree-view w100 h100\">\n <div class=\"tree-view-main h100\">\n <div *ngIf=\"!config.isSelectOne && !!treeControl.dataNodes && config.activeSelectAllNode\"\n class=\"checkbox-all-tree\" [class.sticky-position]=\"config.modeView === MODE_VIEW_ENUM.ExternalView\">\n <!-- Checkbox all root node -->\n <mat-checkbox [@inOutAnimation] (click)=\"onCheckAllRootTreeNode()\"\n [indeterminate]=\"isIndeterminateCheckboxAllTree\" [checked]=\"isAllDepartmentSelected\" qms-group-options\n color=\"default\" label=\"none\" class=\"checkbox-all\">\n <span class=\"text-label \">{{LANG.CHOOSE_ALL}}</span>\n <span>(<b>{{treeControl.dataNodes.length}}</b>)</span>\n </mat-checkbox>\n <mat-divider class=\"mx-auto\"></mat-divider>\n </div>\n <cdk-virtual-scroll-viewport *ngIf=\"dataSource.data\" [ngClass]=\"{\n 'has-checkbox-all': !config.isSelectOne && config.modeView === MODE_VIEW_ENUM.Basic,\n 'select-department-tree': true\n }\" [itemSize]=\"ITEM_SIZE\" [ngStyle]=\"{height: height}\">\n <ng-container *cdkVirtualFor=\"let node of dataSource; trackBy: trackBy\">\n <div class=\"qms-tree-node mt-1\" [style.padding-left]=\"node.level * (config.isMobile ? 12 :24) + 'px'\"\n [attr.data-id]=\"node.id\" [id]=\"'mat-node-'+node.id\" [@triggerColor]=\"activeNode == node.id\" [ngClass]=\"{\n 'mat-tree-node-disabled-all': node.disabled,\n 'w-100': config.isSelectOne,\n 'selected-theme': this.checkListSelection.isSelected(node) && config.isSelectOne,\n 'expand-node': treeControl.isExpandable(node) && treeControl.isExpanded(node),\n 'active-external-view': config.modeView === MODE_VIEW_ENUM.ExternalView,\n 'node-loading': node.isLoading\n }\">\n <div class=\"node-expand-area\">\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" (click)=\"onExpandNode(node)\"\n *ngIf=\"treeControl.isExpandable(node) && !node.isLoading\">\n <mat-icon>\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\n </mat-icon>\n </button>\n <ng-container *ngIf=\"node.isLoading; then loadingSpinner\"></ng-container>\n </div>\n <ng-container [ngTemplateOutlet]=\"config.isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\n [ngTemplateOutletContext]=\"{ node: node }\"></ng-container>\n <div *ngIf=\"config.modeView === MODE_VIEW_ENUM.ExternalView\" class=\"external-view-node\">\n <span class=\"node-external\" qms-elipsify position=\"top\" mode=\"dark\">\n {{node.externalName || ''}}\n </span>\n </div>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n <ng-container [@inOutAnimation] *ngIf=\"config.spinnerWhenGetMore && getLoadingMore$| async ;then maskOverlay\">\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"(getIndexView$ | async) === 1\" [ngStyle]=\"{\n height: height\n }\" class=\"qms-view-search-result\">\n <div *ngIf=\"config.modeView === MODE_VIEW_ENUM.ExternalView\"\n class=\"qms-view-search-result__header d-flex align-items-center justify-content-between\">\n <div class=\"header-title\">\n <span qms-elipsify mode=\"dark\" position=\"top\">\n {{config.headerName.resultSearchName}}\n </span>\n </div>\n <div class=\"header-title\">\n <span qms-elipsify mode=\"dark\" position=\"top\">\n {{config.headerName.externalName}}\n </span>\n </div>\n </div>\n <ng-container *ngIf=\"getLoading$.value; then loading\"></ng-container>\n <div class=\"qms-view-search-result__wrapper\"\n [class.active-external]=\"config.modeView === MODE_VIEW_ENUM.ExternalView\"\n *ngIf=\"!!resultSearch.length && !getLoading$.value\">\n <div class=\"\">\n <mat-checkbox [@inOutAnimation]\n [disabled]=\"!resultSearch.length || config.isSelectOne || isDisableChecboxAllSearch()\" #checkAllSearch\n [indeterminate]=\"indeterminateSearchResult\" [checked]=\"isSelectAllResultSearch\" qms-group-options\n color=\"default\" label=\"none\" class=\"checkbox-all\"\n (click)=\"!config.isSelectOne && onSelectAllSearchResult(checkAllSearch.checked)\">\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\n <span>(<b>{{resultSearch.length}}</b>)</span>\n </mat-checkbox>\n </div>\n <div [@inOutAnimation] [@listAnimation]\n [class.active-paging]=\"searchDepartment$.value.length > 10 && config.enablePagingSearch\" class=\"result\">\n <div [qms-tool-tip]=\"!canHandleItemSearchResult(item) ? LANG.ITEM_NOT_MATCH_TO_TREE : ''\" mode=\"dark\"\n position=\"top\" *ngFor=\"let item of resultSearch\"\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\n [class.active]=\"checkListSelectionSearch.isSelected(item)\" class=\"result-item user-select-none\" matRipple>\n <mat-checkbox [@inOutAnimation] *ngIf=\"!item.isLoading\" [disabled]=\"item.disabled\"\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\n [checked]=\"checkListSelectionSearch.isSelected(item)\" qms-group-options color=\"default\" label=\"none\">\n </mat-checkbox>\n <div *ngIf=\"item.isLoading\" [@inOutAnimation] class=\"position-relative\">\n <ng-container *ngIf=\"item.isLoading; then loadingSpinner\"></ng-container>\n </div>\n <div class=\"result-item__content\">\n <div class=\"item-result-content-wraper\">\n <div class=\"text-gray fw-bold fs-base mb0\">{{item.name}}</div>\n <qms-breadcrumb *ngIf=\"item.location?.length > 1\" [type]=\"config.isMobile ? 'mobile': ''\"\n [numDisplayItem]=\"6\" (onItemClick)=\"$event.stopImmediatePropagation()\" class=\"breadcrumb-container\"\n [nodes]=\"item.location\">\n </qms-breadcrumb>\n <div *ngIf=\"item.location?.length === 1\" class=\"d-flex align-items-center\">\n <span qms-elipsify mode=\"dark\" position=\"top\"\n class=\"item-breadcrumb-disable d-block\">{{item.location[0].name}}</span>\n </div>\n </div>\n <div *ngIf=\"config.modeView === MODE_VIEW_ENUM.ExternalView\" class=\"external-name\">\n <span qms-elipsify mode=\"dark\" position=\"top\" class=\"text-gray fs-base mb0\">{{item.externalName}}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div [@inOutAnimation] *ngIf=\"!resultSearch.length && !getLoading$.value\" class=\"result no-result\">\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\n </div>\n <mat-divider *ngIf=\"searchDepartment$.value.length > 10 && config.enablePagingSearch\"\n class=\"mx-auto\"></mat-divider>\n <qms-paginator #paginatorSearch *ngIf=\"searchDepartment$.value.length > 10 && config.enablePagingSearch \"\n [length]=\"searchDepartment$.value.length\" [numHidden]=\"0\" [pageSize]=\"CURRENT_PAGESIZE\"\n [pageSizeOptions]=\"PAGE_SIZE_OPTION\" (page)='onPagingSearchResult($event)'\n [size]='config.isMobile ? PAGINATION_SIZE.small : PAGINATION_SIZE.medium'>\n </qms-paginator>\n </div>\n </div>\n\n <!-- Template for Checkbox -->\n <ng-template #showCheckboxTemplate let-node=\"node\">\n <mat-checkbox [id]=\"'node-'+node.id\" qms-group-options color=\"default\" label=\"none\" class=\"flex-direction-row\"\n [disabled]=\"node.isLoading\" [checked]=\"checkListSelection.isSelected(node)\"\n (click)=\"!node.isLoading && onCheckNode(node)\" [attr.disabled]=\"node.disabled || node.isLoading\">\n <img [title]=\"node.itemIconSvg\" *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon\"\n [src]=\"node.itemIconSvg\" />\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\n class=\"material-icons-outlined type-icon\"></span>\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\n node.itemMatIcon }}\n </span>\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name}}\n </span>\n </mat-checkbox>\n </ng-template>\n\n <!-- Template node without checkbox -->\n <ng-template #nodeWithoutCheckboxTemplate let-node=\"node\">\n <div [id]=\"'node-'+node.id\" (click)=\"onCheckNode(node)\" class=\"node-without-checkbox\">\n <div class=\"node-info\">\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\n class=\"material-icons-outlined type-icon\"></span>\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\n node.itemMatIcon }}\n </span>\n <span class=\"text-name cursor-pointer pl-10 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name }}</span>\n </div>\n <div class=\"node-state\">\n <mat-icon *ngIf=\"checkListSelection.isSelected(node)\">check</mat-icon>\n </div>\n </div>\n </ng-template>\n</div>\n\n<ng-template #noResult>\n <svg width=\"89\" height=\"130\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\n <path\n d=\"M44.5 56.6936L58.096 64.8996L54.488 49.4336L66.5 39.0276L50.682 37.6856L44.5 23.0996L38.318 37.6856L22.5 39.0276L34.512 49.4336L30.904 64.8996L44.5 56.6936Z\"\n fill=\"#0163B3\" />\n <text x=\"10\" y=\"105\" fill=\"#0163B2\">{{LANG.NO_RESULT}}</text>\n </svg>\n</ng-template>\n\n<!-- Template loading -->\n<ng-template #loading>\n <div [ngStyle]=\"{\n 'height': searchDepartment$.value.length ? (config.modeView === MODE_VIEW_ENUM.ExternalView ? 'calc(100% - 90px)' : 'calc(100% - 50px)' ) : height\n }\" class=\"qms-loading-container\">\n <div class=\"qms-loader\" *ngFor=\"let item of arrSkeleton\">\n <div class=\"qms-loader__wrapper\">\n <div class=\"row-loader\">\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- Template mask overlay -->\n<ng-template #maskOverlay>\n <div class=\"mask-overlay\">\n <mat-spinner [diameter]=\"50\" [strokeWidth]=\"5\"></mat-spinner>\n </div>\n</ng-template>\n\n<!-- Loading spinner -->\n<ng-template #loadingSpinner>\n <div class=\"qms-spinner center\">\n <mat-spinner [diameter]=\"20\" [strokeWidth]=\"2\"></mat-spinner>\n </div>\n</ng-template>",
36018
+ animations: [
36019
+ AnimationTreeDepartment
36020
+ ],
36021
+ changeDetection: ChangeDetectionStrategy.OnPush,
36022
+ styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.qms-select-department-tree-container{font-family:Open Sans,sans-serif}.qms-select-department-tree-container .mr10{margin-right:10px}.qms-select-department-tree-container .mt5{margin-bottom:5px}.qms-select-department-tree-container .mb5{margin-top:5px}.qms-select-department-tree-container .w100{width:100%}.qms-select-department-tree-container .h100{height:100%}.qms-select-department-tree-container .fw500{font-weight:500!important}.qms-select-department-tree-container .text-right{text-align:right}.qms-select-department-tree-container .mt20{margin-top:20px}.qms-select-department-tree-container .d-flex{display:flex}.qms-select-department-tree-container .align-items-center{align-items:center}.qms-select-department-tree-container .justify-content-end{justify-content:flex-end}.qms-select-department-tree-container .text-selected{color:rgba(0,0,0,.6);font-size:12px;line-height:16px;margin-top:1rem}.qms-select-department-tree-container .input-field{display:flex;align-items:center;position:relative}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-wrapper{padding-bottom:8px!important}.qms-select-department-tree-container .input-field ::ng-deep .mat-form-field-underline{bottom:8px!important}.qms-select-department-tree-container .input-field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department-tree-container .input-field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department-tree-container .input-field .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department-tree-container .header-title{font-weight:500;color:var(--ws-text-primary);font-size:16px;display:flex;align-items:center}.qms-select-department-tree-container .header-title .header-view{padding:4px 0}.qms-select-department-tree-container .sticky-position{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;background:#fff}.qms-select-department-tree-container .header-view-tree{display:grid;grid-template-columns:1fr 200px;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px;padding:4px 12px 4px 0}.qms-select-department-tree-container .header-view-tree .header-view:first-child{padding-left:12px}.qms-select-department-tree-container .tree-department-wrapper{padding-right:4px;overflow:hidden;position:relative;transition:height .3s ease-in-out}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view{width:100%;display:grid;grid-template-columns:1fr 200px;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view .tree-view-main>.separate{height:38px}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view .tree-view-main>.separate.h-0{height:0}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view .tree-view-main:last-child{height:100%;padding-left:4px;position:relative}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view .tree-view-main:last-child:after{position:absolute;content:\"\";top:0;bottom:-38px;left:0;width:1px;background:rgba(0,0,0,.12)}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view .tree-view-main .external-list-item-container .node-external{overflow:hidden;transition:all .1s ease-in-out}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view .tree-view-main .external-list-item-container .node-external .node-external-content{padding:5px 15px;height:calc(100% - 2px);color:var(--default-color);font-size:14px;display:flex;align-items:center}.qms-select-department-tree-container .tree-department-wrapper .tree-view.active-mode-external-view .tree-view-main .external-list-item-container .node-external .node-external-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qms-select-department-tree-container .mask-overlay{z-index:1000;background-color:rgba(34,33,33,.1);position:absolute;top:0;left:0;width:100%;height:100%;border-radius:4px;overflow:hidden;display:grid;place-items:center}.qms-select-department-tree-container .select-department-tree>.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{padding:0 4px!important}.qms-select-department-tree-container .select-department-tree .qms-tree-node{display:flex;align-items:center;border-radius:4px}.qms-select-department-tree-container .select-department-tree .qms-tree-node:hover{background-color:rgba(0,0,0,.08)}.qms-select-department-tree-container .select-department-tree .qms-tree-node>.node-expand-area{width:48px;height:48px;position:relative}.qms-select-department-tree-container .select-department-tree .qms-tree-node.active-external-view .mat-checkbox.qms-group-options{width:calc(100% - 250px)}.qms-select-department-tree-container .select-department-tree .qms-tree-node.node-loading{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .select-department-tree .qms-tree-node>.external-view-node{flex-basis:200px;overflow:hidden}.qms-select-department-tree-container .select-department-tree .qms-tree-node>.external-view-node .node-external{overflow:hidden;transition:all .1s ease-in-out;display:block}.qms-select-department-tree-container .select-department-tree .qms-tree-node>.external-view-node .node-external .node-external-content{padding:5px 15px;height:calc(100% - 2px);color:var(--default-color);font-size:14px;display:flex;align-items:center}.qms-select-department-tree-container .select-department-tree .qms-tree-node>.external-view-node .node-external .node-external-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qms-select-department-tree-container .select-department-tree .qms-tree-node.expand-node{color:var(--primary)}.qms-select-department-tree-container .select-department-tree .qms-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .select-department-tree .qms-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .select-department-tree .qms-tree-node.expand-node .mat-icon{color:var(--primary)}.qms-select-department-tree-container .select-department-tree .qms-tree-node .node-without-checkbox{cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center}.qms-select-department-tree-container .select-department-tree .qms-tree-node .node-without-checkbox .mat-icon{color:var(--primary);margin-right:4px}.qms-select-department-tree-container .select-department-tree .qms-tree-node.selected-theme{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .select-department-tree .qms-tree-node.mat-tree-node-disabled-all{cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .select-department-tree .qms-tree-node.mat-tree-node-disabled-all .mat-icon-rtl-mirror,.qms-select-department-tree-container .select-department-tree .qms-tree-node.mat-tree-node-disabled-all .type-icon,.qms-select-department-tree-container .select-department-tree .qms-tree-node.mat-tree-node-disabled-all button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .select-department-tree .qms-tree-node.mat-tree-node-disabled-all .text-name.disabled{color:rgba(0,0,0,.38);cursor:default!important;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .select-department-tree .qms-tree-node.mat-tree-node-disabled-all.active{background-color:transparent}.qms-select-department-tree-container .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department-tree-container .cursor-pointer{cursor:pointer}.qms-select-department-tree-container .ml5{margin-left:15px!important}.qms-select-department-tree-container .pl-10{padding-left:10px}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .node-text>span{display:block}.qms-select-department-tree-container ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department-tree-container .qms-view-search-result{width:100%;overflow:hidden}.qms-select-department-tree-container .qms-view-search-result__header{position:relative}.qms-select-department-tree-container .qms-view-search-result__header:after{position:absolute;content:\"\";bottom:0;left:0;width:100%;height:1px;background-color:rgba(0,0,0,.1)}.qms-select-department-tree-container .qms-view-search-result__header .header-title{padding:8px 0;display:inline-block}.qms-select-department-tree-container .qms-view-search-result__header .header-title:first-child{padding-left:12px}.qms-select-department-tree-container .qms-view-search-result__header .header-title:nth-child(2){flex-basis:200px}.qms-select-department-tree-container .qms-view-search-result>.no-result{height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .qms-view-search-result__wrapper{height:calc(100% - 50px);width:100%}.qms-select-department-tree-container .qms-view-search-result__wrapper.active-external{height:calc(100% - 90px)!important}.qms-select-department-tree-container .qms-view-search-result__wrapper .result{max-height:calc(100% - 44px);overflow-y:auto;margin-bottom:4px;padding-right:4px}.qms-select-department-tree-container .qms-view-search-result__wrapper .result.active-paging{max-height:calc(100% - 40px)}.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item{border-radius:4px;display:grid;grid-template-columns:45px 1fr;align-items:center;cursor:pointer;transition:background .3s ease;min-height:40px}.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item:not(:first-child){margin-top:4px!important}.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item.active,.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item:hover{background:linear-gradient(0deg,rgba(1,99,178,.12),rgba(1,99,178,.12)),#fff}.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item__content{display:flex;align-items:center}.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item__content .item-result-content-wraper{padding:5px 15px;width:100%}.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item__content .external-name{flex-basis:200px}.qms-select-department-tree-container .qms-view-search-result__wrapper .result-item__content .external-name span{width:200px;display:inline-block}.qms-select-department-tree-container .qms-view-search-result ::ng-deep .mat-checkbox.qms-group-options{display:flex;height:100%}.qms-select-department-tree-container ::ng-deep .breadcrumb-container{flex-wrap:wrap}.qms-select-department-tree-container ::ng-deep .mat-button-focus-overlay{background-color:transparent}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item{margin:0}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:color .3s ease}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text:not(:last-child){max-width:150px!important}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-bottom:0;margin-right:12px;height:100%;display:flex;align-items:center}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:600;color:rgba(0,0,0,.8)}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{margin-bottom:0;grid-column-gap:2px;-moz-column-gap:2px;column-gap:2px}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions>.qms-total-result{margin-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-form-field-wrapper{padding-bottom:0}.qms-select-department-tree-container ::ng-deep .qms-paginator .qms-paginator-page-size{align-items:center}.qms-select-department-tree-container .text-gray{color:#242424}.qms-select-department-tree-container .mb0{margin-bottom:0!important}.qms-select-department-tree-container .fs-base{font-size:14px!important}.qms-select-department-tree-container .user-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.qms-select-department-tree-container .item-breadcrumb-disable{cursor:not-allowed;color:rgba(0,0,0,.6);font-weight:400;font-size:14px;max-width:250px}.qms-select-department-tree-container ::ng-deep .mat-checkbox.checkbox-all .mat-checkbox-label{flex-direction:row;align-items:center;grid-column-gap:4px;-moz-column-gap:4px;column-gap:4px}.qms-select-department-tree-container ::ng-deep .btn-arrow{width:40px;height:40px;line-height:40px}.qms-select-department-tree-container .qms-loading-container{overflow:hidden;display:grid;grid-template-rows:repeat(60px)}.qms-select-department-tree-container .qms-loading-container .qms-loader{position:relative;width:100%;height:100%;padding:10px 0;overflow:hidden}.qms-select-department-tree-container .qms-loading-container .qms-loader:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(110deg,hsla(0,0%,91%,0),hsla(0,0%,89%,0) 40%,hsla(0,0%,89%,.5) 50%,hsla(0,0%,89%,0) 60%,hsla(0,0%,89%,0));-webkit-animation:animate-loading 1.2s linear infinite;animation:animate-loading 1.2s linear infinite}.qms-select-department-tree-container .qms-loading-container .qms-loader__wrapper{position:relative;width:100%;height:100%}.qms-select-department-tree-container .qms-loading-container .qms-loader__wrapper .row-loader{background-color:#eee;position:absolute;left:0;width:100%;height:40px}@-webkit-keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes animate-loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.qms-select-department-tree-container .qms-spinner{font-size:20px;position:relative;display:inline-block;width:1em;height:1em}.qms-select-department-tree-container .qms-spinner.center{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto}.qms-select-department-tree-container .mat-spinner circle,.qms-select-department-tree-container ::ng-deep .mat-progress-spinner circle{stroke:#1b75be!important}@media screen and (max-width:600px){.qms-select-department-tree-container .external-view-node{flex-basis:65px!important}.qms-select-department-tree-container .qms-tree-node.active-external-view .mat-checkbox.qms-group-options{width:calc(100% - 110px)!important}.qms-select-department-tree-container .header-view-tree{grid-template-columns:1fr 80px!important}.qms-select-department-tree-container ::ng-deep .cdk-virtual-scroll-content-wrapper{right:0!important}.qms-select-department-tree-container .header-title{font-size:14px!important}.qms-select-department-tree-container .node-external,.qms-select-department-tree-container .text-label,.qms-select-department-tree-container .text-label+span,.qms-select-department-tree-container .text-name{font-size:12px}.qms-select-department-tree-container .node-expand-area{width:30px!important;height:30px!important}.qms-select-department-tree-container .node-expand-area .qms-btn-icon{width:30px;height:30px;line-height:30px}.qms-select-department-tree-container .fs-base{font-size:12px!important}.qms-select-department-tree-container .qms-select-department-tree-container .breadcrumb-container{flex-wrap:nowrap!important}.qms-select-department-tree-container ::ng-deep .qms-breadcrumb-item-text{font-size:12px!important;max-width:175px!important}.qms-select-department-tree-container ::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{display:none!important}.qms-select-department-tree-container ::ng-deep .qms-paginator .size-small .mat-paginator-container{justify-content:center!important}.qms-select-department-tree-container .qms-view-search-result__header>.header-title:nth-child(2){flex-basis:120px!important}.qms-select-department-tree-container .result-item__content .external-name{flex-basis:75px!important}.qms-select-department-tree-container .result-item__content .external-name span{width:75px!important}}"]
36023
+ },] }
36024
+ ];
36025
+ SelectProcessDataTreeComponent.ctorParameters = () => [
36026
+ { type: ChangeDetectorRef },
36027
+ { type: DomSanitizer },
36028
+ { type: QMSIconRegistryService },
36029
+ { type: MatIconRegistry },
36030
+ { type: ElementRef },
36031
+ { type: TranslateLibraryService },
36032
+ { type: Overlay },
36033
+ { type: ViewContainerRef },
36034
+ { type: QMSSelectDepartmentTreeGlobalService }
36035
+ ];
36036
+ SelectProcessDataTreeComponent.propDecorators = {
36037
+ rowsSkeleton: [{ type: Input }],
36038
+ height: [{ type: Input }],
36039
+ config: [{ type: Input }],
36040
+ onSearchEvent: [{ type: Output }],
36041
+ onPagingSearchEvent: [{ type: Output }],
36042
+ onValueChangeEvent: [{ type: Output }],
36043
+ selectionNodeChangeEvent: [{ type: Output }],
36044
+ onCheckNodeEvent: [{ type: Output }],
36045
+ onExpandNodeEvent: [{ type: Output }],
36046
+ onLoadMoreEvent: [{ type: Output }],
36047
+ onCheckItemSearchEvent: [{ type: Output }],
36048
+ onCheckAllItemSearchEvent: [{ type: Output }],
36049
+ toggleIncludeChildEvent: [{ type: Output }],
36050
+ cdkVirtualScrollViewport: [{ type: ViewChild, args: [CdkVirtualScrollViewport,] }],
36051
+ paginatorSearch: [{ type: ViewChild, args: ['paginatorSearch',] }]
36052
+ };
36053
+
36054
+ class QMSSelectProcessDataTreeModule {
36055
+ }
36056
+ QMSSelectProcessDataTreeModule.decorators = [
36057
+ { type: NgModule, args: [{
36058
+ declarations: [
36059
+ SelectProcessDataTreeComponent
36060
+ ],
36061
+ exports: [
36062
+ SelectProcessDataTreeComponent
36063
+ ],
36064
+ imports: [
36065
+ CommonModule,
36066
+ MatTreeModule,
36067
+ MatCheckboxModule,
36068
+ MatAutocompleteModule,
36069
+ MatIconModule,
36070
+ MatProgressBarModule,
36071
+ QmsAngularModule,
36072
+ MatInputModule,
36073
+ ReactiveFormsModule,
36074
+ FormsModule,
36075
+ MatButtonModule,
36076
+ MatExpansionModule,
36077
+ MatSlideToggleModule,
36078
+ QMSButtonModule,
36079
+ MatFormFieldModule,
36080
+ MatChipsModule,
36081
+ SharedModule,
36082
+ QMSBreadcrumbModule,
36083
+ MatRippleModule,
36084
+ QmsPaginatorModule,
36085
+ MatPaginatorModule,
36086
+ MatDividerModule,
36087
+ ScrollingModule,
36088
+ MatProgressSpinnerModule
36089
+ ]
36090
+ },] }
36091
+ ];
36092
+
36093
+ const ɵ0 = {
36094
+ clickAction: 'noop'
36095
+ };
36096
+ class SelectProcessDataComponent {
36097
+ constructor(cdRef, dialogRef, data, trans) {
36098
+ this.cdRef = cdRef;
36099
+ this.dialogRef = dialogRef;
36100
+ this.data = data;
36101
+ this.trans = trans;
36102
+ this.ngUnsubscribe = new Subject();
36103
+ this.onPagingEvent = new EventEmitter();
36104
+ this.popupData = new SelectDepartmentPopupData();
36105
+ this.resultSelected = [];
36106
+ this.onSearchEvent = new EventEmitter();
36107
+ this.onCheckNodeEvent = new EventEmitter();
36108
+ this.onExpandNodeEvent = new EventEmitter();
36109
+ this.onLoadMoreEvent = new EventEmitter();
36110
+ this.onCheckItemSearchEvent = new EventEmitter();
36111
+ this.onCheckAllItemSearchEvent = new EventEmitter();
36112
+ this.toggleIncludeChildEvent = new EventEmitter();
36113
+ this.resultSearch = [];
36114
+ this.isActiveViewSearch = false;
36115
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
36116
+ if (res) {
36117
+ this.LANG = this.trans.getObjectLang(res);
36118
+ }
36119
+ });
36120
+ // Init popup data
36121
+ this.popupData = _.cloneDeep(this.data);
36122
+ }
36123
+ get isIncludeChild() {
36124
+ return !!this.treeProcessData && this.treeProcessData.isIncludeChildren;
36125
+ }
36126
+ ngAfterViewInit() {
36127
+ console.log(this.treeProcessData);
36128
+ this.cdRef.detectChanges();
36129
+ }
36130
+ onCloseDialog() {
36131
+ this.dialogRef.close(this.treeProcessData.resultSelected);
36132
+ }
36133
+ ngOnInit() {
36134
+ }
36135
+ ngOnDestroy() {
36136
+ this.ngUnsubscribe.next();
36137
+ this.ngUnsubscribe.complete();
36138
+ }
36139
+ get currentTreeData() {
36140
+ return this.treeProcessData ? this.treeProcessData.currentTreeData : [];
36141
+ }
36142
+ displayWhenSelectDepartmentOption($event) {
36143
+ return '';
36144
+ }
36145
+ onScrollToNode(node) {
36146
+ // this.treeProcessData.scrollToNode(node.id);
36147
+ }
36148
+ onRemoveNode(node) {
36149
+ this.treeProcessData.onRemoveNode(node.id);
36150
+ }
36151
+ /**
36152
+ * Gets a list of the data node's subtree of descendent data nodes.
36153
+ */
36154
+ getChildrenNode(node) {
36155
+ return this.treeProcessData.getListChildrenOfNode(node);
36156
+ }
36157
+ onResultDepartmentChange(data) {
36158
+ this.resultSelected = data.map(item => {
36159
+ return Object.assign(Object.assign({}, item), { tooltip: this.generateTootip(item) });
36160
+ });
36161
+ }
36162
+ defaultFormatTooltipNode(node) {
36163
+ return node.isGroup ? this.formatString(this.popupData.config.tooltipIncludeLabel ? this.popupData.config.tooltipIncludeLabel : this.LANG.TOOLTIP_INCLUDE_SUB_DEPARTMENT, node.name, node.children.length.toString()) : node.name;
36164
+ }
36165
+ generateTootip(node) {
36166
+ return !!this.popupData.formatTooltipItemResult ? this.popupData.formatTooltipItemResult(node) : this.defaultFormatTooltipNode(node);
36167
+ }
36168
+ updateResultSearch(data) {
36169
+ if (!this.treeProcessData)
36170
+ return;
36171
+ this.treeProcessData.setResultSearch(data);
36172
+ }
36173
+ formatString(...replacements) {
36174
+ let result = arguments[0];
36175
+ for (let i = 0; i < arguments.length - 1; i++) {
36176
+ const reg = new RegExp(`\\{${i}\\}`, 'gm');
36177
+ result = result.replace(reg, arguments[i + 1]);
36178
+ }
36179
+ return result;
36180
+ }
36181
+ /**
36182
+ * This function use for lazy load children of node
36183
+ * @param node node update
36184
+ * @param data list children to update node.
36185
+ * @param mode default is update that replace current list children by new list children , if mode = 'insert' will insert new value to list children existed before.
36186
+ */
36187
+ updateChildOfNode(node, data, mode = 'update') {
36188
+ this.treeProcessData.updateChildOfNode(node, data, mode);
36189
+ }
36190
+ addRootTree(data = []) {
36191
+ this.treeProcessData.addRootTree(data);
36192
+ }
36193
+ /**
36194
+ * This function handle check node of tree
36195
+ * @param node node of tree
36196
+ * @param callback do something before handle check node
36197
+ * @returns
36198
+ */
36199
+ onBeforeCheckNode(node, callback) {
36200
+ return this.treeProcessData.onBeforeCheckNode(node, callback);
36201
+ }
36202
+ handleCheckNode(node) {
36203
+ if (!this.treeProcessData)
36204
+ return;
36205
+ this.treeProcessData.handleCheckNode(node);
36206
+ }
36207
+ /**
36208
+ * This method use for lazy mode, do some thing before init list node selected
36209
+ * @param callback
36210
+ * @returns
36211
+ */
36212
+ onBeforeInitNodeSelected(callback) {
36213
+ return __awaiter(this, void 0, void 0, function* () {
36214
+ if (!this.treeProcessData)
36215
+ return;
36216
+ if (!!callback)
36217
+ yield this.treeProcessData.onBeforeInitNodeSelected(callback);
36218
+ });
36219
+ }
36220
+ /**
36221
+ * Get node by id of node
36222
+ * @param nodeId id of node
36223
+ * @returns
36224
+ */
36225
+ findNode(nodeId) {
36226
+ if (!this.treeProcessData)
36227
+ return;
36228
+ return this.treeProcessData.treeControl.dataNodes.find(node => node.id === nodeId.toString());
36229
+ }
36230
+ /**
36231
+ * This method use for lazy mode, do some thing before select all result search
36232
+ * @param callback
36233
+ * @returns
36234
+ */
36235
+ onBeforeCheckAllSearch(callback) {
36236
+ return __awaiter(this, void 0, void 0, function* () {
36237
+ if (!this.treeProcessData)
36238
+ return;
36239
+ yield this.treeProcessData.onBeforeCheckAllSearch(callback);
36240
+ });
36241
+ }
36242
+ /**
36243
+ * This method use for lazy mode, do some thing before check item result
36244
+ * @param callback
36245
+ * @returns
36246
+ */
36247
+ onBeforeCheckItemSearch(item, callback) {
36248
+ return this.treeProcessData.onBeforeCheckItemSearch(item, callback);
36249
+ }
36250
+ setLoadingStateNode(isLoading, nodeId) {
36251
+ !!this.treeProcessData && this.treeProcessData.setLoadingStateNode(isLoading, nodeId);
36252
+ }
36253
+ /**
36254
+ * Select a value or an array of values.
36255
+ */
36256
+ onSelectNode(...nodeIds) {
36257
+ this.treeProcessData.onSelectNode(...nodeIds);
36258
+ }
36259
+ /**
36260
+ * Deselects a value or an array of values.
36261
+ */
36262
+ onDeselectNode(...nodeIds) {
36263
+ this.treeProcessData.onDeselectNode(...nodeIds);
36264
+ }
36265
+ /**
36266
+ * Toggles a value between selected and deselected.
36267
+ */
36268
+ onToggleNode(nodeId) {
36269
+ this.treeProcessData.onToggleNode(nodeId);
36270
+ }
36271
+ getNodeById(nodeId) {
36272
+ return this.treeProcessData.getNodeById(nodeId);
36273
+ }
36274
+ isNodeLoading(nodeId) {
36275
+ if (!this.treeProcessData)
36276
+ return false;
36277
+ const node = this.treeProcessData.getNodeById(nodeId);
36278
+ return !!node && node.isLoading;
36279
+ }
36280
+ setLoadingMore(state) {
36281
+ if (!this.treeProcessData)
36282
+ return;
36283
+ this.treeProcessData.getLoadingMore$.next(state);
36284
+ }
36285
+ setLoading(state) {
36286
+ if (!this.treeProcessData)
36287
+ return;
36288
+ this.treeProcessData.getLoading$.next(state);
36289
+ }
36290
+ setLoadingNode(nodeId, state) {
36291
+ if (!this.treeProcessData)
36292
+ return;
36293
+ const node = this.treeProcessData.getNodeById(nodeId);
36294
+ if (!!node)
36295
+ node.isLoading = state;
36296
+ }
36297
+ updateTreeData(data = this.currentTreeData) {
36298
+ !!this.treeProcessData && this.treeProcessData.updateDataTree(data);
36299
+ }
36300
+ onDestroyLoadMore() {
36301
+ this.treeProcessData.onDestroyLoadMore();
36302
+ }
36303
+ setSelectedListData(data) {
36304
+ this.popupData.config.selectedList = data;
36305
+ }
36306
+ getCheckedStatusNode(node) {
36307
+ return this.treeProcessData.getCheckedStatusNode(node);
36308
+ }
36309
+ updateNodeInformation(node) {
36310
+ return this.treeProcessData.updateNodeInformation(node);
36311
+ }
36312
+ updateSelectedResultData(node) {
36313
+ return this.treeProcessData.updateSelectedResultData(node);
36314
+ }
36315
+ getAllParentNode(node) {
36316
+ return this.treeProcessData.getAllParentNode(node);
36317
+ }
36318
+ onCheckNode(node, fireEventCheckNode = true) {
36319
+ return this.treeProcessData.onCheckNode(node, fireEventCheckNode);
36320
+ }
36321
+ getChildrenSelected(node) {
36322
+ return this.treeProcessData.getChildrenSelected(node);
36323
+ }
36324
+ }
36325
+ SelectProcessDataComponent.decorators = [
36326
+ { type: Component, args: [{
36327
+ selector: 'qms-select-process-data',
36328
+ template: "<div class=\"qms-select-department\">\n <div class=\"header-dialog mb-2\">\n <span>{{popupData.headerName}}</span>\n <button matDialogClose class=\"btn-close-dialog\" color=\"light\" qms-btn-icon>\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div>\n <div class=\"qms-scrollbar\">\n <div>\n <qms-select-process-data-tree #treeProcessData customClass=\"custom-department-tree\"\n [height]=\"popupData.config.isMobile ? '38vh' : '50vh'\" [rowsSkeleton]=\"9\" [config]=\"popupData.config\"\n (onSearchEvent)=\"onSearchEvent.emit($event)\" (onValueChangeEvent)=\"onResultDepartmentChange($event)\"\n (onPagingSearchEvent)=\"onPagingEvent.emit($event)\" (onCheckNodeEvent)=\"onCheckNodeEvent.emit($event)\"\n (onExpandNodeEvent)=\"onExpandNodeEvent.emit($event)\" (onLoadMoreEvent)=\"onLoadMoreEvent.emit()\"\n (onCheckAllItemSearchEvent)=\"onCheckAllItemSearchEvent.emit($event)\"\n (onCheckItemSearchEvent)=\"onCheckItemSearchEvent.emit($event)\"\n (toggleIncludeChildEvent)=\"toggleIncludeChildEvent.emit($event)\">\n </qms-select-process-data-tree>\n </div>\n </div>\n <div class=\"line__divider\"></div>\n <div [@heightAnimation] *ngIf=\"treeProcessData && !!treeProcessData.resultSelected.length\" class=\" pr-0 pe-0\">\n <div class=\"header-title\">{{LANG.RESULTS}}</div>\n <div class=\"result-content pr-0 pe-0\">\n <mat-chip-list class=\"panel__item qms-scrollbar\">\n <div [@inOutAnimation_2] [id]=\"'item-result-'+item.id\" *ngFor=\"let item of treeProcessData.resultSelected\">\n <mat-chip [@updateItemAnimation] *qmsContentChanges=\"item.children?.length\"\n [qms-tool-tip]=\"generateTootip(item)\" position=\"top\" mode=\"dark\" qms-chip [removable]=\"true\">\n <span (click)=\"onScrollToNode(item)\" qms-chip-body>\n <span class=\"related__item__content_name\" #itemName>\n <span>{{item.name}}</span>\n <span class=\"select__include-children__count\" *ngIf=\"!!item?.isGroup && !popupData.config.lazy\">\n {{item.children.length}}/{{item.childCount}}\n </span>\n <span class=\"select__include-children__count\" *ngIf=\"!!item?.isGroup && popupData.config.lazy\">\n {{item.selectedChildCount}}/{{item.childCount}}\n </span>\n </span>\n </span>\n <mat-icon *ngIf=\"!isNodeLoading(item.id); else loadingSpinner\"\n (click)=\"onRemoveNode(item)\">cancel</mat-icon>\n </mat-chip>\n </div>\n </mat-chip-list>\n </div>\n </div>\n <mat-divider *ngIf=\"treeProcessData && !!treeProcessData.resultSelected.length\" class=\"mx-auto\"></mat-divider>\n <div class=\"confirm__button__groups\">\n <button (click)=\"onCloseDialog()\" class=\"btn-add\"\n [disabled]=\"!resultSelected.length && !popupData.config.canAddNullResult\"\n [class.qms-btn-disabled]=\"!resultSelected.length && !popupData.config.canAddNullResult\" qms-btn>\n <span>{{LANG.ADD}}</span>\n <span>\n ({{treeProcessData.resultSelected.length}})\n </span>\n </button>\n <button qms-btn-text mat-dialog-close>\n Cancel\n </button>\n </div>\n </div>\n</div>\n\n<!-- Loading spinner -->\n<ng-template #loadingSpinner>\n <div class=\"qms-spinner-wrapper\">\n <div class=\"qms-spinner center\">\n <mat-spinner [diameter]=\"20\" [strokeWidth]=\"2\"></mat-spinner>\n </div>\n </div>\n</ng-template>",
36329
+ providers: [
36330
+ {
36331
+ provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
36332
+ useValue: ɵ0
36333
+ }
36334
+ ],
36335
+ animations: [SelectDepartmentAnimationTrigger],
36336
+ styles: ["@charset \"UTF-8\";@font-face{font-family:icomoon;src:url(../assets/fonts/icomoon.eot?aghldx);src:url(../assets/fonts/icomoon.eot?aghldx#iefix) format(\"embedded-opentype\"),url(../assets/fonts/icomoon.ttf?aghldx) format(\"truetype\"),url(../assets/fonts/icomoon.woff?aghldx) format(\"woff\"),url(../assets/fonts/icomoon.svg?aghldx#icomoon) format(\"svg\");font-weight:400;font-style:normal;font-display:block}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-acutely-toxic .path1:before{content:\"\uE91B\";color:#e32730}.icon-acutely-toxic .path2:before{content:\"\uE922\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path3:before{content:\"\uE923\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path4:before{content:\"\uE924\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path5:before{content:\"\uE925\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path6:before{content:\"\uE926\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path7:before{content:\"\uE927\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path8:before{content:\"\uE928\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path9:before{content:\"\uE929\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path10:before{content:\"\uE92A\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path11:before{content:\"\uE92B\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path12:before{content:\"\uE92C\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path13:before{content:\"\uE92D\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path14:before{content:\"\uE92E\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path15:before{content:\"\uE92F\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path16:before{content:\"\uE930\";margin-left:-1em;color:#323232}.icon-acutely-toxic .path17:before{content:\"\uE931\";margin-left:-1em;color:#323232}.icon-add-column:before{content:\"\uE932\"}.icon-add-tooltip:before{content:\"\uE933\"}.icon-admin:before{content:\"\uE934\"}.icon-annual-cycle:before{content:\"\uE935\"}.icon-assignment-repete:before{content:\"\uE936\"}.icon-barrier-add:before{content:\"\uE937\"}.icon-barrier-edit:before{content:\"\uE938\"}.icon-barrier-view:before{content:\"\uE939\"}.icon-button-group:before{content:\"\uE93A\"}.icon-chemical-manager:before{content:\"\uE93B\"}.icon-chronic-health-hazard .path1:before{content:\"\uE93C\";color:#e32730}.icon-chronic-health-hazard .path2:before{content:\"\uE93D\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path3:before{content:\"\uE93E\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path4:before{content:\"\uE93F\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path5:before{content:\"\uE940\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path6:before{content:\"\uE941\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path7:before{content:\"\uE942\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path8:before{content:\"\uE943\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path9:before{content:\"\uE944\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path10:before{content:\"\uE945\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path11:before{content:\"\uE946\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path12:before{content:\"\uE947\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path13:before{content:\"\uE948\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path14:before{content:\"\uE949\";margin-left:-1em;color:#323232}.icon-chronic-health-hazard .path15:before{content:\"\uE94A\";margin-left:-1em;color:#323232}.icon-contingency:before{content:\"\uE94B\"}.icon-corrosive .path1:before{content:\"\uE94C\";color:#323232}.icon-corrosive .path2:before{content:\"\uE94D\";margin-left:-1em;color:#323232}.icon-corrosive .path3:before{content:\"\uE94E\";margin-left:-1em;color:#323232}.icon-corrosive .path4:before{content:\"\uE94F\";margin-left:-1em;color:#323232}.icon-corrosive .path5:before{content:\"\uE950\";margin-left:-1em;color:#323232}.icon-corrosive .path6:before{content:\"\uE951\";margin-left:-1em;color:#323232}.icon-corrosive .path7:before{content:\"\uE952\";margin-left:-1em;color:#323232}.icon-corrosive .path8:before{content:\"\uE953\";margin-left:-1em;color:#323232}.icon-corrosive .path9:before{content:\"\uE954\";margin-left:-1em;color:#323232}.icon-corrosive .path10:before{content:\"\uE955\";margin-left:-1em;color:#323232}.icon-corrosive .path11:before{content:\"\uE956\";margin-left:-1em;color:#323232}.icon-corrosive .path12:before{content:\"\uE957\";margin-left:-1em;color:#323232}.icon-corrosive .path13:before{content:\"\uE958\";margin-left:-1em;color:#323232}.icon-corrosive .path14:before{content:\"\uE959\";margin-left:-1em;color:#323232}.icon-corrosive .path15:before{content:\"\uE95A\";margin-left:-1em;color:#323232}.icon-corrosive .path16:before{content:\"\uE95B\";margin-left:-1em;color:#323232}.icon-corrosive .path17:before{content:\"\uE95C\";margin-left:-1em;color:#323232}.icon-corrosive .path18:before{content:\"\uE95D\";margin-left:-1em;color:#323232}.icon-corrosive .path19:before{content:\"\uE95E\";margin-left:-1em;color:#323232}.icon-corrosive .path20:before{content:\"\uE95F\";margin-left:-1em;color:#323232}.icon-corrosive .path21:before{content:\"\uE960\";margin-left:-1em;color:#e32730}.icon-dashboard:before{content:\"\uE961\"}.icon-database-sds:before{content:\"\uE962\"}.icon-description-add:before{content:\"\uE963\"}.icon-description-edit:before{content:\"\uE964\"}.icon-description-view:before{content:\"\uE965\";color:#666}.icon-document-read .path1:before{content:\"\uE966\";color:#000;opacity:.6}.icon-document-read .path2:before{content:\"\uE967\";margin-left:-1em;color:#fff}.icon-document-read .path3:before{content:\"\uE968\";margin-left:-1em;color:#000;opacity:.6}.icon-draft:before{content:\"\uE969\"}.icon-expired-off:before{content:\"\uE96A\"}.icon-expired-on:before{content:\"\uE96B\"}.icon-explosive .path1:before{content:\"\uE96C\";color:#e32730}.icon-explosive .path2:before{content:\"\uE96D\";margin-left:-1em;color:#323232}.icon-explosive .path3:before{content:\"\uE96E\";margin-left:-1em;color:#323232}.icon-explosive .path4:before{content:\"\uE96F\";margin-left:-1em;color:#323232}.icon-explosive .path5:before{content:\"\uE970\";margin-left:-1em;color:#323232}.icon-explosive .path6:before{content:\"\uE971\";margin-left:-1em;color:#323232}.icon-explosive .path7:before{content:\"\uE972\";margin-left:-1em;color:#323232}.icon-explosive .path8:before{content:\"\uE973\";margin-left:-1em;color:#323232}.icon-explosive .path9:before{content:\"\uE974\";margin-left:-1em;color:#323232}.icon-explosive .path10:before{content:\"\uE975\";margin-left:-1em;color:#323232}.icon-explosive .path11:before{content:\"\uE976\";margin-left:-1em;color:#323232}.icon-explosive .path12:before{content:\"\uE977\";margin-left:-1em;color:#323232}.icon-explosive .path13:before{content:\"\uE978\";margin-left:-1em;color:#323232}.icon-explosive .path14:before{content:\"\uE979\";margin-left:-1em;color:#323232}.icon-explosive .path15:before{content:\"\uE97A\";margin-left:-1em;color:#323232}.icon-explosive .path16:before{content:\"\uE97B\";margin-left:-1em;color:#323232}.icon-explosive .path17:before{content:\"\uE97C\";margin-left:-1em;color:#323232}.icon-explosive .path18:before{content:\"\uE97D\";margin-left:-1em;color:#323232}.icon-explosive .path19:before{content:\"\uE97E\";margin-left:-1em;color:#323232}.icon-explosive .path20:before{content:\"\uE97F\";margin-left:-1em;color:#323232}.icon-explosive .path21:before{content:\"\uE980\";margin-left:-1em;color:#323232}.icon-explosive .path22:before{content:\"\uE981\";margin-left:-1em;color:#323232}.icon-explosive .path23:before{content:\"\uE982\";margin-left:-1em;color:#323232}.icon-explosive .path24:before{content:\"\uE983\";margin-left:-1em;color:#323232}.icon-explosive .path25:before{content:\"\uE984\";margin-left:-1em;color:#323232}.icon-explosive .path26:before{content:\"\uE985\";margin-left:-1em;color:#323232}.icon-explosive .path27:before{content:\"\uE986\";margin-left:-1em;color:#323232}.icon-explosive .path28:before{content:\"\uE987\";margin-left:-1em;color:#323232}.icon-explosive .path29:before{content:\"\uE988\";margin-left:-1em;color:#323232}.icon-explosive .path30:before{content:\"\uE989\";margin-left:-1em;color:#323232}.icon-explosive .path31:before{content:\"\uE98A\";margin-left:-1em;color:#323232}.icon-explosive .path32:before{content:\"\uE98B\";margin-left:-1em;color:#323232}.icon-explosive .path33:before{content:\"\uE98C\";margin-left:-1em;color:#323232}.icon-explosive .path34:before{content:\"\uE98D\";margin-left:-1em;color:#323232}.icon-explosive .path35:before{content:\"\uE98E\";margin-left:-1em;color:#323232}.icon-explosive .path36:before{content:\"\uE98F\";margin-left:-1em;color:#323232}.icon-explosive .path37:before{content:\"\uE990\";margin-left:-1em;color:#323232}.icon-explosive .path38:before{content:\"\uE991\";margin-left:-1em;color:#323232}.icon-explosive .path39:before{content:\"\uE992\";margin-left:-1em;color:#323232}.icon-explosive .path40:before{content:\"\uE993\";margin-left:-1em;color:#323232}.icon-explosive .path41:before{content:\"\uE994\";margin-left:-1em;color:#323232}.icon-explosive .path42:before{content:\"\uE995\";margin-left:-1em;color:#323232}.icon-explosive .path43:before{content:\"\uE996\";margin-left:-1em;color:#323232}.icon-explosive .path44:before{content:\"\uE997\";margin-left:-1em;color:#323232}.icon-explosive .path45:before{content:\"\uE998\";margin-left:-1em;color:#323232}.icon-explosive .path46:before{content:\"\uE999\";margin-left:-1em;color:#323232}.icon-file-excel:before{content:\"\uE99A\"}.icon-file-pdf:before{content:\"\uE99B\"}.icon-file-pdf-verified .path1:before{content:\"\uE99C\";color:#000;opacity:.6}.icon-file-pdf-verified .path2:before{content:\"\uE99D\";margin-left:-1em;color:#fff}.icon-file-pdf-verified .path3:before{content:\"\uE99E\";margin-left:-1em;color:#000;opacity:.6}.icon-file-word:before{content:\"\uE99F\"}.icon-filter-alt:before{content:\"\uE9A0\"}.icon-flammable .path1:before{content:\"\uE9A1\";color:#323232}.icon-flammable .path2:before{content:\"\uE9A2\";margin-left:-1em;color:#323232}.icon-flammable .path3:before{content:\"\uE9A3\";margin-left:-1em;color:#e32730}.icon-gas-under-pressure .path1:before{content:\"\uE9A4\";color:#323232}.icon-gas-under-pressure .path2:before{content:\"\uE9A5\";margin-left:-1em;color:#e32730}.icon-health-hazard .path1:before{content:\"\uE9A6\";color:#323232}.icon-health-hazard .path2:before{content:\"\uE9A7\";margin-left:-1em;color:#e32730}.icon-line-break:before{content:\"\uE9A8\"}.icon-location:before{content:\"\uE9A9\"}.icon-measure-add:before{content:\"\uE9AA\"}.icon-measure-edit:before{content:\"\uE9AB\"}.icon-measure-view:before{content:\"\uE9AC\";color:#666}.icon-messages:before{content:\"\uE9AD\"}.icon-monitoring:before{content:\"\uE9AE\";color:#666}.icon-move:before{content:\"\uE9AF\"}.icon-oxidizing .path1:before{content:\"\uE9B0\";color:#e32730}.icon-oxidizing .path2:before{content:\"\uE9B1\";margin-left:-1em;color:#323232}.icon-oxidizing .path3:before{content:\"\uE9B2\";margin-left:-1em;color:#323232}.icon-oxidizing .path4:before{content:\"\uE9B3\";margin-left:-1em;color:#323232}.icon-process-area-closed:before{content:\"\uE9B4\"}.icon-process-area-open:before{content:\"\uE9B5\"}.icon-process-linked .path1:before{content:\"\uE9B6\";color:#000;opacity:.6}.icon-process-linked .path2:before{content:\"\uE9B7\";margin-left:-1em;color:#666}.icon-risk:before{content:\"\uE9B8\"}.icon-search-in-file:before{content:\"\uE9B9\"}.icon-sort-ascending:before{content:\"\uE9BA\"}.icon-sort-descending:before{content:\"\uE9BB\"}.icon-subscript:before{content:\"\uE9BC\"}.icon-superscript:before{content:\"\uE9BD\"}.icon-syncronice-favorites:before{content:\"\uE9BE\"}.icon-system-settings:before{content:\"\uE9BF\"}.icon-view-three-outlined:before{content:\"\uE9C0\"}.icon-workplace-safety:before{content:\"\uE9C1\"}.icon-checklist:before{content:\"\uE900\"}.icon-department-document .path1:before{content:\"\uE901\";color:#000;opacity:.6}.icon-department-document .path2:before{content:\"\uE902\";margin-left:-1em;color:#00804c}.icon-department-folder-closed .path1:before{content:\"\uE903\";color:#000;opacity:.6}.icon-department-folder-closed .path2:before{content:\"\uE904\";margin-left:-1em;color:#00804c}.icon-department-folder-open .path1:before{content:\"\uE905\";color:#000;opacity:.6}.icon-department-folder-open .path2:before{content:\"\uE906\";margin-left:-1em;color:#00804c}.icon-deviation:before{content:\"\uE907\"}.icon-dropdown-folder .path1:before{content:\"\uE908\";color:#00324e}.icon-dropdown-folder .path2:before{content:\"\uE909\";margin-left:-1em;color:#fff;opacity:.6}.icon-enterprise-document .path1:before{content:\"\uE90A\";color:#000;opacity:.6}.icon-enterprise-document .path2:before{content:\"\uE90B\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-closed .path1:before{content:\"\uE90C\";color:#000;opacity:.6}.icon-enterprise-folder-closed .path2:before{content:\"\uE90D\";margin-left:-1em;color:#cf4714}.icon-enterprise-folder-open .path1:before{content:\"\uE90E\";color:#000;opacity:.6}.icon-enterprise-folder-open .path2:before{content:\"\uE90F\";margin-left:-1em;color:#cf4714}.icon-folder-closed:before{content:\"\uE910\"}.icon-folder-open:before{content:\"\uE911\"}.icon-keyboard_arrow_down:before{content:\"\uE912\"}.icon-keyboard_arrow_up:before{content:\"\uE913\"}.icon-local-document .path1:before{content:\"\uE914\";color:#000;opacity:.6}.icon-local-document .path2:before{content:\"\uE915\";margin-left:-1em;color:#1954a9}.icon-local-folder-closed .path1:before{content:\"\uE916\";color:#000;opacity:.6}.icon-local-folder-closed .path2:before{content:\"\uE917\";margin-left:-1em;color:#1954a9}.icon-local-folder-open .path1:before{content:\"\uE918\";color:#000;opacity:.6}.icon-local-folder-open .path2:before{content:\"\uE919\";margin-left:-1em;color:#1954a9}.icon-process:before{content:\"\uE91A\"}.icon-regional-document .path1:before{content:\"\uE91C\";color:#000;opacity:.6}.icon-regional-document .path2:before{content:\"\uE91D\";margin-left:-1em;color:#662e0d}.icon-regional-folder-closed .path1:before{content:\"\uE91E\";color:#000;opacity:.6}.icon-regional-folder-closed .path2:before{content:\"\uE91F\";margin-left:-1em;color:#662e0d}.icon-regional-folder-open .path1:before{content:\"\uE920\";color:#000;opacity:.6}.icon-regional-folder-open .path2:before{content:\"\uE921\";margin-left:-1em;color:#662e0d}.qms-select-department{font-family:Open Sans,sans-serif}.qms-select-department .cursor-pointer{cursor:pointer}.qms-select-department .ml-5{margin-left:10px}.qms-select-department .padding-5{padding:5px}.qms-select-department .header-dialog{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:16px}.qms-select-department .input__field{display:flex;align-items:center;position:relative}.qms-select-department .input__field input.input-search{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qms-select-department .input__field .btn-search{cursor:pointer;vertical-align:middle;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.qms-select-department .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qms-select-department .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qms-select-department .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qms-select-department .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qms-select-department .panel__item{max-height:175px;margin-top:4px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;display:block}.qms-select-department .panel__item .related__item__inline{max-width:100%}.qms-select-department .panel__item ::ng-deep .mat-chip-list-wrapper{margin:0 -4px!important}.qms-select-department .panel__item .select__toggle-include{width:100%}.qms-select-department .panel__item .select__toggle-include.toggle-include-child .mat-slide-toggle.qms-group-options .mat-slide-toggle-thumb{background-color:#5a5a5a!important}.qms-select-department .panel__item .related__item__content{height:32px;line-height:32px;background-color:var(--related-item-background);max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qms-select-department .panel__item .related__item__content .mat-icon{color:var(--related-mat-icon-color);font-size:24px}.qms-select-department .header-title{font-weight:600;color:rgba(0,0,0,.87)}.qms-select-department .result-content{padding-right:0!important}.qms-select-department .result-content .mat-chip-list{min-height:40px}.qms-select-department .result-content .mat-chip-list .mat-icon{color:rgba(0,0,0,.3)!important;cursor:pointer}.qms-select-department .result-content .mat-chip-list .mat-icon:hover{color:#000!important}.qms-select-department .result-content span.related__item__content_name{min-width:calc(100% - 13px);max-width:250px;display:flex;align-items:center}.qms-select-department .result-content span.related__item__content_name>span:first-child{display:inline-block;margin-right:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.qms-select-department .result-content span.related__item__content_name .select__include-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600;line-height:16px}.qms-select-department .text-name{position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;width:100%}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-layout{white-space:normal}.qms-select-department ::ng-deep .mat-checkbox.qms-group-options.flex-direction-row .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}.qms-select-department ::ng-deep .custom-department-tree .qms-view-search-result{height:100%!important}.qms-select-department ::ng-deep .custom-department-tree .qms-view-search-result .result{max-height:calc(100% - 80px)!important}.qms-select-department ::ng-deep .custom-department-tree .loading-container{height:calc(100% - 40px)!important}.qms-select-department ::ng-deep.btn-close-dialog.qms-btn-icon:focus:not(:hover){background-color:unset!important;color:unset!important}.qms-spinner-wrapper{display:inline-block;width:22px;height:22px}.qms-spinner-wrapper .qms-spinner{font-size:20px;width:1em;height:1em;position:absolute;right:5px;top:50%;transform:translateY(-50%)}.qms-spinner-wrapper .qms-spinner .mat-progress-spinner circle,.qms-spinner-wrapper .qms-spinner .mat-spinner circle{stroke:#1b75be!important}@media screen and (max-width:600px){::ng-deep .cdk-global-overlay-wrapper{justify-content:center!important;width:100vw}.header-title{font-size:14px}.related__item__content_name{font-size:12px!important}}"]
36337
+ },] }
36338
+ ];
36339
+ SelectProcessDataComponent.ctorParameters = () => [
36340
+ { type: ChangeDetectorRef },
36341
+ { type: MatDialogRef },
36342
+ { type: SelectDepartmentPopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
36343
+ { type: TranslateLibraryService }
36344
+ ];
36345
+ SelectProcessDataComponent.propDecorators = {
36346
+ treeProcessData: [{ type: ViewChild, args: ['treeProcessData',] }],
36347
+ onPagingEvent: [{ type: Output }],
36348
+ onSearchEvent: [{ type: Output }],
36349
+ onCheckNodeEvent: [{ type: Output }],
36350
+ onExpandNodeEvent: [{ type: Output }],
36351
+ onLoadMoreEvent: [{ type: Output }],
36352
+ onCheckItemSearchEvent: [{ type: Output }],
36353
+ onCheckAllItemSearchEvent: [{ type: Output }],
36354
+ toggleIncludeChildEvent: [{ type: Output }]
36355
+ };
36356
+
36357
+ class QMSSelectProcessDataModule {
36358
+ }
36359
+ QMSSelectProcessDataModule.decorators = [
36360
+ { type: NgModule, args: [{
36361
+ declarations: [
36362
+ SelectProcessDataComponent,
36363
+ ],
36364
+ imports: [
36365
+ CommonModule,
36366
+ MatProgressBarModule,
36367
+ MatTreeModule,
36368
+ MatCheckboxModule,
36369
+ ReactiveFormsModule,
36370
+ FormsModule,
36371
+ QmsAngularModule,
36372
+ MatIconModule,
36373
+ QMSTreeModule,
36374
+ MatButtonModule,
36375
+ MatDialogModule,
36376
+ MatExpansionModule,
36377
+ MatAutocompleteModule,
36378
+ MatInputModule,
36379
+ QMSAppIconModule,
36380
+ QMSButtonModule,
36381
+ MatSlideToggleModule,
36382
+ QMSButtonModule,
36383
+ MatFormFieldModule,
36384
+ MatChipsModule,
36385
+ QMSSelectProcessDataTreeModule,
36386
+ MatDividerModule,
36387
+ MatProgressSpinnerModule
36388
+ ],
36389
+ exports: [
36390
+ SelectProcessDataComponent
36391
+ ],
36392
+ schemas: [
36393
+ CUSTOM_ELEMENTS_SCHEMA
36394
+ ]
36395
+ },] }
36396
+ ];
36397
+
34929
36398
  /*
34930
36399
  * Public API Surface of qms-angular
34931
36400
  */
@@ -34934,5 +36403,5 @@ class FilterPersonModel {
34934
36403
  * Generated bundle index. Do not edit.
34935
36404
  */
34936
36405
 
34937
- export { AnimationTreeDepartment, AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, BreadcrumbType, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, 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, DateFormatPipe, DepartmentLocationBreadCrumb, DepartmentSearchResultModel, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, EllipsifyDirective, FileErrorType, FileType, FilterPersonModel, FlatNodeNavDrawer, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, MfeUtil, ModeDepartmentTreeeViewEnum, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NavigatorElementView, NavigatorLinkView, NewTreeComponent, NewTreeModel, OptionSelectAccessEnum, OptionSelectAccessModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PROCESS_INTERCONNECTED_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAccessItem, QMSAccessPagingChangeModel, QMSAccessPagingModel, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBPMNComponent, QMSBPMNConfig, QMSBasicTreeComponent, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorFlowchart, QMSCKEditorFlowchartService, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorSaveAsTemplate, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSCollapseGroupDirective, QMSComment, QMSConfirmDialog, QMSContentChangesDirective, QMSDepartmentPagingModel, QMSDialogConfig, QMSDialogContainer, QMSDialogContainerV2, QMSDialogContent, QMSDialogFooter, QMSDialogHeader, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFlatNodeTree, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSMultiIconDirective, QMSNavDrawerComponent, QMSNavDrawerModule, QMSNavigationDrawerComponent, QMSNavigationDrawerModule, QMSNewTreeModule, QMSPaginatorComponent, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRangeSliderModule, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSRowDetailDirective, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectAccessData, QMSSelectAccessDialog, QMSSelectAccessDialogComponent, QMSSelectAccessDialogModule, QMSSelectAccessGlobalService, QMSSelectAccessResult, QMSSelectDepartmentGlobalService, QMSSelectDepartmentModule, QMSSelectDepartmentTreeConfig, QMSSelectDepartmentTreeGlobalService, QMSSelectDepartmentTreeModule, QMSSelectIncludeChildrenGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSideSheetModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableModule, QMSTableRowDirective, QMSTextBlockDirective, QMSTextBlockLine, QMSTextTruncateDirective, QMSThemingLibraryService, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeConfig, QMSTreeGlobalService, QMSTreeModel, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QMS_LANGUAGES, QMS_THEMES, QMS_THEME_DEFAULT, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBPMNModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerButtonType, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsCkeditorLinkSimpleComponent, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, 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, SelectAccessAnimationTrigger, SelectConst, SelectDepartmentComponent, SelectDepartmentPopupData, SelectDepartmentTreeComponent, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOneNextData, SelectOneNextDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, TargetType, TargetTypeName, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeModelNavDrawer, TreeNode$1 as TreeNode, UploadErrorData, app, basic, en, erd, fsa, mixinColor, no, notExceedSize, org, pn, requiredFileType, standard, uml, ɵ2, SharedMaterialModule as ɵa, TreeComponent as ɵb, QMSCKEditorUploadService as ɵc, QMSTreeModule as ɵd, QMSBasicTreeComponent as ɵe, QMSCKEditorTreeService as ɵf, QMSCKEditorTemplateComponent as ɵg, QMSCKEditorCommonService as ɵh, QMSSelectProcessDocumentGlobalService as ɵi, LinkAttachmentComponent as ɵj, QMSCKEditorTooltipComponent as ɵk, QMSCKEditorTooltip as ɵl, QMSCKEditorImageMapComponent as ɵm, QMSCKEditorImageMap as ɵn, QMSCKEditorBPMNConnectionService as ɵo, QMSCKEditorBpmnData as ɵp, QMSCKEditorAboutComponent as ɵq, QMSCKEditorFlowchartComponent as ɵr, BPMNLinkComponent as ɵs, ShapeLink as ɵt };
36406
+ export { AnimationTreeDepartment, AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, BreadcrumbType, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, 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, DateFormatPipe, DepartmentLocationBreadCrumb, DepartmentSearchResultModel, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, EllipsifyDirective, FileErrorType, FileType, FilterPersonModel, FlatNodeNavDrawer, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, MfeUtil, ModeDepartmentTreeeViewEnum, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NavigatorElementView, NavigatorLinkView, NewTreeComponent, NewTreeModel, OptionSelectAccessEnum, OptionSelectAccessModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PROCESS_INTERCONNECTED_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAccessItem, QMSAccessPagingChangeModel, QMSAccessPagingModel, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBPMNComponent, QMSBPMNConfig, QMSBasicTreeComponent, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorFlowchart, QMSCKEditorFlowchartService, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorSaveAsTemplate, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSCollapseGroupDirective, QMSComment, QMSConfirmDialog, QMSContentChangesDirective, QMSDepartmentPagingModel, QMSDialogConfig, QMSDialogContainer, QMSDialogContainerV2, QMSDialogContent, QMSDialogFooter, QMSDialogHeader, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFlatNodeTree, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSMultiIconDirective, QMSNavDrawerComponent, QMSNavDrawerModule, QMSNavigationDrawerComponent, QMSNavigationDrawerModule, QMSNewTreeModule, QMSPaginatorComponent, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRangeSliderModule, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSRowDetailDirective, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectAccessData, QMSSelectAccessDialog, QMSSelectAccessDialogComponent, QMSSelectAccessDialogModule, QMSSelectAccessGlobalService, QMSSelectAccessResult, QMSSelectDepartmentGlobalService, QMSSelectDepartmentModule, QMSSelectDepartmentTreeConfig, QMSSelectDepartmentTreeGlobalService, QMSSelectDepartmentTreeModule, QMSSelectIncludeChildrenGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDataModule, QMSSelectProcessDataTreeModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSideSheetModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableModule, QMSTableRowDirective, QMSTextBlockDirective, QMSTextBlockLine, QMSTextTruncateDirective, QMSThemingLibraryService, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeConfig, QMSTreeGlobalService, QMSTreeModel, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QMS_LANGUAGES, QMS_THEMES, QMS_THEME_DEFAULT, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBPMNModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerButtonType, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsCkeditorLinkSimpleComponent, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, 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, SelectAccessAnimationTrigger, SelectConst, SelectDepartmentComponent, SelectDepartmentPopupData, SelectDepartmentTreeComponent, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOneNextData, SelectOneNextDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDataComponent, SelectProcessDataTreeComponent, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, TargetType, TargetTypeName, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeModelNavDrawer, TreeNode$1 as TreeNode, UploadErrorData, app, basic, en, erd, fsa, mixinColor, no, notExceedSize, org, pn, requiredFileType, standard, uml, ɵ2, SharedMaterialModule as ɵa, TreeComponent as ɵb, QMSCKEditorUploadService as ɵc, QMSTreeModule as ɵd, QMSBasicTreeComponent as ɵe, QMSCKEditorTreeService as ɵf, QMSCKEditorTemplateComponent as ɵg, QMSCKEditorCommonService as ɵh, QMSSelectProcessDocumentGlobalService as ɵi, LinkAttachmentComponent as ɵj, QMSCKEditorTooltipComponent as ɵk, QMSCKEditorTooltip as ɵl, QMSCKEditorImageMapComponent as ɵm, QMSCKEditorImageMap as ɵn, QMSCKEditorBPMNConnectionService as ɵo, QMSCKEditorBpmnData as ɵp, QMSCKEditorAboutComponent as ɵq, QMSCKEditorFlowchartComponent as ɵr, BPMNLinkComponent as ɵs, ShapeLink as ɵt };
34938
36407
  //# sourceMappingURL=qms-angular.js.map