qms-angular 1.1.26 → 1.1.28

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 (128) hide show
  1. package/bundles/qms-angular.umd.js +645 -544
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/common/models/qms-flat-node.model.js +1 -1
  4. package/esm2015/lib/common/models/qms-tree-node.model.js +1 -1
  5. package/esm2015/lib/common/themes.const.js +2 -1
  6. package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +3 -3
  7. package/esm2015/lib/components/breadcrumb/breadcrumb.js +10 -4
  8. package/esm2015/lib/components/comment/comment.js +17 -11
  9. package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +9 -2
  10. package/esm2015/lib/components/qms-nav-drawer/qms-nav-drawer.component.js +3 -3
  11. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.js +3 -3
  12. package/esm2015/lib/components/qms-paginator/qms-paginator.component.js +9 -2
  13. package/esm2015/lib/components/related/list-other-related/list-related.component.js +9 -2
  14. package/esm2015/lib/components/related/model/popup-data.model.js +2 -1
  15. package/esm2015/lib/components/related/popup/related-popup.component.js +58 -24
  16. package/esm2015/lib/components/related/risk/analysis/analysis.component.js +9 -2
  17. package/esm2015/lib/components/related/risk/list/list.component.js +9 -2
  18. package/esm2015/lib/components/related/risk/result/result.component.js +9 -2
  19. package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +9 -2
  20. package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +8 -3
  21. package/esm2015/lib/components/select-access-dialog/select-access-dialog.component.js +2 -2
  22. package/esm2015/lib/components/select-department/select-department.component.js +6 -38
  23. package/esm2015/lib/components/select-department-tree/model/department-paging.model.js +1 -2
  24. package/esm2015/lib/components/select-department-tree/model/select-department-tree.config.js +2 -5
  25. package/esm2015/lib/components/select-department-tree/select-department-tree.component.js +114 -164
  26. package/esm2015/lib/components/select-department-tree/select-department-tree.module.js +2 -4
  27. package/esm2015/lib/components/select-dialog/select-dialog.js +8 -4
  28. package/esm2015/lib/components/select-include-children/select-include-children.component.js +3 -3
  29. package/esm2015/lib/components/select-one/select-one-next.component.js +3 -3
  30. package/esm2015/lib/components/select-one/select-one.component.js +3 -3
  31. package/esm2015/lib/components/select-process-document/select-process-document.component.js +3 -3
  32. package/esm2015/lib/components/tree/basic-tree.component.js +4 -4
  33. package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +9 -2
  34. package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +3 -3
  35. package/esm2015/lib/directives/chips/chip.directive.js +2 -2
  36. package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +2 -2
  37. package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +3 -3
  38. package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +3 -3
  39. package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +3 -3
  40. package/esm2015/lib/directives/file-upload/file-upload.directive.js +2 -2
  41. package/esm2015/lib/directives/search-field.directive.js +2 -2
  42. package/esm2015/lib/model/en.js +4 -2
  43. package/esm2015/lib/model/no.js +4 -2
  44. package/esm2015/lib/pipe/dateFormat.pipe.js +9 -2
  45. package/esm2015/lib/qms-angular.component.js +9 -2
  46. package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +10 -1
  47. package/esm2015/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.js +21 -15
  48. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorImageUploadType.const.js +4 -0
  49. package/esm2015/lib/qms-ckeditor-components/common/enums/ckeditor-bpmn-expand.enum.js +8 -0
  50. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +6 -9
  51. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  52. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +39 -11
  53. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +2 -2
  54. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +53 -56
  55. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +9 -4
  56. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +28 -11
  57. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +33 -2
  58. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.js +6 -2
  59. package/esm2015/qms-angular.js +11 -11
  60. package/fesm2015/qms-angular.js +589 -468
  61. package/fesm2015/qms-angular.js.map +1 -1
  62. package/lib/common/models/qms-flat-node.model.d.ts +0 -1
  63. package/lib/common/models/qms-tree-node.model.d.ts +0 -1
  64. package/lib/common/themes.const.d.ts +1 -0
  65. package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +2 -2
  66. package/lib/components/breadcrumb/breadcrumb.d.ts +3 -0
  67. package/lib/components/comment/comment.d.ts +3 -0
  68. package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +3 -0
  69. package/lib/components/qms-paginator/qms-paginator.component.d.ts +3 -0
  70. package/lib/components/related/list-other-related/list-related.component.d.ts +3 -0
  71. package/lib/components/related/model/popup-data.model.d.ts +2 -0
  72. package/lib/components/related/popup/related-popup.component.d.ts +13 -2
  73. package/lib/components/related/risk/analysis/analysis.component.d.ts +3 -0
  74. package/lib/components/related/risk/list/list.component.d.ts +3 -0
  75. package/lib/components/related/risk/result/result.component.d.ts +3 -0
  76. package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +3 -0
  77. package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +5 -3
  78. package/lib/components/select-department/select-department.component.d.ts +0 -19
  79. package/lib/components/select-department-tree/model/select-department-tree.config.d.ts +0 -3
  80. package/lib/components/select-department-tree/select-department-tree.component.d.ts +23 -51
  81. package/lib/components/select-dialog/select-dialog.d.ts +2 -1
  82. package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +3 -0
  83. package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +1 -1
  84. package/lib/directives/file-upload/file-upload-display.directive.d.ts +1 -1
  85. package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +1 -1
  86. package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +2 -2
  87. package/lib/model/en.d.ts +2 -0
  88. package/lib/model/no.d.ts +2 -0
  89. package/lib/pipe/dateFormat.pipe.d.ts +3 -0
  90. package/lib/qms-angular.component.d.ts +3 -0
  91. package/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.d.ts +1 -1
  92. package/lib/qms-ckeditor-components/common/constants/ckeditorImageUploadType.const.d.ts +3 -0
  93. package/lib/qms-ckeditor-components/common/enums/ckeditor-bpmn-expand.enum.d.ts +6 -0
  94. package/lib/qms-ckeditor-components/common/functions/common.function.d.ts +2 -4
  95. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -0
  96. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -2
  97. package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +3 -1
  98. package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +1 -0
  99. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +1 -0
  100. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +2 -0
  101. package/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.d.ts +1 -1
  102. package/package.json +1 -1
  103. package/qms-angular.d.ts +10 -10
  104. package/qms-angular.metadata.json +1 -1
  105. package/src/assets/jointjs/scss/bpmn.scss +22 -1
  106. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  107. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  108. package/src/assets/qms-ckeditor-plugin/src/plugins/anchor/anchorcommand.js +13 -3
  109. package/src/assets/qms-ckeditor-plugin/src/plugins/anchor/anchorui.js +7 -1
  110. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/bpmndialogcommand.js +12 -3
  111. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkcommand.js +35 -33
  112. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkdialogcommand.js +9 -6
  113. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkediting.js +28 -14
  114. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkimageediting.js +1 -1
  115. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkimageui.js +97 -92
  116. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkui.js +40 -28
  117. package/src/assets/qms-ckeditor-plugin/src/plugins/link/ui/linkformview.js +24 -24
  118. package/src/assets/qms-ckeditor-plugin/src/plugins/link/utils.js +8 -1
  119. package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/downcast.js +2 -2
  120. package/src/assets/qms-ckeditor-plugin/src/plugins/template/loadtemplatedialogcommand.js +20 -1
  121. package/src/assets/qms-ckeditor-plugin/src/plugins/video/theme/video.css +1 -1
  122. package/src/assets/qms-ckeditor-plugin/src/plugins/video/video/videoediting.js +3 -2
  123. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/uploadvideocommand.js +1 -1
  124. package/src/lib/components/related/popup/related-popup.component.scss +19 -0
  125. package/src/lib/components/select-department/select-department.component.scss +5 -25
  126. package/src/lib/components/select-department-tree/select-department-tree.component.scss +182 -381
  127. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.scss +4 -0
  128. package/src/lib/qms-ckeditor-components/qms-ckeditor.component.scss +4 -0
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, EventEmitter, ChangeDetectionStrategy, Input, Output, ViewEncapsulation, Inject, ElementRef, ViewChild, HostListener, Directive, ContentChild, Optional, Renderer2, InjectionToken, forwardRef, ChangeDetectorRef, ContentChildren, Attribute, NgModule, CUSTOM_ELEMENTS_SCHEMA, Pipe, ViewContainerRef, HostBinding, TemplateRef, NO_ERRORS_SCHEMA, ViewChildren, Injector } from '@angular/core';
3
- import { BehaviorSubject, ReplaySubject, Subject, forkJoin, of, timer } from 'rxjs';
3
+ import { BehaviorSubject, Subject, ReplaySubject, forkJoin, of, timer } from 'rxjs';
4
+ import { takeUntil, debounceTime, startWith, switchMap, delay } from 'rxjs/operators';
4
5
  import * as i1 from '@angular/common';
5
6
  import { CommonModule, DOCUMENT } from '@angular/common';
6
7
  import { FormControl, FormBuilder, NgControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, NG_VALIDATORS, FormGroup, Validators } from '@angular/forms';
7
8
  import { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from '@angular/material/form-field';
8
9
  import { MAT_RADIO_DEFAULT_OPTIONS, MatRadioModule } from '@angular/material/radio';
9
10
  import { MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogConfig } from '@angular/material/dialog';
10
- import { takeUntil, debounceTime, startWith, tap, map, pairwise, filter, throttleTime, switchMap, delay } from 'rxjs/operators';
11
11
  import { MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
12
12
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
13
13
  import { ComponentPortal } from '@angular/cdk/portal';
@@ -27,7 +27,7 @@ import * as moment from 'moment';
27
27
  import { __awaiter } from 'tslib';
28
28
  import { MatListModule } from '@angular/material/list';
29
29
  import { MatExpansionModule, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS } from '@angular/material/expansion';
30
- import { ScrollingModule, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
30
+ import { ScrollingModule } from '@angular/cdk/scrolling';
31
31
  import { MatSidenavModule } from '@angular/material/sidenav';
32
32
  import { MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular/material/tree';
33
33
  import { MatMenuModule } from '@angular/material/menu';
@@ -233,7 +233,8 @@ const en = {
233
233
  "ASSISTIVE_TEXT": "Assistive text",
234
234
  "WORDS": "Words",
235
235
  "CHARACTERS": "Characters",
236
- "SELECT_VIDEO_FROM_ARCHIVE": "Select video from the archive"
236
+ "SELECT_VIDEO_FROM_ARCHIVE": "Select video from the archive",
237
+ "SELECT_VIDEO_IMAGE": "Select video image"
237
238
  },
238
239
  "ABOUT": {
239
240
  "ABOUT_CKEDITOR": "About CKEditor",
@@ -388,6 +389,7 @@ const en = {
388
389
  "FULLSCREEN": "Fullscreen",
389
390
  "FLOWCHART": "Flowchart",
390
391
  "HANDBOOK": "Handbook",
392
+ "TOGGLE_FULL_SCREEN": "Toggle full screen",
391
393
  },
392
394
  "QMSCKEDITOR_MESSAGE": {
393
395
  "CONFIRM_DELETE_TEMPLATE": "Are you sure you want to delete this template?",
@@ -620,7 +622,8 @@ const no = {
620
622
  "ASSISTIVE_TEXT": "Hjelpende tekst",
621
623
  "WORDS": "Ord",
622
624
  "CHARACTERS": "Tegn",
623
- "SELECT_VIDEO_FROM_ARCHIVE": "Velg video fra arkivet"
625
+ "SELECT_VIDEO_FROM_ARCHIVE": "Velg video fra arkivet",
626
+ "SELECT_VIDEO_IMAGE": "Velg videobilde"
624
627
  },
625
628
  "ABOUT": {
626
629
  "ABOUT_CKEDITOR": "Om CKEditor",
@@ -775,6 +778,7 @@ const no = {
775
778
  "FULLSCREEN": "Fullskjermvisning",
776
779
  "FLOWCHART": "Flytskjema",
777
780
  "HANDBOOK": "eHåndbok",
781
+ "TOGGLE_FULL_SCREEN": "Veksle mellom fullskjerm",
778
782
  },
779
783
  "QMSCKEDITOR_MESSAGE": {
780
784
  "CONFIRM_DELETE_TEMPLATE": "Er du sikker på at du vil slette denne malen?",
@@ -870,14 +874,19 @@ TranslateLibraryService.ctorParameters = () => [];
870
874
  class QmsAngularComponent {
871
875
  constructor(trans) {
872
876
  this.trans = trans;
877
+ this.ngUnsubscribe = new Subject();
873
878
  }
874
879
  ngOnInit() {
875
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
880
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
876
881
  if (res) {
877
882
  this.LANG = this.trans.getObjectLang(res);
878
883
  }
879
884
  });
880
885
  }
886
+ ngOnDestroy() {
887
+ this.ngUnsubscribe.next();
888
+ this.ngUnsubscribe.complete();
889
+ }
881
890
  }
882
891
  QmsAngularComponent.decorators = [
883
892
  { type: Component, args: [{
@@ -894,26 +903,30 @@ class QMSComment {
894
903
  constructor(trans) {
895
904
  this.trans = trans;
896
905
  this.updateLog = new EventEmitter();
906
+ this.ngUnsubscribe = new Subject();
897
907
  }
898
908
  ngOnChanges(changes) {
899
- for (const propName in changes) {
900
- const changedProp = changes[propName];
901
- const to = JSON.stringify(changedProp.currentValue);
902
- if (changedProp.isFirstChange()) {
903
- }
904
- else {
905
- const from = JSON.stringify(changedProp.previousValue);
906
- }
907
- }
909
+ // for (const propName in changes) {
910
+ // const changedProp = changes[propName];
911
+ // const to = JSON.stringify(changedProp.currentValue);
912
+ // if (changedProp.isFirstChange()) {
913
+ // } else {
914
+ // const from = JSON.stringify(changedProp.previousValue);
915
+ // }
916
+ // }
908
917
  // this.sourceLog = changes.sourceLog.currentValue;
909
918
  }
910
919
  ngOnInit() {
911
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
920
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
912
921
  if (res) {
913
922
  this.LANG = this.trans.getObjectLang(res);
914
923
  }
915
924
  });
916
925
  }
926
+ ngOnDestroy() {
927
+ this.ngUnsubscribe.next();
928
+ this.ngUnsubscribe.complete();
929
+ }
917
930
  showContent(content) {
918
931
  return content.replace(/(?:\r\n|\r|\n)/g, '<br>');
919
932
  }
@@ -969,14 +982,14 @@ class SelectDialog {
969
982
  this.taskFilterCtrl = new FormControl();
970
983
  /** list of filtered by search keyword */
971
984
  this.filteredTask = new ReplaySubject(1);
972
- this._onDestroy = new Subject();
985
+ this.ngUnsubscribe = new Subject();
973
986
  this.data.list.map(item => {
974
987
  item.checked = !!item.checked;
975
988
  this.task.subtasks.push(item);
976
989
  });
977
990
  }
978
991
  ngOnInit() {
979
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
992
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
980
993
  if (res) {
981
994
  this.LANG = this.trans.getObjectLang(res);
982
995
  }
@@ -984,7 +997,7 @@ class SelectDialog {
984
997
  this.filteredTask.next(this.task.subtasks.slice());
985
998
  // listen for search field value changes
986
999
  this.taskFilterCtrl.valueChanges
987
- .pipe(takeUntil(this._onDestroy))
1000
+ .pipe(takeUntil(this.ngUnsubscribe))
988
1001
  .subscribe(() => {
989
1002
  this.filterBanks();
990
1003
  });
@@ -1005,6 +1018,10 @@ class SelectDialog {
1005
1018
  // filter the banks
1006
1019
  this.filteredTask.next(this.task.subtasks.filter(bank => bank.name.toLowerCase().indexOf(search) > -1));
1007
1020
  }
1021
+ ngOnDestroy() {
1022
+ this.ngUnsubscribe.next();
1023
+ this.ngUnsubscribe.complete();
1024
+ }
1008
1025
  updateAllComplete() {
1009
1026
  this.allComplete = this.task.subtasks != null && this.task.subtasks.every(t => t.checked);
1010
1027
  }
@@ -1220,7 +1237,7 @@ class QMSChipInputSelectTriggerDirective {
1220
1237
  this.ele.nativeElement.classList.add('qms-chip-input');
1221
1238
  }
1222
1239
  }
1223
- click() {
1240
+ onClick(e) {
1224
1241
  if (this.autocomplete) {
1225
1242
  if (!this.autocomplete.panelOpen)
1226
1243
  this.autocomplete.openPanel();
@@ -1238,7 +1255,7 @@ QMSChipInputSelectTriggerDirective.ctorParameters = () => [
1238
1255
  { type: ElementRef }
1239
1256
  ];
1240
1257
  QMSChipInputSelectTriggerDirective.propDecorators = {
1241
- click: [{ type: HostListener, args: ['click', ['$event.target'],] }]
1258
+ onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }]
1242
1259
  };
1243
1260
 
1244
1261
  class QMSChipInputSelectFieldDirective {
@@ -1293,7 +1310,7 @@ class QMSInputChipDirective {
1293
1310
  this.ele = ele;
1294
1311
  }
1295
1312
  ngOnChanges(changes) {
1296
- if (this.selected) {
1313
+ if (changes.selected && JSON.stringify(changes.selected.currentValue) !== JSON.stringify(changes.selected.previousValue)) {
1297
1314
  this.ele.nativeElement.classList.add('qms-chip-selected');
1298
1315
  }
1299
1316
  else {
@@ -1326,7 +1343,7 @@ class QMSDropdownMenuItem {
1326
1343
  this.ele = ele;
1327
1344
  }
1328
1345
  ngOnChanges(changes) {
1329
- if (this.selected) {
1346
+ if (changes.selected && JSON.stringify(changes.selected.currentValue) !== JSON.stringify(changes.selected.previousValue)) {
1330
1347
  this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');
1331
1348
  }
1332
1349
  else {
@@ -1403,7 +1420,7 @@ class QMSFileUploadDisplayDirective {
1403
1420
  }
1404
1421
  }
1405
1422
  }
1406
- Click() {
1423
+ onClick(e) {
1407
1424
  this.eleInput.nativeElement.click();
1408
1425
  }
1409
1426
  }
@@ -1418,7 +1435,7 @@ QMSFileUploadDisplayDirective.ctorParameters = () => [
1418
1435
  ];
1419
1436
  QMSFileUploadDisplayDirective.propDecorators = {
1420
1437
  value: [{ type: Input }],
1421
- Click: [{ type: HostListener, args: ['click', ['$event.target'],] }]
1438
+ onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }]
1422
1439
  };
1423
1440
 
1424
1441
  class QMSFileUploadMultipleDisplayDirective {
@@ -1430,7 +1447,7 @@ class QMSFileUploadMultipleDisplayDirective {
1430
1447
  this.ele.nativeElement.classList.add('qms-file-upload');
1431
1448
  }
1432
1449
  }
1433
- Click() {
1450
+ onClick(e) {
1434
1451
  this.eleInput.nativeElement.click();
1435
1452
  }
1436
1453
  }
@@ -1444,7 +1461,7 @@ QMSFileUploadMultipleDisplayDirective.ctorParameters = () => [
1444
1461
  ];
1445
1462
  QMSFileUploadMultipleDisplayDirective.propDecorators = {
1446
1463
  acceptExtension: [{ type: Input }],
1447
- Click: [{ type: HostListener, args: ['click', ['$event.target'],] }]
1464
+ onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }]
1448
1465
  };
1449
1466
 
1450
1467
  var FileErrorType;
@@ -1531,8 +1548,8 @@ class QMSFileUploadMultipleDirective {
1531
1548
  constructor(ele) {
1532
1549
  this.ele = ele;
1533
1550
  }
1534
- ngOnChanges() {
1535
- if (this.isLoading) {
1551
+ ngOnChanges(changes) {
1552
+ if (changes.isLoading && JSON.stringify(changes.isLoading.currentValue) !== JSON.stringify(changes.isLoading.previousValue)) {
1536
1553
  this.ele.nativeElement.classList.add('qms-file-upload-loading');
1537
1554
  }
1538
1555
  else {
@@ -1703,7 +1720,7 @@ class QMSFileUploadDirective {
1703
1720
  };
1704
1721
  }
1705
1722
  ngOnChanges(changes) {
1706
- if (this.isLoading) {
1723
+ if (changes.isLoading && JSON.stringify(changes.isLoading.currentValue) !== JSON.stringify(changes.isLoading.previousValue)) {
1707
1724
  this.ele.nativeElement.classList.add('qms-file-upload-loading');
1708
1725
  }
1709
1726
  else {
@@ -1946,7 +1963,7 @@ class QMSSearchFieldDirective {
1946
1963
  this.renderer = renderer;
1947
1964
  }
1948
1965
  ngOnChanges(changes) {
1949
- if (this.isLoading) {
1966
+ if (changes.isLoading && JSON.stringify(changes.isLoading.currentValue) !== JSON.stringify(changes.isLoading.previousValue)) {
1950
1967
  this.ele.nativeElement.classList.add('qms-search-field-loading');
1951
1968
  }
1952
1969
  else {
@@ -2821,6 +2838,7 @@ SharedMaterialModule.decorators = [
2821
2838
  class DateFormatPipe {
2822
2839
  constructor(trans) {
2823
2840
  this.trans = trans;
2841
+ this.ngUnsubscribe = new Subject();
2824
2842
  }
2825
2843
  transform(value, args) {
2826
2844
  if (!value) {
@@ -2828,7 +2846,7 @@ class DateFormatPipe {
2828
2846
  }
2829
2847
  let valueFormat = '';
2830
2848
  let langCode = '';
2831
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
2849
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
2832
2850
  langCode = res || 'en';
2833
2851
  });
2834
2852
  switch (langCode) {
@@ -2844,6 +2862,10 @@ class DateFormatPipe {
2844
2862
  }
2845
2863
  return moment(value).format(valueFormat);
2846
2864
  }
2865
+ ngOnDestroy() {
2866
+ this.ngUnsubscribe.next();
2867
+ this.ngUnsubscribe.complete();
2868
+ }
2847
2869
  }
2848
2870
  DateFormatPipe.decorators = [
2849
2871
  { type: Pipe, args: [{
@@ -3906,7 +3928,8 @@ QMSListModule.decorators = [
3906
3928
  ];
3907
3929
 
3908
3930
  const QMS_THEMES = ['qms-theme-default', 'qms-theme-pink'];
3909
- const QMS_THEME_DEFAULT = 'qms-theme-default';
3931
+ const QMS_THEME_DEFAULT = 'qms-theme-default';
3932
+ const QMS_LANGUAGES = ['en', 'no'];
3910
3933
 
3911
3934
  class QMSThemingLibraryService {
3912
3935
  constructor(doc) {
@@ -4107,8 +4130,9 @@ class QMSEditFileNameDialog {
4107
4130
  this.dialogRef = dialogRef;
4108
4131
  this.trans = trans;
4109
4132
  this.data = data;
4133
+ this.ngUnsubscribe = new Subject();
4110
4134
  this.fileName = this.data;
4111
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
4135
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
4112
4136
  if (res) {
4113
4137
  this.LANG = this.trans.getObjectLang(res);
4114
4138
  }
@@ -4123,6 +4147,10 @@ class QMSEditFileNameDialog {
4123
4147
  clearInput() {
4124
4148
  this.fileName = '';
4125
4149
  }
4150
+ ngOnDestroy() {
4151
+ this.ngUnsubscribe.next();
4152
+ this.ngUnsubscribe.complete();
4153
+ }
4126
4154
  }
4127
4155
  QMSEditFileNameDialog.decorators = [
4128
4156
  { type: Component, args: [{
@@ -4178,12 +4206,13 @@ class QMSUploadFileErrorDialog {
4178
4206
  this.dialogRef = dialogRef;
4179
4207
  this.trans = trans;
4180
4208
  this.data = data;
4209
+ this.ngUnsubscribe = new Subject();
4181
4210
  this.unsupportedFiles = this.data.fileNames;
4182
4211
  this.supportedExtensions = this.data.acceptedExtension;
4183
4212
  this.overLimitFiles = this.data.overLimitFiles;
4184
4213
  this.fileSizeLimit = this.data.fileSizeLimit;
4185
4214
  this.fileSizeLimitUnit = this.data.fileSizeLimitUnit || 'MB';
4186
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
4215
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
4187
4216
  if (res) {
4188
4217
  this.LANG = this.trans.getObjectLang(res);
4189
4218
  }
@@ -4192,6 +4221,10 @@ class QMSUploadFileErrorDialog {
4192
4221
  ok() {
4193
4222
  this.dialogRef.close(null);
4194
4223
  }
4224
+ ngOnDestroy() {
4225
+ this.ngUnsubscribe.next();
4226
+ this.ngUnsubscribe.complete();
4227
+ }
4195
4228
  }
4196
4229
  QMSUploadFileErrorDialog.decorators = [
4197
4230
  { type: Component, args: [{
@@ -4438,8 +4471,8 @@ class QMSBreadcrumbItemDirective {
4438
4471
  }
4439
4472
  }, 1000);
4440
4473
  }
4441
- ngOnChanges() {
4442
- if (this.isLastItem) {
4474
+ ngOnChanges(changes) {
4475
+ if (changes.isLastItem && JSON.stringify(changes.isLastItem.currentValue) !== JSON.stringify(changes.isLastItem.previousValue)) {
4443
4476
  this.ele.nativeElement.classList.add('qms-breadcrumb-last-item');
4444
4477
  }
4445
4478
  else {
@@ -4506,6 +4539,7 @@ class QMSBreadcrumb {
4506
4539
  this.sideNavNodes = [];
4507
4540
  this.itemSpace = DropdownBreadCrumbNodeWidth.NORMAL; // width of dropdown node in normal view
4508
4541
  this.isMobileType = false;
4542
+ this.ngUnsubscribe = new Subject();
4509
4543
  iconRegistry.addSvgIconLiteral('breadcrumb_dropdown', sanitizer.bypassSecurityTrustHtml(BREADCRUMB_DROPDOWN_ICON));
4510
4544
  }
4511
4545
  ngOnChanges(changes) {
@@ -4516,7 +4550,7 @@ class QMSBreadcrumb {
4516
4550
  }
4517
4551
  }
4518
4552
  ngOnInit() {
4519
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
4553
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
4520
4554
  if (res) {
4521
4555
  this.LANG = this.trans.getObjectLang(res);
4522
4556
  }
@@ -4525,6 +4559,10 @@ class QMSBreadcrumb {
4525
4559
  this.itemIconType = ItemIconType;
4526
4560
  this.initBreadCrumb();
4527
4561
  }
4562
+ ngOnDestroy() {
4563
+ this.ngUnsubscribe.next();
4564
+ this.ngUnsubscribe.complete();
4565
+ }
4528
4566
  ngAfterViewInit() {
4529
4567
  this.buildBreadcrumb();
4530
4568
  this.cdRef.detectChanges();
@@ -4588,7 +4626,6 @@ class QMSBreadcrumb {
4588
4626
  }
4589
4627
  }
4590
4628
  buildBreadcrumb() {
4591
- var _a;
4592
4629
  if (!this.isMobileType && this.ele.nativeElement.offsetWidth) {
4593
4630
  this.dropdownNodes = [];
4594
4631
  if (!this.maxLine || this.maxLine < 2) {
@@ -4599,7 +4636,7 @@ class QMSBreadcrumb {
4599
4636
  }
4600
4637
  }
4601
4638
  //show number Items after 3 dot icon
4602
- if (+this.numDisplayItem && +this.numDisplayItem >= 2 && ((_a = this.itemNodes) === null || _a === void 0 ? void 0 : _a.length) >= 2) {
4639
+ if (+this.numDisplayItem && +this.numDisplayItem >= 2 && this.itemNodes.length >= 2) {
4603
4640
  this.dropdownNodes = [];
4604
4641
  this.dropdownNodes = this.itemNodes.slice(0, -this.numDisplayItem).reverse();
4605
4642
  this.itemNodes = [...[], ...this.itemNodes.slice(-this.numDisplayItem)];
@@ -4767,13 +4804,13 @@ class QMSBasicTreeComponent {
4767
4804
  };
4768
4805
  }
4769
4806
  ngOnChanges(changes) {
4770
- if (changes.treeData) {
4807
+ if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {
4771
4808
  this.dataSource.data = this.treeData;
4772
4809
  }
4773
- if (changes.openNodes && changes.openNodes.currentValue.length) {
4810
+ if (changes.openNodes && JSON.stringify(changes.openNodes.currentValue) !== JSON.stringify(changes.openNodes.previousValue)) {
4774
4811
  this.findAndExpandNodes();
4775
4812
  }
4776
- if (changes.disabledList && changes.disabledList.currentValue.length) {
4813
+ if (changes.disabledList && JSON.stringify(changes.disabledList.currentValue) !== JSON.stringify(changes.disabledList.previousValue)) {
4777
4814
  this.findAndExpandNodes();
4778
4815
  }
4779
4816
  }
@@ -5874,6 +5911,7 @@ class RelatedListComponent {
5874
5911
  this.imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';
5875
5912
  this.updateData = new EventEmitter();
5876
5913
  this.onItemSelect = new EventEmitter();
5914
+ this.ngUnsubscribe = new Subject();
5877
5915
  appIconService.registerProcessIcon(iconRegistry, domSanitizer);
5878
5916
  appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);
5879
5917
  appIconService.registerDocumentIcon(iconRegistry, domSanitizer);
@@ -5896,12 +5934,16 @@ class RelatedListComponent {
5896
5934
  this.title = this.data.title;
5897
5935
  this.isNotEditedItem = (_a = this.data['isNotEditedItem']) !== null && _a !== void 0 ? _a : false;
5898
5936
  this.relatedData = this.data.data;
5899
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
5937
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
5900
5938
  if (res) {
5901
5939
  this.LANG = this.translate.getObjectLang(res);
5902
5940
  }
5903
5941
  });
5904
5942
  }
5943
+ ngOnDestroy() {
5944
+ this.ngUnsubscribe.next();
5945
+ this.ngUnsubscribe.complete();
5946
+ }
5905
5947
  getImagePath() {
5906
5948
  return this.domSanitizer.bypassSecurityTrustResourceUrl(this.imageProcess);
5907
5949
  }
@@ -5990,6 +6032,86 @@ RelatedListComponent.propDecorators = {
5990
6032
  onItemSelect: [{ type: Output }]
5991
6033
  };
5992
6034
 
6035
+ // eslint-disable-next-line import/no-extraneous-dependencies
6036
+ class QMSCKEditorBaseComponent {
6037
+ constructor() {
6038
+ this.ngUnsubcribe = new Subject();
6039
+ }
6040
+ ngOnDestroy() {
6041
+ this.ngUnsubcribe.next();
6042
+ this.ngUnsubcribe.complete();
6043
+ }
6044
+ }
6045
+ QMSCKEditorBaseComponent.decorators = [
6046
+ { type: Injectable }
6047
+ ];
6048
+
6049
+ class QMSCKEditorGlobalService {
6050
+ constructor() {
6051
+ this.getApiUrlSubject = new BehaviorSubject(null);
6052
+ }
6053
+ setApiUrl(apiUrl) {
6054
+ this.getApiUrlSubject.next(apiUrl);
6055
+ }
6056
+ }
6057
+ QMSCKEditorGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSCKEditorGlobalService_Factory() { return new QMSCKEditorGlobalService(); }, token: QMSCKEditorGlobalService, providedIn: "root" });
6058
+ QMSCKEditorGlobalService.decorators = [
6059
+ { type: Injectable, args: [{
6060
+ providedIn: 'root'
6061
+ },] }
6062
+ ];
6063
+ QMSCKEditorGlobalService.ctorParameters = () => [];
6064
+
6065
+ class QMSCKEditorBaseService extends QMSCKEditorBaseComponent {
6066
+ constructor(http, globalService) {
6067
+ super();
6068
+ this.http = http;
6069
+ this.globalService = globalService;
6070
+ this.headers = new HttpHeaders();
6071
+ this.globalService.getApiUrlSubject.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
6072
+ this.apiUrl = res;
6073
+ });
6074
+ }
6075
+ get(url, params = {}) {
6076
+ return this.http.get(this.apiUrl + url, { headers: this.headers, params });
6077
+ }
6078
+ post(url, data) {
6079
+ return this.http.post(this.apiUrl + url, data, { headers: this.headers });
6080
+ }
6081
+ put(url, data) {
6082
+ return this.http.put(this.apiUrl + url, data, { headers: this.headers });
6083
+ }
6084
+ delete(url, params = {}) {
6085
+ return this.http.delete(this.apiUrl + url, { headers: this.headers, params });
6086
+ }
6087
+ }
6088
+ QMSCKEditorBaseService.decorators = [
6089
+ { type: Injectable }
6090
+ ];
6091
+ QMSCKEditorBaseService.ctorParameters = () => [
6092
+ { type: HttpClient },
6093
+ { type: QMSCKEditorGlobalService }
6094
+ ];
6095
+
6096
+ class QMSCKEditorUploadService extends QMSCKEditorBaseService {
6097
+ uploadImage(file, imageHeight, imageWidth) {
6098
+ const formData = new FormData();
6099
+ formData.append('name', file.name);
6100
+ formData.append('file', file);
6101
+ if (imageHeight && imageWidth) {
6102
+ formData.append('imageHeight', imageHeight.toString());
6103
+ formData.append('imageWidth', imageWidth.toString());
6104
+ }
6105
+ return this.post('ckeditorUpload/UploadImage', formData);
6106
+ }
6107
+ }
6108
+ QMSCKEditorUploadService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSCKEditorUploadService_Factory() { return new QMSCKEditorUploadService(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(QMSCKEditorGlobalService)); }, token: QMSCKEditorUploadService, providedIn: "root" });
6109
+ QMSCKEditorUploadService.decorators = [
6110
+ { type: Injectable, args: [{
6111
+ providedIn: 'root'
6112
+ },] }
6113
+ ];
6114
+
5993
6115
  class TreeModel {
5994
6116
  }
5995
6117
 
@@ -6005,6 +6127,7 @@ class PopupData {
6005
6127
  constructor() {
6006
6128
  this.moduleId = 0;
6007
6129
  this.moduleName = '';
6130
+ this.moduleUploadImageName = '';
6008
6131
  this.treeData1 = [];
6009
6132
  this.treeData2 = [];
6010
6133
  this.selectedNode = [];
@@ -6053,8 +6176,14 @@ QMSRelatedGlobalService.decorators = [
6053
6176
  ];
6054
6177
  QMSRelatedGlobalService.ctorParameters = () => [];
6055
6178
 
6179
+ const UPLOAD_ICON = `
6180
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px">
6181
+ <path d="M0 0h24v24H0V0z" fill="none"/>
6182
+ <path d="M9 16h6v-6h4l-7-7-7 7h4v6zm3-10.17L14.17 8H13v6h-2V8H9.83L12 5.83zM5 18h14v2H5z"/>
6183
+ </svg>
6184
+ `;
6056
6185
  class RelatedPopupComponent {
6057
- constructor(cdRef, translate, dialogRef, globalService, iconRegistry, sanitizer, appIconService, elem, data) {
6186
+ constructor(cdRef, translate, dialogRef, globalService, iconRegistry, sanitizer, appIconService, elem, uploadService, data) {
6058
6187
  this.cdRef = cdRef;
6059
6188
  this.translate = translate;
6060
6189
  this.dialogRef = dialogRef;
@@ -6063,10 +6192,12 @@ class RelatedPopupComponent {
6063
6192
  this.sanitizer = sanitizer;
6064
6193
  this.appIconService = appIconService;
6065
6194
  this.elem = elem;
6195
+ this.uploadService = uploadService;
6066
6196
  this.data = data;
6067
6197
  this.ngUnsubscribe = new Subject();
6068
6198
  this.moduleId = 0;
6069
6199
  this.moduleName = '';
6200
+ this.moduleUploadImageName = '';
6070
6201
  this.treeData1 = [];
6071
6202
  this.treeData2 = [];
6072
6203
  this.checkedNodeList = [];
@@ -6097,8 +6228,15 @@ class RelatedPopupComponent {
6097
6228
  this.onSearch = new EventEmitter();
6098
6229
  this.onExpandFolder = new EventEmitter();
6099
6230
  this.parentNodeSelected = new TreeFlatNode();
6231
+ this.qmsInputImageType = new FormControl('', [
6232
+ requiredFileType(['pjp', 'jpg', 'pjpeg', 'jpeg', 'jfif', 'png', 'gif', 'bmp', 'webp', 'tif', 'tiff'])
6233
+ ]);
6234
+ this.qmsInputImageFile = null;
6235
+ this.isLoadingImageFile = false;
6236
+ this.imageUpload = new Image();
6100
6237
  this.moduleId = data.moduleId;
6101
6238
  this.moduleName = data.moduleName;
6239
+ this.moduleUploadImageName = data.moduleUploadImageName;
6102
6240
  this.treeData1 = data.treeData1;
6103
6241
  this.treeData2 = data.treeData2;
6104
6242
  this.treeConfig1 = data.treeConfig1;
@@ -6110,6 +6248,7 @@ class RelatedPopupComponent {
6110
6248
  this.splitView = data.splitView;
6111
6249
  this.maxSelectItemCount = data.maxSelectItemCount;
6112
6250
  this.canOnlySelectItem = data.canOnlySelectItem;
6251
+ this.canUploadImage = data.canUploadImage;
6113
6252
  appIconService.registerProcessIcon(iconRegistry, sanitizer);
6114
6253
  appIconService.registerProcessAreaIcon(iconRegistry, sanitizer);
6115
6254
  appIconService.registerDocumentIcon(iconRegistry, sanitizer);
@@ -6117,6 +6256,7 @@ class RelatedPopupComponent {
6117
6256
  appIconService.registerDeviationIcon(iconRegistry, sanitizer);
6118
6257
  appIconService.registerChecklistIcon(iconRegistry, sanitizer);
6119
6258
  appIconService.registerRiskIcon(iconRegistry, sanitizer);
6259
+ iconRegistry.addSvgIconLiteral('upload', sanitizer.bypassSecurityTrustHtml(UPLOAD_ICON));
6120
6260
  }
6121
6261
  ngOnDestroy() {
6122
6262
  this.ngUnsubscribe.next();
@@ -6131,7 +6271,7 @@ class RelatedPopupComponent {
6131
6271
  }
6132
6272
  }
6133
6273
  ngOnInit() {
6134
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
6274
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
6135
6275
  if (res) {
6136
6276
  this.LANG = this.translate.getObjectLang(res);
6137
6277
  }
@@ -6221,7 +6361,7 @@ class RelatedPopupComponent {
6221
6361
  }
6222
6362
  }
6223
6363
  });
6224
- this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {
6364
+ this.myControl.valueChanges.pipe(debounceTime(1000), takeUntil(this.ngUnsubscribe)).subscribe((val) => {
6225
6365
  this.isInputValue = true;
6226
6366
  this.onSearchRelated(val);
6227
6367
  });
@@ -6864,25 +7004,28 @@ class RelatedPopupComponent {
6864
7004
  }
6865
7005
  ;
6866
7006
  onAddClick() {
6867
- // if (this.treeConfig1.showCheckBox) {
6868
- this.selectedFolder = null;
6869
- this.itemInSplitview = [];
6870
- this.checkedNodeList.forEach(element => {
6871
- if (element.itemType === DataType$2.document) {
6872
- element.status = this.getStatusDocs(element.id);
6873
- element.breadcumbs = this.getBreadcumbAllParentDocs(element.id).slice(1).reverse();
6874
- element.statusName = this.getStatusName(element.id);
6875
- }
6876
- if (element.itemType === DataType$2.process) {
6877
- element.status = this.getStatusProcess(element.id);
6878
- element.breadcumbs = this.getBreadcumbAllParentProcess(element.id).slice(1).reverse();
6879
- }
7007
+ return __awaiter(this, void 0, void 0, function* () {
7008
+ this.selectedFolder = null;
7009
+ this.itemInSplitview = [];
7010
+ this.checkedNodeList.forEach(element => {
7011
+ if (element.itemType === DataType$2.document) {
7012
+ element.status = this.getStatusDocs(element.id);
7013
+ element.breadcumbs = this.getBreadcumbAllParentDocs(element.id).slice(1).reverse();
7014
+ element.statusName = this.getStatusName(element.id);
7015
+ }
7016
+ if (element.itemType === DataType$2.process) {
7017
+ element.status = this.getStatusProcess(element.id);
7018
+ element.breadcumbs = this.getBreadcumbAllParentProcess(element.id).slice(1).reverse();
7019
+ }
7020
+ });
7021
+ if (!this.canUploadImage)
7022
+ return this.dialogRef.close(this.checkedNodeList);
7023
+ let imageRelativeUrl = "";
7024
+ if (!(this.checkedNodeList.length && this.qmsInputImageFile && this.canUploadImage))
7025
+ return this.dialogRef.close({ checkedNodeList: this.checkedNodeList, imageRelativeUrl: imageRelativeUrl });
7026
+ imageRelativeUrl = yield this.uploadService.uploadImage(this.qmsInputImageFile.file, this.imageUpload.height, this.imageUpload.width).toPromise();
7027
+ this.dialogRef.close({ checkedNodeList: this.checkedNodeList, imageRelativeUrl: imageRelativeUrl });
6880
7028
  });
6881
- this.dialogRef.close(this.checkedNodeList);
6882
- // }
6883
- // else {
6884
- // this.dialogRef.close(this.selectedNode);
6885
- // }
6886
7029
  }
6887
7030
  getStatusName(id) {
6888
7031
  let statusName = '';
@@ -7165,13 +7308,23 @@ class RelatedPopupComponent {
7165
7308
  refreshRelatedOptions() {
7166
7309
  this.filteredOptions = this.toRelatedOptions(this.filteredOptions);
7167
7310
  }
7311
+ clearQMSInputImageFile() {
7312
+ this.qmsInputImageFile = null;
7313
+ }
7314
+ onChangeImage(event) {
7315
+ const readerImage = new FileReader();
7316
+ readerImage.readAsDataURL(this.qmsInputImageFile.file);
7317
+ readerImage.onload = (event) => __awaiter(this, void 0, void 0, function* () {
7318
+ this.imageUpload.src = event.target.result.toString();
7319
+ });
7320
+ }
7168
7321
  }
7169
7322
  RelatedPopupComponent.decorators = [
7170
7323
  { type: Component, args: [{
7171
7324
  selector: 'qms-related-popup',
7172
- template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName | uppercase }}</span>\r\n </div>\r\n </div>\r\n\r\n <div id=\"qmslib_related_popup_search\" class=\"input__field\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n (optionSelected)=\"selectRelated($event.option.value)\"\r\n [displayWith]=\"displayWhenSelectRelatedOption\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n [class.related-viewport]=\"isInputValue\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"canShowSearchOption(type.value)\"\r\n >\r\n <span class=\"search__module-title\">{{ getTitle(type.value) }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(type.value)\"\r\n [value]=\"option\"\r\n [disabled]=\"option.disabled\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-container\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span>\r\n <mat-icon\r\n class=\"material-icons-outlined search__description-icon\"\r\n >local_offer</mat-icon\r\n >\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length,\r\n 'col-6': splitView,\r\n 'col-12': !splitView\r\n }\"\r\n >\r\n <ng-container *ngIf=\"treeData1.length > 0\">\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title *ngIf=\"moduleId === module.documentProcess\">\r\n {{ LANG.PROCESSES | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.deviation\">\r\n {{ LANG.DEVIATION | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.checklist\">\r\n {{ LANG.CHECKLIST | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.risk\">\r\n {{ LANG.ASSESSMENT | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isCommonExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeProcess($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"treeData2.length > 0\">\r\n <div\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n class=\"line__divider\"\r\n ></div>\r\n\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n id=\"qmslib_related_popup_document_001\"\r\n [expanded]=\"isDocumentExpanded\"\r\n (opened)=\"isDocumentExpanded = true\"\r\n (closed)=\"isDocumentExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title>\r\n {{ LANG.DOCUMENTS | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isDocumentExpanded\r\n ? \"keyboard_arrow_up\"\r\n : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_document_002\">\r\n <qms-tree\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (checkBoxEvent)=\"getDocumentCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTree2Event($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeDocument($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"splitView\"\r\n class=\"qms-scrollbar qmslib-related-popup-splitview qmslib_related_popup_content col-6\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <div class=\"splitview-header\" *ngIf=\"selectedFolder\">\r\n {{ splitViewTitle }}\r\n </div>\r\n <div class=\"expand-node\" *ngFor=\"let node of itemInSplitview\">\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n [checked]=\"isNodeSelected(node)\"\r\n (change)=\"toggleSelectItem(node)\"\r\n ></mat-checkbox>\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.itemName }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12 pr-0 pe-0\">\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon\r\n *ngIf=\"!(treeConfig1?.selectOne || treeConfig2?.selectOne)\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
7325
+ template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <div *ngIf=\"canUploadImage\" class=\"selected-image\">\r\n <span>{{ moduleUploadImageName | uppercase }}</span>\r\n <form>\r\n <mat-form-field qms-form qms-file-upload appearance=\"fill\" class=\"example-width input-upload\">\r\n <mat-icon matPrefix svgIcon=\"upload\"></mat-icon>\r\n <input matInput placeholder=\"Upload file\" [formControl]=\"qmsInputImageType\" [readOnly]=\"true\"\r\n qms-file-upload-display #fileDisplay \r\n value=\"{{qmsInputImageFile? qmsInputImageFile.fileName : ''}}\"\r\n [attr.disabled]=\"isLoadingImageFile ? 'disabled' : null\">\r\n <input hidden type=\"file\" [(inputFile)]=\"qmsInputImageFile\" \r\n qms-file-upload-selector #fileSelector\r\n accept=\".pjp, .jpg, .pjpeg, .jpeg, .jfif, .png, .gif, .bmp, .webp, .tif, .tiff\" \r\n [maxSize]=\"1000000\" (change)=\"onChangeImage($event)\">\r\n\r\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter='20'\r\n *ngIf=\"isLoadingImageFile\"></mat-progress-spinner>\r\n <div matSuffix qms-input-clear *ngIf=\"qmsInputImageFile && qmsInputImageFile.fileName\">\r\n <button qms-btn-icon color=\"light\" (click)=\"clearQMSInputImageFile()\" [disabled]=\"isLoadingImageFile\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-error *ngIf=\"qmsInputImageFile && qmsInputImageFile.typeError == 1\">\r\n The extension is not supported.\r\n </mat-error>\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n <span>{{ moduleName | uppercase }}</span>\r\n </div>\r\n </div>\r\n\r\n <div id=\"qmslib_related_popup_search\" class=\"input__field\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n (optionSelected)=\"selectRelated($event.option.value)\"\r\n [displayWith]=\"displayWhenSelectRelatedOption\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n [class.related-viewport]=\"isInputValue\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"canShowSearchOption(type.value)\"\r\n >\r\n <span class=\"search__module-title\">{{ getTitle(type.value) }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(type.value)\"\r\n [value]=\"option\"\r\n [disabled]=\"option.disabled\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-container\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span>\r\n <mat-icon\r\n class=\"material-icons-outlined search__description-icon\"\r\n >local_offer</mat-icon\r\n >\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length,\r\n panel__content_height_with_upload: canUploadImage && !checkedNodeList.length,\r\n panel__content_item_height_with_upload: canUploadImage && checkedNodeList.length,\r\n 'col-6': splitView,\r\n 'col-12': !splitView\r\n }\"\r\n >\r\n <ng-container *ngIf=\"treeData1.length > 0\">\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title *ngIf=\"moduleId === module.documentProcess\">\r\n {{ LANG.PROCESSES | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.deviation\">\r\n {{ LANG.DEVIATION | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.checklist\">\r\n {{ LANG.CHECKLIST | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.risk\">\r\n {{ LANG.ASSESSMENT | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isCommonExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeProcess($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"treeData2.length > 0\">\r\n <div\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n class=\"line__divider\"\r\n ></div>\r\n\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n id=\"qmslib_related_popup_document_001\"\r\n [expanded]=\"isDocumentExpanded\"\r\n (opened)=\"isDocumentExpanded = true\"\r\n (closed)=\"isDocumentExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title>\r\n {{ LANG.DOCUMENTS | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isDocumentExpanded\r\n ? \"keyboard_arrow_up\"\r\n : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_document_002\">\r\n <qms-tree\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (checkBoxEvent)=\"getDocumentCheckedNode($event)\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTree2Event($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeDocument($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"splitView\"\r\n class=\"qms-scrollbar qmslib-related-popup-splitview qmslib_related_popup_content col-6\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <div class=\"splitview-header\" *ngIf=\"selectedFolder\">\r\n {{ splitViewTitle }}\r\n </div>\r\n <div class=\"expand-node\" *ngFor=\"let node of itemInSplitview\">\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n [checked]=\"isNodeSelected(node)\"\r\n (change)=\"toggleSelectItem(node)\"\r\n ></mat-checkbox>\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.itemName }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12 pr-0 pe-0\">\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon\r\n *ngIf=\"!(treeConfig1?.selectOne || treeConfig2?.selectOne)\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
7173
7326
  encapsulation: ViewEncapsulation.None,
7174
- styles: ["::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:var(--text-white);padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:var(--button-red-background);margin-left:10px}.qms__danger .yellow{background-color:var(--button-yellow-background);margin-left:10px;color:var(--popup-title-color)}.qms__danger .green{background-color:var(--button-green-background);margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:var(--button-background)}.confirm__button__groups .confirm:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:var(--button-background)}.confirm__button__groups .cancel:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:var(--related-item-background);max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:var(--related-mat-icon-color);font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:278px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-container .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .breadcrumb-container .qms-breadcrumb-item .mat-icon,cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .breadcrumb-container .qms-breadcrumb-item-text,cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:300px}"]
7327
+ styles: ["::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:var(--text-white);padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:var(--button-red-background);margin-left:10px}.qms__danger .yellow{background-color:var(--button-yellow-background);margin-left:10px;color:var(--popup-title-color)}.qms__danger .green{background-color:var(--button-green-background);margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:var(--button-background)}.confirm__button__groups .confirm:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:var(--button-background)}.confirm__button__groups .cancel:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:var(--background-input-text)}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_height_with_upload{height:380px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item_height_with_upload{height:257px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:var(--related-item-background);max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:var(--related-mat-icon-color);font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:278px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-container .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .breadcrumb-container .qms-breadcrumb-item .mat-icon,cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .breadcrumb-container .qms-breadcrumb-item-text,cdk-virtual-scroll-viewport .search__module-result .mat-option[aria-disabled=true] .subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}#qmslib_related_popup_header_001 .selected-image{display:flex;align-items:center;padding-bottom:10px}#qmslib_related_popup_header_001 .selected-image .input-upload{height:60px;padding-left:30px}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:300px}"]
7175
7328
  },] }
7176
7329
  ];
7177
7330
  RelatedPopupComponent.ctorParameters = () => [
@@ -7183,6 +7336,7 @@ RelatedPopupComponent.ctorParameters = () => [
7183
7336
  { type: DomSanitizer },
7184
7337
  { type: QMSIconRegistryService },
7185
7338
  { type: ElementRef },
7339
+ { type: QMSCKEditorUploadService },
7186
7340
  { type: PopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
7187
7341
  ];
7188
7342
  RelatedPopupComponent.propDecorators = {
@@ -7212,10 +7366,11 @@ class RiskAnalysisComponent {
7212
7366
  this.nodeCheckedItem = [];
7213
7367
  this.disabledList = [];
7214
7368
  this.riskData = [];
7369
+ this.ngUnsubscribe = new Subject();
7215
7370
  }
7216
7371
  ;
7217
7372
  ngOnInit() {
7218
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
7373
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
7219
7374
  if (res) {
7220
7375
  this.LANG = this.translate.getObjectLang(res);
7221
7376
  }
@@ -7250,6 +7405,10 @@ class RiskAnalysisComponent {
7250
7405
  canHaveDupId: false
7251
7406
  };
7252
7407
  }
7408
+ ngOnDestroy() {
7409
+ this.ngUnsubscribe.next();
7410
+ this.ngUnsubscribe.complete();
7411
+ }
7253
7412
  toggleChileNode(list) {
7254
7413
  this.analysisDanger = [];
7255
7414
  this.nodeCheckedItem = [];
@@ -7316,6 +7475,7 @@ class RiskListComponent {
7316
7475
  this.show = 5;
7317
7476
  this.resultData = [];
7318
7477
  this.riskAnalysis = [];
7478
+ this.ngUnsubscribe = new Subject();
7319
7479
  this.updateData = new EventEmitter();
7320
7480
  }
7321
7481
  ngOnChanges(changes) {
@@ -7336,7 +7496,7 @@ class RiskListComponent {
7336
7496
  this.isNotEditedItem = (_b = this.data['isNotEditedItem']) !== null && _b !== void 0 ? _b : false;
7337
7497
  this.dangers = ((_c = this.data) === null || _c === void 0 ? void 0 : _c.data) || [];
7338
7498
  this.show = ((_d = this.data) === null || _d === void 0 ? void 0 : _d.numRow) || 5;
7339
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
7499
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
7340
7500
  if (res) {
7341
7501
  this.LANG = this.translate.getObjectLang(res);
7342
7502
  }
@@ -7345,6 +7505,10 @@ class RiskListComponent {
7345
7505
  this.groupByDanger(this.dangers, 0);
7346
7506
  }
7347
7507
  }
7508
+ ngOnDestroy() {
7509
+ this.ngUnsubscribe.next();
7510
+ this.ngUnsubscribe.complete();
7511
+ }
7348
7512
  groupByDanger(dangers, i) {
7349
7513
  dangers.forEach(d => {
7350
7514
  const index = this.analysisDanger.findIndex(x => {
@@ -7483,17 +7647,22 @@ class RiskResultComponent {
7483
7647
  this.results = [];
7484
7648
  this.color = Color;
7485
7649
  this.isSimple = 0;
7650
+ this.ngUnsubscribe = new Subject();
7486
7651
  this.title = data.title;
7487
7652
  this.results = data.results;
7488
7653
  this.isSimple = data.isSimple || 0;
7489
7654
  }
7490
7655
  ngOnInit() {
7491
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
7656
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
7492
7657
  if (res) {
7493
7658
  this.LANG = this.translate.getObjectLang(res);
7494
7659
  }
7495
7660
  });
7496
7661
  }
7662
+ ngOnDestroy() {
7663
+ this.ngUnsubscribe.next();
7664
+ this.ngUnsubscribe.complete();
7665
+ }
7497
7666
  onCloseClick() {
7498
7667
  this.dialogRef.close();
7499
7668
  }
@@ -7614,20 +7783,6 @@ class RiskDanger {
7614
7783
  }
7615
7784
  }
7616
7785
 
7617
- // eslint-disable-next-line import/no-extraneous-dependencies
7618
- class QMSCKEditorBaseComponent {
7619
- constructor() {
7620
- this.ngUnsubcribe = new Subject();
7621
- }
7622
- ngOnDestroy() {
7623
- this.ngUnsubcribe.next();
7624
- this.ngUnsubcribe.complete();
7625
- }
7626
- }
7627
- QMSCKEditorBaseComponent.decorators = [
7628
- { type: Injectable }
7629
- ];
7630
-
7631
7786
  class QMSCKEditorDialogData {
7632
7787
  }
7633
7788
 
@@ -7923,53 +8078,6 @@ QMSCKEditorFullscreenComponent.decorators = [
7923
8078
  },] }
7924
8079
  ];
7925
8080
 
7926
- class QMSCKEditorGlobalService {
7927
- constructor() {
7928
- this.getApiUrlSubject = new BehaviorSubject(null);
7929
- }
7930
- setApiUrl(apiUrl) {
7931
- this.getApiUrlSubject.next(apiUrl);
7932
- }
7933
- }
7934
- QMSCKEditorGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSCKEditorGlobalService_Factory() { return new QMSCKEditorGlobalService(); }, token: QMSCKEditorGlobalService, providedIn: "root" });
7935
- QMSCKEditorGlobalService.decorators = [
7936
- { type: Injectable, args: [{
7937
- providedIn: 'root'
7938
- },] }
7939
- ];
7940
- QMSCKEditorGlobalService.ctorParameters = () => [];
7941
-
7942
- class QMSCKEditorBaseService extends QMSCKEditorBaseComponent {
7943
- constructor(http, globalService) {
7944
- super();
7945
- this.http = http;
7946
- this.globalService = globalService;
7947
- this.headers = new HttpHeaders();
7948
- this.globalService.getApiUrlSubject.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
7949
- this.apiUrl = res;
7950
- });
7951
- }
7952
- get(url, params = {}) {
7953
- return this.http.get(this.apiUrl + url, { headers: this.headers, params });
7954
- }
7955
- post(url, data) {
7956
- return this.http.post(this.apiUrl + url, data, { headers: this.headers });
7957
- }
7958
- put(url, data) {
7959
- return this.http.put(this.apiUrl + url, data, { headers: this.headers });
7960
- }
7961
- delete(url, params = {}) {
7962
- return this.http.delete(this.apiUrl + url, { headers: this.headers, params });
7963
- }
7964
- }
7965
- QMSCKEditorBaseService.decorators = [
7966
- { type: Injectable }
7967
- ];
7968
- QMSCKEditorBaseService.ctorParameters = () => [
7969
- { type: HttpClient },
7970
- { type: QMSCKEditorGlobalService }
7971
- ];
7972
-
7973
8081
  class QMSCKEditorLinkService extends QMSCKEditorBaseService {
7974
8082
  getAttachmentList(module, entityId, supportFileArchiveAttachments) {
7975
8083
  return this.get('ckeditorLink/LinkAttachmentList', { module, entityId, supportFileArchiveAttachments });
@@ -8552,8 +8660,8 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
8552
8660
  this.targets = [];
8553
8661
  this.protocols = [];
8554
8662
  this.anchorDocuments = [];
8555
- this.editorContent = "";
8556
- this.selectedLink = 0;
8663
+ this.editorContent = '';
8664
+ this.selectedLinkType = 0;
8557
8665
  this.selectedTarget = 0;
8558
8666
  this.selectedProtocol = 0;
8559
8667
  this.url = "";
@@ -8566,7 +8674,8 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
8566
8674
  this.documentId = 0;
8567
8675
  this.anchorTitle = "";
8568
8676
  this.anchorByName = "";
8569
- this.selectedLink = data.typeId;
8677
+ this.LinkType = LinkType;
8678
+ this.selectedLinkType = data.typeId;
8570
8679
  this.selectedTarget = data.targetId;
8571
8680
  this.selectedProtocol = data.protocolId;
8572
8681
  this.url = data.url;
@@ -8587,14 +8696,14 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
8587
8696
  this.initProtocol();
8588
8697
  this.initAnchor();
8589
8698
  if (this.data.edit) {
8590
- this.parseLinkUrl(this.selectedLink, this.url);
8699
+ this.parseLinkUrl(this.selectedLinkType, this.url);
8591
8700
  }
8592
8701
  }
8593
8702
  ngAfterViewChecked() {
8594
8703
  this.cdr.detectChanges();
8595
8704
  }
8596
8705
  onCloseDialog() {
8597
- this.dialogRef.close();
8706
+ this.dialogRef.close(null);
8598
8707
  }
8599
8708
  initLinkType() {
8600
8709
  if (this.linkTypes) {
@@ -8665,36 +8774,35 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
8665
8774
  this.anchors = [{ value: 0, viewValue: "", anchorValue: LinkAnchor.Blank }];
8666
8775
  }
8667
8776
  parseLinkUrl(typeId, url) {
8668
- if (typeId === LinkType.anchorText) {
8669
- this.getEditorAnchor();
8670
- this.anchorText = url.substr(1);
8671
- }
8672
- else if (typeId === LinkType.email) {
8673
- const p1 = url.indexOf("mailto:");
8674
- const p2 = url.indexOf("?subject=");
8675
- const p3 = url.indexOf("&body=");
8676
- this.emailAddress = url.substr(p1 + 7, p2 - 7);
8677
- this.emailSubject = url.substr(p2 + 9, p3 - p2 - 9);
8678
- this.emailBody = url.substr(p3 + 6, url.length - p3 - 6);
8679
- }
8680
- else if (typeId === LinkType.anchorDocument) {
8681
- const flashIndex = url.lastIndexOf("/");
8682
- const hashIndex = url.indexOf("#");
8683
- const sId = url.substr(flashIndex + 1, hashIndex - 1 - flashIndex);
8684
- const documentId = parseInt(sId, 10);
8685
- this.getAnchorDocument(documentId);
8686
- this.anchorByName = url.substr(hashIndex + 1, url.length - hashIndex);
8687
- this.anchorTitle = this.data.title;
8688
- }
8689
- else if (typeId === LinkType.url) {
8690
- //selectedProtocol
8777
+ switch (typeId) {
8778
+ case LinkType.anchorText:
8779
+ this.getEditorAnchor();
8780
+ this.anchorText = url.substr(1);
8781
+ break;
8782
+ case LinkType.email:
8783
+ const p1 = url.indexOf('mailto:');
8784
+ const p2 = url.indexOf('?subject=');
8785
+ const p3 = url.indexOf('&body=');
8786
+ this.emailAddress = url.substr(p1 + 7, p2 - 7);
8787
+ this.emailSubject = url.substr(p2 + 9, p3 - p2 - 9);
8788
+ this.emailBody = url.substr(p3 + 6, url.length - p3 - 6);
8789
+ break;
8790
+ case LinkType.anchorDocument:
8791
+ const flashIndex = url.lastIndexOf('/');
8792
+ const hashIndex = url.indexOf('#');
8793
+ const sId = url.substr(flashIndex + 1, hashIndex - 1 - flashIndex);
8794
+ const documentId = parseInt(sId, 10);
8795
+ this.getAnchorDocument(documentId);
8796
+ this.anchorByName = url.substr(hashIndex + 1, url.length - hashIndex);
8797
+ this.anchorTitle = this.data.title;
8798
+ break;
8691
8799
  }
8692
8800
  }
8693
8801
  onSelectedLinkType() {
8694
- if (this.selectedLink === LinkType.anchorText) {
8802
+ if (this.selectedLinkType === LinkType.anchorText) {
8695
8803
  this.getEditorAnchor();
8696
8804
  }
8697
- else if (this.selectedLink === LinkType.anchorDocument) {
8805
+ else if (this.selectedLinkType === LinkType.anchorDocument) {
8698
8806
  if (!this.documentAnchors) {
8699
8807
  this.anchorDocuments = [];
8700
8808
  this.setAnchorDocument(this.anchorDocuments);
@@ -8843,7 +8951,7 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
8843
8951
  }
8844
8952
  disableOkButton() {
8845
8953
  let isDisable = false;
8846
- switch (this.selectedLink) {
8954
+ switch (this.selectedLinkType) {
8847
8955
  case LinkType.url:
8848
8956
  isDisable = this.linkFormGroup.invalid;
8849
8957
  break;
@@ -8863,32 +8971,29 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
8863
8971
  }
8864
8972
  setLink() {
8865
8973
  const link = new QMSCKEditorLink();
8866
- link.typeId = this.selectedLink;
8974
+ link.typeId = this.selectedLinkType;
8867
8975
  link.targetId = this.selectedTarget;
8868
8976
  link.protocolId = this.selectedProtocol;
8869
- if (this.selectedLink === LinkType.url) {
8870
- if (!this.advisoryTitle.length) {
8871
- link.title = `${this.getProtocolName()}${this.linkFormGroup.value.url}`;
8872
- }
8873
- else {
8977
+ switch (this.selectedLinkType) {
8978
+ case LinkType.url:
8979
+ link.url = `${this.selectedLinkType}${this.selectedProtocol}${this.getProtocolName()}${this.url}`;
8874
8980
  link.title = this.advisoryTitle;
8875
- }
8876
- link.url = `${this.selectedLink}${this.selectedProtocol}${this.getProtocolName()}${this.url}`;
8877
- }
8878
- else if (this.selectedLink === LinkType.anchorText) {
8879
- link.url = `${this.selectedLink}${0}#${this.anchorText}`;
8880
- link.title = `#${this.anchorText}`;
8881
- link.targetId = TargetType.topmost;
8882
- }
8883
- else if (this.selectedLink === LinkType.email) {
8884
- link.url = `${this.selectedLink}${0}mailto:${this.emailAddress}?subject=${this.emailSubject}&body=${this.emailBody}`;
8885
- link.title = this.emailAddress;
8886
- link.targetId = TargetType.topmost;
8887
- }
8888
- else if (this.selectedLink === LinkType.anchorDocument) {
8889
- link.url = `${this.selectedLink}${0}/document/${this.documentId}#${this.anchorByName}`;
8890
- link.title = this.anchorTitle;
8891
- link.targetId = TargetType.topmost;
8981
+ break;
8982
+ case LinkType.anchorText:
8983
+ link.url = `${this.selectedLinkType}${0}#${this.anchorText}`;
8984
+ link.title = `#${this.anchorText}`;
8985
+ link.targetId = TargetType.topmost;
8986
+ break;
8987
+ case LinkType.email:
8988
+ link.url = `${this.selectedLinkType}${0}mailto:${this.emailAddress}?subject=${this.emailSubject}&body=${this.emailBody}`;
8989
+ link.title = this.emailAddress;
8990
+ link.targetId = TargetType.topmost;
8991
+ break;
8992
+ case LinkType.anchorDocument:
8993
+ link.url = `${this.selectedLinkType}${0}/document/${this.documentId}#${this.anchorByName}`;
8994
+ link.title = this.anchorTitle;
8995
+ link.targetId = TargetType.topmost;
8996
+ break;
8892
8997
  }
8893
8998
  this.dialogRef.close(link);
8894
8999
  }
@@ -8936,7 +9041,7 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
8936
9041
  QMSCKEditorLinkComponent.decorators = [
8937
9042
  { type: Component, args: [{
8938
9043
  selector: "qms-ckeditor-link",
8939
- template: "<div id=\"qmsckeditor_link\" class=\"qmsckeditor qmsckeditor__link__container\">\r\n <div id=\"qmsckeditor_link_header\">\r\n <span id=\"qmsckeditor_link_header_001\" mat-icon-button class=\"qmsckeditor button__close\" (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor_link_header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor_link_header_001\">\r\n {{ LANG.QMSCKEDITOR.LINK }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_type\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select disableOptionCentering name=\"linkTypeList\" [(ngModel)]=\"selectedLink\"\r\n (ngModelChange)=\"onSelectedLinkType()\">\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_content\">\r\n <form [formGroup]=\"linkFormGroup\" class=\"qmsckeditor link__content height row\" *ngIf=\"selectedLink === 0\">\r\n <div id=\"qmsckeditor_link_url\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_url_panel\" [expanded]=\"isExpanded\" (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.URL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_url_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\" disableOptionCentering>\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_002\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\" (ngModelChange)=\"getUrlToSetProtocol()\"/>\r\n <mat-error *ngIf=\"linkFormGroup.get('url').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_004\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ADVISORY_TITLE }}</mat-label>\r\n <input matInput [(ngModel)]=\"advisoryTitle\" formControlName=\"advisoryTitle\" />\r\n <mat-error *ngIf=\"linkFormGroup.get('advisoryTitle').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_005\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-6 pl-3 ps-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-3 pe-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form [formGroup]=\"anchorTextFormGroup\" class=\"qmsckeditor link__content height row\" *ngIf=\"selectedLink === 1\">\r\n <div id=\"qmsckeditor_link_anchor_text\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_anchor_text_panel\" [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\" (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.ANCHOR_TEXT_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_anchor_text_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorText\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\" [value]=\"editorAnchor.anchorValue\"\r\n disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"\r\n anchorTextFormGroup.get('anchorText').hasError('required')\r\n \" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form [formGroup]=\"emailFormGroup\" class=\"qmsckeditor link__content height row\" *ngIf=\"selectedLink === 2\">\r\n <div id=\"qmsckeditor_link_email\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_email_panel\" [expanded]=\"isExpanded\" (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_email_001\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_ADDRESS }}</mat-label>\r\n <input matInput [(ngModel)]=\"emailAddress\" formControlName=\"emailAddress\" />\r\n <mat-error *ngIf=\"emailFormGroup.get('emailAddress').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_002\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_SUBJECT }}</mat-label>\r\n <input matInput [(ngModel)]=\"emailSubject\" formControlName=\"emailSubject\" />\r\n <mat-error *ngIf=\"emailFormGroup.get('emailSubject').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_BODY }}</mat-label>\r\n <textarea matInput [(ngModel)]=\"emailBody\" formControlName=\"emailBody\"></textarea>\r\n <mat-error *ngIf=\"emailFormGroup.get('emailBody').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form [formGroup]=\"anchorDocFormGroup\" class=\"qmsckeditor link__content height row\" *ngIf=\"selectedLink === 3\">\r\n <div id=\"qmsckeditor_link_anchor_doc\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_email_panel\" [expanded]=\"isExpanded\" (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_anchor_doc_001\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-6 pl-3 ps-3\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"eHandbook(true, true)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_002\" class=\"row mt-4\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.DOCUMENT }}</mat-label>\r\n <input matInput [(ngModel)]=\"anchorTitle\" formControlName=\"anchorTitle\" />\r\n <mat-error *ngIf=\"\r\n anchorDocFormGroup.get('anchorTitle').hasError('required')\r\n \" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_003\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorByName\" formControlName=\"anchorByName\" disableOptionCentering>\r\n <mat-option *ngFor=\"let docAnchor of documentAnchors\" [value]=\"docAnchor.anchorValue\">\r\n {{ docAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"\r\n anchorDocFormGroup.get('anchorByName').hasError('required')\r\n \" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_footer\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-12 mt-3 pl-3 pr-3 ps-3 pe-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"setLink()\" [disabled]=\"disableOkButton()\">\r\n {{ LANG.QMSCKEDITOR.OK }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>",
9044
+ template: "<div id=\"qmsckeditor_link\" class=\"qmsckeditor qmsckeditor__link__container\">\r\n <div id=\"qmsckeditor_link_header\">\r\n <span id=\"qmsckeditor_link_header_001\" mat-icon-button class=\"qmsckeditor button__close\" (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor_link_header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor_link_header_001\">\r\n {{ LANG.QMSCKEDITOR.LINK }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_type\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select disableOptionCentering name=\"linkTypeList\" [(ngModel)]=\"selectedLinkType\"\r\n (ngModelChange)=\"onSelectedLinkType()\">\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_content\">\r\n <form [formGroup]=\"linkFormGroup\" class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLinkType == LinkType.url\">\r\n <div id=\"qmsckeditor_link_url\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_url_panel\" [expanded]=\"isExpanded\" (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.URL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_url_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\" disableOptionCentering>\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_002\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\"\r\n (ngModelChange)=\"getUrlToSetProtocol()\" />\r\n <mat-error *ngIf=\"linkFormGroup.get('url').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_004\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TITLE }}</mat-label>\r\n <input matInput [(ngModel)]=\"advisoryTitle\" formControlName=\"advisoryTitle\" />\r\n <mat-error *ngIf=\"linkFormGroup.get('advisoryTitle').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_005\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-6 pl-3 ps-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.DOCUMENT_PROCESS }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-3 pe-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form [formGroup]=\"anchorTextFormGroup\" class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLinkType == LinkType.anchorText\">\r\n <div id=\"qmsckeditor_link_anchor_text\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_anchor_text_panel\" [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\" (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.ANCHOR_TEXT_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_anchor_text_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorText\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\" [value]=\"editorAnchor.anchorValue\"\r\n disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"\r\n anchorTextFormGroup.get('anchorText').hasError('required')\r\n \" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form [formGroup]=\"emailFormGroup\" class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLinkType == LinkType.email\">\r\n <div id=\"qmsckeditor_link_email\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_email_panel\" [expanded]=\"isExpanded\" (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_email_001\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_ADDRESS }}</mat-label>\r\n <input matInput [(ngModel)]=\"emailAddress\" formControlName=\"emailAddress\" />\r\n <mat-error *ngIf=\"emailFormGroup.get('emailAddress').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_002\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_SUBJECT }}</mat-label>\r\n <input matInput [(ngModel)]=\"emailSubject\" formControlName=\"emailSubject\" />\r\n <mat-error *ngIf=\"emailFormGroup.get('emailSubject').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_BODY }}</mat-label>\r\n <textarea matInput [(ngModel)]=\"emailBody\" formControlName=\"emailBody\"></textarea>\r\n <mat-error *ngIf=\"emailFormGroup.get('emailBody').hasError('required')\" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form [formGroup]=\"anchorDocFormGroup\" class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLinkType == LinkType.anchorDocument\">\r\n <div id=\"qmsckeditor_link_anchor_doc\" class=\"col-12 mt-1 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-expansion-panel id=\"qmsckeditor_link_email_panel\" [expanded]=\"isExpanded\" (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_anchor_doc_001\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-6 pl-3 ps-3\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"eHandbook(true, true)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_002\" class=\"row mt-4\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3 ps-3 pe-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.DOCUMENT }}</mat-label>\r\n <input matInput [(ngModel)]=\"anchorTitle\" formControlName=\"anchorTitle\" />\r\n <mat-error *ngIf=\"\r\n anchorDocFormGroup.get('anchorTitle').hasError('required')\r\n \" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_003\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorByName\" formControlName=\"anchorByName\" disableOptionCentering>\r\n <mat-option *ngFor=\"let docAnchor of documentAnchors\" [value]=\"docAnchor.anchorValue\">\r\n {{ docAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"\r\n anchorDocFormGroup.get('anchorByName').hasError('required')\r\n \" class=\"mt5\">\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_footer\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-12 mt-3 pl-3 pr-3 ps-3 pe-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"setLink()\" [disabled]=\"disableOkButton()\">\r\n {{ LANG.QMSCKEDITOR.OK }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>",
8940
9045
  styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.ck-font-size-dropdown .ck-dropdown__panel ul{max-height:320px;overflow-y:auto}.ck-font-size-dropdown .ck-dropdown__panel ul li .ck-fontsize-option .ck-button__label{line-height:50px}.qmsckeditor__link__container textarea.mat-input-element{min-height:130px}"]
8941
9046
  },] }
8942
9047
  ];
@@ -9255,6 +9360,7 @@ class QMSCKEditorLoadTemplateComponent extends QMSCKEditorBaseComponent {
9255
9360
  this.dialogRef = dialogRef;
9256
9361
  this.data = data;
9257
9362
  this.templates = [];
9363
+ this.isReplace = false;
9258
9364
  }
9259
9365
  ngOnInit() {
9260
9366
  this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
@@ -9295,7 +9401,11 @@ class QMSCKEditorLoadTemplateComponent extends QMSCKEditorBaseComponent {
9295
9401
  return x.id === id;
9296
9402
  });
9297
9403
  const content = this.templates[index].content;
9298
- this.dialogRef.close(content);
9404
+ const detail = {
9405
+ content: content,
9406
+ isReplace: this.isReplace,
9407
+ };
9408
+ this.dialogRef.close(detail);
9299
9409
  }
9300
9410
  });
9301
9411
  }
@@ -9361,8 +9471,8 @@ class QMSCKEditorLoadTemplateComponent extends QMSCKEditorBaseComponent {
9361
9471
  QMSCKEditorLoadTemplateComponent.decorators = [
9362
9472
  { type: Component, args: [{
9363
9473
  selector: 'app-qmsck-load-template',
9364
- template: "<div\r\n id=\"qmsckeditor-load-template\"\r\n class=\"qmsckeditor qmsckeditor__loadtemplate__container\"\r\n>\r\n <div id=\"qmsckeditor-load-template-header\">\r\n <span\r\n id=\"qmsckeditor-load-template-header_001\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-load-template-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-template_002_001\">\r\n {{ LANG.QMSCKEDITOR.CONTENT_TEMPLATE }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"load-template_002\">\r\n <div id=\"load-template_002_001\" class=\"title col-12 mt-3\">\r\n <h2 id=\"load-template_002_001_001\">\r\n {{ LANG.QMSCKEDITOR.CHOOSE_TEMPLATE }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div\r\n id=\"qmsckeditor-load-template-content\"\r\n class=\"qmsckeditor template-content height\"\r\n >\r\n <div id=\"qmsckeditor-load-template-content_003\" class=\"mt-1 pl-2 pr-2 ps-2 pe-2\">\r\n <mat-card\r\n class=\"qmsckeditor card col-12\"\r\n *ngFor=\"let template of templates\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"qmsckeditor__cursor col-10\"\r\n (click)=\"onSelectTemplate(template.id)\"\r\n >\r\n <div class=\"col-12 pl-0 ps-0 title\">\r\n <span>{{ template.title }}</span>\r\n </div>\r\n <div class=\"col-12 pl-0 ps-0 content\">\r\n <span>{{ template.description }}</span>\r\n </div>\r\n </div>\r\n <div class=\"qmsckeditor__cursor col-1\">\r\n <mat-icon (click)=\"onEditTemplate(template.id)\">edit</mat-icon>\r\n </div>\r\n <div class=\"qmsckeditor__cursor col-1\">\r\n <mat-icon (click)=\"onDeleteTemplate(template.id)\">delete</mat-icon>\r\n </div>\r\n </div>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n",
9365
- styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.ck-font-size-dropdown .ck-dropdown__panel ul{max-height:320px;overflow-y:auto}.ck-font-size-dropdown .ck-dropdown__panel ul li .ck-fontsize-option .ck-button__label{line-height:50px}.qmsckeditor__loadtemplate__container .template-checkbox{padding-top:20px}"]
9474
+ template: "<div id=\"qmsckeditor-load-template\" class=\"qmsckeditor qmsckeditor__loadtemplate__container\">\r\n <div id=\"qmsckeditor-load-template-header\">\r\n <span id=\"qmsckeditor-load-template-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-load-template-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-template_002_001\">\r\n {{ LANG.QMSCKEDITOR.CONTENT_TEMPLATE }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"load-template_002\">\r\n <div id=\"load-template_002_001\" class=\"title col-12 mt-3\">\r\n <h2 id=\"load-template_002_001_001\">\r\n {{ LANG.QMSCKEDITOR.CHOOSE_TEMPLATE }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-load-template-content\" class=\"qmsckeditor template-content height\">\r\n <div id=\"qmsckeditor-load-template-content_003\" class=\"mt-1 pl-2 pr-2 ps-2 pe-2\">\r\n <mat-card class=\"qmsckeditor card col-12\" *ngFor=\"let template of templates\">\r\n <div class=\"row\">\r\n <div class=\"qmsckeditor__cursor col-10\" (click)=\"onSelectTemplate(template.id)\">\r\n <div class=\"col-12 pl-0 ps-0 title\">\r\n <span>{{ template.title }}</span>\r\n </div>\r\n <div class=\"col-12 pl-0 ps-0 content\">\r\n <span>{{ template.description }}</span>\r\n </div>\r\n </div>\r\n <div class=\"qmsckeditor__cursor col-1\">\r\n <mat-icon (click)=\"onEditTemplate(template.id)\">edit</mat-icon>\r\n </div>\r\n <div class=\"qmsckeditor__cursor col-1\">\r\n <mat-icon (click)=\"onDeleteTemplate(template.id)\">delete</mat-icon>\r\n </div>\r\n </div>\r\n </mat-card>\r\n </div>\r\n </div>\r\n <div class=\"option\">\r\n <mat-checkbox qms-group-options [(ngModel)]=\"isReplace\" color=\"primary\">\r\n {{ LANG.QMSCKEDITOR.REPLACE_CONTENT }}\r\n </mat-checkbox>\r\n </div>\r\n</div>",
9475
+ styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.ck-font-size-dropdown .ck-dropdown__panel ul{max-height:320px;overflow-y:auto}.ck-font-size-dropdown .ck-dropdown__panel ul li .ck-fontsize-option .ck-button__label{line-height:50px}.qmsckeditor__loadtemplate__container .template-checkbox{padding-top:20px}.qmsckeditor__loadtemplate__container .option{padding-left:15px}"]
9366
9476
  },] }
9367
9477
  ];
9368
9478
  QMSCKEditorLoadTemplateComponent.ctorParameters = () => [
@@ -9377,14 +9487,7 @@ class QmsUploadAdapter {
9377
9487
  constructor(loader, config) {
9378
9488
  this.loader = loader;
9379
9489
  this.config = config;
9380
- this.config.imageUploadTypes = this.config.imageUploadTypes || 'png,jpeg,jpg';
9381
9490
  this.config.maxFileSizeMB = this.config.maxFileSizeMB || 2;
9382
- if (this.config.imageUploadTypes.indexOf('jpeg') > -1) {
9383
- this.config.imageUploadTypes += ',jpg';
9384
- }
9385
- else if (this.config.imageUploadTypes.indexOf('jpg') > -1) {
9386
- this.config.imageUploadTypes += ',jpeg';
9387
- }
9388
9491
  }
9389
9492
  abort() {
9390
9493
  if (this.xhr) {
@@ -9403,10 +9506,11 @@ class QmsUploadAdapter {
9403
9506
  xhr.addEventListener('error', () => reject(genericErrorText));
9404
9507
  xhr.addEventListener('abort', () => reject());
9405
9508
  xhr.addEventListener('load', () => {
9406
- const response = xhr.response;
9509
+ let response = xhr.response;
9407
9510
  if (!response || response.error) {
9408
9511
  return reject(response && response.error ? response.error.message : genericErrorText);
9409
9512
  }
9513
+ response = this.config.apiUrl.substring(0, this.config.apiUrl.length - 5) + response; // delete after test
9410
9514
  resolve({ default: response });
9411
9515
  });
9412
9516
  if (xhr.upload) {
@@ -9418,10 +9522,12 @@ class QmsUploadAdapter {
9418
9522
  });
9419
9523
  }
9420
9524
  }
9421
- _sendRequest(file) {
9525
+ _sendRequest(file, imageHeight, imageWidth) {
9422
9526
  const data = new FormData();
9423
9527
  data.append('file', file, file.name);
9424
9528
  data.append('name', file.name);
9529
+ data.append('imageHeight', imageHeight.toString());
9530
+ data.append('imageWidth', imageWidth.toString());
9425
9531
  this.xhr.send(data);
9426
9532
  }
9427
9533
  _getExtension(file) {
@@ -9432,15 +9538,25 @@ class QmsUploadAdapter {
9432
9538
  if (filenames.length < 1) {
9433
9539
  return '';
9434
9540
  }
9435
- return filenames[1];
9541
+ return filenames[filenames.length - 1];
9436
9542
  }
9437
9543
  upload() {
9438
9544
  return this.loader.file
9439
9545
  .then((file) => {
9440
9546
  return new Promise((resolve, reject) => {
9441
- const reader = new FileReader();
9442
- reader.readAsArrayBuffer(file);
9443
- reader.onload = () => {
9547
+ const readerImageSrc = new FileReader();
9548
+ const readerArrayBuffer = new FileReader();
9549
+ let imageHeight = 0;
9550
+ let imageWidth = 0;
9551
+ readerImageSrc.readAsDataURL(file);
9552
+ readerArrayBuffer.readAsArrayBuffer(file);
9553
+ readerImageSrc.onload = (event) => {
9554
+ let img = new Image();
9555
+ img.src = event.target.result.toString();
9556
+ imageHeight = img.height;
9557
+ imageWidth = img.width;
9558
+ };
9559
+ readerArrayBuffer.onload = () => {
9444
9560
  const fileExtension = this._getExtension(file);
9445
9561
  if (this.config.imageUploadTypes.indexOf(fileExtension) > -1) {
9446
9562
  if (file.size > (this.config.maxFileSizeMB * 1024 * 1024)) {
@@ -9448,7 +9564,7 @@ class QmsUploadAdapter {
9448
9564
  }
9449
9565
  this._initRequest();
9450
9566
  this._initListeners(resolve, reject, file.name);
9451
- this._sendRequest(file);
9567
+ this._sendRequest(file, imageHeight, imageWidth);
9452
9568
  }
9453
9569
  else {
9454
9570
  reject(`${this.config.LANG.QMSCKEDITOR.UPLOAD_FILE_NOT_VALID_FORMAT}`.replace('{0}', this.config.imageUploadTypes));
@@ -9698,6 +9814,7 @@ function getCKEditorConfiguration(itemToolbar) {
9698
9814
  // }
9699
9815
  // ]
9700
9816
  },
9817
+ // Please be aware that we can't use camelCase attribute name, it will lead to bug when upcasting
9701
9818
  link: {
9702
9819
  addTargetToExternalLinks: false,
9703
9820
  decorators: [
@@ -9706,8 +9823,7 @@ function getCKEditorConfiguration(itemToolbar) {
9706
9823
  label: 'New window',
9707
9824
  attributes: {
9708
9825
  target: '_blank',
9709
- manualTarget: true,
9710
- url: 'url'
9826
+ manualtarget: true
9711
9827
  }
9712
9828
  },
9713
9829
  {
@@ -9715,8 +9831,7 @@ function getCKEditorConfiguration(itemToolbar) {
9715
9831
  label: 'Topmost window',
9716
9832
  attributes: {
9717
9833
  target: '_top',
9718
- manualTarget: true,
9719
- url: 'url'
9834
+ manualtarget: true
9720
9835
  }
9721
9836
  },
9722
9837
  {
@@ -9724,8 +9839,7 @@ function getCKEditorConfiguration(itemToolbar) {
9724
9839
  label: 'Same window',
9725
9840
  attributes: {
9726
9841
  target: '_self',
9727
- manualTarget: true,
9728
- url: 'url'
9842
+ manualtarget: true
9729
9843
  }
9730
9844
  },
9731
9845
  {
@@ -9733,8 +9847,7 @@ function getCKEditorConfiguration(itemToolbar) {
9733
9847
  label: 'Parent window',
9734
9848
  attributes: {
9735
9849
  target: '_parent',
9736
- manualTarget: true,
9737
- url: 'url'
9850
+ manualtarget: true
9738
9851
  }
9739
9852
  },
9740
9853
  {
@@ -12083,6 +12196,15 @@ const InspectorFunction$1 = {
12083
12196
  function getToolbarConfiguration$1(LANG) {
12084
12197
  return {
12085
12198
  tools: [
12199
+ {
12200
+ type: 'button',
12201
+ name: 'fullscreen',
12202
+ attrs: {
12203
+ button: {
12204
+ 'data-tooltip': `${LANG.BPMN.TOGGLE_FULL_SCREEN}`
12205
+ }
12206
+ }
12207
+ },
12086
12208
  {
12087
12209
  type: 'button',
12088
12210
  name: 'print',
@@ -12300,6 +12422,8 @@ class BpmnService {
12300
12422
  this.isReset = false;
12301
12423
  this.isSelectedTemplate = false;
12302
12424
  this.jsonOriginalContent = '';
12425
+ this.isFullScreen = false;
12426
+ this.isExpandedPanel = true;
12303
12427
  }
12304
12428
  buildDiagram(diagramTemplates, diagramTemplate, bpmnTheme, jsonContent, editMode, LANG) {
12305
12429
  window[`IS_NOT_SHOW_AGAIN`] = false;
@@ -13077,6 +13201,34 @@ class BpmnService {
13077
13201
  model[method]();
13078
13202
  });
13079
13203
  graph.stopBatch('selection');
13204
+ },
13205
+ toggleFullscreen: () => {
13206
+ var _a, _b, _c, _d, _e, _f, _g, _h;
13207
+ this.isFullScreen = !this.isFullScreen;
13208
+ if (this.isFullScreen) {
13209
+ document.querySelectorAll('[id^="cdk-overlay-"]')[0].classList.add('full-screen-bpmn-editor_cdk-overlay');
13210
+ (_a = document.getElementById('leftpanel')) === null || _a === void 0 ? void 0 : _a.classList.add('full-screen-bpmn-editor_panel');
13211
+ (_b = document.getElementById('rightpanel')) === null || _b === void 0 ? void 0 : _b.classList.add('full-screen-bpmn-editor_panel');
13212
+ if (this.isExpandedPanel) {
13213
+ (_c = document.getElementById('paperpanel')) === null || _c === void 0 ? void 0 : _c.classList.add('full-screen-bpmn-editor_paperpanel');
13214
+ }
13215
+ else {
13216
+ (_d = document.getElementById('paperpanel')) === null || _d === void 0 ? void 0 : _d.classList.add('full-screen-bpmn-editor_paperpanel-expandpanel');
13217
+ }
13218
+ }
13219
+ else {
13220
+ document.querySelectorAll('[id^="cdk-overlay-"]')[0].classList.remove('full-screen-bpmn-editor_cdk-overlay');
13221
+ (_e = document.getElementById('leftpanel')) === null || _e === void 0 ? void 0 : _e.classList.remove('full-screen-bpmn-editor_panel');
13222
+ (_f = document.getElementById('rightpanel')) === null || _f === void 0 ? void 0 : _f.classList.remove('full-screen-bpmn-editor_panel');
13223
+ if (this.isExpandedPanel) {
13224
+ (_g = document.getElementById('paperpanel')) === null || _g === void 0 ? void 0 : _g.classList.remove('full-screen-bpmn-editor_paperpanel');
13225
+ document.getElementById('paperpanel').style.height = '400px';
13226
+ }
13227
+ else {
13228
+ (_h = document.getElementById('paperpanel')) === null || _h === void 0 ? void 0 : _h.classList.remove('full-screen-bpmn-editor_paperpanel-expandpanel');
13229
+ document.getElementById('paperpanel').style.height = '500px';
13230
+ }
13231
+ }
13080
13232
  }
13081
13233
  };
13082
13234
  toolbar.on({
@@ -13092,7 +13244,8 @@ class BpmnService {
13092
13244
  'to-front:pointerclick': toolbarCommands.applyOnSelection.bind(this, 'toFront'),
13093
13245
  'to-back:pointerclick': toolbarCommands.applyOnSelection.bind(this, 'toBack'),
13094
13246
  'snapline:change': toolbarCommands.changeSnapLines.bind(this),
13095
- 'grid-size:change': paper.setGridSize.bind(paper)
13247
+ 'grid-size:change': paper.setGridSize.bind(paper),
13248
+ 'fullscreen:pointerclick': toolbarCommands.toggleFullscreen
13096
13249
  });
13097
13250
  toolbar.render().$el.appendTo('#toolbar-container');
13098
13251
  // const zoomTool = new joint.ui.Toolbar({
@@ -13599,21 +13752,6 @@ CKEditorLinkConst.DOCUMENT_PARTIAL_URL = '/document/';
13599
13752
  CKEditorLinkConst.AREA_PARTIAL_URL = '/area/detail/';
13600
13753
  CKEditorLinkConst.PROCESS_PARTIAL_URL = '/process-detail/';
13601
13754
 
13602
- class QMSCKEditorUploadService extends QMSCKEditorBaseService {
13603
- uploadImage(file) {
13604
- const formData = new FormData();
13605
- formData.append('name', file.name);
13606
- formData.append('file', file);
13607
- return this.post('ckeditorUpload/UploadImage', formData);
13608
- }
13609
- }
13610
- QMSCKEditorUploadService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSCKEditorUploadService_Factory() { return new QMSCKEditorUploadService(i0.ɵɵinject(i1$1.HttpClient), i0.ɵɵinject(QMSCKEditorGlobalService)); }, token: QMSCKEditorUploadService, providedIn: "root" });
13611
- QMSCKEditorUploadService.decorators = [
13612
- { type: Injectable, args: [{
13613
- providedIn: 'root'
13614
- },] }
13615
- ];
13616
-
13617
13755
  function base64StringToFile(base64String, filename) {
13618
13756
  const arr = base64String.split(',');
13619
13757
  if (arr.length < 2) {
@@ -13628,6 +13766,14 @@ function base64StringToFile(base64String, filename) {
13628
13766
  return new File([buff], filename, { type: mime });
13629
13767
  }
13630
13768
 
13769
+ var QMSCKEditorBpmnExpand;
13770
+ (function (QMSCKEditorBpmnExpand) {
13771
+ QMSCKEditorBpmnExpand[QMSCKEditorBpmnExpand["isFullScreenAndnotExpandPanel"] = 0] = "isFullScreenAndnotExpandPanel";
13772
+ QMSCKEditorBpmnExpand[QMSCKEditorBpmnExpand["isFullScreenAndisExpandPanel"] = 1] = "isFullScreenAndisExpandPanel";
13773
+ QMSCKEditorBpmnExpand[QMSCKEditorBpmnExpand["notFullScreenAndnotExpandPanel"] = 2] = "notFullScreenAndnotExpandPanel";
13774
+ QMSCKEditorBpmnExpand[QMSCKEditorBpmnExpand["notFullScreenAndisExpandPanel"] = 3] = "notFullScreenAndisExpandPanel";
13775
+ })(QMSCKEditorBpmnExpand || (QMSCKEditorBpmnExpand = {}));
13776
+
13631
13777
  class ILink {
13632
13778
  constructor() {
13633
13779
  this.target = TargetTypeName.new;
@@ -13639,11 +13785,11 @@ class ILink {
13639
13785
  }
13640
13786
  }
13641
13787
  class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
13642
- constructor(dialog, translate, bmpnService, bpmnApiService, linkService, uploadService, dialogRef, data) {
13788
+ constructor(dialog, translate, bpmnService, bpmnApiService, linkService, uploadService, dialogRef, data) {
13643
13789
  super();
13644
13790
  this.dialog = dialog;
13645
13791
  this.translate = translate;
13646
- this.bmpnService = bmpnService;
13792
+ this.bpmnService = bpmnService;
13647
13793
  this.bpmnApiService = bpmnApiService;
13648
13794
  this.linkService = linkService;
13649
13795
  this.uploadService = uploadService;
@@ -13700,7 +13846,7 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
13700
13846
  if (this.id) {
13701
13847
  this.jsonContent = yield this.getJsonContent(this.id);
13702
13848
  }
13703
- this.bmpnService.buildDiagram(this.bpmnTemlates, null, CKEditorEventConst.QMSCK_BPMN, this.jsonContent, 1, this.LANG);
13849
+ this.bpmnService.buildDiagram(this.bpmnTemlates, null, CKEditorEventConst.QMSCK_BPMN, this.jsonContent, 1, this.LANG);
13704
13850
  this.initDocumentIcons();
13705
13851
  this.initTarget();
13706
13852
  this.initConnectionType();
@@ -13739,20 +13885,37 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
13739
13885
  }
13740
13886
  expandPanel() {
13741
13887
  this.expandedPanel = !this.expandedPanel;
13888
+ this.bpmnService.isExpandedPanel = !this.bpmnService.isExpandedPanel;
13742
13889
  const panelStencil = document.getElementById('panel-stencil-container');
13890
+ if (!panelStencil)
13891
+ return;
13743
13892
  const paperContainer = document.getElementById('paperpanel');
13744
13893
  const stencilContainer = document.getElementById('stencilpanel');
13745
- if (panelStencil) {
13746
- if (!this.expandedPanel) {
13894
+ switch (this.checkCaseBpmnExpandPanel()) {
13895
+ case QMSCKEditorBpmnExpand.isFullScreenAndnotExpandPanel:
13896
+ stencilContainer.style.height = '50px';
13897
+ panelStencil.style.height = '50px';
13898
+ paperContainer === null || paperContainer === void 0 ? void 0 : paperContainer.classList.remove('full-screen-bpmn-editor_paperpanel');
13899
+ paperContainer === null || paperContainer === void 0 ? void 0 : paperContainer.classList.add('full-screen-bpmn-editor_paperpanel-expandpanel');
13900
+ break;
13901
+ case QMSCKEditorBpmnExpand.isFullScreenAndisExpandPanel:
13902
+ stencilContainer.style.height = '150px';
13903
+ panelStencil.style.height = '150px';
13904
+ paperContainer === null || paperContainer === void 0 ? void 0 : paperContainer.classList.remove('full-screen-bpmn-editor_paperpanel-expandpanel');
13905
+ paperContainer === null || paperContainer === void 0 ? void 0 : paperContainer.classList.add('full-screen-bpmn-editor_paperpanel');
13906
+ break;
13907
+ case QMSCKEditorBpmnExpand.notFullScreenAndnotExpandPanel:
13747
13908
  stencilContainer.style.height = '50px';
13748
13909
  panelStencil.style.height = '50px';
13749
13910
  paperContainer.style.height = '500px';
13750
- }
13751
- else {
13911
+ break;
13912
+ case QMSCKEditorBpmnExpand.notFullScreenAndisExpandPanel:
13752
13913
  stencilContainer.style.height = '150px';
13753
13914
  panelStencil.style.height = '150px';
13754
13915
  paperContainer.style.height = '400px';
13755
- }
13916
+ break;
13917
+ default:
13918
+ break;
13756
13919
  }
13757
13920
  }
13758
13921
  getTemplates() {
@@ -14087,7 +14250,7 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
14087
14250
  onTabChange($event) {
14088
14251
  window[FlowChartConst.TAB_NAME] = $event.tab.textLabel;
14089
14252
  if ($event.tab.textLabel == this.LANG.BPMN.PROPERTIES) {
14090
- this.bmpnService.openShapeFunctionality(this.LANG);
14253
+ this.bpmnService.openShapeFunctionality(this.LANG);
14091
14254
  }
14092
14255
  }
14093
14256
  parseLinkUrl(url) {
@@ -14180,7 +14343,7 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
14180
14343
  const graph = window[FlowChartConst.GRAPH];
14181
14344
  if (graph) {
14182
14345
  graph.fromJSON(JSON.parse(ogrJsonContent));
14183
- this.bmpnService.setDefaultSelectedValue();
14346
+ this.bpmnService.setDefaultSelectedValue();
14184
14347
  window[FlowChartConst.IS_SELECTED_TEMPLATE] = false;
14185
14348
  }
14186
14349
  window[FlowChartConst.MY_CELL_VIEW] = null;
@@ -14360,6 +14523,16 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
14360
14523
  return minValue;
14361
14524
  }
14362
14525
  ;
14526
+ checkCaseBpmnExpandPanel() {
14527
+ if (this.bpmnService.isFullScreen && !this.expandedPanel)
14528
+ return QMSCKEditorBpmnExpand.isFullScreenAndnotExpandPanel;
14529
+ if (this.bpmnService.isFullScreen && this.expandedPanel)
14530
+ return QMSCKEditorBpmnExpand.isFullScreenAndisExpandPanel;
14531
+ if (!this.bpmnService.isFullScreen && !this.expandedPanel)
14532
+ return QMSCKEditorBpmnExpand.notFullScreenAndnotExpandPanel;
14533
+ if (!this.bpmnService.isFullScreen && this.expandedPanel)
14534
+ return QMSCKEditorBpmnExpand.notFullScreenAndisExpandPanel;
14535
+ }
14363
14536
  }
14364
14537
  QMSCKEditorBpmnComponent.decorators = [
14365
14538
  { type: Component, args: [{
@@ -16859,7 +17032,7 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
16859
17032
  QMSCKEditorImageMapComponent.decorators = [
16860
17033
  { type: Component, args: [{
16861
17034
  selector: 'app-qmsck-imagemap',
16862
- template: "<div id=\"qmsckeditor-imagemap\" class=\"qmsckeditor qmsckeditor__imagemap__container\">\r\n <div id=\"qmsckeditor-imagemap-header\">\r\n <span id=\"qmsckeditor-imagemap-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-imagemap-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-imagemap_002_001\">\r\n {{ LANG.QMSCKEDITOR.IMAGE_MAP_PROPERTIES }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-content\">\r\n <div id=\"qmsckeditor-imagemap-content_001\" class=\"col-12 mt-1 pl-2 pr-2 ps-2 pe-2\">\r\n <mat-expansion-panel id=\"qmsckeditor-imagemap-panel\" [expanded]=\"true\" (opened)=\"(true)\" (closed)=\"(false)\">\r\n <div id=\"qmsckeditor-imagemap-panel_001\">\r\n <div id=\"qmsckeditor-imagemap-panel_001_001\" class=\"qmsckeditor__imagemap__information\">\r\n <form [formGroup]=\"imageMapFormGroup\">\r\n <div class=\"row\">\r\n <div class=\"col-9\">\r\n <mat-button-toggle-group [(ngModel)]=\"selectedMode\" formControlName=\"modeList\"\r\n (change)=\"onModeChange($event)\">\r\n <mat-button-toggle *ngFor=\"let mode of modes\" [value]=\"mode.id\"\r\n [matTooltip]=\"mode.name\">\r\n <mat-icon color=\"red\" [svgIcon]=\"mode.icon\" aria-hidden=\"true\">\r\n </mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n <span style=\"margin-left: 15px;\" #myStatus></span>\r\n </div>\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ZOOM }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedZoom\" formControlName=\"zoomList\"\r\n (ngModelChange)=\"onZoomChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let zoomType of zoomTypes\" [value]=\"zoomType.id\">\r\n {{ zoomType.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLinkType\" formControlName=\"linkTypeList\"\r\n (ngModelChange)=\"onLinkTypeChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-3\" *ngIf=\"selectedLinkType === 0\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\"\r\n (ngModelChange)=\"onTargetChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 1\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorTextList\"\r\n (ngModelChange)=\"onAnchorTextChange()\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\" disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 0\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\"\r\n (ngModelChange)=\"onProtocolChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-5\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\"\r\n (ngModelChange)=\"onUrlChange()\" (keyup)=\"onUrlKeyup()\" />\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('required')\">{{\r\n LANG.QMSCKEDITOR.REQUIRED_URL }}\r\n </mat-error>\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('invalidURL')\">{{\r\n LANG.QMSCKEDITOR.INVALID_URL }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"row button__groups\">\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_002\" class=\"qmsckeditor__imagemap__map\">\r\n <img #myImage [src]=\"imageMapData.imageUrl\">\r\n <mat-spinner diameter=\"40\" mode=\"indeterminate\" *ngIf=\"isImageLoading\"></mat-spinner>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_003\" class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4 ms-0 me-0\">\r\n <div class=\"col-4 pr-0 pe-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"removeMap()\">\r\n {{ LANG.QMSCKEDITOR.REMOVE_MAP }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pr-0 pe-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"save()\">\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pl-0 ps-0\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"cancel()\">\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n</div>\r\n",
17035
+ template: "<div id=\"qmsckeditor-imagemap\" class=\"qmsckeditor qmsckeditor__imagemap__container\">\r\n <div id=\"qmsckeditor-imagemap-header\">\r\n <span id=\"qmsckeditor-imagemap-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-imagemap-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-imagemap_002_001\">\r\n {{ LANG.QMSCKEDITOR.IMAGE_MAP_PROPERTIES }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-content\">\r\n <div id=\"qmsckeditor-imagemap-content_001\" class=\"col-12 mt-1 pl-2 pr-2 ps-2 pe-2\">\r\n <mat-expansion-panel id=\"qmsckeditor-imagemap-panel\" [expanded]=\"true\" (opened)=\"(true)\" (closed)=\"(false)\">\r\n <div id=\"qmsckeditor-imagemap-panel_001\">\r\n <div id=\"qmsckeditor-imagemap-panel_001_001\" class=\"qmsckeditor__imagemap__information\">\r\n <form [formGroup]=\"imageMapFormGroup\">\r\n <div class=\"row\">\r\n <div class=\"col-9\">\r\n <mat-button-toggle-group [(ngModel)]=\"selectedMode\" formControlName=\"modeList\"\r\n (change)=\"onModeChange($event)\">\r\n <mat-button-toggle *ngFor=\"let mode of modes\" [value]=\"mode.id\"\r\n [matTooltip]=\"mode.name\">\r\n <mat-icon color=\"red\" [svgIcon]=\"mode.icon\" aria-hidden=\"true\">\r\n </mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n <span style=\"margin-left: 15px;\" #myStatus></span>\r\n </div>\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ZOOM }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedZoom\" formControlName=\"zoomList\"\r\n (ngModelChange)=\"onZoomChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let zoomType of zoomTypes\" [value]=\"zoomType.id\">\r\n {{ zoomType.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLinkType\" formControlName=\"linkTypeList\"\r\n (ngModelChange)=\"onLinkTypeChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-3\" *ngIf=\"selectedLinkType === 0\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\"\r\n (ngModelChange)=\"onTargetChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 1\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorTextList\"\r\n (ngModelChange)=\"onAnchorTextChange()\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\" disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 0\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\"\r\n (ngModelChange)=\"onProtocolChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-5\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1 ps-3 pe-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\"\r\n (ngModelChange)=\"onUrlChange()\" (keyup)=\"onUrlKeyup()\" />\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('required')\">{{\r\n LANG.QMSCKEDITOR.REQUIRED_URL }}\r\n </mat-error>\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('invalidURL')\">{{\r\n LANG.QMSCKEDITOR.INVALID_URL }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"row button__groups\">\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.DOCUMENT_PROCESS }}\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_002\" class=\"qmsckeditor__imagemap__map\">\r\n <img #myImage [src]=\"imageMapData.imageUrl\">\r\n <mat-spinner diameter=\"40\" mode=\"indeterminate\" *ngIf=\"isImageLoading\"></mat-spinner>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_003\"\r\n class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4 ms-0 me-0\">\r\n <div class=\"col-4 pr-0 pe-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"removeMap()\">\r\n {{ LANG.QMSCKEDITOR.REMOVE_MAP }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pr-0 pe-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"save()\">\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pl-0 ps-0\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"cancel()\">\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n</div>",
16863
17036
  styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.ck-font-size-dropdown .ck-dropdown__panel ul{max-height:320px;overflow-y:auto}.ck-font-size-dropdown .ck-dropdown__panel ul li .ck-fontsize-option .ck-button__label{line-height:50px}::ng-deep .qmsckeditor__imagemap__container .mat-form-field{width:100%}::ng-deep .qmsckeditor__imagemap__container .qmsckeditor__imagemap__information{position:relative}::ng-deep .qmsckeditor__imagemap__container .qmsckeditor__imagemap__map{overflow:auto;width:800px;min-height:371px;position:relative;max-height:460px;display:flex;align-items:flex-start}::ng-deep .qmsckeditor__imagemap__container .mat-button-toggle-checked{border:1px solid #000!important}::ng-deep .qmsckeditor__imagemap__container .hidden{visibility:hidden}"]
16864
17037
  },] }
16865
17038
  ];
@@ -23368,6 +23541,10 @@ QmsCkeditorLinkSimpleComponent.ctorParameters = () => [
23368
23541
  { type: QMSCKEditorLink, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
23369
23542
  ];
23370
23543
 
23544
+ class CKEditorImageUploadTypeConst {
23545
+ }
23546
+ CKEditorImageUploadTypeConst.QMSCK_IMAGE_TYPES_SUPPORT_DEFAULT = 'pjp,jpg,pjpeg,jpeg,jfif,png,gif,bmp,webp,tif,tiff';
23547
+
23371
23548
  class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23372
23549
  /**
23373
23550
  * Constructor
@@ -23438,6 +23615,9 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23438
23615
  toolbarItems += ',' + this.qmsckData.toggledToolbarItems;
23439
23616
  }
23440
23617
  this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(toolbarItems);
23618
+ if (this.qmsckData.hideImgOptions) {
23619
+ this.ckeditorConfig = this.hideImageOptions(this.ckeditorConfig, this.qmsckData.hideImgOptions);
23620
+ }
23441
23621
  this.globalService.setApiUrl(this.qmsckData.apiUrl);
23442
23622
  if (this.isEnabledMathtypeConfig()) {
23443
23623
  this.addMathTypeConfig();
@@ -23587,6 +23767,15 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23587
23767
  },
23588
23768
  };
23589
23769
  }
23770
+ hideImageOptions(config, options) {
23771
+ const itemArray = options.split(',');
23772
+ itemArray.forEach(element => {
23773
+ config.image.toolbar = config.image.toolbar.filter(function (item) {
23774
+ return item !== element;
23775
+ });
23776
+ });
23777
+ return config;
23778
+ }
23590
23779
  /**
23591
23780
  * onReady
23592
23781
  */
@@ -23598,7 +23787,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23598
23787
  this.initEditor(editor);
23599
23788
  }
23600
23789
  initEditor(editor) {
23601
- const imageUploadTypes = editor.config.get("image.upload.types");
23790
+ const imageUploadTypes = CKEditorImageUploadTypeConst.QMSCK_IMAGE_TYPES_SUPPORT_DEFAULT;
23602
23791
  const maxFileSizeMB = this.qmsckData.maxFileSizeMB;
23603
23792
  const config = {
23604
23793
  apiUrl: this.qmsckData.apiUrl,
@@ -23702,12 +23891,10 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23702
23891
  .afterClosed()
23703
23892
  .pipe(takeUntil(this.ngUnsubcribe))
23704
23893
  .subscribe((result) => {
23705
- if (result) {
23706
- const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LINK_PLUGIN_RESP, {
23707
- detail: result,
23708
- });
23709
- window.dispatchEvent(evt);
23710
- }
23894
+ const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LINK_PLUGIN_RESP, {
23895
+ detail: result
23896
+ });
23897
+ window.dispatchEvent(evt);
23711
23898
  });
23712
23899
  }
23713
23900
  /**
@@ -23788,6 +23975,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23788
23975
  .pipe(takeUntil(this.ngUnsubcribe))
23789
23976
  .subscribe((result) => {
23790
23977
  if (result) {
23978
+ result.values = this.qmsckData.apiUrl.substring(0, this.qmsckData.apiUrl.length - 5) + result.values; // delete after test
23791
23979
  const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_BPMN_PLUGIN_RESP, {
23792
23980
  detail: result,
23793
23981
  });
@@ -23908,6 +24096,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23908
24096
  const data = new PopupData();
23909
24097
  data.moduleId = 2;
23910
24098
  data.moduleName = this.LANG.QMSCKEDITOR.SELECT_VIDEO_FROM_ARCHIVE;
24099
+ data.moduleUploadImageName = this.LANG.QMSCKEDITOR.SELECT_VIDEO_IMAGE;
23911
24100
  data.treeData1 = videos.map((item) => {
23912
24101
  return {
23913
24102
  rootId: item.rootId,
@@ -23924,6 +24113,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23924
24113
  });
23925
24114
  data.treeData2 = [];
23926
24115
  data.treeConfig1 = config;
24116
+ data.canUploadImage = videos.length ? true : false;
23927
24117
  const dialogRef = this.dialog.open(RelatedPopupComponent, {
23928
24118
  minWidth: "450px",
23929
24119
  maxWidth: "800px",
@@ -23939,14 +24129,17 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
23939
24129
  }, 100);
23940
24130
  dialogRef.afterClosed().subscribe((result) => {
23941
24131
  if (result) {
23942
- const ids = result.reduce((result, item) => {
24132
+ if (result.imageRelativeUrl.length) { // delete after test
24133
+ result.imageRelativeUrl = this.qmsckData.apiUrl.substring(0, this.qmsckData.apiUrl.length - 5) + result.imageRelativeUrl; // delete after test
24134
+ }
24135
+ const ids = result.checkedNodeList.reduce((result, item) => {
23943
24136
  result[item.id.toString()] = item.id;
23944
24137
  return result;
23945
24138
  }, {});
23946
24139
  const urls = videos
23947
24140
  .filter((i) => i.childId && !!ids[i.childId.toString()])
23948
24141
  .map((i) => i.url);
23949
- const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_BROWSE_VIDEO_RESP, { detail: { urls: urls } });
24142
+ const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_BROWSE_VIDEO_RESP, { detail: { urls: urls, thumbnailUrl: result.imageRelativeUrl } });
23950
24143
  window.dispatchEvent(evt);
23951
24144
  }
23952
24145
  });
@@ -23991,7 +24184,7 @@ QMSCKEditorComponent.decorators = [
23991
24184
  ],
23992
24185
  encapsulation: ViewEncapsulation.None,
23993
24186
  changeDetection: ChangeDetectionStrategy.OnPush,
23994
- styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.ck-font-size-dropdown .ck-dropdown__panel ul{max-height:320px;overflow-y:auto}.ck-font-size-dropdown .ck-dropdown__panel ul li .ck-fontsize-option .ck-button__label{line-height:50px}.qmsckeditor_container .qmsckeditor__minwidth{width:100%}.qmsckeditor_container .ck-editor__editable{overflow-y:auto}.qms-ckeditor .ck.ck-editor__editable{max-height:172px;min-height:172px;background-color:rgba(0,0,0,.04);font-family:Open Sans}.qms-ckeditor .ck.ck-editor__editable:not(.ck-focused,.ck-read-only):hover{background-color:rgba(0,0,0,.08);border-bottom:2px solid rgba(0,0,0,.38)}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar{width:12px}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-ckeditor .ck-placeholder{font-size:1rem;font-weight:600;color:rgba(0,0,0,.6)}.qms-ckeditor .ck-disabled .ck.ck-editor__main>.ck-editor__editable,.qms-ckeditor .ck-disabled .ck.ck-toolbar{background-color:var(--disabled);pointer-events:none}.qms-ckeditor .ck-disabled .ck-button{pointer-events:none}.qms-ckeditor .ck.ck-editor__main>.ck-editor__editable:not(.ck-focused):focus{border-radius:4px}.qms-ckeditor .ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused{border:1px solid #c4c4c4;border-bottom:2px solid var(--primary);border-radius:4px;box-shadow:none;background-color:rgba(0,0,0,.08)}.qms-ckeditor .ck.ck-toolbar{box-shadow:0 1px 3px rgba(51,51,51,.2)}.qms-ckeditor .ck.ck-sticky-panel .ck-sticky-panel__content_sticky{box-shadow:none;border-width:0}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;bottom:0;right:0;overflow:auto;background:#fff}.qmsckeditor__fullscreen .qms-ckeditor{height:98%;display:block;width:100%}.qmsckeditor__fullscreen .ck.ck-editor__main{height:98%}.qmsckeditor__fullscreen .ck.ck-editor__editable{height:inherit}.sub-container{display:flex;justify-content:space-between;padding:0 10px;font-family:Open Sans;font-size:.75rem;font-weight:400;line-height:16px;color:rgba(0,0,0,.6)}"]
24187
+ styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.ck-font-size-dropdown .ck-dropdown__panel ul{max-height:320px;overflow-y:auto}.ck-font-size-dropdown .ck-dropdown__panel ul li .ck-fontsize-option .ck-button__label{line-height:50px}.qmsckeditor_container .qmsckeditor__minwidth{width:100%}.qmsckeditor_container .ck-editor__editable{overflow-y:auto}.qmsckeditor_container p{line-height:normal}.qms-ckeditor .ck.ck-editor__editable{max-height:172px;min-height:172px;background-color:rgba(0,0,0,.04);font-family:Open Sans}.qms-ckeditor .ck.ck-editor__editable:not(.ck-focused,.ck-read-only):hover{background-color:rgba(0,0,0,.08);border-bottom:2px solid rgba(0,0,0,.38)}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar{width:12px}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-ckeditor .ck-placeholder{font-size:1rem;font-weight:600;color:rgba(0,0,0,.6)}.qms-ckeditor .ck-disabled .ck.ck-editor__main>.ck-editor__editable,.qms-ckeditor .ck-disabled .ck.ck-toolbar{background-color:var(--disabled);pointer-events:none}.qms-ckeditor .ck-disabled .ck-button{pointer-events:none}.qms-ckeditor .ck.ck-editor__main>.ck-editor__editable:not(.ck-focused):focus{border-radius:4px}.qms-ckeditor .ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused{border:1px solid #c4c4c4;border-bottom:2px solid var(--primary);border-radius:4px;box-shadow:none;background-color:rgba(0,0,0,.08)}.qms-ckeditor .ck.ck-toolbar{box-shadow:0 1px 3px rgba(51,51,51,.2)}.qms-ckeditor .ck.ck-sticky-panel .ck-sticky-panel__content_sticky{box-shadow:none;border-width:0}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;bottom:0;right:0;overflow:auto;background:#fff}.qmsckeditor__fullscreen .qms-ckeditor{height:98%;display:block;width:100%}.qmsckeditor__fullscreen .ck.ck-editor__main{height:98%}.qmsckeditor__fullscreen .ck.ck-editor__editable{height:inherit}.sub-container{display:flex;justify-content:space-between;padding:0 10px;font-family:Open Sans;font-size:.75rem;font-weight:400;line-height:16px;color:rgba(0,0,0,.6)}"]
23995
24188
  },] }
23996
24189
  ];
23997
24190
  QMSCKEditorComponent.ctorParameters = () => [
@@ -24923,15 +25116,18 @@ class QmsReportCoverPortraitComponent {
24923
25116
  constructor(translate, renderer) {
24924
25117
  this.translate = translate;
24925
25118
  this.renderer = renderer;
25119
+ this.ngUnsubscribe = new Subject();
24926
25120
  }
24927
25121
  ngOnInit() {
24928
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
25122
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
24929
25123
  if (res) {
24930
25124
  this.LANG = this.translate.getObjectLang(res);
24931
25125
  }
24932
25126
  });
24933
25127
  }
24934
- ngAfterViewInit() {
25128
+ ngOnDestroy() {
25129
+ this.ngUnsubscribe.next();
25130
+ this.ngUnsubscribe.complete();
24935
25131
  }
24936
25132
  }
24937
25133
  QmsReportCoverPortraitComponent.decorators = [
@@ -24955,14 +25151,19 @@ QmsReportCoverPortraitComponent.propDecorators = {
24955
25151
  class QmsReportContentPortraitComponent {
24956
25152
  constructor(translate) {
24957
25153
  this.translate = translate;
25154
+ this.ngUnsubscribe = new Subject();
24958
25155
  }
24959
25156
  ngOnInit() {
24960
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
25157
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
24961
25158
  if (res) {
24962
25159
  this.LANG = this.translate.getObjectLang(res);
24963
25160
  }
24964
25161
  });
24965
25162
  }
25163
+ ngOnDestroy() {
25164
+ this.ngUnsubscribe.next();
25165
+ this.ngUnsubscribe.complete();
25166
+ }
24966
25167
  }
24967
25168
  QmsReportContentPortraitComponent.decorators = [
24968
25169
  { type: Component, args: [{
@@ -25125,7 +25326,7 @@ class SelectIncludeChildrenPopUpComponent {
25125
25326
  }
25126
25327
  }
25127
25328
  ngOnInit() {
25128
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
25329
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
25129
25330
  if (res) {
25130
25331
  this.LANG = this.translate.getObjectLang(res);
25131
25332
  }
@@ -25135,7 +25336,7 @@ class SelectIncludeChildrenPopUpComponent {
25135
25336
  this.filteredOptions = res;
25136
25337
  }
25137
25338
  });
25138
- this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {
25339
+ this.myControl.valueChanges.pipe(debounceTime(1000), takeUntil(this.ngUnsubscribe)).subscribe((val) => {
25139
25340
  this.isInputValue = true;
25140
25341
  this.onSearchRelated(val);
25141
25342
  });
@@ -25875,7 +26076,7 @@ class SelectOneNextDialog {
25875
26076
  this.filteredOptions = [];
25876
26077
  this.isFocusedInputSearch = false;
25877
26078
  this.searchField = new FormControl();
25878
- this.searchField.valueChanges.pipe(startWith(''), debounceTime(1000)).subscribe((text) => {
26079
+ this.searchField.valueChanges.pipe(startWith(''), debounceTime(1000), takeUntil(this.ngUnsubscribe)).subscribe((text) => {
25879
26080
  if (typeof text === 'string' && text) {
25880
26081
  this.isFocusedInputSearch = !!text;
25881
26082
  const params = {
@@ -25889,7 +26090,7 @@ class SelectOneNextDialog {
25889
26090
  this.data.popupConfig = this.data.popupConfig ? this.data.popupConfig : new SelectOneNextData();
25890
26091
  }
25891
26092
  ngOnInit() {
25892
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
26093
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
25893
26094
  if (res) {
25894
26095
  this.LANG = this.translate.getObjectLang(res);
25895
26096
  }
@@ -26061,7 +26262,7 @@ class SelectOneDialog {
26061
26262
  }
26062
26263
  }
26063
26264
  ngOnInit() {
26064
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
26265
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
26065
26266
  if (res) {
26066
26267
  this.LANG = this.translate.getObjectLang(res);
26067
26268
  }
@@ -26093,7 +26294,7 @@ class SelectOneDialog {
26093
26294
  }
26094
26295
  }
26095
26296
  });
26096
- this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {
26297
+ this.myControl.valueChanges.pipe(debounceTime(1000), takeUntil(this.ngUnsubscribe)).subscribe((val) => {
26097
26298
  this.isInputValue = true;
26098
26299
  this.onSearchRelated(val);
26099
26300
  });
@@ -27551,7 +27752,7 @@ class SelectProcessDocumentPopupComponent {
27551
27752
  }
27552
27753
  }
27553
27754
  ngOnInit() {
27554
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
27755
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
27555
27756
  if (res) {
27556
27757
  this.LANG = this.translate.getObjectLang(res);
27557
27758
  }
@@ -27586,7 +27787,7 @@ class SelectProcessDocumentPopupComponent {
27586
27787
  this.setSelectedData();
27587
27788
  }
27588
27789
  });
27589
- this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {
27790
+ this.myControl.valueChanges.pipe(debounceTime(1000), takeUntil(this.ngUnsubscribe)).subscribe((val) => {
27590
27791
  this.isInputValue = true;
27591
27792
  this.onSearchRelated(val);
27592
27793
  });
@@ -28346,10 +28547,10 @@ class QMSNavigationDrawerComponent {
28346
28547
  }
28347
28548
  ngOnChanges(changes) {
28348
28549
  this.dataSource.data = this.treeData;
28349
- if (this.filterText) {
28550
+ if (changes.filterText && JSON.stringify(changes.filterText.currentValue) !== JSON.stringify(changes.filterText.previousValue)) {
28350
28551
  this.expandNodeSearched(this.treeData, this.filterText);
28351
28552
  }
28352
- if (changes.openNodes) {
28553
+ if (changes.openNodes && JSON.stringify(changes.openNodes.currentValue) !== JSON.stringify(changes.openNodes.previousValue)) {
28353
28554
  this.openNodes.forEach(item => {
28354
28555
  this.treeControl.expand(this.treeControl.dataNodes.find(p => p.id.toString() === item));
28355
28556
  });
@@ -28701,6 +28902,7 @@ class QMSPaginatorComponent {
28701
28902
  this.numberOfPages = [];
28702
28903
  this.displayNumberOfPages = [];
28703
28904
  this.isFirstLoad = true;
28905
+ this.ngUnsubscribe = new Subject();
28704
28906
  }
28705
28907
  get pageSizeOptions() {
28706
28908
  return this._pageSizeOptions;
@@ -28733,12 +28935,16 @@ class QMSPaginatorComponent {
28733
28935
  }
28734
28936
  ngOnInit() {
28735
28937
  const langDefault = 'en';
28736
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
28938
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
28737
28939
  this.LANG = this.trans.getObjectLang(res || langDefault);
28738
28940
  });
28739
28941
  this.getNumberOfPages();
28740
28942
  this.isFirstLoad = false;
28741
28943
  }
28944
+ ngOnDestroy() {
28945
+ this.ngUnsubscribe.next();
28946
+ this.ngUnsubscribe.complete();
28947
+ }
28742
28948
  _updateDisplayedPageSizeOptions() {
28743
28949
  if (!this.pageSize) {
28744
28950
  this._pageSize =
@@ -28930,10 +29136,10 @@ class QMSNavDrawerComponent {
28930
29136
  };
28931
29137
  }
28932
29138
  ngOnChanges(changes) {
28933
- if (changes.treeData) {
29139
+ if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {
28934
29140
  this.dataSource.data = this.treeData;
28935
29141
  }
28936
- if (changes.openNodes) {
29142
+ if (changes.openNodes && JSON.stringify(changes.openNodes.currentValue) !== JSON.stringify(changes.openNodes.previousValue)) {
28937
29143
  this.findAndExpandNodes();
28938
29144
  this._activeNode();
28939
29145
  }
@@ -29125,13 +29331,10 @@ class QMSSelectDepartmentTreeConfig {
29125
29331
  this.customClass = '';
29126
29332
  this.headerName = {
29127
29333
  externalName: '',
29128
- treeName: '',
29129
- resultSearchName: ''
29334
+ treeName: ''
29130
29335
  };
29131
29336
  this.modeView = ModeDepartmentTreeeViewEnum.Basic;
29132
29337
  this.activeSelectAllNode = false;
29133
- this.isMobile = false;
29134
- this.lazy = false;
29135
29338
  }
29136
29339
  }
29137
29340
 
@@ -29222,12 +29425,11 @@ class QMSDepartmentPagingModel extends PageEvent {
29222
29425
  super();
29223
29426
  this.data = [];
29224
29427
  this.data = [];
29225
- this.pageIndex = 0;
29226
29428
  }
29227
29429
  }
29228
29430
 
29229
29431
  class SelectDepartmentTreeComponent {
29230
- constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans, treeDepartmentGlobalService, overlay, viewContainerRef) {
29432
+ constructor(cdRef, domSanitizer, appIconService, iconRegistry, eleRef, trans, treeDepartmentGlobalService) {
29231
29433
  this.cdRef = cdRef;
29232
29434
  this.domSanitizer = domSanitizer;
29233
29435
  this.appIconService = appIconService;
@@ -29235,32 +29437,26 @@ class SelectDepartmentTreeComponent {
29235
29437
  this.eleRef = eleRef;
29236
29438
  this.trans = trans;
29237
29439
  this.treeDepartmentGlobalService = treeDepartmentGlobalService;
29238
- this.overlay = overlay;
29239
- this.viewContainerRef = viewContainerRef;
29240
- this.spinnerArr = new Array(12).fill(0);
29241
29440
  this.arrSkeleton = new Array(6).fill(0);
29242
29441
  this.height = '50vh';
29243
29442
  this.config = new QMSSelectDepartmentTreeConfig();
29244
29443
  this.isIncludeChildren = false;
29245
29444
  this.onSearchEvent = new EventEmitter();
29246
29445
  this.onPagingSearchEvent = new EventEmitter();
29247
- this.onValueChangeEvent = new EventEmitter();
29248
- this.selectionNodeChangeEvent = new EventEmitter();
29249
- this.onCheckNodeEvent = new EventEmitter();
29250
- this.onExpandNodeEvent = new EventEmitter();
29251
- this.onLoadMoreEvent = new EventEmitter();
29252
29446
  this.MODE_VIEW_ENUM = ModeDepartmentTreeeViewEnum;
29253
- this.ITEM_SIZE = 50;
29254
29447
  this.ngUnsubscribe = new Subject();
29448
+ this.isLoaded = false;
29255
29449
  this.resultSearchSelected = [];
29256
29450
  this.resultSelected = [];
29257
29451
  this.getDataTree$ = new BehaviorSubject([]);
29452
+ this.onValueChangeEvent = new EventEmitter();
29453
+ this.selectionNodeChangeEvent = new EventEmitter();
29258
29454
  this.searchDepartment$ = new BehaviorSubject(new QMSDepartmentPagingModel());
29259
29455
  this.resultSearch = [];
29260
29456
  this.indexView = 0;
29261
29457
  this.scrollToNodeEvent$ = new Subject();
29262
- this.getActiveNodeEvent$ = new Subject();
29263
29458
  this.activeNode = '';
29459
+ this.getActiveNodeEvent$ = new Subject();
29264
29460
  this.PAGINATION_SIZE = PaginationSize;
29265
29461
  this.PAGE_SIZE_OPTION = [5, 10, 15, 20, 25, 100];
29266
29462
  this.nestedTreeNodeMap = new Map();
@@ -29269,18 +29465,17 @@ class SelectDepartmentTreeComponent {
29269
29465
  this.checkListSelectionSearch = new SelectionModel(true);
29270
29466
  this.formSearchControl = new FormControl('');
29271
29467
  this.getLoading$ = new BehaviorSubject(false);
29272
- this.getLoadingMore$ = new BehaviorSubject(false);
29273
- this.afterOnCheckNode = new Subject();
29274
29468
  this.textResultSearch = '';
29275
29469
  this.itemIconType = ItemIconType;
29276
29470
  this._transformer = (node, level) => {
29471
+ var _a;
29277
29472
  const flatNode = this.convertToFlatNode(node) || new QMSFlatNodeTree();
29278
29473
  flatNode.id = node.id;
29279
29474
  flatNode.name = node.name;
29280
- flatNode.expandable = (node.children && node.children.length > 0) || (!!node.childCount) || node.expandable;
29475
+ flatNode.expandable = (node.children && node.children.length > 0) || (!!node.childCount);
29281
29476
  flatNode.level = level;
29282
29477
  flatNode.parentId = node.parentId;
29283
- flatNode.markedGetChildren = node.children.length > 0;
29478
+ flatNode.markedGetChildren = !!((_a = node.children) === null || _a === void 0 ? void 0 : _a.length);
29284
29479
  flatNode.parentId = node.parentId;
29285
29480
  flatNode.itemIcon = node.itemIcon;
29286
29481
  flatNode.itemIconSvg = node.itemIconSvg;
@@ -29304,7 +29499,6 @@ class SelectDepartmentTreeComponent {
29304
29499
  if (!this.dataSource)
29305
29500
  return;
29306
29501
  this.dataSource.data = data;
29307
- this.cdRef.detectChanges();
29308
29502
  });
29309
29503
  // Register icon
29310
29504
  appIconService.registerProcessIcon(iconRegistry, domSanitizer);
@@ -29314,7 +29508,7 @@ class SelectDepartmentTreeComponent {
29314
29508
  appIconService.registerDeviationIcon(iconRegistry, domSanitizer);
29315
29509
  appIconService.registerChecklistIcon(iconRegistry, domSanitizer);
29316
29510
  appIconService.registerRiskIcon(iconRegistry, domSanitizer);
29317
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
29511
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
29318
29512
  if (res) {
29319
29513
  this.LANG = this.trans.getObjectLang(res);
29320
29514
  }
@@ -29322,9 +29516,10 @@ class SelectDepartmentTreeComponent {
29322
29516
  this._handleSearchEvent();
29323
29517
  this._handleActiveNodeEvent();
29324
29518
  this._handleItemSelectionChanged();
29325
- this.getLoading$.pipe(takeUntil(this.ngUnsubscribe), tap(res => {
29519
+ this.getLoading$.pipe(takeUntil(this.ngUnsubscribe))
29520
+ .subscribe(res => {
29326
29521
  res ? this.formSearchControl.disable() : this.formSearchControl.enable();
29327
- })).subscribe();
29522
+ });
29328
29523
  }
29329
29524
  set rowsSkeleton(value) {
29330
29525
  this.arrSkeleton = new Array(value).fill(0);
@@ -29355,14 +29550,6 @@ class SelectDepartmentTreeComponent {
29355
29550
  }
29356
29551
  ngAfterViewInit() {
29357
29552
  this.cdRef.detectChanges();
29358
- this.cdkVirtualScrollViewport.scrolledIndexChange
29359
- .pipe(takeUntil(this.ngUnsubscribe), map(_ => this.cdkVirtualScrollViewport.measureScrollOffset('bottom')), pairwise(), filter(([x1, x2]) => x1 > x2 && x2 < 140), throttleTime(200), tap(_ => {
29360
- if (this.getLoadingMore$.value || !this.config.lazy)
29361
- return;
29362
- this.onLoadMoreEvent.emit();
29363
- this.getLoadingMore$.next(true);
29364
- }))
29365
- .subscribe();
29366
29553
  }
29367
29554
  ngOnInit() {
29368
29555
  this._initTreeData();
@@ -29379,36 +29566,70 @@ class SelectDepartmentTreeComponent {
29379
29566
  const _treeDataInput = _.cloneDeep(this.config.treeData);
29380
29567
  if (!_treeDataInput.length)
29381
29568
  return;
29382
- const treeData = this._convertToTreeData(_treeDataInput);
29383
- this.updateDataTree(treeData);
29384
- this.getLoading$.next(false);
29385
- }
29386
- _convertToTreeData(data) {
29387
- const roots = [];
29388
- const mapNode = new Map();
29389
- for (let i = 0; i < data.length; i++) {
29390
- mapNode.set(data[i].id, i);
29391
- data[i].children = [];
29569
+ const rootNode = _treeDataInput.filter(item => !item.parentId)
29570
+ .map((item, _index) => {
29571
+ const node = {
29572
+ id: item.id,
29573
+ name: item.name,
29574
+ externalName: item.externalName,
29575
+ markedGetChildren: item.markedGetChildren,
29576
+ children: [],
29577
+ isFile: false,
29578
+ itemIcon: item.itemIcon,
29579
+ itemMatIcon: item.itemMatIcon,
29580
+ itemIconSvg: item.itemIconSvg,
29581
+ parentId: item.parentId,
29582
+ isGroup: false
29583
+ };
29584
+ return node;
29585
+ });
29586
+ if (!rootNode.length)
29587
+ throw ('Data invalid.');
29588
+ const invalidItems = _treeDataInput.filter(item => item.id == item.parentId) || [];
29589
+ if (invalidItems.length) {
29590
+ throw (`data ${JSON.stringify(invalidItems)} invalid`);
29392
29591
  }
29393
- for (let i = 0; i < data.length; i++) {
29394
- const node = data[i];
29395
- if (node.parentId) {
29396
- if (data[mapNode.get(node.parentId)]) {
29397
- data[mapNode.get(node.parentId)].children.push(node);
29398
- continue;
29592
+ this.updateDataTree(rootNode);
29593
+ const groupResult = _treeDataInput.filter(x => x.parentId).reduce((result, currentValue) => {
29594
+ (result[currentValue['parentId']] = result[currentValue['parentId']] || []).push(currentValue);
29595
+ return result;
29596
+ }, {});
29597
+ const checkValidGroup = (id) => {
29598
+ const parents = [];
29599
+ let parent = _treeDataInput.find(x => x.id == id);
29600
+ while (parent === null || parent === void 0 ? void 0 : parent.id) {
29601
+ parents.push(parent);
29602
+ parent = _treeDataInput.find(x => x.id == (parent === null || parent === void 0 ? void 0 : parent.parentId));
29603
+ }
29604
+ return parents.some(x => !x.parentId);
29605
+ };
29606
+ if (!(rootNode && !!rootNode.length))
29607
+ return;
29608
+ let groupResultKey = Object.keys(groupResult).filter(checkValidGroup);
29609
+ while (groupResultKey.length) {
29610
+ groupResultKey = groupResultKey.filter((key) => {
29611
+ const parentFlatNode = this.treeControl.dataNodes.find(node => node.id === key);
29612
+ if (parentFlatNode) {
29613
+ const parentNestedNode = this.convertToNestedNode(parentFlatNode);
29614
+ parentNestedNode.markedGetChildren = true;
29615
+ parentNestedNode.children = _.cloneDeep(groupResult[key]);
29616
+ parentNestedNode.childCount = parentNestedNode.children.length;
29617
+ parentNestedNode.isGroup = false;
29618
+ this.updateDataTree(this.currentTreeData);
29619
+ groupResult[key] = [];
29620
+ return false;
29399
29621
  }
29400
- roots.push(node);
29401
- continue;
29402
- }
29403
- roots.push(node);
29622
+ return true;
29623
+ });
29404
29624
  }
29405
- return roots;
29625
+ this.getLoading$.next(false);
29626
+ this._initCheckListSelected();
29406
29627
  }
29407
29628
  _initCheckListSelected() {
29408
29629
  if (!this.config.selectedList.length)
29409
29630
  return;
29410
- const selectedList = this.config.selectedList.sort((x, y) => x.isGroup ? -1 : y.isGroup ? 1 : 0);
29411
- selectedList.forEach((item) => __awaiter(this, void 0, void 0, function* () {
29631
+ const selectedList = this.config.selectedList;
29632
+ selectedList.forEach(item => {
29412
29633
  var _a;
29413
29634
  const node = this.treeControl.dataNodes.find(x => x.id === item.id);
29414
29635
  if (node) {
@@ -29416,7 +29637,7 @@ class SelectDepartmentTreeComponent {
29416
29637
  nestedNode.isGroup = item.isGroup;
29417
29638
  nestedNode.groupId = item.groupId;
29418
29639
  this.checkListSelection.select(node);
29419
- yield this.handleCheckNode(node);
29640
+ this._handleCheckNode(node);
29420
29641
  ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) && item.children.forEach(child => {
29421
29642
  const node = this.treeControl.dataNodes.find(_x => _x.id === child.id);
29422
29643
  if (node) {
@@ -29425,7 +29646,7 @@ class SelectDepartmentTreeComponent {
29425
29646
  });
29426
29647
  this.onExpandAllParent(node);
29427
29648
  }
29428
- }));
29649
+ });
29429
29650
  this.cdRef.detectChanges();
29430
29651
  }
29431
29652
  //Handle item selection changed
@@ -29436,7 +29657,6 @@ class SelectDepartmentTreeComponent {
29436
29657
  const checkExistInResult = (node) => this.resultSelected.findIndex(x => x.id === node.id) > -1;
29437
29658
  if (added.length) {
29438
29659
  added.forEach(node => {
29439
- var _a;
29440
29660
  const nestedNode = this.convertToNestedNode(node);
29441
29661
  nestedNode.children = [];
29442
29662
  nestedNode.childCount = this.getListChildrenOfNode(node).length;
@@ -29445,7 +29665,6 @@ class SelectDepartmentTreeComponent {
29445
29665
  nestedNode.groupId = existGroup.id;
29446
29666
  if (!existGroup.children.some(x => x.id === nestedNode.id)) {
29447
29667
  existGroup.children.push(nestedNode);
29448
- existGroup.childCount = ((_a = this.getListChildrenOfNode(this.convertToFlatNode(existGroup))) === null || _a === void 0 ? void 0 : _a.length) || 0;
29449
29668
  this._onSelectionNodeChangeEvent('updated', [existGroup]);
29450
29669
  }
29451
29670
  if (!checkExistInResult(existGroup)) {
@@ -29567,7 +29786,7 @@ class SelectDepartmentTreeComponent {
29567
29786
  this.scrollToNodeEvent$.pipe(takeUntil(this.ngUnsubscribe), switchMap((val) => {
29568
29787
  const delayTiming = this.indexView === 1 ? 700 : 0;
29569
29788
  this.setIndexView(0);
29570
- return of(val).pipe(delay(delayTiming));
29789
+ return of(val).pipe(delay(delayTiming), takeUntil(this.ngUnsubscribe));
29571
29790
  })).subscribe(res => {
29572
29791
  this.onScrollIntoNode(res);
29573
29792
  });
@@ -29582,20 +29801,13 @@ class SelectDepartmentTreeComponent {
29582
29801
  this.getDataTree$.next(data);
29583
29802
  }
29584
29803
  onExpandNode(node) {
29585
- if (!node.expandable)
29586
- return;
29587
- this.treeControl.toggle(node);
29588
- if (this.treeControl.isExpanded(node) && !node.markedGetChildren) {
29589
- node.isLoading = true;
29590
- }
29591
- this.onExpandNodeEvent.emit(node);
29592
29804
  }
29593
29805
  onOptionSearchSelected(value) {
29594
29806
  const flatNode = this.treeControl.dataNodes.find(node => node.id === value.id);
29595
29807
  if (!flatNode)
29596
29808
  return;
29597
29809
  this.checkListSelection.select(flatNode);
29598
- this.handleCheckNode(flatNode);
29810
+ this._handleCheckNode(flatNode);
29599
29811
  this.onScrollIntoNode(flatNode.id);
29600
29812
  }
29601
29813
  onCheckAllRootTreeNode() {
@@ -29636,17 +29848,12 @@ class SelectDepartmentTreeComponent {
29636
29848
  onCheckNode(node) {
29637
29849
  if (!node)
29638
29850
  return;
29639
- this.onCheckNodeEvent.emit(node);
29640
29851
  this.checkListSelection.toggle(node);
29641
29852
  if (this.config.isSelectOne) {
29642
29853
  this._handleSelectOne(node);
29643
29854
  return;
29644
29855
  }
29645
- if (this.config.lazy) {
29646
- node.isLoading = this.isIncludeChildren && node.expandable && !node.markedGetChildren;
29647
- return;
29648
- }
29649
- this.handleCheckNode(node);
29856
+ this._handleCheckNode(node);
29650
29857
  }
29651
29858
  _handleSelectOne(node) {
29652
29859
  const selected = this.checkListSelection.selected.filter(x => x.id !== node.id);
@@ -29670,7 +29877,7 @@ class SelectDepartmentTreeComponent {
29670
29877
  onRemoveNode(nodeId) {
29671
29878
  const flatNode = this.treeControl.dataNodes.find(item => item.id === nodeId);
29672
29879
  this.checkListSelection.deselect(flatNode);
29673
- flatNode && this.handleCheckNode(flatNode);
29880
+ flatNode && this._handleCheckNode(flatNode);
29674
29881
  }
29675
29882
  isIndeterminate(node) {
29676
29883
  const childSelected = this.getListChildrenOfNode(node).filter(item => this.isSelectedNode(item));
@@ -29680,44 +29887,33 @@ class SelectDepartmentTreeComponent {
29680
29887
  const listCheck = [...this.getListChildrenOfNode(node), node];
29681
29888
  return listCheck.every(item => this.isSelectedNode(item));
29682
29889
  }
29683
- /**
29684
- * This function handle check node of tree
29685
- * @param node node of tree
29686
- * @param callback do something before handle check node
29687
- * @returns
29688
- */
29689
- handleCheckNode(node, callback) {
29690
- return __awaiter(this, void 0, void 0, function* () {
29691
- if (!!callback)
29692
- yield callback(node);
29693
- node.isLoading = false;
29694
- const isSelected = this.isSelectedNode(node);
29695
- const childSelected = this.getChildrenSelected(node);
29696
- const nestedNode = this.convertToNestedNode(node);
29697
- if (isSelected) {
29698
- // Check existed group
29699
- const existedGroup = this._getAllParentNode(node).find(x => this.convertToNestedNode(x).isGroup);
29700
- if (!this.isIncludeChildren) {
29701
- nestedNode.groupId = existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id;
29702
- return;
29703
- }
29704
- const children = this.getListChildrenOfNode(node);
29705
- nestedNode.isGroup = !existedGroup && !!children.length;
29706
- if (!children.length)
29707
- return;
29708
- children.forEach(x => {
29709
- const _node = this.convertToNestedNode(x);
29710
- _node.groupId = existedGroup ? existedGroup.id : node.id;
29711
- _node.isGroup = false;
29712
- });
29713
- this.checkListSelection.deselect(...childSelected.map(this.resetNode));
29714
- this.checkListSelection.select(...children.map(this.resetNode));
29890
+ _handleCheckNode(node) {
29891
+ const isSelected = this.isSelectedNode(node);
29892
+ const childSelected = this.getChildrenSelected(node);
29893
+ const nestedNode = this.convertToNestedNode(node);
29894
+ if (isSelected) {
29895
+ // Check existed group
29896
+ const existedGroup = this._getAllParentNode(node).find(x => this.convertToNestedNode(x).isGroup);
29897
+ if (!this.isIncludeChildren) {
29898
+ nestedNode.groupId = existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id;
29715
29899
  return;
29716
29900
  }
29717
- const deselectNodes = (this.isIncludeChildren || nestedNode.isGroup) ? childSelected : [node];
29718
- this.checkListSelection.deselect(...deselectNodes);
29719
- nestedNode.isGroup = false;
29720
- });
29901
+ const children = this.getListChildrenOfNode(node);
29902
+ nestedNode.isGroup = !existedGroup && !!children.length;
29903
+ if (!children.length)
29904
+ return;
29905
+ children.forEach(x => {
29906
+ const _node = this.convertToNestedNode(x);
29907
+ _node.groupId = existedGroup ? existedGroup.id : node.id;
29908
+ _node.isGroup = false;
29909
+ });
29910
+ this.checkListSelection.deselect(...childSelected.map(this.resetNode));
29911
+ this.checkListSelection.select(...children.map(this.resetNode));
29912
+ return;
29913
+ }
29914
+ const deselectNodes = (this.isIncludeChildren || nestedNode.isGroup) ? childSelected : [node];
29915
+ this.checkListSelection.deselect(...deselectNodes);
29916
+ nestedNode.isGroup = false;
29721
29917
  }
29722
29918
  resetNode(node) {
29723
29919
  node.isGroup = false;
@@ -29778,10 +29974,11 @@ class SelectDepartmentTreeComponent {
29778
29974
  return;
29779
29975
  this.treeControl.expand(flatNode);
29780
29976
  this.onExpandAllParent(flatNode);
29781
- const index = this.treeControl.dataNodes.findIndex(x => x.id === flatNode.id);
29782
- if (!this.cdkVirtualScrollViewport)
29783
- return;
29784
- this.cdkVirtualScrollViewport.scrollToIndex(index, 'smooth');
29977
+ const element = this.eleRef.nativeElement.querySelector(`#node-${flatNode.id}`);
29978
+ element && element.scrollIntoView({
29979
+ behavior: 'smooth',
29980
+ block: 'center',
29981
+ });
29785
29982
  this.getActiveNodeEvent$.next(nodeId);
29786
29983
  }
29787
29984
  onSearch() {
@@ -29794,6 +29991,7 @@ class SelectDepartmentTreeComponent {
29794
29991
  this.paginatorSearch.renderDisplayNumberOfpages();
29795
29992
  }
29796
29993
  setResultSearch(data) {
29994
+ this.getLoading$.next(false);
29797
29995
  this.searchDepartment$.next(data);
29798
29996
  }
29799
29997
  onClickResultItem(item) {
@@ -29806,7 +30004,7 @@ class SelectDepartmentTreeComponent {
29806
30004
  const node = this.treeControl.dataNodes.find(x => item.id === x.id);
29807
30005
  if (node) {
29808
30006
  this.setIndexView(0);
29809
- of(node.id).pipe(delay(700)).subscribe(res => {
30007
+ of(node.id).pipe(delay(700), takeUntil(this.ngUnsubscribe)).subscribe(res => {
29810
30008
  this.onScrollIntoNode(res);
29811
30009
  });
29812
30010
  }
@@ -29834,7 +30032,7 @@ class SelectDepartmentTreeComponent {
29834
30032
  const currentNode = this.treeControl.dataNodes.find(x => item.id === x.id);
29835
30033
  if (currentNode) {
29836
30034
  this.checkListSelectionSearch.isSelected(item) ? this.checkListSelection.select(currentNode) : this.checkListSelection.deselect(currentNode);
29837
- this.config.isSelectOne ? this._handleSelectOne(currentNode) : this.handleCheckNode(currentNode);
30035
+ this.config.isSelectOne ? this._handleSelectOne(currentNode) : this._handleCheckNode(currentNode);
29838
30036
  }
29839
30037
  }
29840
30038
  onSelectAllSearchResult(checked) {
@@ -29881,52 +30079,15 @@ class SelectDepartmentTreeComponent {
29881
30079
  setSelectedNodeStorage(node) {
29882
30080
  this.isIncludeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29883
30081
  }
29884
- setDefaultPaginatorSize(options) {
29885
- this.PAGE_SIZE_OPTION = options;
29886
- }
29887
- trackBy(index, item) {
29888
- return item;
29889
- }
29890
- /**
29891
- * This function use for lazy load children of node
29892
- * @param node node update. if node is null data auto insert as roots
29893
- * @param data list children to update node.
29894
- * @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.
29895
- */
29896
- updateChildOfNode(node, data = [], mode = 'update') {
29897
- node.isLoading = false;
29898
- const nestedNode = this.flatTreeNodeMap.get(node);
29899
- const dataNodes = this._convertToTreeData(data);
29900
- if (!nestedNode)
29901
- return;
29902
- switch (mode) {
29903
- case 'insert':
29904
- nestedNode.children.push(...dataNodes);
29905
- break;
29906
- case 'update':
29907
- nestedNode.children = dataNodes;
29908
- }
29909
- this.updateDataTree(this.currentTreeData);
29910
- }
29911
- addRootTree(data = []) {
29912
- this.getLoadingMore$.next(false);
29913
- if (!data.length)
29914
- return;
29915
- const treeNodeData = this._convertToTreeData(data);
29916
- this.currentTreeData.push(...treeNodeData);
29917
- console.log(this.currentTreeData);
29918
- this.updateDataTree(this.currentTreeData);
29919
- }
29920
30082
  }
29921
30083
  SelectDepartmentTreeComponent.decorators = [
29922
30084
  { type: Component, args: [{
29923
30085
  selector: 'qms-select-department-tree',
29924
- template: "<div [ngClass]=\"['qms-select-department-tree-container', config.customClass]\">\r\n <div class=\"input-select-department\">\r\n <form (ngSubmit)=\"!getLoading$.value && onSearch()\" *ngIf=\"config.enableTreeSearch\" class=\"input-field\">\r\n <mat-form-field class=\"w100\" qms-form qms-search-field>\r\n <input [formControl]=\"formSearchControl\" type=\"text\" placeholder=\"Search\" matInput />\r\n <button *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] matSuffix mode=\"indeterminate\" diameter=\"20\"\r\n *ngIf=\"getLoading$.value\"></mat-progress-spinner>\r\n <div *ngIf=\"!!formSearchControl.value && !getLoading$.value\" qms-input-clear matSuffix>\r\n <button qms-btn-icon color=\"light\" [@inOutAnimation] aria-label=\"Clear\" (click)=\"formSearchControl.reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </form>\r\n <div [@inOutAnimation] *ngIf=\"indexView === 1 && textResultSearch\" class=\"sub-text ms-1 fw500\">\r\n {{LANG.RESULT_SEARCH_FOR}}<i><b>\"{{textResultSearch}}\"</b></i>\r\n </div>\r\n <div [class.justify-content-between]=\"config.enableIncludeChild && !config.isSelectOne\"\r\n class=\"select__toggle-include toggle-include-child my-1 d-flex justify-content-end align-items-center\">\r\n <mat-slide-toggle *ngIf=\"config.enableIncludeChild && !config.isSelectOne\" [disabled]=\"indexView === 1\"\r\n [(ngModel)]=\"isIncludeChildren\" color=\"default\" qms-group-options>\r\n <span class=\"text-label\">{{config.selectIncludeLabel || LANG.SELECT_INCLUDE_CHILD}}</span>\r\n </mat-slide-toggle>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 1 && config.enableTreeSearch\"\r\n (click)=\"setIndexView(0)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.BACK_TO_TREE\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 0 && config.enableTreeSearch && textResultSearch\"\r\n (click)=\"setIndexView(1)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.GOTO_SEACH_RESULT\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation]\r\n *ngIf=\"indexView === 0 && config.modeView === MODE_VIEW_ENUM.ExternalView && !!config.headerName\"\r\n class=\"header-view-tree\">\r\n <div class=\"header-view header-title\">\r\n {{config.headerName.treeName}}\r\n </div>\r\n <div class=\"header-view header-title\">\r\n {{config.headerName.externalName}}\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div [@animateSlideView]=\"indexView\" [ngStyle]=\"{\r\n minHeight: height\r\n }\" class=\"tree-department-wrapper\">\r\n <div *ngIf=\"indexView === 0\" class=\"tree-view w100 h100\">\r\n <div class=\"tree-view-main h100\">\r\n <div *ngIf=\"!config.isSelectOne && !!treeControl.dataNodes && config.activeSelectAllNode\"\r\n class=\"checkbox-all-tree\" [class.sticky-position]=\"config.modeView === MODE_VIEW_ENUM.ExternalView\">\r\n <!-- Checkbox all root node -->\r\n <mat-checkbox [@inOutAnimation] (click)=\"onCheckAllRootTreeNode()\"\r\n [indeterminate]=\"isIndeterminateCheckboxAllTree\" [checked]=\"isAllDepartmentSelected\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\">\r\n <span class=\"text-label \">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{treeControl.dataNodes.length}}</b>)</span>\r\n </mat-checkbox>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n </div>\r\n <cdk-virtual-scroll-viewport *ngIf=\"dataSource.data\" class=\"select-department-tree\" [ngClass]=\"{\r\n 'has-checkbox-all': !config.isSelectOne && config.modeView === MODE_VIEW_ENUM.Basic\r\n }\" [itemSize]=\"ITEM_SIZE\" [ngStyle]=\"{height: height}\">\r\n <ng-container *cdkVirtualFor=\"let node of dataSource; trackBy: trackBy\">\r\n <div class=\"qms-tree-node mt-1\" [style.padding-left]=\"node.level * (config.isMobile ? 12 :24) + 'px'\"\r\n [id]=\"'mat-node-'+node.id\" [@triggerColor]=\"activeNode == node.id\" [ngClass]=\"{\r\n 'mat-tree-node-disabled-all': node.disabled,\r\n 'w-100': config.isSelectOne,\r\n 'selected-theme': this.checkListSelection.isSelected(node) && config.isSelectOne,\r\n 'expand-node': treeControl.isExpandable(node) && treeControl.isExpanded(node),\r\n 'active-external-view': config.modeView === MODE_VIEW_ENUM.ExternalView,\r\n 'node-loading': node.isLoading\r\n }\">\r\n <div class=\"node-expand-area\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" (click)=\"onExpandNode(node)\"\r\n *ngIf=\"treeControl.isExpandable(node) && !node.isLoading\">\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <ng-container *ngIf=\"node.isLoading; then loadingSpinner\"></ng-container>\r\n </div>\r\n <ng-container [ngTemplateOutlet]=\"config.isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\"></ng-container>\r\n <div *ngIf=\"config.modeView === MODE_VIEW_ENUM.ExternalView\" class=\"external-view-node\">\r\n <span class=\"node-external\" qms-elipsify position=\"top\" mode=\"dark\">\r\n {{node.externalName || ''}}\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n <div [@inOutAnimation] *ngIf=\"getLoadingMore$| async ;then maskOverlay\">\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"indexView === 1\" [ngStyle]=\"{\r\n height: height\r\n }\" class=\"qms-view-search-result\">\r\n <div *ngIf=\"config.modeView === MODE_VIEW_ENUM.ExternalView\"\r\n class=\"qms-view-search-result__header d-flex align-items-center justify-content-between\">\r\n <div class=\"header-title\">\r\n <span qms-elipsify mode=\"dark\" position=\"top\">\r\n {{config.headerName.resultSearchName}}\r\n </span>\r\n </div>\r\n <div class=\"header-title\">\r\n <span qms-elipsify mode=\"dark\" position=\"top\">\r\n {{config.headerName.externalName}}\r\n </span>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\"></ng-container>\r\n <div class=\"qms-view-search-result__wrapper\"\r\n [class.active-external]=\"config.modeView === MODE_VIEW_ENUM.ExternalView\"\r\n *ngIf=\"!!resultSearch.length && !getLoading$.value\">\r\n <div class=\"\">\r\n <mat-checkbox [@inOutAnimation]\r\n [disabled]=\"!resultSearch.length || config.isSelectOne || isDisableChecboxAllSearch()\" #checkAllSearch\r\n [indeterminate]=\"indeterminateSearchResult\" [checked]=\"isSelectAllResultSearch\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\"\r\n (click)=\"!config.isSelectOne && onSelectAllSearchResult(checkAllSearch.checked)\">\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{resultSearch.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <div [@inOutAnimation] [@listAnimation]\r\n [class.active-paging]=\"searchDepartment$.value.length > 10 && config.enablePagingSearch\" class=\"result\">\r\n <div [qms-tool-tip]=\"!canHandleItemSearchResult(item) ? LANG.ITEM_NOT_MATCH_TO_TREE : ''\" mode=\"dark\"\r\n position=\"top\" *ngFor=\"let item of resultSearch\" (click)=\"$event.stopPropagation();onClickResultItem(item)\"\r\n [class.active]=\"checkListSelectionSearch.isSelected(item)\" class=\"result-item user-select-none\" matRipple>\r\n <mat-checkbox [disabled]=\"item.disabled\"\r\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\r\n [checked]=\"checkListSelectionSearch.isSelected(item)\" qms-group-options color=\"default\" label=\"none\">\r\n </mat-checkbox>\r\n <div class=\"result-item__content\">\r\n <div class=\"item-result-content-wraper\">\r\n <div class=\"text-gray fw-bold fs-base mb0\">{{item.name}}</div>\r\n <qms-breadcrumb *ngIf=\"item.path?.length > 1\" [type]=\"config.isMobile ? 'mobile': ''\"\r\n [numDisplayItem]=\"6\" (onItemClick)=\"onBreadCrumbItemClick($event)\" class=\"breadcrumb-container\"\r\n [nodes]=\"item.path\">\r\n </qms-breadcrumb>\r\n <div *ngIf=\"item.path?.length === 1\" class=\"d-flex align-items-center\">\r\n <span qms-elipsify class=\"item-breadcrumb-disable d-block\">{{item.path[0].name}}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.modeView === MODE_VIEW_ENUM.ExternalView\" class=\"external-name\">\r\n <span qms-elipsify mode=\"dark\" position=\"top\" class=\"text-gray fs-base mb0\">{{item.externalName}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!resultSearch.length && !getLoading$.value\" class=\"result no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"searchDepartment$.value.length > 10 && config.enablePagingSearch\"\r\n class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #paginatorSearch *ngIf=\"searchDepartment$.value.length > 10 && config.enablePagingSearch \"\r\n [length]=\"searchDepartment$.value.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"PAGE_SIZE_OPTION\"\r\n (page)='onPagingSearchResult($event)' [size]='config.isMobile ? PAGINATION_SIZE.small : PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Template for Checkbox -->\r\n <ng-template #showCheckboxTemplate let-node=\"node\">\r\n <mat-checkbox [id]=\"'node-'+node.id\" qms-group-options color=\"default\" label=\"none\" class=\"flex-direction-row\"\r\n [disabled]=\"node.isLoading\" [checked]=\"checkListSelection.isSelected(node)\"\r\n (click)=\"!node.isLoading && onCheckNode(node)\" [attr.disabled]=\"node.disabled || node.isLoading\">\r\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon\" [src]=\"node.itemIconSvg\" />\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name}}\r\n </span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <!-- Template node without checkbox -->\r\n <ng-template #nodeWithoutCheckboxTemplate let-node=\"node\">\r\n <div [id]=\"'node-'+node.id\" (click)=\"onCheckNode(node)\" class=\"node-without-checkbox\">\r\n <div class=\"node-info\">\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer pl-10 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name }}</span>\r\n </div>\r\n <div class=\"node-state\">\r\n <mat-icon *ngIf=\"checkListSelection.isSelected(node)\">check</mat-icon>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"130\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\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\"\r\n fill=\"#0163B3\" />\r\n <text x=\"10\" y=\"105\" fill=\"#0163B2\">{{LANG.NO_RESULT}}</text>\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div [ngStyle]=\"{\r\n 'height': searchDepartment$.value.length ? (config.modeView === MODE_VIEW_ENUM.ExternalView ? 'calc(100% - 90px)' : 'calc(100% - 50px)' ) : height\r\n }\" class=\"qms-loading-container\">\r\n <div class=\"qms-loader\" *ngFor=\"let item of arrSkeleton\">\r\n <div class=\"qms-loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Template mask overlay -->\r\n<ng-template #maskOverlay>\r\n <div class=\"mask-overlay\">\r\n <div [@listAnimation] *ngIf=\"getLoadingMore$ | async\" class=\"qms-load-more-row\">\r\n <span></span><span></span><span></span><span></span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Loading spinner -->\r\n<ng-template #loadingSpinner>\r\n <div class=\"qms-spinner center\">\r\n <div *ngFor=\"let item of spinnerArr\" class=\"qms-spinner-blade\"></div>\r\n </div>\r\n</ng-template>\r\n",
30086
+ template: "<div [ngClass]=\"['qms-select-department-tree-container', config.customClass]\">\r\n <div class=\"input-select-department\">\r\n <form (ngSubmit)=\"!getLoading$.value && onSearch()\" *ngIf=\"config.enableTreeSearch\" class=\"input-field\">\r\n <mat-form-field class=\"w100\" qms-form qms-search-field>\r\n <input [formControl]=\"formSearchControl\" type=\"text\" placeholder=\"Search\" matInput />\r\n <button *ngIf=\"!getLoading$.value\" type=\"submit\" qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <mat-progress-spinner [@inOutAnimation] matSuffix mode=\"indeterminate\" diameter=\"20\"\r\n *ngIf=\"getLoading$.value\"></mat-progress-spinner>\r\n <div *ngIf=\"!!formSearchControl.value && !getLoading$.value\" qms-input-clear matSuffix>\r\n <button qms-btn-icon color=\"light\" [@inOutAnimation] aria-label=\"Clear\" (click)=\"formSearchControl.reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </form>\r\n <div [@inOutAnimation] *ngIf=\"indexView === 1 && textResultSearch\" class=\"sub-text ms-1 fw500\">\r\n {{LANG.RESULT_SEARCH_FOR}}<i><b>\"{{textResultSearch}}\"</b></i>\r\n </div>\r\n <div [class.justify-content-between]=\"config.enableIncludeChild && !config.isSelectOne\"\r\n class=\"select__toggle-include toggle-include-child my-1 d-flex justify-content-end align-items-center\">\r\n <mat-slide-toggle *ngIf=\"config.enableIncludeChild && !config.isSelectOne\" [disabled]=\"indexView === 1\"\r\n [(ngModel)]=\"isIncludeChildren\" color=\"default\" qms-group-options>\r\n <span class=\"text-label\">{{config.selectIncludeLabel || LANG.SELECT_INCLUDE_CHILD}}</span>\r\n </mat-slide-toggle>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 1 && config.enableTreeSearch\"\r\n (click)=\"setIndexView(0)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.BACK_TO_TREE\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_back</mat-icon>\r\n </button>\r\n <button class=\"btn-arrow\" [@inOutAnimation] *ngIf=\"indexView === 0 && config.enableTreeSearch && textResultSearch\"\r\n (click)=\"setIndexView(1)\" qms-btn-icon color=\"light\" [qms-tool-tip]=\"LANG.GOTO_SEACH_RESULT\" mode=\"dark\"\r\n position=\"top\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation]\r\n *ngIf=\"indexView === 0 && config.modeView === MODE_VIEW_ENUM.ExternalView && !!config.headerName\"\r\n class=\"header-view-tree\">\r\n <div class=\"header-view header-title\">\r\n {{config.headerName.treeName}}\r\n </div>\r\n <div class=\"header-view header-title\">\r\n {{config.headerName.externalName}}\r\n </div>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div [@animateSlideView]=\"indexView\" [ngStyle]=\"{height: height}\" class=\"tree-department-wrapper\">\r\n <div *ngIf=\"indexView === 0\" [class.active-mode-external-view]=\"config.modeView === MODE_VIEW_ENUM.ExternalView \"\r\n class=\"tree-view w100 h100\">\r\n <div class=\"tree-view-main h100\">\r\n <div *ngIf=\"!config.isSelectOne && !!treeControl.dataNodes && config.activeSelectAllNode\"\r\n class=\"checkbox-all-tree\" [class.sticky-position]=\"config.modeView === MODE_VIEW_ENUM.ExternalView\">\r\n <!-- Checkbox all root node -->\r\n <mat-checkbox [@inOutAnimation] (click)=\"onCheckAllRootTreeNode()\"\r\n [indeterminate]=\"isIndeterminateCheckboxAllTree\" [checked]=\"isAllDepartmentSelected\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\">\r\n <span class=\"text-label \">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{treeControl.dataNodes.length}}</b>)</span>\r\n </mat-checkbox>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n </div>\r\n <mat-tree [@listAnimation] *ngIf=\"!!treeControl\" class=\"select-department-tree\" [ngClass]=\"{\r\n 'has-checkbox-all': !config.isSelectOne && config.modeView === MODE_VIEW_ENUM.Basic\r\n }\" [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node [id]=\"'mat-node-'+node.id\"\r\n [ngClass]=\"{'w-100': config.isSelectOne, 'selected-theme': this.checkListSelection.isSelected(node) && config.isSelectOne}\"\r\n [@triggerColor]=\"activeNode == node.id\" *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [ngClass]=\"{\r\n 'mat-tree-node-disabled-all': node.disabled\r\n }\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" disabled></button>\r\n <ng-container [ngTemplateOutlet]=\"config.isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\">\r\n </ng-container>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node [id]=\"'mat-node-'+node.id\" [@triggerColor]=\"activeNode == node.id\"\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n [class.selected-theme]=\"this.checkListSelection.isSelected(node) && config.isSelectOne\" matTreeNodePadding\r\n [ngClass]=\"{\r\n 'expand-node': treeControl.isExpanded(node),\r\n 'collapse-node': !treeControl.isExpanded(node),\r\n 'mat-tree-node-disabled': node.disabled\r\n }\">\r\n <div class=\"node-content-wraper\" [ngClass]=\"{'w-100': config.isSelectOne}\">\r\n <button class=\"btn-toggle\" qms-btn-icon color=\"light\" (click)=\"onExpandNode(node)\" matTreeNodeToggle>\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <ng-container [ngTemplateOutlet]=\"config.isSelectOne ? nodeWithoutCheckboxTemplate : showCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"{ node: node }\"></ng-container>\r\n <mat-progress-bar *ngIf=\"false\" mode=\"indeterminate\">\r\n </mat-progress-bar>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n <div *ngIf=\"config.modeView === MODE_VIEW_ENUM.ExternalView\" class=\"tree-view-main h100\">\r\n <div [ngClass]=\"{\r\n 'sticky-position': config.modeView === MODE_VIEW_ENUM.ExternalView,\r\n 'h-0': config.isSelectOne || !config.activeSelectAllNode\r\n }\" class=\"separate\">\r\n </div>\r\n <mat-divider *ngIf=\"!config.isSelectOne && config.activeSelectAllNode\"\r\n [class.sticky-position]=\"config.modeView === MODE_VIEW_ENUM.ExternalView\" [ngStyle]=\"{\r\n top: '38px'\r\n }\"></mat-divider>\r\n <div [@inOutAnimation] class=\"external-list-item-container h100\">\r\n <div [ngClass]=\"{active: canActiveNodeExternal(node)}\" [ngStyle]=\"{\r\n 'height': getHeightStyleRefNode(node.id)\r\n }\" *ngFor=\"let node of treeControl.dataNodes; let i = index\" class=\"node-external\">\r\n <mat-divider *ngIf=\"node.level === 0 && i > 0 \"></mat-divider>\r\n <div class=\"node-external-content\">\r\n <span qms-elipsify position=\"top\" mode=\"dark\">\r\n {{node.externalName || ''}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"indexView === 1\" class=\"qms-view-search-result\">\r\n <div class=\"\">\r\n <mat-checkbox [@inOutAnimation] *ngIf=\"!!resultSearch.length && !getLoading$.value\"\r\n [disabled]=\"!resultSearch.length || config.isSelectOne || isDisableChecboxAllSearch()\" #checkAllSearch\r\n [indeterminate]=\"indeterminateSearchResult\" [checked]=\"isSelectAllResultSearch\" qms-group-options\r\n color=\"default\" label=\"none\" class=\"checkbox-all\"\r\n (click)=\"!config.isSelectOne && onSelectAllSearchResult(checkAllSearch.checked)\">\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}}</span>\r\n <span>(<b>{{resultSearch.length}}</b>)</span>\r\n </mat-checkbox>\r\n </div>\r\n <ng-container *ngIf=\"getLoading$.value; then loading\"></ng-container>\r\n <div [@inOutAnimation] [@listAnimation] *ngIf=\"resultSearch.length && !getLoading$.value\"\r\n [class.active-paging]=\"searchDepartment$.value.length > 10 && config.enablePagingSearch\" class=\"result\">\r\n <div [qms-tool-tip]=\"!canHandleItemSearchResult(item) ? LANG.ITEM_NOT_MATCH_TO_TREE : ''\" mode=\"dark\"\r\n position=\"top\" *ngFor=\"let item of resultSearch\" (click)=\"$event.stopPropagation();onClickResultItem(item)\"\r\n [class.active]=\"checkListSelectionSearch.isSelected(item)\" class=\"result-item user-select-none\" matRipple>\r\n <mat-checkbox [disabled]=\"item.disabled\"\r\n (click)=\"$event.stopImmediatePropagation(); !item.disabled && onCheckItemSearchResult(item)\"\r\n [checked]=\"checkListSelectionSearch.isSelected(item)\" qms-group-options color=\"default\" label=\"none\">\r\n </mat-checkbox>\r\n <div class=\"item-result-content-wraper\">\r\n <div class=\"text-gray fw-bold fs-base mb0\">{{item.name}}</div>\r\n <qms-breadcrumb [numDisplayItem]=\"6\" (onItemClick)=\"onBreadCrumbItemClick($event)\"\r\n *ngIf=\"item.path.length > 1\" class=\"breadcrumb-container\" [nodes]=\"item.path\">\r\n </qms-breadcrumb>\r\n\r\n <div *ngIf=\"item.path.length === 1\" class=\"d-flex align-items-center\">\r\n <span class=\"item-breadcrumb-disable\">{{item.path[0].name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [@inOutAnimation] *ngIf=\"!resultSearch.length && !getLoading$.value\" class=\"result no-result\">\r\n <ng-container *ngTemplateOutlet=\"noResult\"></ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"searchDepartment$.value.length > 10 && config.enablePagingSearch\"\r\n class=\"mx-auto\"></mat-divider>\r\n <qms-paginator #paginatorSearch *ngIf=\"searchDepartment$.value.length > 10 && config.enablePagingSearch \"\r\n [length]=\"searchDepartment$.value.length\" [numHidden]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"PAGE_SIZE_OPTION\"\r\n (page)='onPagingSearchResult($event)' [size]='PAGINATION_SIZE.medium'>\r\n </qms-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Template for Checkbox -->\r\n <ng-template #showCheckboxTemplate let-node=\"node\">\r\n <mat-checkbox [id]=\"'node-'+node.id\" qms-group-options color=\"default\" label=\"none\" class=\"flex-direction-row\"\r\n [checked]=\"checkListSelection.isSelected(node)\" (click)=\"onCheckNode(node)\" [attr.disabled]=\"node.disabled\">\r\n <img *ngIf=\"node.itemIconSvg\" class=\"material-icons type-icon\" [src]=\"node.itemIconSvg\" />\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template #nodeWithoutCheckboxTemplate let-node=\"node\">\r\n <div [id]=\"'node-'+node.id\" (click)=\"onCheckNode(node)\" class=\"node-without-checkbox\">\r\n <div class=\"node-info\">\r\n <span *ngIf=\"node.itemIcon\" [class]=\"node.itemIcon\" [qmsTransformIcon]=\"node.itemIcon\"\r\n class=\"material-icons-outlined type-icon\"></span>\r\n <span *ngIf=\"node.itemMatIcon\" class=\"material-icons-outlined type-icon\">{{\r\n node.itemMatIcon }}\r\n </span>\r\n <span class=\"text-name cursor-pointer ml5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"node-state\">\r\n <mat-icon *ngIf=\"checkListSelection.isSelected(node)\">check</mat-icon>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #noResult>\r\n <svg width=\"89\" height=\"130\" viewBox=\"0 0 89 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"white\" />\r\n <rect x=\"0.5\" width=\"88\" height=\"88\" rx=\"44\" fill=\"#0163B2\" fill-opacity=\"0.12\" />\r\n <path\r\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\"\r\n fill=\"#0163B3\" />\r\n <text x=\"10\" y=\"105\" fill=\"#0163B2\">{{LANG.NO_RESULT}}</text>\r\n </svg>\r\n</ng-template>\r\n\r\n<!-- Template loading -->\r\n<ng-template #loading>\r\n <div [ngStyle]=\"{\r\n 'height': searchDepartment$.value.length ? 'calc(100% - 55px)' : '100%'\r\n }\" class=\"qms-loading-container\">\r\n <div class=\"qms-loader\" *ngFor=\"let item of arrSkeleton\">\r\n <div class=\"qms-loader__wrapper\">\r\n <div class=\"row-loader\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
29925
30087
  animations: [
29926
30088
  AnimationTreeDepartment
29927
30089
  ],
29928
- changeDetection: ChangeDetectionStrategy.OnPush,
29929
- 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 .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 .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(0,0,0,.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 .mask-overlay>.qms-load-more-row{line-height:35px;text-align:center;display:flex;justify-content:center;align-items:center;grid-gap:4px;gap:4px;transform:translateY(-15px)}.qms-select-department-tree-container .mask-overlay>.qms-load-more-row span{display:inline-block;width:10px;height:10px;background:var(--primary-light-12-opacity);border-radius:50px;-webkit-animation:up-down-animate .5s ease-in-out infinite alternate;animation:up-down-animate .5s ease-in-out infinite alternate}.qms-select-department-tree-container .mask-overlay>.qms-load-more-row span:nth-child(2){background:var(--primary-light-24-opacity);-webkit-animation-delay:.16s;animation-delay:.16s}.qms-select-department-tree-container .mask-overlay>.qms-load-more-row span:nth-child(3){background:var(--primary-light-32-opacity);-webkit-animation-delay:.32s;animation-delay:.32s}.qms-select-department-tree-container .mask-overlay>.qms-load-more-row span:nth-child(4){background:var(--primary-light-38-opacity);-webkit-animation-delay:.48s;animation-delay:.48s}@-webkit-keyframes up-down-animate{0%{transform:translateY(-8px)}to{transform:translateY(8px)}}@keyframes up-down-animate{0%{transform:translateY(-8px)}to{transform:translateY(8px)}}.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 .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 .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__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.no-result{height:100%;display:flex;justify-content:center;align-items:center}.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}.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-breadcrumb-item-text:not(:last-child):hover{color:var(--primary)}.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 .qms-spinner>.qms-spinner-blade{position:absolute;left:.4629em;bottom:0;width:.074em;height:.2777em;border-radius:.0555em;background-color:transparent;transform-origin:center -.2222em;-webkit-animation:spinner-animation 1s linear infinite;animation:spinner-animation 1s linear infinite}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:first-child{-webkit-animation-delay:0s;animation-delay:0s;transform:rotate(0deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(2){-webkit-animation-delay:83ms;animation-delay:83ms;transform:rotate(30deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(3){-webkit-animation-delay:.166s;animation-delay:.166s;transform:rotate(60deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(4){-webkit-animation-delay:.249s;animation-delay:.249s;transform:rotate(90deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(5){-webkit-animation-delay:.332s;animation-delay:.332s;transform:rotate(120deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(6){-webkit-animation-delay:.415s;animation-delay:.415s;transform:rotate(150deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(7){-webkit-animation-delay:.498s;animation-delay:.498s;transform:rotate(180deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(8){-webkit-animation-delay:.581s;animation-delay:.581s;transform:rotate(210deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(9){-webkit-animation-delay:.664s;animation-delay:.664s;transform:rotate(240deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(10){-webkit-animation-delay:.747s;animation-delay:.747s;transform:rotate(270deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(11){-webkit-animation-delay:.83s;animation-delay:.83s;transform:rotate(300deg)}.qms-select-department-tree-container .qms-spinner>.qms-spinner-blade:nth-child(12){-webkit-animation-delay:.913s;animation-delay:.913s;transform:rotate(330deg)}@-webkit-keyframes spinner-animation{0%{background-color:var(--primary-light-32-opacity)}to{background-color:transparent}}@keyframes spinner-animation{0%{background-color:var(--primary-light-32-opacity)}to{background-color:transparent}}@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}}"]
30090
+ 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 .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 .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}.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 .tree-department-wrapper{height:375px;padding-right:4px;overflow-y:auto;overflow-x:hidden;position:relative;transition:height .1s 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:.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 .mat-tree.select-department-tree{height:100%}.qms-select-department-tree-container .mat-tree.select-department-tree.has-checkbox-all{max-height:calc(100% - 47px);overflow-y:auto}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node{border-radius:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:hover{background:rgba(0,0,0,.08)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node:active{background:rgba(0,0,0,.12)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active{color:var(--primary);background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.active button,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node:not(.selected-theme).active:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.selected-theme{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.expand-node:active{background:var(--primary-light-12-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .type-icon{margin-right:5px;color:var(--ws-action-active)}.qms-select-department-tree-container .mat-tree.select-department-tree .text-name{color:var(--default-color)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-rtl-mirror{color:rgba(0,0,0,.6)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-icon-button.btn-toggle{width:35px;height:35px;line-height:35px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-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 .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-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 .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled-all.active{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled button.mat-button-disabled{color:rgba(0,0,0,.38)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled .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 .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled.expand-node:hover,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:active,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.mat-tree-node-disabled:hover{background-color:transparent}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox{cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node .node-without-checkbox .mat-icon{color:var(--primary);margin-right:4px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;position:relative;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar{height:3px;width:100%;position:absolute;bottom:0;left:10px}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node>.node-content-wraper>.mat-progress-bar .mat-progress-bar-fill:after{background:var(--primary)}.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:10px!important}.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 .mat-checkbox-label{flex-direction:row;align-items:center;position:relative;padding-bottom:2px}.qms-select-department-tree-container .qms-view-search-result{height:100%;width:100%;overflow:hidden}.qms-select-department-tree-container .qms-view-search-result .result{max-height:calc(100% - 44px);overflow-y:auto;margin-bottom:4px;padding-right:4px}.qms-select-department-tree-container .qms-view-search-result .result.active-paging{max-height:calc(100% - 95px)}.qms-select-department-tree-container .qms-view-search-result .result.no-result{height:100%;display:flex;justify-content:center;align-items:center}.qms-select-department-tree-container .qms-view-search-result .result-item{border-radius:4px;display:grid;grid-template-columns:45px 1fr;align-items:center;cursor:pointer;transition:background .3s ease}.qms-select-department-tree-container .qms-view-search-result .result-item:not(:first-child){margin-top:4px!important}.qms-select-department-tree-container .qms-view-search-result .result-item.active,.qms-select-department-tree-container .qms-view-search-result .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 .result-item .item-result-content-wraper{padding:5px 15px}.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-breadcrumb-item-text:not(:last-child):hover{color:var(--primary)}.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}.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%)}}"]
29930
30091
  },] }
29931
30092
  ];
29932
30093
  SelectDepartmentTreeComponent.ctorParameters = () => [
@@ -29936,9 +30097,7 @@ SelectDepartmentTreeComponent.ctorParameters = () => [
29936
30097
  { type: MatIconRegistry },
29937
30098
  { type: ElementRef },
29938
30099
  { type: TranslateLibraryService },
29939
- { type: QMSSelectDepartmentTreeGlobalService },
29940
- { type: Overlay },
29941
- { type: ViewContainerRef }
30100
+ { type: QMSSelectDepartmentTreeGlobalService }
29942
30101
  ];
29943
30102
  SelectDepartmentTreeComponent.propDecorators = {
29944
30103
  rowsSkeleton: [{ type: Input }],
@@ -29948,10 +30107,6 @@ SelectDepartmentTreeComponent.propDecorators = {
29948
30107
  onPagingSearchEvent: [{ type: Output }],
29949
30108
  onValueChangeEvent: [{ type: Output }],
29950
30109
  selectionNodeChangeEvent: [{ type: Output }],
29951
- onCheckNodeEvent: [{ type: Output }],
29952
- onExpandNodeEvent: [{ type: Output }],
29953
- onLoadMoreEvent: [{ type: Output }],
29954
- cdkVirtualScrollViewport: [{ type: ViewChild, args: [CdkVirtualScrollViewport,] }],
29955
30110
  paginatorSearch: [{ type: ViewChild, args: ['paginatorSearch',] }]
29956
30111
  };
29957
30112
 
@@ -29987,8 +30142,7 @@ QMSSelectDepartmentTreeModule.decorators = [
29987
30142
  MatRippleModule,
29988
30143
  QmsPaginatorModule,
29989
30144
  MatPaginatorModule,
29990
- MatDividerModule,
29991
- ScrollingModule
30145
+ MatDividerModule
29992
30146
  ]
29993
30147
  },] }
29994
30148
  ];
@@ -30072,12 +30226,9 @@ class SelectDepartmentComponent {
30072
30226
  this.popupData = new SelectDepartmentPopupData();
30073
30227
  this.resultSelected = [];
30074
30228
  this.onSearchEvent = new EventEmitter();
30075
- this.onCheckNodeEvent = new EventEmitter();
30076
- this.onExpandNodeEvent = new EventEmitter();
30077
- this.onLoadMoreEvent = new EventEmitter();
30078
30229
  this.resultSearch = [];
30079
30230
  this.isActiveViewSearch = false;
30080
- this.trans.getLanguageSubject$.pipe().subscribe((res) => {
30231
+ this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
30081
30232
  if (res) {
30082
30233
  this.LANG = this.trans.getObjectLang(res);
30083
30234
  }
@@ -30085,9 +30236,6 @@ class SelectDepartmentComponent {
30085
30236
  // Init popup data
30086
30237
  this.popupData = _.cloneDeep(this.data);
30087
30238
  }
30088
- get isIncludeChild() {
30089
- return !!this.treeDepartment && this.treeDepartment.isIncludeChildren;
30090
- }
30091
30239
  ngAfterViewInit() {
30092
30240
  this.cdRef.detectChanges();
30093
30241
  }
@@ -30134,34 +30282,11 @@ class SelectDepartmentComponent {
30134
30282
  }
30135
30283
  return result;
30136
30284
  }
30137
- /**
30138
- * This function use for lazy load children of node
30139
- * @param node node update. if node is null data auto insert as roots
30140
- * @param data list children to update node.
30141
- * @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.
30142
- */
30143
- updateChildOfNode(node, data, mode = 'update') {
30144
- this.treeDepartment.updateChildOfNode(node, data, mode);
30145
- }
30146
- addRootTree(data = []) {
30147
- this.treeDepartment.addRootTree(data);
30148
- }
30149
- /**
30150
- * This function handle check node of tree
30151
- * @param node node of tree
30152
- * @param callback do something before handle check node
30153
- * @returns
30154
- */
30155
- handleCheckNode(node, callback) {
30156
- if (!this.treeDepartment)
30157
- return;
30158
- this.treeDepartment.handleCheckNode(node, callback);
30159
- }
30160
30285
  }
30161
30286
  SelectDepartmentComponent.decorators = [
30162
30287
  { type: Component, args: [{
30163
30288
  selector: 'qms-select-department',
30164
- template: "<div class=\"qms-select-department\">\r\n <div class=\"header-dialog mb-2\">\r\n <span>{{popupData.headerName}}</span>\r\n <button matDialogClose class=\"btn-close-dialog\" color=\"light\" qms-btn-icon>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div>\r\n <div class=\"qms-scrollbar\">\r\n <div>\r\n <qms-select-department-tree #treeDepartment customClass=\"custom-department-tree\"\r\n [height]=\"treeDepartment.resultSelected.length ? (popupData.config.isMobile ? '38vh' : '45vh'): '55vh'\"\r\n [rowsSkeleton]=\"9\" [config]=\"popupData.config\" (onSearchEvent)=\"onSearchEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\" (onPagingSearchEvent)=\"onPagingEvent.emit($event)\"\r\n (onCheckNodeEvent)=\"onCheckNodeEvent.emit($event)\" (onExpandNodeEvent)=\"onExpandNodeEvent.emit($event)\"\r\n (onLoadMoreEvent)=\"onLoadMoreEvent.emit()\">\r\n </qms-select-department-tree>\r\n </div>\r\n </div>\r\n <div class=\"line__divider\"></div>\r\n <div [@heightAnimation] *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\" pr-0 pe-0\">\r\n <div class=\"header-title\">{{LANG.RESULTS}}</div>\r\n <div class=\"result-content pr-0 pe-0\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <div [@inOutAnimation_2] [id]=\"'item-result-'+item.id\" *ngFor=\"let item of treeDepartment.resultSelected\">\r\n <mat-chip [@updateItemAnimation] *qmsContentChanges=\"item.children?.length\"\r\n [qms-tool-tip]=\"generateTootip(item)\" position=\"top\" mode=\"dark\" qms-chip [removable]=\"true\">\r\n <span (click)=\"onScrollToNode(item)\" qms-chip-body>\r\n <span class=\"related__item__content_name\" #itemName>\r\n <span>{{item.name}}</span>\r\n <span class=\"select__include-children__count\" *ngIf=\"!!item?.isGroup\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveNode(item)\">cancel</mat-icon>\r\n </mat-chip>\r\n </div>\r\n </mat-chip-list>\r\n </div>\r\n </div>\r\n <mat-divider *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\"mx-auto\"></mat-divider>\r\n <div class=\"confirm__button__groups\">\r\n <button (click)=\"onCloseDialog()\" class=\"btn-add\" [disabled]=\"!resultSelected.length\"\r\n [class.qms-btn-disabled]=\"!resultSelected.length\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n <span>\r\n ({{treeDepartment.resultSelected.length}})\r\n </span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n Cancel\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
30289
+ template: "<div class=\"qms-select-department\">\r\n <div class=\"header-dialog mb-2\">\r\n <span>{{popupData.headerName}}</span>\r\n <button matDialogClose class=\"btn-close-dialog\" color=\"light\" qms-btn-icon>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n <div>\r\n <div class=\"qms-scrollbar\">\r\n <div>\r\n <qms-select-department-tree #treeDepartment customClass=\"custom-department-tree\"\r\n [height]=\"treeDepartment.resultSelected.length ? '45vh': '55vh'\" [rowsSkeleton]=\"9\"\r\n [config]=\"popupData.config\" (onSearchEvent)=\"onSearchEvent.emit($event)\"\r\n (onValueChangeEvent)=\"onResultDepartmentChange($event)\" (onPagingSearchEvent)=\"onPagingEvent.emit($event)\">\r\n </qms-select-department-tree>\r\n </div>\r\n </div>\r\n <div class=\"line__divider\"></div>\r\n <div [@heightAnimation] *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\" pr-0 pe-0\">\r\n <div class=\"header-title\">{{LANG.RESULTS}}</div>\r\n <div class=\"result-content pr-0 pe-0\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <div [@inOutAnimation_2] [id]=\"'item-result-'+item.id\" *ngFor=\"let item of treeDepartment.resultSelected\">\r\n <mat-chip [@updateItemAnimation] *qmsContentChanges=\"item.children?.length\"\r\n [qms-tool-tip]=\"generateTootip(item)\" position=\"top\" mode=\"dark\" qms-chip [removable]=\"true\">\r\n <span (click)=\"onScrollToNode(item)\" qms-chip-body>\r\n <span class=\"related__item__content_name\" #itemName>\r\n {{item.name}}\r\n <span class=\"select__include-children__count\" *ngIf=\"!!item?.isGroup\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveNode(item)\">cancel</mat-icon>\r\n </mat-chip>\r\n </div>\r\n </mat-chip-list>\r\n </div>\r\n </div>\r\n <mat-divider *ngIf=\"treeDepartment && !!treeDepartment.resultSelected.length\" class=\"mx-auto\"></mat-divider>\r\n <div class=\"confirm__button__groups\">\r\n <button (click)=\"onCloseDialog()\" class=\"btn-add\" [disabled]=\"!resultSelected.length\"\r\n [class.qms-btn-disabled]=\"!resultSelected.length\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n <span>\r\n ({{treeDepartment.resultSelected.length}})\r\n </span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n Cancel\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
30165
30290
  providers: [
30166
30291
  {
30167
30292
  provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
@@ -30169,7 +30294,7 @@ SelectDepartmentComponent.decorators = [
30169
30294
  }
30170
30295
  ],
30171
30296
  animations: [SelectDepartmentAnimationTrigger],
30172
- 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 .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}@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}}"]
30297
+ 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 .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{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.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}.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}"]
30173
30298
  },] }
30174
30299
  ];
30175
30300
  SelectDepartmentComponent.ctorParameters = () => [
@@ -30180,11 +30305,7 @@ SelectDepartmentComponent.ctorParameters = () => [
30180
30305
  ];
30181
30306
  SelectDepartmentComponent.propDecorators = {
30182
30307
  treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }],
30183
- onPagingEvent: [{ type: Output }],
30184
- onSearchEvent: [{ type: Output }],
30185
- onCheckNodeEvent: [{ type: Output }],
30186
- onExpandNodeEvent: [{ type: Output }],
30187
- onLoadMoreEvent: [{ type: Output }]
30308
+ onPagingEvent: [{ type: Output }]
30188
30309
  };
30189
30310
 
30190
30311
  class QMSSelectDepartmentModule {
@@ -30443,7 +30564,7 @@ class QMSSelectAccessDialogComponent {
30443
30564
  this.cdRef.detectChanges();
30444
30565
  }
30445
30566
  ngOnInit() {
30446
- this.translate.getLanguageSubject$.pipe().subscribe((res) => {
30567
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
30447
30568
  if (res) {
30448
30569
  this.LANG = this.translate.getObjectLang(res);
30449
30570
  }
@@ -30909,5 +31030,5 @@ class FilterPersonModel {
30909
31030
  * Generated bundle index. Do not edit.
30910
31031
  */
30911
31032
 
30912
- 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$1 as 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, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAccessItem, QMSAccessPagingChangeModel, QMSAccessPagingModel, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBasicTreeComponent, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, 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_THEMES, QMS_THEME_DEFAULT, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, 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, QMSTreeModule as ɵc, QMSBasicTreeComponent as ɵd, QMSCKEditorTreeService as ɵe, QMSCKEditorTemplateComponent as ɵf, LinkAttachmentComponent as ɵg, QMSCKEditorTooltipComponent as ɵh, QMSCKEditorTooltip as ɵi, QMSCKEditorImageMapComponent as ɵj, QMSCKEditorImageMap as ɵk, QMSCKEditorUploadService as ɵl, QMSCKEditorBpmnData as ɵm, QMSCKEditorAboutComponent as ɵn, QMSCKEditorFlowchartComponent as ɵo };
31033
+ 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$1 as 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, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAccessItem, QMSAccessPagingChangeModel, QMSAccessPagingModel, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBasicTreeComponent, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, 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, 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, LinkAttachmentComponent as ɵh, QMSCKEditorTooltipComponent as ɵi, QMSCKEditorTooltip as ɵj, QMSCKEditorImageMapComponent as ɵk, QMSCKEditorImageMap as ɵl, QMSCKEditorBpmnData as ɵm, QMSCKEditorAboutComponent as ɵn, QMSCKEditorFlowchartComponent as ɵo };
30913
31034
  //# sourceMappingURL=qms-angular.js.map