qms-angular 1.1.13 → 1.1.14

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 (66) hide show
  1. package/bundles/qms-angular.umd.js +1088 -18
  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/components/breadcrumb/breadcrumb.js +7 -5
  5. package/esm2015/lib/components/select-access-dialog/common/animation.js +10 -0
  6. package/esm2015/lib/components/select-access-dialog/common/option-select-access.enum.js +7 -0
  7. package/esm2015/lib/components/select-access-dialog/index.js +2 -0
  8. package/esm2015/lib/components/select-access-dialog/model/access-item.model.js +6 -0
  9. package/esm2015/lib/components/select-access-dialog/model/option-select-access.model.js +3 -0
  10. package/esm2015/lib/components/select-access-dialog/model/select-access-data.js +16 -0
  11. package/esm2015/lib/components/select-access-dialog/public-api.js +8 -0
  12. package/esm2015/lib/components/select-access-dialog/select-access-dialog.component.js +288 -0
  13. package/esm2015/lib/components/select-access-dialog/select-access-dialog.module.js +56 -0
  14. package/esm2015/lib/components/select-access-dialog/service/select-access-global.service.js +11 -0
  15. package/esm2015/lib/components/select-department/common/animation.js +30 -0
  16. package/esm2015/lib/components/select-department/index.js +2 -0
  17. package/esm2015/lib/components/select-department/model/select-department-popup-data.model.js +12 -0
  18. package/esm2015/lib/components/select-department/public-api.js +5 -0
  19. package/esm2015/lib/components/select-department/select-department.component.js +84 -0
  20. package/esm2015/lib/components/select-department/select-department.module.js +60 -0
  21. package/esm2015/lib/components/select-department/service/select-department-global.service.js +22 -0
  22. package/esm2015/lib/components/select-department-tree/index.js +2 -0
  23. package/esm2015/lib/components/select-department-tree/model/select-department-tree.config.js +10 -0
  24. package/esm2015/lib/components/select-department-tree/public-api.js +5 -0
  25. package/esm2015/lib/components/select-department-tree/select-department-tree.component.js +379 -0
  26. package/esm2015/lib/components/select-department-tree/select-department-tree.module.js +50 -0
  27. package/esm2015/lib/components/select-department-tree/service/select-department-tree-global.service.js +22 -0
  28. package/esm2015/lib/components/select-include-children/services/select-include-children-global.service.js +1 -1
  29. package/esm2015/lib/model/en.js +14 -1
  30. package/esm2015/lib/model/no.js +14 -1
  31. package/esm2015/lib/services/translation-registry.service.js +2 -2
  32. package/esm2015/public-api.js +4 -1
  33. package/fesm2015/qms-angular.js +1004 -16
  34. package/fesm2015/qms-angular.js.map +1 -1
  35. package/lib/common/models/qms-flat-node.model.d.ts +3 -0
  36. package/lib/components/select-access-dialog/common/animation.d.ts +1 -0
  37. package/lib/components/select-access-dialog/common/option-select-access.enum.d.ts +5 -0
  38. package/lib/components/select-access-dialog/index.d.ts +1 -0
  39. package/lib/components/select-access-dialog/model/access-item.model.d.ts +7 -0
  40. package/lib/components/select-access-dialog/model/option-select-access.model.d.ts +5 -0
  41. package/lib/components/select-access-dialog/model/select-access-data.d.ts +14 -0
  42. package/lib/components/select-access-dialog/public-api.d.ts +7 -0
  43. package/lib/components/select-access-dialog/select-access-dialog.component.d.ts +64 -0
  44. package/lib/components/select-access-dialog/select-access-dialog.module.d.ts +2 -0
  45. package/lib/components/select-access-dialog/service/select-access-global.service.d.ts +2 -0
  46. package/lib/components/select-department/common/animation.d.ts +1 -0
  47. package/lib/components/select-department/index.d.ts +1 -0
  48. package/lib/components/select-department/model/select-department-popup-data.model.d.ts +14 -0
  49. package/lib/components/select-department/public-api.d.ts +4 -0
  50. package/lib/components/select-department/select-department.component.d.ts +31 -0
  51. package/lib/components/select-department/select-department.module.d.ts +2 -0
  52. package/lib/components/select-department/service/select-department-global.service.d.ts +9 -0
  53. package/lib/components/select-department-tree/index.d.ts +1 -0
  54. package/lib/components/select-department-tree/model/select-department-tree.config.d.ts +9 -0
  55. package/lib/components/select-department-tree/public-api.d.ts +4 -0
  56. package/lib/components/select-department-tree/select-department-tree.component.d.ts +84 -0
  57. package/lib/components/select-department-tree/select-department-tree.module.d.ts +2 -0
  58. package/lib/components/select-department-tree/service/select-department-tree-global.service.d.ts +9 -0
  59. package/lib/model/en.d.ts +13 -0
  60. package/lib/model/no.d.ts +13 -0
  61. package/package.json +1 -1
  62. package/public-api.d.ts +3 -0
  63. package/qms-angular.metadata.json +1 -1
  64. package/src/lib/components/select-access-dialog/select-access-dialog.component.scss +205 -0
  65. package/src/lib/components/select-department/select-department.component.scss +193 -0
  66. package/src/lib/components/select-department-tree/select-department-tree.component.scss +265 -0
@@ -14,7 +14,7 @@ import { ComponentPortal } from '@angular/cdk/portal';
14
14
  import { MatInputModule } from '@angular/material/input';
15
15
  import { MatCardModule } from '@angular/material/card';
16
16
  import { MatIconModule, MatIconRegistry } from '@angular/material/icon';
17
- import { MatCheckboxModule } from '@angular/material/checkbox';
17
+ import { MatCheckboxModule, MAT_CHECKBOX_DEFAULT_OPTIONS } from '@angular/material/checkbox';
18
18
  import { MatChipsModule } from '@angular/material/chips';
19
19
  import { MatButtonModule } from '@angular/material/button';
20
20
  import { mixinDisableRipple, mixinDisabled, MatCommonModule, setLines, MatOptionModule } from '@angular/material/core';
@@ -53,6 +53,9 @@ import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
53
53
  import { MatStepperModule } from '@angular/material/stepper';
54
54
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
55
55
  import { DragDropModule } from '@angular/cdk/drag-drop';
56
+ import { trigger, transition, style, animate } from '@angular/animations';
57
+ import { MatDividerModule } from '@angular/material/divider';
58
+ import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
56
59
 
57
60
  class QmsAngularService {
58
61
  constructor() { }
@@ -120,6 +123,19 @@ const en = {
120
123
  "SUPPORTED_EXTENSIONS": "Supported extensions",
121
124
  "FILES_ARE_NOT_SUPPORTED": "File(s) are not supported",
122
125
  "FILES_EXCEED_UPLOAD_LIMIT": "File(s) exceed upload size limit",
126
+ "SELECT_ACCESS": "Select Access(es)",
127
+ "PERSON": "Person",
128
+ "USER_GROUP": "User Group",
129
+ "DEPARTMENT": "Department",
130
+ "ROLE": "Role",
131
+ "DEPARTMENT_UNIT": "Department / unit",
132
+ "INCLUDE_SUB_DEPARTMENTS": "Automatically include sub-departments",
133
+ "NAME": "Name",
134
+ "SEARCH_USER_GROUP": "Search user group",
135
+ "SEARCH_DEPARTMENT_UNIT": "Search department / unit",
136
+ "FILTER": "Filter",
137
+ "TYPE": "Type",
138
+ "SEARCH_WITH_NAME": "Search first and last name",
123
139
  "ERROR": {
124
140
  "SELECT_DANGER": "You must select one or more events"
125
141
  },
@@ -487,6 +503,19 @@ const no = {
487
503
  "SUPPORTED_EXTENSIONS": "Støttede utvidelser",
488
504
  "FILES_ARE_NOT_SUPPORTED": "Fil(er) støttes ikke",
489
505
  "FILES_EXCEED_UPLOAD_LIMIT": "Fil(er) overskrider grensen for opplastingsstørrelse",
506
+ "SELECT_ACCESS": "Velg ansvarlig(e)",
507
+ "PERSON": "Person",
508
+ "USER_GROUP": "Brukergruppe",
509
+ "DEPARTMENT": "Avdeling",
510
+ "ROLE": "Rolle",
511
+ "DEPARTMENT_UNIT": "Avdeling/enhet",
512
+ "INCLUDE_SUB_DEPARTMENTS": "Automatisk inkluder underavdelinger",
513
+ "NAME": "Navn",
514
+ "SEARCH_USER_GROUP": "Søk brukergruppe",
515
+ "SEARCH_DEPARTMENT_UNIT": "Søk avdeling/enhet",
516
+ "FILTER": "Bruk filter",
517
+ "TYPE": "Type",
518
+ "SEARCH_WITH_NAME": "Søk for- og etternavn",
490
519
  "ERROR": {
491
520
  "SELECT_DANGER": "Du må velge en eller flere hendelser"
492
521
  },
@@ -801,7 +830,7 @@ const no = {
801
830
 
802
831
  class TranslateLibraryService {
803
832
  constructor() {
804
- this.getLanguageSubject$ = new BehaviorSubject(null);
833
+ this.getLanguageSubject$ = new BehaviorSubject('en');
805
834
  this.availableLanguages = { en, no };
806
835
  }
807
836
  setLanguage(item) {
@@ -3311,7 +3340,7 @@ QMSMultiIconDirective.propDecorators = {
3311
3340
  qmsTransformIcon: [{ type: Input }]
3312
3341
  };
3313
3342
 
3314
- const ɵ0$3 = { appearance: 'fill' }, ɵ1$1 = { color: 'none' };
3343
+ const ɵ0$5 = { appearance: 'fill' }, ɵ1$1 = { color: 'none' };
3315
3344
  class QmsAngularModule {
3316
3345
  }
3317
3346
  QmsAngularModule.decorators = [
@@ -3433,7 +3462,7 @@ QmsAngularModule.decorators = [
3433
3462
  QMSMultiIconDirective
3434
3463
  ],
3435
3464
  providers: [
3436
- { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: ɵ0$3 },
3465
+ { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: ɵ0$5 },
3437
3466
  { provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: ɵ1$1 },
3438
3467
  QMSUploadingFileGuard
3439
3468
  ],
@@ -3730,7 +3759,7 @@ QMSListItem.propDecorators = {
3730
3759
  _lines: [{ type: ContentChildren, args: [QMSListLine, { descendants: true },] }]
3731
3760
  };
3732
3761
 
3733
- const ɵ0$2 = {
3762
+ const ɵ0$4 = {
3734
3763
  expandedHeight: '*',
3735
3764
  collapsedHeight: '*'
3736
3765
  };
@@ -3772,7 +3801,7 @@ QMSListModule.decorators = [
3772
3801
  providers: [
3773
3802
  {
3774
3803
  provide: MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,
3775
- useValue: ɵ0$2
3804
+ useValue: ɵ0$4
3776
3805
  }
3777
3806
  ],
3778
3807
  schemas: [
@@ -4411,7 +4440,7 @@ class QMSBreadcrumb {
4411
4440
  nodeWidths.forEach(width => {
4412
4441
  currentWidth += width;
4413
4442
  });
4414
- this.isOverflow = width < currentWidth;
4443
+ this.isOverflow = width < currentWidth && (this.itemNodes.length >= this.numDisplayItem);
4415
4444
  this.cdRef.detectChanges();
4416
4445
  if (this.isOverflow) {
4417
4446
  let screenWidth = width;
@@ -4474,11 +4503,13 @@ class QMSBreadcrumb {
4474
4503
  }
4475
4504
  }
4476
4505
  //show number Items after 3 dot icon
4477
- if (+this.numDisplayItem > 0 && this.itemNodes.length >= 2) {
4506
+ if (+this.numDisplayItem && +this.numDisplayItem >= 2 && this.itemNodes.length >= 2) {
4478
4507
  this.dropdownNodes = [];
4479
4508
  this.dropdownNodes = this.itemNodes.slice(0, -this.numDisplayItem).reverse();
4480
4509
  this.itemNodes = [...[], ...this.itemNodes.slice(-this.numDisplayItem)];
4481
- this.isOverflow = true;
4510
+ if (this.dropdownNodes.length) {
4511
+ this.isOverflow = true;
4512
+ }
4482
4513
  this.cdRef.detectChanges();
4483
4514
  }
4484
4515
  //just show 1 item for mobile
@@ -4522,7 +4553,7 @@ class QMSBreadcrumb {
4522
4553
  QMSBreadcrumb.decorators = [
4523
4554
  { type: Component, args: [{
4524
4555
  selector: 'qms-breadcrumb',
4525
- template: "<div>\r\n <div class=\"breadcrumb-container\" *ngIf=\"!isMobileType\">\r\n <!-- Home -->\r\n <div\r\n qms-breadcrumb-item\r\n *ngIf=\"!isOverflow || type=='table'\"\r\n [(showTooltip)]=\"homeNode['isOverflow']\"\r\n >\r\n <mat-icon\r\n *ngIf=\"homeNode?.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ homeNode?.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"homeNode?.displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"homeNode.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"homeNode?.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"homeNode.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"homeNode?.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(homeNode)\"\r\n />\r\n <div\r\n class=\"qms-breadcrumb-item-text\"\r\n [qms-tool-tip]=\"homeNode['name']\"\r\n [showToolTip]=\"homeNode['isOverflow']\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n (click)=\"onItemSelect(homeNode)\"\r\n >\r\n {{homeNode?.name}}\r\n </div>\r\n <mat-icon *ngIf=\"!isOverflow && type !=='table'\"\r\n >keyboard_arrow_right</mat-icon\r\n >\r\n <span\r\n *ngIf=\"itemNodes.length && type=='table'\"\r\n qms-breadcrumb-direction-icon\r\n >\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n\r\n <!-- Dropdown not table -->\r\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type!='table'\">\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n class=\"breadcrumb__dropdown-btn\"\r\n [matMenuTriggerFor]=\"bodyMediumMenu\"\r\n >\r\n <mat-icon svgIcon=\"breadcrumb_dropdown\"></mat-icon>\r\n </button>\r\n <mat-menu\r\n #bodyMediumMenu=\"matMenu\"\r\n yPosition=\"below\"\r\n class=\"qms-breadcrumb-menu\"\r\n >\r\n <div (click)=\"$event.stopPropagation()\">\r\n <div\r\n qms-menu-item\r\n mat-menu-item\r\n disableRipple\r\n *ngFor=\"let item of dropdownNodes\"\r\n (keydown.enter)=\"onKeyPressed($event)\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <div #menuItemContent qms-expansion-header>\r\n <div qms-list-header>\r\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n\r\n <!-- Dropdown table -->\r\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type=='table'\">\r\n <button qms-btn-icon color=\"light\" [matMenuTriggerFor]=\"bodyMediumMenu\">\r\n <mat-icon>more_horiz</mat-icon>\r\n </button>\r\n <mat-menu\r\n #bodyMediumMenu=\"matMenu\"\r\n yPosition=\"below\"\r\n class=\"qms-breadcrumb-menu\"\r\n >\r\n <div (click)=\"$event.stopPropagation()\">\r\n <div\r\n qms-menu-item\r\n mat-menu-item\r\n disableRipple\r\n *ngFor=\"let item of dropdownNodes\"\r\n (keydown.enter)=\"onKeyPressed($event)\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <div #menuItemContent qms-expansion-header>\r\n <div qms-list-header>\r\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n <!-- Item list -->\r\n <div\r\n qms-breadcrumb-item\r\n *ngFor=\"let item of itemNodes;let i=index\"\r\n [isLastItem]=\"i === itemNodes.length - 1\"\r\n [(showTooltip)]=\"item.isOverflow\"\r\n >\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.name && item.isShow\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ item.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.svg && item.isShow\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"item.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.path && item.isShow\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"item.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.base64 && item.isShow\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(item)\"\r\n />\r\n <div\r\n class=\"qms-breadcrumb-item-text\"\r\n [qms-tool-tip]=\"item.name\"\r\n [showToolTip]=\"item.isOverflow\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n *ngIf=\"item.isShow\"\r\n (click)=\"onItemSelect(item, i == itemNodes.length - 1);\"\r\n >\r\n {{item.name}}\r\n </div>\r\n <span\r\n qms-breadcrumb-direction-icon\r\n *ngIf=\"item.isShow && i !== itemNodes.length - 1\"\r\n >\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"breadcrumb-container\" *ngIf=\"isMobileType\">\r\n <mat-sidenav-container>\r\n <mat-sidenav\r\n #sidenav\r\n mode=\"'over'\"\r\n class=\"breadcrumb-sidenav\"\r\n [fixedInViewport]=\"true\"\r\n >\r\n <div class=\"header\">\r\n <div class=\"header-left\">\r\n <p>{{LANG.BREADCRUMB}}</p>\r\n <div class=\"sub\">{{LANG.NAVIGATE_TO}}</div>\r\n </div>\r\n <div class=\"header-right\">\r\n <button qms-btn-text (click)=\"sidenav.close()\">\r\n {{LANG.QMSCKEDITOR.CLOSE}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <mat-selection-list #shoes [multiple]=\"false\">\r\n <mat-list-option\r\n class=\"qms-list-option\"\r\n *ngFor=\"let item of sideNavNodes; let first = first; let last = last;\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"!first\"\r\n mat-list-icon\r\n class=\"subdirectory_arrow_right\"\r\n >subdirectory_arrow_right</mat-icon\r\n >\r\n <div class=\"content-text-name\">\r\n <div class=\"content-text-name-heading\">\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ item.itemIcon }}\r\n </mat-icon>\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"item.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(item)\"\r\n />\r\n <span class=\"\">{{item.name}}</span>\r\n </div>\r\n <mat-icon class=\"color-gray\" *ngIf=\"last\">done</mat-icon>\r\n </div>\r\n </mat-list-option>\r\n </mat-selection-list>\r\n </div>\r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content>\r\n <button\r\n qms-btn-icon\r\n class=\"more_horiz-btn\"\r\n color=\"light\"\r\n *ngIf=\"sideNavNodes.length\"\r\n (click)=\"sidenav.toggle()\"\r\n >\r\n <mat-icon>more_horiz</mat-icon>\r\n </button>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n <div qms-breadcrumb-item [(showTooltip)]=\"previousNode['isOverflow']\">\r\n <!-- Home -->\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n </span>\r\n <mat-icon\r\n *ngIf=\"previousNode?.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ previousNode.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"previousNode?.displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"previousNode.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"previousNode?.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"previousNode.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"previousNode?.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(previousNode)\"\r\n />\r\n <div\r\n class=\"qms-breadcrumb-item-text\"\r\n [qms-tool-tip]=\"previousNode['name']\"\r\n [showToolTip]=\"previousNode['isOverflow']\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n (click)=\"onItemSelect(previousNode)\"\r\n >\r\n {{previousNode.name}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
4556
+ template: "<div>\r\n <div class=\"breadcrumb-container\" *ngIf=\"!isMobileType\">\r\n <!-- Home -->\r\n <div\r\n qms-breadcrumb-item\r\n *ngIf=\"!isOverflow || type=='table'\"\r\n [(showTooltip)]=\"homeNode['isOverflow']\"\r\n >\r\n <mat-icon\r\n *ngIf=\"homeNode?.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ homeNode?.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"homeNode?.displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"homeNode.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"homeNode?.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"homeNode.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"homeNode?.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(homeNode)\"\r\n />\r\n <div\r\n class=\"qms-breadcrumb-item-text\"\r\n [qms-tool-tip]=\"homeNode['name']\"\r\n [showToolTip]=\"homeNode['isOverflow']\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n (click)=\"onItemSelect(homeNode)\"\r\n >\r\n {{homeNode?.name}}\r\n </div>\r\n <mat-icon *ngIf=\"!isOverflow && type !=='table'\"\r\n >keyboard_arrow_right</mat-icon\r\n >\r\n <span\r\n *ngIf=\"itemNodes.length && type=='table'\"\r\n qms-breadcrumb-direction-icon\r\n >\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n\r\n <!-- Dropdown not table -->\r\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type!='table'\">\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n class=\"breadcrumb__dropdown-btn\"\r\n [matMenuTriggerFor]=\"bodyMediumMenu\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <mat-icon svgIcon=\"breadcrumb_dropdown\"></mat-icon>\r\n </button>\r\n <mat-menu\r\n #bodyMediumMenu=\"matMenu\"\r\n yPosition=\"below\"\r\n class=\"qms-breadcrumb-menu\"\r\n >\r\n <div>\r\n <div\r\n qms-menu-item\r\n mat-menu-item\r\n disableRipple\r\n *ngFor=\"let item of dropdownNodes\"\r\n (keydown.enter)=\"onKeyPressed($event)\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <div #menuItemContent qms-expansion-header>\r\n <div qms-list-header>\r\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n\r\n <!-- Dropdown table -->\r\n <div qms-breadcrumb-item *ngIf=\"isOverflow && type=='table'\">\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n (click)=\"$event.stopPropagation()\"\r\n [matMenuTriggerFor]=\"bodyMediumMenu\"\r\n >\r\n <mat-icon>more_horiz</mat-icon>\r\n </button>\r\n <mat-menu\r\n #bodyMediumMenu=\"matMenu\"\r\n yPosition=\"below\"\r\n class=\"qms-breadcrumb-menu\"\r\n >\r\n <div>\r\n <div\r\n qms-menu-item\r\n mat-menu-item\r\n disableRipple\r\n *ngFor=\"let item of dropdownNodes\"\r\n (keydown.enter)=\"onKeyPressed($event)\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <div #menuItemContent qms-expansion-header>\r\n <div qms-list-header>\r\n <div qms-line color=\"default-subtitle\">{{item.name}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n <!-- Item list -->\r\n <div\r\n qms-breadcrumb-item\r\n *ngFor=\"let item of itemNodes;let i=index\"\r\n [isLastItem]=\"i === itemNodes.length - 1\"\r\n [(showTooltip)]=\"item.isOverflow\"\r\n >\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.name && item.isShow\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ item.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.svg && item.isShow\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"item.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.path && item.isShow\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"item.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.base64 && item.isShow\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(item)\"\r\n />\r\n <div\r\n class=\"qms-breadcrumb-item-text\"\r\n [qms-tool-tip]=\"item.name\"\r\n [showToolTip]=\"item.isOverflow\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n *ngIf=\"item.isShow\"\r\n (click)=\"onItemSelect(item, i == itemNodes.length - 1);\"\r\n >\r\n {{item.name}}\r\n </div>\r\n <span\r\n qms-breadcrumb-direction-icon\r\n *ngIf=\"item.isShow && i !== itemNodes.length - 1\"\r\n >\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"breadcrumb-container\" *ngIf=\"isMobileType\">\r\n <mat-sidenav-container>\r\n <mat-sidenav\r\n #sidenav\r\n mode=\"'over'\"\r\n class=\"breadcrumb-sidenav\"\r\n [fixedInViewport]=\"true\"\r\n >\r\n <div class=\"header\">\r\n <div class=\"header-left\">\r\n <p>{{LANG.BREADCRUMB}}</p>\r\n <div class=\"sub\">{{LANG.NAVIGATE_TO}}</div>\r\n </div>\r\n <div class=\"header-right\">\r\n <button qms-btn-text (click)=\"sidenav.close()\">\r\n {{LANG.QMSCKEDITOR.CLOSE}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"content\">\r\n <mat-selection-list #shoes [multiple]=\"false\">\r\n <mat-list-option\r\n class=\"qms-list-option\"\r\n *ngFor=\"let item of sideNavNodes; let first = first; let last = last;\"\r\n (click)=\"onItemSelect(item)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"!first\"\r\n mat-list-icon\r\n class=\"subdirectory_arrow_right\"\r\n >subdirectory_arrow_right</mat-icon\r\n >\r\n <div class=\"content-text-name\">\r\n <div class=\"content-text-name-heading\">\r\n <mat-icon\r\n *ngIf=\"item.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ item.itemIcon }}\r\n </mat-icon>\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"item.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"item.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(item)\"\r\n />\r\n <span class=\"\">{{item.name}}</span>\r\n </div>\r\n <mat-icon class=\"color-gray\" *ngIf=\"last\">done</mat-icon>\r\n </div>\r\n </mat-list-option>\r\n </mat-selection-list>\r\n </div>\r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content>\r\n <button\r\n qms-btn-icon\r\n class=\"more_horiz-btn\"\r\n color=\"light\"\r\n *ngIf=\"sideNavNodes.length\"\r\n (click)=\"sidenav.toggle()\"\r\n >\r\n <mat-icon>more_horiz</mat-icon>\r\n </button>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n <div qms-breadcrumb-item [(showTooltip)]=\"previousNode['isOverflow']\">\r\n <!-- Home -->\r\n <span qms-breadcrumb-direction-icon>\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n </span>\r\n <mat-icon\r\n *ngIf=\"previousNode?.displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n >\r\n {{ previousNode.itemIcon }}\r\n </mat-icon>\r\n <mat-icon\r\n *ngIf=\"previousNode?.displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined item-icon\"\r\n [svgIcon]=\"previousNode.itemIconSvg\"\r\n >\r\n </mat-icon>\r\n <img\r\n *ngIf=\"previousNode?.displayType === itemIconType.path\"\r\n class=\"mat-icon item-icon\"\r\n [src]=\"previousNode.itemIconPath\"\r\n />\r\n <img\r\n *ngIf=\"previousNode?.displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64 item-icon\"\r\n [src]=\"getImagePath(previousNode)\"\r\n />\r\n <div\r\n class=\"qms-breadcrumb-item-text\"\r\n [qms-tool-tip]=\"previousNode['name']\"\r\n [showToolTip]=\"previousNode['isOverflow']\"\r\n #breadcrumbItemText\r\n mode=\"dark\"\r\n (click)=\"onItemSelect(previousNode)\"\r\n >\r\n {{previousNode.name}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
4526
4557
  encapsulation: ViewEncapsulation.None,
4527
4558
  styles: [".breadcrumb-container{display:flex;font-family:Open Sans;font-size:14px;font-weight:600;color:#323232}.breadcrumb-container .qms-breadcrumb-direction-icon,.breadcrumb-container .qms-breadcrumb-item{display:flex;align-items:center;padding:3px 0 2px}.breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:18px;height:18px;font-size:18px;margin-left:.5rem;margin-right:.5rem}.breadcrumb-container .item-icon{margin-right:2px}.breadcrumb-container .qms-breadcrumb-item{cursor:inherit;margin:8px 8px 8px 0}.breadcrumb-container .qms-breadcrumb-item .qms-btn-icon{width:1.5rem;height:1.5rem;line-height:2rem}.breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-overflow{max-width:240px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn{width:2rem;height:2rem}.breadcrumb-container .qms-breadcrumb-item .breadcrumb__dropdown-btn svg{display:block}.breadcrumb-container .qms-breadcrumb-last-item{color:rgba(0,0,0,.6);font-weight:400;cursor:not-allowed}.breadcrumb-container .mat-drawer-container{z-index:3;background-color:transparent}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-direction-icon .mat-icon{width:12px;height:12px;font-size:12px;margin-left:.25rem;margin-right:.25rem;color:rgba(0,0,0,.6)}.qms-breadcrumb-table .breadcrumb-container .item-icon{margin-right:1px}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-text{font-size:12px;font-weight:400;color:rgba(0,0,0,.6)}.qms-breadcrumb-table .breadcrumb-container .qms-breadcrumb-item .qms-breadcrumb-item-overflow{max-width:240px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qms-breadcrumb__multi-line .breadcrumb-container{flex-wrap:wrap}.qms-breadcrumb-menu .qms-dropdown-menu-item{border:none}.breadcrumb-sidenav{display:flex;align-items:center;justify-content:center;width:100%;background:#fff;z-index:3}.breadcrumb-sidenav .header{font-family:Open Sans;font-style:normal;background-color:var(--background-area);height:71px;display:flex;justify-content:space-between;padding:16px}.breadcrumb-sidenav .header p{font-weight:600;font-size:18px;line-height:25px;color:var(--default-color);margin-bottom:0}.breadcrumb-sidenav .header .sub{font-weight:400;font-size:14px;line-height:22px;color:#5a5a5a}.breadcrumb-sidenav .content{padding:0 16px 16px;height:calc(100vh - 71px);overflow:auto}.breadcrumb-sidenav .content .qms-list-option{height:unset!important}.breadcrumb-sidenav .content .qms-list-option .mat-list-text{padding-right:0!important;padding-left:0!important}.breadcrumb-sidenav .content .qms-list-option .mat-list-item-content{border-bottom:1px solid #e0e0e0;padding:8px}.breadcrumb-sidenav .content-text-name{display:flex;align-items:center;justify-content:space-between}.breadcrumb-sidenav .content-text-name .content-text-name-heading{display:flex;align-items:center;color:var(--default-color)}.breadcrumb-sidenav .content-text-name .content-text-name-heading .item-icon{margin-right:10px;color:var(--tab-border)}.breadcrumb-sidenav .content-text-name .color-gray{color:var(--tab-border)}.more_horiz-btn.qms-btn-icon{width:1.5rem;height:1.5rem;line-height:2rem;margin:8px 0 8px 8px}.subdirectory_arrow_right{color:#0163b2}"]
4528
4559
  },] }
@@ -17156,7 +17187,7 @@ var app;
17156
17187
  }
17157
17188
  app.Link = Link;
17158
17189
  })(app || (app = {}));
17159
- const ɵ0$1 = function (flags) {
17190
+ const ɵ0$3 = function (flags) {
17160
17191
  if (this.hasFlag(flags, 'RENDER')) {
17161
17192
  this.render();
17162
17193
  }
@@ -17191,7 +17222,7 @@ const NavigatorElementView = joint.dia.ElementView.extend({
17191
17222
  position: ['TRANSFORM'],
17192
17223
  angle: ['TRANSFORM']
17193
17224
  },
17194
- confirmUpdate: ɵ0$1,
17225
+ confirmUpdate: ɵ0$3,
17195
17226
  render: ɵ1,
17196
17227
  update: ɵ2
17197
17228
  });
@@ -17221,7 +17252,7 @@ var appShapes = /*#__PURE__*/Object.freeze({
17221
17252
  erd: erd,
17222
17253
  uml: uml,
17223
17254
  org: org,
17224
- 'ɵ0': ɵ0$1,
17255
+ 'ɵ0': ɵ0$3,
17225
17256
  'ɵ1': ɵ1,
17226
17257
  'ɵ2': ɵ2
17227
17258
  });
@@ -24637,7 +24668,7 @@ QmsStepperComponent.propDecorators = {
24637
24668
  selectionChangeEvent: [{ type: Output }]
24638
24669
  };
24639
24670
 
24640
- const ɵ0 = { displayDefaultIndicatorType: false };
24671
+ const ɵ0$2 = { displayDefaultIndicatorType: false };
24641
24672
  class QmsStepperModule {
24642
24673
  }
24643
24674
  QmsStepperModule.decorators = [
@@ -24658,7 +24689,7 @@ QmsStepperModule.decorators = [
24658
24689
  ],
24659
24690
  providers: [{
24660
24691
  provide: STEPPER_GLOBAL_OPTIONS,
24661
- useValue: ɵ0
24692
+ useValue: ɵ0$2
24662
24693
  }]
24663
24694
  },] }
24664
24695
  ];
@@ -28817,6 +28848,963 @@ class TreeModelNavDrawer {
28817
28848
  }
28818
28849
  }
28819
28850
 
28851
+ class QMSSelectDepartmentTreeConfig {
28852
+ constructor() {
28853
+ this.treeData = [];
28854
+ this.selectIncludeLabel = '';
28855
+ this.selectedList = [];
28856
+ this.disabledList = [];
28857
+ this.includeChildren = false;
28858
+ }
28859
+ }
28860
+
28861
+ class QMSSelectDepartmentTreeGlobalService {
28862
+ constructor() {
28863
+ this.getDataTree$ = new BehaviorSubject([]);
28864
+ this.searchDepartment$ = new Subject();
28865
+ }
28866
+ updateDataTree(data) {
28867
+ this.getDataTree$.next(data);
28868
+ }
28869
+ setResultSearch(data) {
28870
+ this.searchDepartment$.next(data);
28871
+ }
28872
+ }
28873
+ QMSSelectDepartmentTreeGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectDepartmentTreeGlobalService_Factory() { return new QMSSelectDepartmentTreeGlobalService(); }, token: QMSSelectDepartmentTreeGlobalService, providedIn: "root" });
28874
+ QMSSelectDepartmentTreeGlobalService.decorators = [
28875
+ { type: Injectable, args: [{
28876
+ providedIn: 'root'
28877
+ },] }
28878
+ ];
28879
+
28880
+ class SelectDepartmentTreeComponent {
28881
+ constructor(selectDepartmentService, cdRef, domSanitizer, appIconService, iconRegistry, eleRef) {
28882
+ this.selectDepartmentService = selectDepartmentService;
28883
+ this.cdRef = cdRef;
28884
+ this.domSanitizer = domSanitizer;
28885
+ this.appIconService = appIconService;
28886
+ this.iconRegistry = iconRegistry;
28887
+ this.eleRef = eleRef;
28888
+ this.enableIncludeChild = false;
28889
+ this.enableTreeSearch = false;
28890
+ this.treeDataSourceConfig = new QMSSelectDepartmentTreeConfig();
28891
+ this.ngUnsubscribe = new Subject();
28892
+ this.isLoaded = false;
28893
+ this.groupIncludeChild = [];
28894
+ this.singleItem = [];
28895
+ this.resultSelected = [];
28896
+ this.valueChange$ = new Subject();
28897
+ this.textSearch = new FormControl('');
28898
+ this.onSearchEvent = new EventEmitter();
28899
+ this.resultSearch = [];
28900
+ this.activeNode = '';
28901
+ this.nestedTreeNodeMap = new Map();
28902
+ this.flatTreeNodeMap = new Map();
28903
+ this.checkListSelection = new SelectionModel(true);
28904
+ this.isShowTreeSearch = false;
28905
+ this.itemIconType = ItemIconType;
28906
+ this._transformer = (node, level) => {
28907
+ var _a;
28908
+ const flatNode = this._convertToFlatNode(node) || new QMSFlatNodeTree();
28909
+ flatNode.id = node.id;
28910
+ flatNode.name = node.name;
28911
+ flatNode.expandable = (node.children && node.children.length > 0) || (!!node.childCount);
28912
+ flatNode.level = level;
28913
+ flatNode.parentId = node.parentId;
28914
+ flatNode.markedGetChildren = !!((_a = node.children) === null || _a === void 0 ? void 0 : _a.length);
28915
+ flatNode.itemIcon = node.itemIcon;
28916
+ flatNode.itemIconSvg = node.itemIconSvg;
28917
+ flatNode.isFile = node.isFile;
28918
+ flatNode.disabled = node.disabled;
28919
+ this.flatTreeNodeMap.set(flatNode, node);
28920
+ this.nestedTreeNodeMap.set(node, flatNode);
28921
+ return flatNode;
28922
+ };
28923
+ this.getLevel = (node) => node === null || node === void 0 ? void 0 : node.level;
28924
+ this._getChild = (node) => node.children;
28925
+ this.isExpandable = (node) => node.expandable;
28926
+ this.hasChild = (_, node) => node.expandable;
28927
+ this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);
28928
+ this.treeFlattener = new MatTreeFlattener(this._transformer, this.getLevel, this.isExpandable, this._getChild);
28929
+ this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
28930
+ // Init tree data
28931
+ this.selectDepartmentService.getDataTree$
28932
+ .pipe(takeUntil(this.ngUnsubscribe))
28933
+ .subscribe(data => {
28934
+ this.dataSource.data = data;
28935
+ });
28936
+ // Register icon
28937
+ appIconService.registerProcessIcon(iconRegistry, domSanitizer);
28938
+ appIconService.registerProcessAreaIcon(iconRegistry, domSanitizer);
28939
+ appIconService.registerDocumentIcon(iconRegistry, domSanitizer);
28940
+ appIconService.registerFolderIcon(iconRegistry, domSanitizer);
28941
+ appIconService.registerDeviationIcon(iconRegistry, domSanitizer);
28942
+ appIconService.registerChecklistIcon(iconRegistry, domSanitizer);
28943
+ appIconService.registerRiskIcon(iconRegistry, domSanitizer);
28944
+ this.textSearch.valueChanges
28945
+ .pipe(takeUntil(this.ngUnsubscribe))
28946
+ .subscribe(result => {
28947
+ if (result) {
28948
+ this.onSearchEvent.emit(result);
28949
+ return;
28950
+ }
28951
+ });
28952
+ this.selectDepartmentService.searchDepartment$
28953
+ .pipe(takeUntil(this.ngUnsubscribe))
28954
+ .subscribe(result => {
28955
+ this.resultSearch = result;
28956
+ });
28957
+ }
28958
+ set treeData(value) {
28959
+ this.treeDataSourceConfig.treeData = value || [];
28960
+ this.selectDepartmentService.updateDataTree(this.treeDataSourceConfig.treeData);
28961
+ }
28962
+ set selectedList(value) {
28963
+ this.treeDataSourceConfig.selectedList = value || [];
28964
+ }
28965
+ get currentTreeData() {
28966
+ return this.selectDepartmentService.getDataTree$.value;
28967
+ }
28968
+ ngOnInit() {
28969
+ this._initTreeData();
28970
+ this._initCheckListSelected();
28971
+ }
28972
+ ngOnDestroy() {
28973
+ this.ngUnsubscribe.next();
28974
+ this.ngUnsubscribe.complete();
28975
+ }
28976
+ _initTreeData() {
28977
+ if (this.treeDataSourceConfig.treeData.length) {
28978
+ const rootNode = this.treeDataSourceConfig.treeData.filter(item => +item.parentId === 0)
28979
+ .map((item, _index) => {
28980
+ const node = {
28981
+ id: item.id,
28982
+ name: item.name,
28983
+ markedGetChildren: item.markedGetChildren,
28984
+ children: [],
28985
+ disabled: this.treeDataSourceConfig.disabledList.includes(item.id),
28986
+ itemIcon: item.itemIcon,
28987
+ itemMatIcon: item.itemMatIcon,
28988
+ itemIconSvg: item.itemIconSvg
28989
+ };
28990
+ return node;
28991
+ });
28992
+ this.selectDepartmentService.updateDataTree(rootNode);
28993
+ const groupResult = this.treeDataSourceConfig.treeData.reduce((result, currentValue) => {
28994
+ (result[currentValue['parentId']] = result[currentValue['parentId']] || []).push(currentValue);
28995
+ return result;
28996
+ }, {});
28997
+ const groupResultKey = Object.keys(groupResult);
28998
+ while (this.treeControl.dataNodes.filter(node => node.expandable).every(node => !node.markedGetChildren)) {
28999
+ groupResultKey.forEach((key, index) => {
29000
+ const parentFlatNode = this.treeControl.dataNodes.find(node => node.id === key);
29001
+ if (parentFlatNode) {
29002
+ const parentNestedNode = this._convertToNestedNode(parentFlatNode);
29003
+ parentNestedNode.markedGetChildren = true;
29004
+ parentNestedNode.children = groupResult[key];
29005
+ parentNestedNode.childCount = parentNestedNode.children.length;
29006
+ this.selectDepartmentService.updateDataTree(this.currentTreeData);
29007
+ }
29008
+ });
29009
+ }
29010
+ }
29011
+ }
29012
+ _initCheckListSelected() {
29013
+ if (!this.treeDataSourceConfig.selectedList.length)
29014
+ return;
29015
+ this.groupIncludeChild = this.treeDataSourceConfig.selectedList.filter(item => item.children);
29016
+ this.singleItem = this.treeDataSourceConfig.selectedList.filter(item => item.children === null);
29017
+ this.treeDataSourceConfig.selectedList.forEach(item => {
29018
+ var _a;
29019
+ const flatNode = this.treeControl.dataNodes.find(node => node.id === item.id);
29020
+ if (flatNode) {
29021
+ this.checkListSelection.select(flatNode);
29022
+ ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) && item.children.forEach(child => {
29023
+ const node = this.treeControl.dataNodes.find(_x => _x.id === child.id);
29024
+ if (node) {
29025
+ this.checkListSelection.select(node);
29026
+ this.onExpandAllParent(node);
29027
+ }
29028
+ });
29029
+ this.onExpandAllParent(flatNode);
29030
+ this.resultSelected = [...this.singleItem, ...this.groupIncludeChild];
29031
+ this.valueChange$.next(this.resultSelected);
29032
+ }
29033
+ });
29034
+ }
29035
+ onExpandNode(node) {
29036
+ }
29037
+ onOptionSearchSelected(value) {
29038
+ const flatNode = this.treeControl.dataNodes.find(node => node.id === value.id);
29039
+ if (!flatNode)
29040
+ return;
29041
+ this.checkListSelection.select(flatNode);
29042
+ this._handleCheckNode(flatNode);
29043
+ this.scrollIntoNode(flatNode.id);
29044
+ }
29045
+ onSlideToggleChange() {
29046
+ }
29047
+ displayWhenSelectDepartmentOption($event) {
29048
+ return '';
29049
+ }
29050
+ onCheckNode(node) {
29051
+ this.checkListSelection.toggle(node);
29052
+ this._handleCheckNode(node);
29053
+ this.valueChange$.next(this.resultSelected);
29054
+ }
29055
+ onExpandAllParent(node) {
29056
+ const parents = this._getAllParentNode(node);
29057
+ if (!!(parents === null || parents === void 0 ? void 0 : parents.length)) {
29058
+ parents.forEach(parent => {
29059
+ this.treeControl.expand(parent);
29060
+ });
29061
+ }
29062
+ }
29063
+ onRemoveNode(nodeId) {
29064
+ const flatNode = this.treeControl.dataNodes.find(item => item.id === nodeId);
29065
+ this.checkListSelection.deselect(flatNode);
29066
+ flatNode && this._handleCheckNode(flatNode);
29067
+ }
29068
+ isIndeterminate(node) {
29069
+ const childSelected = this._getListChildrenOfNode(node).filter(item => this.checkListSelection.isSelected(item));
29070
+ return (!!childSelected.length && !this.checkListSelection.isSelected(node));
29071
+ }
29072
+ isCheckAll(node) {
29073
+ const listCheck = [...this._getListChildrenOfNode(node), node];
29074
+ return listCheck.every(item => this.checkListSelection.isSelected(item));
29075
+ }
29076
+ _handleCheckNode(node) {
29077
+ const isSelectedNode = this.checkListSelection.isSelected(node);
29078
+ const isOwnerGroup = !!this.groupIncludeChild.find(gr => (gr === null || gr === void 0 ? void 0 : gr.id) === node.id);
29079
+ if (isSelectedNode) {
29080
+ const children = this.treeDataSourceConfig.includeChildren && this._getListChildrenOfNode(node);
29081
+ children && this.checkListSelection.select(...children);
29082
+ }
29083
+ else {
29084
+ const childSelected = this._getChildrenSelected(node);
29085
+ // check node is owner group or mode is 'include children' and remove all children
29086
+ (isOwnerGroup || this.treeDataSourceConfig.includeChildren) && this.checkListSelection.deselect(...childSelected);
29087
+ }
29088
+ this._updateGroupResult(node);
29089
+ this._updateSingleResult();
29090
+ this.resultSelected = [...this.singleItem, ...this.groupIncludeChild];
29091
+ }
29092
+ // Check group root contain node and re-update chilren
29093
+ _updateGroupResult(node) {
29094
+ const nestedNode = this._convertToNestedNode(node);
29095
+ const existedGroup = this._getExistedGroup(node);
29096
+ const childrenSelected = this._mapToNestedListNode(this._getChildrenSelected(this._convertToFlatNode(existedGroup) || node));
29097
+ const item = this.groupIncludeChild.find(gr => gr.id == nestedNode.id || gr.id === (existedGroup === null || existedGroup === void 0 ? void 0 : existedGroup.id));
29098
+ if (!!item) {
29099
+ item.children = childrenSelected;
29100
+ }
29101
+ else {
29102
+ this.treeDataSourceConfig.includeChildren && this.groupIncludeChild.push(Object.assign(Object.assign({}, nestedNode), { children: childrenSelected }));
29103
+ }
29104
+ this._checkGroupSelected(childrenSelected);
29105
+ }
29106
+ // Check single selected result
29107
+ _updateSingleResult() {
29108
+ let excludeChildOfGroup = [];
29109
+ this.groupIncludeChild.forEach(gr => {
29110
+ excludeChildOfGroup = [...excludeChildOfGroup, ...gr.children.map(x => x.id)];
29111
+ });
29112
+ this.singleItem = this.treeControl.dataNodes.filter(item => {
29113
+ const isSelected = this.checkListSelection.isSelected(item);
29114
+ const existedGroup = this._getExistedGroup(item);
29115
+ const isOwnerGroup = !!this.groupIncludeChild.find(x => (x === null || x === void 0 ? void 0 : x.id) === item.id);
29116
+ return isSelected && !existedGroup && !isOwnerGroup && !excludeChildOfGroup.includes(item.id);
29117
+ }).map(item => {
29118
+ const nestedNode = this._convertToNestedNode(item);
29119
+ nestedNode.children = null;
29120
+ return nestedNode;
29121
+ });
29122
+ }
29123
+ _checkGroupSelected(childSelected) {
29124
+ this.groupIncludeChild = this.groupIncludeChild.filter(gr => {
29125
+ const flatNode = this.treeControl.dataNodes.find(node => node.id === gr.id);
29126
+ const childSelectedInGroup = gr.children.filter(x => childSelected.includes(x));
29127
+ gr.childCount = this._getListChildrenOfNode(flatNode).length;
29128
+ // if Mode is 'include child' the group list will filter exclude all child selected , ortherwise filter exclude all child in group that node is contained
29129
+ const arrChild = this.treeDataSourceConfig.includeChildren ? childSelected : childSelectedInGroup;
29130
+ return gr.childCount > 0 && this.checkListSelection.isSelected(flatNode) && !arrChild.find(_x => _x.id === gr.id);
29131
+ });
29132
+ }
29133
+ _getExistedGroup(node) {
29134
+ const allParent = this._getAllParentNode(node);
29135
+ const listGroupIds = this.groupIncludeChild.map(gr => gr.id);
29136
+ let existedGroup;
29137
+ allParent.forEach(item => {
29138
+ if (listGroupIds.includes(item.id)) {
29139
+ existedGroup = this._convertToNestedNode(item);
29140
+ }
29141
+ });
29142
+ return existedGroup;
29143
+ }
29144
+ _getChildrenSelected(node) {
29145
+ return this._getListChildrenOfNode(node).filter(x => this.checkListSelection.isSelected(x));
29146
+ }
29147
+ _getListChildrenOfNode(node) {
29148
+ return this.treeControl.getDescendants(node);
29149
+ }
29150
+ _mapToNestedListNode(flatNodeList) {
29151
+ return flatNodeList.map(item => this._convertToNestedNode(item));
29152
+ }
29153
+ _convertToNestedNode(node) {
29154
+ return this.flatTreeNodeMap.get(node);
29155
+ }
29156
+ _convertToFlatNode(node) {
29157
+ return this.nestedTreeNodeMap.get(node);
29158
+ }
29159
+ _getRootSelected(node) {
29160
+ const parentList = this._getAllParentNode(node);
29161
+ let groupExist;
29162
+ if (parentList.length) {
29163
+ parentList.forEach(item => {
29164
+ if (this.checkListSelection.isSelected(item)) {
29165
+ groupExist = item;
29166
+ }
29167
+ });
29168
+ }
29169
+ return groupExist;
29170
+ }
29171
+ _getAllParentNode(node) {
29172
+ const listParent = [];
29173
+ let parent = this._getParentNode(node);
29174
+ while (parent) {
29175
+ listParent.push(parent);
29176
+ parent = this._getParentNode(parent);
29177
+ }
29178
+ return listParent;
29179
+ }
29180
+ _getParentNode(node) {
29181
+ const currentLevel = this.getLevel(node);
29182
+ if (currentLevel < 1)
29183
+ return;
29184
+ const index = this.treeControl.dataNodes.indexOf(node) - 1;
29185
+ for (let i = index; i >= 0; i--) {
29186
+ const currentNode = this.treeControl.dataNodes[i];
29187
+ if (this.getLevel(currentNode) < currentLevel) {
29188
+ return currentNode;
29189
+ }
29190
+ }
29191
+ return;
29192
+ }
29193
+ getItemIconType(item) {
29194
+ if (!!item.itemMatIcon)
29195
+ return this.itemIconType.name;
29196
+ if (!!item.itemIconSvg)
29197
+ return this.itemIconType.svg;
29198
+ if (!!item.itemIcon)
29199
+ return this.itemIconType.path;
29200
+ return;
29201
+ }
29202
+ scrollIntoNode(nodeId) {
29203
+ const flatNode = this.treeControl.dataNodes.find(item => item.id === nodeId);
29204
+ if (!nodeId)
29205
+ return;
29206
+ this.treeControl.expand(flatNode);
29207
+ this.onExpandAllParent(flatNode);
29208
+ const element = this.eleRef.nativeElement.querySelector(`#node-${flatNode.id}`);
29209
+ element.scrollIntoView({
29210
+ behavior: 'smooth',
29211
+ block: 'center',
29212
+ });
29213
+ }
29214
+ _expandAllGroupExist() {
29215
+ }
29216
+ getSelectedNodeStorage() {
29217
+ return JSON.parse(localStorage.getItem('selectedNode'));
29218
+ }
29219
+ setSelectedNodeStorage(node) {
29220
+ this.treeDataSourceConfig.includeChildren && localStorage.setItem('selectedNode', JSON.stringify(node));
29221
+ }
29222
+ }
29223
+ SelectDepartmentTreeComponent.decorators = [
29224
+ { type: Component, args: [{
29225
+ selector: 'qms-select-department-tree',
29226
+ template: "<div class=\"qms-select-department-tree-container\">\r\n <div class=\"input-select-department\">\r\n <div *ngIf=\"enableTreeSearch\" class=\"input__field\">\r\n <mat-form-field class=\"w100\" qms-form qms-search-field>\r\n <input type=\"text\" placeholder=\"Search\" matInput />\r\n <button qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"enableIncludeChild\" class=\"select__toggle-include toggle-include-child mt-1\">\r\n <mat-slide-toggle [(ngModel)]=\"treeDataSourceConfig.includeChildren\" (ngModelChange)=\"onSlideToggleChange()\"\r\n color=\"default\" qms-group-options>\r\n <span class=\"text-label\">Select include children</span>\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"line__divider\"></div>\r\n </div>\r\n\r\n <div class=\"tree-department-wrapper\">\r\n <mat-tree class=\"select-department-tree\" [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding [ngClass]=\"{\r\n active: activeNode == node.id,\r\n 'mat-tree-node-disabled-all': node.disabled\r\n }\">\r\n <button class=\"btn-toggle\" mat-icon-button disabled></button>\r\n <ng-container [ngTemplateOutlet]=\"showCheckboxTemplate\" [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 *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding [ngClass]=\"{\r\n 'expand-node': treeControl.isExpanded(node),\r\n 'collapse-node': !treeControl.isExpanded(node),\r\n active: activeNode == node.id,\r\n 'mat-tree-node-disabled': node.disabled\r\n }\">\r\n <div class=\"node-content-wraper\">\r\n <button class=\"btn-toggle\" mat-icon-button (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]=\"showCheckboxTemplate\r\n \" [ngTemplateOutletContext]=\"{ node: node }\"></ng-container>\r\n <mat-progress-bar *ngIf=\"false\" mode=\"indeterminate\" class=\"example-tree-progress-bar\">\r\n </mat-progress-bar>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\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 ml-5 123\" [ngClass]=\"{ disabled: node.disabled }\">{{ node.name\r\n }}\r\n </span>\r\n </mat-checkbox>\r\n </ng-template>\r\n</div>\r\n",
29227
+ 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 .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 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 .tree-department-wrapper{height:375px;overflow-y:auto}.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.active .mat-icon-rtl-mirror,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node.active .text-name,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node.active .type-icon,.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node.active button{color:var(--primary)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node.active:hover{background:var(--primary-light-6-opacity)}.qms-select-department-tree-container .mat-tree.select-department-tree .mat-tree-node.collapse-node.active:active{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-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 .ml-5{margin-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}"]
29228
+ },] }
29229
+ ];
29230
+ SelectDepartmentTreeComponent.ctorParameters = () => [
29231
+ { type: QMSSelectDepartmentTreeGlobalService },
29232
+ { type: ChangeDetectorRef },
29233
+ { type: DomSanitizer },
29234
+ { type: QMSIconRegistryService },
29235
+ { type: MatIconRegistry },
29236
+ { type: ElementRef }
29237
+ ];
29238
+ SelectDepartmentTreeComponent.propDecorators = {
29239
+ enableIncludeChild: [{ type: Input }],
29240
+ enableTreeSearch: [{ type: Input }],
29241
+ treeData: [{ type: Input }],
29242
+ selectedList: [{ type: Input }]
29243
+ };
29244
+
29245
+ class QMSSelectDepartmentTreeModule {
29246
+ }
29247
+ QMSSelectDepartmentTreeModule.decorators = [
29248
+ { type: NgModule, args: [{
29249
+ declarations: [
29250
+ SelectDepartmentTreeComponent
29251
+ ],
29252
+ imports: [
29253
+ CommonModule,
29254
+ MatTreeModule,
29255
+ MatCheckboxModule,
29256
+ MatAutocompleteModule,
29257
+ MatIconModule,
29258
+ MatProgressBarModule,
29259
+ QmsAngularModule,
29260
+ MatInputModule,
29261
+ ReactiveFormsModule,
29262
+ FormsModule,
29263
+ MatButtonModule,
29264
+ MatExpansionModule,
29265
+ MatSlideToggleModule,
29266
+ QMSButtonModule,
29267
+ MatFormFieldModule,
29268
+ MatChipsModule,
29269
+ SharedModule
29270
+ ],
29271
+ exports: [
29272
+ SelectDepartmentTreeComponent
29273
+ ]
29274
+ },] }
29275
+ ];
29276
+
29277
+ class SelectDepartmentPopupData {
29278
+ constructor() {
29279
+ this.treeData = [];
29280
+ this.headerName = '';
29281
+ this.selectIncludeLabel = '';
29282
+ this.selectedNode = [];
29283
+ this.disabledList = [];
29284
+ this.enableSearch = false;
29285
+ this.includeChildren = false;
29286
+ }
29287
+ }
29288
+
29289
+ const SelectDepartmentAnimationTrigger = [
29290
+ trigger('inOutAnimation', [
29291
+ transition(':enter', [
29292
+ style({ opacity: 0 }),
29293
+ animate('0.3s ease-out', style({ opacity: 1 }))
29294
+ ]),
29295
+ ]),
29296
+ trigger('rotateAnimation', [
29297
+ transition(':enter', [
29298
+ style({ transform: 'scale(0) rotate(-180deg)' }),
29299
+ animate('0.3s ease-out', style({ transform: 'scale(1) rotate(0)' }))
29300
+ ]),
29301
+ transition(':leave', [
29302
+ style({ transform: 'scale(1) rotate(0)' }),
29303
+ animate('0.3s ease-in', style({ transform: 'scale(0) rotate(-180deg) ' }))
29304
+ ])
29305
+ ]),
29306
+ trigger('heightAnimation', [
29307
+ transition(':enter', [
29308
+ style({ minHeight: 0, maxHeight: 0 }),
29309
+ animate('0.1s ease-in', style({ maxHeight: '175px', minHeight: '40px' }))
29310
+ ]),
29311
+ transition(':leave', [
29312
+ style({ maxHeight: '175px', minHeight: '40px' }),
29313
+ animate('0.1s ease-out', style({ minHeight: 0, maxHeight: 0 }))
29314
+ ])
29315
+ ]),
29316
+ ];
29317
+
29318
+ const ɵ0$1 = {
29319
+ clickAction: 'noop'
29320
+ };
29321
+ class SelectDepartmentComponent {
29322
+ constructor(selectDepartmentService, cdRef, dialogRef, data) {
29323
+ this.selectDepartmentService = selectDepartmentService;
29324
+ this.cdRef = cdRef;
29325
+ this.dialogRef = dialogRef;
29326
+ this.data = data;
29327
+ this.ngUnsubscribe = new Subject();
29328
+ this.groupIncludeChild = [];
29329
+ this.singleItem = [];
29330
+ this.resultSelected = [];
29331
+ this.textSearch = new FormControl('');
29332
+ this.onSearchEvent = new EventEmitter();
29333
+ this.resultSearch = [];
29334
+ // Init popup data
29335
+ this.popupData = _.cloneDeep(data);
29336
+ this.textSearch.valueChanges
29337
+ .pipe(takeUntil(this.ngUnsubscribe))
29338
+ .subscribe(result => {
29339
+ if (result) {
29340
+ this.onSearchEvent.emit(result);
29341
+ return;
29342
+ }
29343
+ });
29344
+ }
29345
+ get currentTreeData() {
29346
+ return this.selectDepartmentService.getDataTree$.value;
29347
+ }
29348
+ onCloseDialog() {
29349
+ this.dialogRef.close(this.treeDepartment.resultSelected);
29350
+ }
29351
+ ngOnInit() {
29352
+ }
29353
+ ngOnDestroy() {
29354
+ this.ngUnsubscribe.next();
29355
+ this.ngUnsubscribe.complete();
29356
+ }
29357
+ displayWhenSelectDepartmentOption($event) {
29358
+ return '';
29359
+ }
29360
+ onScrollToNode(node) {
29361
+ this.treeDepartment.scrollIntoNode(node.id);
29362
+ }
29363
+ onRemoveNode(node) {
29364
+ this.treeDepartment.onRemoveNode(node.id);
29365
+ }
29366
+ }
29367
+ SelectDepartmentComponent.decorators = [
29368
+ { type: Component, args: [{
29369
+ selector: 'qms-select-department',
29370
+ template: "<div class=\"qms-select-department\">\r\n <div class=\"header-dialog mb-2\">\r\n <span>{{popupData.headerName}}</span>\r\n <mat-icon matDialogClose mat-icon>close</mat-icon>\r\n </div>\r\n\r\n <div>\r\n <div class=\"qms-scrollbar\">\r\n <div>\r\n <qms-select-department-tree #treeDepartment [treeData]=\"popupData.treeData\"\r\n [enableIncludeChild]=\"popupData.includeChildren\" [enableTreeSearch]=\"popupData.enableSearch\"\r\n [selectedList]=\"popupData.selectedList\">\r\n </qms-select-department-tree>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!!resultSelected.length\" class=\"line__divider\"></div>\r\n <div [@heightAnimation] *ngIf=\"!!treeDepartment.resultSelected.length\" class=\" pr-0 pe-0\">\r\n <div class=\"header-title\">Result</div>\r\n <div class=\"result-content pr-0 pe-0\">\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip [qms-tool-tip]=\"item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of treeDepartment.resultSelected\" 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?.children\">\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 </mat-chip-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n <div class=\"confirm__button__groups\">\r\n <button (click)=\"onCloseDialog()\" class=\"btn-add\" [disabled]=\"!treeDepartment.resultSelected.length\"\r\n [class.qms-btn-disabled]=\"!treeDepartment.resultSelected.length\" qms-btn>\r\n <span>Add</span>\r\n <span *ngIf=\"!!treeDepartment.resultSelected\">\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",
29371
+ providers: [
29372
+ {
29373
+ provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
29374
+ useValue: ɵ0$1
29375
+ }
29376
+ ],
29377
+ animations: SelectDepartmentAnimationTrigger,
29378
+ 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:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qms-select-department .panel__item .related__item__inline{max-width:100%}.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:320px}.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}"]
29379
+ },] }
29380
+ ];
29381
+ SelectDepartmentComponent.ctorParameters = () => [
29382
+ { type: QMSSelectDepartmentTreeGlobalService },
29383
+ { type: ChangeDetectorRef },
29384
+ { type: MatDialogRef },
29385
+ { type: SelectDepartmentPopupData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
29386
+ ];
29387
+ SelectDepartmentComponent.propDecorators = {
29388
+ treeDepartment: [{ type: ViewChild, args: ['treeDepartment',] }]
29389
+ };
29390
+
29391
+ class QMSSelectDepartmentModule {
29392
+ }
29393
+ QMSSelectDepartmentModule.decorators = [
29394
+ { type: NgModule, args: [{
29395
+ declarations: [
29396
+ SelectDepartmentComponent
29397
+ ],
29398
+ imports: [
29399
+ CommonModule,
29400
+ MatProgressBarModule,
29401
+ MatTreeModule,
29402
+ MatCheckboxModule,
29403
+ ReactiveFormsModule,
29404
+ FormsModule,
29405
+ QmsAngularModule,
29406
+ MatIconModule,
29407
+ QMSTreeModule,
29408
+ MatButtonModule,
29409
+ MatDialogModule,
29410
+ MatExpansionModule,
29411
+ MatAutocompleteModule,
29412
+ MatInputModule,
29413
+ QMSAppIconModule,
29414
+ QMSButtonModule,
29415
+ MatSlideToggleModule,
29416
+ QMSButtonModule,
29417
+ MatFormFieldModule,
29418
+ MatChipsModule,
29419
+ QMSSelectDepartmentTreeModule
29420
+ ],
29421
+ exports: [
29422
+ SelectDepartmentComponent
29423
+ ],
29424
+ schemas: [
29425
+ CUSTOM_ELEMENTS_SCHEMA
29426
+ ]
29427
+ },] }
29428
+ ];
29429
+
29430
+ class QMSSelectDepartmentGlobalService {
29431
+ constructor() {
29432
+ this.getDataTree$ = new BehaviorSubject([]);
29433
+ this.searchDepartment$ = new Subject();
29434
+ }
29435
+ updateDataTree(data) {
29436
+ this.getDataTree$.next(data);
29437
+ }
29438
+ setResultSearch(data) {
29439
+ this.searchDepartment$.next(data);
29440
+ }
29441
+ }
29442
+ QMSSelectDepartmentGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectDepartmentGlobalService_Factory() { return new QMSSelectDepartmentGlobalService(); }, token: QMSSelectDepartmentGlobalService, providedIn: "root" });
29443
+ QMSSelectDepartmentGlobalService.decorators = [
29444
+ { type: Injectable, args: [{
29445
+ providedIn: 'root'
29446
+ },] }
29447
+ ];
29448
+
29449
+ var OptionSelectAccessEnum;
29450
+ (function (OptionSelectAccessEnum) {
29451
+ OptionSelectAccessEnum[OptionSelectAccessEnum["PERSON"] = 0] = "PERSON";
29452
+ OptionSelectAccessEnum[OptionSelectAccessEnum["USER_GROUP"] = 1] = "USER_GROUP";
29453
+ OptionSelectAccessEnum[OptionSelectAccessEnum["DEPARTMENT"] = 2] = "DEPARTMENT";
29454
+ })(OptionSelectAccessEnum || (OptionSelectAccessEnum = {}));
29455
+
29456
+ class QMSSelectAccessResult {
29457
+ constructor() {
29458
+ this.userGroups = [];
29459
+ this.departments = [];
29460
+ this.persons = [];
29461
+ }
29462
+ }
29463
+ class QMSSelectAccessData {
29464
+ constructor() {
29465
+ this.accessUserGroups = [];
29466
+ this.accessDepartments = [];
29467
+ this.accessPersons = [];
29468
+ this.selectedData = new QMSSelectAccessResult();
29469
+ }
29470
+ }
29471
+
29472
+ class QMSAccessItem {
29473
+ constructor() {
29474
+ this.selected = false;
29475
+ }
29476
+ }
29477
+
29478
+ class OptionSelectAccessModel {
29479
+ }
29480
+
29481
+ class QMSSelectAccessGlobalService {
29482
+ }
29483
+ QMSSelectAccessGlobalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSSelectAccessGlobalService_Factory() { return new QMSSelectAccessGlobalService(); }, token: QMSSelectAccessGlobalService, providedIn: "root" });
29484
+ QMSSelectAccessGlobalService.decorators = [
29485
+ { type: Injectable, args: [{
29486
+ providedIn: 'root'
29487
+ },] }
29488
+ ];
29489
+
29490
+ const SelectAccessAnimationTrigger = [
29491
+ trigger('inOutAnimation', [
29492
+ transition(':enter', [
29493
+ style({ opacity: 0 }),
29494
+ animate('0.3s ease-out', style({ opacity: 1 }))
29495
+ ]),
29496
+ ]),
29497
+ ];
29498
+
29499
+ const ɵ0 = {
29500
+ clickAction: 'noop'
29501
+ };
29502
+ class QMSSelectAccessDialogComponent {
29503
+ constructor(dialogRef, dataDialog, translate, _fb, qmsSelectAccessService) {
29504
+ this.dialogRef = dialogRef;
29505
+ this.dataDialog = dataDialog;
29506
+ this.translate = translate;
29507
+ this._fb = _fb;
29508
+ this.qmsSelectAccessService = qmsSelectAccessService;
29509
+ this.ngUnsubcribe = new Subject();
29510
+ this.optionSelect = new FormControl();
29511
+ this.OPTION_ENUM = OptionSelectAccessEnum;
29512
+ this.options = [
29513
+ {
29514
+ displayName: 'PERSON',
29515
+ type: this.OPTION_ENUM.PERSON
29516
+ },
29517
+ {
29518
+ displayName: 'USER_GROUP',
29519
+ type: this.OPTION_ENUM.USER_GROUP
29520
+ },
29521
+ {
29522
+ displayName: 'DEPARTMENT',
29523
+ type: this.OPTION_ENUM.DEPARTMENT
29524
+ }
29525
+ ];
29526
+ this.userGroupForm = new FormControl('');
29527
+ this.onSearchPersonEvent = new EventEmitter();
29528
+ this.onSearchPersonFreeTextEvent = new EventEmitter();
29529
+ this.onSearchUserGroupEvent = new EventEmitter();
29530
+ this.onSearchDepartmentEvent = new EventEmitter();
29531
+ /** list filtered by search keyword */
29532
+ this.filteredSearchTextBox = {
29533
+ department: new ReplaySubject(1),
29534
+ role: new ReplaySubject(1),
29535
+ };
29536
+ this.getPerson$ = new BehaviorSubject([]);
29537
+ this.getUserGroup$ = new BehaviorSubject([]);
29538
+ this.resultAccess = new QMSSelectAccessResult();
29539
+ this.resultAccess = _.cloneDeep(this.dataDialog.selectedData);
29540
+ this.optionSelect.valueChanges
29541
+ .pipe(takeUntil(this.ngUnsubcribe))
29542
+ .subscribe(result => {
29543
+ // console.log(result);
29544
+ });
29545
+ // Filtered Option select person
29546
+ this.filteredSearchTextBox.role.next(this.dataDialog.accessUserGroups);
29547
+ this.filteredSearchTextBox.department.next(this.dataDialog.accessDepartments);
29548
+ this.updatePersonFilter(this.dataDialog.accessPersons);
29549
+ this.updateUserGroupFilter(this.dataDialog.accessUserGroups);
29550
+ }
29551
+ set tree(data) {
29552
+ if (data) {
29553
+ this.treeDepartment = data;
29554
+ data.valueChange$
29555
+ .pipe(takeUntil(this.ngUnsubcribe))
29556
+ .subscribe((result) => {
29557
+ this.resultAccess.departments = result;
29558
+ });
29559
+ }
29560
+ }
29561
+ get personFiltered() {
29562
+ const persons = this.getPerson$.value;
29563
+ const ids = this.resultAccess.persons.map(x => x.id);
29564
+ persons.forEach(x => x.selected = ids.includes(x.id));
29565
+ return persons;
29566
+ }
29567
+ get userGroupFiltered() {
29568
+ const userGroups = this.getUserGroup$.value;
29569
+ const ids = this.resultAccess.userGroups.map(x => x.id);
29570
+ userGroups.forEach(x => x.selected = ids.includes(x.id));
29571
+ return userGroups;
29572
+ }
29573
+ ngAfterViewInit() {
29574
+ // Result department access
29575
+ }
29576
+ ngOnInit() {
29577
+ this.translate.getLanguageSubject$.pipe().subscribe((res) => {
29578
+ if (res) {
29579
+ this.LANG = this.translate.getObjectLang(res);
29580
+ }
29581
+ });
29582
+ this.buildPersonForm();
29583
+ // Filter person by roles
29584
+ this.personForm.get('roleFilter').valueChanges
29585
+ .pipe(takeUntil(this.ngUnsubcribe), debounceTime(500))
29586
+ .subscribe(keyword => {
29587
+ if (!this.dataDialog.accessUserGroups) {
29588
+ return;
29589
+ }
29590
+ if (!keyword) {
29591
+ this.filteredSearchTextBox.role.next(this.dataDialog.accessUserGroups);
29592
+ return;
29593
+ }
29594
+ this.filteredSearchTextBox.role.next(this.dataDialog.accessUserGroups.filter(role => role.name.toLocaleLowerCase().includes(keyword.toLocaleLowerCase())));
29595
+ });
29596
+ // Filter person by departments
29597
+ this.personForm.get('departmentFilter').valueChanges
29598
+ .pipe(takeUntil(this.ngUnsubcribe))
29599
+ .subscribe(() => {
29600
+ if (!this.dataDialog.accessDepartments) {
29601
+ return;
29602
+ }
29603
+ let search = this.personForm.get('departmentFilter').value;
29604
+ if (!search) {
29605
+ this.filteredSearchTextBox.department.next(this.dataDialog.accessDepartments.slice());
29606
+ }
29607
+ else {
29608
+ search = search.toLowerCase();
29609
+ this.filteredSearchTextBox.department.next(this.dataDialog.accessDepartments.filter(x => x.name.toLowerCase().indexOf(search) > -1));
29610
+ }
29611
+ });
29612
+ }
29613
+ ngOnDestroy() {
29614
+ this.ngUnsubcribe.next();
29615
+ this.ngUnsubcribe.complete();
29616
+ }
29617
+ buildPersonForm() {
29618
+ this.personForm = this._fb.group({
29619
+ roleId: new FormControl(''),
29620
+ departmentId: new FormControl(),
29621
+ departmentFilter: new FormControl([]),
29622
+ recursive: new FormControl(false),
29623
+ keyword: new FormControl(''),
29624
+ roleFilter: new FormControl(''),
29625
+ excludedQuitDepartmentId: true
29626
+ });
29627
+ }
29628
+ onFilterPerson() {
29629
+ this.onSearchPersonEvent.emit(this.personForm.value);
29630
+ }
29631
+ onSearchPersonFreeText() {
29632
+ this.onSearchPersonFreeTextEvent.emit(this.personForm.get('keyword').value);
29633
+ }
29634
+ onFilterUserGroup() {
29635
+ this.onSearchUserGroupEvent.emit(this.userGroupForm.value);
29636
+ }
29637
+ onSelectPerson(employee) {
29638
+ employee.selected = !employee.selected;
29639
+ employee.selected ? this.resultAccess.persons.push(employee) : this.resultAccess.persons = this.resultAccess.persons.filter(item => item.id !== employee.id);
29640
+ }
29641
+ onSelectUserGroup(userGroup) {
29642
+ userGroup.selected = !userGroup.selected;
29643
+ userGroup.selected ? this.resultAccess.userGroups.push(userGroup) : this.resultAccess.userGroups = this.resultAccess.userGroups.filter(item => item.id !== userGroup.id);
29644
+ }
29645
+ onRemoveChip(type, index) {
29646
+ switch (type) {
29647
+ case this.OPTION_ENUM.PERSON:
29648
+ this.resultAccess.persons.splice(index, 1);
29649
+ if (this.personFiltered[index]) {
29650
+ this.personFiltered[index].selected = false;
29651
+ }
29652
+ break;
29653
+ case this.OPTION_ENUM.USER_GROUP:
29654
+ this.resultAccess.userGroups.splice(index, 1);
29655
+ if (this.userGroupFiltered[index]) {
29656
+ this.userGroupFiltered[index].selected = false;
29657
+ }
29658
+ break;
29659
+ default:
29660
+ return;
29661
+ }
29662
+ }
29663
+ onSelectionTypeChange(event) {
29664
+ this.dialogRef.updateSize('732px');
29665
+ }
29666
+ setFormControlValue(formControlNames, values) {
29667
+ formControlNames.forEach((controlName, _index) => {
29668
+ var _a;
29669
+ (_a = this.personForm.get(controlName)) === null || _a === void 0 ? void 0 : _a.setValue(values[_index]);
29670
+ });
29671
+ }
29672
+ getPersonSelected() {
29673
+ }
29674
+ isCheckAll(type) {
29675
+ switch (type) {
29676
+ case this.OPTION_ENUM.PERSON:
29677
+ return this.personFiltered.length && this.personFiltered.every(x => x.selected);
29678
+ case this.OPTION_ENUM.USER_GROUP:
29679
+ return this.userGroupFiltered.length && this.userGroupFiltered.every(x => x.selected);
29680
+ default:
29681
+ return false;
29682
+ }
29683
+ }
29684
+ isIndeterminate(type) {
29685
+ switch (type) {
29686
+ case this.OPTION_ENUM.PERSON:
29687
+ return !this.isCheckAll(type) && this.personFiltered.some(x => x.selected);
29688
+ case this.OPTION_ENUM.USER_GROUP:
29689
+ return !this.isCheckAll(type) && this.userGroupFiltered.some(x => x.selected);
29690
+ case this.OPTION_ENUM.DEPARTMENT:
29691
+ default:
29692
+ return false;
29693
+ }
29694
+ }
29695
+ onCheckAll(type, $event) {
29696
+ $event.checked = !$event.checked;
29697
+ switch (type) {
29698
+ case this.OPTION_ENUM.PERSON: {
29699
+ this.personFiltered.forEach(x => x.selected = $event.checked);
29700
+ const idFiltered = this.personFiltered.map(x => x.id);
29701
+ if ($event.checked) {
29702
+ const idPersonSelected = this.resultAccess.persons.map(x => x.id);
29703
+ this.resultAccess.persons = [...this.resultAccess.persons, ...this.personFiltered.filter(x => !idPersonSelected.includes(x.id))];
29704
+ }
29705
+ else {
29706
+ this.resultAccess.persons = this.resultAccess.persons.filter(x => !idFiltered.includes(x.id));
29707
+ }
29708
+ break;
29709
+ }
29710
+ case this.OPTION_ENUM.USER_GROUP: {
29711
+ this.userGroupFiltered.forEach(x => x.selected = $event.checked);
29712
+ const idFiltered = this.userGroupFiltered.map(x => x.id);
29713
+ if ($event.checked) {
29714
+ const idSelected = this.resultAccess.userGroups.map(x => x.id);
29715
+ this.resultAccess.userGroups = [...this.resultAccess.userGroups, ...this.userGroupFiltered.filter(x => !idSelected.includes(x.id))];
29716
+ }
29717
+ else {
29718
+ this.resultAccess.userGroups = this.resultAccess.userGroups.filter(x => !idFiltered.includes(x.id));
29719
+ }
29720
+ break;
29721
+ }
29722
+ default:
29723
+ return;
29724
+ }
29725
+ }
29726
+ onScollToNodeTreeDepartment(node) {
29727
+ this.optionSelect.value === this.OPTION_ENUM.DEPARTMENT && this.treeDepartment.scrollIntoNode(node.id);
29728
+ }
29729
+ onRemoveTreeNodeDepartment(node) {
29730
+ if (this.optionSelect.value === this.OPTION_ENUM.DEPARTMENT) {
29731
+ this.treeDepartment.onRemoveNode(node.id);
29732
+ }
29733
+ this.resultAccess.departments = this.resultAccess.departments.filter(item => item.id !== node.id);
29734
+ }
29735
+ trackByFn(index, item) {
29736
+ return index;
29737
+ }
29738
+ updatePersonFilter(data) {
29739
+ this.getPerson$.next(data);
29740
+ }
29741
+ updateUserGroupFilter(data) {
29742
+ this.getUserGroup$.next(data);
29743
+ }
29744
+ }
29745
+ QMSSelectAccessDialogComponent.decorators = [
29746
+ { type: Component, args: [{
29747
+ selector: 'qms-select-access-dialog',
29748
+ template: "<div class=\"select-access-dialog-container\">\r\n <div class=\"access-dialog-header mb-2\">\r\n <span class=\"header-title\">{{LANG.SELECT_ACCESS}}</span>\r\n <mat-icon mat-dialog-close class=\"mat-icons-outlined\">close</mat-icon>\r\n </div>\r\n <div class=\"access-dialog-wraper\">\r\n <mat-form-field qms-form qms-select-input class=\"field-select-option w-100\" appearance=\"fill\">\r\n <mat-label qms-select-input>{{LANG.TYPE}}</mat-label>\r\n <mat-select (selectionChange)=\"onSelectionTypeChange($event)\" [formControl]=\"optionSelect\" placeholder=\"Select\"\r\n disableOptionCentering #singleSelect panelClass=\"qms-select-panel\" qms-select>\r\n\r\n <mat-option *ngFor=\"let item of options\" [value]=\"item.type\">\r\n {{ LANG[item.displayName] }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!-- Person Access -->\r\n <div class=\"option-selected-content\">\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.PERSON\">\r\n <form [formGroup]=\"personForm\">\r\n <mat-dialog-content>\r\n <div class=\"group-filter-person-option\">\r\n <mat-form-field class=\"w-100 input-option-filter\" qms-form>\r\n <mat-label qms-select-input>{{LANG.ROLE}}</mat-label>\r\n <mat-select panelClass=\"qms-select-panel\" qms-select disableOptionCentering formControlName=\"roleId\">\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"roleFilter\" placeholderLabel=\"{{ LANG.ROLE }}\"\r\n noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngFor=\"let item of filteredSearchTextBox.role | async\" [value]=\"item.id\">\r\n {{ item.name }}\r\n </mat-option>\r\n </mat-select>\r\n <span [@inOutAnimation] (click)=\"personForm.get('roleId').setValue('')\" class=\"pointer \" matSuffix\r\n aria-label=\"Clear\" *ngIf=\"personForm.get('roleId').value\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"w-100 input-select-option\" qms-form qms-select-input>\r\n <mat-label>{{LANG.DEPARTMENT_UNIT}}</mat-label>\r\n <mat-select panelClass=\"qms-select-panel\" qms-select disableOptionCentering\r\n formControlName=\"departmentId\">\r\n <mat-option>\r\n <ngx-mat-select-search formControlName=\"departmentFilter\" [placeholderLabel]=\"LANG.DEPARTMENT_UNIT\"\r\n noEntriesFoundLabel=\"\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n <mat-option *ngFor=\"let item of filteredSearchTextBox.department | async\" [value]=\"item.id\">\r\n {{item.name}}\r\n </mat-option>\r\n </mat-select>\r\n\r\n <span (click)=\"setFormControlValue(['recursive','departmentId'], [false,''])\" [@inOutAnimation]\r\n class=\"pointer\" matSuffix aria-label=\"Clear\" *ngIf=\"personForm.get('departmentId').value\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </mat-form-field>\r\n </div>\r\n\r\n <mat-slide-toggle class=\"w-100 slide-toggle\" formControlName=\"recursive\"\r\n [disabled]=\"!personForm.get('departmentId').value\" color=\"default\" qms-group-options>\r\n <span class=\"text-label\">{{LANG.INCLUDE_SUB_DEPARTMENTS}}</span>\r\n </mat-slide-toggle>\r\n\r\n <mat-form-field class=\"w-100\" appearance=\"fill\" qms-form qms-search-field>\r\n <!-- <mat-label>{{LANG.SEARCH_WITH_NAME}}</mat-label> -->\r\n <input matInput appearance=\"off\" [placeholder]=\"LANG.SEARCH_WITH_NAME\" formControlName=\"keyword\"\r\n type=\"text\" autocomplete=\"off\" />\r\n\r\n <button qms-btn-icon color=\"light\" [@inOutAnimation] (click)=\"onSearchPersonFreeText()\"\r\n class=\"pointer me-1\" matSuffix aria-label=\"Search\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <span [@inOutAnimation] (click)=\"personForm.get('keyword').setValue('')\"\r\n class=\"pointer btn-icon-clear d-flex justify-content-center align-items-center \" matSuffix\r\n aria-label=\"Clear\" *ngIf=\"personForm.get('keyword').value\">\r\n <button qms-btn-icon color=\"light\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n <button (click)=\"onFilterPerson()\" qms-btn-outlined class=\"w-100 mb-1 mt-3\">\r\n {{LANG.FILTER}}\r\n </button>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-content class=\"items-list\">\r\n <div qms-scrollbar>\r\n <div class=\"item\">\r\n <mat-checkbox #checkPerson class=\"w-100\" (click)=\"onCheckAll(OPTION_ENUM.PERSON,checkPerson)\"\r\n [checked]=\"isCheckAll(OPTION_ENUM.PERSON)\" [indeterminate]=\"isIndeterminate(OPTION_ENUM.PERSON)\"\r\n color=\"default\" qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}} ({{personFiltered.length}})</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div class=\"item-list-wrapper\">\r\n <div class=\"item mt-1\" *ngFor=\"let employee of personFiltered; trackBy: trackByFn\">\r\n <mat-checkbox [checked]=\"employee.selected\" (click)=\"onSelectPerson(employee)\" class=\"w-100\"\r\n color=\"default\" qms-group-options>\r\n <div class=\"text-label\">\r\n <span class=\"text-label label-item fs-14 \">\r\n {{ employee.name }}\r\n </span>\r\n <span *ngIf=\"employee.subName\" class=\"ms-1 sub-label\">({{employee.subName}})</span>\r\n </div>\r\n <small class=\"text-help px-1 fs-12 sub-label\">{{ employee.helpText }}</small>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n </form>\r\n </ng-container>\r\n\r\n <!-- UserGroup Access -->\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.USER_GROUP\">\r\n <form>\r\n <mat-dialog-content>\r\n <mat-form-field class=\"w-100\" qms-form qms-search-field>\r\n <input [formControl]=\"userGroupForm\" matInput type=\"text\" autocomplete=\"off\" placeholder=\"User group\" />\r\n <button (click)=\"onFilterUserGroup()\" qms-btn-icon color=\"light\" matSuffix>\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n <div [@inOutAnimation] *ngIf=\"!!userGroupForm.value\" matSuffix qms-input-clear>\r\n <button (click)=\"userGroupForm.setValue('')\" qms-btn-icon color=\"light\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n </mat-dialog-content>\r\n <mat-dialog-content class=\"items-list\">\r\n <div qms-scrollbar>\r\n <div class=\"item\">\r\n <mat-checkbox #checkUserGroup class=\"w-100\" color=\"default\"\r\n [checked]=\"isCheckAll(OPTION_ENUM.USER_GROUP)\"\r\n [indeterminate]=\"isIndeterminate(OPTION_ENUM.USER_GROUP)\"\r\n (click)=\"onCheckAll(OPTION_ENUM.USER_GROUP,checkUserGroup)\" qms-group-options>\r\n <span class=\"text-label header-title\">{{LANG.CHOOSE_ALL}} ({{userGroupFiltered.length}})</span>\r\n </mat-checkbox>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div class=\"item-list-wrapper\">\r\n <div class=\"item mt-1\" *ngFor=\"let userGroup of userGroupFiltered\">\r\n <mat-checkbox (click)=\"onSelectUserGroup(userGroup)\" [checked]=\"userGroup.selected\" class=\"w-100\"\r\n color=\"default\" qms-group-options>\r\n <span class=\"text-label\">\r\n {{userGroup.name}}\r\n </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n </form>\r\n </ng-container>\r\n\r\n <!-- Department Access -->\r\n <ng-container *ngIf=\"optionSelect.value === OPTION_ENUM.DEPARTMENT\" class=\"person-access\">\r\n <qms-select-department-tree #treeDepartment [treeData]=\"dataDialog.accessDepartments\"\r\n [enableIncludeChild]=\"true\" [enableTreeSearch]=\"true\" [selectedList]=\"resultAccess.departments\">\r\n </qms-select-department-tree>\r\n </ng-container>\r\n </div>\r\n <mat-divider *ngIf=\"optionSelect.value !== null\" class=\"mx-auto\"></mat-divider>\r\n <div *ngIf=\"optionSelect.value !== null\" class=\"header-title my-2\">{{LANG.RESULTS}}</div>\r\n\r\n <div *ngIf=\"optionSelect.value !== null\" class=\"result-selected-container\">\r\n <!-- Result Person -->\r\n <mat-expansion-panel qms-expansion [expanded]=\"optionSelect.value === OPTION_ENUM.PERSON\">\r\n <mat-expansion-panel-header>\r\n <div class=\"title-content\">\r\n <div class=\"qms-list-text\">\r\n <div qms-line color=\"default-subtitle\">{{LANG.PERSON}} <span\r\n class=\"fw-600\">({{resultAccess.persons.length}})</span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip class=\"chip-item-result\" [qms-tool-tip]=\"item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of resultAccess.persons; let i = index\" qms-chip [removable]=\"true\">\r\n <span qms-chip-body>\r\n <span class=\"text-label\">\r\n {{ item.name }}\r\n <span *ngIf=\"item.subName\">({{ item.subName }})</span>\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveChip(OPTION_ENUM.PERSON,i)\" class=\"remove-chip-icon\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </mat-expansion-panel>\r\n\r\n <!-- Result User group -->\r\n <mat-expansion-panel qms-expansion [expanded]=\"optionSelect.value === OPTION_ENUM.USER_GROUP\">\r\n <mat-expansion-panel-header>\r\n <div class=\"title-content\">\r\n <div class=\"qms-list-text\">\r\n <div qms-line color=\"default-subtitle\">{{LANG.USER_GROUP}}\r\n <span class=\"fw-600\">\r\n ({{resultAccess.userGroups.length}})\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip class=\"chip-item-result\" [qms-tool-tip]=\"item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of resultAccess.userGroups; let i = index\" qms-chip [removable]=\"true\">\r\n <span qms-chip-body>\r\n <span class=\"text-label\">\r\n {{item.name}}\r\n <span *ngIf=\"item.subName\">({{ item.subName }})</span>\r\n </span>\r\n </span>\r\n <mat-icon (click)=\"onRemoveChip(OPTION_ENUM.USER_GROUP,i)\" class=\"remove-chip-icon\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </mat-expansion-panel>\r\n\r\n <!-- Result Department -->\r\n <mat-expansion-panel qms-expansion [expanded]=\"optionSelect.value === OPTION_ENUM.DEPARTMENT\">\r\n <mat-expansion-panel-header>\r\n <div class=\"title-content\">\r\n <div class=\"qms-list-text\">\r\n <div qms-line color=\"default-subtitle\">{{LANG.DEPARTMENT}}\r\n <span class=\"fw-600\">\r\n ({{resultAccess.departments.length}})\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <mat-chip-list class=\"panel__item qms-scrollbar\">\r\n <mat-chip class=\"chip-item-result item-department\" [qms-tool-tip]=\"item.name\" position=\"top\" mode=\"dark\"\r\n *ngFor=\"let item of resultAccess.departments\" qms-chip [removable]=\"true\">\r\n <span (click)=\"onScollToNodeTreeDepartment(item)\" qms-chip-body>\r\n <span class=\"chip-item__content_name\" #itemName>\r\n {{item.name}}\r\n </span>\r\n <span class=\"chip-item-children__count ms-1\" *ngIf=\"item?.children\">\r\n {{item.children.length}}/{{item.childCount}}\r\n </span>\r\n </span>\r\n <mat-icon class=\"remove-chip-icon\" (click)=\"onRemoveTreeNodeDepartment(item)\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </mat-expansion-panel>\r\n </div>\r\n <mat-divider class=\"mx-auto\"></mat-divider>\r\n <div class=\"confirm__button__groups\" [class.none-option]=\"optionSelect.value === null\">\r\n <button *ngIf=\"optionSelect.value !== null\"\r\n [disabled]=\"!(!!resultAccess.departments.length || !!resultAccess.persons.length || !!resultAccess.userGroups.length)\"\r\n class=\"btn-add\"\r\n [class.qms-btn-disabled]=\"!(!!resultAccess.departments.length || !!resultAccess.persons.length || !!resultAccess.userGroups.length)\"\r\n [mat-dialog-close]=\"resultAccess\" qms-btn>\r\n <span>{{LANG.ADD}}</span>\r\n </button>\r\n <button qms-btn-text mat-dialog-close>\r\n {{LANG.CANCEL}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
29749
+ animations: [SelectAccessAnimationTrigger],
29750
+ providers: [
29751
+ {
29752
+ provide: MAT_CHECKBOX_DEFAULT_OPTIONS,
29753
+ useValue: ɵ0
29754
+ }
29755
+ ],
29756
+ encapsulation: ViewEncapsulation.None,
29757
+ 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}.select-access-dialog-container{font-family:Open Sans}.select-access-dialog-container .mat-expansion-panel .mat-expansion-panel-body{padding-top:0!important}.select-access-dialog-container .mat-expansion-panel-header{font-size:12px!important;font-weight:800!important}.select-access-dialog-container .w-100{width:100%}.select-access-dialog-container .h-100{height:100%}.select-access-dialog-container .pointer{cursor:pointer}.select-access-dialog-container .fw-600{font-weight:600}.select-access-dialog-container .label-item{font-weight:600;color:var(--ws-text-primary)}.select-access-dialog-container .sub-label{color:var(--ws-text-secondary)}.select-access-dialog-container .fs-14{font-size:14px}.select-access-dialog-container .fs-12{font-size:12px}.select-access-dialog-container .header-title{font-weight:600;color:var(--ws-text-primary);font-size:16px}.select-access-dialog-container .chip-item-result{max-width:250px}.select-access-dialog-container .chip-item-result.item-department .qms-chip-body{display:flex;justify-content:center;align-items:center}.select-access-dialog-container .remove-chip-icon{color:rgba(0,0,0,.3);cursor:pointer}.select-access-dialog-container .remove-chip-icon:hover{color:rgba(0,0,0,.7)}.select-access-dialog-container .mat-form-field-wrapper{padding-bottom:5px!important}.select-access-dialog-container .mat-expansion-panel{border-radius:unset!important}.select-access-dialog-container .mat-expansion-panel-header:not([aria-disabled=true]){background:unset}.select-access-dialog-container .mat-expansion-panel.mat-expanded .mat-expansion-panel-header{background:#e5eefb}.select-access-dialog-container .mat-expansion-panel.mat-expanded .mat-expansion-panel-header .qms-line{color:var(--primary-light)!important}.select-access-dialog-container .access-dialog-header{display:flex;justify-content:space-between;align-items:center}.select-access-dialog-container .access-dialog-wraper{width:100%}.select-access-dialog-container .access-dialog-wraper .field-select-option .mat-form-field-wrapper{padding-bottom:16px!important}.select-access-dialog-container .access-dialog-wraper .field-select-option .mat-form-field-underline{bottom:16px!important}.select-access-dialog-container .mat-chip-list-wrapper{margin:unset!important}.select-access-dialog-container .result-selected-container{max-height:185px;overflow-y:auto}.select-access-dialog-container .item-list-wrapper{max-height:25vh;padding-right:4px;overflow-y:auto}.select-access-dialog-container .item-list-wrapper .item{min-height:40px}.select-access-dialog-container .confirm__button__groups .btn-add>.qms-btn-wrapper{display:flex;justify-content:center;align-items:center}.select-access-dialog-container .option-selected-content .group-filter-person-option{display:flex;flex-direction:row-reverse;justify-content:center;align-items:center;grid-gap:8px;gap:8px}.select-access-dialog-container span.chip-item__content_name{display:inline-block;max-width:175px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-access-dialog-container span.chip-item-children__count{font-size:.75rem;color:rgba(0,0,0,.5);font-weight:600}.select-access-dialog-container .mat-slide-toggle.qms-group-options{padding:unset!important}.select-access-dialog-container .input-option-filter .mat-form-field-wrapper{padding-bottom:8px!important}.select-access-dialog-container .input-option-filter .mat-form-field-underline{bottom:8px!important}.select-access-dialog-container .slide-toggle{margin-bottom:8px}.select-access-dialog-container .confirm__button__groups.none-option{margin-top:85px}.select-access-dialog-container .btn-icon-clear{position:relative;padding:0 1rem}.select-access-dialog-container .btn-icon-clear .qms-btn-icon{margin-right:unset!important}.select-access-dialog-container .btn-icon-clear:after{position:absolute;content:\"\";left:0;top:0;height:100%;width:1px;background:rgba(0,0,0,.3)}"]
29758
+ },] }
29759
+ ];
29760
+ QMSSelectAccessDialogComponent.ctorParameters = () => [
29761
+ { type: MatDialogRef },
29762
+ { type: QMSSelectAccessData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
29763
+ { type: TranslateLibraryService },
29764
+ { type: FormBuilder },
29765
+ { type: QMSSelectAccessGlobalService }
29766
+ ];
29767
+ QMSSelectAccessDialogComponent.propDecorators = {
29768
+ tree: [{ type: ViewChild, args: ['treeDepartment', {
29769
+ read: SelectDepartmentTreeComponent
29770
+ },] }]
29771
+ };
29772
+
29773
+ class QMSSelectAccessDialogModule {
29774
+ }
29775
+ QMSSelectAccessDialogModule.decorators = [
29776
+ { type: NgModule, args: [{
29777
+ declarations: [
29778
+ QMSSelectAccessDialogComponent
29779
+ ],
29780
+ imports: [
29781
+ CommonModule,
29782
+ QMSSelectDepartmentModule,
29783
+ MatFormFieldModule,
29784
+ MatInputModule,
29785
+ MatButtonModule,
29786
+ MatCheckboxModule,
29787
+ QmsAngularModule,
29788
+ MatSelectModule,
29789
+ NgxMatSelectSearchModule,
29790
+ FormsModule,
29791
+ ReactiveFormsModule,
29792
+ MatIconModule,
29793
+ MatDialogModule,
29794
+ QMSButtonModule,
29795
+ MatChipsModule,
29796
+ MatDividerModule,
29797
+ MatExpansionModule,
29798
+ QMSSelectDepartmentTreeModule,
29799
+ MatSlideToggleModule,
29800
+ QMSListModule,
29801
+ ],
29802
+ exports: [
29803
+ QMSSelectAccessDialogComponent
29804
+ ]
29805
+ },] }
29806
+ ];
29807
+
28820
29808
  /*
28821
29809
  * Public API Surface of qms-angular
28822
29810
  */
@@ -28825,5 +29813,5 @@ class TreeModelNavDrawer {
28825
29813
  * Generated bundle index. Do not edit.
28826
29814
  */
28827
29815
 
28828
- export { 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, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, FileErrorType, FileType, FlatNodeNavDrawer, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, MfeUtil, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NavigatorElementView, NavigatorLinkView, NewTreeComponent, NewTreeModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, 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, 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, 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, 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, SelectConst, 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 };
29816
+ export { 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, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, FileErrorType, FileType, FlatNodeNavDrawer, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, MfeUtil, 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, 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, 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, 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, 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, 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 };
28829
29817
  //# sourceMappingURL=qms-angular.js.map